출처 : http://www.cyworld.com/uryoni_home2/3661131
Cache Organization
Cache가 어떻게 체계화되는지의 방법을 충분히 이해하기 위해 두 가지 용어는 정의가 필요하다. 이 용어는 cache page와 cache line이다. Cache page부터 정의해보면, main memory는 cache page로 불리는 같은 크기의 조각으로 나누어진다. Page의 크기는 cache의 크기와 cache가 체계화되는 방법에 의존된다. Cache page는 cache line으로 불리는 더 작은 조각으로 나누어진다. Cache line의 크기는 processor와 cache design에 의해 결정된다. 그림 1은 main memory가 cache page들로 나누어지는 방법과 cache page가 cache line들로 나누어지는 방법을 보여준다.
1. Fully-Associative
첫 번째 cache 체계는 Fully-Associative cache이다. 그림 2는 Fully-Associative cache의 다이어그램을 보여준다. 이 체계적 구조는 cache의 어느 장소로의 저장이 main memory의 어느 line이나 허가된다. Fully-Associative cache는 cache page를 사용하지 않고, 단지 line을 사용한다. Main memory와 cache memory는 같은 크기의 line으로 나누어진다. 예를 들어 그림 2는 main memory의 Line 1이 cache의 Line 0으로 저장되는 것을 보여준다. 그러나 이것은 단지 가능성만을 보여주는 것이 아니고, Line 1은 cache안의 어느 장소에든 저장된다. 어느 cache line이든 어느 memory line에 저장할 수 있고, 그래서 Fully-Associative이다.
Fully-Associative 구조는 어느 memory 위치든 어느 cache 위치에 저장될 수 있기 때문에 최고의 성능을 제공한다. 단점은 이러한 구조를 충족하는 복잡성이다. 복잡성은 요청된 데이터가 cache로 제공되는 결정을 갖는데서 온다. Timing 요구을 만족하기 위해, 현재의 주소는 TRAM으로 제공되는 모든 주소를 비교해야 한다. 이것은 복잡성의 증가와 큰 cache를 충족하는 비용으로 인해 많은 수의 비교기를 요구한다. 그러므로 cache의 이러한 종류는 4K보다 작은 cache를 위해 일반적으로 사용된다.
2. Direct Map
Direct Mapped cache는 1-Way set associative cache로 불린다. 그림 3은 Direct Map 구조의 다이어그램을 보여준다. 이 구조에서 main memory는 cache page로 나누어진다. 각 page의 크기는 cache의 크기와 같다. Fully-Associative cache와 다르게 Direct Map cache는 cache의 같은 line으로 memory의 특정한 line만이 저장할 수 있다. 예를 들어 memory의 어느 page의 Line 0은 cache memory의 Line 0에 저장되어야 한다. 그러므로 만약 Page 0의 Line 0은 cache 내부에 저장되고, Page 1의 Line 0이 요청되면 Page 0의 Line 0은 Page 1의 Line 0으로 교체될 것이다. 이 구조는 대응하는 cache line으로 memory line이 직접적으로 그려진다. 그래서 Direct Mapped cache이다.
Direct Mapped cache 구조는 모든 세 가지 caching 구조에서 가장 적은 복잡성을 갖는다. Direct Mapped cache는 현재 요청된 주소가 단지 하나의 cache 주소와 비교를 요청한다. 이러한 복잡성이 적은 구현으로 다른 caching 구조보다 훨씬 저렴하다. 단점은 Direct Mapped cache는 훨씬 낮은 수준의 성능으로 유연성이 적고, 특히 cache page 사이를 점핑할 때 두드러진다.
3. Set Associative
Set-Associative cache 구조는 Fully-Associative와 Direct Mapped caching 구조의 혼합형이다. 이 구조는 cache way로 불리는 같은 section(2 또는 4 sections)으로 cache SRAM을 나눔으로 동작한다. Cache page 크기는 cache way의 크기와 같다. 각 cache way는 작은 direct mapped cache와 같이 다루어진다. 그림 4는 2-Way Set Associate cache 구조의 다이어그램을 보여준다. 이 구조에서 memory의 두 라인은 언제라도 저장되어질 수 있다.
이 구조는 비교기의 수가 cache way의 수와 같기 때문에 Fully-Associative cache보다 복잡성이 덜하다. 2-Way Set-Associate cache는 단지 Fully-Associative 구조보다 적은 비용의 구조를 만드는 두 개의 비교기을 요구한다.