Block Size Considerations
Larger block은 miss rate를 줄여야함 (Spatial locality)
하지만 fixed-sized cache에서는 larger block => smaller number of cache line => more competition => more replacment => higher miss rate
Larger miss penalty
=> miss에서 cache에 더 많은 data를 load 해야함
=> 감소된 miss rate로부터 gain을 override
=> 해결책 : early restart / critical-word-first
early restart : 원하는 block의 word가 반환되면 그 즉시 실행을 재개
critical-word-first : memory를 조직화하여 최우선으로
requested word가 memory로부터 변형되어 cache에 저장되도록 함
Cache Hit/Misses
1) Cache Hit : 정상 수행
2) Cache Misses
<1> Stall the CPU pipeline
<2>Fetch block from next level of hierarchy(하위 레벨)
- Instruction cache miss : Restart instruction fetch
- Data cahe miss : Complete data access
Instruction cache miss
- original PC value 값 (현 PC - 4)를 memory에 전송
- main memory가 read 수행하고, 이에 접근을 완료할때까지 memory를 wait
- cache entry에 Write , memory로부터 data를 얻어서 entry의 data 부분에 put , 주소의 상위 비트들을 tag field에 write,
valid bit을 킨다 (turn on)
Data cache miss
- 간단하게 memory가 data와 반응 할때까지 processor를 stall
Write Through (즉시 쓰기)
- write 하면서 즉시 memory update
- write가 생각보다 오래걸림
=> write buffer를 사용해서 해결 ( memory에 쓰여질 data를 hold , write buffer가 full일때만 write stall ,CPU는 즉시 continue)
Write Back (나중 쓰기)
- data-write가 hit일때, cache에 있는 block을 update
- 각각 block이 dirty한지를 추적 (D bit, 갱신 비트)
- 만약 dirty block이 교체되면 : write it back to memory
- write buffer를 쓴다
'CS(Computer Science) > 컴퓨터구조' 카테고리의 다른 글
11. 메모리 구조(1) (0) | 2023.06.04 |
---|---|
10. 파이프라인 (3) (0) | 2023.06.04 |
10. 파이프라인 (2) (0) | 2023.06.04 |
10. 파이프라인 (1) (0) | 2023.06.04 |
9. 프로세서 (3) (0) | 2023.06.04 |