Computer Science/컴퓨터 구조

[컴퓨터 구조] Replacement Policy, Multi level Caches

바보1 2022. 12. 4. 23:13

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

 

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


1. Replacement Policy

 

 

교체 정책은 너무나 많지만, 앞선 글에서 사용된 대표적인 정책 하나만 살펴봅시다.

 

 

위 그림을 보면 6번 block과 8번 block이 들어갈 때, 

교체가 되는 것을 볼 수 있습니다.

 

6번이 들어갈 때는 8번과 교체되고,

8번이 들어갈 때는 0번과 교체됩니다.

 

이는 LRU(Least Recently used) 정책입니다.

해당 정책은 최근에 사용되지 않은 block을 우선적으로 교체하는 정책입니다.

LRU를 사용하기 위해서는 set의 각각의 요소에는 하나의 bit가 추가되어 언제 요소가 사용되었는지 tracking 합니다.

 

따라서 6번이 들어갈 때는 8번보다 0번이 최근에 사용되었기 때문에, 8번이 교체됩니다.

8번이 들어갈 때도 마찬가지입니다.

 

direct mapping 방식에서는 무엇을 교체해야 하는지 결정하지 않아도 됩니다.

단지 누군가가 block을 소유하고 있으면 교체하면 됩니다.

 

fully mapping 방식에서는 모든 block이 교체의 대상이 됩니다.


2. Multi level Caches

 

 

대부분의 micro processor는 additional level of caching을 지원합니다.

 

일반적으로 L2 Cache는 같은 칩 안에 들어가 있습니다.

L2 Cache는 L1 Cache에서의 miss를 처리합니다.

L2 Cache는 L1에 비해 느리고 무겁지만, 그래도 여전히 메인 메모리보다는 빠릅니다.

 

만약 L2 Cache에서도 miss가 발생한다면, 메인 메모리가 이를 처리합니다.

 

몇몇의 processor는 L3 Cache까지 지원하는 것으로 알고 있습니다.

GPU는 보통 L2까지만 사용하고, CPU는 L3까지 사용하는 것으로 알고 있습니다.

 

Multi level Cache


3. Example

 

 

Multi level Cache를 증명해봅시다.

 

CPI = 1인 4GHz의 Processor가 있다고 해봅시다.

메인 메모리 참조 시간은 100 ns, L1 cache의 instruction 당 miss rate는 2%라고 가정합시다.

 

Clock Cycle은 4GHz니까, 하나의 Clock Cycle은 0.25 ns가 되겠네요.

그렇다면 메인 메모리를 참조하는데 사용되는 Clock Cycle은 400 Clock Cycle이 됩니다.

 

만약 L2 cache가 없다면, 메인 메모리에 접근하는 Clock Cycle까지 포함하여 CPI를 계산하면 아래와 같습니다.

 

 

그렇다면 이제 L2 Cache가 있다고 가정해봅시다.

L2 Cache는 참조 시간이 2ns, L2에서도 miss가 나는 경우는 0.5%라고 가정합시다.

그러면 L2 Cache를 참조하는데 사용되는 Clock cycle은 20 Clock Cycle이 됩니다.

따라서 CPI는 아래와 같습니다.

 

 

L2 Cache의 존재 유무에 따라 성능이 크게 변하네요.

약 2.6배 변하는 모습을 볼 수 있습니다.

 

 

이제 컴퓨터 구조의 모든 정리가 끝났습니다.

아직 Datapath Simple Version을 쓰진 않았는데, 시간 나면 쓰도록 하겠습니다.

제가 정리한 글이 도움이 됐으면 좋겠습니다.

 

감사합니다.

 

지적 환영합니다.