캐시
다른 뜻에 대해서는 캐시 (동음이의) 문서를 참고하십시오.
캐시(cache, 문화어: 캐쉬, 고속완충기, 고속완충기억기)는 컴퓨터 과학에서 데이터나 값을 미리 복사해 놓는 임시 장소를 가리킨다. 캐시는 캐시의 접근 시간에 비해 미가공 데이터 또는 1차 데이터(raw data or primary data)에 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용한다. 캐시에 데이터를 미리 복사해 놓으면 계산이나 접근 시간없이 더 빠른 속도로 데이터에 접근할 수 있다. 캐시는 시스템의 효율성을 위해 여러 분야에서 두루 쓰이고 있다. 여러 가지 캐시의 종류CPU 캐시대용량의 메인 메모리 액세스를 빠르게 하기 위해 CPU 칩 내부에 별도로 탑재하는 작은 메모리이다. 1980년대 이후 대부분의 CPU는 하나, 많게는 5-6개까지의 서로 다른 기능을 가진 CPU 캐시를 장착하고 있다. 메모리 접근 속도가 늘어나는 것에 비해 CPU의 처리 속도가 훨씬 빠르게 향상되고 있기 때문에, 용량은 작지만 속도가 빠른 CPU 캐시는 현재 마이크로프로세서의 성능에 직접적인 영향을 미친다. 디스크 캐시디스크 캐시는 디스크 버퍼라고 불리기도 한다. 1980년대 후반 이후 판매되는 대부분의 하드 디스크는 디스크 제어와 외부와의 인터페이스를 위해 작은 컴퓨터를 내장하고 있다. 이 작은 컴퓨터는 대개 디스크에 입출력되는 데이터를 저장하는 작은 메모리를 갖고 있는데, 이를 디스크 캐시라고 한다. 2004년에 판매되는 개인용 컴퓨터에 탑재된 디스크 캐시는 대개 2-32MB 정도의 크기를 갖는다. 디스크 캐시는 여러 가지 용도로 사용된다.
기타 캐시CPU 캐시는 하드웨어를 통해 관리되고, 그 밖의 다른 캐시들은 대개 소프트웨어적으로 관리된다. 운영 체제의 메인 메모리를 하드 디스크에 복사해 놓는 페이지 캐시는 운영 체제 커널과 파일 시스템을 통해 관리된다. BIND DNS 데몬은 도메인 이름과 IP 주소 사이의 매핑을 저장해 둔다. 신뢰성이 적은 네트워크(이더넷 등)에서, 네트워크 사이에 주고 받는 데이터를 캐시해 놓는 것은 매우 흔한 일이다. 이를테면, 웹 브라우저는 최근 방문한 사이트를 캐시에 저장해 놓는다. 많은 인터넷 제공업체들과 대규모 네트워크의 운영자들은 인기 있는 웹 페이지의 캐시를 프록시 서버에 저장하여 웹 페이지 요청에 응답하게 함으로써 네트워크 대역폭을 아낀다. 구글 검색 엔진은 검색 대상 사이트들의 내용을 캐시에 저장해 검색 엔진에 사용하기도 하고, 검색 결과의 일부로서 사용자들에게 보여 주기도 한다. 지역성캐시가 효율적으로 동작하려면, 캐시에 저장할 데이터가 지역성을 가져야 한다. 지역성이란 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 의미한다. 시간적 지역성특정 데이터가 한번 접근되었을 경우, 가까운 미래에 또 한번 데이터에 접근할 가능성이 높은 것을 시간적 지역성이라고 한다. 메모리 상의 같은 주소에 여러 차례 읽기 쓰기를 수행할 경우 상대적으로 작은 크기의 캐시를 사용해도 효율성을 꾀할 수 있다. 공간적 지역성특정 데이터와 가까운 주소가 순서대로 접근되었을 경우를 공간적 지역성이라고 한다. CPU 캐시나 디스크 캐시의 경우 한 메모리 주소에 접근할 때 그 주소뿐 아니라 해당 블록을 전부 캐시에 가져오게 된다. 이때 메모리 주소를 오름차순이나 내림차순으로 접근한다면, 캐시에 이미 저장된 같은 블록의 데이터를 접근하게 되므로 캐시의 효율성이 크게 향상된다. 같이 보기외부 링크 |