2Rx8 and 1Rx8 DDR的Rank與單面雙面無關

最近忙著把NAS的記憶體升級,於是逛了一下網路商城發現規格實在是五花八門,除了速度與第幾代DDR的基本規格之外,令人混淆的不外乎就是Rank了,因為市場上有 1Rx8 與 2Rx8 ,到底有沒有差別? 於是我稍微研究了一下記憶體。

記憶體的層級

如下圖,電腦內的記憶體架構是分層負責的,最上層是通道Channel,裡面再分為DIMM。以Intel北橋的X38為例,它支援2個Channel,所以有兩組獨立的線拉到各自的記憶體,每個Channel最多支援2個DIMM,所以你在主機板上最多會看到4個DIMM插槽。

電腦記憶體架構
電腦記憶體架構

分組的記憶體顆粒-RANK

這裡的DIMM就是我們平常買的記憶體模組,單一模組上焊滿了一顆顆的記憶體IC,這些IC顆粒被劃分為不同的Rank,每個Rank以相同的Chip Select(CS#)連接在一起,也就是說當北橋發出CS#訊號時,這個Rank內的所有IC顆粒便同時會被Enable。

若你的模組有2個Rank,表示此Memory Module能接受兩條CS#的訊號,以美光Micron的模組為例它們的名稱為S0#與S1#。若分為1個Rank稱為1R,若分為2個Bank就稱為2R。下圖就是2R模組內的接線方式,你會發現相同Rank IC的CS#全部與DIMM的S0#與S1#分別接在一起。

DDR3的記憶體模組線路
DDR3的記憶體模組線路-摘自Micron datasheet

至於為何要分Rank? 全部接一起不是挺好? 這部分我沒有再深究,我想應該與晶片IO的Fan out能力,或著與阻抗匹配有關,畢竟速度這麼快,阻抗是需要考慮的,否則資料全部反射攪和在一起,也是很傷腦筋。

2Rx8 不等於雙面

從上面的敘述可以知道,Rank只是拿來分組用的,2個Rank的模組因為顆粒數目多,大都會將記憶體顆粒焊在兩面;而單一Rank的DDR Module有焊在同一面的也有焊在兩面的。

所以2R與1R與單雙面並沒有關係,它只表示北橋的Memory Channel用了多少Chip Select來存取DIMM。下圖是個例子,上方8G 2Rx8表示記憶體模組分了2個Rank,每個Rank有8顆IC,它是雙面焊件,共有16顆IC;下方2GB的記憶體模組只用了1個Rank,每個Rank有8顆IC,但它也是雙面焊件喔,因為它一面焊4顆。

2Rx8 and 1Rx8 DDR3 SODIMM記憶體模組
2Rx8 and 1Rx8 DDR3 SODIMM記憶體模組

記憶體電壓

目前DDR3分為1.5V與1.35V,1.35V的記憶體模組會標示為DDR3L,但我發現一件很有趣的事情,上圖中2GB模組的顆粒,我照著型號去查詢datasheet,沒想到竟然發現這個顆粒竟然原本是DDR3L使用的,而且速度還是1866MHz,那為何會出現在DDR3 1600的模組上呢?

DDR3 Module 顆粒規格比模組高
DDR3 Module 顆粒規格比模組高, 表格摘自Samsung datasheet

於是我詢問了在PC廠工作的朋友,他告訴我這是有可能的,也就是原本規畫應該在1866MHz 1.35V跑的記憶體,廠商可能發現它跑起來沒那麼穩定,於是讓這款記憶體在1600MHz 1.5V跑,可能就跑得嚇嚇叫,因此會折價賣給模組廠使用。

基本上記憶模組只要出廠前有測試驗證過,都不會有問題,產品好壞的差別就在於品管控制,品管控制得好小廠就能上天堂,品管控制得差大廠也會下地獄。所以我一般都選大廠,因為他們資源多,所以我”傾向”相信他們的品管做得較完整。

4Gbit為何只需要16條位址線

不知各位是否有想過,一個4Gb的DDR為何只需要A[15:0]共16條位址線? 照理說4Gb(512Mega x 8bit)應該要有29條線才能定址到512Mega,現在只要16條是怎麼辦到的? 確實29條位址線實在太多了,因此位址資料分為兩次傳送,第一次稱為Row第二次稱為Col,如下圖這兩個資料到了記憶體內部,便會像XY座標一般地將對應的資料找出來,再將資料放到DQ[7:0]上面。

事實上在DRAM記憶體內還有分Bank,這樣又可以讓位址線減少一些,以下圖為例有8個bank,所以它需要BA[2:0]共3條線來定址,我一直認為bank與address其實是相同作用的東西,只因為我沒有在DRAM上著墨太深,沒法理解為何還要在IC內部分Bank,如果有了解的朋友歡迎讓我知道一下。

DDR3顆粒內部方塊圖
DDR3顆粒內部方塊圖,摘自Micron datasheet

為何要這麼多顆粒

以PC的角度來看,這還真的是個合理的問題,為何要放那麼多小顆的IC? 直接做一個大顆的不就全搞定,但這個事情牽涉頗廣,首先是要做這麼大顆容量的IC它的良率一定會下降,意思就是將來的價格會比較貴,到時候做出來誰要買單是個大問題。再來是資料位元寬度,目前PC大都是64bit作為資料傳輸,但除了PC之外仍有很多小型應用會需要用到32bit甚至16bit的位元寬度,對DRAM廠來說做8bit or 16bit寬度的顆粒市場彈性最大,事實上他們做了x4, x8, x16三種寬度,讓使用者自己去湊出需要的寬度。

上圖就是一個8bit寬度的IC,右邊的DQ[7:0]指的就是資料的寬度,如果你要用64bit就得用8顆8bit寬度的IC來湊,或是4顆16bit的IC來湊,所以我們買來的記憶體模組才會這麼多顆粒。

你可能會喜歡這個文章

關於PC維修的文章還有這個,Disk Read Error 電腦不開機-猜猜如何修好它

9 Comments

  1. MSI GL75 Leopard 10SCSK 原裝筆電 如果要加裝一條16G記憶體 要用什麼牌子的 然後是1R還是2R的才可以相容 我找不到原廠的是用什麼牌子 有說金士頓也有說是光美的

    • 我沒有去研究Rank對系統的影響, 所以無法精確回答你的問題. 但以我個人的習慣,我會使用相同Rank的記憶體為優先, 因為硬體特性相同, 才能避免將來出Bug, 這只是我的風險處理考量, 給你參考

    • 這問題非常複雜 難用幾句話解釋
      除了2RX8 1RX8 , 還要加上:CPU ,記憶體容量 晶片組 主機板設計 才有辦法判斷你的問題

      例1:
      在I3-530的系統上面
      2RX8 8G 和1RX8 2G 無法混用
      因為I3-530根本就不支援2RX8 8G

      例2:
      G31只有1個記憶體通道(也就是2條記憶體插槽)
      有些G31(或P31)主機板 上面有4條記憶體插槽
      這表示 想插滿4條記憶體 只能插4條1RX8的記憶體
      你沒辦法插4條2RX8的 (P35就可以插4條2RX8的 因為P35有2個記憶體通道)
      但你可以在第1個記憶體裝2RX8, 在第3 ,4 個記憶體插2條1RX8
      總之G31最滿就只能插到4個R, P35可以插到8個R

  2. 就我所知,CPU/RAM/GPU這些PC上用的關鍵晶片,幾乎都是用較高規格去設計,製造完出廠前再測試分級。
    所以相同架構的Intel Ice lake CPU,都用相同的設計和規格製造。但出廠前可能發現有一成可以在原始設計3Ghz時脈下穩定運作,可能有一半最高只能在2.4Ghz時脈運作,否則會出錯導致當機,可能有剩下四成只能在2Ghz時脈運作(這是我胡謅的舉例)……那廠商再依據這個產品的測試結果標上型號和售價,這在PC零組件上是常態,所以才有超頻、開核(把有故障疑慮而被屏蔽的運算單元開啟)的空間。

Leave a Reply

Your email address will not be published.


*