일 | 월 | 화 | 수 | 목 | 금 | 토 |
---|---|---|---|---|---|---|
1 | 2 | 3 | 4 | |||
5 | 6 | 7 | 8 | 9 | 10 | 11 |
12 | 13 | 14 | 15 | 16 | 17 | 18 |
19 | 20 | 21 | 22 | 23 | 24 | 25 |
26 | 27 | 28 | 29 | 30 | 31 |
- MacOS
- XML
- DATAPATH
- python
- DS
- html
- Algorithm
- react
- github
- DB
- javascript
- function
- mysql
- instruction
- data structure
- system
- Java
- php
- for
- architecture
- web
- Class
- CSS
- Pipelining
- control
- computer
- while
- DoM
- MIPS
- Linux
- Today
- Total
목록Miss (3)
YYYEJI
cache에서 miss가 일어났을 때 어떤 값이 새로운 data로 변경되어야 되는지에 대한 이론입니다. ① Random 랜덤으로 값을 replace 합니다. ② FIFO 가장 먼저 들어온 data가 replace 됩니다. problem - 가장 먼저 들어왔지만 자주 사용되는 data일수도 있음. ③ LRU(Least Recently Used) 가장 최근에 사용되지 않은 data가 replace 됩니다. (자주 사용되는 이론입니다.) ④ LFU(Least Frequently Used) 가장 reference가 적은 data가 replace됩니다. problem - 늦게 들어와서 reference 횟수가 적은 것일수도 있음 ◡̈
Hits과 Misses가 일어났을 때의 Cache를 먼저 살펴봅시다. Read hits이 일어났을 때는 유효한 data가 cache에 존재한다는 뜻이기에 계속 진행하면 됩니다. Read miss가 일어났을 때는 (For data cache) 1 - CPU를 stall 시킨다. 2 - Memory로부터 block를 가져온다. 3 - Cache로 data를 옮긴다. 4 - 재시작(Restart) 시킨다. Instruction cache와 data cache에서 miss가 일어났을 때의 진행되는 상황은 조금 다릅니다. Instruction을 fetch할 때 PC 값이 4가 같이 증가하기 때문에 instruction cache에서 miss가 일어나면 증가된 값을 빼줘야 됩니다. (나머지는 data cache과 ..