記憶體設計

DRAM 更新(refresh)

讓 DRAM 不致遺忘的、永不停歇的家務。由於每個 DRAM 單元的電荷會緩緩漏掉,記憶體控制器必須週期性地走過每一列、讀出每個單元、立刻以全強度把值重寫回去——像一位圖書館員,必須不斷在逐漸褪色的鉛筆字消失前再描一遍。錯過期限(室溫下列的資料大約只活 64 毫秒)位元就會悄悄翻成錯值。

更新並非免費:某列正在更新時,它無法服務真正的讀寫,所以更新會偷走頻寬;而在高溫(漏電更嚴重)下,控制器必須更頻繁地更新,吃掉更多。隨著 DRAM 密度攀升,更新開銷也增加,這正是標準裡加入溫度補償更新、以及分庫(per-bank)或細粒度更新等技巧、把工作交錯進行的原因。在「自我更新」模式下,DRAM 在系統其餘部分休眠時自己更新——對電池供電的待機至關重要。

典型 DDR 記憶庫的更新時序預算

惡名昭彰的「Rowhammer」攻擊正利用更新時序:快速反覆敲打某一列的字元線,可讓相鄰列的電荷在下一次更新前漏得夠快,足以翻掉它們的位元。

又稱
memory refreshauto-refreshself-refresh記憶體更新