Computer Science/컴퓨터 구조

[컴퓨터 구조] Associative Mapping, Cache

바보1 2022. 12. 4. 22:14

앞의 글을 읽으시면 이해에 도움이 됩니다.

 

2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] The Basic of Cache

 

[컴퓨터 구조] The Basic of Cache

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Introduction to the Memory Hierarchy [컴퓨터 구조] Introduction to the Memory Hierarchy 앞의 글을 읽으시면 이해

hi-guten-tag.tistory.com

2022.11.23 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Direct Mapping

 

[컴퓨터 구조] Direct Mapping

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] The Basic of Cache [컴퓨터 구조] The Basic of Cache 앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 -

hi-guten-tag.tistory.com


1. Associative Cache

 

 

앞선 글인 Direct Mapping에서 해당 방식의 단점 중 하나가 바로 빈 공간이 존재한다.입니다.

하나의 block은 하나의 공간에만 들어갈 수 있고, 사용하지 않는 다른 공간은 빈 공간으로 남아있기 때문입니다.

 

이를 해결하기 위한 방식이 있는데, 바로 Associative Cache입니다.

Associative Cahce는 Fully Associatvie Cache와 Set Associative Cache로 나뉘는데,

먼저 Fully Associative Cache를 보도록 하겠습니다.


2. Fully Associative Cache

 

 

Fully Associatvie Cache는 block이 cache의 아무 장소에 들어갈 수 있는 방식입니다.

즉 메모리의 block이 cache에 들어가는 것에 대한 제한이 없습니다.

 

다만 해당 방식의 단점이 존재합니다.

 

첫 번째는 모든 entry를 검색해야 한다는 것입니다.

어떤 block이 cache의 어느 위치에 있는지 모르기 때문에 cache의 모든 entry를 검색해야 합니다.

 

두 번째는 하드웨어 크기의 증가입니다.

각각의 cache entry에 comparator를 넣어서 병렬적으로 비교해야 하기 때문에 크기가 증가한다는 단점이 있습니다.

(모든 entry를 검사함과 동시에 tag, valid를 비교하는 comparator가 들어가야 한다.)

아래에 보이는 = 들이 comparator, 뒷 글에서 자세히 설명할 예정

이러한 방식은 적은 block의 수를 가지고 있는 cache에만 효율적입니다.

 

따라서 나온 방식이 Direct와 Fully Associative의 중간인 Set Associative Cache입니다.


3. Set Associative Cache

 

 

Direct와 Fully Associative의 중간 꼴인 Set Associative Cache는 간단합니다.

Cache를 n개의 block으로 구성된 set로 나눕니다.

위와 같은 Cache를 n-way set-associative cache라고 합니다.

 

그렇다면 Cache가 총 8개의 block으로 구성되어 있고, 2-way set-associative cache 방식을 사용하면

4개의 set로 구분되겠네요.

 

메모리에 있는 block은 cache의 특정한 set에 mapping 되고, 해당 block은 set 안의 아무 위치에 들어갈 수 있습니다.

 

Direct, Set, Fully를 비교한 그림은 아래와 같습니다.

 

mapping 방식 비교

 

  • Direct Mapped
    • 12 % 8 = 4, 따라서 4번 block에 매핑됩니다.
  • Set Associative
    • 12 % 4 = 0, 따라서 0번 set의 아무 위치에 매핑됩니다.
  • Fully Associative
    • cache의 아무 위치에 매핑됩니다.

 

위의 Set Associative처럼 memory block이 어느 set에 들어갈지 결정하는 공식은 아래와 같습니다.

 

 

그러므로 메모리의 12번 block은 cache의 0번 set에 위치합니다.

 

 

이번 글은 여기서 끝내도록 하겠습니다.

 

다음 글에서는 각 mapping 방식의 차이점에 대해 알아보겠습니다.

 

2022.12.04 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] Mapping 방식의 비교

 

[컴퓨터 구조] Mapping 방식의 비교

앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 - [Computer Science/컴퓨터 구조] - [컴퓨터 구조] The Basic of Cache [컴퓨터 구조] The Basic of Cache 앞의 글을 읽으시면 이해에 도움이 됩니다. 2022.11.22 -

hi-guten-tag.tistory.com

 

감사합니다.

 

지적 환영합니다.