SDRAM内存的接口和设计方法(并行输送接口)
轉(zhuǎn)載自:http://tech.sina.com.cn/c/2001-07-30/4752.html
| http://www.sina.com.cn 2001/07/30?09:42?小熊在線 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| ? | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
| 雖然目前SDRAM內(nèi)存條價(jià)格已經(jīng)接底線,內(nèi)存開(kāi)始向DDR和Rambus內(nèi)存過(guò)渡。但是由于DDR內(nèi)存是在SDRAM基礎(chǔ)上發(fā)展起來(lái)的,所以詳細(xì)了解SDRAM內(nèi)存的接口和主板設(shè)計(jì)方法對(duì)于設(shè)計(jì)基于DDR內(nèi)存的主板不無(wú)裨益。下面我們就從內(nèi)存顆粒、內(nèi)存槽位接口、主板和內(nèi)存之間的信號(hào)接口幾個(gè)方面來(lái)詳細(xì)闡述SDRAM內(nèi)存條和主板內(nèi)存系統(tǒng)的設(shè)計(jì)思路。 內(nèi)存顆粒介紹 ?
對(duì)于DRAM(Dynamic Random Access Memory)內(nèi)存我想凡是對(duì)于計(jì)算機(jī)有所了解的讀者都不會(huì)陌生。這種類型的內(nèi)存都是以一個(gè)電容是否充有電荷來(lái)作為存儲(chǔ)狀態(tài)的標(biāo)志,電容沖有電荷為狀態(tài)1,電容沒(méi)有電荷為狀態(tài)0。其最大優(yōu)點(diǎn)是集成度高,容量大,但是其速度相對(duì)于SRAM (Static Random Access Memory) 內(nèi)存來(lái)說(shuō)慢了許多。目前的內(nèi)存顆粒封裝方式有許多種,本文僅僅以大家常見(jiàn)的TSSOP封裝的內(nèi)存顆粒為例子。 其各個(gè)管腳的信號(hào)定義和我們所使用的DIMM插槽的定義是相同的,對(duì)于不同容量的內(nèi)存,地址信號(hào)的位數(shù)有所不同。另外一個(gè)需要注意的地方就是其供電電路。Vcc和Vss是為內(nèi)存顆粒中的存儲(chǔ)隊(duì)列供電,而VccQ和VssQ是為內(nèi)存顆粒中的地址和數(shù)據(jù)緩沖區(qū)供電。兩者的作用不同。 我們對(duì)內(nèi)存顆粒關(guān)心的問(wèn)題主要是其顆粒的數(shù)據(jù)寬度(數(shù)據(jù)位數(shù))和容量(尋址空間大小)。而對(duì)于顆粒自檢、顆粒自刷新等等邏輯并不需要特別深入的研究,所以對(duì)此我僅僅是一筆帶過(guò),如果讀者有興趣的讀者可以詳細(xì)研究?jī)?nèi)存顆粒的數(shù)據(jù)手冊(cè)。雖然內(nèi)存顆粒有這么多的邏輯命令方式,但是由于目前北橋芯片和內(nèi)存顆粒的集成度非常高,只要在布線和元器件的選擇上嚴(yán)格按照內(nèi)存規(guī)范來(lái)設(shè)計(jì)和制造,需要使用邏輯分析儀來(lái)調(diào)試電路上的差錯(cuò)的情況比較少,并且在設(shè)計(jì)過(guò)程中盡量避免出現(xiàn)這種情況。 168線DIMM內(nèi)存插槽的信號(hào)定義我們目前PC和Server使用的內(nèi)存大都是168 Pins的SDRAM,區(qū)別只是其工作頻率有的可能是100MHz頻率,有的可能是133MHz頻率的。但是只要是SDRAM,其DIMM插槽的信號(hào)定義是一樣的。而這些引腳得定義就是設(shè)計(jì)內(nèi)存條和主板所必須遵從的規(guī)范。 內(nèi)存引腳主要分為如下幾類:地址引腳、數(shù)據(jù)引腳(包含校驗(yàn)位引腳)、片選等控制信號(hào)、時(shí)鐘信號(hào)。整個(gè)內(nèi)存時(shí)序系統(tǒng)就是這些引腳上的信號(hào)配合產(chǎn)生。下面的表中就是內(nèi)存插槽的引腳數(shù)量和引腳定義,對(duì)于一些沒(méi)有定義或者是保留以后使用的信號(hào)就沒(méi)有列出來(lái)。
?
? * 在讀模式時(shí),控制芯片顆粒的Buffers數(shù)據(jù)輸出 在寫(xiě)模式時(shí),將芯片顆粒的Buffers中的數(shù)據(jù)寫(xiě)入芯片顆粒中的內(nèi)存隊(duì)列中 ? ** 當(dāng)該信號(hào)為高時(shí),時(shí)鐘信號(hào)有 ? 當(dāng)該信號(hào)為低時(shí),時(shí)鐘信號(hào)無(wú)效,并且該信號(hào)會(huì)觸發(fā)內(nèi)存顆粒的低功耗模式、自刷新模式或者掛起模式 我們從DIMM插槽的引腳定義就可以計(jì)算出來(lái),每個(gè)DIMM槽位最大支持的內(nèi)存數(shù)值。該數(shù)值實(shí)際上是尋址空間乘上數(shù)據(jù)寬度,所以每個(gè)DIMM槽位支持最大容量為4GB = 214 x 214 x 8 Byte。但是由于內(nèi)存芯片顆粒的制造局限性,所以目前能夠使用的DIMM條的內(nèi)存都達(dá)不到這個(gè)容量,其容量最大的內(nèi)存條為1GB。 在設(shè)計(jì)和制造內(nèi)存條的時(shí)候,所有的內(nèi)存條都是按照插槽的規(guī)范來(lái)布線和生產(chǎn),所以對(duì)于內(nèi)存地址空間,所有生產(chǎn)出來(lái)的內(nèi)存條都是相同的地址空間,例如一條128MB內(nèi)存,他就是用了地址線A0-A13,當(dāng)我們?cè)谝慌_(tái)計(jì)算機(jī)上安裝多個(gè)內(nèi)存時(shí),如何分配每個(gè)內(nèi)存內(nèi)存條的地址空間呢?這個(gè)工作就需要北橋芯片和主板來(lái)配合了。 SPD信號(hào)定義 ? 內(nèi)存中使用的SPD都是一片8針TSSOP(Plastic Thin Small Outline Package)封裝的串行存儲(chǔ)EEPROM,其容量是2048bit。每個(gè)DIMM的SPD數(shù)據(jù)讀寫(xiě)時(shí)鐘線SCL和數(shù)據(jù)線SDA都是共享在一條總線上,所以當(dāng)我們?cè)谝慌_(tái)機(jī)器上會(huì)安裝多條內(nèi)存時(shí),其SPD的片選信號(hào)就需要事先確定。該片選信號(hào)是由SA0,SA1,SA2三條數(shù)據(jù)線來(lái)確定,該數(shù)據(jù)線的狀態(tài)由主板設(shè)計(jì)廠商在設(shè)計(jì)主板的時(shí)候固定下來(lái)。在每次讀寫(xiě)該EEPROM的時(shí)候,北橋芯片會(huì)按照EEPROM的讀寫(xiě)規(guī)格首先向該芯片發(fā)送3位片選信號(hào)和8位地址信息,每個(gè)芯片都會(huì)讀入該3位片選信號(hào)和8位地址信號(hào)。當(dāng)3位片選信號(hào)和主板上固化的3?醯刂廢擼⊿A0,SA1,SA2)的狀態(tài)一致的時(shí)候該內(nèi)存條上的SPD芯片就被選中,其信息會(huì)記錄在北橋控制器的寄存器中(Register)。 SPD讀寫(xiě)邏輯中的片選必須滿足下圖的時(shí)序邏輯。在此主要介紹地址選擇邏輯,對(duì)于數(shù)據(jù)如何讀寫(xiě)的時(shí)序,有興趣的讀者可以查閱 Atemel 24C02A 的數(shù)據(jù)手冊(cè)(許多內(nèi)存廠商都選用該芯片作為SPD)。在這個(gè)時(shí)序中,硬件上僅僅需要滿足其Device Address 地址信息。該地址信息是一個(gè) 8bit 的數(shù)據(jù),它的格式如下
?
? 該數(shù)據(jù)通過(guò)SCL提供的時(shí)鐘同步,0-3 位是固定的信息,4-6 位是片選地址,7位是判斷該,命令是讀還是寫(xiě)。在芯片內(nèi)部會(huì)對(duì)4-6位的數(shù)據(jù)和硬件電路上的狀態(tài)進(jìn)行比較,相符的話,該芯片被選中,否則不進(jìn)行下面的操作。從該時(shí)序邏輯可以得知,一個(gè)SPD通道(僅僅只有一對(duì)SCL和SDA信號(hào)線)只支持8條內(nèi)存。至于SPD的讀寫(xiě)和SPD內(nèi)容的含義在此就不做進(jìn)一步說(shuō)明。 注:SPD涉及到的縮寫(xiě) SA 0-2 Serial Presence Detect Address Inputs SDA Serial Presence Detect Address Input/Output SCL Serial Presence Detect Clock Input WP Write Protect for SPD on DIMM 內(nèi)存條的設(shè)計(jì) ? 我們已經(jīng)知道了內(nèi)存顆粒、SPD的接口信息,下面就可以開(kāi)始設(shè)計(jì)內(nèi)存了。內(nèi)存條的邏輯功能圖差別不是非常大,對(duì)于不同容量的顆粒,只是在數(shù)量上有所改變。
? 上面的邏輯功能圖就是一個(gè)帶ECC功能72bit 內(nèi)存條的邏輯功能圖。采用的是16bit數(shù)據(jù)寬度的內(nèi)存顆粒。由于內(nèi)存條每次讀寫(xiě)必須滿足64bits(非ECC)或者72bit(ECC),所以在設(shè)計(jì)的時(shí)候顆粒數(shù)量是固定的。上面的內(nèi)存條僅僅只有一個(gè)Bank,所以沒(méi)有使用BA信號(hào)。如果該內(nèi)存條設(shè)計(jì)的時(shí)候是兩個(gè)Bank,其功能圖中就多出了BA選擇信號(hào),并且其容量也會(huì)隨之增加1倍。剩下的工作就是布線,在一個(gè)6層電路板上布下所有的信號(hào)線。 但是隨著目前服務(wù)器內(nèi)存的增大,內(nèi)存插槽數(shù)量的增多,服務(wù)器內(nèi)存系統(tǒng)各個(gè)引腳間的引線長(zhǎng)度會(huì)產(chǎn)生較大差別,導(dǎo)致信號(hào)時(shí)序會(huì)產(chǎn)生錯(cuò)位。并且控制器的信號(hào)控制這么多的內(nèi)存,有限的驅(qū)動(dòng)能力會(huì)不堪重負(fù)。針對(duì)這種情況,服務(wù)器中的內(nèi)存主要采用的是Registered內(nèi)存,在內(nèi)存上添加鎖相環(huán)電路和幾個(gè)寄存器,這樣每個(gè)控制信號(hào)僅僅針對(duì)數(shù)量很少的寄存器,不用針對(duì)內(nèi)存條上的每個(gè)內(nèi)存顆粒來(lái)輸出信號(hào),可以很大程度上降低控制芯片的負(fù)載,提高信號(hào)的質(zhì)量。同時(shí)鎖相環(huán)電路大大減少了內(nèi)存系統(tǒng)的時(shí)間延遲,保證了數(shù)據(jù)的同步。 下面就是寄存器的功能圖
? 寄存器僅僅寄存了每個(gè)內(nèi)存條上的控制信號(hào),對(duì)于數(shù)據(jù)信號(hào)沒(méi)有進(jìn)行任何操作。因?yàn)榭刂菩盘?hào)例如S0、CKE0等等信號(hào)都是控制多個(gè)內(nèi)存顆粒的信號(hào),所以當(dāng)服務(wù)器上安裝8到16條內(nèi)存的時(shí)候,僅僅靠主板上的控制芯片來(lái)控制肯定是力不從心。
? 上面的邏輯圖就很好的說(shuō)明了Registered內(nèi)存中鎖相環(huán)電路的作用。該電路時(shí)時(shí)保證和主板上的時(shí)鐘電路所屬出的時(shí)鐘頻率保持同步,使用這個(gè)時(shí)鐘信號(hào)驅(qū)動(dòng)寄存器和內(nèi)存芯片顆粒就不會(huì)產(chǎn)生時(shí)鐘的漂移。所以目前的服務(wù)器內(nèi)存都采用的是Registered內(nèi)存條。 主板上內(nèi)存系統(tǒng)的設(shè)計(jì)主板上對(duì)于內(nèi)存的訪問(wèn)主要是由北橋芯片來(lái)控制。32位CPU能夠訪問(wèn)的內(nèi)存容量是64GB。這是由CPU尋址空間和數(shù)據(jù)帶寬固定的。但是在實(shí)際使用中,我們的北橋芯片能夠?qū)ぶ返目臻g卻十分有限。一般PC是2GB,高端PC可能達(dá)到4GB,高端服務(wù)器可以達(dá)到32GB的內(nèi)存容量。這一部分和各個(gè)系統(tǒng)內(nèi)存控制芯片的設(shè)計(jì)有關(guān)。在此我以Intel 815E芯片組為例說(shuō)明一下主板上內(nèi)存系統(tǒng)的設(shè)計(jì)。 Intel 815E北橋控制芯片的內(nèi)存控制電路的邏輯圖如下:
? 每種信號(hào)引腳的功能如下表:
? 該芯片組的內(nèi)存兼容性和管理特性主要有下面幾點(diǎn): Intel 815E支持64bits的內(nèi)存。 從芯片引腳信號(hào)圖可以看出,該芯片組只有64bits的數(shù)據(jù)帶寬,沒(méi)有8bits的ECC校驗(yàn)。 北橋芯片沒(méi)有SPD監(jiān)測(cè)電路。 該信息必須通過(guò)南橋芯片上的服務(wù)器系統(tǒng)管理總線SM_Bus總線來(lái)讀出SPD的信息,然后傳送到北橋芯片的寄存器中。 該芯片組不支持Registered內(nèi)存。 可以支持3個(gè)DIMM插槽。每個(gè)槽位最大支持512MB。 計(jì)算方法:采用SMAA,總共使用數(shù)據(jù)帶寬為64bits。 容量為512MB=213 x 213 x 8 我們根據(jù)Intel 815E芯片的特性,就可以設(shè)計(jì)出主板上的DIMM插槽的電路連接邏輯示意圖了(注:該圖中沒(méi)有標(biāo)出SPD的地址分配信息):
? 每個(gè)DIMM槽的SDQM、SMD、SMB_CLK(管理總線_時(shí)鐘信號(hào)線)、SMB_DATA(管理總線_數(shù)據(jù)信號(hào)線)、SCAS、SRAS、SWE、SBS是共享的。那么如何區(qū)別每個(gè)DIMM槽上的內(nèi)存呢?每個(gè)DIMM槽上的內(nèi)存顆粒通過(guò)SMAA,SMAB,SMAC三個(gè)地址來(lái)區(qū)分其不同的地址段,而12條片選信號(hào)則在每個(gè)DIMM槽上分配4條,分別選擇不同的芯片顆粒。這樣同種的內(nèi)存條插在不同的插槽上就被分配了不同的內(nèi)存地址段。 至此,我們的內(nèi)存系統(tǒng)從顆粒到主板的整個(gè)地址和數(shù)據(jù)組織管理模式就清晰的擺在讀者面前了。 | |||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||||
?
轉(zhuǎn)載于:https://www.cnblogs.com/gujiangtaoFuture/articles/7146147.html
總結(jié)
以上是生活随笔為你收集整理的SDRAM内存的接口和设计方法(并行输送接口)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: js 实现trim()的两种方法
- 下一篇: 宣传片交付标准