2013-11-25 90 views
5

我絕望地停留在作業問題上,我希望能夠幫助您更好地理解它。下面是我得到什麼:如何計算3級緩存的有效CPI

  1. CPU底座CPI = 2,時鐘速率= 2GHz的
  2. 主緩存,速率小姐/指令= 7%
  3. L-2的高速緩存訪​​問時間= 15ns的
  4. L-2高速緩存的,本地速率小姐/指令= 30%
  5. L-3的高速緩存訪​​問時間= 30ns的
  6. L-3緩存,全球未命中率/指令= 3%,主存儲器存取時間= 150ns的

什麼是有效CPI

這是我的理解,我需要計算每個緩存級別的未命中罰分。

  • L1未命中L2的罰分=存取時間= 15ns的/(1ns的/ 2CC)= 30個時鐘週期L3 = 30ns的的
  • L2未命中損失=訪問時間/(1ns的/ 2CC)= 60個時鐘週期
  • MM的
  • L3缺失罰分=存取時間= 150ns的/(1ns的/ 2CC)= 300個時鐘週期

現在我需要計算有效CPI。這是我有點困惑。

相信應該是:

CPI = BaseCPI +(%L1 MR/INSTR * L1失效損失)+(%L1 MR/INSTR * %L2 MR/INSTR * L2未命中損失)+(%全球MR/INSTR * L3小姐罰款)

如果我做到這一點,我得到

CPI = 2.0 +(0.07 * 30)+(0.07 * 0.3 * 60 )+(0.03 * 30 0)= 14.36


電子郵件我的教練,因爲沒有人在班上了解的全局和局部的1-2分鐘的解釋之後,我被告知,我的答案是接近的,但錯誤的。如果有人能夠提供一些見解,或者甚至指向我一個很好的教程,我將不勝感激。我可以理解如何計算1和2級緩存的有效CPI。跳轉到3讓我感到困惑。

+1

相關討論:[http://stackoverflow.com/questions/20483999/calculating-actual-effective-cpi-for-3-level-cache/20617511](http://stackoverflow.com/questions/ 20483999/calculate-actual-effective-cpi-for-3-level-cache/20617511) – chus

回答

0

從不同的方向考慮它可能會有所幫助。如果我們假設我們將執行1,000,000條指令,給定您的主緩存命中率,那麼93%的命中將只需要2CPI。 7%,或70,000將需要達到較低的緩存水平。在70,000中,70%(49,000)將在L2中擊中並且需要15ns(或30CPI)。剩下21,000只需要L3或更低。 97%(20370)將在L3中命中並需要60CPI。其餘的630需要300CPI的存儲器訪問。

因此,整個時鐘的總時鐘數爲930,000 * 2 + 49,000 * 30 + 20370 * 60 + 630 * 300,總計4,741,200,指令數爲1,000,000,給出了有效的CPI 4.7412。

這可能仍然不正確,因爲我不完全確定全球/本地缺失率在這個特定問題上的區別是什麼,以及如何在這裏應用它,但是這至少表明了不同的方法幫助理解這個問題。例如,它還假定在60個時鐘的L2中的錯誤懲罰是整個懲罰 - 換句話說,在主要和L2中錯過的接入以及從L3取得的接入只需要60個時鐘,或者是否需要60個時鐘時鐘將其從L3轉移到L2中,然後再增加30個時鐘,將其從L2轉換爲主,然後是通常的2個時鐘,在L2未命中時總共需要92個時鐘?也許這就是本地/全球之間的區別?

+0

首先感謝回覆。我做了一些類似於你最初的建議。在再次與我的教授交談後,他說我的公式是正確的。我認爲我的問題在於錯失處罰。如果我正確地閱讀你的文章,那也是你想要展示的內容。回到搗鼓一些數字。 – user2990107

-1

WCU問題吧?我有同班同學。

檢查D2L。所提供的完整第5章pdf的第18-20頁。所需的教科書計算機組織和設計對這些問題進行了相當詳細的介紹。乍一看,我認爲你可能會做一些不正確的操作。正確的號碼...錯誤的操作。我正在自己解決這個問題。我在這裏後,如果我發現我的答案

0
  • 嗨,我在242也,我不知道這是否是正確的,但無論這 是我得到了..

    主錯過懲罰= 150ns /(1/2)= 300個週期。 L2未命中= 15ns /(1/2) = 30個週期。 L3未命中= 30 ns /(1/2)= 60個週期。

    所以CPI = 2 +(07 * 300)+(07 * 0.3 * 30)+(03 * 60)= 25.43

0

嘿,所以我給他發郵件詢問此溶液

有效CPI = 2.0 + 0.07×30 + 0.30×60 + 0.03×300 = 31.1

和他的反應是,L1和L3都是正確的,但我不得不考慮到本地對L2的錯過率。不知道這是什麼意思呢,但希望這一點信息有助於

-1

說話的教授後,他說,這個公式是對的,但他告訴我,他不能告訴我,如果答案是正確與否。他似乎暗示它是正確的,但它可能只是語言障礙的誤解。

1

如果它是這樣的: 對二級高速緩存的有效CPI是:

器CPi = CPI(正常)+ MissRAteL1 * MissPenaltyL2 + GlobalMissRAte * TotalMissPenalty

然後三級緩存它可能是:

CPI = CPI + MissRateL1 * MissPenaltyL2 +(MISSRATEL2/MissRAteL1)(MissPEnaltyL1 + MissPEnaltyL2)+ GlobalMiss費率(MissPEnaltyL1 + MissPEnaltyL2 + MissPEnaltyL3)

CPI = 2 + 7%x60 +(7%/ 30%)x(60 + 30)+ 3%x(300 + 60 + 90)