1. Memory hierarchy general

//{Processor [Control] [Datapath (Registers)] [On-chip cach]}

Registers - On-chip cache - Second level cache (SRAM) - Main memory (DRAM) - Secondary storage (Disk)


* Principle of locality

Temporal locality: 같은 아이템이 곧 다시 쓰이게 될 거임

Spatial locality: 주위 아이템이 곧 쓰이게 될 거임

-> Memory Hierarchy가 작동할 수 있는 이유는 principle of locality가 있기 때문임!



2. Basics of Cache

Direct mapped cache: lower level에 있는 데이타들이 cache에 있을 곳이 단 한 군데! 정해져 있다. 

즉, 여러 lower level 데이타들이 upper level의 장소를 공유한다.

->캐쉬에 있을 장소 = 블록 주소 % 캐쉬 안에 있는 캐쉬 블록 개수


* Hit vs. Miss

Hit: OK

Miss: Stall the CPU -> fetch block from memory -> deliver to cache -> restart


* Write through (계속 메모리에 저장) vs . Write back (replace될 때만 저장) //아마 따로 정리 예정



3. Improving cache performance

Miss penalty: 캐쉬의 블록을 알맞은 블록으로 replace하는 데 걸리는 시간 + 그 블록을 프로세서에게 전달하는 시간


* 3 placement policies 

1. Direct mapped 

(multiple word direct mapped cache)

장점: spatial locality

단점: miss시 entire block을 가져와야 한다

블록크기가 커지면 miss ratio는 작아지지만 miss penalty는 커진다.

2. Fully Associative

- 캐쉬의 아무 곳에나 block을 넣는다. 데이터를 찾을 때 병렬적으로 모든 캐쉬 태그를 비교

- loww miss rate, but complex HW cost

3. Set Associative

- 메모리 블록 position: (block #) % (# of sets in the cache)

- 위의 두 개의 중간


* Replacement Algorithm

1. Random

2. FIFO - 자주 쓰이는 block을 replace 해 버릴 가능성

3. LRU (Least Recently Used) - Time stamp 필요. 그리고 time stamp 업로드시 오버헤드

4. LFU (Least Frequently Used) - Counter 필요. 가장 최근 거를 replace 해버릴 가능성이 있다.




'나의' 카테고리의 다른 글

Chapter 6. Storage and Other I/O Topics  (0) 2011.03.16
Virtual Memory  (0) 2011.03.14
Chapter 3. Arithmetic for computers  (0) 2011.03.13
캡스톤 - compass sensor / 값 출력  (0) 2011.03.12
Big endian & Little endian  (0) 2011.03.09

+ Recent posts