計算機組織與結構›Ch6 記憶體(Memory)
第 55 題/共 83 題
◀ CC 55/83
55. Memory Locality、Cache、Spatial Locality、Temporal Locality、Prefetching
#CC-06-055中Memory LocalityCacheSpatial LocalityTemporal LocalityPrefetching

請回答以下與矩陣乘法(matrix multiplication)記憶體局部性(memory locality)相關的問題。以下 C 程式碼中,同一列(row)內的元素在記憶體中是連續儲存的。這兩層巢狀迴圈對浮點數陣列 N 與 M 進行運算,每個陣列元素都是 32-bit 浮點數。

for (x=0; x<8; x++)
  for (y=0; y<8000; y++)
    N[x][y] = M[x][0] + N[x][y];

(a) [5%] 哪些變數在其存取模式中展現出時間局部性(temporal locality)?

(b) [5%] 哪些變數在其存取模式中展現出空間局部性(spatial locality)?

(c) [5%] 若快取大小沒有限制,需要多少個快取區塊(每個區塊大小為 4 個字)才能存放所有被參照到的矩陣元素?

(d) [5%] 假設陣列 N 與 M 中的資料是透過網際網路串流(類似影音串流應用)傳輸而來,且存取模式是可預測的。請問可以使用什麼技術,把相鄰的快取區塊提前載入處理器核心內的緩衝區(buffer),藉此縮短資料存取時間?(註:當資料在緩衝區中被找到時,視為一次命中,並被移入快取供下一個區塊使用)請詳細說明這個技術是如何運作的。

📄 成大114
跳轉到第題
▤完整推導請見《WH 資工筆記 · 計算機組織與結構》Ch6 記憶體(Memory)
本章題號 · 41–60 / 83