2012-04-17 38 views
2

我很困擾兩個問題。我將包括這個問題的相關細節,任何指導將不勝感激。如果可以,請給出解釋。多級緩存性能

假設您具有以下針對處理器的統計信息,並具有多個不同的內存層次結構選項。

Base CPI = 1.5 
Processor Speed = 2 GHZ 
Main Memory Access Time = 100ns 
L1 miss rate per instruction = 7% 
L2 direct mapped access = 12 cycles 
Global miss rate with L2 direct mapped = 3.5% 
L2 8-way set associative access = 28 cycles 
Global miss rate with L2 8-way set associative access = 1.5%  

注意:全局未命中率參考的是,在高速緩存中的所有級別錯過(因此必須訪問主存)

  1. 計算出總的CPI,如果二級緩存是可用的百分比是直接映射的。

  2. 如果L2可用並且是8路組關聯,則計算總CPI。

回答

5

我現在明白了這個問題,所以我想我已經在這裏解釋了它,以改善論壇的更多信息。

首先,每個指令

總CPI =基本CPI +內存停頓週期

每指令存儲器-停頓週期=失效損失(在週期)×率小姐

的第一階如果沒有第二個緩存,業務就是找出錯過的懲罰。這很容易通過以下計算確定:

主存儲器存取時間/(1 /處理器速度)=(100)/(0.5)= 200次循環

注意:主存儲器存取時間是在NS,並且處理器速度的倒​​數將以ns /週期爲單位,所以通過除以二得到循環數。我們正在做這個計算,因爲它需要一定的時間才能進入主存(100ns),而處理器的速度決定了我們可以走多快(2GHz),並且通過反轉我們可以計算出時鐘頻率變爲時鐘頻率進入主內存所需的週期數(錯過懲罰)。

由於問題涉及兩個緩存,當L1中有一個未命中時,將會嘗試從L2中檢索信息,然後如果信息仍未找到,它將訪問主存儲器,所以流程看起來像這個。

訪問L1 ----->接入L2 ----->訪問主存

(它暗示,如果有一個「打」我們不需要繼續流)

問題告訴我們,L2直接映射訪問需要= 12個週期

因此計算將看起來如下:

總CPI = 1.5 +(0.07×12)+(0.035×200)= 9.34 CPI

因爲你錯過了7%的時間,你需要訪問L2並需要12個週期,因此你將兩者相乘。那麼如果仍然沒有找到,我們必須訪問需要200個週期的主存儲器,並且全局缺失率是3.5%

總CPI = 1.5 +(0。07×28)+(0.015×200)= 6.46

第二計算被以類似的方式

0

的回答第一個問題的部分進行基於解釋過的。我認爲這意味着如果只有一個緩存級別,我們應該計算CPI。這改變了很多東西....

1)只有L1緩存系統

Miss penalty = 100ns/(1/2GHz) = 200 cycles 
First-level Cache CPI = 1.5 + (0.07 * 200) = 15.5 

2)L2直接映射高速緩存

L1 miss, L2 hit penalty = 12 cycles 
Both miss penalty = 12 + 200 = 212 cycles 
Total CPI = 1.5 + (0.07 * 12) + (0.035 * 212) = 9.76 

3)L2八路集聯想緩存

L1 miss, L2 hit penalty = 28 cycles 
Both miss penalty = 28 + 200 = 228 cycles 
Total CPI = 1.5 + (0.07 * 28) + (0.015 * 228) = 6.88 

我不知道這些答案是否正確,但我可以更新這篇文章,一旦我回到我的家庭作業。

而且,請注意,這是Patterson和Hennessy的計算機組織和設計第5版中的問題5.7.4