了解伺服器內存

伺服器內存 伺服器內存也是內存(RAM),它與普通PC(個人電腦)機內存在外觀和結構上沒有什麼明顯實質性的區別,主要是在內存上引入了一些新的特有的技術,如ECC、ChipKill、熱插拔技術等,具有極高的穩定性和糾錯性能。

伺服器內存主要技術

(1)ECC 在普通的內存上,常常使用一種技術,即Parity,同位檢查碼(Parity check codes)被廣泛地使用在偵錯碼(error detectioncodes)上,它們增加一個檢查位給每個資料的字元(或字節),並且能夠偵測到一個字符中所有奇(偶)同位的錯誤,但Parity有一個缺點,當計算機查到某個Byte有錯誤時,並不能確定錯誤在哪一個位,也就無法修正錯誤。基於上述情況,產生了一種新的內存糾錯技術,那就是ECC,ECC本身並不是一種內存型號,也不是一種內存專用技術,它是一種廣泛應用於各種領域的計算機指令中,是一種指令糾錯技術。ECC的英文全稱是「 Error Checking and Correcting」,對應的中文名稱就叫做「錯誤檢查和糾正」,從這個名稱我們就可以看出它的主要功能就是「發現並糾正錯誤」,它比奇偶校正技術更先進的方面主要在於它不僅能發現錯誤,而且能糾正這些錯誤,這些錯誤糾正之後計算機才能正確執行下面的任務,確保伺服器的正常運行。之所以說它並不是一種內存型號,那是因為並不是一種影響內存結構和存儲速度的技術,它可以應用到不同的內存類型之中,就象前講到的「奇偶校正」內存,它也不是一種內存,最開始應用這種技術的是EDO內存,現在的SD也有應用,而ECC內存主要是從SD內存開始得到廣泛應用,而新的DDR、RDRAM也有相應的應用,目前主流的ECC內存其實是一種SD內存。

(2)Chipkill Chipkill技術是IBM公司為了解決目前伺服器內存中ECC技術的不足而開發的,是一種新的ECC內存保護標準。我們知道ECC內存只能同時檢測和糾正單一比特錯誤,但如果同時檢測出兩個以上比特的數據有錯誤,則一般無能為力。目前ECC技術之所以在伺服器內存中廣泛採用,一則是因為在這以前其它新的內存技術還不成熟,再則在目前的伺服器中系統速度還是很高,在這種頻率上一般來說同時出現多比特錯誤的現象很少發生,正因為這樣才使得ECC技術得到了充分地認可和應用,使得ECC內存技術成為幾乎所有伺服器上的內存標準。 但隨著基於Intel處理器架構的伺服器的CPU性能在以幾何級的倍數提高,而硬碟驅動器的性能同期只提高了少數的倍數,因此為了獲得足夠的性能,伺服器需要大量的內存來臨時保存CPU上需要讀取的數據,這樣大的數據訪問量就導致單一內存晶片上每次訪問時通常要提供4(32位)或8(64位)比特以上的數據,一次性讀取這麼多數據,出現多位數據錯誤的可能性會大大地提高,而ECC又不能糾正雙比特以上的錯誤,這樣就很可能造成全部比特數據的丟失,系統就很快崩潰了。IBM的Chipkill技術是利用內存的子結構方法來解決這一難題。內存子系統的設計原理是這樣的,單一晶片,無論數據寬度是多少,只對於一個給定的ECC識別碼,它的影響最多為一比特。舉個例子來說明的就是,如果使用4比特寬的DRAM,4比特中的每一位的奇偶性將分別組成不同的ECC識別碼,這個ECC識別碼是用單獨一個數據位來保存的,也就是說保存在不同的內存空間地址。因此,即使整個內存晶片出了故障,每個ECC識別碼也將最多出現一比特壞數據,而這種情況完全可以通過ECC邏輯修復,從而保證內存子系統的容錯性,保證了伺服器在出現故障時,有強大的自我恢復能力。採用這種內存技術的內存可以同時檢查並修復4個錯誤數據位,伺服器的可靠性和穩定得到了更加充分的保障。

(3)Register Register即寄存器或目錄寄存器,在內存上的作用我們可以把它理解成書的目錄,有了它,當內存接到讀寫指令時,會先檢索此目錄,然後再進行讀寫操作,這將大大提高伺服器內存工作效率。帶有Register的內存一定帶Buffer(緩衝),並且目前能見到的Register內存也都具有ECC功能,其主要應用在中高端伺服器及圖形工作站上,如IBM Netfinity 5000。

