Cache Memory 소개

mydailylogs
|2022. 11. 28. 00:21

Memory Hierarchy

그림 1. 메모리 계층 구조

현대의 모든 시스템에서 차용하는 메모리 계층 구조.

일반적으로 저장장치 디바이스들은 위에서 아래 수준으로 이동함에 따라 더 느려지고, 더 값싸지고, 더 커진다.

(1) 최상위(L0)에는 CPU가 한 개의 클럭 사이클 내에 접근할 수 있는 적은 수의 빠른 CPU 레지스터들이 위치한다.

(2) 그 다음은 몇 CPU 클럭 사이클 내에 접근할 수 있는 한 개 이상의 작은 것에서부터 적당한 크기의 SRAM 기반 캐시 메모리가 위치한다.

(3) 그 다음으로 수백, 수천 클럭 사이클 동안에 접근될 수 있는 DRAM 기반 메인 메모리가 따라온다.

(4) 다음은 느리지만 엄청난 크기의 지역 디스크들이 있다.

(5) 마지막으로 일부 시스템들은 네트워크로 접근할 수 있는 원격 서버 상의 추가적인 디스크를 포함하기도 한다.

메모리 계층 구조에서의 캐시

일반적으로 캐시는 보다 크고 느린 디바이스에 저장된 데이터 객체를 위한 준비 영역으로 사용하는 작고 빠른 저장 디바이스이다. 캐시를 사용하는 과정은 캐싱으로 알려져 있다.

메모리 계층 구조의 중심 개념은 각 k에 대해, 레벨 k에 있는 보다 빠르고 더 작은 저장 장치가 레벨 k + 1에 있는 더 크고 더 느린 디바이스를 위한 캐시 서비스를 제공한다는 것이다. 예를 들어 로컬 디스크는 네트워크 너머 원격 디스크로부터 가져온 파일들에 대한 캐시로 서비스하며, 메인 메모리는 로컬 디스크 상의 데이터에 대한 캐시로 서비스하는 식으로 가장 작은 캐시인 CPU 레지스터 집합에 이를 때까지 지속된다.

그림 2. 메모리 계층구조에서 캐싱의 기본 원리

위의 그림은 메모리 계층 구조에서 캐싱의 일반적인 개념을 보여준다. 레벨 k + 1에서 저장장치는 블록이라고 하는 연속된 데이터 객체 볼륨으로 나뉜다. 각 블록은 유일한 주소 도는 이름을 가지며, 이들은 자신을 다른 블록과 구분해준다.

이때 블록은 가변 크기를 가지게 되는데, 예를 들어 그림 2에서의 레벨 k + 1 저장 장치는 16개의 고정크기 블록으로 나뉘며 0에서 15까지 숫자가 붙어 있다.

마찬가지로, 레벨 k에서의 저장장치는 레벨 k + 1에 있는 블록들과 같은 크기인 더 작은 집합의 블록들로 나뉜다. 레벨 k에 있는 캐시는 레벨 k + 1에서 온 쁠록들의 부분집합인 사본을 포함한다. 현재 그림에서도 4, 9, 14, 3의 사본을 가지고 있다.

데이터는 항상 레벨 k와 k + 1 사이에서 블록 크기의 전송 유닛으로 복사된다. 블록 크기가 계층 구조의 인접한 모든 쌍들 사이에서 고정되어 있는 반면, 다른 레벨의 쌍들은 서로 다른 블록 크기를 가질 수 있다. 예를 들어, L1과 L0 사이의 전송은 일반적으로 한 개의 워드 블록을 사용한다. L2와 L1 (L3와 L2, L4와 L3) 전송은 일반적으로 8에서 16 워드의 블록을 사용한다. L5와 L4 간의 전송은 수백 또는 수천 바이트를 갖는 블록을 사용한다. 일반적으로 계층 구조에서 더 낮은 곳에 위치한 디바이스들은 더 긴 접근 시간을 가지게 되며, 접근 시간을 줄이고자 하는 일환으로 더 큰 블록 크기를 사용한다.

 

 

'CS' 카테고리의 다른 글

기본 cache memory 구조  (0) 2022.11.28
Cache Hit, Cache Miss 개념, Cache Miss의 종류  (0) 2022.11.28
Ch2. Operating-System Structures  (0) 2022.11.15
[리눅스 프로그래밍] Kernel 개요  (1) 2022.09.23
[OS] Introduction  (1) 2022.09.23