記憶體階層與效能

容量為2條快取行、採LRU替換的全相聯快取一開始為空,依A、B、A、C、B、A的順序參照區塊時,會發生幾次未命中?

  1. A4次
  2. B5次
  3. C6次
查看答案與解析

正確答案:B. 5次

依序追蹤:A(未命中,[A])、B(未命中,[A,B])、A(命中,A變成最近使用)、C(未命中,逐出最舊的B,[A,C])、B(未命中,逐出最舊的A,[C,B])、A(未命中,逐出最舊的C,[B,A]),共未命中5次。算成4次,是例如在放入C時誤以為逐出了A等的算法,在LRU中重點在於命中的A已變成最新。6次是漏看第3次A的命中所得的次數。

  • A. 4次是誤判被逐出區塊的算法。
  • B. 正確。命中的只有第3次的A,未命中為5次。
  • C. 6次是漏看第3次A的命中所得的次數。
練習這個領域 前往領域頁面

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

  1. 硬體預取特別容易發揮效果的存取為下列何者?
  2. 插入軟體預取指令時,關於要預先讀取多遠之後的資料(預取距離)的說明,下列何者正確?
  3. 在上述迴圈中,int為4位元組、快取行為64位元組,陣列不在快取中且起始位置對齊快取行邊界,若沒有預取,讀取陣列時的未命中率為多少?
  4. 矩陣乘法等所使用的迴圈分塊(loop blocking,亦稱tiling)的主要目的為下列何者?
  5. 如上將僅加總x座標的處理,改寫成陣列結構(各成分分別放入不同的陣列)後容易變快,其原因為下列何者?

這個領域的比較