TW202143242A - 單錯校正(sec)檢測或防止錯誤檢測三位元的系統和方法 - Google Patents
單錯校正(sec)檢測或防止錯誤檢測三位元的系統和方法 Download PDFInfo
- Publication number
- TW202143242A TW202143242A TW109145491A TW109145491A TW202143242A TW 202143242 A TW202143242 A TW 202143242A TW 109145491 A TW109145491 A TW 109145491A TW 109145491 A TW109145491 A TW 109145491A TW 202143242 A TW202143242 A TW 202143242A
- Authority
- TW
- Taiwan
- Prior art keywords
- die
- secded
- dram
- ecc
- bit
- Prior art date
Links
Images
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/19—Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes
-
- 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
-
- 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/1048—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 arrangements adapted for a specific error detection or correction feature
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/17—Burst error correction, e.g. error trapping, Fire codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/23—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using convolutional codes, e.g. unit memory codes
- H03M13/235—Encoding of convolutional codes, e.g. methods or arrangements for parallel or block-wise encoding
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/37—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
- H03M13/3738—Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- General Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Quality & Reliability (AREA)
- General Engineering & Computer Science (AREA)
- Algebra (AREA)
- Pure & Applied Mathematics (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
本文描述的各種實施方式關於在動態隨機存取記憶體(DRAM)校正錯誤。記憶體控制器在DRAM晶粒內使用糾錯碼(ECC)儲存編碼的資料字。DRAM晶粒透過記憶體資料匯流排可通訊地耦接記憶體控制器。DRAM晶粒包括用於儲存在DRAM的資料位元的晶粒上糾錯。在讀取編碼的資料字時,記憶體控制器校正並檢測一個或多個錯誤。一個或多個錯誤是透過DRAM晶粒或記憶體資料匯流排的晶粒上糾錯中的至少一者引發。
Description
本公開內容總體上關於錯誤校正,且具體地,關於透過單錯校正(SEC)防止錯誤檢測三錯誤位元的機制。
[相關申請]
本申請主張申請日2019年12月24的美國臨時專利申請案62/953,443其全部內容,完全引入本文作為參考。
動態隨機存取記憶體(DRAM)是一種揮發性記憶體,可以由系統單晶片(SoC)使用,以提供大的儲存容量來儲存資料位元。從DRAM讀回該位元時發生錯誤的機率為非零,因此不能忽略。通常,DRAM的錯誤率可以是每千兆位元(Gigabit)DRAM每14到40個小時發生單位元錯誤(single bit in error)。在這方面,SoC實施糾錯邏輯,其(1)校正錯誤,或(2)檢測錯誤並防止使用不正確資料(位元)。在具有使用DRAM進行儲存的SoC控制器的固態驅動器(SSD)中,可以提供適當的錯誤校正機制以減少將不正確的資料保存到SSD的非揮發性記憶體中或返回給主機的情況。
一種系統的一些配置,用於在DRAM校正錯誤,包括:記憶體控制器;及DRAM晶粒。該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器。該DRAM晶粒包括用於儲存在該DRAM的資料位元的晶粒上糾錯。該記憶體控制器被配置以:在DRAM晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字。在讀取該編碼的資料字時,記憶體控制器校正並檢測一個或多個錯誤。該一個或多個錯誤是透過該DRAM晶粒或該記憶體資料匯流排的晶粒上糾錯中的至少一者引發。
在一些配置中,一種方法,用於在DRAM校正錯誤,包括:記憶體控制器在DRAM晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字。該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器。該DRAM晶粒包括用於儲存在該DRAM的資料位元的晶粒上糾錯。在讀取該編碼的資料字時,該記憶體控制器校正並檢測一個或多個錯誤。該一個或多個錯誤是透過該DRAM晶粒該或該記憶體資料匯流排的晶粒上糾錯中的至少一者引發。
在一些配置中,一種非暫態電腦可讀媒體,其儲存電腦可讀指令,以使在執行時使記憶體控制器執行:在動態隨機存取記憶體(DRAM)晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字,該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器,該DRAM晶粒包括用於儲存在該DRAM晶粒的資料位元的晶粒上糾錯。在讀取該編碼的資料字時,記憶體控制器進一步校正並檢測一個或多個錯誤。該一個或多個錯誤是透過該DRAM晶粒或該記憶體資料匯流排的晶粒上糾錯中的至少一者引發。
諸如透過SoC或DRAM記憶體控制器所使用的那些高達雙倍資料速率4(DDR4)的DRAM設計通常會實現SECDED糾錯碼(Error Correction Code, ECC)方案。可以將這種校正方案的碼字設置為與DRAM猝發(burst)相同的大小(例如32位元組),且能夠校正DRAM猝發中的單個錯誤(例如單個錯誤位元)。與在單個DRAM猝發中發生一個錯誤的可能性相比,在單個DRAM猝發中發生兩個錯誤(例如,兩個錯誤位元)的可能性極不可能,例如,每十億裝置時間少於10菲特(Failures In Time, FIT)。SECDED碼字可以保證檢測單個DRAM猝發中的兩個錯誤。通常,在單個DRAM猝發中出現三個錯誤(例如,三個錯誤位元)的機率非常小,因此可以忽略。對於未能檢測到DRAM猝發中具有三個錯誤的碼字,SECDED碼字的機率約為0.5。
某些DRAM設計諸如雙倍資料速率5(DDR5)實施晶粒上SEC ECC方案用於檢錯或錯誤校正,其中,所述晶粒上SEC方案使用一個SEC碼字,以覆蓋128位元資料的單元。這樣的修正方案可以校正在128位元資料中的單個錯誤(例如,1個錯誤位元)。但是,大約50%的時間,晶粒上SEC錯誤校正方案將128位元資料中的兩個錯誤(例如2個錯誤位元)錯誤地解釋為單個錯誤(與2個原始錯誤的位置不同),且將128位元資料的正確位元校正為錯誤位元,同時保持原始的2個錯誤不變,從而導致SEC碼字具有3個錯誤(例如,總共3個錯誤位元,由2個原始錯誤位和1個錯誤校正位元組成)。在這方面,在其中,DRAM猝發中的兩個錯誤的機率足夠高的情況下(例如,DRAM猝發中的兩個錯誤的機率不能視為可以忽略),在SoC上實現的ECC方案應當較佳為配置為檢測由於DDR5設計中的晶粒上SEC方案而導致的DRAM猝發中的兩個錯誤和三個錯誤。即,假設DDR5中的晶粒上SEC方案可能無法檢測到DRAM猝發中的兩個錯誤,且可能引發DRAM猝發中的第三個錯誤,則可以在SoC上實施其他ECC方案以檢測在DRAM猝發中的兩個和三個錯誤。
在一些示例中,由於SECDED ECC方案的碼字之間的最小距離為4,因此SECDED ECC方案可能無法保證DRAM猝發中三個錯誤的準確檢測,因此,一個碼字中的3位元錯誤與另一碼字中的1位元錯誤無法區分。另一方面,參數t為2的博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)碼字之間的最小距離為5,因此可確保可靠地檢測到3位錯誤。BCH解碼器可以在以下模式下使用:在DRAM猝發中,BCH解碼器可以校正單個錯誤並檢測到但不嘗試校正兩個錯誤(因為一個碼字中的2個錯誤可能與另一碼字中的3個錯誤無法區分),還可以可靠地檢測到3個錯誤。在那種模式下,在DRAM猝發中發生兩個或三個錯誤的任何情況下,BCH解碼器都可以保證準確檢測錯誤。這種BCH解碼方案與用於DDR5 DRAM的晶粒上SEC的實施方式相容。
根據DDR5草案規範,在DDR5 DRAM上實施的SEC方案在產生奇偶校驗(parity)位元組(例如8個ECC校驗位元(check bit)的ECC碼)時採用128位元資料。奇偶校驗位元組也與資料一起寫入DRAM。該方案可以檢測並校正單個錯誤。回應於確定位元是錯誤,SEC方案提供一個8-位元值,其標識單一錯誤位元的位置。然而,所述SEC方案將無法檢測到大約2位元錯誤的可能情況的一半,此外,在那些情況下,所述SEC方案將識別並錯誤校正沒有錯誤且與錯誤的原始2位元無關的第三位元。這意味著,在發生兩個錯誤的情況下,SEC方案有50%的時間在碼字中導致三個錯誤(兩個原始錯誤位元加一個錯誤校正位元)。
SEC方案將SEC碼字的資料位元分成四個四分之一,即Q1,Q2,Q3和Q4,如DDR5規範草案的表136和137所示,其中,顯示示例奇偶校驗矩陣。碼字的前64位元(63:0)包括Q1和Q2。碼字的後64位元(127:64)包括Q3和Q4。透過針對DDR5設計的SEC方案,在2錯誤位元出現在一個碼字的前半部(例如,在前64位元,Q1和Q2)的情況,該SEC方案可以引發通過在碼字的後半部(例如,在後64位元,在Q3或Q4)誤校正另外的錯誤位元。類似地,在2錯誤位元出現在碼字的後半部(例如,在後64位元,Q3和Q4)的情況,該SEC方案可以引發通過在碼字的前半部(例如,在前64位元,Q1或Q2)誤校正另外的錯誤位元。DDR5雙直列記憶體模組(DIMM)每個頻道(channel)具有5個位元組通道(lane)(例如,每個通道40位元),另外還有一個字節用於平行ECC,當將資料寫入DIMM時,其字節與32位元資料一起產生並發送 DIMM。
圖1是示出根據一些配置的用於DRAM的實施方式的資料猝發100的示例的示意圖。參考圖1,DDR5 DRAM可以使用資料猝發來傳輸資料,每個資料猝發可以是資料猝發,諸如但不限於猝發100。如圖所示,猝發100具有猝發長度115,其示例是16位元。在一示例中,DRAM具有32位元寬的資料介面120,猝發100總大小是64位元組(512位元)。DRAM的DIMM具有通道150,該頻道150的寬度為5位元組(40位元)。頻道150包括通道121-125。通道121-125中的每一個具有位元組的寬度(8位元)。如圖所示,使用通道121-124傳送猝發100。通道125對應於平行ECC奇偶校驗130(包括平行ECC奇偶校驗位元110a和晶粒上奇偶校驗110b),其具有位元組的寬度(8位元)。猝發100對應於晶粒上SEC碼字,其包括資料102a,104a,106a和108a,連同相應的晶粒上奇偶校驗102b,104b,106b和108b。即,第一晶粒上SEC碼字(表示為102a,b)包括資料102a和一個晶粒上奇偶校驗102b。第二晶粒上SEC碼字(表示為104a,b)包括資料104a和晶粒上奇偶校驗104b。第三晶粒上SEC碼字(表示為106a,b)包括資料106a和晶粒上奇偶校驗106b。第四晶粒上SEC碼字(表示為108a,b)包括資料104a和晶粒上奇偶校驗104b。每個晶粒上SEC碼字102a,b,104a,b,106a,b,和108的a,b對應於通道121-124中的相應一個。
所述DRAM的晶粒上SEC產生晶粒上奇偶校驗140(包括晶粒上奇偶校驗102b,104b,106b和108b),用於猝發100(例如,用於資料102b,104b,106b和108b,晶粒上SEC產生對應的晶粒上奇偶校驗102b,104b,106b和108b)和用於平行ECC奇偶校驗130(例如,用於奇偶校驗位元110a,晶粒上SEC產生晶粒上奇偶校驗110b)。如圖所示,晶粒上奇偶校驗140包括沿著猝發長度115為每16位元產生的晶粒上奇偶校驗位元。DRAM的晶粒上SEC產生晶粒上奇偶校驗140的位元組(例如,晶粒上奇偶校驗102b,104b,106b和108b)用於資料猝發各部分的每一者(例如,資料102a,104a,106a,和108a)。DRAM的晶粒上SEC產生晶粒上奇偶校驗110b的位元組,用於對應於猝發100的平行ECC奇偶校驗位元110a。
如在此處進一步的細節公開,可透過導致3錯誤位元的SEC用於防止誤檢測2錯誤位元以實施各種ECC方案或機制。一些示例的ECC方案確保SECDED碼字(例如,(32,40)SECDED碼字)用於在猝發100沒有檢測到超過2錯誤位元的平行ECC。
圖1示出三錯誤個情況,其中,在猝發100中實際存在兩個錯誤位元。這些情況可能具有相同數量級的發生機率。
在第一種情況(以下稱為“情況A”),位元162和位元164是在猝發100實際發生的錯誤位元(例如,在晶粒上SEC碼字102a,b的資料102a)。錯誤位元162是在晶粒上SEC碼字102a,b的資料102a的下半部114。錯誤位元164是在晶粒上SEC碼字102a,b的資料102a的上半部112。在情況A中,基於錯誤位元162和164,晶粒上SEC不會引發第三錯誤位元。
在第二種情況(稱為“情況B”)時,位元162和位元167位元是在猝發100實際發生的錯誤位元(例如,在晶粒上SEC碼字102a,b的資料102a)。如圖所示,錯誤位元162中和167兩者是在晶粒上SEC碼字102a,b的資料102a的下半部114。錯誤位元162和167的組合引發晶粒上SEC碼字至錯誤地檢測第三位元166作為錯誤位元,其中,位元166是實際上錯誤地識別為錯誤位元的正確位元。位元166是在晶粒上SEC碼字102a,b的資料102a的上半部112。
在第三情況(稱為“情況C”)中,位元162和位元168是在猝發100實際發生的錯誤位元。如圖所示,該錯誤位元162是在晶粒上SEC碼字102a,b的資料102a的下半部114。錯誤位元168是在晶粒上SEC碼字104a,b的資料104a的下半部114,其是一個不同於晶粒上SEC碼字102a,b的碼字。在情況C中,基於錯誤位元162和168,沒有透過晶粒上SEC引發第三錯誤位元。
如圖所示,對於猝發100的每個拍子(beat),本文所述的平行ECC方案可以在整個頻道150(例如整個資料介面120)上產生平行ECC奇偶校驗 130,以檢測情況A,情況B,和情況C。
圖2示出根據一些配置,用於DRAM的實施方式的資料的猝發100(圖1)的SECDED碼字200的示例。參考圖1和圖2,SECDED碼字200對應於(512,502)SECDED方案。在(512,502)SECDED方案中,將502位元使用者資料編碼為512位元碼字,並保存在DRAM在猝發100中,猝發100分別包括通道121,122,123和124上的資料102a,104a,106a和108a。如圖所示,根據(512,502)SECDED方案,可以將SECDED碼字200應用於整個猝發100以檢測其中的錯誤位元。即,該SECDED碼字 200可以被用來檢測儲存在晶粒上所有資料102a,104a,106a和108a的錯誤位元。如所描述的,應用於猝發100的ECC方案能夠在猝發100檢測兩個錯誤位元。在這方面,SECDED碼字200可以應用於猝發100,以檢測情況A中的錯誤位元162和164,以及情況C中的錯誤位元162和168。
關於情況B,在儲存在晶粒上的資料102a的兩個錯誤位元在162和167透過晶粒上SEC可能被錯誤地校正,以產生“錯誤”位元166,從而產生三個總錯誤位元。因此,SECDED碼字200在情況B中覆蓋三個錯誤位元162,166和167,這意味著使用SECDED碼字200的(512,502)SECDED方案可能無法檢測到三個錯誤位元162,166和167。因此,(512,502)SECDED方案的SECDED碼字200可能不能夠解決情況B。在一些情況下,(512,502)SECDED方案可以不以DDR5 DRAM實施。
圖3說明根據一些配置,用於DRAM實施資料的猝發100(圖1)的兩個SECDED碼字300和310的示例。參考圖1和3,SECDED碼字300和310對應於(256,247) SECDED方案。在(256,247)SECDED方案中,將247位元使用者資料編碼為256位元碼字,並保存在DRAM猝發100中,其分別包括通道121,122,123和124上的資料102a,104a,106a和108a。如圖所示,SECDED碼字300可以被施加到猝發100的上半部112(例如,資料102a,104a,106a和108a的上半部112)以檢測在其中的錯誤位元。即,SECDED碼字300可被用來檢測在資料102a,104a,106a和108a中的上半部112的錯誤位元。SECDED碼字310可以被施加到猝發100的下半部114(例如,資料102a,104a,106a和108a的下半部114)以檢測其中的錯誤位元。也就是說,SECDED碼字310可以使用在資料102a,104a,106a和108a的下半部114以檢測錯誤位元。猝發100包括SECDED碼字300和310。
如所述,ECC方案施加到猝發100是能夠在猝發100檢測兩個錯誤位元。由於晶粒上SEC碼字(例如,每個晶粒上SEC碼字102a,b,104a,b,106a,b和108a,b)被分成四分之一(Q1-Q4),且SEC方案在上半部或下半部將只有兩個錯誤這樣的事實,使用SECDED碼字300和310的(256,247)SECDED方案可以實施在32位元資料介面(例如,資料介面120)。在這方面,SECDED碼字300和310都需不要檢測用於猝發100的兩個以上錯誤位元。然後,SECDED碼字300和310可以總是檢測出雙重錯誤。
例如,在情況A中,SECDED碼字300可以應用到猝發100的上半部112以檢測錯誤位元164,且SECDED碼字310可以被施加到猝發100的下半部114,以檢測錯誤位元162。在情況B中,SECDED碼字300可以應用到猝發100的上半部112以檢測錯誤位元166,且SECDED碼字310可以被施加到猝發100的下半部114,以檢測錯誤位元162和167。在情況C中,SECDED碼字300可以應用於猝發100的上半部112且檢測沒有錯誤位元,而SECDED碼字310可以應用於猝發100的下半部114以檢測錯誤位元162和168。
圖4是示出根據一些配置,用於DRAM的實施方式的資料的猝發400的示例和用於資料的猝發400的SECDED碼字401的示例的示意圖。參考圖4,DDR5 DRAM可以使用資料猝發來傳輸資料,其每個可以是資料猝發,例如但不限於猝發400。如圖所示,猝發400具有猝發長度410,其示例是16位元。在DRAM具有16位元寬的資料介面420的示例中,猝發400的總大小為32 位元組(256位元)。資料介面420包括至少通道421和422。頻道的每個通道的寬度為一位元組(8位元)。如圖所示,使用通道421和422傳送猝發400。在一些示例中,頻道包括與平行ECC奇偶校驗相對應的附加通道(未示出),其具有位元組(8位元)的寬度。猝發400分別在通道421和422對應於資料402a和404a。也就是說,第一晶粒上SEC碼字(表示為402a,b)包括資料402a和晶粒上奇偶校驗402b。第二晶粒上SEC碼字(表示為404a,b)包括資料404a和一個晶粒上奇偶校驗404b。每個晶粒上SEC碼字402a,b和404a,b對應於通道421和422中相應的一者。
DRAM的晶粒上SEC產生晶粒上奇偶校驗440以用於猝發400(例如,包括奇偶402b和404b產生用於資料402a和404a)和用於平行ECC奇偶校驗。晶粒上奇偶校驗440包括用於沿猝發長度410的每個16位元所產生的晶粒上奇偶校驗。DRAM的晶粒上SEC產生晶粒上奇偶校驗440(例如該奇偶402b和奇偶404b)的一個位元組以用於資料402a和404a的每一者。在一些示例中,DRAM的晶粒上SEC可以產生晶粒上奇偶校驗440的一位元組以用於平行ECC奇偶校驗。
圖4示出三個錯誤情況,其中,兩個錯誤位元實際上在猝發400中發生。這些情況可能具有相同數量級的發生機率。
在第一種情況(稱為“情況A”),位元462和位元464是在猝發400實際發生的錯誤位元(例如,在資料402a)。錯誤位元462是在資料402a的下半部414。錯誤位元464是在資料402a的上半部412。在情況A,基於錯誤位元462和464,透過晶粒上SEC不會引發第三錯誤位元。
在第二情況(稱為“情況B”),位元462和第467是在猝發400實際發生的錯誤位元(例如,在資料402a)。如圖所示,錯誤位元462和467兩者是在資料402a的下半部414。錯誤位元462和467的組合引發晶粒上SEC碼字錯誤地將第三位元466檢測為錯誤位元,其中,位元466實際上是被錯誤地標識為錯誤位元的正確位元,且被晶粒上SEC錯誤校正,使第三位元466錯誤。位元466是在資料402a的上半部412。
在第三情況(稱為“情況C”)中,位元462和位元468是錯誤位元,通常在猝發400中出現。如圖所示,錯誤位元462發生在資料402a的下半部414。錯誤位元468發生在資料404a的下半部414,其碼字與晶粒上SEC碼字402不同。在情況C中,沒有基於錯誤位元462和468透過晶粒上SEC引發第三錯誤位元。
SECDED碼字401對應於(256,247)SECDED方案。如圖所示,根據(256,247)SECDED方案,可以將SECDED碼字401應用於整個猝發400以檢測其中的錯誤位元。即,SECDED碼字401可以用於檢測所有晶粒上SEC碼字402和404中的錯誤位元。如上所述,應用於猝發400的ECC方案能夠檢測猝發400中的兩個錯誤位元。就這一點而言,可以將SECDED碼字401應用於猝發400,以檢測情況A中的錯誤位元462和464以及情況C中的錯誤位元462和468。
關於情況B,在晶粒上SEC碼字402的兩個錯誤位元462和467可能被錯誤地校正,以產生“錯誤”的位元466,從而產生三個總錯誤位元。因此,在情況B,SECDED碼字401包括三個錯誤位元462,466,和467,意味著(256,247)SECDED方案使用SECDED碼字401可能無法檢測到三個錯誤位元462,466,和467。因此,(256,247)SECDED方案的SECDED碼字401可能不能夠解決情況B。在一些情況下,(256,247)SECDED方案可以不以具有16位元頻道的DDR5 DRAM實施,其通常在低性能和低成本產品使用,其中,使用的是單獨的DRAM裝置而不是DIMM模組,其可能具有40位元頻道150,該頻道包括32位元資料介面120和8位元平行ECC奇偶校驗130。
在一些實施方式中,可以在猝發400上使用(128,120)SECDED方案以檢測其中的錯誤位元。在(128,120)SECDED方案中,將120位元使用者資料編碼為128位元碼字,並保存在猝發100中的DRAM中,猝發100中分別包括通道121,122,123和124上的資料102a,104a,106a和108a。
在一些實施例中,在DDR5 DRAM設計的晶粒上SEC可以檢測和校正所有1-位元錯誤。在這樣的示例中,SoC ECC方案可以由ECC組件提供(例如,在與提供晶粒上SEC的晶粒分離並可通訊地耦接到其上的記憶體控制器),以檢測和校正其他錯誤(例如2位元錯誤和3位元錯誤)。在這方面,BCH解碼器可以被配置為僅校正1位元錯誤且拒絕(例如,不校正)2位元錯誤。這意味著BCH解碼器可以保證拒絕所有三位錯誤,因為在發生2位元錯誤的某些情況下會引發三位元錯誤。
在一些示例中,可以在DDR5 DRAM的所有配置(例如但不限於32位元資料介面(例如,資料介面120),16位元資料(例如,資料介面420),等等)上實施(512,493)BCH ECC方案介面。在(512,493)SECDED方案中,493位元使用者資料編碼為512位元碼字,並保存在猝發100中的DRAM中,其分別包括通道121,122,123和124上的資料102a,104a,106a和108a。如上所述,(512,493)BCH ECC方案可以保證檢測到DRAM猝發中的任何2位元錯誤,其可能會導致3位元錯誤。
在一些示例中,用於DDR4 DRAM以實施的BCH解碼器被配置成校正1-位元錯誤和2-位元錯誤,因為DDR4 DRAM不實施晶粒上SEC,且單個碼字包括3隨機產生錯誤的機率非常小。
在一些示例中,(例如,SSD的)記憶體控制器可以使用SECDED ECC碼字來檢測和校正儲存在具有32位元頻道或16位元頻道的DDR5 DRAM(具有晶粒上SEC)中的資料位元中的錯誤。在一些示例中,(例如,SSD的)記憶體控制器可以使用SECDED ECC碼字來檢測和校正儲存在DDR4 DRAM中的資料位元中的錯誤(沒有晶粒上SEC)。該SECDED ECC碼字可以使用相當數量的奇偶校驗位元。另一方面,(512,493)BCH碼字具有比SECDED ECC碼字高的碼速率,支援具有32位元頻道或16位元頻道的DDR5 DRAM(有晶粒上SEC)以及DDR4 DRAM(無晶粒SEC),且使用小於透過SECDED ECC碼字使用的的奇偶校驗位元數量。
在一些示例中,其中,SECDED ECC方案是使用在耦接到與DDR5 DRAM晶粒通訊的記憶體控制器,SECDED碼字不會跨越任何晶粒上SEC碼字的中心,以確保SECDED碼字不會遇到三錯誤(兩實際錯誤位元和透過晶粒上SEC的錯誤校正引發的第三錯誤位元),例如,如參考圖3所述。
在一些示例中,其中,BCH ECC方案是使用在耦接到與DDR5 DRAM晶粒通訊的記憶體控制器,BCH碼字可以檢測到兩位元錯誤和三位元錯誤的所有排列(例如,參照圖1-4所述的情況A-C),而無需考慮BCH碼字如何與晶粒上SEC碼字對準。在這方面,可以調整BCH碼字的大小以適合於記憶體控制器的應用。
圖5是示出根據一些配置的示例系統500的方塊圖。參考圖1-5,系統500包括晶粒510和記憶體控制器520。如圖所示,晶粒510(例如,DRAM晶粒)對應於實施DDR5 DRAM設計的電路,且包括一個或多個記憶體陣列(例如,記憶體陣列512a-512n)和晶粒上SEC 514。晶粒510可以被稱為DRAM晶粒。記憶體陣列512a-512n可以是動態記憶體單元陣列,且可以平行地配置以提供儲存功能。
晶粒上SEC 514為儲存在記憶體陣列512a-512n中的資料位元提供被稱為第一錯誤校正功能(例如,第一ECC方案)的晶粒上糾錯。換句話說,假定晶粒上SEC 514和記憶體陣列512a-512n被提供在同一晶粒510上,則晶粒上SEC 514可以提供用於記憶體陣列512a-512n的晶粒上糾錯能力。在一些示例中,晶粒上SEC 514可以產生晶粒上奇偶校驗140和440。
如所描述的,當晶粒上SEC 514可以在128位元資料檢測(且,在一些示例中,校正)1個錯誤位元(例如,每SEC碼字一錯誤),由於粒上SEC 514的限制,晶粒上SEC 514可能無法在128位元資料中檢測2錯誤位元(例如,每SEC碼字2錯誤)。在某些情況下,晶粒上SEC 514甚至可能在128位元資料中的2個錯誤位元之外引發1錯誤位元,從而導致每個SEC碼字3個總錯誤。這可能是當晶粒510被實施在系統500是SSD的情況下,其中,晶粒510(例如,記憶體陣列512a-512n)作為揮發性記憶體儲存用於SSD,且記憶體控制器520是SoC的一部分(為清晰起見未圖示),其是非揮發性記憶體控制器。
在這方面,記憶體控制器520可以提供額外的,第二錯誤校正功能(例如,第二ECC方案)。如所描述的,第二錯誤校正功能可以是SECDED ECC方案或BCH ECC方案。
記憶體控制器520通過記憶體資料匯流排525 通訊地耦接到晶粒510。第二錯誤校正功能可以用於校正由晶粒上SEC 514及/或記憶體資料匯流排525執行的晶粒上糾錯所引發的錯誤。打算儲存在晶粒510上的資料在資料猝發發送到晶粒510之前,首先使用SECDED ECC方案或BCH ECC方案進行編碼。SECDED ECC方案或BCH ECC方案是專門設計用以校正通過晶粒上SEC 514未檢測到或校正的錯誤,其透過晶粒上SEC 514及/或記憶體匯流排525由晶粒上校正執行引發。
記憶體控制器520和晶粒上SEC 514可以由單獨的處理電路實施,每個具有合適的處理和記憶體儲存能力。例如,記憶體控制器520可以通過第一處理電路(具有第一處理器和第一記憶體裝置)來實施,且晶粒上 SEC 514可以透過第二處理電路(具有第二處理器和第二個記憶體裝置)實施。
雖然圖5示出一晶粒(例如,晶粒510),系統500可以包括兩個或更多個晶粒(其每個可以是諸如但不限於晶粒510的晶粒),其可通訊地耦接到記憶體控制器520,記憶體控制器520可提供第二錯誤校正功能(例如,第二ECC方案)用於操作地耦接到其上的所有晶粒。
圖6是根據一些配置,示出用於在DRAM中校正錯誤的示例方法600的流程圖。參考圖1-6,方法600可以由記憶體控制器520執行。
在610,記憶體控制器520使用ECC在DRAM晶粒(例如,晶粒510的DRAM 512a-512n)內儲存編碼的資料字(例如,碼字)。晶粒510透過記憶體資料匯流排525通訊地耦接記憶體控制器520。晶粒510包括晶粒上糾錯(例如,通過晶粒上SEC 514執行)用於儲存在晶粒510的資料位元。在一些示例中,資料位元對應於猝發100或猝發200。
在620,在讀取編碼的資料字時,記憶體控制器520校正並檢測一個或多個錯誤。一個或多個錯誤未透過晶粒510或記憶體資料匯流排525的至少一個晶粒上糾錯檢測到或引發。
在一些配置中,ECC是BCH ECC。BCH ECC可以是(512,493)BCH ECC。編碼的資料字包括一個或多個(512,493)BCH碼字。在一些配置中,記憶體控制器520包括BCH解碼器。BCH解碼器在每個DRAM猝發校正1錯誤位元,且在每個DRAM猝發拒絕錯誤的2位元,其可能會導致3錯誤位元。在一些配置中,例如,當晶粒510不具有晶粒上SEC 514或晶粒上SEC 514失能時(disable),BCH解碼器可以被配置為校正任何單個錯誤位元和任何兩個錯誤位元。
編碼的資料字包括一個或多個SECDED碼字。在一些實例中,資料位元對應於由晶粒上糾錯所產生的一個或多個晶粒上SEC碼字。資料位元對應於一個或多個SECDED碼字。一個或多個SECDED碼字的每一者不跨過一個或多個晶粒上SEC碼字的中心的任一者。在一個示例中,一個或多個SECDED碼字中(例如,SECDED碼字300)的第一個覆蓋晶粒上SEC碼字102,104,106和108中的每一者的前半部(例如,上半部112),且一個或多個SECDED碼字中(例如,SECDED碼字300)的第二個覆蓋晶粒上SEC碼字102a,b,104a,b,106a,b和108a,b中的每一者的後半部(例如,下半部114)。每個晶粒上SEC碼字102a,b,104a,b,106a,b和108a,b沿著中心分為前半部(例如,上半部112)和後半部(例如,下半部114)。
在一些示例中,SECDED ECC是(256,247) SECDED ECC,且一個或多個SECDED碼字是一個或多個(256,247)SECDED碼字300和310。在這樣示例中,晶粒510包括在32位元資料介面120。
在一些示例中,SECDED ECC是(128,120) SECDED ECC,且一個或多個SECDED碼字是一個或多個(128,120)SECDED碼字。在這樣的示例中,晶粒510包括16位元資料介面420。
提供先前的描述以使本領域的任何技術人員能夠實踐本文描述的各個態樣。對這些態樣的各種修改對於本領域技術人員而言將是顯而易見的,且本文中定義的一般原理可以應用於其他態樣。因此,申請專利範圍不旨在限於本文中所展示的態樣,而是應被賦予與語言申請專利範圍一致的完整範圍,其中,除非特別指出,否則以單數形式提及元件並非旨在表示“一個且僅一個”,而是“一個或多個”。除非另有特別說明,否則用語“一些”是指一個或多個。本領域普通技術人員已知或以後將知曉的遍及整個說明書的各個態樣的元件的所有結構和功能等同物均明確地通過引用併入本文,且意在由申請專利範圍涵蓋。此外,本文所公開的內容均不旨在供公眾使用,無論該公開內容是否在申請專利範圍中作明確說明。除非使用片語“用於……的手段”敘述元件,否則任何申請專利範圍元件都不應被解釋為手段功能用語。
應當理解,所公開的過程中步驟的特定順序或階層是說明性方法的示例。基於設計偏好,應當理解,可以重新排列過程中步驟的特定順序或階層,同時保持在先前描述的範圍內。隨附的方法申請專利範圍以示例順序呈現各個步驟的元件,並不意味著限制所呈現的特定順序或階層。
提供對所公開的實施方式的先前描述以使本領域的任何技術人員能夠製造或使用所公開的標的。對這些實施方式的各種修改對於本領域技術人員而言將是顯而易見的,且在不脫離先前描述的精神或範圍的情況下,本文中定義的一般原理可以應用於其他實施方式。因此,先前的描述無意限於本文中所示的實施方式,而是應被賦予與本文中所揭示的原理和新穎特徵一致的最廣範圍。
所示出和描述的各種示例僅作為示例來提供,以示出申請專利範圍的各種特徵。然而,關於任何給定示例示出和描述的特徵不必限於相關聯的示例,且可以與示出和描述的其他示例一起使用或組合。此外,申請專利範圍無意受任何一個示例的限制。
前述方法描述和過程流程圖僅被提供作為說明性示例,且無意於要求或暗示各種示例的步驟必須以所呈現的順序執行。如本領域技術人員將理解的,前述示例中的步驟順序可以以任何順序執行。“之後(thereafter)”,“然後(then)”,“接著(next)”等詞語無意限制步驟的順序,這些詞僅用於指導讀者進行方法的描述。此外,例如,使用冠詞“一”,“一個”或“該”以單數形式對申請專利範圍元件的任何引用均不應被解釋為將元件限制為單數形式。
結合本文公開的示例描述的各種說明性的邏輯方塊,模組,電路和演算法步驟可以被實施為電子硬體,電腦軟體或兩者的組合。為清楚地說明硬體和軟體的這種可互換性,上面已經在其功能方面總體上描述各種說明性的組件,方塊,模組,電路和步驟。將這種功能性實施為硬體還是軟體取決於特定的應用程式和施加在整個系統上的設計限制。技術人員可以針對每個特定應用以變化的方式來實施所描述的功能,但是這種實施決定不應被解釋為導致脫離本公開的範圍。
用於實施各種說明性邏輯,邏輯塊,模組和電路的硬體結合本文所公開的示例可以通用處理器,DSP,ASIC,FPGA或其他可編程邏輯裝置,離散閘或電晶體邏輯,離散硬體組件或其任何組合設計以實施或執行本文所述功能。通用處理器可以是微處理器,但是可替代地,處理器可以是任何傳統處理器,控制器,微控制器或狀態機。處理器也可以被實施為計算裝置的組合,例如,DSP和微處理器的組合,多個微處理器,與DSP核結合的一個或多個微處理器,或任何其他這樣的配置。可替代地,可以由特定於給定功能的電路來執行一些步驟或方法。
在一些示例性示例中,可以以硬體,軟體,韌體或其任何組合來實施所描述的功能。如果以軟體實施,則功能可以在非暫態電腦可讀儲存媒體或非暫態處理器可讀儲存媒體上儲存作為一個或多個指令或代碼。本文公開的方法或演算法的步驟可以體現在處理器可執行軟體模組中,該處理器可執行軟體模組可以常駐在非暫態電腦可讀或處理器可讀儲存媒體上。非暫態電腦可讀或處理器可讀儲存媒體可以是可由電腦或處理器存取的任何儲存媒體。作為示例而非限制,這種非暫態電腦可讀或處理器可讀儲存媒體可以包括RAM,ROM,EEPROM,快閃記憶體,CD-ROM或其他光碟儲存,磁碟儲存或其他磁性儲存,或可用於以指令或資料結構形式儲存所需程式碼且可由電腦存取的任何其他媒體。本文使用的磁碟和光碟包括光碟(CD),雷射光碟,光學光碟,數位多功能光碟(DVD),軟盤和藍光光碟,其中,光碟通常以磁性方式複製資料,而光碟則通過雷射光學方式複製資料。上述的組合也包括在非暫態電腦可讀和處理器可讀媒體的範圍內。另外,方法或演算法的操作可以作為代碼及/或指令的一個或任何組合或集合常駐在非暫態處理器可讀儲存媒體及/或電腦可讀儲存媒體上,其可以被併入電腦程式產品。
提供對所公開示例的前述描述以使本領域的任何技術人員能夠製造或使用本公開。對這些示例的各種修改對於本領域技術人員而言將是顯而易見的,且在不脫離本公開的精神或範圍的情況下,本文中定義的一般原理可以應用於一些示例。因此,本公開內容不旨在限於本文所示的示例,而是與符合以下申請專利範圍以及本文公開的原理和新穎性特徵的最廣範圍相一致。
100:猝發
102:晶粒上SEC碼字
104:晶粒上SEC碼字
106:晶粒上SEC碼字
108:晶粒上SEC碼字
112:上半部
114:下半部
115:猝發長度
120:資料介面
121:通道
122:通道
123:通道
124:通道
125:通道
130:平行ECC奇偶校驗
140:晶粒上奇偶校驗
150:頻道
162:位元
164:位元
166:位元
167:位元
168:位元
200:SECDED碼字
300:SECDED碼字
310:SECDED碼字
400:猝發
401:SECDED碼字
402:SECDED碼字
404:SECDED碼字
410:猝發長度
412:上半部
414:下半部
420:資料介面
421:通道
422:通道
440:晶粒上奇偶校驗
462:位元
464:位元
466:位元
467:位元
468:位元
500:系統
510:晶粒
514:晶粒上SEC
520:記憶體控制器
525:記憶體資料匯流排
600:方法
610:步驟
620:步驟
102a:資料
102b:晶粒上奇偶校驗
104a:資料
104b:晶粒上奇偶校驗
106a:資料
106b:晶粒上奇偶校驗
108a:資料
108b:晶粒上奇偶校驗
110a:平行ECC奇偶校驗位元
110b:晶粒上奇偶校驗
402a:資料
402b:晶粒上奇偶校驗
404a:資料
404b:晶粒上奇偶校驗
512a:記憶體陣列
512b:記憶體陣列
512n:記憶體陣列
A:情況
B:情況
C:情況
[圖1]是示出根據一些配置,用於DRAM的實施方式的資料猝發(burst of data)的示例的示意圖。
[圖2]示出的示例是根據一些配置,用於DRAM的實施方式的猝發資料的單錯校正,雙錯檢測(Double Error Detection, SECDED)碼字(codeword)的示例。
[圖3]示出根據一些配置,用於DRAM的實施方式的猝發資料的兩個SECDED碼字的示例。
[圖4]示出根據一些配置,用於DRAM的實施方式的猝發資料的兩個SECDED碼字的示例。
[圖5]示出根據一些配置,SoC示例的方塊圖。
[圖6]示出根據一些配置,用於DRAM校正錯誤的示例方法的流程圖。
100:猝發
102a,104a,106a,108a:資料
102b,104b,106b,108b:晶粒上奇偶校驗
110a:奇偶校驗位元
110b:晶粒上奇偶校驗
112:上半部
114:下半部
115:猝發長度
120:資料介面
121:通道
122:通道
123:通道
124:通道
125:通道
130:平行ECC奇偶校驗
140:晶粒上奇偶校驗
150:頻道
162:位元
164:位元
166:位元
167:位元
168:位元
Claims (20)
- 一種系統,用於在動態隨機存取記憶體(DRAM)校正錯誤,包括: 記憶體控制器;及 DRAM晶粒,該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器,該DRAM晶粒包括用於儲存在該DRAM晶粒的資料位元的晶粒上糾錯,其中,該記憶體控制器被配置以: 在該DRAM晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字;及 在讀取該編碼的資料字時,校正並檢測一個或多個錯誤,其中,該一個或多個錯誤是透過該DRAM晶粒或該記憶體資料匯流排的該晶粒上糾錯中的至少一者引發。
- 根據請求項1所述的系統,其中,該ECC是博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)ECC。
- 根據請求項2所述的系統,其中, 該BCH ECC是(512,493)BCH ECC;及 該編碼的資料字包括一個或多個(512,493)BCH碼字。
- 根據請求項1所述的系統,其中, 該記憶體控制器包括博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)解碼器;及 該BCH解碼器在每個DRAM猝發校正1位元錯誤,且在每個DRAM猝發拒絕2位元錯誤。
- 根據請求項1所述的系統,其中, 該ECC是單錯校正,雙錯檢測(Single Error Correction, Double Error Detection, SECDED) ECC;及 該編碼的資料字包括一個或多個SECDED碼字。
- 根據請求項5所述的系統,其中, 該資料位元對應於透過該晶粒上糾錯產生的一個或多個晶粒上SEC碼字; 該資料位元對應於該一個或多個SECDED碼字;及 該一個或多個SECDED碼字中的每一者都不跨該一個或多個晶粒上SEC碼字中任何一者的中心。
- 根據請求項6所述的系統,其中, 該一個或多個SECDED碼字中的第一個覆蓋該一個或多個晶粒上SEC碼字中的至少一者的前半部; 該一個或多個SECDED碼字中的第二個覆蓋該一個或多個晶粒上SEC碼字中的至少一者的後半部;及 該一個或多個晶粒上SEC碼字中的至少一者的每一者沿該中心被分為該前半部和該後半部。
- 根據請求項5所述的系統,其中, 該SECDED ECC是(256,247)SECDED ECC;及 該一個或多個SECDED碼字是一個或多個(256,247) SECDED碼字。
- 根據請求項8所述的系統,其中,該DRAM晶粒包括32位元資料介面。
- 根據請求項5所述的系統,其中, SECDED ECC是(128,120)SECDED ECC;及 該一個或多個SECDED碼字是一個或多個(128,120) SECDED碼字。
- 根據請求項10所述的系統,其中,該DRAM晶粒包括16位元資料介面。
- 一種方法,用於在動態隨機存取記憶體(DRAM)校正錯誤,包括: 透過記憶體控制器,在DRAM晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字,該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器,該DRAM晶粒包括用於儲存在該DRAM晶粒的資料位元的晶粒上糾錯;及 在讀取該編碼的資料字時,透過該記憶體控制器,校正並檢測一個或多個錯誤,其中,該一個或多個錯誤是透過該DRAM晶粒或該記憶體資料匯流排的該晶粒上糾錯中的至少一者引發。
- 根據請求項12所述的方法,其中,該ECC是博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)ECC。
- 根據請求項13所述的方法,其中, 該BCH ECC是(512,493)BCH ECC;及 該編碼的資料字包括一個或多個(512,493)BCH碼字。
- 根據請求項12所述的方法,其中, 該記憶體控制器包括博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem, BCH)解碼器;及 該BCH解碼器在每個DRAM猝發校正1位元錯誤,且在每個DRAM猝發拒絕2位元錯誤。
- 根據請求項12所述的方法,其中, 該ECC是單錯校正,雙錯檢測(Single Error Correction, Double Error Detection, SECDED) ECC;及 該編碼的資料字包括一個或多個SECDED碼字。
- 根據請求項16所述的方法,其中, 該資料位元對應於透過該晶粒上糾錯產生的一個或多個晶粒上SEC碼字; 該資料位元對應於該一個或多個SECDED碼字;及 該一個或多個SECDED碼字中的每一者都不跨該一個或多個晶粒上SEC碼字中任何一者的中心。
- 根據請求項17所述的方法,其中, 該一個或多個SECDED碼字中的第一個覆蓋該一個或多個晶粒上SEC碼字中的至少一者的前半部; 該一個或多個SECDED碼字中的第二個覆蓋該一個或多個晶粒上SEC碼字中的至少一者的後半部;及 該一個或多個晶粒上SEC碼字中的至少一者的每一者沿該中心被分為該前半部和該後半部。
- 根據請求項18所述的方法,其中,該SECDED ECC是: (256,247)SECDED ECC,用於具有32位元資料介面的該DRAM晶粒;或 (128,120)SECDED ECC,用於具有16位元資料介面的該DRAM晶粒。
- 一種非暫態電腦可讀媒體,其儲存電腦可讀指令,以使在執行時使記憶體控制器執行以下操作: 在動態隨機存取記憶體(DRAM)晶粒內使用糾錯碼(Error Correcting Code, ECC)儲存編碼的資料字,該DRAM晶粒透過記憶體資料匯流排可通訊地耦接該記憶體控制器,該DRAM晶粒包括用於儲存在該DRAM晶粒的資料位元的晶粒上糾錯;及 在讀取該編碼的資料字時,校正並檢測一個或多個錯誤,其中,該一個或多個錯誤是透過該DRAM晶粒或該記憶體資料匯流排的晶粒上糾錯中的至少一者引發。
Applications Claiming Priority (4)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US201962953443P | 2019-12-24 | 2019-12-24 | |
US62/953,443 | 2019-12-24 | ||
US16/816,093 US11611358B2 (en) | 2019-12-24 | 2020-03-11 | Systems and methods for detecting or preventing false detection of three error bits by SEC |
US16/816,093 | 2020-03-11 |
Publications (1)
Publication Number | Publication Date |
---|---|
TW202143242A true TW202143242A (zh) | 2021-11-16 |
Family
ID=76438531
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109145491A TW202143242A (zh) | 2019-12-24 | 2020-12-22 | 單錯校正(sec)檢測或防止錯誤檢測三位元的系統和方法 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11611358B2 (zh) |
CN (1) | CN114868189B (zh) |
TW (1) | TW202143242A (zh) |
WO (1) | WO2021130644A1 (zh) |
Family Cites Families (16)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3697949A (en) * | 1970-12-31 | 1972-10-10 | Ibm | Error correction system for use with a rotational single-error correction, double-error detection hamming code |
JPH0520896A (ja) | 1991-07-16 | 1993-01-29 | Mitsubishi Electric Corp | 半導体記憶装置 |
US7171591B2 (en) * | 2003-12-23 | 2007-01-30 | International Business Machines Corporation | Method and apparatus for encoding special uncorrectable errors in an error correction code |
KR100842680B1 (ko) | 2007-01-08 | 2008-07-01 | 삼성전자주식회사 | 플래시 메모리 장치의 오류 정정 컨트롤러 및 그것을포함하는 메모리 시스템 |
KR20110073932A (ko) | 2009-12-24 | 2011-06-30 | 주식회사 하이닉스반도체 | Ecc 회로를 포함하는 반도체 스토리지 시스템 및 그 제어 방법 |
US8745369B2 (en) | 2011-06-24 | 2014-06-03 | SanDisk Technologies, Inc. | Method and memory system for managing power based on semaphores and timers |
US9443600B2 (en) | 2013-03-28 | 2016-09-13 | Intel Corporation | Auto-suspend and auto-resume operations for a multi-die NAND memory device to reduce peak power consumption |
US20150286529A1 (en) | 2014-04-08 | 2015-10-08 | Micron Technology, Inc. | Memory device having controller with local memory |
US10061645B2 (en) * | 2015-06-30 | 2018-08-28 | Qualcomm Incorporated | Memory array and link error correction in a low power memory sub-system |
US10127101B2 (en) * | 2015-08-28 | 2018-11-13 | Intel Corporation | Memory device error check and scrub mode and error transparency |
US9912355B2 (en) * | 2015-09-25 | 2018-03-06 | Intel Corporation | Distributed concatenated error correction |
US10908995B2 (en) * | 2017-09-29 | 2021-02-02 | Nvidia Corporation | Securing against errors in an error correcting code (ECC) implemented in an automotive system |
US10691533B2 (en) | 2017-12-12 | 2020-06-23 | Micron Technology, Inc. | Error correction code scrub scheme |
KR20200074467A (ko) * | 2018-12-17 | 2020-06-25 | 삼성전자주식회사 | 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템 |
KR20200142213A (ko) * | 2019-06-12 | 2020-12-22 | 삼성전자주식회사 | 반도체 메모리 장치의 에러 정정 회로, 반도체 메모리 장치 및 메모리 시스템 |
US11144391B2 (en) * | 2019-06-13 | 2021-10-12 | Nvidia Corporation | Techniques for generating symbol-preserving error correction codes |
-
2020
- 2020-03-11 US US16/816,093 patent/US11611358B2/en active Active
- 2020-12-19 WO PCT/IB2020/062254 patent/WO2021130644A1/en active Application Filing
- 2020-12-19 CN CN202080090269.7A patent/CN114868189B/zh active Active
- 2020-12-22 TW TW109145491A patent/TW202143242A/zh unknown
Also Published As
Publication number | Publication date |
---|---|
CN114868189A (zh) | 2022-08-05 |
US11611358B2 (en) | 2023-03-21 |
US20210194506A1 (en) | 2021-06-24 |
CN114868189B (zh) | 2023-08-18 |
WO2021130644A1 (en) | 2021-07-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US9772900B2 (en) | Tiered ECC single-chip and double-chip Chipkill scheme | |
US9065481B2 (en) | Bad wordline/array detection in memory | |
US7865804B2 (en) | System and method for enhanced error detection in memory peripherals | |
US4740968A (en) | ECC circuit failure detector/quick word verifier | |
US10769012B2 (en) | Memory with error correction function and an error correction method | |
US20160124803A1 (en) | Storage Device Data Access Method and Storage Device | |
US8276039B2 (en) | Error detection device and methods thereof | |
EP0381885B1 (en) | Method for identifying bad data | |
US8621290B2 (en) | Memory system that supports probalistic component-failure correction with partial-component sparing | |
US8335976B2 (en) | Memory system that provides guaranteed component-failure correction with double-error correction | |
US8255741B2 (en) | Facilitating error detection and correction after a memory component failure | |
US8977944B2 (en) | DRAM address protection | |
EP2787440A1 (en) | Information processing device, program, and method | |
US7089461B2 (en) | Method and apparatus for isolating uncorrectable errors while system continues to run | |
KR102214556B1 (ko) | 메모리 장치 및 모듈 | |
US20130346798A1 (en) | Codeword error injection via checkbit modification | |
US7747926B2 (en) | Methods and apparatus for a memory device with self-healing reference bits | |
US8738989B2 (en) | Method and apparatus for detecting free page and a method and apparatus for decoding error correction code using the method and apparatus for detecting free page | |
US11372720B2 (en) | Systems and methods for encoding metadata | |
TW202143242A (zh) | 單錯校正(sec)檢測或防止錯誤檢測三位元的系統和方法 | |
US20180203625A1 (en) | Storage system with multi-dimensional data protection mechanism and method of operation thereof | |
TW201944426A (zh) | 使用階層式解碼器之誤差校正 | |
US11204832B2 (en) | Detection of a cold boot memory attack in a data processing system | |
US9703625B1 (en) | Method and apparatus for detecting or correcting multi-bit errors in computer memory systems | |
WO2019090657A1 (zh) | 一种存储器容错保护方法、装置、设备及存储介质 |