TWI870985B - 校驗子解碼器電路 - Google Patents
校驗子解碼器電路 Download PDFInfo
- Publication number
- TWI870985B TWI870985B TW112132136A TW112132136A TWI870985B TW I870985 B TWI870985 B TW I870985B TW 112132136 A TW112132136 A TW 112132136A TW 112132136 A TW112132136 A TW 112132136A TW I870985 B TWI870985 B TW I870985B
- Authority
- TW
- Taiwan
- Prior art keywords
- bit
- bits
- correction
- parity
- masks
- Prior art date
Links
- 208000011580 syndromic disease Diseases 0.000 title abstract description 9
- 230000004044 response Effects 0.000 claims description 17
- 238000004364 calculation method Methods 0.000 claims description 10
- 230000001960 triggered effect Effects 0.000 claims description 2
- 238000010586 diagram Methods 0.000 description 4
- 101000827703 Homo sapiens Polyphosphoinositide phosphatase Proteins 0.000 description 2
- 102100023591 Polyphosphoinositide phosphatase Human genes 0.000 description 2
- 101100233916 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) KAR5 gene Proteins 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 101001121408 Homo sapiens L-amino-acid oxidase Proteins 0.000 description 1
- 102100026388 L-amino-acid oxidase Human genes 0.000 description 1
- 101100012902 Saccharomyces cerevisiae (strain ATCC 204508 / S288c) FIG2 gene Proteins 0.000 description 1
- 230000005540 biological transmission Effects 0.000 description 1
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/11—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 using multiple parity bits
-
- 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/11—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 using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1575—Direct decoding, e.g. by a direct determination of the error locator polynomial from syndromes and subsequent analysis or by matrix operations involving syndromes, e.g. for codes with a small minimum Hamming distance
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Algebra (AREA)
- General Physics & Mathematics (AREA)
- Pure & Applied Mathematics (AREA)
- Error Detection And Correction (AREA)
- Detection And Correction Of Errors (AREA)
Abstract
一種校驗子解碼器電路,包括:校驗子計算電路,被配置成接收K個位元的消息位元及P個位元的奇偶性位元以計算S個位元的校驗子位元;X位元權重校正電路,被配置成接收多組校驗子位元的第一數目個位元及K個位元的消息位元的第一數位,以為K個位元的消息位元的第一數位產生第一組校正遮罩;以及X-1位元權重校正電路,被配置成接收多組校驗子位元的第二數目個位元及K個位元的消息位元的第二數位,以為K個位元的消息位元的第二數位產生第二組校正遮罩。第一組校正遮罩與第二組校正遮罩是同時產生的,第一數目不等於第二數目。
Description
本發明是有關於一種實行校驗子解碼的校驗子解碼器電路。
傳統的校驗子解碼器將接收含有消息位元及奇偶性位元的碼字且隨後產生校驗子位元。校驗子位元實質上是錯誤型樣(pattern of errors),從錯誤型樣可識別出錯誤的位元。在典型的方案中,如果所有校驗子位元與預期一致,則碼字中不存在錯誤。
然而,對於傳統的ECC校驗子解碼器來說,隨著消息位元的數目增加,奇偶性位元的數目也可能增加。隨著碼字變大,傳統的校驗子解碼方案可能變得不太實用,這是因為電路面積可能變得相當大且由於錯誤檢查而導致的時間延遲可能相當大。因此,需要一種需要較少輸入的不同的解碼電路以節省電路面積並降低功耗。
本發明提供一種校驗子解碼器,所述校驗子解碼器包括校驗子計算電路,被配置成接收K個位元的消息位元及P個奇偶性位元以計算S個位元的校驗子位元;X位元權重校正電路,被配置成接收多組S個位元的校驗子位元的第一數目個位元及K個位元的消息位元的第一數位,以為K個位元的消息位元的第一數位產生第一組校正遮罩;以及X-1位元權重校正電路,被配置成接收多組S個位元的校驗子位元的第二數目個位元及K個位元的消息位元的第二數位,以為K個位元的消息位元的第二數位產生第二組校正遮罩,其中K、P及S是大於0的整數,K個位元的消息位元的第一數位包括K個位元的消息位元的最高有效位元,且第一組校正遮罩與第二組校正遮罩是同時產生的,其中第一數目不等於第二數目。
本發明另提供一種校驗子解碼器,所述校驗子解碼器包括校驗子計算電路,被配置成接收K個位元的消息位元及P個奇偶性位元以計算S個位元的校驗子位元;X位元權重校正電路,被配置成接收多組S個位元的校驗子位元的第一數目個位元及K個位元的消息位元的第一數位,以產生X-1位元使能信號且為K個位元的消息位元的第一數位產生第一組校正遮罩;以及X-1位元權重校正電路,被配置成接收多組S個位元的校驗子位元的第二數目個位元、K個位元的消息位元的第二數位及X-1位元使能信號,以產生X-2位元使能信號且為K個位元的消息位元的第二數位產生第二組校正遮罩,其中K、P及S是大於0的整數,K個位元的消息位元的第一數位包括K個位元的消息位元的最高有效位元,且第二數目小於第一數目。
圖1示出校驗子編碼器電路101及校驗子解碼器電路102的方塊圖。校驗子編碼器電路101可包括但並非僅限於編碼演算法電路111,編碼演算法電路111接收K個位元的原始消息位元(其中D[0]為最低有效位元且D[K-1]為最高有效位元)以基於已知的產生器演算法產生奇偶性位元P0、P1、…、P
P-1等。K個位元的原始消息位元以及奇偶性位元可作為碼字經由傳送器傳送。碼字可包括K個位元的原始消息位元及附加到K個位元的原始消息位元的末尾的P個位元的奇偶性位元。
當校驗子解碼器電路102接收到碼字時,將利用奇偶性位元對碼字進行解碼,以通過校正碼字中可能存在的錯誤來恢復原始消息位元。詳細來說,在解碼器接收到碼字之後,碼字通常被接收為含有K個位元的消息位元(例如,Din[0]、Din[1]、…Din[K-1])及P個位元的奇偶性位元(例如,P0、P1、…、P
P-1等)的碼字。假設在傳送期間未出現錯誤,則所接收到的碼字的K個位元的消息位元及P個位元的奇偶性位元與所傳送的具有原始消息位元(例如,D[0]、D[1]、…D[K-1])及奇偶性位元(例如,P0、P1、…、P
P-1等)的碼字匹配。
校驗子解碼器電路102可包括校驗子計算電路121、校驗子匹配電路122及資料校正電路123。假設S個位元的校驗子位元的數量等於P個位元的奇偶性位元的數量,校驗子計算電路121將從來自所接收到的碼字的K個位元的消息位元及P個位元的奇偶性位元計算S個位元的校驗子位元(S0、S1、S2、…、S
S-1)。在計算S個位元的校驗子位元之後,校驗子匹配電路122將接收S個位元的校驗子位元以探測一個或多個位元錯誤。基於S個位元的校驗子位元,校驗子匹配電路122將確定一組校正遮罩(包括多個校正遮罩,例如圖2所示的校正遮罩[0]…校正遮罩[K-2]、校正遮罩[K-1]),其中每一校正遮罩與K個位元的消息位元中的每一位元對應。每一校正遮罩將指示對應的K個位元的消息位元中的每一者是否含有錯誤。
資料校正電路123將自校驗子匹配電路122接收來自所述一組校正遮罩的結果以及K個位元的消息位元(例如,Din[0]、Din[1]…Din[K-1])以校正這些消息位元中的一個其對應的校正遮罩已經指示出現位元錯誤的消息位元(如果存在此種位元錯誤)。舉例而言,在圖1中,假設對應於Din[0]的第一校正遮罩131指示不存在錯誤且對應於Din[1]的第二校正遮罩132指示存在錯誤,則資料校正電路123將對Din[1]的二進位值進行翻轉以校正Din[1]。隨後,資料校正電路123將輸出應與原始消息位元相似的K個位元的輸出消息位元(例如,Dout[0]、Dout[1]…Dout[K-1])。
圖2中示出校驗子匹配電路122及資料校正電路123的一個簡單的實作方式。校驗子匹配電路122將包括第一多個邏輯閘201,且第一多個邏輯閘201中的每一者將接收所有的S個位元的校驗子位元。這意味著所有的S個位元的校驗子位元(例如,S0、S1…S
S-1)將輸入到校驗子匹配電路122的第一多個邏輯閘201中的每一者中。校驗子匹配電路122的目的是輸出一組校正遮罩,其中每一校正遮罩指示其對應的位元是否含有錯誤。對於K個位元的消息位元(例如,Din[0]、Din[1]…Din[K-2]、Din[K-1])來說,將存在K個位元的校正遮罩(例如,校正遮罩[0]、校正遮罩[1]…校正遮罩[K-2]、校正遮罩[K-1]),其中Din[0]對應於校正遮罩[0],Din[1]對應於校正遮罩[1],等等。資料校正電路123可包括第二多個邏輯閘202,第二多個邏輯閘202被設計成響應於與輸入消息位元中的一者對應的校正遮罩已經指示錯誤而對輸入消息位元中的所述一者進行翻轉。通過減少校驗子匹配電路122的邏輯閘中的每一者的輸入的數目,可進一步改善校驗子匹配電路122及資料校正電路123的實作方式。
本發明提供不需要將所有的S個位元的校驗子位元輸入到邏輯閘(例如,201)中以將其與K個位元的輸入消息位元中的每一者進行比較的實施例。通過這種方式,電路佈局所需的面積可減小,且計算所需的功耗可減少。在圖3中,對於此示例性實施例來說,所述電路可包括X位元權重校正電路、X-1位元權重校正電路、X-2位元權重校正電路等等。所有上述權重校正電路將同時實行權重校正。假設X=4作為實例,則4個位元的權重校正電路可包括與校驗子匹配電路122的一部分對應的第一多個及閘(AND gate)301及與資料校正電路123的一部分對應的多個異或閘(XOR gate)312,且第一多個及閘301中的每一者將接收第一數目的校驗子位元304。當消息位元Din[K-M]至Din[K-1]不存在錯誤時,第一數目的校驗子位元304的二進位值為0或1,預期為不全部為1。第一數目的校驗子位元304的數量是4個位元。這意味著一般來說第一多個及閘301中的每一者將接收4個位元的輸入。舉例來說,可以從S個位元的校驗子位元選擇4個位元的值可為1的校驗子位元,來定義成4個位元的校驗子位元304。第一多個及閘301中的每一者也將輸出從校正遮罩[K-M]到校正遮罩[K-1]的對應的校正遮罩以校正輸入消息位元中對應的位元。當消息位元Din[K-M]至Din[K-1]不存在錯誤時,第一多個及閘301中的每一者預期輸出二進位值0作為第一組校正遮罩中的校正遮罩[K-M]及[K-1]的值。
如圖3所示,在第一多個及閘301中,及閘311將接收4個二進位值的輸入且因此輸出校正遮罩[K-1]。如果校正遮罩[K-1]是0,則意味著恰好為最高有效位元的Din[K-1]不具有任何錯誤。然而,假設校正遮罩[K-1]是1,則校正遮罩[K-1]將對Din[K-1]的值進行翻轉。作為資料校正電路123的一部分的異或閘(XOR gate)312將接收校正遮罩[K-1]及Din[K-1]。根據接收第一輸入及第二輸入的任何典型異或閘的真值表(truth table),第一輸入的值1將使第二輸入的值翻轉。這意味著每當校正遮罩[K-1]的值為1時,異或閘312將通過對Din[K-1]的二進位值進行翻轉來產生Dout[K-1]。同一原理也適用於圖3中的所有異或閘。
此外,X-1位元權重校正電路可包括與校驗子匹配電路122的一部分對應的第二多個及閘302,第二多個及閘302中的每一者將接收第二數目的校驗子位元305,第二數目的校驗子位元305可為6個位元、7個位元或8個位元的校驗子位元,且當消息位元Din[K-N]至Din[K-M-1]不存在錯誤時,第二數目的校驗子位元305的二進位值預期為0或1。對於第二多個及閘302中的每一者來說,輸入位元中的三者不會被反相,而其餘的輸入位元會被反相。第二多個及閘302中的每一者可具有經反相而作為不同組的輸入位元。反相的確切設計可視所利用的特定解碼演算法而變化。然而,相似於第一多個及閘301,第二多個及閘302的目的也是每當對應的輸入位元具有錯誤時產生具有二進位值1的校正遮罩。此外,當消息位元Din[K-N]至Din[K-M-1]不存在錯誤時,第二多個及閘302預期輸出二進位值0作為第二組校正遮罩中的校正遮罩[K-N]及[K-M-1]的值。
此外,X-2位元權重校正電路可包括與校驗子匹配電路122的一部分對應的第三多個及閘303,第三多個及閘303中的每一者將接收第三數目的校驗子位元306,第三數目的校驗子位元306可為所有的S個位元的校驗子位元,且當消息位元Din[0]至Din[K-N-1]不存在錯誤時,第三數目的校驗子位元306的二進位值預期為0或1。對於第三多個及閘303中的每一者來說,輸入位元中的兩者不會被反相,而其餘的輸入位元會被反相。第三及閘303中的每一者可具有經反相而作為不同組的輸入位元。反相的確切設計可視所使用的特定解碼演算法而變化。然而,相似於第一多個及閘301及第二多個及閘302,第三多個及閘303的目的也是每當對應的輸入位元具有錯誤時產生具有二進位值1的校正遮罩。此外,當消息位元Din[0]至Din[K-N-1]不存在錯誤時,第三多個及閘303預期輸出二進位值0作為第三組校正遮罩中的校正遮罩[0]及[K-N-1]的值。
根據另一示例性實施例,代替同時實行所有權重校正計算,權重校正計算可分幾個階段實行。圖4示出基於連續位元權重校正電路的校驗子匹配電路122及資料校正電路123的實施例。所述電路具有Y個級(Y例如為3),包括X位元權重校正電路、X-1位元權重校正電路及X-2位元權重校正電路。
參考圖4,X位元權重校正電路401被配置成接收第一數目的校驗子位元404及K個位元的消息位元Din[0]至Din[K-1]中的連續多個位元的第一連續數位411(例如包括消息位元Din[K-M]至Din[K-1]),以產生X-1位元權重校正電路的使能信號451及第一組校正遮罩412。假設X=4,則4個位元的權重校正電路401將接收為4個的第一數目個位元,以校正K個位元的消息位元Din[0]至Din[K-1]中的第一連續數位411。假設K=128,則消息位元將具有128個位元。假設第一連續數位411的位元數是16,則4個位元的權重校正電路401將校正消息位元中的前16個位元,且所述16個位元中的第一位元是最高有效位元。假設未探測到位元錯誤,則X位元權重校正電路401將輸出邏輯0的使能信號451以對X-1位元權重校正電路402進行使能且輸出對應於第一連續數位411的第一組校正遮罩412。
接下來,X-1位元權重校正電路402將被配置成接收第二數目的校驗子位元405、K個位元的消息位元Din[0]至Din[K-1]中的連續多個位元的第二連續數位421(例如包括消息位元Din[K-N]至Din[K-M-1])及使能信號451,以產生X-2位元權重校正電路的使能信號452及第二組校正遮罩422。第二連續數位421是緊接在第一連續數位411之後的數位且不與第一連續數位411重疊。X-1位元權重校正電路402被配置成校正第二連續數位421內的位元中的一者。假設未探測到位元錯誤,則X-1位元權重校正電路402將輸出邏輯0的使能信號452以對X-2位元權重校正電路403進行使能且輸出對應於第二連續數位421的第二組校正遮罩422。
接下來,X-2位元權重校正電路403被配置成接收第三數目的校驗子位元406及K個位元的消息位元Din[0]至Din[K-1]中的連續多個位元的第三連續數位431(例如包括消息位元Din[0]至Din[K-N-1])及使能信號452,以產生第三組校正遮罩432,其中K個位元的消息位元Din[0]至Din[K-1]中的第三連續數位431可包括K個位元的消息位元的最低有效位元。S個位元的校驗子位元的第三數目個位元可為X-2個位元(例如2個位元)。第三連續數位431是緊接在第二連續數位421之後的數位且不與第二連續數位421重疊。X-2位元權重校正電路403被配置成校正第三連續數位431內的位元中的一者。隨後,X-2位元權重校正電路403將輸出對應於第三連續數位431的第三組校正遮罩432。
此外,X位元權重校正電路401被配置成校正K個位元的消息位元的第一連續數位411中的對應的一者,且響應於第一組校正遮罩412中的一個校正遮罩已經被探測到而觸發使能信號451轉變邏輯準位(轉變為邏輯1),以對X-1位元權重校正電路402進行去能。另一方面,響應於邏輯0的使能信號451已經對X-1位元權重校正電路402進行使能,X-1位元權重校正電路402將被配置成校正K個位元的消息位元的第二連續數位421中的對應的一者,且響應於第二組校正遮罩422中的一個校正遮罩已經被探測到而觸發X-2位元使能信號452轉變邏輯準位(轉變為邏輯1),以對X-2位元權重校正電路403進行去能。相似地,響應於X-2位元權重校正電路的使能信號452已經對X-2位元權重校正電路403進行使能,X-2位元權重校正電路403將被配置成校正K個位元的消息位元的第三連續數位431中的對應的一者。
在圖5中更詳細地描述了圖4所示電路。圖5示出X位元權重校正電路501(即,401)、X-1位元權重校正電路502(即,402)及X-2位元權重校正電路503(即,403)的一種可能的實作方式。對於X位元權重校正電路501來說,所述結構與圖3相同,其中及閘521對應於及閘311且異或閘522對應於異或閘312,及閘521中的每一者將接收第一數目的校驗子位元591,因此不再重複原理操作。
X-1位元權重校正電路502包括多個反及閘(NAND gate)531,且反及閘中的每一者將接收第二數目的校驗子位元592,且對於X-1位元權重校正電路502的輸入中的每一者來說,存在位於反及閘531與異或閘533之間的反或閘(NOR gate)532。反或閘532的目的是接收W4_ERR信號511,W4_ERR信號511響應於X位元權重校正電路501已經探測到錯誤而對X-1位元權重校正電路502進行去能。W4_ERR信號511與前面在圖4中描述的X-1位元權重校正電路的使能信號451相同。W4_ERR信號511是從第一或閘594輸出,第一或閘594接收從校正遮罩[K-M]、校正遮罩[K-2]、校正遮罩[K-1]的所有校正遮罩。這意味著如果校正遮罩中的任一者具有二進位值1,則W4_ERR信號511也具有二進位值1,這會使校正遮罩的作用無效從而導致反或閘532的輸出為0。
X-2位元權重校正電路503包括多個反及閘541且反及閘中的每一者將接收第三數目的校驗子位元593。對於X-2位權重校驗子位元輸入中的每一者來說,存在位於反及閘541與異或閘543之間的反或閘542。反或閘542的目的是接收W4_ERR信號511以及W3_ERR信號512,W4_ERR信號511及W3_ERR信號512分別響應於X位元權重校正電路501及X-1位元權重校正電路502已經探測到錯誤而對X-2位元權重校正電路503進行去能。W3_ERR信號512與前面在圖4中描述的X-2位元權重校正電路的使能信號452相同。W3_ERR信號512是從第二或閘596輸出,第二或閘596接收從校正遮罩[K-N]、校正遮罩[K-M-2]、校正遮罩[K-M-1]的所有校正遮罩。這意味著如果校正遮罩中的任一者具有二進位值1,則W3_ERR信號512也具有二進位值1,這會使校正遮罩的作用無效從而導致反或閘542的輸出為0。這意味著如果X位元權重校正電路501或X-1位元權重校正電路502已經探測到錯誤,則X-2位元權重校正電路503將不會校正任何位元錯誤。
本發明提供具有如圖6所示的校驗子解碼器電路602的記憶體裝置600。對於典型的記憶體裝置(例如,600)來說,校驗子解碼器電路(例如,602)可被實施為記憶體控制器601的一部分。然而,校驗子解碼器電路也可被實施為記憶體裝置的其他部分中的元件或者需要校正位元錯誤的任何其他電子裝置中的元件。記憶體裝置600可包括但並非僅限於電連接到記憶庫(memory bank)604及輸入/輸出(intput/output,I/O)介面603的記憶體控制器601。I/O介面603被配置成接收可為所接收到的用於儲存的碼字的形式的資料且被配置傳送已經儲存在記憶庫604中的資料。記憶庫604被配置成以非易失性方式儲存資料。記憶體控制器601被配置成控制I/O介面603及記憶庫604且包括校驗子解碼器電路602。已對校驗子解碼器電路602的細節進行了闡述且因此不必再進行重複贅述。
綜上所述,本發明適用於具有需要較少的電路面積且能夠以降低的功耗來糾錯的解碼器的任何記憶體裝置。
101:校驗子編碼器電路
102:校驗子解碼器電路
111:編碼演算法電路
121:校驗子計算電路
122:校驗子匹配電路
123:資料校正電路
131:第一校正遮罩
132:第二校正遮罩
201:第一多個邏輯閘
202:第二多個邏輯閘
301:第一多個及閘
302:第二多個及閘
303:第三多個及閘
311、521:及閘
312、522、533、543:異或閘
401:X位元權重校正電路
402、502:X-1位元權重校正電路
403、503:X-2位元權重校正電路
404:第一數目個位元
405:第二數目個位元
406:第三數目個位元
411:第一連續數位
412:第一組校正遮罩
421:第二連續數位
422:第二組校正遮罩
431:第三連續數位
432:第三組校正遮罩
451、452:使能信號
501:X位元權重校正電路
511:W4_ERR信號
512:W3_ERR信號
531、541:反及閘
532、542:反或閘
591:第一數目的校驗子位元
592:第二數目的校驗子位元
593:第三數目的校驗子位元
594:第一或閘
596:第二或閘
600:記憶體裝置
601:記憶體控制器
602:校驗子解碼器電路
603:輸入/輸出(I/O)介面
604:記憶庫
[0]、[1]~[K-2]、[K-1]、[K-M-2]、[K-M-1]、[K-M]、[K-N-1]、[K-N]:校正遮罩
D[0]、D[1]~D[K-2]、D[K-1]:原始消息位元
Din[0]、Din[1]~Din[K-2]、Din[K-1]、Din[K-M-1]、Din[K-M]、Din[K-N-1]、Din[K-N]:消息位元
Dout[0]、Dout[1]~Dout[K-2]、Dout[K-1]、Dout[K-M-1]、Dout[K-M]、Dout[K-N-1]、Dout[K-N]:輸出消息位元
304、305、306、S0、S1、S2~S
S-1:校驗子位元
P0、P1~P
P-1:奇偶性位元
圖1示出根據本發明示例性實施例的校驗子編碼器電路及校驗子解碼器電路的方塊圖。
圖2示出根據本發明示例性實施例的校驗子匹配電路及資料校正電路的實作方式。
圖3示出根據本發明第一示例性實施例的X位元權重校正電路的硬體圖。
圖4示出根據本發明第二示例性實施例的X位元權重校正電路。
圖5示出根據本發明第二示例性實施例的X位元權重校正電路的硬體圖。
圖6示出根據本發明示例性實施例的具有校驗子編碼器電路的記憶體裝置。
301:第一多個及閘
302:第二多個及閘
303:第三多個及閘
304、305、306:校驗子位元
311:及閘
312:異或閘
[0]、[K-1]、[K-M-1]、[K-M]、[K-N-1]、[K-N]:校正遮罩
Din[0]、Din[K-1]、Din[K-M-1]、Din[K-M]、Din[K-N-1]、Din[K-N]:消息位元
Dout[0]、Dout[K-1]、Dout[K-M-1]、Dout[K-M]、Dout[K-N-1]、Dout[K-N]:輸出消息位元
Claims (19)
- 一種校驗子解碼器電路,包括:校驗子計算電路,被配置成接收K個位元的消息位元及P個位元的奇偶性位元以計算S個位元的校驗子位元,X位元權重校正電路,被配置成接收多組所述S個位元的校驗子位元的第一數目個位元及所述K個位元的消息位元的第一數位,以為所述K個位元的消息位元的所述第一數位產生第一組校正遮罩,以及X-1位元權重校正電路,被配置成接收多組所述S個位元的校驗子位元的第二數目個位元及所述K個位元的消息位元的第二數位,以為所述K個位元的消息位元的所述第二數位產生第二組校正遮罩,其中K、P及S是大於0的整數,所述K個位元的消息位元的所述第一數位包括所述K個位元的消息位元的最高有效位元,且所述第一組校正遮罩與所述第二組校正遮罩是同時產生的,其中所述第一數目不等於所述第二數目。
- 如請求項1所述的校驗子解碼器電路,還包括:X-2位元權重校正電路,被配置成接收多組所述S個位元的校驗子位元的第三數目個位元及所述K個位元的消息位元的第三數位,以為所述K個位元的消息位元的所述第三數位產生第三組校正遮罩,其中所述K個位元的消息位元的所述第三數位包括所述K個位元的消息位元的最低有效位元且所述第三組校正遮罩是 與所述第一組校正遮罩及所述第二組校正遮罩同時產生的,其中所述第三數目不等於所述第二數目。
- 如請求項1所述的校驗子解碼器電路,其中所述X位元權重校正電路包括第一多個及閘,所述第一多個及閘中的每一者被配置成接收所述S個位元的校驗子位元的第一數目個校驗子位元且輸出所述第一組校正遮罩中對應的校正遮罩,所述第一組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第一數位中的位元對應,其中所述第一數目個校驗子位元的二進位值為為0或1,所述第一數目個校驗子位元是從所述S個位元的校驗子位元中所選擇的4個位元的值可為1的校驗子位元。
- 如請求項1所述的校驗子解碼器電路,其中所述X-1位元權重校正電路包括第二多個及閘,所述第二多個及閘中的每一者被配置成接收所述S個位元的校驗子位元的第二數目個校驗子位元且輸出所述第二組校正遮罩中對應的校正遮罩,所述第二組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第二數位中的位元對應,其中所述第二多個及閘中的每一者的X-1個輸入不具有反相器,而所述第二多個及閘中的每一者的其餘輸入具有反相器,所述第二數目個校驗子位元的二進位值為0或1。
- 如請求項2所述的校驗子解碼器電路,其中所述X-2位元權重校正電路包括第三多個及閘,所述第三多個及閘中的每 一者被配置成接收所述S個位元的校驗子位元的第三數目個校驗子位元且輸出所述第三組校正遮罩中對應的校正遮罩,所述第三組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第三數位中的位元對應,其中所述第三多個及閘中的每一者的X-2個輸入不具有反相器,而所述第三多個及閘中的每一者的其餘輸入具有反相器,所述第三數目個校驗子位元的二進位值為0或1。
- 如請求項1所述的校驗子解碼器電路,其中所述第一組校正遮罩中的每一者輸出到被配置成響應於所述第一組校正遮罩中的對應一者指示錯誤而對所述K個位元的消息位元的所述第一數位中的對應一者進行翻轉的異或閘,所述第二組校正遮罩中的每一者輸出到被配置成響應於所述第二組校正遮罩中的對應一者指示錯誤而對所述K個位元的消息位元的所述第二數位中的對應一者進行翻轉的異或閘。
- 如請求項2所述的校驗子解碼器電路,其中X是4,所述S個位元的校驗子位元的所述第一數目個位元是4,所述S個位元的校驗子位元的所述第二數目個位元是6、7或8,且所述S個位元的校驗子位元的所述第三數目個位元是8。
- 一種校驗子解碼器電路,包括:校驗子計算電路,被配置成接收K個位元的消息位元及P個奇偶性位元以計算S個位元的校驗子位元,X位元權重校正電路,被配置成接收多組所述S個位元的校 驗子位元的第一數目個位元及所述K個位元的消息位元的第一數位,以產生X-1位元使能信號且為所述K個位元的消息位元的所述第一數位產生第一組校正遮罩,以及X-1位元權重校正電路,被配置成接收多組所述S個位元的校驗子位元的第二數目個位元、所述K個位元的消息位元的第二數位及所述X-1位元使能信號,以產生X-2位元使能信號且為所述K個位元的消息位元的所述第二數位產生第二組校正遮罩,其中K、P及S是大於0的整數,所述K個位元的消息位元的所述第一數位包括所述K個位元的消息位元的最高有效位元,且所述第二數目小於所述第一數目。
- 如請求項8所述的校驗子解碼器電路,還包括:X-2位元權重校正電路,被配置成接收多組所述S個位元的校驗子位元的第三數目個位元及所述K個位元的消息位元的第三數位,以為所述K個位元的消息位元的所述第三數位產生第三組校正遮罩,其中所述K個位元的消息位元的所述第三數位包括所述K個位元的消息位元的最低有效位元且所述S個位元的校驗子位元的所述第三數目個位元小於所述S個位元的校驗子位元的所述第二數目個位元。
- 如請求項9所述的校驗子解碼器電路,其中所述X位元權重校正電路被配置成校正所述K個位元的消息位元的第一數字中的對應的一者,且響應於所述第一組校正遮罩中的一個校 正遮罩已經被探測到而觸發所述X-1位元使能信號轉變邏輯準位,以對所述X-1位元權重校正電路進行去能。
- 如請求項10所述的校驗子解碼器電路,其中響應於所述X-1位元使能信號已經對所述X-1位元權重校正電路進行使能,所述X-1位元權重校正電路被配置成校正所述K個位元的消息位元的第二數字中的對應的一者,且響應於所述第二組校正遮罩中的一個校正遮罩已經被探測到而觸發所述X-2位元使能信號轉變邏輯準位,以對所述X-2位元權重校正電路進行去能。
- 如請求項11所述的校驗子解碼器電路,其中響應於所述X-2位元使能信號已經對所述X-2位元權重校正電路進行使能,所述X-2位元權重校正電路被配置成校正所述K個位元的消息位元的所述第三數位中的對應的一者。
- 如請求項8所述的校驗子解碼器電路,其中所述X位元權重校正電路包括第一多個及閘,所述第一多個及閘中的每一者被配置成接收所述S個位元的校驗子位元的第一數目個校驗子位元且輸出所述第一組校正遮罩中對應的校正遮罩,所述第一組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第一數位中位元對應。
- 如請求項13所述的校驗子解碼器電路,其中所述X-1位元權重校正電路包括第二多個及閘,所述第二多個及閘中的每一者被配置成接收所述S個位元的校驗子位元的第二數目個校驗子位元且輸出所述第二組校正遮罩中對應的校正遮罩,所述第 二組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第二數位中的位元對應。
- 如請求項9所述的校驗子解碼器電路,其中所述X-2位元權重校正電路包括第三多個及閘,所述第三多個及閘中的每一者被配置成接收所述S個位元的校驗子位元的第三數目個校驗子位元且輸出所述第三組校正遮罩中對應的校正遮罩,所述第三組校正遮罩所包含的多個校正遮罩各自與所述K個位元的消息位元的所述第三數位中的位元對應。
- 如請求項8所述的校驗子解碼器電路,其中所述第一組校正遮罩中的每一者輸出到被配置成響應於所述第一組校正遮罩中的對應一者指示錯誤而對所述K個位元的消息位元的所述第一數位中的對應一者進行翻轉的異或閘。
- 如請求項16所述的校驗子解碼器電路,其中所述第二組校正遮罩中的每一者輸出到被配置成響應於所述第二組校正遮罩中的對應一者指示錯誤且響應於所述X-1位元使能信號已經對所述X-1位元權重校正電路進行使能而對所述K個位元的消息位元的所述第二數位中的對應一者進行翻轉的異或閘。
- 如請求項9所述的校驗子解碼器電路,其中所述第三組校正遮罩中的每一者輸出到被配置成響應於所述第三組校正遮罩中的對應一者指示錯誤且響應於所述X-1位元使能信號已經對所述X-1位元權重校正電路進行使能且所述X-2位元使能信號 已經對所述X-2位元權重校正電路進行使能而對所述K個位元的消息位元的所述第三數位中的對應一者進行翻轉的異或閘。
- 如請求項8所述的校驗子解碼器電路,其中所述第一組校正遮罩全部輸出到產生所述X-1位元使能信號的第一或閘,且所述第二組校正遮罩全部輸出到產生所述X-2位元使能信號的第二或閘。
Applications Claiming Priority (2)
| Application Number | Priority Date | Filing Date | Title |
|---|---|---|---|
| US18/358,972 US12212338B1 (en) | 2023-07-26 | 2023-07-26 | Syndrome decoder circuit |
| US18/358,972 | 2023-07-26 |
Publications (2)
| Publication Number | Publication Date |
|---|---|
| TWI870985B true TWI870985B (zh) | 2025-01-21 |
| TW202505879A TW202505879A (zh) | 2025-02-01 |
Family
ID=94327504
Family Applications (1)
| Application Number | Title | Priority Date | Filing Date |
|---|---|---|---|
| TW112132136A TWI870985B (zh) | 2023-07-26 | 2023-08-25 | 校驗子解碼器電路 |
Country Status (3)
| Country | Link |
|---|---|
| US (1) | US12212338B1 (zh) |
| CN (1) | CN119382719A (zh) |
| TW (1) | TWI870985B (zh) |
Families Citing this family (1)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US12450119B2 (en) * | 2023-12-08 | 2025-10-21 | Western Digital Technologies, Inc. | Minimizing redundancy for stuck bit coding |
Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070136647A1 (en) * | 2005-11-30 | 2007-06-14 | Kabushiki Kaisha Toshiba | Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method |
| US9311206B2 (en) * | 2014-04-15 | 2016-04-12 | Freescale Semiconductor, Inc. | Method and apparatus for monitoring general purpose input output, GPIO, signals |
| US20190018732A1 (en) * | 2017-07-13 | 2019-01-17 | Omnivision Technologies, Inc. | Memory with pattern oriented error correction code |
Family Cites Families (11)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| FR2533091A1 (fr) * | 1982-09-13 | 1984-03-16 | Cii Honeywell Bull | Systeme de detection et de correction d'erreurs de transmission d'un message binaire utilisant un code cyclique detecteur et correcteur d'erreurs de type reed-solomon entrelace |
| EP2294510B1 (en) | 2008-06-24 | 2011-12-28 | SanDisk IL Ltd. | Method and apparatus for error correction according to erase counts of a solid-state memory |
| US8374098B2 (en) * | 2009-11-03 | 2013-02-12 | Arm Limited | Check data encoding using parallel lane encoders |
| US9450613B2 (en) * | 2010-11-10 | 2016-09-20 | Infineon Technologies Ag | Apparatus and method for error correction and error detection |
| GB201114831D0 (en) * | 2011-08-26 | 2011-10-12 | Univ Oxford Brookes | Circuit with error correction |
| US9588840B2 (en) * | 2013-04-18 | 2017-03-07 | Samsung Electronics Co., Ltd. | Memory devices that perform masked write operations and methods of operating the same |
| US10290353B2 (en) * | 2016-09-06 | 2019-05-14 | Western Digital Technologies, Inc. | Error mitigation for 3D NAND flash memory |
| US11315654B2 (en) * | 2018-10-03 | 2022-04-26 | Arm Limited | Memory testing techniques |
| US10795767B2 (en) | 2018-12-26 | 2020-10-06 | M31 Technology Corporation | Error correcting system shared by multiple memory devices |
| US10853167B2 (en) | 2019-01-28 | 2020-12-01 | Winbond Electronics Corp. | Memory apparatus having hierarchical error correction code layer |
| US11587637B1 (en) * | 2021-08-19 | 2023-02-21 | Micron Technology, Inc. | Apparatuses, systems, and methods for error correction of selected bit pairs |
-
2023
- 2023-07-26 US US18/358,972 patent/US12212338B1/en active Active
- 2023-08-25 TW TW112132136A patent/TWI870985B/zh active
- 2023-08-29 CN CN202311095142.6A patent/CN119382719A/zh active Pending
Patent Citations (3)
| Publication number | Priority date | Publication date | Assignee | Title |
|---|---|---|---|---|
| US20070136647A1 (en) * | 2005-11-30 | 2007-06-14 | Kabushiki Kaisha Toshiba | Access control apparatus, access control system, processor, access control method, memory access control apparatus, memory access control system, and memory access control method |
| US9311206B2 (en) * | 2014-04-15 | 2016-04-12 | Freescale Semiconductor, Inc. | Method and apparatus for monitoring general purpose input output, GPIO, signals |
| US20190018732A1 (en) * | 2017-07-13 | 2019-01-17 | Omnivision Technologies, Inc. | Memory with pattern oriented error correction code |
Also Published As
| Publication number | Publication date |
|---|---|
| US12212338B1 (en) | 2025-01-28 |
| US20250038769A1 (en) | 2025-01-30 |
| CN119382719A (zh) | 2025-01-28 |
| TW202505879A (zh) | 2025-02-01 |
Similar Documents
| Publication | Publication Date | Title |
|---|---|---|
| KR100210583B1 (ko) | 에러정정 부호화 복호화 방법 및 이 방법을 사용하는 회로 | |
| KR100856129B1 (ko) | 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치 | |
| JP4036338B2 (ja) | 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置 | |
| JP5043562B2 (ja) | エラー訂正回路、その方法及び前記回路を備える半導体メモリ装置 | |
| Bossen | b-Adjacent error correction | |
| US8812940B2 (en) | Programmable error correction capability for BCH codes | |
| US5440570A (en) | Real-time binary BCH decoder | |
| US9450615B2 (en) | Multi-bit error correction method and apparatus based on a BCH code and memory system | |
| US4961193A (en) | Extended errors correcting device having single package error correcting and double package error detecting codes | |
| JPH0831806B2 (ja) | エラー訂正方法 | |
| US20200083907A1 (en) | Methods and apparatus to determine and apply polarity-based error correction code | |
| TWI870985B (zh) | 校驗子解碼器電路 | |
| US7093183B2 (en) | Symbol level error correction codes which protect against memory chip and bus line failures | |
| JP2012050008A (ja) | 誤り検出訂正方法および半導体メモリ装置 | |
| JPWO2013027483A1 (ja) | 誤り訂正復号装置 | |
| US5974582A (en) | High-speed chien search logic | |
| CN108628698B (zh) | 计算crc编码的方法和装置 | |
| US6405339B1 (en) | Parallelized programmable encoder/syndrome generator | |
| US5943348A (en) | Method to check for burst limiting in error correcting systems | |
| US20030041300A1 (en) | Universal device for processing Reed-Solomon forward error-correction encoded messages | |
| CN107077402B (zh) | 码字生成方法、错误位确定方法及其电路 | |
| JP3743915B2 (ja) | スポッティバイト誤り訂正・検出方法及び装置 | |
| RU2297032C2 (ru) | Самокорректирующееся запоминающее устройство | |
| JPH0656586B2 (ja) | データ処理装置 | |
| Faraj | Design error detection and correction system based on Reed-Muller matrix for memory protection |