TWI524355B - 用於8位元記憶體裝置之錯誤校正機制 - Google Patents
用於8位元記憶體裝置之錯誤校正機制 Download PDFInfo
- Publication number
- TWI524355B TWI524355B TW099140166A TW99140166A TWI524355B TW I524355 B TWI524355 B TW I524355B TW 099140166 A TW099140166 A TW 099140166A TW 99140166 A TW99140166 A TW 99140166A TW I524355 B TWI524355 B TW I524355B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- data
- memory
- error
- value
- Prior art date
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1004—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's to protect a block of data words, e.g. CRC or checksum
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/08—Error detection or correction by redundancy in data representation, e.g. by using checking codes
- G06F11/10—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
- G06F11/1008—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices
- G06F11/1012—Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices using codes or arrangements adapted for a specific type of error
- G06F11/1024—Identification of the type of error
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- General Engineering & Computer Science (AREA)
- Quality & Reliability (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Computer Security & Cryptography (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
- For Increasing The Reliability Of Semiconductor Memories (AREA)
Description
本發明之實施例係有關於用於記憶體裝置之錯誤校正技術。更具體地,本發明之實施例係有關於提供用於記憶體裝置之錯誤校正之技術,相比於傳統之錯誤校正技術,其既可提高性能又能降低功耗。
記憶體裝置故障導致系統停機時間及/或錯誤結果。因此,已開發出各種錯誤檢測及/或錯誤校正機制。基礎機制包含奇偶核對。較高級技術提供錯誤校正。例如,一記憶體模組可包括多個8位元記憶體積體電路(IC)包以儲存資料及一額外8位元記憶體包以儲存與儲存在該等其它IC中之資料相對應之錯誤校正碼(ECC)。
最常用之電腦記憶體利用4位元或8位元寬之動態隨機存取記憶體(DRAM)晶片,它們焊接到稱為單直列記憶體模組(SIMM)之一單面印刷電路板(PCB)直列記憶體模組或者雙面印刷電路板直列記憶體模組或雙直列記憶體模組(DIMM)。此等SIMM及DIMM可插入一電腦上之插孔內以組成記憶體系統。
對於一伺服器等級的電腦而言,其具有含288個DRAM到9,216個DRAM之32個記憶體DIMM到128個記憶體DIMM並非不常見,且以高發信頻率運行之此大量積體電路及連接插孔中之一故障可產生以下錯誤:可悄悄破壞重要資料或者在檢測到不可校正之錯誤時迫使應用程式終止。錯誤級別可分為永久性錯誤、持續性錯誤或暫時性錯誤。暫時性錯誤進一步分為事件錯誤及邊距錯誤。輻射誘導之DRAM軟錯誤是事件錯誤之一形式。發信誘導之故障是邊距錯誤之一形式。
已發展出各種策略來處理錯誤。例如,可添加冗餘記憶體以支持錯誤檢測與校正編碼。在電腦工業中,具有64個資料位元及8個冗餘校正位元之DRAM記憶體模組已成為高容量標準。
一個有效的ECC機制稱為x4單一裝置資料修正(SDDC),其被設計用來自4位元記憶體裝置之一單一DRAM晶片故障恢復。類似的x8 SDDC被設計用來自8位元記憶體裝置之一DRAM晶片故障恢復。為了向一完全確定的邏輯閘方案提供足夠冗餘,當前之記憶體SDDC通常需要18個或36個DRAM晶片。該記憶體資料及核對位元是一組合邏輯區塊之輸入,該組合邏輯區塊產生一DRAM錯誤定位向量以識別該故障。該組合邏輯區塊還可輸出可用來校正故障DRAM晶片中之資料之一位元校正向量(例如翻轉位元)。
每瓦特性能模型化已證明,每一讀及寫操作傳輸64位元組記憶體區塊提供了最佳效率。為了傳遞64位元組,一些SDDC誤碼將一相同位址發送到每一I/O時鐘傳遞144個資訊位元之一鎖步通道中之兩個x4 DIMM。32個x4資料DRAM加上4個x4校正位元DRAM之此安排為x4 SDDC提供了足夠的冗餘同時在4個I/O時鐘中傳遞一64位元組記憶體區塊。一些SDDC誤碼將一獨特位址發送到每一I/O時鐘傳遞72個資訊位元之每一獨立通道x4 DIMM。16個x4個資料DRAM加上兩個x4個校正位元DRAM之此安排為x4 SDDC提供了足夠冗餘同時在一更低功耗之8個I/O時鐘中傳遞一64位元組記憶體區塊。
錯誤校正理論已證明,儘管可實現能夠在8個I/O突發中僅用9個x8 DRAM傳遞一個64位元組記憶體區塊之功率效率,但為獨立通道x8 ECC DIMM上之最佳x8 SDDC建立完全確定之硬體是不可能的。
依據本發明之一實施例,係特地提出一種方法,其包含以下步驟:利用一多項式方程式產生對應於一64位元資料值之一8位元核對和值;將該8位元核對和值與該64位元資料值序連以形成一72位元資料區塊;將該72位元資料區塊儲存在一記憶體中;自該記憶體讀取該72位元資料區塊;利用該多項式方程式產生針對自該記憶體讀取之該72位元資料區塊之一新核對和值;如果該新核對和值指出一錯誤,則對來自一個DRAM之1位元持續性故障或8位元永久性故障啟動錯誤校正操作。
本發明之實施例以舉例方式而非限制方式說明在附圖之圖式中,其中同樣的參考數字表示同樣的元件。
第1圖是一電子系統之一個實施例之一方塊圖。
第2圖說明了可以與CRC多項式P(x)=x8+x5+x3+x2+x+1一起使用以檢測及校正一72位元碼字中之一單一位元錯誤之一錯誤向量表之一個實施例。
第3圖說明了可以與CRC多項式P(x)=x8+x2+1一起使用以檢測及校正一72位元碼字中之一單一位元錯誤之一錯誤向量表之一個實施例。
第4圖是計算一64位元資料區塊之一8位元核對和之一概念性說明。
第5圖是要寫入記憶體之一72位元區塊之一概念性說明,其包括一64位元資料區塊之一8位元核對和。
第6圖是自記憶體讀取之一72位元區塊之一概念性說明,其包括一64位元資料區塊及用以檢查錯誤之8位元核對和。
第7圖是利用核對和值之一錯誤校正技術之一個實施例之一流程圖。
在以下描述中,提出了大量特定細節。然而,本發明之實施例可脫離此等特定細節實施。在其它情況下,習知電路、結構及技術未詳細顯示以不混淆對本發明的理解。
暫時性故障是DRAM控制邏輯中之發信邊距故障及中子故障。本文描述之技術為暫時性故障提供很強的檢測及校正。此等暫時性故障通常由再讀記憶體位址消除。
1位元持續性故障,諸如DRAM陣列中之中子1位元錯誤可由本文討論之該等技術來檢測及校正。如可能由中子對該DRAM陣列之碰撞而產生之多位元持續性故障較不常見且由本文描述之該等技術檢測到,但不作校正。
永久性錯誤,也稱為硬體錯誤,由一DRAM故障或一插孔錯誤引起。本文描述之該等技術提供對單位元及8位元符號永久性錯誤之檢測且校正。在一個實施例中,有關哪些DRAM重複先前錯誤之一表單或一記錄可被保留以減少校正永久性錯誤所需的時間。
由中子碰撞DRAM控制邏輯及發信故障而產生之暫時性記憶體錯誤不常出現,且它們之校正延遲對性能幾乎沒影響。在一個實施例中,當檢測到一錯誤時,記憶體控制器重新讀取該資料,試圖識別及消除任何不良邊距暫時性發信錯誤。如果該記憶體故障在此第二讀取之後仍存在,則該記憶體控制器使該資料反轉且將此反轉資料寫回記憶體,且接著讀取該反轉資料以識別固定1或固定0之永久性故障。此資訊用來定位包含來自一DRAM或插孔接腳之故障資料之該8位元符號。
如果在該第二讀取之後未檢測到任何永久性故障,則該核對和與第3圖中所述之8位元錯誤識別符之72項表單比較,且如果找到一匹配,則該相對應之1位元持續性錯誤可透過將該碼字中之識別位元反轉而校正。如果在該第二讀取之後沒有檢測到永久性故障,且在此72項8位元錯誤識別表中沒有找到任何匹配,則一多位元持續性故障存在,而不能夠校正,且該記憶體控制器發信通知一不可校正錯誤狀態。
本文描述的是需要較少記憶體晶片且因此相比於傳統的SDDC機制提供系統複雜度降低及系統功耗降低之SDDC機制。在一個實施例中,只有9個8位元寬記憶體晶片(例如動態隨機存取記憶體或DRAM)用於x8 SDDC。此技術依靠試驗固定的一組可能的解決方案以校正該故障。此誤碼提供了一很高的錯誤檢測速率,但需要一組錯誤試驗以校正該等檢測到之故障。考慮到不常見錯誤(例如中子軟錯誤)出現頻率較低,其額外的校正延遲是可以接受的。對於重複校正(例如一永久失效的位置或晶片),關於哪些DRAM包含該等永久故障之一記錄可被保留以簡化錯誤校正。
在一個實施例中,可用來唯一識別1位元故障之一8位元循環冗餘核對(CRC)多項式可用來產生一72項8位元核對和錯誤向量表以校正該等最常見的暫時性故障。此多項式還為永久性故障SDDC提供強大的三重位元錯誤檢測及單一8位元符號檢測。
錯誤保護理論表明,一完全確定的組合邏輯x8 SDDC機制至少需要16個核對位元。本文描述之該等技術提供了所有永久性故障之單一位元錯誤校正及x8 SDDC,但不常見的多位元中子資料陣列寫故障只被檢測到但不可校正。本文描述之技術可透過利用一詢查表校正1位元暫時性故障及利用資料反轉測試來識別哪一記憶體晶片具有可經由一系列試驗校正之一永久性故障來提供僅具有8個核對位元之x8 SDDC。因此,本文描述之該技術比傳統x8 SDDC需要較少的資源。
在一個實施例中,本文描述之該錯誤檢測及校正技術作為積體電路、儲存在一個或多個系統元件(例如記憶體控制器、處理器)中之指令或它們之任一組合實施。在一個實施例中,用於提供錯誤檢測及校正之該等機制在不同於該等記憶體模組之元件中,這允許使用標準記憶體元件(例如DIMM)。
第1圖是一電子系統之一個實施例之一方塊圖。第1圖中說明之該電子系統用來表現一系列電子系統(有線或無線),例如,包括電腦系統、膝上型電腦系統、伺服器系統等。可選擇的電子系統可包括更多、更少及/或不同的元件。
電子系統100包括匯流排105及用以傳遞資訊之其它通訊裝置及可處理資訊之耦接到匯流排105之(多個)處理器110。電子系統100可進一步包括隨機存取記憶體(RAM)或其它動態儲存裝置120(稱為記憶體),其耦接到匯流排105且可儲存可由處理器110執行之資訊及指令。在(多個)處理器10執行指令期間,記憶體120還可用來儲存暫時變數或其它中間資訊。
在一個實施例中,當自記憶體120讀取資料及將資料寫入記憶體120時,可利用本文描述之該等錯誤檢測及校正機制。一記憶體控制器可包括在一個或多個處理器110中或者可與匯流排105耦接。該(等)記憶體控制器將一介面提供給儲存資料之該等實體記憶體裝置(例如具有多個DRAM晶片之SIMM或DIMM)。
電子系統100還可包括耦接到匯流排105之唯讀記憶體(ROM)及/或其它靜態儲存裝置130,它們可儲存用於處理器110之靜態資訊及指令。資料儲存裝置140可耦接到匯流排105以儲存資訊及指令。諸如一磁碟或光碟及之資料儲存裝置140及相應驅動器可耦接到電子系統100。
電子系統100還可經由匯流排105耦接到用以將資訊顯示給一使用者之顯示裝置150,諸如一陰極射線管(CRT)或液晶顯示器(LCD)。包括字母數字及其它按鍵之字母數字輸入裝置160可耦接到匯流排105以將資訊及命令選擇輸入到處理器110。其它類型之使用者輸入裝置是游標控制170,諸如一滑鼠、一軌跡球或游標方向鍵以將方向資訊及命令選擇傳遞到處理器110且控制顯示器150上之游標移動。
電子系統100可進一步包括(多個)網路介面180以接取一網路,諸如一區域網路。例如,(多個)網路介面180可包括具有天線185之一無線網路介面,該天線185可表示為一個或多個天線。例如,(多個)網路介面180還可包括經由網路電纜187與遠端裝置進行通訊之一有線網路介面,網路電纜187可以是例如一乙太電纜、一同軸電纜、一光纖電纜、一串列電纜或一並列電纜。
在一個實施例中,(多個)網路介面180可藉由,例如遵從IEEE802.11b及/或IEEE 802.11g標準來接取一區域網路及/或例如,該無線網路介面可透過遵從藍牙標準接取一個人區域網路。也可支持其它無線網路介面及/或協定。
IEEE 802.11b符合1999年9月16日通過之名稱為“Local and Metropolitan Area Networks,Part 11: Wireless LAN Medium Access Control(MAC) and Physical Layer(PHY) Specifications: Higher-Speed Physical Layer Extension in the 2.4 GHz Band”之IEEE標準802.11b-1999及其相關文件。IEEE 802.11g符合2003年6月27日提出之名稱為“Local and Metropolitan Area Networks,Part 11: Wireless LAN Medium Access Control(MAC) and Physical Layer(PHY) Specifications,Amendment 4: Further Higher Rate Extension in the 2.4 GHz Band”之IEEE標準802.11g-2003及其相關文件。藍牙協定描述在藍牙技術聯盟公司2001年2月22日出版之“Specification of the Bluetooth System: Core,Version 1.1”中。還可支持藍牙標準之相相關版本及以前版本或後續版本。
除了或者代替經由無線LAN標準進行通訊,(多個)網路介面180可利用例如分時多重接取(TDMA)協定、全球行動通訊系統(GSM)協定、分碼多重接取(CDMA)協定及/或任一其它類型之無線通訊協定。
在各種實施例中,可利用不同的多項式方程式產生核對和值。以下描述基於利用兩個多項式之兩個實施例。可利用相同概念但利用其它多項式實施替代實施例。所述之兩個多項式分別提供了最小錯誤檢測及最大閘數。
在一個實施例中,8階多項式P(x)=x8+x5+x3+x2+x+1用來產生一循環冗餘核對和,該循環冗餘核對和提供了對每一72位元傳送進行之三重位元錯誤檢測及對每一x8 DRAM資料傳送進行之8位元符號錯誤檢測。在一個實施例中,CRC硬體由呈6級深的樹之334個2輸入互斥或閘構成。在替代實施例中,可利用其它樹結構。
在此實施例中,可利用以下方程式(其中“^”表示一互斥或函數):
第2圖說明了可以與CRC多項式P(x)=x8+x5+x3+x2+x++1一起使用之一錯誤向量表之一個實施例。當檢索出之資料位元及核對和位元利用CRC多項式檢索出及評估時,零結果指出沒有錯誤。一非零結果指出一錯誤且提供了與很多情況下之該錯誤及校正有關之資訊。
在一個實施例中,如果識別一永久性故障,該故障DRAM之位置或插孔接腳代號記錄在該記憶體控制器中,且對該有錯誤之8位元符號資料進行多達256次位元翻轉試驗,直到該核對和等於零為止。當該等試驗核對和為零時,該資料已經被校正。多個CRC邏輯區塊可被建立及管線化以最小化此等試驗之延時。該記憶體控制器儲存每一記憶體組中之哪一DRAM具有永久性故障,且當該有故障之DRAM被頻繁讀取時,此資訊可用來降低校正延時。
在一個實施例中,如果沒有識別到永久性故障,則該記憶體控制器將該8位元核對和錯誤向量與1位元故障識別符之一72項表單比較。如果該核對和與此表中之一項匹配,則該一個資料位元反轉且再次計算該核對和。一全零核對和指出該被識別位置處之一單一位元中子錯誤被校正。任一非零核對和發信表示檢測到一不可校正之多位元中子故障。還可在一已標記之DRAM SDDC校正期間查看此72項表單以捕捉出現在一位址中之一隨機1位元中子錯誤,其中,該已標記之SDDC DRAM組中不存在永久性故障。
在一個實施例中,8階多項式P(x)=x8+x2+1用來產生一循環冗餘核對和,其提供對每一72位元傳送進行之三重位元錯誤檢測及對每一x8 DRAM資料傳送進行之8位元符號檢測。在一個實施例中,該CRC硬體可由呈6級深的樹之272個2輸入互斥或閘構成。在替代之實施例中,可利用其它樹結構。
在此實施例中,可利用以下方程式(其中“^”表示一互斥或函數):
第3圖說明了可以與CRC多項式P(x)=x8+x2+1一起使用之一錯誤向量表之一個實施例。當檢索出之資料位元及核對和位元利用CRC多項式檢索出及評估時,零結果指出沒有錯誤。非零結果指出一錯誤且提供了與很多情況下之該錯誤及校正有關之資訊。
在該72位元碼字中,每一1位元故障具有一唯一核對和。此可用來校正1位元中子持續性故障。多位元故障可混淆該等1位元故障核對和。此時為何執行讀取-反轉-寫入-讀取以識別哪一DRAM具有固定1或固定0之任一永久性故障。
第4圖是計算一64位元資料區塊之一8位元核對和之一概念性說明。在一個實施例中,一72位元區塊透過使要儲存在記憶體中之一64位元資料區塊與用以產生一8位元核對和值之一8位元段組合而構成。可利用以上所述之該等多項式產生該核對和值。
第5圖是要寫入記憶體之一72位元區塊之一概念性說明,該72位元區塊包括一64位元資料區塊及一8位元核對和。在一個實施例中,要寫入記憶體之該72位元區塊包括邏輯左移8位元之64資料位元及作為低位8位元序連之8位元核對和值。即位元8到位元71包含64個資料位元,及位元0到位元7包含該8位元核對和值。如果不存在故障,則此實施例在記憶體控制器讀操作期間產生一全零核對和。也可利用其它組態。例如,該核對和可儲存為該72位元資料區塊之高8位元,且由該記憶體控制器邏輯處理以提供恰當的錯誤檢測。
第6圖是自記憶體讀取之一72位元區塊之一概念性說明,其包括一64位元資料區塊及8位元核對和。如果沒有發生錯誤,則第6圖之該72位元區塊與第5圖中之該72位元區塊相同。然而,如果發生一錯誤,第6圖之72位元區塊與第5圖之72位元區塊之間,一個或多個位元不同。
為了判定是否發生一錯誤,產生從記憶體擷取之該72位元資料區塊之一新8位元核對和。在一個實施例中,利用與針對第4圖中說明之該資料產生核對和值所用之多項式相同之多項式,產生從記憶體讀取之該區塊之核對和值。如果該新8位元核對和值全為零(即,00000000),則未發生錯誤且可擷取及利用該64個資料位元。如果該新8位元核對和值非零,則已發生一錯誤且可如以上所述地被校正。
第7圖是利用讀自記憶體之核對和值之一錯誤校正技術之一個實施例。步驟700,自記憶體讀取一資料區塊。在一個實施例中,自記憶體讀取之該資料區塊按照第6圖中組配。步驟705,針對該資料區塊檢查一核對和值,且若沒有錯誤,則步驟710,利用該資料。
步驟705處,如果該核對和指出一錯誤,則步驟715處,啟動錯誤校正。在一個實施例中,步驟720處,第一錯誤校正行為是自記憶體重讀該資料以消除暫時性故障。步驟725處,針對該重讀資料產生一核對和值且檢查一錯誤。在步驟725處,如果沒有錯誤,則步驟730處,該暫時性發信錯誤已消除且可利用該資料。
在步驟725處,如果已檢測到一錯誤,則在步驟735處,該記憶體控制器判定正被讀取之該組中之一記憶體裝置(例如DRAM)是否標記有一永久性錯誤。在步驟735處,如果該記憶體裝置已被標記,則在步驟740處,該產生之核對和值可與一錯誤表比較。在一個實施例中,該錯誤表儲存該等72個位元中每一者唯一的8位元核對和錯誤指示器以提供對所有1位元持續性及永久性故障之有效校正。
來自該錯誤表之資訊可用來識別一故障記憶體裝置及避免可能與其它記憶體裝置混淆之問題。在一個實施例中,在步驟745處,該記憶體控制器可透過使該資料反轉及將該反轉資料重寫入記憶體來測試永久性故障。在步驟750處,自記憶體讀取該反轉資料。
在步驟755處,如果讀取該反轉資料之結果指出多個記憶體裝置中之一永久性故障,則在步驟760處,發現一不可校正之永久性故障且不能被校正。在步驟755處,如果讀取該反轉資料之結果指出僅一個記憶體裝置中之一永久性故障,則在步驟765處,對該資料執行錯誤校正試驗。
在一個實施例中,錯誤校正試驗可透過以下完成:產生該資料之一核對和值及該核對和值之每一可能迭代,直到產生指出沒有錯誤產生之一核對和為止。對於利用8位元核對和值之一系統,此可多達256次迭代。在步驟770處,如果該等迭代中之一個產生一無錯誤核對和值,則該相應的資料值為正確值且可利用。
在步驟770處,如果該等迭代都不產生一無錯核對和值,則在步驟760處,存在一不可校正之故障。在一個實施例中,在步驟775處,該記憶體控制器標記該不合格的記憶體裝置,使得可進行後續校正而不迭代以上所述之校正過程。
返回步驟740處之利用該核對和表,如果該核對和不與該表匹配,則在步驟765處,啟動該迭代試驗過程。步驟770處之校正或者步驟760處之識別一不可校正之故障如上所述地進行。
返回步驟735處之判定該記憶體裝置是否已被標記,如果沒有,則在步驟780處,該記憶體控制器可透過使該資料反轉、將該資料寫入記憶體來測試永久性故障。在步驟785處,重讀該記憶體位置。在步驟790處,如果讀取該反轉資料指出僅一個記憶體裝置中之一永久性故障,則由該讀取-反轉-寫入-讀取過程判定之該等陷落位元位置可用作故障位置之“提示”。在步驟765處,首先可利用對應於此等位置之錯誤向量執行校正試驗迭代,其可產生較少的迭代以找到正確結果。
在步驟800處,如果在多個記憶體位置中發現永久性故障,則在步驟760處,已發現一不可校正之永久性故障。在步驟785及790處,如果有不是永久性故障之多位元錯誤,則在步驟810處,有一多位元持續性軟錯誤。在步驟815處,如果該核對和值與該表中之一1位元故障匹配,則在步驟820處,可翻轉該被識別的位元以試圖校正該持續性軟錯誤。在步驟825處,針對具有該翻轉位元之該資料產生一核對和值以判定一錯誤是否持續存在,該錯誤持續存在指出步驟830處之已發生一混淆且已檢測到一不可校正之多位元錯誤。在步驟815處,如果該核對和不與該表中之一項匹配,則在步驟830中,已發生混淆且已檢測到一不可校正之多位元錯誤。
本說明書中對“一個實施例”或“一實施例”之參照表示結合該實施例描述之一特定特徵、結構或特性包括在本發明之至少一個實施例中。本說明書中各個位置中之措辭“一個實施例”之出現不一定指的是同一實施例。
儘管本發明已根據一些實施例予以描述,但熟於此技者將明白,本發明不局限於所述之該等實施例,而可利用所述申請專利範圍之精神及範圍內之修改及變更實施。因此本說明應看作是說明性的而非限制性的。
100...電子系統
105...匯流排
110...處理器
120...隨機存取記憶體(RAM)或其它動態儲存裝置、記憶體
130...唯讀記憶體(ROM)及/或其它靜態儲存裝置
140...資料儲存裝置
150...顯示裝置
160...字母數字輸入裝置
170...游標控制
180...網路介面
185...天線
187...網路電纜
700~790、800~830...步驟
第1圖是一電子系統之一個實施例之一方塊圖。
第2圖說明了可以與CRC多項式P(x)=x8+x5+x3+x2+x+1一起使用以檢測及校正一72位元碼字中之一單一位元錯誤之一錯誤向量表之一個實施例。
第3圖說明了可以與CRC多項式P(x)=x8+x2+1一起使用以檢測及校正一72位元碼字中之一單一位元錯誤之一錯誤向量表之一個實施例。
第4圖是計算一64位元資料區塊之一8位元核對和之一概念性說明。
第5圖是要寫入記憶體之一72位元區塊之一概念性說明,其包括一64位元資料區塊之一8位元核對和。
第6圖是自記憶體讀取之一72位元區塊之一概念性說明,其包括一64位元資料區塊及用以檢查錯誤之8位元核對和。
第7圖是利用核對和值之一錯誤校正技術之一個實施例之一流程圖。
100...電子系統
105...匯流排
110...處理器
120...隨機存取記憶體(RAM)或其它動態儲存裝置、記憶體
130...唯讀記憶體(ROM)及/或其它靜態儲存裝置
140...資料儲存裝置
150...顯示裝置
160...字母數字輸入裝置
170...游標控制
180...網路介面
185...天線
187...網路電纜
Claims (14)
- 一種錯誤校正方法,其包含以下步驟:利用一多項式方程式產生對應於一64位元資料值之一8位元核對和值;將該8位元核對和值與該64位元資料值序連以形成一72位元資料區塊;將該72位元資料區塊儲存在一記憶體中;自該記憶體讀取該72位元資料區塊;利用該多項式方程式產生針對自該記憶體讀取之該72位元資料區塊之一新核對和值;以及如果該新核對和值指出一錯誤,則對來自一個動態隨機存取記憶體(DRAM)之1位元持續性故障或來自該一個DRAM之8位元永久性故障啟動錯誤校正操作,其中該8位元核對和值為永久性故障提供單一位元錯誤校正及x8單一資料裝置校正(SDDC),且1位元暫時性故障是利用一詢查表及資料反轉測試被消除,及其中九個8位元寬記憶體晶片被用於x8 SDDC。
- 如申請專利範圍第1項所述之方法,其中該8位元核對和值係對包含具有8個前導零位元的該64位元資料值之一72位元值產生。
- 如申請專利範圍第1項所述之方法,其中該8位元核對和值利用多項式:P(x)=x8+x5+x3+x2+x+1產生。
- 如申請專利範圍第1項所述之方法,其中該8位元核對和值利用多項式:P(x)=x8+x2+1產生。
- 如申請專利範圍第1項所述之方法,其中如果該新核對和值指出一錯誤則啟動錯誤校正操作之步驟包含:將該等資料位元反轉;將該等反轉資料位元寫入記憶體;自記憶體讀取該等反轉資料位元;將該等來自記憶體之反轉資料位元與該等反轉資料位元比較以判定是否發生一位元錯誤;以及校正該位元錯誤。
- 如申請專利範圍第1項所述之方法,其中如果該新核對和值指出一錯誤則啟動錯誤校正操作之步驟包含:針對可能的已校正資料值之多次迭代,產生核對和值;評估針對該等可能的已校正資料值而產生之該等核對和值;選擇對應於指出沒有錯誤之一核對和值之一可能的已校正資料值;將對應於指出沒有錯誤之該核對和值之該可能的已校正資料值標示為一正確資料值;以及送回該正確資料值。
- 如申請專利範圍第1項所述之方法,其進一步包含以下步驟:保留關於已知永久性錯誤之一表單;及當該新核對和值指出一資料錯誤時,利用該表單來校正資料錯誤。
- 一種錯誤校正系統,其包含:具有多個記憶體裝置之一記憶體;以及與該記憶體耦接之一記憶體控制器,其用以利用一多項式方程式產生對應於一64位元資料值之一8位元核對和值、將該8位元核對和值與該64位元資料值序連以形成一72位元資料區塊、及使該72位元資料區塊儲存在該記憶體中,該記憶體控制器進一步用以自該記憶體讀取該72位元資料區塊、利用該多項式方程式產生針對自記憶體讀取之該72位元資料區塊之一新核對和值、及如果該新核對和值指出一錯誤則對來自一個動態隨機存取記憶體(DRAM)之1位元持續性故障或來自該DRAM之8位元永久性故障啟動錯誤校正操作,其中該8位元核對和值為永久性故障提供單一位元錯誤校正及x8單一資料裝置校正(SDDC),且1位元暫時性故障是利用一詢查表及資料反轉測試被消除,及其中九個8位元寬記憶體晶片被用於x8 SDDC。
- 如申請專利範圍第8項所述之系統,其中該8位元核對和值係對包含具有8個前導零位元的該64位元資料值之一72位元值產生。
- 如申請專利範圍第8項所述之系統,其中該8位元核對和值係利用多項式:P(x)=x8+x5+x3+x2+x+1產生。
- 如申請專利範圍第8項所述之系統,其中該8位元核對和值係利用多項式:P(x)=x8+x2+1產生。
- 如申請專利範圍第8項所述之系統,其中如果該新核對 和值指出一錯誤則啟動錯誤校正操作之動作包含該記憶體控制器會:將該等資料位元反轉;將該等反轉資料位元寫入記憶體;自記憶體讀取該等反轉資料位元;將該等來自記憶體之反轉資料位元與該等反轉資料位元比較以判定是否發生一位元錯誤;以及校正該位元錯誤。
- 如申請專利範圍第8項所述之系統,其中如果該新核對和值指出一錯誤則啟動錯誤校正操作之動作包含該記憶體控制器會:針對可能的已校正資料值之多次迭代,產生核對和值;評估針對該等可能的已校正資料值而產生之該等核對和值;選擇對應於指出沒有錯誤之一核對和值之一可能的已校正資料值;將對應於指出沒有錯誤之該核對和值之該可能的已校正資料值標示為一正確資料值;以及送回該正確資料值。
- 如申請專利範圍第8項所述之系統,其進一步包含該記憶體控制器會:保留關於具有永久性錯誤之已知記憶體元件之一表單;及 當該新核對和值指出一資料錯誤時,利用該表單來校正資料錯誤。
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US12/644,779 US8612828B2 (en) | 2009-12-22 | 2009-12-22 | Error correction mechanisms for 8-bit memory devices |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201137890A TW201137890A (en) | 2011-11-01 |
TWI524355B true TWI524355B (zh) | 2016-03-01 |
Family
ID=43500874
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW099140166A TWI524355B (zh) | 2009-12-22 | 2010-11-22 | 用於8位元記憶體裝置之錯誤校正機制 |
Country Status (5)
Country | Link |
---|---|
US (1) | US8612828B2 (zh) |
CN (1) | CN102117662B (zh) |
DE (1) | DE102010051813B4 (zh) |
GB (1) | GB2476537B (zh) |
TW (1) | TWI524355B (zh) |
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI671750B (zh) * | 2018-11-28 | 2019-09-11 | 華邦電子股份有限公司 | 記憶體的控制方法及非暫態電腦可讀媒體 |
TWI706415B (zh) * | 2017-02-23 | 2020-10-01 | 張錦本 | 應用128位元之雙碼錯誤檢測裝置及方法 |
Families Citing this family (15)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US9054840B2 (en) | 2011-12-15 | 2015-06-09 | Lenovo Enterprise Solutions (Singapore) Pte. Ltd. | Error detection and correction of a data transmission |
US8812934B2 (en) * | 2012-12-12 | 2014-08-19 | HGST Netherlands B.V. | Techniques for storing bits in memory cells having stuck-at faults |
DE102013215055B4 (de) * | 2013-07-31 | 2021-01-28 | Infineon Technologies Ag | Schaltungsanordnung, Vorrichtung, Verfahren und Computerprogramm mit modifiziertem Fehlersyndrom zur Fehlererkennung von permanenten Fehlern in Speichern |
CN104658608B (zh) | 2013-11-22 | 2018-03-06 | 华为技术有限公司 | 存储设备的写入方法及写入装置 |
US9979416B2 (en) | 2014-12-10 | 2018-05-22 | Rambus Inc. | Memory controller and method of data bus inversion using an error detection correction code |
CN104635190B (zh) * | 2014-12-31 | 2017-05-03 | 漳州科能电器有限公司 | 一种计量芯片抗干扰检测及纠错方法和装置 |
US9697094B2 (en) * | 2015-02-06 | 2017-07-04 | Intel Corporation | Dynamically changing lockstep configuration |
US9691505B2 (en) * | 2015-03-27 | 2017-06-27 | Intel Corporation | Dynamic application of error correction code (ECC) based on error type |
KR102324769B1 (ko) | 2015-06-29 | 2021-11-10 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 이를 포함하는 메모리 시스템 |
US10268541B2 (en) | 2016-08-15 | 2019-04-23 | Samsung Electronics Co., Ltd. | DRAM assist error correction mechanism for DDR SDRAM interface |
US10860495B2 (en) * | 2016-11-29 | 2020-12-08 | Arm Limited | Storage circuitry responsive to a tag-matching command |
DE102018122826A1 (de) | 2017-09-21 | 2019-03-21 | Samsung Electronics Co., Ltd. | Vorrichtung zum Unterstützen eines Fehlerkorrekturcodes und Testverfahren dafür |
US11609816B2 (en) | 2018-05-11 | 2023-03-21 | Rambus Inc. | Efficient storage of error correcting code information |
US10636476B2 (en) | 2018-11-01 | 2020-04-28 | Intel Corporation | Row hammer mitigation with randomization of target row selection |
KR20230030795A (ko) | 2021-08-26 | 2023-03-07 | 삼성전자주식회사 | 메모리 컨트롤러 및 이를 포함하는 메모리 장치 |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
DE2134529A1 (de) | 1971-07-10 | 1973-01-25 | Ibm Deutschland | Verfahren zur fehlererkennung und -korrektur in aus dem speicher einer programmgesteuerten datenverarbeitungsanlage ausgelesenen informationswoertern |
US5734664A (en) | 1995-06-23 | 1998-03-31 | Fujitsu Limited | Method and apparatus to efficiently store error codes |
US5740188A (en) * | 1996-05-29 | 1998-04-14 | Compaq Computer Corporation | Error checking and correcting for burst DRAM devices |
US6609225B1 (en) * | 2000-12-21 | 2003-08-19 | Cisco Technology, Inc. | Method and apparatus for generating and checking cyclic redundancy code (CRC) values using a multi-byte CRC generator on a variable number of bytes |
US6938197B2 (en) * | 2002-08-01 | 2005-08-30 | Lattice Semiconductor Corporation | CRC calculation system and method for a packet arriving on an n-byte wide bus |
EP1609264B1 (en) * | 2003-03-18 | 2007-05-02 | Nokia Corporation | Method, system and network entity for data transmission and reception with header protection |
US7272774B2 (en) * | 2004-04-16 | 2007-09-18 | Kingston Technology Corp. | Extender card for testing error-correction-code (ECC) storage area on memory modules |
US7260767B2 (en) * | 2004-08-23 | 2007-08-21 | Transwitch Corporation | Methods and apparatus for error correction of transparent GFP (Generic Framing Procedure) superblocks |
JP4802515B2 (ja) * | 2005-03-01 | 2011-10-26 | 株式会社日立製作所 | 半導体装置 |
KR100681429B1 (ko) * | 2005-10-24 | 2007-02-15 | 삼성전자주식회사 | 반도체 메모리 장치 및 그것의 비트 에러 검출 방법 |
US7577899B2 (en) * | 2006-02-13 | 2009-08-18 | Harris Corporation | Cyclic redundancy check (CRC) based error correction method and device |
US7810013B2 (en) * | 2006-06-30 | 2010-10-05 | Intel Corporation | Memory device that reflects back error detection signals |
US7774684B2 (en) * | 2006-06-30 | 2010-08-10 | Intel Corporation | Reliability, availability, and serviceability in a memory device |
US8245087B2 (en) * | 2007-03-26 | 2012-08-14 | Cray Inc. | Multi-bit memory error management |
US8117526B2 (en) * | 2007-10-29 | 2012-02-14 | Qimonda Ag | Apparatus and method for generating a transmit signal and apparatus and method for extracting an original message from a received signal |
US8196009B2 (en) * | 2008-06-18 | 2012-06-05 | Intel Corporation | Systems, methods, and apparatuses to transfer data and data mask bits in a common frame with a shared error bit code |
-
2009
- 2009-12-22 US US12/644,779 patent/US8612828B2/en not_active Expired - Fee Related
-
2010
- 2010-11-18 DE DE102010051813.1A patent/DE102010051813B4/de active Active
- 2010-11-22 TW TW099140166A patent/TWI524355B/zh not_active IP Right Cessation
- 2010-11-30 GB GB1020296.8A patent/GB2476537B/en active Active
- 2010-12-21 CN CN201010620099.7A patent/CN102117662B/zh not_active Expired - Fee Related
Cited By (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI706415B (zh) * | 2017-02-23 | 2020-10-01 | 張錦本 | 應用128位元之雙碼錯誤檢測裝置及方法 |
TWI671750B (zh) * | 2018-11-28 | 2019-09-11 | 華邦電子股份有限公司 | 記憶體的控制方法及非暫態電腦可讀媒體 |
Also Published As
Publication number | Publication date |
---|---|
GB201020296D0 (en) | 2011-01-12 |
GB2476537B (en) | 2012-07-04 |
DE102010051813B4 (de) | 2019-10-10 |
DE102010051813A1 (de) | 2011-06-30 |
CN102117662A (zh) | 2011-07-06 |
TW201137890A (en) | 2011-11-01 |
US8612828B2 (en) | 2013-12-17 |
GB2476537A (en) | 2011-06-29 |
US20110154152A1 (en) | 2011-06-23 |
CN102117662B (zh) | 2015-04-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI524355B (zh) | 用於8位元記憶體裝置之錯誤校正機制 | |
US11734106B2 (en) | Memory repair method and apparatus based on error code tracking | |
US11349496B2 (en) | Memory controller and method of data bus inversion using an error detection correction code | |
US8041989B2 (en) | System and method for providing a high fault tolerant memory system | |
US7587658B1 (en) | ECC encoding for uncorrectable errors | |
US9208027B2 (en) | Address error detection | |
US11030040B2 (en) | Memory device detecting an error in write data during a write operation, memory system including the same, and operating method of memory system | |
US20230049851A1 (en) | Ecc memory chip encoder and decoder | |
US6519736B1 (en) | Generating special uncorrectable error codes for failure isolation | |
US11265022B2 (en) | Memory system and operating method thereof | |
US6463563B1 (en) | Single symbol correction double symbol detection code employing a modular H-matrix | |
US10901842B2 (en) | Memory system and operating method thereof | |
US10810080B2 (en) | Memory device selectively correcting an error in data during a read operation, memory system including the same, and operating method of memory system | |
US11934263B2 (en) | Parity protected memory blocks merged with error correction code (ECC) protected blocks in a codeword for increased memory utilization | |
US11537467B2 (en) | Memory, memory system, and operation method of memory | |
US20230315571A1 (en) | Integrated error correction code (ecc) and parity protection in memory control circuits for increased memory utilization | |
WO2023202592A1 (zh) | 数据写入方法以及处理系统 | |
Jung et al. | Synergistic Integration: An Optimal Combination of On-Die and Rank-Level ECC for Enhanced Reliability |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |