手機、電腦、伺服器裡都有一顆「記憶體」,它決定了機器能同時做多少事、跑得多順。 近年的新機器幾乎都換上了 DDR5。 這篇文章把一套專業的 DDR 課程內容,改寫成不須電子背景也能看懂的版本: 從「為什麼一定要用 DRAM」,一路講到「DDR5 內部到底怎麼運作、為什麼要訓練它」。
DDR = Double Data Rate(雙倍資料率)。 時鐘訊號像節拍器一樣「噠、噠、噠」地跳,而 DDR 的資料在上升與下降兩個瞬間都傳送, 所以資料速率是時鐘頻率的兩倍。
DRAM = Dynamic Random Access Memory(動態隨機存取記憶體), 是記憶體的「材質」。而晶片裡負責跟它打交道的整套電路,稱為 SoC DDR 子系統——您可以把 SoC 想成「大腦」, 而 DDR 子系統就是大腦裡專門管倉庫的那個部門。
一句話記住: DDR 講的是「怎麼傳」(雙倍速率),DRAM 講的是「用什麼存」(動態記憶體), 兩者合起來就是我們口中的「記憶體」。
同樣是記憶體,會依「功耗」與「速度」的需求分成三種,這也是課程一開始就澄清的重點:
| 類型 | 封装形態 | 常見場合 | 特點 | 最新版本 |
|---|---|---|---|---|
| DDR(DIMM) | 可插拔模組 | 伺服器、桌上電腦 | 適合不在意功耗的場合;儲存密度高、方便更換 | DDR5 |
| LPDDR | 直接焊在板子上 | 手機、手錶、筆電 | 適合對功耗敏感的移動設備(LP = Low Power) | LPDDR5X |
| GDDR | 直接焊在板子上 | 顯示卡、AI 加速卡 | 追求極高頻率與極大頻寬 | GDDR6X |
為什麼要分這麼多種? 因為「省電」與「快」往往互相拉扯。手機要的是省電(LPDDR), 顯卡要的是爆量頻寬(GDDR),而桌機/伺服器要的是容量大、好擴充(DDR)。
電腦是「馮紐曼架構」:運算單元要不斷地從儲存處拿資料、算完再放回去。 儲存處如果用太慢的媒體,運算再快也沒用——這就是所謂的記憶體牆。 課程用四種儲存單元做了很清楚的比較:
| 儲存單元 | 組成 | 速度 | 成本/面積 | 角色比喻 |
|---|---|---|---|---|
| Register(暫存器) | 約 20 顆電晶體 | 最快 | 面積大、非常貴 | 手上的筆 |
| SRAM | 約 6 顆電晶體 | 比 Register 慢 | 面積小很多 | 桌面 |
| DRAM | 1 電晶體 + 1 電容 | 較慢、且在片外 | 面積非常小、便宜 | 房間裡的衣櫃 |
| Flash/硬碟 | 不同工藝 | 非常慢、無法支撐即時運算 | 最便宜 | 遠處的倉庫 |
課程特別強調: DDR 對整個 SoC 而言不是輔助角色,而是關鍵路徑之一—— 因為所有運算單元(CPU、GPU、NPU…)都得排隊通過它去存取資料, 它的頻寬與延遲直接決定整顆晶片的表現。
DRAM 不是做在 SoC 晶片裡面,而是在外面(插在電路板上的模組、或焊在旁邊的獨立晶片), 資料得跑過電路板上的走線才能到達。這帶來一連串麻煩:
DRAM 用一個電晶體當開關、一個電容當儲存。電容就像一個小水桶, 桶子會慢慢漏水(漏電),所以資料放久了會自然消失。 因此控制器必須定期發送「刷新(Refresh)」命令幫它補回來; DRAM 本身也能進入自刷新(Self-Refresh)模式自行維持。
別搞混兩件事: 「動態」指的是沒刷新就會忘; 「易失性(Volatile)」指的是斷電就忘。兩者原因不同,課程特別提醒不要混為一談。
課程花了不少篇幅講清楚這幾個名詞,因為它們直接關係到「容量」與「頻寬」:
| 名稱 | 是什麼 | 作用 |
|---|---|---|
| Channel(通道) | 一組獨立的資料線與命令線 | DDR 以 x64 為一個通道;LPDDR 以 x16 為一個通道。
通道數越多,總頻寬越大 |
| Rank | 同一通道上的一組晶片 | 目的是在同一通道上增加容量;晶片選擇(CS)各自獨立, 但命令/位址(CA)與資料(DQ)線是共用的 |
| Bank Group / Bank | 晶片內部的儲存庫分區 | 用來彌補儲存單元速度慢的缺點:一邊存取、一邊準備下一筆 |
| Row / Column | 儲存庫裡的橫列與直行 | 就像倉庫的「貨架」與「格位」,先開架(Activate)再取物 |
課程重點(常見誤解): 「把 Rank 數翻倍,頻寬就會翻倍」——錯! 不管有幾個 Rank,它們都共用同一個通道, 所以只能增加容量,無法增加頻寬。 想要更大頻寬,得提高速率或增加通道數。
課程給的公式很簡單,值得記下來:
頻寬 = 每根腳的資料速率(data rate per pin)× 資料位寬(pin 數)
採 LPDDR5X、單通道(16 bit):
5 GB/s = 5 × 8 Gb/s = 資料速率 × 16
→ 資料速率 = 2500 Mbps。而 LPDDR5X 最高可達 8533 Mbps,
所以單通道就夠用。
同樣 LPDDR5X 8533 Mbps:
30 × 8 Gb/s = 8533 Mbps × 16 × N 通道
→ N ≈ 1.76,所以單通道不夠,需要兩個通道才能滿足。
| 項目 | 數值 |
|---|---|
| 通道數 | 8 |
| DRAM 類型 | LPDDR4X |
| 最高速率 | 4266 Mbps |
| 最高總頻寬 | 8 × 16 bit × 4266 Mbps = 68,256 MB/s |
看懂這題,就看懂了記憶體規格: 頻寬 = 幾個通道 × 每通道幾條線 × 每條線跑多快。 這也是為什麼手機晶片要不斷增加通道數與速率。
| 訊號 | 用途 | 備註 |
|---|---|---|
| CK | 命令與位址的時鐘 | 命令類訊號跟著它走 |
| WCK | 資料的時鐘(DDR5/LPDDR5 新增) | 資料類訊號跟著它走 |
| DQ | 資料線 | 真正搬資料的腳 |
| DMI | 資料遮罩/錯誤指示 | 屬於資料訊號,與 WCK 對齊 |
| RDQS | 讀取時的資料選通 | 來源仍是 WCK |
| CA / CS | 命令/位址、晶片選擇 | 與 CK 對齊 |
| ZQ | 阻抗校正用的參考 | 外接電阻:DDR/LPDDR 為 240 Ω、GDDR 為 120 Ω |
課程澄清的關鍵: 資料速率(data rate)指的是 DQ 的頻率,也就是 WCK 頻率的兩倍—— 不是 CK 的兩倍!很多人會直覺以為是 CK,這是錯的。
在 SoC(系統單晶片)內部,負責記憶體的一整套電路稱為 DDR 子系統,典型成員包括:
有趣的是它的擺放位置:因為 DRAM 在晶片外面,DDR 子系統必須靠近晶片邊緣 才好拉線出去(課程特別糾正了「應該放晶片中央」的直覺誤解)。
功能面:把系統用的 AXI 協議轉換成 DDR 協議;保證資料完整性。
性能面:追求效率最高、延遲最小。
常見特性:ECC(錯誤修正)、RAS(可靠性)、QoS(服務品質)、ODT(晶粒終端電阻)。
它的三大核心機制是:位址映射(Address Mapping)、 亂序優化(Out of Order)、讀寫切換(Read Write Switch)。 課程用一連串問答把「調度智慧」講得很透:
五大任務:介面轉換(DFI ↔ DDR)、頻域轉換、訊號完整性(SI)、初始化與訓練、重新訓練(ReTrain)。
其中「頻域轉換」最值得一說:控制器的時鐘頻率較低(例如 800MHz), 但 DRAM 的 WCK 頻率很高(例如 3200MHz),兩者差了 4 倍。 DFI 介面上的 phase(相位)就是用來處理這個落差—— 1:4 的比例就需要 4 個 phase 來搬資料。
課程例子: LPDDR5 速率 6400 Mbps → DRAM 的 WCK 為 3200MHz → PHY 高速時鐘 3200MHz, 而控制器時鐘 800MHz → Clock Ratio = 1:4 → 需要 4 個 phase。
PHY 的內部架構大致包含:數位 PHY 與類比 PHY、PLL、Data Slice、 並串轉換(PISO/SIPO)、跨時鐘域的 Async FIFO、以及用 RDQS 取樣的 Read Latch。 業界常見的供應商有 Rambus、Synopsys、Cadence 等。
這是整套課程中最實用的一段。DDR5 每次開機時,都會先做一連串初始化:
Power Ramp → Reset → Initialization → ZQ Calibration → Training → 正常讀寫
其中的 Training 又包含:命令匯流排訓練(CBT)、 WCK2CK 訓練、DQ 訓練(DQT)。
因為在沒有訓練的情況下,這些訊號組合可能沒有對齊:
不對齊的原因來自 PVT(製程、電壓、溫度)的差異, 以及 SoC 內部路徑、電路板走線、DRAM 內部路徑長短不一。
| 主題 | 課程結論 |
|---|---|
| ZQ 校正 | DRAM 與 SoC 兩端都必須做;而且隨溫度變化還要再做 |
| CBT 與 DQT 的順序 | 不能顛倒——因為 DQ 訓練需要先有高頻的 CA |
| 訓練只做一次嗎? | 一般情況下每次上電都要做(例外是某些 one-store 方案) |
| 完全不做訓練能動嗎? | 在低頻下是有可能正常工作的 |
| ReTrain(重新訓練) | 跑一段時間後溫度變了,延遲跟著漂移,原本對齊好的訊號會偏移, 所以要重新校正 |
| 硬體 vs 軟體訓練 | 沒有哪個絕對更好:硬體快但不靈活,軟體慢但靈活, 兩者也常混合使用 |
白話總結: DDR5 的速度快到「訊號在電路板上跑的每一分毫延遲都要計較」, 所以每次開機都得先量測、校正、對齊,才能安心開始搬資料。 這也是為什麼 DDR5 開機比 DDR4 慢一點點的原因之一。
以下都是課程中特別提出來糾正的觀念,很適合拿來自我檢查:
1. 把 Rank 數翻倍,頻寬就會翻倍?
錯。同通道的所有 Rank 共用 CA 與 DQ 線,只增加容量,不增加頻寬。 要增頻寬請提高速率或增加通道數。
2. 資料速率(data rate)是 CK 頻率的兩倍?
錯。資料速率指的是 DQ 的頻率, 也就是 WCK 頻率的兩倍,與 CK 無關。
3. DMI 訊號應該與 CK 對齊?
錯。DMI 與 DQ 一樣屬於資料訊號,要與 WCK 對齊。
4. 讀取時只需要 RDQS,不需要 WCK?
錯。RDQS 的來源依然是 WCK,所以 WCK 仍然必要。
5. WCK 必須與 CK 完全對齊、不能有任何偏差?
錯。允許有偏差,但必須落在規定的範圍內(tWCK2CK 的最小值~最大值)。
6. ZQ 校正只做一次就好?
錯。它是必要的,而且隨溫度變化還要再做;SoC 與 DRAM 兩端都要。
7. DDR 對 SoC 只是輔助角色?
錯。DDR 是整個計算環節的關鍵路徑之一,對 SoC 性能至關重要。
8. DDR 這麼重要,應該放在晶片正中央?
錯。因為要與片外 DRAM 互連,在佈局上通常放在晶片邊緣。
9. 為了效率,讀寫應該盡可能頻繁切換?
錯。讀寫切換本身有代價(相關時序參數較大),能連續就連續。
10. 開頁策略(open page)一定優於關頁策略(closed page)?
錯。哪種更好取決於實際場景,沒有絕對答案。
課程最後對未來下的判斷很明確:
換句話說,DDR5 只是這條演進路線上的其中一站: 速率會繼續往上推,而如何在更快的同時維持省電與穩定,才是真正的挑戰。
給一般讀者的一句話: 記憶體不是「越大越快就好」的簡單零件,而是晶片與外部世界之間最關鍵的橋樑。 下一次您看到「DDR5-6000」這樣的規格時,就會知道那背後藏著多少工程細節。
本文為科普整理,內容取材自網路上的 DDR 基礎課程教材,經重新編寫與白話化而成。
文中數據與技術細節僅供理解參考,實際規格請以 JEDEC 標準與各廠商官方文件為準。