(4)FB-DIMM FB-DIMM(Fully Buffered-DIMM,全緩衝內存模組)是Intel在DDR2、DDR3的基礎上發展出來的一種新型內存模組與互聯架構,既可以搭配現在的DDR2內存晶片,也可以搭配未來的DDR3內存晶片。FB-DIMM可以極大地提升系統內存帶寬並且極大地增加內存最大容量。 FB-DIMM技術是Intel為了解決內存性能對系統整體性能的制約而發展出來的,在現有技術基礎上實現了跨越式的性能提升,同時成本也相對低廉。在整個計算機系統中,內存可謂是決定整機性能的關鍵因素,光有快的CPU,沒有好的內存系統與之配合,CPU性能再優秀也無從發揮。這種情況是由計算機原理所決定的,CPU在運算時所需要的數據都是從內存中獲取,如果內存系統無法及時給CPU供應數據,CPU不得不長時間處在一種等待狀態,硬體資源閒置,性能自然無從發揮。對於普通的個人電腦來說,由於是單處理器系統,目前的內存帶寬已經能滿足其性能需求;而對於多路的伺服器來說,由於是多處理器系統,其對內存帶寬和內存容量是極度渴求的,傳統的內存技術已經無法滿足其需求了。這是因為目前的普通DIMM採用的是一種「短線連接」(Stub-bus)的拓撲結構,這種結構中,每個晶片與內存控制器的數據總線都有一個短小的線路相連,這樣會造成電阻抗的不繼續性,從而影響信號的穩定與完整,頻率越高或晶片數據越多,影響也就越大。雖然Rambus公司所推出的的XDR內存等新型內存技術具有極高的性能,但是卻存在著成本太高的問題,從而使其得不到普及。而FB-DIMM技術的出現就較好的解決了這個問題,既能提供更大的內存容量和較理想的內存帶寬,也能保持相對低廉的成本。FB-DIMM與XDR相比較,雖然性能不及全新架構的XDR,但成本卻比XDR要低廉得多。 與現有的普通DDR2內存相比,FB-DIMM技術具有極大的優勢:在內存頻率相同的情況下目前能提供四倍於普通內存的帶寬,並且能支持的最大內存容量也達到了普通內存的24倍,系統最大能支持192GB內存。FB-DIMM最大的特點就是採用已有的DDR2內存晶片(以後還將採用DDR3內存晶片),但它藉助內存PCB上的一個緩衝晶片AMB(Advanced Memory Buffer,高級內存緩衝)將並行數據轉換為串行數據流,並經由類似PCI Express的點對點高速串行總線將數據傳輸給處理器。 與普通的DIMM模塊技術相比,FB-DIMM與內存控制器之間的數據與命令傳輸不再是傳統設計的並行線路,而採用了類似於PCI-Express的串行接口多路並聯的設計,以串行的方式進行數據傳輸。在這種新型架構中,每個DIMM上的緩衝區是互相串聯的,之間是點對點的連接方式,數據會在經過第一個緩衝區後傳向下一個緩衝區,這樣,第一個緩衝區和內存控制器之間的連接阻抗就能始終保持穩定,從而有助於容量與頻率的提升。

伺服器內存典型類型 目前伺服器常用的內存有SDRAM和DDR,DDR2三種內存。

(1)SDRAM

(2)DDR SDRAM

(3)DDR2 SDRAM

以下是SDRAM和DDR SDRAM的對比圖表: 由於伺服器內存在各種技術上相對兼容機來說要嚴格得多,它強調的不僅是內存的速度,而是它的內在糾錯技術能力和穩定性。所以在外頻上目前來說只能是緊跟兼容機或普通台式內存之後。目前台式機的外頻一般來說已到了150MHz以上的時代,但133外頻仍是主流。而伺服器由於受到整個配件外頻和高穩定性的要求制約,主流外頻還是100MHz,但133MHz外頻已逐步在各檔次伺服器中推行,在選購伺服器時當然最好選擇133MHz外頻的了!內存、其它配件也一樣,要儘量同步進行,否則就會影響整個伺服器的性能。目前主要的伺服器內存品牌主要有Kingmax、kinghorse、現代、三星、kingstone、IBM、VIKING、NEC等,但主要以前面幾種在市面上較為常見,而且質量也能得到較好的保障。

本文內容整理自網絡, 文中所有觀點看法不代表淘大白的立場