2012-12-04 39 views
0

我的問題是關於我的計算機體系結構類中的作業分配。如果有人能夠向我解釋如何解決這個問題,我會非常感激!如何查找MIPS指令的緩存命中和未命中?

問題:假設主存儲器由2^24個字組成。我們得到了一個2^10 = 1024塊的直接映射緩存。每個塊是一個MIPS字(32位)。
緩存在發生寫入未命中時使用回寫。最初,緩存爲 爲空。假設存儲在$ sp中的地址是0 mod 4,所以4($sp) 地址也是0 mod 4,依此類推。 對於以下序列中的每條指令,將其標記爲緩存命中或未命中。如果它是 是未命中,則指示寫入或讀取的塊(例如,根據其地址範圍的內存 )。

lw $s0, 4($sp) 
lw $s0, 8($sp) 
sw $s0, 8($sp) 
sw $s1, 4($sp) 
lw $s0, 4($sp) 

如何知道每條指令是否是緩存命中或未命中?我甚至不確定這意味着什麼。

+1

每個內存地址與高速緩存中的一個特定插槽相關。最初插槽全是空的,但是當讀取或寫入地址時,插槽將被填充。您的任務是確定每個指令的插槽是否已填滿,同時還考慮到幾個地址可能共享相同的插槽。 –

+0

[Direct Map Cache and cache missses]可能重複(http://stackoverflow.com/questions/8274191/direct-map-cache-and-cache-misses) – gusbro

+0

好的。所以糾正我,如果我錯了......但我相信第一個將是一個小姐,因爲它是第一次使用該插槽,第二個小姐,然後第三個會成爲一個命中或錯過,因爲8插槽被使用lw命令?或者它必須是相同的命令?然後我猜測第四個將會是一個命中,因爲已經使用了4個插槽......那麼第五個將會是一個錯過,因爲它重新開始了? –

回答

0

我認爲只有前兩個是小姐,因爲最初緩存爲空,裝入一個字時,地址和值將加載到緩存以及