記憶體階層與效能

一次未命中讀取64位元組的快取行,主記憶體的等待時間為100 ns時,若同時能處理的未命中只有1個,讀取頻寬只有約0.64 GB/s。若能同時處理10個未命中,頻寬約為多少?(假設沒有其他限制)

  1. A0.064 GB/s
  2. B0.64 GB/s
  3. C6.4 GB/s
查看答案與解析

正確答案:C. 6.4 GB/s

頻寬可由同時處理中的資料量除以等待時間求得(利特爾法則,Little's law)。未命中只有1個時為 64 B ÷ 100 ns = 0.64 GB/s,若能同時處理10個,則為 10 × 64 B ÷ 100 ns = 6.4 GB/s。要用盡主記憶體的頻寬,除了縮短等待時間之外,同時處理許多未命中的記憶體階層平行度(memory-level parallelism)不可或缺。0.64 GB/s仍是同時只有1個時的值,0.064 GB/s則是反過來除以10的值。

  • A. 0.064 GB/s不是乘以10,而是變成十分之一的值。
  • B. 0.64 GB/s是只能同時處理1個時的值。
  • C. 正確。10 × 64 B ÷ 100 ns = 6.4 GB/s。
練習這個領域 前往領域頁面

記憶體階層與效能的其他題目

  1. 寫出一次寫入後暫時不會再讀回的大量資料時,使用不經過快取的儲存(非暫存儲存,non-temporal store)的主要優點為下列何者?
  2. 快取的命中率為95%時,未命中率為多少?
  3. 從主記憶體載入未命中的快取行時,先送出CPU所需的字組(word),其餘的稍後再送的手法為下列何者?
  4. 將上述兩個迴圈合併為一個(迴圈融合,loop fusion)後,當N很大時容易變快,其原因為下列何者?
  5. 在轉置大型矩陣的處理(b[j][i] = a[i][j])中,快取未命中容易增多的理由與代表性對策的組合,下列何者正確?

這個領域的比較