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 |