看板 Grad-ProbAsk 關於我們 聯絡資訊
Consider a two-way set associative cache which has 12 blocks, a 4-word block size, and a 32 bit address. 請問這題要算index bit的話是2還是3? 高銘解答是寫3,因為6<2^3。 但是前面爬文,有人的手邊解答是2,原因是因為"如果你用3個bit去記錄的話有可能會有 多出來的記憶體位罝,但是如果你用2個bit去當index的話,雖然會少了一些位罝,但是這 並不會有非法的位置出現,只是少了一些空間上的利用而已。" 這句話我就有疑問了,怎麼會沒有非法位置出現呢?今天若是取word address=20,那麼 他就會在第5個位置被存取(block address=5,TAG=0,index=5),那如果index bit只有2, 最多也才只有4個位置,怎麼不違法? 謝謝各位解答!! -- ※ 發信站: 批踢踢實業坊(ptt.cc) ◆ From: 118.171.36.128 ※ 編輯: boy5548 來自: 118.171.36.128 (02/03 14:21)
babygoat:我覺得還是用到3個bits去記錄index 02/03 14:33
xygod:應該說拿word address 28做存取,用三個index bit會在7這個 02/03 16:23
xygod:位置,但你沒有七這個block,你用index為兩個bit的,頂多少 02/03 16:24
xygod:用兩個block,存取的時候並不會有錯。 02/03 16:25
xygod:你上面那個例子用兩個bit的index,addr.20的index要是5%4=1 02/03 16:26
eddie780217:高銘明明就是給2啊..... 用3bit要路改電路 02/03 19:25
hunter0904:cache要改什麼電路 樓上可以分享嗎? 02/03 20:26
hunter0904:我手邊網路上買的解答是3 我記憶中張凡的應該也是3 02/03 20:28
sagraffiti:應該是題目有點問題 02/04 15:52
aoqq12:這題應該是2 因為正常來說你用3會有問題 02/05 11:39
aoqq12:與其給3讓它出問題 不如寫2 02/05 11:39
boy5548:為什麼3個會出問題?? 02/05 14:06
aoqq12:一般 cache的格式你應該知道吧 02/05 18:10
aoqq12:physical address不會因為你少那兩個 cache frame 02/05 18:10
aoqq12:就不用那兩個 還是會用到 如果你設定三個的話 02/05 18:11
aoqq12:3個bit的話 需要8個 你只有6個 那如果physical address 02/05 18:12
aoqq12:剛好是在111 or 110的cache位置 這就錯誤嚕 02/05 18:13
sneak: cache要改什麼電路 https://daxiv.com 09/11 14:12