首頁 > 硬體

主機板不支援大容量記憶體的原因有哪些

2020-10-19 13:39:10

  主機板不支援大容量記憶體的原因。

一.記憶體晶片的邏輯BANK

  主機板上使用的32MB/64MB/128MB的記憶體條都是由若干記憶體晶片焊接在4層或6層電路板上組成的,因此首先必須對記憶體晶片的內部結構有個清楚的認識在晶片的內部,記憶體的資料是以位(bit)為單位寫入一張大的矩陣中,每個單元我們稱為CELL,只要指定一個行(Row),再指定一個列(Column),就可以準確地定位到某個CELL,這就是記憶體晶片定址的基本原理。這個陣列就稱為記憶體晶片的BANK,也稱之為邏輯BANK(LogicalBANK)。

  由於工藝上的原因,這個陣列不可能做得太大,所以一般記憶體晶片中都是將記憶體容量分成幾個陣列來製造,也就是說存在記憶體晶片中存在多個邏輯BANK,隨著晶片容量的不斷增加,邏輯BANK數量也在不斷增加,目前從32MB到1GB的晶片基本都是4個,只有早期的16Mbit和32Mbit的晶片採用的還是2個邏輯BANK的設計,譬如三星的兩種16MB晶片:K4S161622D(512Kx16Bitx2BANK)和K4S160822DT(1Mx8Bitx2BANK)。

  晶片組本身設計時在一個時鐘週期內只允許對一個邏輯BANK進行操作(實際上晶片的位寬就是邏輯BANK的位寬),而不是晶片組對記憶體晶片內所有邏輯BANK同時操作。邏輯BANK的地址線是通用的,只要再有一個邏輯BANK編號加以區別就可以了(BANK0到BANK3)。但是這個晶片的位寬決定了一次能從它那裡讀出多少資料,並不是記憶體晶片裡所有單元的資料一次全部能夠讀出。

  DQ資料輸入/輸出線只有8根而不是32根,可以發現4個BANK是分時工作的,任一時刻只可能有一個BANK的資料被存取,0-3是它們的編號。每個邏輯BANK有8M個單元格(CELL),一些廠商(比如現代/三星)就把每個邏輯BANK的單元格數稱為資料深度(DataDepth),每個單元由8bit組成,那麼一個邏輯BANK的總容量就是64Mbit(8M8bit),4個邏輯BANK就是256Mbit,因此這顆晶片的總容量就是256Mbit(32MB)。

  記憶體晶片的容量是一般以bit為單位的。比如說32Mbit的晶片,就是說它的容量是32Mb(b=bit=位),注意位(bit)與位元組(Byte)區別,這個晶片換算成位元組就是4MB(B=Byte=位元組=8個bit),一般記憶體晶片廠家在晶片上是標明容量的,我們可以晶片上的標識知道,這個晶片有幾個邏輯BANK,每個邏輯bank的位寬是多少,每個邏輯BANK內有多少單元格(CELL),比如目前目前64MB和128MB記憶體條常用的64Mbit的晶片就有如下三種結構形式:

  ①16Megx4(4Megx4x4banks)[16M?4]

  ②8Megx8(2Megx8x4banks)[8M?8]

  ③4Megx16(1Megx16x4banks)[4M?16]

  表示方法是:每個邏輯BANK的單元格數邏輯BANK數量每個單元格的位數(晶片的位寬)。晶片邏輯BANK位寬目前的工藝水平只能最多做到16位元,因此大家看到幾乎所有的晶片邏輯BANK位寬只可能4/8/16三者之一。以前16Mbit的晶片基本採用的單個晶片兩個邏輯BANK,但是到了64Mbit基本就都是4個邏輯BANK設計了,今後隨著生產工藝水平的提高估計單個晶片8個甚至16個邏輯BANK的出現也不是沒有可能。

二.記憶體條的物理BANK

  通常主機板上的每個記憶體插槽分為兩段,這個大家從VIA主機板BIOS設定中的BANK0/1DRAMTiming選項很容易推理得到,實際上也就是兩個BANK,不過這裡的BANK概念與我們前面分析晶片內部結構時提到的BANK可不一樣。簡單地說這個BANK就是記憶體和主機板上的北橋晶片之間用來交換資料的通道,目前以SDRAM系統為例,CPU與記憶體之間(就是CPU到DIMM槽)的介面位寬是64bit,也就意味著CPU一次會向記憶體傳送或從記憶體讀取64bit的資料,那麼這一個64bit的資料集合就是一個記憶體條BANK,很多廠家的產品說明裡稱之為物理BANK(PhysicalBANK),目前絕大多數的晶片組都只能支援一根記憶體包含兩個物理BANK,但是針對某個具體的條子,很多人想當然,認為每個DIMM插槽使用記憶體條的面數來區分佔用幾個BANK通道,單面的(16M,64M)只佔用一個物理BANK,而雙面的(32M,128M)則需佔用兩個物理BANK。實際上物理BANK與面數是無關的,PCB電路可以設計成雙面和單面,也可把全部晶片(16顆)放在一面上(至少從理論上是完全可能)。

  有些記憶體條單面就是一個物理BANK,但有些雙面才是一個物理BANK,所以不能一概而論。前一陣鬧得沸沸揚揚的大度256MB記憶體條就是一個典型的例子,雖然是雙面並多達16枚晶片,但仍然是單個物理BANK的。要準確知道記憶體條實際物理BANK數量,我們只要要將單個晶片的邏輯BANK數量和位寬以及記憶體條上晶片個數搞清楚。各個晶片位寬之和為64就是單物理BANK,如果是128就是雙物理BANK。目前的晶片組最多支援2個物理BANK。所以記憶體廠家生產的記憶體條都不可能超過2個物理BANK。

  CPU一次只能對一個物理BANK進行存取和操作(因為一個物理BANK是64bit的位寬),那麼記憶體條要保證一個週期內向資料匯流排提供或接收64bit的資料,而這些資料都是分別儲存在記憶體條的的晶片中。那麼記憶體條中有多個記憶體晶片,這64位元資料到底是有一個晶片提供還是由所有晶片每個提供一部分呢?

  以上面的那顆256Mbit的晶片為例,根據晶片組的工作原理,目前還沒有那家晶片生產廠家做出位寬16位元以上的晶片,所以現在的晶片組設計時都是要求記憶體條上每個晶片均承擔提供資料的任務,也就是說記憶體條上的每個晶片都要要對這64位元資料做貢獻,而那顆記憶體晶片的位寬是8位元,因此用這個晶片組成記憶體條只需要8顆晶片即完成了64位元資料並行任務,算下來,記憶體條的容量就是32MB(256Mbit)8=256MB的容量,假如是記憶體晶片的位寬是4位元,那麼需要的晶片數量必須是16顆,這時假如使用八顆位寬還是8位元的64MB(512bit)晶片(單個晶片的總容量翻了一番)組裝,儘管記憶體條上的總容量達到了256MB的要求,還是由於位寬不夠是不能正常工作。要能工作就必須採用16位元位寬的64MB(512bit)晶片。


IT145.com E-mail:sddin#qq.com