記憶體單元

半導體記憶體的基本單位是記憶體單元(memory cell),共同性質:(1) 呈現兩種穩定狀態,表示 0 與 1;(2) 可被寫入以設定狀態;(3) 可被讀取以感測狀態。單元有三個功能端子:選擇(select)、控制(讀/寫)、資料/感測。

DRAM 與 SRAM

DRAM(動態) SRAM(靜態)
儲存機制 電容上的電荷 正反器(flip-flop)邏輯
單元電晶體數 1T1C(1 電晶體 + 1 電容) 6T
重新整理 需要(電荷會漏失,約每 64 ms) 不需要
密度 高(單元小)
每位元成本
速度 較慢
典型用途 主記憶體 快取記憶體、晶片內 SRAM

DRAM 的「動態」指電荷會漏失、需週期性重新整理(refresh);即使電源持續供應,不整理資料就會消失。兩者皆為揮發性記憶體。快取用 SRAM、主記憶體用 DRAM,正是第 4 章記憶體階層「速度—成本」權衡的直接體現。

ROM 家族與快閃記憶體

  • ROM:製造時寫入,不可更改;適合大量出貨的固定微碼/查表。

  • PROM:出廠後可用電氣方式寫入一次

  • EPROM:紫外線照射整顆晶片抹除後可重寫;讀取快,但抹除麻煩。

  • EEPROM:可位元組層級電氣抹寫,寫入慢於讀取。

  • 快閃記憶體(Flash):以區塊為單位電氣抹除,密度高、成本低;是今日 SSD、記憶卡、韌體儲存的基礎。NAND flash 循序吞吐高,NOR flash 支援隨機讀取(可就地執行程式碼,常見於微控制器)。

晶片組織與模組擴充

記憶體晶片內部是單元的二維陣列。以 16 Mb DRAM(4M \(\times\) 4)為例:2048\(\times\)2048\(\times\)4 的陣列,11 條位址線分時多工傳送列位址與行位址,由 \(\overline{RAS}\)(列位址選通)與 \(\overline{CAS}\)(行位址選通)訊號鎖存。位址多工使腳位減半,且每一代容量可以四倍成長。

重新整理以為單位:重新整理計數器依序選列,讀出即回寫。典型晶片另含資料緩衝、時序與控制邏輯。

模組組織:若需要 1M\(\times\)8 的記憶體而晶片為 256K\(\times\)1,則以 8 顆晶片並聯供應 8 位元資料、4 組(rank)提供 4 倍深度,高位位址經解碼器選組。現代 DIMM 模組原理相同。

錯誤更正

錯誤類型與基本架構

半導體記憶體會發生硬性失效(單元永久損壞)與軟性錯誤(電源雜訊、宇宙射線 \(\alpha\) 粒子造成的隨機位元翻轉)。防禦手段是錯誤更正碼(ECC):

寫入時,對 \(M\) 位元資料計算 \(K\) 位元檢查碼,一併存入(共 \(M+K\) 位元);讀出時重新計算並比較,產生症狀字(syndrome):全 0 表示無錯;非 0 則指出錯誤位置,將該位元反轉即可更正。

漢明碼(單錯更正 SEC)

檢查位元數 \(K\) 須滿足 \(2^K \ge M + K + 1\)。例如 \(M=8\)\(K=4\)(SEC);再加一個總同位位元可達 SEC-DED(單錯更正、雙錯偵測),是伺服器記憶體的標準配置。

把檢查位元放在位置 1、2、4、8(2 的冪次),資料位元放其餘位置。每個檢查位元是「位置編號中含該冪次的所有資料位元」的偶同位。讀出時重算四個檢查位元,四位症狀字直接就是出錯位元的位置編號。例如症狀 \(0110_2 = 6\):第 6 個位元錯,反轉即恢復。

資料位元數 SEC 檢查位元 SEC-DED 檢查位元 SEC-DED 額外開銷
8 4 5 62.5%
16 5 6 37.5%
32 6 7 21.9%
64 7 8 12.5%

資料寬度愈大,ECC 相對開銷愈小——這是 ECC DIMM 以 72 位元存 64 位元資料(+8 檢查位元)的原因。

先進 DRAM 組織

同步 DRAM(SDRAM)

傳統(非同步)DRAM 由 \(\overline{RAS}\)/\(\overline{CAS}\) 交握控制,處理器必須等待。SDRAM 改與系統時脈同步:控制器發出命令後可以去做別的事,固定延遲(CAS latency)後資料出現;內部多個 bank 可交錯操作;burst 模式下,给一個位址即可連續輸出多筆資料,完美搭配快取行填充。

DDR 世代

DDR SDRAM 在時脈的上升與下降緣各傳一筆資料,頻寬倍增。其後每一代以更高的預取深度與 I/O 頻率延續:

世代 預取 典型資料速率 電壓
DDR 2n 200–400 MT/s 2.5 V
DDR2 4n 400–1066 MT/s 1.8 V
DDR3 8n 800–2133 MT/s 1.5 V
DDR4 8n(bank group) 1600–3200 MT/s 1.2 V
DDR5 16n,雙 32 位元子通道 4800–8800+ MT/s 1.1 V

書中提及的 RDRAM(Rambus)曾與 DDR 競爭,最終市場由開放標準的 DDR 勝出;而 HBM(高頻寬記憶體,3D 堆疊、極寬介面)則接續了「以組織創新換頻寬」的路線,成為 GPU/AI 加速器的標配。

無論 DRAM 介面如何演進,核心陣列的存取延遲改善極慢(數十年僅約 2 倍),進步主要在頻寬。這正是第 4 章快取階層、以及第 12 章管線容忍延遲技術存在的根本理由。

本章重點回顧

  • DRAM:1T1C、高密度、需重新整理,作主記憶體;SRAM:6T、快、貴,作快取。

  • ROM/PROM/EPROM/EEPROM/Flash 依「可否重寫、抹除單位」漸進;Flash 是現代非揮發儲存核心。

  • 晶片以二維陣列組織,位址分時多工(RAS/CAS);模組以多晶片擴充寬度與深度。

  • 漢明碼:\(2^K \ge M+K+1\);症狀字直接指出錯誤位置;SEC-DED 為伺服器標準。

  • SDRAM/DDR 以同步介面、多 bank、burst 與雙緣傳輸提升頻寬;延遲改善有限。

複習問題

  1. DRAM 為何需要重新整理?SRAM 為何不需要?

  2. 為什麼快取用 SRAM、主記憶體用 DRAM?

  3. EPROM、EEPROM、Flash 的抹寫方式有何不同?

  4. 32 位元資料的 SEC 需要幾個檢查位元?SEC-DED 呢?

  5. 依漢明碼規則,若讀出時症狀字為 \(1010_2\),代表什麼?

  6. SDRAM 的 burst 模式為何與快取行填充「天作之合」?

  7. DDR 如何在不提高核心時脈的情況下倍增頻寬?

9 W. Stallings, Computer Organization and Architecture, 6th ed., Chapter 5. JEDEC, DDR5 SDRAM Standard, JESD79-5. https://www.jedec.org B. Jacob et al., Memory Systems: Cache, DRAM, Disk, Morgan Kaufmann, 2007.