2011-11-25 117 views
2

我正在做我的功課,但我不知道如何計算總緩存未命中。我一直在試圖理解它,但它對我來說沒有意義。我得到一些Mips代碼,我需要計算緩存未命中的次數。這裏的問題是:直接映射緩存和緩存未命中

直接映射緩存。我們獲得了1024塊的直接映射緩存。每個 塊是一個MIPS字(32位)。只要發生寫入錯誤 ,緩存就會使用回寫。主存儲器由2^30個字組成。最初,緩存是空的。
確定以下指令序列的高速緩存未命中總數。

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

我不是在尋找答案。我想學習如何做到這一點,因爲我在家庭作業中有更多這樣的問題。我想就此進行演練。與此同時,我將研究這個話題,試圖找出答案。

回答

2

不知道$ SP的定位,這是不可能告訴多少緩存惦記着你都會有。 如果SP在32字節邊界上對齊,那麼在第一次訪問時將只有一個緩存行未命中。如果SP包含地址0x18,那麼您將有兩個緩存行未命中,因爲4($ sp)和8($ sp)將訪問不同的緩存行。