🏷️cache 구조
- Block Size를 키우면, spatial locality를 더 잘 활용하게 된다.
- 다만, 너무 커지면 temporal loaclity는 점점 활용하지 못하게 된다.
- n way set-associative에서 n을 키우면, temporal loaclity를 더 잘 활용하게 된다.
- 하나의 set에서는 LRU(Least Recently Used, 가장 오래전에 참조)기법에 의해 교체되기 때문이다.
- 즉, n이 커질 수록 더 많은 블록들이 하나의 set에서 temporal locality를 이용하기 위해 줄 세워진다.
- cf. 참조된 시간에 따라 줄을 세운다는 의미
📌direct-mapped

- 1 way set-associative cache라고도 볼 수 있다.
📌set-associative

- index per set
- tag per block
- valid bit per block
📌fully associative
- 캐시 전체가 하나의 거대한 set가 된다.
- set안에 들어있는 cache block들은 무조건 줄 세우기를 당한다.
- 따라서 fully associative에서는 모든 cache block들이 줄 세우기(LRU기반)를 당한다.
- 이는 하드웨어적으로 구현할 수 없다.