記憶體階層與效能

下列何者最適合作為時間局部性的例子?

  1. A從頭開始依序將陣列的元素各讀取一次
  2. B在迴圈中多次更新同一個加總用的變數
  3. C每次都只讀取一次隨機位址的資料
查看答案與解析

正確答案:B. 在迴圈中多次更新同一個加總用的變數

時間局部性是指用過一次的資料在不久之後會再次被使用的性質,在迴圈內反覆讀寫的變數就是典型例子。這類資料在仍留在快取或暫存器的期間會被重複使用,因此存取速度變快。從頭依序讀取陣列,是連續使用相鄰位址的空間局部性的例子,與時間局部性是不同的性質。隨機只讀取一次的存取,幾乎兩種局部性都不具備。

  • A. 從頭依序讀取是空間局部性的例子。
  • B. 正確。短時間內多次使用同一個變數就是時間局部性。
  • C. 隨機各讀取一次的存取幾乎沒有局部性。
練習這個領域 前往領域頁面

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

  1. 以上述方式走訪C語言的二維陣列a[i][j]時,若內層迴圈使用j,會比內層使用i更容易變快。其原因為下列何者?
  2. 位址為32位元、容量32 KB、快取行大小64位元組的直接映射(direct-mapped)快取,其標籤(tag)為幾位元?
  3. 位址為32位元、容量32 KB、快取行大小64位元組的4路組相聯(set-associative)快取,其組數為多少?
  4. 在全相聯(fully associative)快取中,位址之中用於索引(選擇組的部分)的位元數為下列何者?
  5. L1快取的命中時間為1 ns、未命中率為5%,L2快取的命中時間為10 ns、L2的區域未命中率為20%,主記憶體的存取時間為100 ns時,平均記憶體存取時間為多少?

這個領域的比較