0

有關於解決給定這些數據的AMAT(平均存儲器存取時間)這樣的問題:存儲器存取權限時間分析建模

傳奇:高速緩存級別1 = L1高速緩存級別2 = L2主內存= M

L1, L2 and M's Hit Time are 1, 10 and 100 respectively whilst 
L1 Miss Rate is 5%, L2 5% and M 50%. 

在時鐘週期中查找AMAT。

試圖解決這個問題之後,這裏是我的解決方案:

AMAT's formula is = Hit Time X Hit Rate + Miss Penalty * Miss Rate 
Miss Penalty = AMAT for the next cache(say for example, AMAT of L2) 

所以我操縱的公式,結果弄成這個樣子:

AMAT = Hit Time L1 X Hit Rate L1 + AMAT L2 * Miss Rate L1 
AMAT L2 = Hit Time L2 X Hit Rate L2 + AMAT M * Miss Rate L2 
AMAT M = Hit Time M X Hit Rate M + [???] * Miss Rate M 

的說配方提供的數值看起來像這樣:

AMAT = 1 X .95 + AMAT L2 * .05 
AMAT L2 = 10 X .95 + AMAT M * .05 
AMAT M = 100 X .5 + [???] * .5 

所以我的第一個問題是,是米y公式是否正確? 接下來,如何獲得M的Miss Penalty?

https://math.stackexchange.com/questions/982148/average-memory-access-time-formula-and-main-memorys-miss-penalty

回答

0

你 「級聯」 扣除額是正確的。如果你錯過了L1,那麼數據必須從L2中取出,包括懲罰,並且如果你錯過了L2,則必須從RAM中取得涉及更高懲罰的數據。基於此,您的計算AMAT的方法是正確的。

現在,讓我們看看計算機體系結構。在L1之後你有L2,在L2之後可以有L3或者它可以是RAM。 RAM之後你有持久存儲(硬盤)。

但是,對HDD的訪問時間很難計算。多數分析器(例如perf,oprofile)只會讓您錯過緩存,並假設其餘讀取直接從RAM中獲取。通常情況下,現代計算機就是這種情況。從硬盤讀取標記爲I/O請求。 爲何難以計算硬盤存取時間?由於您的數據塊可能位於HDD上的任何位置,具體取決於碎片。在旋轉磁盤的情況下,數據位於磁讀取器附近時,訪問時間可能會更短。所以通常在計算AMAT時硬盤訪問時間很難預測。

這意味着如果問題陳述僅給出L1,L2,M命中時間,則無法計算HDD命中時間。然而,您可以使用性能分析器在實際應用中測量/估計它。

因此,在短期:

  1. 是您的公式是否正確? 是 - 從數學角度。從實際的角度來看,如果M命中率不是100%,就很難使用,一般沒有意義。

  2. 如何計算M錯失懲罰? 如果它沒有給出,你不能計算它。實際上,通過分析探查器輸出,您可以確定它是否適用於特定測量(由於上述原因,不能保證其將與另一測量相同)。

乾杯。