캐시와 캐시의 종류에 대해 설명해보세요.
- 캐시(Cache)
주기억 장치에 읽어 들인 명령이나 프로그램들로 채워지는 버퍼 형태의 고속 기억 장치. 주기억 장치와 중앙 처리 장치(central processing unit)와의 사이에 설치되어 있는 고속 버퍼메모리이다. 캐시 메모리(cache memory) 또는 로컬 메모리(local memory)라고도 한다. 기억 용량(memory capacity)은 적지만 주기억 장치에 비해 고속이며 액세스할 수 있는 장점이 있다. 따라서 중앙 처리 장치가 명령이 필요하게 되면, 맨 먼저 액세스하는 것은 주기억 장치가 아니라 캐시 메모리인 셈이다.
캐시(cache)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시는 시스템의 효율성을 위해 여러 분야에서 두루 쓰이며 지역성에 의해서 성립한다.
- 캐시의 종류
(1) CPU 캐시
대용량의 메인 메모리 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리이다. 1980년대 이후 대부분의 CPU는 하나, 많게는 5-6개까지의 서로 다른 기능을 가진 CPU 캐시를 장착하고 있다.
현대 CPU는 L1(코어 전용, 수십~수백 KB)·L2(코어 전용, 수백 KB~수 MB)·L3(코어 공유, 수~수십 MB) 의 계층적 캐시 구조를 갖추고 있다. 예를 들어 인텔 Core i9 계열 프로세서는 L3 캐시가 32MB 이상에 달하며, AMD Ryzen 시리즈는 3D V-Cache 기술을 통해 L3 캐시를 수직 적층하는 방식으로 최대 192MB까지 확장하기도 한다.
(2) 디스크 캐시
디스크 캐시는 디스크 버퍼라고 불리기도 한다. 1980년대 후반 이후 판매되는 대부분의 하드디스크는 디스크 제어와 외부와의 인터페이스를 위해 작은 컴퓨터를 내장하고 있다. 이 작은 컴퓨터는 대개 디스크에 입출력되는 데이터를 저장하는 작은 메모리를 갖고 있는데, 이를 디스크 캐시라고 한다.
현재 HDD의 디스크 캐시(버퍼)는 일반적으로 64~256MB 수준으로 크게 증가하였다. SSD의 경우 DRAM 캐시를 탑재하거나 플래시 자체의 SLC 캐시 방식을 통해 읽기·쓰기 성능을 높이고 있으며, 엔터프라이즈 SSD에서는 수 GB에 달하는 캐시를 활용하기도 한다.
디스크 캐시는 ① 미리 읽기(연속된 섹터를 미리 읽어 저장), ② 속도 조절, ③ 쓰기 가속 등의 용도로 사용된다.
(3) 기타 캐시
CPU 캐시는 하드웨어를 통해 관리되고, 그 밖의 다른 캐시들은 대개 소프트웨어적으로 관리된다. 운영 체제의 메인 메모리를 하드 디스크에 복사해 놓는 페이지 캐시는 운영 체제 커널과 파일 시스템을 통해 관리된다. 또한 웹 브라우저는 최근 방문한 사이트를 캐시에 저장해 놓으며, 많은 인터넷 제공업체들과 대규모 네트워크의 운영자들은 인기 있는 웹 페이지의 캐시를 프록시 서버에 저장하여 네트워크 대역폭을 아낀다.
▲ 캐시와 주기억 장치의 정보 전달
커뮤니티 Q&A
위 이론과 관련된 게시글이에요.
이해가 안 되거나 궁금한 점이 있다면 커뮤니티에 질문해 보세요!
게시글 작성하기