說起服務器內存,很多人可能會覺得不明所以,其實服務器內存與普通內存還是有著很多共同點的,不過它加入了一些針對高端應用而設計的功能和特性,下面我就以一問一答的方式為各位介紹一下服務器內存。
問:什麼是服務器內存?它與普通PC機上的內存又有什麼區別?
答:服務器內存也是內存,它與我們平常在電腦城所見的普通PC機內存在外觀和結構上沒有什麼明顯實質性的區別,它主要是在內存上引入了一些新的技術,僅從外觀上是不得出什麼結論的。這樣或許你就擔心了,如果別人拿普通PC機的內存條當服務器內存條賣給怎麼知道?這一般來說可以放心,這種可能性幾乎為零。因為普通PC機上的內存在服務器上一般是不可用的,服務器認不到的,這就是說服務器內存不能隨便為了貪便宜用普通PC機的內存來替代的原因了。至於其根本原因是什麼那請請看後面了。
有些人把具有某種技術的內存就稱之為“服務器內存”,其實是不全面的,服務器的這些內存技術之所以在目前看來是服務器在專用,但不能保證永遠只能是服務器專用。這些新技術之所以先在服務器上得以應用是因為服務器價格較貴,有條件得以應用,這些新技術由於價格的原因暫時在普通PC機上無法實現應用,這些新技術會隨著配件價格的下降會逐步走向普通PC機,就象原來的奇偶校正內存一樣原來也是最先應用在服務器上,現在不是很普遍了嗎?所以服務器內存並不是一種特指,它是內存新技術在不同時間段上的應用。
問: 目前主要些什麼品牌的服務器內存?
答:由於服務器內存在技術難度和加工工藝上比普通PC機上的內存有較大提高,所以在服務器內存品牌選擇上沒有象普通PC機內存一樣那麼雜,但目前服務器內存品牌也有逐步雜化的趨勢,目前主要的服務器內存品牌主要有Kingmax、kinghorse、現代、三星、kingstone、IBM、VIKING、NEC等,但主要以前面幾種在市面上較為常見,而且質量也能得到較好的保障。//本文轉自www.45it.com電腦軟硬件應用網
問: 服務器內存技術的發展如何?
答: 服務器內存也與任何其它產品一樣,新技術是在不斷開發,不斷得到應用,然後逐步取代原有的技術,實現它的普及應用。ECC技術在目前來說是服務器內存的主流技術,但新的內存技術已在不斷湧現,目前主要有IBM的Chipkill技術在被各內存生產廠商采用。在內存類型上目前主要已有DDR和RAMBUS公司的RDRAM來取代目前的SD內存,這種DDR目前也帶有ECC技術。但上述主流內存技術也都是在圍繞ECC技術這同一方向,同屬於ECC技術范疇。
問:什麼是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個錯誤數據位,服務器的可靠性和穩定得到了更加充分的保障。 //本文轉自www.45it.com.cn電腦軟硬件應用網
問: 什麼是RAMBUS內存?
答:RAMBUS技術是RAMBUS公司開發的,運用這種RAMBUS技術的內存他們就把它稱之為RAMDRAM,簡稱之為“RDRAM內存,它與目前市面上的ECC內存不同,但它可能同時帶有ECC功能,也有不帶ECC功能的。在RAMBUS內存上,你沒有專門的ECC的檢錯芯片,因此從外觀上很難區分ECC的RAMBUS內存和非ECC的RAMBUS內存,具有校驗功能的RAMBUS內存芯片是18位,而無校驗功能的普通RAMBUS內存芯片是16位,具有ECC功能的RDRAM只是在普通的RDRAM中增加了兩個校驗位,但隨著數據位的增加檢驗位也要跟著增加,也就是說每16位增加兩個檢驗位,照這樣的算法推斷如果是64MB具有ECC功能的RDRAM其實是72MB,128MB具有ECC功能的RDRAM其實是144MB。
簡單的說RAMBUS內存就是一種高性能、芯片對芯片接口技術的新一代存儲產品,它使得新一代的處理器可以發揮出最佳的功能。RAMBUS公司宣稱這種新的技術能夠提供10倍於普通DRAM和三倍於PC100 SDRAM的性能,單根的RAMBUS DRAM,在16位的數據傳輸通道上速度可高達800MHz。但要注意的不是所有的機都能用這種RAMBUS內存,因為這種技術真正推出的時間較晚而且不怎麼經濟,所以目前只有比較早期的主板才能使用RAMBUS內存。
問:什麼奇偶校驗(Parity),它是服務器內存上專用的嗎?
答:直到目前還有人誤認為帶有“奇偶校正”的內存就是服務器內存,其實時到今日這種說法就完全不正確了,奇偶校正技術在目前來說已是“昨日黃花”了,早就有另外一種ECC技術取代它了,更別說是服務器內存的標准了。
對於內存中的“奇偶校驗(Parity)”要從比特概念說起,學過數字電路的人都知道在數字電路中最小的數據單位就是叫“比特(bit)”,也叫“位”,而電腦是一種數字產品,內存中存儲的是數字信號,所以“比特”也是內存中的最小單位,它是通過“1”和“0”來表示數據高、低電平信號的。在數字電路中我們是將8個連續的比特叫做一個字節(byte),在內存中不帶“奇偶校驗”的內存中的每個字節只有8位,若它的某一位存儲出了錯誤,就會使其中存儲的相應數據發生改變而導致應用程序發生錯誤。
而帶有“奇偶校驗”的內存在每一字節(8位)外又額外增加了一位作為錯誤檢測之用。比如一個字節中存儲了某一數值(1、0、1、0、1、0、1、1),把這每一位相加起來(1+0+1+0+1+0+1+1=5)。若其結果是奇數,校驗位就定義為1,反之則為0。當CPU返回讀取儲存的數據時,它會再次相加前8位中存儲的數據,檢查結果是否與校驗位相一致。當發現二者不同時就會試圖糾正這些錯誤,但這只是Parity一廂情願的,當內存檢查到某個數據位有錯誤時,運用Parity技術卻並不一定能確定錯誤在哪一個位,也就不一定能修正錯誤,所以帶有奇偶校正的內存的主要功能僅是“發現錯誤”,並能糾正部分簡單的錯誤。
這種技術應用於服務器領域,那還是在72線內存時代(現在普遍是168線的內存),隨著這種技術應用領域的深入和價格的下降,現在帶有奇偶校正技術的內存普遍都是,廣泛應用於普通PC機上,雖然這種技術功能不是很強大,但應用在普通PC機上還是很有效的,所以目前奇偶校正內存並不是服務器專用,而且目前服務器上所用的內存一般都是ECC內存,它比Parity內存更先進。要注意的一點就是現在的主板都可以使用帶奇偶校驗位或不帶奇偶校驗位兩種內存條,但兩種內存不能混用。
問:什麼是ECC內存?它比Parity(奇偶校正)內存有什麼優點?
答: 目前一談到服務器內存,大家都一致強調要買ECC內存,認為ECC內存速度快,其實是一種錯誤地認識,ECC內存成功之處並不是因為它速度快(速度方面根本不關它事只與內存類型有關),而是因為它有特殊的糾錯能力,使服務器保持穩定。ECC本身並不是一種內存型號,也不是一種內存專用技術,它是一種廣泛應用於各種領域的計算機指令中,是一種指令糾錯技術。
ECC的英文全稱是“ Error Checking and Correcting”,對應的中文名稱就叫做“錯誤檢查和糾正”,從這個名稱我們就可以看出它的主要功能就是“發現並糾正錯誤”,它比奇偶校正技術更先進的方面主要在於它不僅能發現錯誤,而且能糾正這些錯誤,這些錯誤糾正之後計算機才能正確執行下面的任務,確保服務器的正常運行。
之所以說它並不是一種內存型號,那是因為並不是一種影響內存結構和存儲速度的技術,它可以應用到不同的內存類型之中,就象我們在前講到的“奇偶校正”內存,它也不是一種內存,最開始應用這種技術的是EDO內存,現在的SD也有應用,而ECC內存主要是從SD內存開始得到廣泛應用,而新的DDR、RDRAM也有相應的應用,目前主流的ECC內存其實是一種SD內存。
如果要具體講一下ECC與Parity的區別在哪能裡,那還得它們所實現對應功能的機理來說起。上面我們知道Parity內存是通過在原來數據位的基礎增加一個數據位來檢查前8位數據的正確性,但隨著數據位的增加Parity用來檢驗的數據位則成倍增加,也就是說當據位為16位時它需要增加2位用於檢查,當數據位為32位時則需增加4位,依此類推。而ECC內存,它也是在原來的數據位上外加檢驗位來實現的。
不同的是兩都增加的方法不一樣,這也就導致了兩者的主要功能不太一樣。它與Parity不同的是如果數據位是8位,則需要增加5位來進行ECC錯誤檢查和糾正,數據位每增加一倍,ECC只增加一位檢驗位,也就是說當數據位為16位時ECC位為6,32位是為7位ECC位,數據位為64位時為8依此類推,數據位每增加一倍,ECC位只增加一位。關於兩種內存技術所需增加的數據位現列表如下,從表中可以看出它們各自的優勢在什麼地方。
數據位數 Parity需增加的數據`位數 ECC需增加的數據位數
數據位數 Parity需增加的數據位數 ECC需增加的數據位數
8 1 5
16 2 6
32 4 7
64 8 8
128 16 9
256 32 10
512 64 11
… … …
從上表可以看出,當數據的位數增加一倍,Parity也增加一倍,而ECC只需增加一位,當數據為64位時所用的ECC和Parity位數相同(都為8),僅從增加的位數來說,當數據為64位以上,ECC具有極大的優勢,但在64位以下,ECC在位數上處於劣勢,但ECC的優勢不僅體現在這方面,它主要體現在它的糾錯能力上,這是Parity內存所無法比擬的!在內存中ECC能夠容許錯誤,並可以將錯誤更正,使系統得以持續正常操作,不致因錯誤而中斷。但在這裡需要說明的一點就是ECC內存也不是對所有錯誤都有能檢測並糾正過來,一般來說它也只能同時發現並糾正一個比特的數據錯誤。