作者wacheck (94不愛喝水)
看板Grad-ProbAsk
標題[理工] 16進位如何決定cache miss
時間Thu Dec 20 18:53:30 2018
大家好想請問一下一個基本的問題
這是題目 想問第c小題
https://i.imgur.com/mjVAa34.png
這是第C小題解答
https://i.imgur.com/8f7iZ9i.png
我的疑問:
已知index跟tag怎麼來
但想請教16進位的要怎麼看miss或hit?
(我的想法:第一次都會發生compulsory miss,我access C64E5此位址發生miss,
因為1block是16byte=4word就搬4個word上來,
所以搬C64E4,C64E5,C64E6,C64E7,但解答的C64E8居然是HIT!!!WHY!?)
請教各位大神了 感恩
--
※ 發信站: 批踢踢實業坊(ptt.cc), 來自: 36.227.138.38
※ 文章網址: https://webptt.com/m.aspx?n=bbs/Grad-ProbAsk/M.1545303212.A.FAD.html
※ 編輯: wacheck (36.227.138.38), 12/20/2018 18:54:17
1F:推 b10007034: access C64E5, miss 12/20 19:05
2F:→ b10007034: 搬C64E50, 1, 2, 3, ..., 15到cache block 12/20 19:05
3F:→ b10007034: *15(F) 12/20 19:10
4F:→ b10007034: 你想的是byte address要換成word address才會想明白 12/20 19:18
5F:→ b10007034: C64E5(byte addr)轉成21939(word addr) 12/20 20:14
6F:→ b10007034: access 21939, miss 12/20 20:14
7F:→ b10007034: 搬21938 21939 2193A 2193B到cache block 12/20 20:15
8F:→ b10007034: *31939 才對,2換成3 12/20 20:17
9F:→ b10007034: 其實block addr最直接了,只要addr裡有C64E的 12/20 20:19
10F:→ b10007034: 第一次MISS,後面都HIT 12/20 20:20
11F:→ wacheck: 感謝回覆 我恍然大悟原來我是卡在沒作轉換XD 12/20 23:27
12F:→ wacheck: 拍謝 昨天想了一下 16進位是tag+index固定 然後offset從0 12/21 19:04
13F:→ wacheck: 到15 而如果轉為word addr. 為何只要搬四個? 腦袋有點 12/21 19:06
14F:→ wacheck: 打結了QQ 12/21 19:06
15F:→ wacheck: 我知是因為1block換算後得4word 所以搬四個 但不懂這兩 12/21 19:07
16F:→ wacheck: 者的關聯 (連接不上 QQQ) 12/21 19:08
17F:推 b10007034: 我回得第一行看得懂嗎? 12/22 11:36
18F:→ b10007034: byte addr讀得懂,那word addr只是換算單位而已 12/22 11:37
19F:→ b10007034: 如果讀不懂的話,代表你cache觀念還不太通 12/22 11:38
20F:→ b10007034: 可以餵狗 HackMD Cache原理 12/22 11:39
21F:→ b10007034: cache block size決定一次要搬多少data 12/22 11:41
22F:→ wacheck: 感謝 昨天花一下午終於弄懂了 !!! 12/23 11:59