記憶體階層與效能

評估快取效能時,不能只看未命中率,而必須以平均記憶體存取時間來比較,其理由下列何者正確?

  1. A因為未命中率無法測量,但平均記憶體存取時間可以輕易測量
  2. B因為即使未命中率下降,命中時間也可能延長,使平均反而變慢
  3. C因為平均記憶體存取時間與命中時間無關,僅由未命中率決定
查看答案與解析

正確答案:B. 因為即使未命中率下降,命中時間也可能延長,使平均反而變慢

增加相聯度或容量會使未命中率下降,但命中時間可能變長。例如以未命中代價20個週期比較「命中1個週期、未命中率5%」與「命中2個週期、未命中率4%」,分別為 1 + 0.05 × 20 = 2.0 與 2 + 0.04 × 20 = 2.8,未命中率較低的反而較慢。平均記憶體存取時間由命中時間、未命中率、未命中代價這三者決定。未命中率可由效能計數器等測量。

  • A. 未命中率可由效能計數器等測量。
  • B. 正確。未命中率的改善可能被命中時間的惡化抵消。
  • C. 平均值由命中時間、未命中率、未命中代價這三者決定。
練習這個領域 前往領域頁面

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

  1. 讓兩個程式在同一個核心上交替執行時,有時會比各自單獨執行更慢。從快取的角度來看,下列何者是最恰當的說明?
  2. 下列何者最適合作為時間局部性的例子?
  3. 以上述方式走訪C語言的二維陣列a[i][j]時,若內層迴圈使用j,會比內層使用i更容易變快。其原因為下列何者?
  4. 位址為32位元、容量32 KB、快取行大小64位元組的直接映射(direct-mapped)快取,其標籤(tag)為幾位元?
  5. 位址為32位元、容量32 KB、快取行大小64位元組的4路組相聯(set-associative)快取,其組數為多少?

這個領域的比較