DRAM 的運作 (Computer Architecture 側)(二)
早先的文章中介紹了 DRAM 的運作方式,而這篇文章的將會從市面上買到的 DRAM 為出發點,試著把前一篇文章的偏理論內容跟實際可買到的 DRAM 連結起來。
電腦 (CPU) 看到的 DRAM
前文中討論過 DRAM 看起來可分成這幾個階級:
- Channel
- Rank
- Bank
但是我們市面上買到的 DRAM 卻是長這樣(借用 Micron 的圖片):
大多數對電腦組裝熟悉的人來說,都知道這樣一條綠綠的 DRAM 叫做一根 DIMM,提供了 1 channel 的頻寬。而部份的人甚至知道圖中黑黑的那個是 DRAM 晶片(它叫做 device),根據 DIMM 上是不是兩面都有擺 device,可以把 DIMM 區分成單面跟雙面,而一面通常是 1 rank。
那這樣我們可以理所當然認為一個 device 就是一個 64 bits bitwidth 的 bank(借用之前文章的圖如下),然後看上圖中有 8 devices,因此 1 rank 有 8 banks。……可惜並不是!!
事實上是每個 device 都含有多個「一部份的」 bank,而每個 bank 的 bitwidth 依照廠商設定,這個 bitwidth 在有些寫得比較清楚的規格書裡面會用 x4, x8, x16 標示,可以參照下段的圖。
多個 device 透過並聯方式當作組成了一個 bitwidth 是 64 bit 的 1 rank,例如說 64 bits 可以由八個 x8 device 或是四個 x16 device 並聯而來。除了電腦 CPU 用的 DRAM 之外,GPU、edge device 也可能組出更寬或更窄的 bitwidth。
Bank, device 設計的理由
到底,為什麼要把事情搞這麼複雜呢?一個 device 就是一個 64 bits 的 bank 不是很好嗎?為什麼要打散在多個 device 呢?這個是在電路時序、成本下得到的考量。我們來比較下面兩張圖:
第一張是「一個 device 就是一個 bank」,第二張是「把 bank 打散」的情形。可以看到第一張圖中每個 device 都會拉出 64 bits 資料線,這不僅在 DIMM 的 PCB 上會造成嚴重的信號干擾,也會大幅增加封裝成本。反觀第二張圖中,把 bank 打散之後只要拉出 16 bits 資料線,卻只要多花 2 bits 選取我要用四個 bank 中的哪個 bank,大大減緩了這個問題。
此外,一般而言,同大小下的前提下,一個 bitwidth 比較小的 DRAM 的速度也會比較快,這也是一個為何不做 x64 的 device 的原因之一。
系列文連結
-
DRAM 的運作 (Computer Architecture 側)
-
DRAM 的運作 (Computer Architecture 側)(二)
- DRAM 的運作 (Computer Architecture 側)
- DRAM 的運作 (Computer Architecture 側)(二)