天天看點

記憶體條的邏輯BANK和RANK(實體BANK)概念

在記憶體上有一個參數:2R X16,1R X16, 1R X8…..

這裡的R就是Rank 既實體BANK,X16,X8,是指晶片位寬

何謂記憶體BANK:

記憶體的BANK其實分為兩部分,邏輯BANK和實體BANK。

    1.先來講講邏輯BANK。晶片的内部,記憶體的資料是以位(bit)為機關寫入一張大的矩陣中,每個單元格我們稱為CELL,隻要指定一個行(Row),再指定一個列(Column),就可以準确地定位到某個CELL,這就是記憶體晶片尋址的基本原理。這樣的一個陣列我們就叫它記憶體的邏輯BANK(Logical BANK)。

   由于工藝上的原因,這個陣列不可能做得太大,是以一般記憶體顆粒中都是将記憶體容量分成幾個陣列來制造,也就是說在記憶體顆粒中存在多個邏輯BANK,随着晶片容量的不斷增加,邏輯BANK數量也在不斷增加,目前從32MB到1GB的晶片基本都是4個,隻有早期的16Mbit和32Mbit的晶片采用的還是2個邏輯BANK的設計,譬如三星的兩種16MB晶片:K4S161622D (512K x 16Bit x 2 BANK)和K4S160822DT(1M x 8Bit x 2 BANK)。晶片組本身設計時在一個時鐘周期内隻允許對一個邏輯BANK進行操作,而不是晶片組對記憶體晶片内所有邏輯BANK同時操作。邏輯BANK的位址線是通用的,隻要再有一個邏輯BANK編号加以差別就可以了(BANK0到BANK3)。一個邏輯BANK有8M個單元格(CELL),一些廠商(比如現代/三星)就把每個邏輯BANK的單元格數稱為資料深度(Data Depth),每個單元格由8bit組成,那麼一個邏輯BANK的總容量就是64Mbit(8M×8bit),4個邏輯BANK就是256Mbit,是以這顆晶片的總容量就是256Mbit(32MB)。 

一般記憶體晶片廠家在晶片上是标明容量的,我們可以晶片上的辨別知道,這個晶片有幾個邏輯BANK,每個邏輯bank的位寬是多少,每個邏輯BANK内有多少單元格(CELL),比如64MB和128MB記憶體條常用的64Mbit的晶片就有如下三種結構形式: 

①16 M x 4 (4 M x 4 x 4 banks) [16M X 4] 

②8 M x 8 (2 M x 8 x 4 banks) [8M X 8] 

③4 M x 16 (1 M x 16 x 4 banks) [4M X 16] 

表示方法是:每個邏輯BANK的單元格數×邏輯BANK數量×每個單元格的位數(晶片的位寬)。晶片邏輯BANK位寬目前的工藝水準隻能最多做到16位,是以大家看到幾乎所有的晶片邏輯BANK位寬隻可能4/8/16三者之一。

2. RANK(實體Bank)  目前以SDRAM系統為例,CPU與記憶體之間(就是CPU到DIMM槽)的接口位寬是64bit,也就意味着CPU一次會向記憶體發送或從記憶體讀取64bit的資料,那麼這一個64bit的資料集合就是一個記憶體條BANK,很多廠家的産品說明裡稱之為實體BANK(Physical BANK),目前絕大多數的晶片組都隻能支援一根記憶體包含兩個實體BANK,要準确知道記憶體條實際實體BANK數量,我們隻要将單個晶片的邏輯BANK數量和位寬以及記憶體條上晶片個數搞清楚。各個晶片位寬之和為64就是單實體BANK,如果是128就是雙實體BANK。

586以上電腦的資料總線寬度都是64bit,即每次讀取記憶體為64bit,SDRAM記憶體條的設計帶寬也是64bit,記憶體條的帶寬為條上各個記憶體晶片的帶寬之和,基本條件為帶寬之和應等于64bit或其倍數。假如出現了各個晶片位寬之和等于128。則分成兩個64位,當讀取一個64位部分時,另一個64位部分就不能讀取,通常很多廠家就分别将這兩部分放在記憶體的兩面上。這就造成了許多人的錯覺:雙面是兩個BANK的,單面是一個BANK的。實際根本不能這樣認識,比如大度256MB記憶體,盡管兩面16個晶片,但是由于記憶體晶片的位寬是4位(32Mbit×4),是以必須要有4×16=64才能達到系統所要求的位寬。這時由于晶片大小的限制,不可能将16顆晶片都放在一面上,是以隻能設計成雙面。對于64Mbit晶片 (4M*16) 來說,晶片帶寬16bit,8顆晶片帶寬=16*8=128bit(即兩個BANK),4顆晶片帶寬=16*4=64bit(即一個BANK)。兩個實體BANK的情況隻有出現在位寬超出了64位的情況下(即位寬出現了富餘),由于晶片組任一時刻隻能處理一個64位,是以才分成兩個實體BANK。

3、 晶片位寬   每個記憶體晶片有自己的位寬,即每個傳輸周期能提供的資料量。理論上,完全可以做出一個位寬為64bit的晶片來滿足P-Ban k的需要,但這對技術的要求很高,在成本和實用性方面也都處于劣勢。是以晶片的位寬一般都較小。桌上型電腦市場所用的SDRAM晶片 位寬最高也就是16bit,常見的則是8bit。這樣,為了組成P-Bank所需的位寬,就需要多顆晶片并聯工作。對于16bi t晶片,需要4顆(4×16bit=64bit)。對于8bit晶片,則就需要8顆了。

以上就是晶片位寬、晶片數量與P-Bank的關系。P-Bank其實就是一組記憶體晶片的集合,這個集合的容量不限,但這個集合的 總位寬必須與CPU資料位寬相符。随着計算機應用的發展,一個系統隻有一個P-Bank已經不能滿足容量的需要。是以,晶片組開 始可以支援多個P-Bank,一次選擇一個P-Bank工作,這就有了晶片組支援多少(實體)Bank的說法。而在Intel的 定義中,則稱P-Bank為行(Row),比如845G晶片組支援4個行,也就是說它支援4個P-Bank。另外,在一些文檔中 ,也把P-Bank稱為Rank(列)。