TWI501251B - 區域錯誤檢測及全域錯誤校正技術 - Google Patents

區域錯誤檢測及全域錯誤校正技術 Download PDF

Info

Publication number
TWI501251B
TWI501251B TW102117744A TW102117744A TWI501251B TW I501251 B TWI501251 B TW I501251B TW 102117744 A TW102117744 A TW 102117744A TW 102117744 A TW102117744 A TW 102117744A TW I501251 B TWI501251 B TW I501251B
Authority
TW
Taiwan
Prior art keywords
gec
error
error correction
cache line
data
Prior art date
Application number
TW102117744A
Other languages
English (en)
Other versions
TW201407629A (zh
Inventor
Aniruddha Nagendran Udipi
Naveen Muralimanohar
Norman Paul Jouppi
Alan Lynn Davis
Rajeev Balasubramonian
Original Assignee
Hewlett Packard Development Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Hewlett Packard Development Co filed Critical Hewlett Packard Development Co
Publication of TW201407629A publication Critical patent/TW201407629A/zh
Application granted granted Critical
Publication of TWI501251B publication Critical patent/TWI501251B/zh

Links

Classifications

    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/38Response verification devices
    • G11C29/42Response verification devices using error correcting codes [ECC] or parity check
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1012Adding 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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1044Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices with specific ECC/EDC distribution
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1008Adding 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/1064Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's in individual solid state devices in cache or content addressable memories
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C29/08Functional testing, e.g. testing during refresh, power-on self testing [POST] or distributed testing
    • G11C29/12Built-in arrangements for testing, e.g. built-in self testing [BIST] or interconnection details
    • G11C29/44Indication or identification of errors, e.g. for repair
    • G11C29/4401Indication or identification of errors, e.g. for repair for self repair
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • G06F11/08Error detection or correction by redundancy in data representation, e.g. by using checking codes
    • G06F11/10Adding special bits or symbols to the coded information, e.g. parity check, casting out 9's or 11's
    • G06F11/1076Parity data used in redundant arrays of independent storages, e.g. in RAID systems
    • G06F11/108Parity data distribution in semiconductor storages, e.g. in SSD
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0409Online test
    • GPHYSICS
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/04Detection or location of defective memory elements, e.g. cell constructio details, timing of test signals
    • G11C2029/0411Online error correction

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Quality & Reliability (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Memory System Of A Hierarchy Structure (AREA)
  • Detection And Correction Of Errors (AREA)

Description

區域錯誤檢測及全域錯誤校正技術
本發明係有關於區域錯誤檢測及全域錯誤校正技術。
發明背景
記憶體系統可靠度是關於現代伺服器以及刀鋒伺服器之一嚴肅以及成長議題。現有的記憶體保護機構需要一個或多個下面事項:每次記憶體存取上大量晶片的致動、增加存取粒度、以及儲存消耗之增加。這些導致增加動態隨機存取記憶體(DRAM)存取時間、降低系統性能、以及實質上較高能量之消耗。當前商業上晶片刪除位準可靠度機構可以是依據習見的錯誤校正碼(ECC),例如,率得-所羅門(Reed-Solomon(RS))-碼、符號為基礎數碼等等。但是,當前ECC數碼限定記憶體系統設計於x4個DRAM之使用。進一步地,對於一所給予的容量,具有窄晶片(亦即,I/O DRAM x4晶片)之雙重線上記憶體模組(DIMM)比那些具有較寬的I/O晶片(亦即,x8、x16、或x32晶片)者消耗更多能量。
不論它們提供的優點,有效晶片刪除機構的非可 利用性是缺少採用寬的輸入/輸出(I/O)DRAM之一理由。其次,當前ECC數碼在大資料字組上被計算以增加編碼效能。這ECC編碼處理導致大的存取粒度、致動大量晶片或甚至對於每個記憶體操作之排組、以及增加能量消耗。區域、密度、以及成本限制可能導致過度擷取在晶片排組內之一些範圍,但是為了提供誤差容限而加重之另外無效率負擔應被避免。該處理可能減低庫位準以及排組位準對應性,其縮減供應資料至高帶寬I/O(例如,光子通道)之DRAM能力。最後,習見的ECC數碼採用對潛伏期以及電路區域兩者而論是無效率之複雜的蓋洛瓦域(Galois field)演算法。
依據本發明之一實施例,係特地提出一種方法,其包括下列步驟:依據一錯誤檢測碼,計算關聯一記憶體之一排組的資料之每個快取線片段的區域錯誤檢測(LED)資訊;依據一錯誤校正碼,產生對於該快取線片段之一全域錯誤校正(GEC);依據該區域錯誤檢測(LED)資訊,回應於一記憶體讀取操作而檢查資料保真度,以辨識在該排組之該快取線片段中之一錯誤之存在以及該錯誤之位置;以及回應於辨識該錯誤,依據該全域錯誤校正(GEC)而校正具有該錯誤之該快取線片段。
100‧‧‧系統
102‧‧‧記憶體控制器
104‧‧‧錯誤
112‧‧‧記憶體之排組
119‧‧‧快取線片段
120‧‧‧區域錯誤檢測
130‧‧‧全域錯誤校正
140‧‧‧記憶體讀取操作
202‧‧‧記憶體控制器
210‧‧‧記憶體模組
211‧‧‧資料
212‧‧‧排組
214‧‧‧記憶庫
216‧‧‧DRAM晶片
219‧‧‧片段
220‧‧‧區域錯誤檢測(LED)
230‧‧‧全域錯誤校正(GEC)
311‧‧‧資料
312‧‧‧記憶體模組排組
316‧‧‧DRAM晶片
320‧‧‧區域錯誤檢測(LED)
330‧‧‧全域錯誤校正(GEC)
413‧‧‧快取線
430‧‧‧全域錯誤校正(GEC)
432‧‧‧同位元
434‧‧‧分層同位元
436‧‧‧剩餘位元
500‧‧‧檢查資料保真度流程圖
510-540‧‧‧檢查資料保真度流程步驟
600‧‧‧錯誤檢測及/或校正之流程圖
610-650‧‧‧錯誤檢測及/或校正流程步驟
圖1是依照一範例之包含記憶體控制器的系統之方塊圖。
圖2是依照一範例之記憶體模組的方塊圖。
圖3是依照一範例之記憶體模組排組的方塊圖。
圖4是依照一範例之包含一剩餘位元的快取線之方塊圖。
圖5是依照一範例之依據檢查資料保真度的流程圖。
圖6是依照一範例之依據進行錯誤檢測及/或校正的流程圖。
較佳實施例之詳細說明
此處說明之範例可使用分離出錯誤檢測以及錯誤校正功能的一雙分層保護機構。數碼,例如,那些依據校驗和以及同位者,可有效地被使用以提供具有稍微或無消耗之強的誤差容度。儲存部,例如,系統韌體,可被使用以引導一記憶體控制器將一些校正數碼儲存在DRAM資料記憶體中。該記憶體控制器可被修改以處理資料映製、錯誤檢測以及校正。錯誤檢測/校正碼之新穎應用,以及映製至記憶體之新穎實際資料,可允許一商用記憶體模組(例如,ECC DIMM x4、x8、x16、x32等等),提供晶片刪除功能而不增加擷取寬度及/或儲存消耗。進一步地,區域性以及DRAM列緩衝器命中率可藉由置放資料以及ECC數碼於相同列緩衝器中而進一步被改進。因此,一有效的誤差容度機構被提供,使能夠有強的可靠度保證,致動儘可能地少數晶片以節省能量與改進性能、減低電路複雜性、以及藉由寬的I/O DRAM晶片,例如,x8、x16、或x32工作。
第1圖是依照一範例之包含記憶體控制器102的系統100之方塊圖。系統100,回應於一記憶體讀取操作140,應用區域錯誤檢測120及/或全域錯誤校正130以檢測及/或校正記憶體之排組112的快取線片段119之錯誤104。
於一範例中,系統100是計算資料之每個快取線片段119的區域錯誤檢測(LED)120資訊。快取線片段119是關聯記憶體之排組112。區域錯誤檢測(LED)120是將依據一錯誤檢測碼被計算。系統100是依據一全域同位元,以產生供用於快取線片段之一全域錯誤校正(GEC)。依據LED 120資訊,系統100是回應於記憶體讀取操作140,以檢查資料保真度,而辨識在排組112的快取線片段119中之錯誤104的存在以及錯誤104的位置。回應於辨識錯誤104,系統100依據GEC以校正具有錯誤104之快取線片段119。
於一不同的範例中,依據在快取線片段119上被計算之一校驗和,系統100回應於一記憶體讀取操作140,以進行區域錯誤檢測(LED)120,而檢測在排組112中之N個資料晶片中之一晶片粒度之錯誤104的位置。回應於檢測該錯誤104,系統100在排組112中之N個資料晶片上的快取線片段119上進行全域錯誤校正(GEC)130。依據無錯誤片段以及GEC資訊,系統100使用一全域同位元而進行GEC 130,以產生GEC資訊以及重建具有錯誤104之資料的快取線片段119。
因此,系統100可使用簡單校驗和以及同位元操作而建立降至一片段119之粒度位準的一二層誤差容度機 構。第一保護層是區域錯誤檢測(LED)120,其是確認資料保真度之一檢查(例如,在一讀取操作140之後的一立即檢查)。LED 120可藉由分配LED資訊120越過一記憶體模組中之複數個晶片,而提供晶片位準錯誤檢測(對於晶片刪除,亦即,承受整個DRAM晶片之失效的能力)。因此,LED資訊120可以是關聯於,整體看來,不僅僅是關聯各個快取線,同時也關聯每個快取線“片段”,亦即,呈現在排組中之一單一晶片中的快取線之分量片段。
一相對短的校驗和(1之補數、夫萊哲(Fletcher)之和或其他者)可被使用作為錯誤檢測碼,並且可在該片段上被計算且被附加至資料。錯誤檢測碼可以是依據其他型式的錯誤檢測及/或錯誤保護碼,例如,環式冗餘檢查(CRC)、帕斯、雷-喬德赫里與霍昆格姆(Bose,Ray-Chaudhuri以及Hocquenghem(BCH))數碼等等。這錯誤檢測碼可被儲存在相同記憶體列中、或在包含用於許多快取線之此LED資訊的一不同列中。該層-1保護(LED 120)可能不僅檢測錯誤之存在,而且也可能準確地確定錯誤之位置,亦即,定位關聯錯誤104之晶片或其他位置資訊。
如果LED 120檢測一錯誤,第二保護層可被施加,全域錯誤校正(GEC)130。GEC 130可以是依據一同位元,例如,越過排組112中之N個資料晶片上的資料的快取線片段119之一XOR-為基礎的全域同位元。GEC 130也可以是依據其他錯誤檢測及/或錯誤保護數碼,例如,CRC、BCH、以及其他者。GEC結果可被儲存在相同列中作為資 料片段,或儲存在包含供用於許多資料列之GEC資訊的一分別列中。資料可依據讀出無誤片段與GEC片段、以及位置資訊(例如,依據LED 120之失效晶片的辨識)被重建。
LED 120以及GEC 130可在單一快取線中之資料字組上被計算。因此,當一雜亂快取線將自處理器被回寫至記憶體時,不需要進行“寫入之前的讀取”,並且兩者數碼可直接地被計算,因而避免衝擊至寫入性能。更進一步地,當考慮到可對於錯誤校正碼(ECC)目的而提供限定之多餘儲存的商用記憶體系統時,LED 120及/或GEC 130可被儲存在標準資料記憶體中。另外的讀取/寫入操作可被使用以與處理器-要求的讀取/寫入一起存取這資訊。儲存LED資訊在各列內被提供的儲存空間中可使其能夠與資料線串聯地被讀取以及被寫入。GEC資訊可被儲存在一分別的快取線之資料記憶體中,因為其可在一錯誤資料讀取之非常罕見的情況中被存取。適當的資料映製可安置這於相同列緩衝器中作為增加區域性以及命中率之資料。
記憶體控制器102可提供資料映製、LED 120/GEC 130計算以及確認,如果需要的話,可進行另外的讀取等等。因此,系統100可明顯地提供完全功能性,而不需要通知及/或修改一操作系統(OS)或其他計算系統構件。撥出一些資料記憶體以儲存LED 120/GEC 130,可自OS以及應用觀點而經由關聯系統韌體之較少的修改(例如,減低可用記憶體儲存之一報告數量)被處理,以明顯地容納被儲存的LED 120/GEC 130。
圖2是依照一範例之記憶體模組210的方塊圖。記憶體模組210可介面於記憶體控制器202。記憶體模組210可以是聯合電子裝置工程協會(JEDEC)-型式雙資料率(DDRx,其中x=1,2,3,…)記憶體模組,例如,被組態作為雙重線上記憶體模組(DIMM)之同步動態隨機存取記憶體(SDRAM)。各個DIMM可包含至少一個排組212,並且排組212可包含複數個DRAM晶片216。二個排組212被展示,各個排組212包含9個晶片216。排組212可被分割成為多數個記憶庫214,各記憶庫被分佈越過V212中之晶片216。雖然一個記憶庫214被展示跨越排組中之晶片,一排組可被分割成為,例如,4-16個記憶庫。晶片216中之各個排組212/記憶庫214的部份是一片段219。當記憶體控制器202發出對於一快取線之要求時,排組212中之晶片216被致動並且各片段219提供所要求快取線的一部份。因此,一快取線被分解越過多數個晶片216。
於具有64位元之資料匯流排寬度、以及64位元組之快取線的範例中,快取線轉移可依據8個資料轉移之一叢訊被實現。一晶片可以是一xN部件,例如,x4、x8、x16、x32等等。記憶庫214之各片段可被隔成為N個陣列218(四個被展示)。各陣列218可對於晶片216在資料I/O引線上提供一單一位元至N個位元轉移。因此,對於一所給予的DIMM容量,採用較寬的I/O DRAM部件,例如,x8、x16、或x32可減少達成所給予的資料匯流排寬度所需的DRAM晶片216數量,在DIMM上產生供用於更多晶片216之額外空間, 因而增加可用的獨立記憶庫214之數量。
各晶片216可被使用以儲存資料211、來自LED 220之資訊、以及來自GEC 230之資訊。因此,各晶片216可包含資料211之一片段219、LED 220、以及GEC 230資訊。這是對照於習見的9個晶片ECC記憶體模組如何被使用,其中8個晶片被使用於資料上並且第9個晶片被使用於ECC資訊上。因此,此處說明之範例的使用提供健全之晶片刪除保護,因為各晶片可包含用於辨識以及校正錯誤目的之資料211、LED 220以及GEC 230。圖2之範例只藉由9個x8晶片之單一排組而圖解說明功能、改善存取粒度、能量消耗以及性能。進一步地,該範例可支援非常高比率之晶片刪除保護,例如,處理9個晶片中之1個無效晶片的能力,顯著地提高可靠度保證(相對於習見之支援,例如,36個晶片中之1個無效晶片)。
此處說明之範例可允許每記憶體存取之被致動晶片數量的數倍減少。這藉由消除至少至那範圍的超擷取而有助於減低動態能量消耗,並且藉由允許未使用的晶片被置於低功率模式而有助於減低靜態能量消耗。除了能量優點之外,減低存取粒度增加排組位準以及記憶庫-位準對應性。這引動實質的性能增益。此處說明之範例不受限制於DRAM部件、DIMM安排、DDR協定、叢訊長度等等,並且可以是適用於x8、x16或x32 DRAM,而允許伺服器採用那些記憶體組態的優點。範例可藉由非侵入至系統設計之修改而被達成,因為一範例記憶體控制器,以及至一較小 範圍的一記憶體韌體,可被修改以提供支援範例。範例可採用附加校驗和以及同位元計算以提供強的誤差容度而不需要在16位元或32位元符號上之蓋洛瓦域(Galois field)估算法或其他增加的複雜性、潛伏期、以及能量消耗。
因此,此處之範例提供助益而不需要一特殊設計DRAM晶片微結構,例如,具有被供應以儲存ECC資訊的一特殊區域,並且利用一區域化資料映製結構之一DRAM,其如果晶片刪除位準可靠度被引動,則將強加可觀的不利結果在寫入性能上。進一步地,不需要使用具有關於DIMM以及排組機構之限制的習見符號-為基礎之ECC數碼。範例親和地被實作,而不需要修改計算系統之許多構件,因為範例對於一計算系統之操作系統、記憶體管理單元、快取等等是清楚的。
圖3是依照一範例之記憶體模組排組312的方塊圖。排組312可包含N個晶片,例如,9個x8 DRAM晶片316(晶片0…晶片8),以及8之叢訊長度。於不同範例中,其他數目/N個晶片之組合可被使用,在xN的各種位準以及叢訊長度上。資料311、LED 320以及GEC 330可被分佈在排組312之整個晶片316上。
LED 320可進行每個讀取操作後的一立即檢查以確認資料保真度。另外地,LED 320可辨識,在排組312內之一晶片-粒度的失效位置。為了確保此晶片位準檢測(可供使用於晶片刪除),整體看來,在每個快取線“片段”,呈現在排組312中之單一晶片316中之線的分量片段,LED 320 可被維持在關聯於比一整個快取線更特定之晶片位準(如於符號為基礎的ECC數碼中)。快取線A被分割成為片段A0 至A8 ,而具有相關的區域錯誤檢測碼LA0 至LA8
一快取線可以是關聯64位元組資料,或512資料位元,關聯一資料操作,例如,一記憶體要求。因為總計需512資料位元(一快取線),各晶片是向著快取線提供57位元。具有8之一叢訊長度的一個x8晶片對每個存取供應64位元,其被詮釋作為57資料位元(例如,圖3中之A0 ),以及關聯那些57位元(LA0 )的7位元之LED資訊320。一實際資料映製策略可被使用以確保它們保護之LED位元320以及資料片段311被置於相同晶片316上。記憶體之一位元呈現以維持對於每576位元未使用,因為57資料位元相乘於9個晶片是513位元,並且僅512位元是儲存快取線所需的。但是,這“剩餘的位元”被使用作為第二層保護之部份(例如,GEC),其細節將參考圖4被說明。
由於LED數碼320,沒有性能處罰在讀取或寫入上。每個快取線存取也讀取/寫入其之對應的LED資訊。因為LED 320是“自我滿足”,亦即,其是自僅屬於一快取線之位元所構成,沒有在寫入之前的讀取是所需的-被使用以建立數碼的所有位元在寫入之前已先前地在記憶體控制器中。對於LED 320之錯誤檢測碼的選擇可取決於一預期之失效模式。例如,一簡單的1之補數相加校驗和可被使用於預期失效模式的範圍中,其包含多數之共同/常用的記憶體失效模式。
GEC 330,也被稱為一第2層全域錯誤校正碼,是一旦LED 320(第1層數碼)檢測一錯誤以及指示該錯誤之位置時,則幫助遺失資料的恢復。第2層GEC 330可包括三個分層。GEC 330數碼可以是57位元項目,並且可被提供作為9個快取線片段的一行方向之XOR同位元,其各者有57位元欄來自資料區域。對於快取線A,例如,其之GEC 330可以是一同位元,例如,一同位元PA,其是資料片段A0 ,A1 ,…,A8 之一XOR結果。由於錯誤晶片316可能利用LED 320被打旗號表示,自GEC 330數碼之資料重建可以是一非資源密集操作(例如,無錯誤片段以及GEC 330數碼之一XOR)。因為不需要一另外的專用ECC晶片(其通常被使用作為一記憶體模組排組312上之一ECC晶片而取代地被使用以儲存資料+LED 320),對照於使用一專用ECC晶片,GEC數碼可被儲存在資料記憶體它本身中。可用的記憶體可經由韌體修改或其他技術,以自操作系統觀點呈現比其實際上較小者(例如,用以儲存LED 320及/或GEC 330的12.5%消耗)。記憶體控制器也可察覺到改變以容納LED 320及/或GEC 330,並且因此可映製資料(例如,映製以使得LED 320及/或GEC 330對於OS、應用等等是清楚的)。
為了對於晶片刪除提供9個中之一失效晶片316的強誤差容度,以及使在各存取上接觸到的晶片316之數量最小化,GEC 330數碼可被安置於相同排組中作為其之對應的快取線。為了這目的,排組312中之9個晶片316各者中之一特別被保留的區域(圖3中淺色陰影的GEC 330)可被擱 置。該特別被保留的區域可以是每個DRAM頁(列)中之快取線的一子集,雖然為清楚起見其於圖3中被展示如一不同的列集合。當配合於讀取或寫入至實際資料快取線時,這共同位置可確保任何讀取或寫入至GEC 330資訊將被保證以產生一列緩衝器命中,因此減低對性能之任何可能的衝擊。
圖4是依照一範例之包含剩餘位元436的快取線413之方塊圖。GEC 430資訊可越過N個晶片(例如,晶片0...8)被安排在一保留區域中,如快取線A之範例,也被圖解說明於圖3中。快取線413也可包含同位元432、分層同位元434、以及剩餘位元436。
相似於如於圖3展示之資料位元,57位元GEC 430可被分佈在所有的N(亦即,9個)晶片419中。PA欄(PA0-6 )之首先的7個位元可被儲存在第一晶片416(晶片0)中,接著的7個位元(PA7-13 )可被儲存在第二晶片(晶片1)中,等等。位元PA49-55 可被儲存在第八晶片(晶片7)上。最後位元,PA56 可被儲存在第九晶片(晶片8)上,於剩餘位元436中。剩餘位元436可自第N個晶片(晶片8)之資料+LED區域被借用,如在上面所提出關於僅使用可用的513位元(57位元x9個晶片)之512位元以儲存快取線。
晶片416之失效也導致被儲存在晶片中的GEC 430資訊之對應的位元之遺失。GEC 430數碼PA它本身,因此,藉由一另外的同位元432(同時也被稱為第三分層PPA )被保護。圖解說明之範例中的PPA 是一個7位元欄,並且是N-1的其他7位元欄(PA0-6 ,PA7-13 ,…,PA49-55 )之XOR。同 位元432(PPA 欄)被展示而儲存在第N個(第九個)晶片(晶片8)上。如果一整個晶片416失效,則GEC 430使用與來自其他晶片之未破壞的GEC片段組合之同位元432首先被恢復。未被破壞的晶片416可依據LED被決定,其可包含一錯誤之位置的指示,亦即,定位該失效的晶片。全部的GEC 430接著被使用以重建原始資料。
除了一完全失效的晶片錯誤之外,於一第二晶片中可有一錯誤。如果不校正的話,此處說明之範例致使在各種缺陷模式下之一失效的檢測。如果第二錯誤也是一完全晶片失效,其將藉由LED與所讀取的啟始資料一起被檢測,並且被標記作為一雙重晶片失效。但是,如果第二錯誤剛好發生在GEC 430的相關列中,則其可在GEC時期間被檢測。
於一失效情節之範例中,假設第二晶片已完全地失效-A1 ,並且PA7-13 將被遺失。此外,如果在第一晶片之GEC區域中有一錯誤,則有可能一個或多個位元PA0-6 被破壞。來自PPA 432之遺失的位元PA7-13 以及PA0-6 、PA14-20 、PA21-27 、…、PA56 之重建可能本身是非正確的。為處理這問題,分層的同位元434被使用,例如,9個晶片416之其餘的9個位元(於圖4中,被標誌為供用於分層-4之T4)被使用以越過GEC位元PA0 至PA55 、以及PPA 而建立一錯誤檢測碼。注意到,在這階段既無精確的錯誤位置資訊也無校正能力是所需的,因為可靠度目標是僅檢測第二錯誤,並且不必定得校正它。因此,一數碼可使用來自不同晶片的各種位元 排列被建立以形成T4位元434之各者。這可包含來自相同晶片416之多數個位元、以及越過晶片416來自不同行的位元,以使檢測之可能性最大化。
於另一範例中,考慮到一單一快取線A。記得晶片0-7(不失一般性,例如,N-1個晶片)可包含資料區域中之57個資料位元加上7個LED位元,以及GEC區域中之GEC 430同位之7個位元加上T4資訊的1位元(分層的同位元434)。晶片-8(第N個晶片)可包含資料區域中之56個資料位元加上7個LED位元加上一個剩餘位元436,以及GEC區域中之8個同位位元(包含自資料區域借出之剩餘位元)加上T4資訊的一位元。
如果首先的8個晶片之一者,例如,第二晶片,失效,則除了GEC同位元資訊PA7-13 之外,57個資料位元(A1)被遺失。遺失的資訊可藉由讀取A0 -A8 被恢復,並且關聯A1(LA1 )之LED,指示一晶片錯誤。讀取GEC片段PA0-6 、PA14-20 、PA21-27 、...、PA49-55 、PA56 以及PPA 以恢復遺失的GEC位元PA7-13 ,因而重建GEC同位元PA。藉由組合數值A0 以及A2 -A7 ,資料數值A1 可被重建,因此恢復整個原始快取線。但是,如果第九個晶片是失效,則除了PPA 、以及剩餘的位元PA56 之外,僅56個資料位元將被遺失(A8 )。遺失的56個位元可自被儲存在首先的8個晶片(PA0-55 )中之同位元的56行被恢復,因此恢復整個原始的快取線。剩餘位元PA56 之遺失是不重要的。這些情況中,GEC同位元它們本身之保真度藉由分層同位元434 T4被保證。
讀取操作不需要存取GEC 430資訊,除非一錯誤被檢測,其是一稀有事件。GEC 430因此在讀取上不具有顯著的衝擊。至於寫入操作,當資料被修改時,GEC 430可被更新(其包含PX 、PPX 、以及T4)。於一基線實作例中,各快取線寫入可被轉換成為二個寫入---一個寫入至資料位置(對於一完全的576個資料位元+LED+剩餘位元)以及另一者則寫入至其之對應的GEC位置(72位元)。雖然每次寫入時,GEC+T4數碼之72位元可被更新,其他限制(例如,DDR3協定)可以是關聯於完成每次存取8個的叢訊(例如,整個72位元組“快取線”資料尺度)。因此,更新可被組合,例如,多至8個不同的GEC更新成為一單一寫入命令,以減低一些性能衝擊。這是低經常消耗,因為寫入已先前被緩衝以及間歇地自記憶體控制器被湧出,並且另外的邏輯可容易地被實作於這階段以儘可能地合併許多GEC寫入。性能衝擊進一步被最小化,因為一旦該資料線被寫入,資料映製確保GEC寫入是一列緩衝器命中。另外地,注意到,不需要資料快取線它們本身在寫入之前的讀取,因為促成GEC數碼之位元是來自一單一快取線,其已先前可用於控制器上。這進一步地最小化性能衝擊。如果完全合併不被實作(依據被寫入之位址),則資料遮罩可被採用以將適當的位元寫進入記憶體中。注意到,完全的8個之叢訊仍然可被進行---當實際上寫入至DRAM之同時一些資料部份剛好被遮住。
由於所有的這些考慮,依據應用之存取特性,對 於一些分量δ<1,每個寫入被轉換成為1+δ寫入。注意到,在一非合併的基線實作例中δ=1,並且在一意義含混設計中δ=0.125,因為8個GEC字組充填在一個單一“快取線”中,並且有可能被合併成為一個單一寫入。
於9個晶片(N=9)之實作範例中,對於具有9個x8晶片的排組中之各個64位元組(512位元)快取線,下面的位元可被使用:LED資訊之63位元,在每晶片之7位元;GEC同位元之57位元,延伸越過9個晶片;第三位準同位元之7位元(PPX );以及T4保護之9位元,每晶片之1位元。這總計達到出自快取512位元線之總共的136位元,26.5%的儲存消耗。出自這26.5%,12.5%可藉由被添加至標準ECC DIMM上之第9個晶片被提供(例如,使得該第9個晶片可供一般之使用,取代保留它以供僅標準ECC操作之用),以及該其他的14%被儲存在GEC區域之資料記憶體中。
此處說明之範例可被應用至較寬的I/O DRAM部份,其是關聯較大的功率效能以及較大的排組位準對應性。對於x16 DRAM,一特定範例將被提供,並且相似技術可被使用於延伸概念至x32 DRAM以及更遠。
考慮到9個x16 DRAM之一排組。藉由8個之叢訊的一個x16 DRAM被供應之128位元可被詮釋為114資料位元以及14個校驗和LED位元,其具有相似於使用x8 DRAM之儲存消耗。GEC操作可維持不被改變。雖然存取粒度以及超擷取可能是增加,但儲存消耗可維持固定地在大約25%(LED+GEC)。
如果存取粒度是固定在一快取線(亦即,一個64位元匯流排),具有x16晶片之最小排組尺度是5個晶片(4個資料+1個ECC)。各晶片對每8個之叢訊提供128位元,其被詮釋為103資料位元(因為103 * 4晶片=512位元快取線)。這讓每個晶片留下25位元以儲存LED數碼,其提供非常強的錯誤保護,但是可能浪費儲存區域(經常消耗將是24%)。GEC經常消耗同樣也可增加,因為全域同位元是在四個103位元資料片段、25%之儲存消耗、具有總消耗大約50%之上被計算的103位元實體。
如果儲存消耗是按優先順序被處理,藉由在存取粒度中之增加的折衷,其可能是大約固定在12.5%附近。藉由x16晶片以及一個5-晶片排組,例如,9個讀取可能連續地被發出,而總共讀取出每週期80位元* 8週期之叢訊* 9個存取=5760位元。這導致10個快取線之非常大的存取粒度(5120位元)加上它們的LED數碼,而具有12.5%的儲存消耗。對於37.5%之全部ECC儲存消耗,GEC消耗大約地維持在25%(於4個晶片中之1者)。
如果既無存取粒度也無儲存消耗是將被妥協,但是可自由地實作一客制DIMM,則在一單一DIMM排組內之異型DRAM的使用可被使用。於此情況中,最小存取粒度可被保持而仍然維持在12.5%之儲存消耗。藉由x16部份,例如,一最小尺度排組將是四個x16 DRAM加上一個x8 DRAM(應注意,DRAM仍然是商用,不僅僅是DIMM),假設72位元之一DIMM寬度。藉由8個之叢訊長度,各個x16 DRAM供應128位元並且該x8 DRAM供應64位元。這些將分別地被詮釋如(114資料+14個LED)以及(56資料+8個LED)。對於GEC消耗或操作將是沒有改變。
因此,有許多選擇被變化,包含儲存消耗、存取粒度之重要性(一般是工作量中之存取區域性的功能)、以及建立異型DIMM之意願-因寬的I/O部份,例如,由於它們被減低的功率消耗,x16或x32成為主訊流。此處說明之範例是有充分彈性而在具有變化的組合以及這些選擇之變化的設計中將是有其效用的。
比較至傳統晶片刪除機構,經由動態以及靜態兩功率之降低,可觀的功率節省可被實現。其是可能致動服務一要求所需的絕對最少之晶片數目,例如,剛好9個x8晶片,例如,於標準8個叢訊存取中僅讀取/寫入一個64位元組快取線。這是相對於習見的晶片刪除辦法,其可導致被迫的預先擷取以及增加動態功率消耗(例如,每個讀取/寫入致動另外的晶片,每個標準8個叢訊存取則存取多數個快取線)。此處提供之範例也可引動作用功率之減少,因為每個晶片之列緩衝器尺度可以是固定,但是少數晶片是被致動。致動功率也可自x4晶片被減低至x8晶片,因為少數晶片組成一排組。各致動之足跡也可被減低,而允許未使用的排組/記憶庫轉變成為低功率模式,例如,弱的低功率模式可快速地被進入以及被退出。
除了大能量的優點之外,減低存取粒度也在性能上具有正面的效應。對於系統中所給予的晶片總數目,其 有增加排組-位準以及記憶庫-位準對應性。這可減低記憶庫衝突以及全面平均記憶體存取潛伏期。由於與標準寫入一起所需的至GEC線額外寫入,這增益之一分量可被失去。不論這經常消耗,即使不合併,範例仍然可領先。
圖5是依照一範例之依據檢查資料保真度的流程圖500。於方塊510中,依據一錯誤檢測碼,關聯一記憶體之排組的每個資料之快取線片段的區域錯誤檢測(LED)資訊被計算。於方塊520中,依據一全域同位元,一全域錯誤校正(GEC)對於快取線片段被產生。於方塊530中,依據LED資訊,回應於一記憶體讀取操作,資料保真度被檢查,以辨識在排組之快取線片段中的一錯誤之存在以及錯誤之位置。於方塊540中,回應於辨識該錯誤,具有該錯誤之快取線片段依據該GEC被校正。
圖6是依照一範例之依據進行錯誤檢測及/或校正的流程圖600。於方塊610中,依據在一快取線片段上被計算之一校驗和,回應於一記憶體讀取操作,區域錯誤檢測(LED)被進行,以檢測在一排組中之N個資料晶片中的一晶片粒度之一錯誤的位置。於方塊620中,回應於檢測該錯誤,一全域錯誤校正(GEC)在排組中之N個資料晶片上的快取線片段上被進行,GEC使用一全域同位元被進行以產生GEC資訊。於方塊630中,依據無錯誤片段以及GEC資訊,具有錯誤之資料片段被重建。於方塊640中,回應於一寫入操作,GEC資訊被更新。於方塊650中,一分層同位元被產生以保護GEC資訊,其中該分層同位元被儲存在第N個晶片 上並且是將被使用以依據來自複數個晶片之GEC資訊片段而恢復GEC資訊。
100‧‧‧系統
102‧‧‧記憶體控制器
104‧‧‧錯誤
112‧‧‧記憶體之排組
119‧‧‧快取線片段
120‧‧‧區域錯誤檢測
130‧‧‧全域錯誤校正
140‧‧‧記憶體讀取操作

Claims (15)

  1. 一種錯誤校正的方法,其包括下列步驟:依據一錯誤檢測碼,計算關聯一記憶體之一排組(rank)的資料之每個快取線片段的區域錯誤檢測(LED)資訊;依據一錯誤校正碼,產生對於該快取線片段之一全域錯誤校正(GEC);依據該區域錯誤檢測(LED)資訊,回應於一記憶體讀取操作而檢查資料保真度,以辨識在該排組之該快取線片段中之一錯誤之存在以及該錯誤之位置;以及回應於辨識該錯誤,依據該全域錯誤校正(GEC)而校正具有該錯誤之該快取線片段。
  2. 如申請專利範圍第1項之方法,進一步包括合併關聯於相鄰快取線而將一起被傳送之複數個全域錯誤校正(GEC)更新。
  3. 如申請專利範圍第1項之方法,其中該錯誤檢測碼是辨識在該排組的一快取線片段內之一錯誤的存在以及該錯誤的位置。
  4. 如申請專利範圍第1項之方法,進一步包括將對於該快取線片段被計算之該區域錯誤檢測(LED)資訊以及該全域錯誤校正(GEC)儲存在關聯該資料之該快取線片段。
  5. 如申請專利範圍第1項之方法,進一步包括將對於該快取線片段被計算之該區域錯誤檢測(LED)資訊以及該全 域錯誤校正(GEC)儲存在不同於關聯該資料之一記憶體列的一記憶體列中。
  6. 一種錯誤校正的方法,其包括下列步驟:依據在一快取線片段上計算之一錯誤檢測碼,回應於一記憶體讀取操作而進行一區域錯誤檢測(LED),以在一排組之N個資料晶片中以一晶片粒度檢測一錯誤的位置;回應於檢測該錯誤,在該排組中之該等N個資料晶片上的該快取線片段上,進行一全域錯誤校正(GEC),該全域錯誤校正(GEC)依據一錯誤校正碼以產生全域錯誤校正(GEC)資訊;以及依據無錯誤片段以及該全域錯誤校正(GEC)資訊,重建具有該錯誤之資料片段。
  7. 如申請專利範圍第6項之方法,其中相鄰快取線之複數個全域錯誤校正(GEC)更新被合併且一起被傳送。
  8. 如申請專利範圍第6項之方法,其中該錯誤校正碼是依據於N個快取線片段。
  9. 如申請專利範圍第6項之方法,進一步包括回應於一寫入操作而更新該全域錯誤校正(GEC)資訊。
  10. 如申請專利範圍第6項之方法,進一步包括在該等N個晶片各者中之一保留區域中儲存該全域錯誤校正(GEC)資訊在對應的快取線之一列緩衝器中。
  11. 如申請專利範圍第6項之方法,進一步包括依據一實際資料映製策略,儲存資料以及對應的區域錯誤檢測 (LED)資訊在該排組之各晶片上;以及回應於一快取線存取要求而提供該資料以及區域錯誤檢測(LED)資訊。
  12. 如申請專利範圍第6項之方法,進一步包括產生一分層的錯誤校正碼以保護該全域錯誤校正(GEC)資訊,其中該分層的錯誤校正碼被儲存在一第N個晶片上並且是將被使用來依據來自複數個晶片之全域錯誤校正(GEC)資訊片段而恢復該全域錯誤校正(GEC)資訊。
  13. 如申請專利範圍第12項之方法,進一步包括依據在一全域錯誤校正(GEC)相位期間檢測依據該分層錯誤校正碼之相關的全域錯誤校正(GEC)列中之一錯誤,而辨識一不可校正的雙晶片失效。
  14. 一種記憶體控制器,其進行下列動作:依據對於關聯於一記憶體之一排組的資料之一快取線片段的區域錯誤檢測(LED)資訊,回應於一讀取操作,而確認資料保真度;依照該區域錯誤檢測(LED)資訊,辨識在該排組之快取線片段中之一錯誤之存在以及位置;依據一錯誤校正碼,產生對於該快取線片段之一全域錯誤校正(GEC);以及回應於辨識該錯誤,依據該全域錯誤校正(GEC)而校正具有該錯誤之該快取線片段。
  15. 如申請專利範圍第14項之記憶體控制器,其中該區域錯誤檢測(LED)以及該全域錯誤校正(GEC)資訊依照關聯於該記憶體控制器之韌體資訊而被映製。
TW102117744A 2012-05-31 2013-05-20 區域錯誤檢測及全域錯誤校正技術 TWI501251B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/US2012/040108 WO2013180714A1 (en) 2012-05-31 2012-05-31 Local error detection and global error correction

Publications (2)

Publication Number Publication Date
TW201407629A TW201407629A (zh) 2014-02-16
TWI501251B true TWI501251B (zh) 2015-09-21

Family

ID=49673762

Family Applications (1)

Application Number Title Priority Date Filing Date
TW102117744A TWI501251B (zh) 2012-05-31 2013-05-20 區域錯誤檢測及全域錯誤校正技術

Country Status (6)

Country Link
US (1) US9600359B2 (zh)
EP (1) EP2856471A4 (zh)
KR (1) KR101684045B1 (zh)
CN (1) CN104246898B (zh)
TW (1) TWI501251B (zh)
WO (1) WO2013180714A1 (zh)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010234B2 (en) 2019-02-01 2021-05-18 Winbond Electronics Corp. Memory device and error detection method thereof
TWI827138B (zh) * 2021-08-27 2023-12-21 華邦電子股份有限公司 半導體儲存裝置

Families Citing this family (19)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN104903864B (zh) * 2012-11-02 2018-09-04 慧与发展有限责任合伙企业 选择性错误校正码和存储器访问粒度切换
JP6140093B2 (ja) 2014-03-18 2017-05-31 株式会社東芝 キャッシュメモリ、誤り訂正回路およびプロセッサシステム
US9600189B2 (en) 2014-06-11 2017-03-21 International Business Machines Corporation Bank-level fault management in a memory system
KR102131337B1 (ko) * 2014-10-20 2020-07-07 한국전자통신연구원 고장 제어 기능을 구비한 캐시 메모리
US10467092B2 (en) * 2016-03-30 2019-11-05 Qualcomm Incorporated Providing space-efficient storage for dynamic random access memory (DRAM) cache tags
EP3453022B1 (en) 2016-05-02 2022-07-06 INTEL Corporation Internal error checking and correction (ecc) with extra system bits
US10268541B2 (en) 2016-08-15 2019-04-23 Samsung Electronics Co., Ltd. DRAM assist error correction mechanism for DDR SDRAM interface
US10769540B2 (en) * 2017-04-27 2020-09-08 Hewlett Packard Enterprise Development Lp Rare event prediction
KR101934204B1 (ko) * 2017-07-28 2018-12-31 한양대학교 산학협력단 데이터 저장을 위한 소실 부호의 부호화 방법 및 장치
US10372535B2 (en) * 2017-08-29 2019-08-06 Winbond Electronics Corp. Encoding method and a memory storage apparatus using the same
US10606692B2 (en) 2017-12-20 2020-03-31 International Business Machines Corporation Error correction potency improvement via added burst beats in a dram access cycle
WO2020186524A1 (zh) * 2019-03-21 2020-09-24 华为技术有限公司 一种存储校验方法及装置
KR20200117129A (ko) * 2019-04-03 2020-10-14 삼성전자주식회사 반도체 메모리 장치 및 이를 포함하는 메모리 시스템
US12081237B2 (en) 2019-09-23 2024-09-03 SK Hynix Inc. Processing-in-memory (PIM) devices
JP7018089B2 (ja) * 2020-04-02 2022-02-09 ウィンボンド エレクトロニクス コーポレーション 半導体記憶装置および読出し方法
US11301325B2 (en) * 2020-05-29 2022-04-12 Intel Corporation Memory in integrity performance enhancement systems and methods
US11640336B2 (en) * 2020-07-24 2023-05-02 Seagate Technology Llc Fast cache with intelligent copyback
US20220207190A1 (en) * 2020-12-26 2022-06-30 Intel Corporation Low overhead memory integrity with error correction capabilities
JP2022137811A (ja) * 2021-03-09 2022-09-22 キオクシア株式会社 情報処理システム、ストレージデバイスおよびホスト

Citations (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20050172207A1 (en) * 2004-01-30 2005-08-04 Radke William H. Error detection and correction scheme for a memory device
US20090006900A1 (en) * 2007-06-28 2009-01-01 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US20090019321A1 (en) * 2007-07-09 2009-01-15 Micron Technolgy. Inc. Error correction for memory
TWI308760B (en) * 2003-05-09 2009-04-11 Hewlett Packard Development Co Systems and methods for providing error correction code testing functionality
US20100027336A1 (en) * 2008-07-29 2010-02-04 Park June-Hong Non-volatile memory device and associated programming method using error checking and correction (ECC)
US8055982B2 (en) * 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
US20110283164A1 (en) * 2010-05-17 2011-11-17 Skymedi Corporation Configurable coding system and method of multiple eccs

Family Cites Families (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2515097B2 (ja) * 1985-10-08 1996-07-10 日本テキサス・インスツルメンツ 株式会社 半導体記憶装置
US6304992B1 (en) * 1998-09-24 2001-10-16 Sun Microsystems, Inc. Technique for correcting single-bit errors in caches with sub-block parity bits
US6552947B2 (en) * 1999-04-05 2003-04-22 Madrone Solutions, Inc. Memory tile for use in a tiled memory
US6249475B1 (en) 1999-04-05 2001-06-19 Madrone Solutions, Inc. Method for designing a tiled memory
US6745310B2 (en) * 2000-12-01 2004-06-01 Yan Chiew Chow Real time local and remote management of data files and directories and method of operating the same
CA2447204C (en) 2002-11-29 2010-03-23 Memory Management Services Ltd. Error correction scheme for memory
US20040225944A1 (en) * 2003-05-09 2004-11-11 Brueggen Christopher M. Systems and methods for processing an error correction code word for storage in memory components
GB0315063D0 (en) * 2003-06-27 2003-07-30 Ibm Memory devices
JP2005293728A (ja) 2004-03-31 2005-10-20 Toshiba Corp 半導体記憶装置
US7437651B2 (en) * 2004-06-29 2008-10-14 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US7308638B2 (en) * 2004-06-29 2007-12-11 Hewlett-Packard Development Company, L.P. System and method for controlling application of an error correction code (ECC) algorithm in a memory subsystem
US20060143551A1 (en) 2004-12-29 2006-06-29 Intel Corporation Localizing error detection and recovery
US20060236035A1 (en) * 2005-02-18 2006-10-19 Jeff Barlow Systems and methods for CPU repair
US8041990B2 (en) 2007-06-28 2011-10-18 International Business Machines Corporation System and method for error correction and detection in a memory system
US8176391B2 (en) * 2008-01-31 2012-05-08 International Business Machines Corporation System to improve miscorrection rates in error control code through buffering and associated methods
EP2261806B1 (en) 2008-02-28 2018-08-29 Fujitsu Limited Storage device, storage controller, data transfer integrated circuit, and method of controlling storage
US8321758B2 (en) * 2008-08-05 2012-11-27 Advanced Micro Devices, Inc. Data error correction device and methods thereof
US8086783B2 (en) 2009-02-23 2011-12-27 International Business Machines Corporation High availability memory system
US8176284B2 (en) 2009-08-11 2012-05-08 Texas Memory Systems, Inc. FLASH-based memory system with variable length page stripes including data protection information
JP4940322B2 (ja) 2010-03-16 2012-05-30 株式会社東芝 半導体メモリ映像蓄積再生装置及びデータ書込み/読出し方法
US8775868B2 (en) * 2010-09-28 2014-07-08 Pure Storage, Inc. Adaptive RAID for an SSD environment
US8640006B2 (en) * 2011-06-29 2014-01-28 International Business Machines Corporation Preemptive memory repair based on multi-symbol, multi-scrub cycle analysis

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI308760B (en) * 2003-05-09 2009-04-11 Hewlett Packard Development Co Systems and methods for providing error correction code testing functionality
US20050172207A1 (en) * 2004-01-30 2005-08-04 Radke William H. Error detection and correction scheme for a memory device
US8055982B2 (en) * 2007-02-21 2011-11-08 Sigmatel, Inc. Error correction system and method
US20090006900A1 (en) * 2007-06-28 2009-01-01 International Business Machines Corporation System and method for providing a high fault tolerant memory system
US20090019321A1 (en) * 2007-07-09 2009-01-15 Micron Technolgy. Inc. Error correction for memory
US7996727B2 (en) * 2007-07-09 2011-08-09 Micron Technology, Inc. Error correction for memory
US20100027336A1 (en) * 2008-07-29 2010-02-04 Park June-Hong Non-volatile memory device and associated programming method using error checking and correction (ECC)
US20110283164A1 (en) * 2010-05-17 2011-11-17 Skymedi Corporation Configurable coding system and method of multiple eccs

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11010234B2 (en) 2019-02-01 2021-05-18 Winbond Electronics Corp. Memory device and error detection method thereof
TWI827138B (zh) * 2021-08-27 2023-12-21 華邦電子股份有限公司 半導體儲存裝置
US12051480B2 (en) 2021-08-27 2024-07-30 Winbond Electronics Corp. Semiconductor storage device

Also Published As

Publication number Publication date
CN104246898B (zh) 2017-03-22
US20150082122A1 (en) 2015-03-19
US9600359B2 (en) 2017-03-21
CN104246898A (zh) 2014-12-24
KR101684045B1 (ko) 2016-12-07
EP2856471A1 (en) 2015-04-08
EP2856471A4 (en) 2015-11-18
WO2013180714A1 (en) 2013-12-05
TW201407629A (zh) 2014-02-16
KR20140140632A (ko) 2014-12-09

Similar Documents

Publication Publication Date Title
TWI501251B (zh) 區域錯誤檢測及全域錯誤校正技術
US8086783B2 (en) High availability memory system
US9201725B2 (en) Memory module, memory system having the same, and methods of reading therefrom and writing thereto
US9183078B1 (en) Providing error checking and correcting (ECC) capability for memory
US8245109B2 (en) Error checking and correction (ECC) system and method
US8869007B2 (en) Three dimensional (3D) memory device sparing
US8788904B2 (en) Methods and apparatus to perform error detection and correction
US9754684B2 (en) Completely utilizing hamming distance for SECDED based ECC DIMMs
CN103137215B (zh) 向存储器提供低延时错误纠正码能力
US9898365B2 (en) Global error correction
CN104347122B (zh) 一种消息式内存模组的访存方法和装置
KR20170039057A (ko) 메모리 시스템 및 메모리 에러 정정 방법
US11218165B2 (en) Memory-mapped two-dimensional error correction code for multi-bit error tolerance in DRAM
EP3462318B1 (en) Memory controller error checking process using internal memory device codes
Mittal et al. A survey of techniques for improving error-resilience of DRAM
US9690649B2 (en) Memory device error history bit
US20160139988A1 (en) Memory unit
US20240296094A1 (en) Memory bank protection
US9106260B2 (en) Parity data management for a memory architecture
US20160147598A1 (en) Operating a memory unit
Longofono et al. Predicting and mitigating single-event upsets in DRAM using HOTH
Nair Architectural techniques to enable reliable and scalable memory systems
KR20070074322A (ko) 메모리 시스템에 있어서 메모리 미러링 방법
Li et al. Improving DRAM Reliability Using a High Order Error Correction Code

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees