예전에 Direct- mapped Cache에 대해서 설명하였다. 그러면서 잠깐 Set Associative Cache에 대해서 언급했는데
오늘은 Cache의 종류에 대해서 알아보자.
💻 Type of Cache
캐시의 종류는 Direct-mapped cache, Fully associative cache, Set associative cache 3가지로 분류 할 수 있다.
Direct- mapped cache는 이전에 작성한 포스트를 참고하면 좋을 것 같다.
Set associative cache는 일반 캐시처럼 Tag, Data ,valid 모두 다있다. 다른점은 index가 Set으로 묶여있다는 점이다.
그리고, 데이타는 index에 해당하는 Set 중 아무 곳이나 들어 갈 수 있다. 그 Set 안에만 들어가면 되는 것이다.
Set 하나에 두개의 블록이 들어가 있으므로 이는 2-way Set associative Cache이다.
Fully associative Cache는 Cache 아무곳이나 들어갈 수 있는 캐시이다.
Direct- mapped Cache의 단점은 캐시에 데이터가 들어갈 수 있는 위치가 정해져 있어서 공간 활용도가 적다는 점이었다. 이를 보완하기 위해 위 두개의 Cache가 있다.
Set associative Cache와 Fully associative Cache는 공간활용도가 높지만 Search할 때 더 많은 Tag를 봐야하므로 더 느리다는 점이 있다.
Direct mapped Cache와 Fully associative Cache는 Set associative Cache의 일종이라고 볼 수 있다.
Direct mapped Cache는 1-way associative, Fully는 n-way associative로 볼 수 있다.]
Associativity(Set의 크기)와 Data miss rate의 상관을 알아보겠다.
Associativity가 늘어나면 그만큼 캐시 공간 활용도가 높아지므로 들어갈 수 있는 데이타가 많아진다.
Data miss rate은 줄어들 것이다.
그러나, Associativity를 늘리면 늘릴 수록 missrate가 줄긴하지만, 점점 돌아오는 이득이 줄어든다.
그렇다고 이득이 없는건 아니긴 한데 굳이, search time을 늘려가면서까지 저정도 이득을 가져오기엔...
타협선을 찾아서 적절한 Associativity를 가져가는것이 좋아보인다.
'2-2 > 컴퓨터 구조' 카테고리의 다른 글
[컴퓨터 구조] Building Datapath(2) (1) | 2022.11.28 |
---|---|
[컴퓨터 구조] Building datapath(1) (0) | 2022.11.27 |
[컴퓨터 구조] Cache Performance (0) | 2022.11.25 |
[컴퓨터 구조] Cache Miss Handling (0) | 2022.11.25 |
[컴퓨터 구조] Direct- mapped Cache (0) | 2022.11.25 |