iT邦幫忙

2024 iThome 鐵人賽

DAY 20
0

Memory 是存放指令、資料及程式碼的地方。在近年加速的幅度遠不如 Processor,加速的幅度可能會拖累 Processor 的表現,整體效能改善不大。

Cache

Cache 使用 SRAM 製成,體積小、密度小,但速度快過 DRAM。
程式碼本身並不知道 Cache 的存在,搬動是靠硬體執行。

Locality

  1. Temporal Locality:存取過的資料短時間內可能再度被存取。
  2. Spatial Locality:存取過資料的附近資料也可能一起被存取。
    Cache 的效能表現是基於 Locality。

Direct Mapped Cache

檢查 Tag 及 Valid 位元,如果都是1表示該資料可以再 Main Memory 找到。
每個 block 只含一個 word,對附近的值沒有影響,只有 Temporal Locality。

Cache Miss 類型

  1. Compulsory:第一次 search 一定是 Miss,因為 Cache 是空的。
  2. Conflict:同一個 indexed 的值只能放在固定的位址,容易導致資料搶位,可透過增加空間或使用 Full Associative 來解決。
  3. Capacity:block 太大,導致 Cache 一次放不了太多資料,容量不足。

Write Back / Write Through

  1. Write Back Cache:允許寫回 Cache 就好,不需要每次都寫回 Main Memory,但當資料再次取用時一定要寫回。
  2. Write Through Cache:每次寫回都必須同時寫回 Main Memory 及 Cache。
  3. Write Buffer:只要寫到 buffer,程式就認為已經寫回並繼續執行。這裡再慢慢寫回 Main Memory,可以節省時間,但寫入頻率不能太高。

AMAT (Average Memory Access Time)

公式:
AMAT = HitTime + MissRate * MissPenalty
改善 Cache 效能需要同時改進多個指標,但改進一個會影響其他兩個,因此需要仔細評估。

Reduce Miss Rate 方法

  1. 減少 Conflict Miss:使用 Fully Associative Cache(允許 Block 放在 Cache 任意位置),但是搜尋時間會增加。
  2. Multiple Levels Cache:使用多層 Cache,每層 Cache 的設計與優化方向不同。

上一篇
[Day19] Processor 概念 (2/2)
下一篇
[Day21] Memory Hierarchy
系列文
RISC-V 與處理器之架構學習及應用30
圖片
  直播研討會
圖片
{{ item.channelVendor }} {{ item.webinarstarted }} |
{{ formatDate(item.duration) }}
直播中

尚未有邦友留言

立即登入留言