사망년/컴퓨터구조

캐시 사상방식

stop-zero 2023. 12. 3. 17:14

캐시 메모리의 사상 방식은 주기억장치와 CPU 사이에 위치한 캐시 메모리에 데이터를 저장하는 방법을 결정한다. 주로 세 가지 사상 방식에 대해 알아보고자 한다. 

 

1. 직접 사상(Direct Mapping)

주소를 캐시 블록에 직접 매핑하는 방식이다. 메인 메모리 주소를 캐시 주소로 직접 변환하는 것으로 캐시 라인의 인덱스에 주소를 할당한다. 한 주소가 특정 캐시 라인에만 매핑되므로 충돌이 발생할 수 있다. 이 때문에 캐시 매모리에 충돌을 최소화하기 위한 대체 전략(LRU 등)이 필요할 수도 있다. 각 메모리 블록이 캐시 슬롯 하나에만 할당되는 방식으로 간단한 하드웨어 구현이 가능하지만 충돌 발생 시 슬롯을 공유하는 다른 블록이 적재될 때 Swap-Out될 가능성이 있다.

 

직접 사상 캐시의 예

기억장치 블록 번호 j가 캐시 슬롯 번호 i 로 매핑되는 방식은 j를 m(캐시 슬롯의 전체 수)으로 나눈 나머지 값으로 결정된다. 

캐시 슬롯의 전체 수가 8개인 경우(j mod 8), 기억장치 블록 번호가 0부터 7까지 있다면 이들은 각각 0부터 7번의 캐시 슬롯에 직접 매핑된다. 따라서 각 블록은 해당 번호에 따라 캐시 슬롯에 할당된다. 

i = j mod m

 

2. 완전 - 연관 사상 (Fully-Associative Mapping)

메모리의 어느 위치든 캐시 블록에 저장할 수 있는 방식이다. 메모리 주소를 캐시에 저장할 때, 캐시 블록에 비어있는 곳이 있으면 쓰거나, 이미 사용 중인 블록 중에서 교체 알고리즘에 따라 어떤 블록을 대체할지 결정한다.

메모리 주소 형식에서 태그 필드(t), 슬롯 필드(s), 단어 필드(w)로 구성되며, 태그 필드만 존재한다. 이는 캐시 슬롯의 번호를 나타내며, 모든 슬롯이 동일한 태그를 가질 수 있다. 예를 들어 태그 필드가 5비트로 구성되어 있다면, 각 블록은 5비트로 표시되며, 이를 통해 캐시 슬롯에 할당된다. 

연관 사상 캐시의 장점은 새로운 블록이 캐시로 적재될 때 슬롯 선택이 자유롭다. 따라서 지역성이 높은 경우 적중률이 높아질 수 있다. 그러나 모든 캐시 슬롯의 태그를 동시에 검사하기 위해 매우 복잡하고 비용이 높은 회로가 필요하다는 단점이 있다. 

 

3. 세트 - 연관 사상(Set Associative)

직접 사상과 전체 사상의 중간에 위치한 방식으로 여러 개의 블록이 집합을 형성하고 그 안에서만 메모리 주소를 할당하는 방식이다. 주기억장치의 블록 그룹이 하나의 캐시 세트를 공유하며, 이 세트에는 두 개 이상의 슬롯이 적재될 수 있다.

캐시는 여러 개의 세트로 구분되고, 각 세트는 여러 개의 슬롯으로 구성된다. 전체 주기억장치 블록 수를 m이라 하고, 주기억장치 블록이 적재될 수 있는 캐시 세트 번호를 i로 표현할 때, m = v x k로 표현된다. 여기서 v는 세트의 수, k는 각 세트 내의 슬롯 수를 나타낸다. i = j mod v 에서 j 는 주기억장치 블록 번호이다. 

세트 - 연관 사상의 기본 주소 구조:

- 메모리 주소: t bits (태그 필드) + s bits (세트 번호) + w bits (워드 단위)

- 세트 번호 s:캐시 세트의 개수를 결정

- 워드 단위 w: 각 블록 내 단어들을 구분

- 태그 필드 t: 각 블록의 유일한 태그 값

 

예시:

- 세트의 개수: 8개 (2^3)

- 세트 내 슬롯의 개수: 4개

- 블록 내 워드의 개수: 4개

- 주기억장치 블록의 개수: 64개 (2^6)

이에 따라 메모리 주소를 3비트의 세트 번호로 구분하고, 세트에는 4개의 슬롯이 있다. 예를 들어, 메모리 주소 001100 001 표시된 세트 번호 1번에 해당하며, 세트 내에서 4개의 슬롯 어느 슬롯에 캐시될지가 정해진다. 이를 통해 메모리 블록이 어느 세트의 어느 슬롯에 위치하는지를 결정하게 된다.

 

김창환 [컴퓨터구조] 복두출판사 p.197~201

'사망년 > 컴퓨터구조' 카테고리의 다른 글

버스 중재 방식  (1) 2023.12.05
CPU의 기본 구조  (2) 2023.12.03
chapter 03 산술과 논리연산  (0) 2023.09.24
chapter 02 자료 표현  (0) 2023.09.19
Chapter 01 컴퓨터 시스템 개요  (0) 2023.09.11