知識庫
什么是ECC?
Error Checking and Correcting 簡稱 ECC,是一種能夠?qū)崿F(xiàn)“錯誤檢查和糾正”的技術(shù)。ECC內(nèi)存就是采用了這種技術(shù)的內(nèi)存,多用在服務(wù)器及工作站領(lǐng)域,它使計算機系統(tǒng)在工作時更加安全穩(wěn)定。ECC和奇偶校驗(Parity)類似,但Parity只能檢測到錯誤而無法進行修復(fù),而ECC可以糾正絕大多數(shù)錯誤。
內(nèi)存會發(fā)生哪些錯誤?
單位錯、多位錯、列錯、行錯,是內(nèi)存常產(chǎn)生的錯誤。
單位錯:通常發(fā)生在讀取完整比特或詞時,某一位比特出錯。
多位錯:讀相同的比特和詞時總是同一位數(shù)據(jù)出錯。
列錯、行錯:單位錯發(fā)生在很多詞中。
ECC如何糾正內(nèi)存錯誤?
ECC內(nèi)存使用額外的比特位存儲數(shù)據(jù)加密的代碼。數(shù)據(jù)被寫入內(nèi)存時,對應(yīng)的ECC代碼同時被保存。當再次讀取存儲的數(shù)據(jù)時,被保存的ECC代碼就會和讀取數(shù)據(jù)時生成的ECC進行比對。若二者不同,則進行解碼,以排查數(shù)據(jù)中出錯的位。錯誤位會被去除,內(nèi)存控制器會調(diào)取正確的數(shù)據(jù),被糾正的數(shù)據(jù)幾乎不會被存回內(nèi)存。若再次讀取同樣的錯誤數(shù)據(jù),糾正技術(shù)會再次執(zhí)行。
ECC內(nèi)存誤區(qū)
談到服務(wù)器內(nèi)存,大家都強調(diào)要用ECC內(nèi)存,認為ECC內(nèi)存速度快,其實是一種錯誤地認識,ECC內(nèi)存的優(yōu)勢并不是因為它速度快,而是因為它有特殊的糾錯能力,能使服務(wù)器保持穩(wěn)定。
ECC并不是一種內(nèi)存型號,也不是內(nèi)存的專有技術(shù),它是一種廣泛應(yīng)用于各種領(lǐng)域的計算機指令,是一種指令糾錯技術(shù)。它的主要功能就是“發(fā)現(xiàn)并糾正錯誤”,比奇偶校正技術(shù)更先進的方面主要在于它不僅能發(fā)現(xiàn)錯誤,而且能糾正這些錯誤,錯誤糾正后計算機才能正確執(zhí)行后面的任務(wù),從而保障服務(wù)器穩(wěn)定運行。說它不是一種內(nèi)存型號,是因為ECC并不是一種影響內(nèi)存結(jié)構(gòu)和存儲速度的技術(shù),ECC技術(shù)可以應(yīng)用到不同類型的內(nèi)存中。