我們都知道,在INTEL平臺,北橋負責與CPU的聯系,并控制內存、AGP、PCI數據在北橋內部傳輸。基本上只要主板芯片組確定,那么其支持的內存類型也就確定了。在介紹主板的時候,我們已經說過,INTEL芯片組劃分的很清楚,865PE屬于工作站級別芯片組,不支持ECC內存,只能使用普通內存,875P芯片組屬于低端服務器/工作站級別,支持ECC內存和普通非ECC內存,而E7525屬于高端服務器,為了保證其穩定性,必須采用ECC REG內存,使用其他內存無法點亮。在AMD方面,K8 CPU集成了內存控制器,CPU與內存直接交換數據,不通過北橋。939針的ALTHON 64系列不支持ECC,所以只能用普通內存,939針的OPTERON支持ECC內存和普通非ECC內存,940針的OPTERON系列只能使用ECC REG內存,插入普通內存無法點亮。
普通內存 ECC內存 REG ECC內存有什么不同?
普通內存大家經常接觸,DDR400的內存現在遍地都是,很多高檔內存甚至可以運行DDR600/DDR2 800,而有些內存也可以達到2-2-2-5這樣低的延遲,因為大家接觸的比較多,這里就暫不作介紹了。 反觀ECC和REG ECC內存不追求高頻率和低延遲,INTLE平臺內存運行頻率一般在DDR333或者是DDR2 400,,AMD平臺內存運行頻率在DDR400,延時也多在4-4-4-8左右,從性能上看絲毫不占優勢,但是穩定才是其立足的根本。圖為DDR2 ECC內存。這里我們常說的ECC內存就是單指的 Unbuffer ECC,其價格和普通內存相比只貴10%-20%,從外觀來說,Unbuffer ECC內存因為要滿足效驗糾錯的需要,加入了一顆ECC效驗顆粒,由于采用的是TOSP封裝,使得內存看上去每面有9顆內存顆粒。
圖為DDR2 ECC內存
而REG ECC的價格就貴了許多,內存上面的芯片一般比普通主板多出2-3個,主要是PLL (Phase Locked Loop)和Register IC,它們的具體用處如下 PLL(Phase Locked Loop) 瑣相環集成電路芯片,內存條底部較小IC,比Register IC小,一般只有一個,起到調整時鐘信號,保證內存條之間的信號同步的作用。Register IC內存條底部較小的集成電路芯片(2-3片),起提高驅動能力的作用。服務器產品需要支持大容量的內存,單靠主板無法驅動如此大容量的內存,而使用帶Register的內存條,通過Register IC提高驅動能力,使服務器可支持高達32GB的內存。
圖為DDR2 400 ECC REG 1 SPD芯片 2 PLL芯片 3 Register IC芯片 4 內存顆粒
因為有了PLL和 Register芯片的支持,服務器內存可以做的很大,更好的滿足日益龐大的軟件對內存無止境的要求。
圖為日本上市的單條4GB REG ECC內存
另外看留言,有朋友提到目前很多高端服務器都是多通道,在我們DIY服務器的范疇內,這種多通道服務器很少遇到,在此不重點介紹。
ECC 原理 以及Registers功能
服務器一般要求24小時×365天不間斷運行,而且不允許中途故障頻出或者頻繁重啟,對可靠性和穩定性兩項指標要求極為苛刻。相比較而言,PC機對可靠性和穩定性的要求就相對簡單了許多——系統崩潰重啟即可,每天開機時間多數不超過10小時。截然不同的應用決定了二者對內存功能要求的差異性。
為什么擁有ECC技術的服務器可以做到7X24或者365X24不死機重起呢,我們要先從最原始的奇偶校驗說起。在計算機內,所有的信息都是以簡單的“0”與“1”表示;不過當數據在電子元件間進行傳遞時,是有可能發生數據“誤傳”的情形,也就是說原來該是0的比特數據,卻被誤植為1的比特數據,而產生錯誤。其可能發生的原因相當多,包括電子噪聲、元件硬件上的問題,或是傳輸接口不穩等,都可能數據錯誤,隨之而來的時服務器重起,數據丟失,WINDOWS崩潰等一系列嚴重的后果,正如混沌學中的蝴蝶效益,極小的起因引發巨大的后果。也正因為如此,在存儲器中便發展出ECC(Error-Correcting Code)與Parity Check等的檢錯方式,希望能降低數據傳輸的錯誤,使服務器能夠長時間穩定工作。
比特(bit)是內存中的最小單位,也稱“位”、它只有兩個狀態分別以1和0表示。我們將8個連續的比特叫做一個字節(byte)。非奇偶校驗內存的每個字節只有8位,若它的某一位存儲了錯誤的值,就會使其中存儲的相應數據發生改變而導致應用程序發生錯誤。而奇偶校驗內存在每一字節(8位)外又額外增加了一位作為錯誤檢測之用。比如一個字節中存儲了某一數值(1、0、0、1、1、1、1、0),把這每一位相加起來(1+0+0+1+1+1+1+0=5)。若其結果是奇數,校驗位就定義為1,反之則為0。當CPU返回讀取儲存的數據時,它會再次相加前8位中存儲的數據,計算結果是否與校驗位相一致。當CPU發現二者不同時就作出一定的反應。但Parity有個缺點,當內存查到某個數據位有錯誤時,卻并不一定能確定在哪一個位,也就不一定能修正錯誤,只能讓數據源重新發送一次信號,再次校驗。所以帶有奇偶校驗的內存的主要功能僅僅是“發現錯誤”,并能糾正部分簡單的錯誤。
通過上面的分析我們知道Parity內存是通過在原來數據位的基礎上增加一個數據位來檢查當前8位數據的正確性,但隨著數據位的增加Parity用來檢驗的數據位也成倍增加,就是說當數據位為16位時它需要增加2位用于檢查,當數據位為32位時則需增加4位,依此類推。特別是當數據量非常大時,數據出錯的幾率也就越大,對于只能糾正簡單錯誤的奇偶檢驗的方法就顯得力不從心了,正是基于這樣一種情況,一種新的內存技術應允而生了,這就是ECC(錯誤檢查和糾正).
ECC(Error Checking and Correcting)內存,它也是在原來的數據位上外加位來實現的。不同的是兩者增加的方法不一樣,這也就導致了兩者的主要功能不太一樣。它與Parity不同的是如果數據位是8位,則需要增加5位來進行ECC錯誤檢查和糾正,數據位每增加一倍,ECC只增加一位檢驗位,也就是說當數據位為16位時ECC位為6位,32位時ECC位為7位,數據位為64位時ECC位為8位,依此類推,數據位每增加一倍,ECC位只增加一位。總之,在內存中ECC能夠容許錯誤,并可以將錯誤更正,使系統得以持續正常的操作,不致因錯誤而中斷,且ECC具有自動更正的能力,可以將Parity無法檢查出來的錯誤位查出并將錯誤修正。當然在糾錯時系統的性能有著明顯降低,不過這種糾錯對服務器等應用而言是十分重要的。 #p#分頁標題#e#
Registers通常與ECC概念被一并提起,不少人認為二者都是純粹的錯誤校驗,甚至將這兩個概念混淆起來。其實,Registers的概念與ECC大不相同,它指的是信號的重新驅動(re-driving)過程。
在很多時候,內存中保留的數據經過多次刷新之后仍然可能出現代表二進制數據的電平信號發生偏差的情況。Registers所起到的其實是一個事前預防的作用。擁有Registers功能的內存模組,可以通過重新驅動控制信號來改善內存的運作,提高電平信號的準確性,從而有助于保持系統長時間穩定運作。不過,由于Registers的信號重驅動需花費一個時鐘周期,延遲時間有所增加,因此具有該功能內存的讀寫性能會稍低于普通內存,相當于以性能換取穩定性。
綜合以上兩點,就解釋了為什么服務器所用的內存一般頻率較低,延遲較高。
主板芯片組對應的內存列表
市售內存推薦
三星UCCC 1G
目前三星內存采用了環保紙盒包裝。采用雙面16內存顆粒規格設計,整體來看做工嚴謹扎實,布線設計大量采用了蛇形布線和145°邊角處理。短引線設計進一步降低了信號延遲,有助提升內存條的整體性能。PCB幅面干凈整潔,毫無凌亂之感。表面采用大量貼片電容和8PIN電阻排,顆粒裝貼整齊,焊點均勻飽滿,頂端“VERF”去耦電容和旁路校驗電容也無省檢。更重要的是,對于服務器來說,內存當然是越大越好了,UCCC 1G單條7xx元的價格,很適合在中低端服務器中使用。
英飛凌 DDR400 REG ECC
英飛凌的前身就是西門子半導體公司,德國人的嚴謹在其產品中也表現得淋漓盡致,此款內存英飛凌采用的是自己的內存顆粒,6層PCB基板,大量的高品質阻容元件是內存能夠在高頻下穩定運行的重要保障。除此以外,采用的化學沉金工藝制作的金手指的厚度也嚴格按照規范制造。較厚的金層可以經受玩家的多次插拔而不易磨損,并且可以提高觸點的抗氧化能力,使用壽命更長。由于渠道的原因,國內英飛凌內存并不是很普及,但是在國外很多品牌服務器中,英飛凌內存則被廣泛使用,例如HP IBM等國際知名公司。
金士頓DDR2 REG ECC
DDR 2的工作頻率最低是400 MHz(PC2 3200),目前市面上的大多為DDR2 533(PC2 4300),DDR 2的工作電壓為1.8-1.9V,功耗比使用2.6V的DDR1降低了不少,其它優點還包括:ODT(On Die Termination)內建的終結電阻器--主要是增強內存抗干擾性,提高電氣性能;OCD(Off Chip Driver):離線(Off Chip)驅動校準--提高內存驅動性能;Posted CAS--降低數據沖突,提高資源利用率,獲取更大帶寬。目前最新的INTEL高端芯片組芯片組只能使用此種類型的內存。金士頓在服務器內存領域也算是老品牌了,品質無需置疑,終身質保的售后讓人沒有后顧之憂。