2022

15. 캐시가 뭔가요? 본문

CS

15. 캐시가 뭔가요?

__g__ 2022. 5. 26. 03:32

 

 

무어의 법칙에 따라 최근까지 CPU의 처리속도가 급격하게 증가하였다. 그러나 프로세서의 발전 속도를 메인 메모리가 따라가지 못하고 있다. 이로 인해 데이터를 가져와 CPU에서 빨리 처리를 해도 다음 연산에 필요한 데이터가 오는 속도가 너무 느리기 때문에 시스템 성능 향상에 한계가 있다. 즉, 병목 현상이 일어난다. 이러한 부분을 극복하기 위해 캐시가 등장했다. CPU와 메인 메모리 사이에 위치하며 속도 간극을 줄여주는 완충재 역할을 한다. 

 

캐시(cache)

컴퓨터 분야에 사용되는 용어로, 데이터를 미리 복사해 놓는 임시 장소. 저장 공간이 작고 비용이 비싼 대신 빠른 성능을 제공. 캐시는 캐시의 접근 시간에 비해 원래 데이터를 접근하는 시간이 오래 걸리는 경우나 값을 다시 계산하는 시간을 절약하고 싶은 경우에 사용. 반복으로 사용되는 데이터가 많을수록 높은 효율성을 냄.

 

캐시의 종류

종류 설명
CPU 캐시 대용량의 메인 메모리에 접근을 빠르게 하기 위해 CPU 칩 내부나 바로 옆에 탑재하는 작은 메모리.
디스크 캐시 하드디스크에 내장된 '작은 컴퓨터'(기능:디스크 제어, 외부와의 인터페이스)가 소유한 '작은 메모리'(디스크에 입출력되는 데이터를 저장하는 작은 메모리). 하드디스크와 RAM 사이에 존재.
그 외 소프트웨어적으로 관리.
페이지 캐시 : 운영 체제의 메인 메모리를 하드 디스크에 복사해 놓는 캐시.
ex) 웹 브라우저의 웹 페이지 캐시.

 

 

 

캐시의 지역성(Locality)

지역성이란, 데이터 접근이 시간적, 혹은 공간적으로 가깝게 일어나는 것을 의미한다.

지역성의 전제 조건으로 프로그램은 모든 코드나 데이터를 균등하게 Access하지 않는다는 특성을 기본으로 한다.

즉, 지역성(Locality)이란, 기억장치 내의 정보를 균일하게 Access하는 것이 아닌 어느 한순간에 특정 부분을 집중적으로 참조하는 특성이다.

 

 

시간적 지역성(Temporal Locality)

특정 데이터가 한 번 접근되었을 경우, 가까운 미래에 또 한 번 데이터에 접근할 가능성이 높음.

for나 while 같은 반복문에 사용하는 조건 변수처럼 한 번 참조된 데이터는 잠시 후에 또 참조될 가능성이 높다는 것.

 

 

공간적 지역성(Spatial Locality)

특정 데이터와 가까운 주소가 순서대로 접근되었을 경우, 액세스 된 기억장소와 인접한 기억장소가 액세스 될 가능성이 높음.

 A[0], A[1]과 같은 데이터 배열에 연속으로 접근할 때 참조된 데이터 근처에 있는 데이터가 잠시 후에 사용될 가능성이 높다는 것.

 

 

캐시의 동작 방식

  • 데이터 요청이 들어오면, 먼저 캐시에서 데이터 탐색.
  • 캐시에 데이터가 있으면 캐시의 저장된 데이터를 제공.
  • 캐시가 없거나, 오래된 경우 원본 데이터가 저장된 곳에서 데이터 조회 후 캐시에도 데이터를 복사/갱신.
  • 오래된 데이터는 삭제.

 

더보기

 

 

 

'CS' 카테고리의 다른 글

URL  (0) 2022.06.23
파일을 압축할 때  (0) 2022.06.16
파일 시스템과 블록  (0) 2022.06.09
프로그래밍 언어  (0) 2022.06.02
79.곳곳에 도사리는 위험 (보안 위협)  (0) 2022.05.20
Comments