TWI782215B - 減少多位元錯誤校正碼的邏輯的系統與方法 - Google Patents

減少多位元錯誤校正碼的邏輯的系統與方法 Download PDF

Info

Publication number
TWI782215B
TWI782215B TW108122451A TW108122451A TWI782215B TW I782215 B TWI782215 B TW I782215B TW 108122451 A TW108122451 A TW 108122451A TW 108122451 A TW108122451 A TW 108122451A TW I782215 B TWI782215 B TW I782215B
Authority
TW
Taiwan
Prior art keywords
matrix
columns
error correction
error
correction circuit
Prior art date
Application number
TW108122451A
Other languages
English (en)
Other versions
TW202036288A (zh
Inventor
呂士濂
Original Assignee
台灣積體電路製造股份有限公司
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 台灣積體電路製造股份有限公司 filed Critical 台灣積體電路製造股份有限公司
Publication of TW202036288A publication Critical patent/TW202036288A/zh
Application granted granted Critical
Publication of TWI782215B publication Critical patent/TWI782215B/zh

Links

Images

Classifications

    • 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/1068Adding 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 sector programmable memories, e.g. flash disk
    • 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/1048Adding 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
    • 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
    • G11INFORMATION STORAGE
    • G11CSTATIC STORES
    • G11C29/00Checking stores for correct operation ; Subsequent repair; Testing stores during standby or offline operation
    • G11C29/52Protection of memory contents; Detection of errors in memory contents
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/152Bose-Chaudhuri-Hocquenghem [BCH] codes
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error 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/13Linear codes
    • H03M13/15Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
    • H03M13/151Cyclic 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/1575Direct 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/61Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
    • H03M13/615Use of computational or mathematical techniques
    • H03M13/616Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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

  • Physics & Mathematics (AREA)
  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Algebra (AREA)
  • Computing Systems (AREA)
  • Quality & Reliability (AREA)
  • General Engineering & Computer Science (AREA)
  • Detection And Correction Of Errors (AREA)
  • Techniques For Improving Reliability Of Storages (AREA)
  • Error Detection And Correction (AREA)
  • For Increasing The Reliability Of Semiconductor Memories (AREA)

Abstract

根據本發明的一些實施例,一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法包含:建構一G矩陣;將該G矩陣變換成一系統形式,該經變換G矩陣由一P矩陣及一H矩陣構成;根據列重量對該P矩陣之列進行排序;鑑於一校正強度及資料位元之數目判定待截斷之該P矩陣中之列之數目;藉由截斷該P矩陣之具有第一列重量之該等經排序列且保持該P矩陣之具有第二列重量之該等經排序列而產生一截斷P矩陣;及根據該截斷P矩陣形成該錯誤校正電路以校正該碼字之該錯誤;其中該等第一列重量大於該等第二列重量。

Description

減少多位元錯誤校正碼的邏輯的系統與方法
本發明實施例係有關減少多位元錯誤校正碼的邏輯的系統與方法。
錯誤校正碼(ECC)用於許多應用中。普遍應用之一者係偵測並校正記憶體中之位元錯誤。隨著積極的技術擴展、供應電壓之降低及諸如磁阻隨機存取記憶體(MRAM)及電阻式RAM (ReRAM)之新興記憶體技術之發展,對ECC邏輯之有效實施再次產生興趣。
本發明的一實施例係關於一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法,其包括:建構一產生矩陣(generation matrix)(G矩陣);將該G矩陣變換成一系統形式,其中該變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量對該P矩陣之列進行排序;鑑於一校正強度及一資料位元數目而判定待截斷之該P矩陣中之列之一數目;藉由截斷該P矩陣之具有第一列重量之該等經排序列且保持該P矩陣之具有第二列重量之該等經排序列而產生一截斷P矩陣;及根據該截斷P矩陣形成該錯誤校正電路以校正該碼字之該錯誤;其中該等第一列重量大於該等第二列重量。
本發明的一實施例係關於一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包括:在給定一t位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,其中該變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量依一升序對該P矩陣之列進行排序;判定待截斷之該P矩陣中之列之數目;判定該等經排序列之前x個群組具有小於資料位元之數目k×q之列重量之一總和,q小於第x+1個群組之列重量;針對該第x+1個群組中之該等列,判定每一經組合t個列之列重量之一總和;及根據待截斷之該P矩陣形成該錯誤校正電路以用於判定該碼字之該錯誤。
本發明的一實施例係關於一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包括:在給定一t位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;藉由使用該H矩陣而產生一所擷取資料位元向量之一校正子(syndrome);組合該P矩陣之u個列,u係不大於t之一自然數;在經組合u個列匹配該校正子時判定該錯誤;及根據該校正子形成該錯誤校正電路以用於校正該碼字之該錯誤。
以下揭露提供用於實施所提供標的之不同構件之許多不同實施例或實例。下文描述組件及配置之特定實例以簡化本揭露。當然,此等僅為實例且非意欲限制。舉例而言,在以下描述中之一第一構件形成於一第二構件上方或上可包含其中該第一構件及該第二構件經形成直接接觸之實施例,且亦可包含其中額外構件可形成在該第一構件與該第二構件之間,使得該第一構件及該第二構件可不直接接觸之實施例。另外,本揭露可在各個實例中重複參考數字及/或字母。此重複出於簡化及清楚之目的且本身不指示所論述之各個實施例及/或組態之間之一關係。
此外,為便於描述,諸如「在…下面」、「在…下方」、「下」、「在…上方」、「上」及類似者之空間相對術語可在本文中用於描述一個元件或構件與另一(些)元件或構件之關係,如圖中圖解說明。空間相對術語意欲涵蓋除在圖中描繪之定向以外之使用或操作中之裝置之不同定向。設備可以其他方式定向(旋轉90度或按其他定向)且因此可同樣解釋本文中使用之空間相對描述符。
在各項實施例中,本揭露提供一種藉由使用系統檢查矩陣減少實施多位元錯誤校正碼所需之邏輯的方法。再者,本揭露提供一種定位一多位元碼中之錯誤位元之方法。
錯誤校正碼(ECC)用於許多場合。ECC之應用之一者係偵測並校正半導體記憶體中之錯誤。使用ECC來保護記憶體之一般方案係藉由將冗餘檢查位元添加至半導體記憶體之資料位元。此等額外檢查位元擴展兩個有效碼字之間之距離。舉例而言,距離可係有效碼字與無效碼字之間之位元數。廣泛使用之一常見ECC集合稱為博斯-喬赫里-霍昆格姆(BCH)碼。廣泛用於現代記憶體中之BCH碼係在一有限域(伽羅瓦域)內使用多項式建構之循環錯誤校正碼之一類別。BCH碼之一優勢係在碼設計期間,對可由碼校正之符號錯誤之數目存在精確控制。符號可係具有一預定位元數或大小之一資料區塊。特定言之,可設計可校正多個位元錯誤之二進制BCH碼。BCH碼之另一優勢係可容易對其等進行解碼,即,經由稱為校正子解碼之一代數方法。此簡化使用硬體之解碼器之設計。運用BCH碼,可藉由使用使用所設計碼之多項式建構之「產生矩陣」(G矩陣)及「檢查矩陣」(H矩陣)表示檢查位元及校正子位元之產生。
圖1係圖解說明根據一些實施例之具有BCH碼方案之一記憶體系統100之一圖式。記憶體系統100包括一記憶體102及一錯誤校正電路(或一處理器) 104。記憶體102經配置以儲存藉由BCH碼進行編碼之碼字。可為一解碼器或一編碼器之錯誤校正電路104經耦合至記憶體102以用於校正自記憶體讀取之一碼字中之至少一個錯誤。可藉由耦合至記憶體102及錯誤校正電路104之一控制器而自記憶體102讀出碼字。為簡潔起見,圖1中未展示控制器。根據一些實施例,根據以下操作實施或形成錯誤校正電路104:建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量(row weight;或可稱作列權重)對該P矩陣之列進行排序;鑑於一校正強度及資料位元之數目而判定待截斷之該P矩陣中之列之數目;藉由截斷該P矩陣之具有第一列重量之經排序列且保持該P矩陣之具有第二列重量之經排序列而產生一截斷P矩陣;及根據截斷P矩陣形成錯誤校正電路104。根據一些實施例,錯誤校正電路104根據碼字產生一校正子;且根據校正子判定錯誤。根據一些實施例,第一列重量大於第二列重量。藉由使用上文操作來形成錯誤校正電路104,可減少錯誤校正電路104中之邏輯閘之數目。在以下段落中描述錯誤校正電路之詳細操作。
為簡單起見,二進制BCH碼在本揭露中作為一實例進行論述。在給定一整數m(m大於或等於3)之情況下,存在具有一長度2m -1之一二進制BCH碼。針對此BCH碼校正t個位元錯誤(稱為t位元錯誤校正BCH碼),有效碼字之間之最小距離係至少2t+1。因此,檢查位元之數目n-k必須大於或等於(m+1)*t,其中k係資料位元之數目且n係碼字長度。如提及,BCH係基於伽羅瓦域(GF)中之多項式之一特殊種類之循環碼。可使用GF (2m )中之原始多項式來建構此等碼。假設α係GF (2m )中之一原始元素,長度2m -1之一t位元錯誤校正BCH碼之產生多項式g(x)係GF(2)內之最低次多項式,其具有α、α2 、α3 、…、α2t 作為其根。假設φi (X)係α之最小多項式,則g(x)=LCM{φ1 (X),φ3 (X),φ5 (X),…,φ2t-1 (X)}。產生函數可以矩陣形式表示(且稱為「G矩陣」)。檢查位元係一輸入向量與G矩陣之點積。圖2圖解說明呈非系統形式之一例示性產生矩陣(G矩陣)。根據一些實施例,G矩陣具有k個列及n個行,且列可係G矩陣之基本向量g=[g0 g1 g2 …gn-k-1 gn-k 00…0]之循環移位。基本向量g中之元素可由產生多項式g(x)之係數組成,如圖2中圖解說明。
藉由對G矩陣執行線性變換,獲得呈系統形式之一新G矩陣。圖3係展示呈系統形式之一產生矩陣(G矩陣)及一檢查矩陣(H矩陣)之關係之一圖式。圖3展示H轉置。在本發明實施例中,G矩陣由一維數k×(n-k)之P矩陣及一維數k×k之一單位矩陣構成,其中n係一碼字之大小且k係一資料字之大小。因此,G矩陣具有k×n之一維數,表示為Gk×n
根據以下方程式產生檢查位元。
Figure 02_image001
其中呈斜體形式之c及m分別表示檢查位元及資料位元之一位元向量,且符號「●」表示一點運算。
碼字係資料位元m 及檢查位元c 之串連。當G矩陣變換成系統形式時,可獲得H矩陣,H矩陣基本上係與另一單位矩陣串連之P矩陣之轉置。如圖3中展示,資料位元及檢查位元彼此分離。在本發明實施例中,藉由獲取P矩陣之轉置且使轉置P矩陣與一維數(n-k)×(n-k)之一單位矩陣串連而獲得H矩陣,從而導致H(n-k)×n 。圖3展示n×(n-k)之HT
此外,為偵測一擷取資料r是否係一有效碼字,根據以下方程式藉由使用H矩陣而產生一校正子S:
Figure 02_image003
其中HT 表示H矩陣之一轉置。
錯誤校正碼(ECC)基於資訊冗餘以偵測並校正位元錯誤。對於一k位元資料,校正各錯誤位元所需之檢查位元(冗餘位元)之數目x需要滿足:
Figure 02_image005
出現此方程式係因為在給定x個位元之情況下,吾等可編碼指示位元具有錯誤之位置之2x 個不同資訊。存在額外(+1)位元以指示不存在錯誤。舉例而言,若存在128b資料,則可需要8個檢查位元(x=8)以校正各錯誤位元,此係因為log2 (128+8+1) < 8。若x=7,則方程式ceiling[log2(128+7+1)]係8且其大於7。不滿足不等式。為滿足不等式,x可等於8。因此,舉例而言,為校正2個錯誤位元(t=2),128個資料位元可需要檢查位元之16個位元。
如圖3中展示,當G矩陣呈系統形式時,其與H矩陣共用一同位檢查矩陣(P矩陣)。在G矩陣與H矩陣之間共用P矩陣係有利的,此係因為僅需要設計一單一電路用於檢查位元產生及校正子產生。
通常在運算系統中,資料大小通常係2的冪(舉例而言,32、64、128等)。在一些實施例中,具有一給定檢查位元大小之最大碼字大小並非2的冪(其係2m -1,舉例而言31、63、127等)。因此,通常使用一「截斷」碼字(舉例而言,63之一碼字以保護32之資料寬度)。可藉由自H矩陣挑選行而獲得截斷碼字。舉例而言,若資料大小係具有2個位元之校正強度之128個位元(128b),則檢查位元之數目係16。因此,在截斷之後的所得碼字係144b (=128b+16b)。因此,獲取255b之一碼字且接著將其截斷為所得144b碼字。
如先前論述,藉由一資料位元向量m 及一P矩陣之一「點」運算產生檢查位元c ,且藉由一擷取位元向量r 及一HT 矩陣之一「點」運算產生校正子位元S。藉由算術乘法及加法獲得矩陣運算中之一點積。在GF(2)中,乘法等效於邏輯AND函數且加法等效於邏輯XOR函數。因此,若一P矩陣(同樣地,H矩陣)之一項目係0,則「乘法」之結果亦係0且無需「加上」0。根據一些實施例,產生檢查位元或校正子位元所需之XOR閘之數目與P矩陣中之1之數目成正比。為減少XOR閘之數目,可截斷具有P矩陣中之相對較大數目個1之列(或行)。明確言之,當截斷P矩陣之一項目係1時,啓用一XOR閘之運算。P矩陣中之邏輯1之數目愈大,錯誤校正電路(或解碼器/編碼器)中應使用之XOR閘愈多。因此,為最小化錯誤校正電路104中之XOR閘之數目,應最小化P矩陣中之1之數目。在截斷P矩陣中,藉由截斷P矩陣中具有較大數目個1之列而最小化1之數目。當根據截斷P矩陣形成或製造錯誤校正電路104時,可減少錯誤校正電路104中之XOR閘之數目。因此,在解碼操作期間可節省解碼器之資源。因此,在截斷一矩陣以獲得一截斷碼以擬合運算元素中之資料寬度時,選擇或留存具有較小數目個1之列(行)。此最佳化之一實例係肖氏碼(Hsiao-Code)。可在(舉例而言) M.Y. Hsiao, IBM Journal of Res. and Develop.,第14卷,第4章,第395-401頁(1970)之「A Class of Optimal Minimum Odd-weight-column SEC-DED Codes」中找到肖氏碼之參考。
在各項實施例中,本揭露提供一種減少實施校正子與H矩陣中之行及行之組合(或P矩陣中之列)之匹配以進行校正(藉由定位錯誤位元之位置且接著翻轉該位置而完成校正)所需之邏輯閘之數目的方法。將參考圖4及圖6詳細論述方法。歸因於H矩陣中之行之組合之大數目,可使用相對較大數目個邏輯閘來實施校正子與H矩陣中之行之組合之匹配。因此,使用解碼器中之大多數邏輯閘或資源來實施校正子與行之組合之匹配。舉例而言,具有兩位元校正能力(2位元ECC強度)之128b資料之一BCH碼使用16個檢查位元。保護128b資料所需之碼字係(255, 239, 2)碼。此碼具有達到碼字之總數位元之144b之16個檢查位元。由於矩陣係系統形式,故將存在16×16之一單位矩陣,且可選擇P矩陣之239個剩餘列中之128個列。因此,存在C(239,128)個不同組合,其係近似2.5E70。此數目過大而無法具有一最佳解。為最佳化邏輯閘,在一些實施例中,一探試演算法如下:
(1)對於P矩陣之各列(或H矩陣之各行),判定列中之1之重量/權重(weight of 1’s)。
(2)接著,用遞增重量/權重(ascending weight)對列進行排序。
(3)選擇來自經排序列前面之前j個列,其中j大於資料位元之數目(k)。j可能遠大於k,此係因為將存在具有相同重量之許多列。舉例而言,可存在具有相同重量之x個列且僅選擇x個列之一部分以滿足資料寬度k。
(4)在具有相同重量之最後幾列中選擇(僅足以滿足k個列之列)使得此等列與此重量前面之列重疊最多。此藉由針對全部組合列選擇具有最少數量之1之列而近似計算。
亦如先前論述,為檢查一擷取位元向量r 是否係一有效碼字,產生校正子S。另外,若S係0向量,則所得碼字有效。隨後,藉由選擇碼字之資料欄位而獲得正確資料。此係使用系統碼字之優勢之一者,因為系統碼字中之資料欄位及檢查欄位分離。若S係獨熱(僅1個位元係「1」),則檢查位元之一者出錯。
在一些實施例中,由於P矩陣之各列彼此獨立,故H矩陣之任何z個行之組合或H矩陣之小於z之行之任何組合亦彼此獨立,其中z小於或等於t。此外,校正子S係組合其中(若干)位元出錯之行之一結果。舉例而言,若S匹配P中之n-k個列(H中之行)之一者,則該匹配行出錯且偵測到一單位元錯誤。若所得校正子S等於H矩陣之經組合行i及j,則位置i及j中之位元出錯。將參考圖7及圖8詳細論述判定一記憶體裝置中之錯誤位置之一方法。
圖4係展示根據一些實施例之運用兩位元錯誤校正強度減少一記憶體裝置之一錯誤校正電路之邏輯閘之一方法的一流程圖。可使用該方法來實施或產生圖1之錯誤校正電路104。使用下文之一例示性ECC碼來圖解說明所提出的最佳化方法。此實例係具有128個資料位元之一2位元BCH錯誤校正碼。在此實例中,參數係:m=8,k=128,n=144且n-k=16。在一向量形式中,{g0 , g1 , g2 , … g16 } = {10110111101100011},其可將產生多項式表示為1+x2 +x3 +x5 +x6 +x7 +x8 +x10 +x11 +x15 +x16
參考圖4及圖5,在操作401中,在給定一兩位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣)。如圖5中展示,G矩陣呈非系統形式,且G矩陣可係G矩陣中之基本向量之循環移位,即,向量形式{g0 , g1 , g2 , … g16 } ={10110111101100011}。
在操作403中,將G矩陣變換成一系統形式。經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成,該兩個矩陣亦呈系統形式。根據一些實施例,舉例而言,對G矩陣執行線性變換之一操作以獲得呈系統形式之經變換G矩陣,如圖3中圖解說明。如圖2中展示,G矩陣呈非系統形式。以下碼圖解說明將呈非系統形式之G矩陣變換成系統形式之一實例:
Figure 02_image007
Figure 02_image009
接著,在操作405中,當獲得呈系統形式之G矩陣時,可經由關係G=[P][I]自動獲得P矩陣,其中矩陣[I]係單位矩陣。根據一些實施例,P矩陣係無單位矩陣[I]之G矩陣。在P矩陣中,P矩陣之各列之重量取決於列中之邏輯「一」(即,1)之數目。應注意,P矩陣係H矩陣之轉置,即,P=HT 。另外,P矩陣之列係根據列重量(邏輯1之數目)依一升序進行排序。根據此實例,P矩陣之最低重量/權重(weight)係4。存在具有最低重量(即,邏輯1之數目係4)之8個列。此外,存在分別具有重量5、6、7及8之21、31、30及45個列。
在操作407中,接著按其等列重量以群組形成經排序列。因此,各群組包含一特定重量之列。舉例而言,特定重量可係重量4、5、6、7及8。
在操作409中,判定待截斷P矩陣中之列之數目以獲得截斷P矩陣。在此實例中,截斷P矩陣之列之總數係128。
在操作411中,識別一第x個群組。經排序列之前x個群組具有小於資料位元之數目k×q之列重量之總和,其中q小於第x+1個群組之列重量。在此實例中,k係128。前x個群組係具有重量4之8個列、具有重量5之21個列、具有重量6之31個列、具有重量7之30個列之群組。第x+1個群組係具有重量8之列。前x個群組之列之總數係8+21+31+30=90。因此,q係38,即,128-90=38。
隨後,在操作413中,隨機地選擇第x+1個群組中之q個列以使前x個群組及選定q個列之列重量之總和等於k。在此實例中,挑選具有重量8之38個(即,45個中之38個)列以形成總列數為128 (即,8+21+31+30+38=128)之截斷P矩陣。隨後,在操作415中截斷剩餘列。截斷列包含(若有)第x+2個及更高群組,其等具有比前x+1個群組更多之1。截斷列亦包含第x+1個群組中之列,惟選定之q個列除外。
在操作413中,對第x+1個群組中之列執行一演算法以選取第x+1個群組中之q個列,即,具有重量8之45個中之38個列。為找到具有最小重量之列,下文中可使用演算法之一例示性碼(例如,Python碼)。
Figure 02_image011
根據操作401至415,獲得截斷P矩陣及具有邏輯1之最小總數之組合矩陣。根據一些實施例,組合矩陣係用截斷P矩陣中之兩個列之對建構之矩陣。
然後,可根據截斷結構設計邏輯閘及邏輯電路(例如,錯誤校正電路104)。由於截斷具有較大數目個1之P矩陣中之列(或H矩陣中之行),故運用截斷P矩陣,可消除一些邏輯閘,從而導致一相對簡單電路結構。明確言之,截斷P矩陣經配置以執行與所擷取位元向量之「點」積之運算以產生檢查位元及校正子位元,其中「點」積之運算係將截斷P矩陣之對應項目與所擷取位元向量之乘積相加。在錯誤校正電路中,藉由一XOR閘實行一加法運算,且藉由一AND閘實行一乘法運算。因此,當截斷P矩陣之一項目係0時,將截斷P矩陣之項目與所擷取位元向量之一項目相乘之結果亦係0 (即,使用AND閘)。當將兩個項目相乘之結果係0時,無需執行在「點」積中加上「0」之操作,即,可省略XOR閘。相反地,當截斷P矩陣之一項目係1時,啓用一XOR閘之操作。P矩陣中之邏輯1之數目愈大,錯誤校正電路104中應使用之XOR閘愈多。因此,為最小化錯誤校正電路104中之XOR閘之數目,應最小化P矩陣中之1之數目。在截斷P矩陣中,藉由截斷P矩陣中具有較大數目個1之列而最小化1之數目。因此,可消除錯誤校正電路104中之一些邏輯閘(例如,一些XOR閘),從而導致一相對簡單電路結構。
圖6係展示根據一些實施例之運用多位元錯誤校正強度減少一記憶體裝置中之一錯誤校正電路之邏輯閘之一方法的一流程圖。錯誤校正電路可係圖1之錯誤校正電路104。
參考圖6,在操作601中,在給定一t位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣),t大於一(1)。
操作403、405、407、409及411類似於圖4中論述之操作。在操作411中識別一第x個群組之後,針對第x+1個群組中之列,在操作613中判定每一經組合t個列之列重量之總和。列重量取決於列中之邏輯1之數目,如上文描述。將t等於2作為一實例,P矩陣中之每兩個列藉由一邏輯「OR」函數逐位元組合以判定經組合列之各者之總和。
在操作615中,選擇在與其他列組合時各導致小於未選定列之一列重量之第x+1個群組中之q個列。隨後,在操作617中截斷具有較高列重量之剩餘列。截斷列包含(若有)第x+2個及更高群組,其等具有多於前x+1個群組之1。根據操作601至617,獲得具有邏輯1之最小總數之截斷矩陣。如上文描述,P矩陣中之邏輯1之數目愈大,錯誤校正電路中應使用之XOR閘愈多。在截斷P矩陣中,藉由截斷P矩陣中具有較大數目個1之列而最小化1之數目。因此,可消除錯誤校正電路中之一些邏輯閘(例如,一些XOR閘),從而導致一相對簡單電路結構。
圖7係展示根據一些實施例之運用單位元錯誤校正強度判定一記憶體裝置中之錯誤位置之一方法的一流程圖。可藉由圖1之錯誤校正電路104執行該方法。
在操作701中,在給定一單位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣)。
參考圖7,在將G矩陣變換成一系統形式之後,在操作705中擷取一資料位元向量。根據一些實施例,資料位元向量可係自一半導體記憶體(例如,102)擷取/讀出之碼字,且資料位元向量可包括需要校正之位元錯誤。
接著,在操作707中,藉由使用H矩陣產生所擷取資料位元向量之一校正子。可使用一校正子來判定所擷取資料位元向量之一錯誤。如上文描述,藉由將所擷取資料位元向量與H矩陣之轉置相乘而產生校正子。
在操作709中判定校正子向量是否等於零。若肯定,則在操作711中將所擷取資料位元向量判定為有效。接著,在操作705中可擷取另一資料位元向量,接著透過操作707及709進行校正子測試。若在操作709中校正子不等於零(在本發明實施例中給定單位元ECC強度之情況下,校正子等於1),則在操作713中判定所擷取資料位元向量中存在一錯誤。隨後,藉由與校正子向量比較,識別匹配校正子向量之P矩陣之一個列且判定一錯誤位元。
圖8係展示根據一些實施例之運用多位元錯誤校正強度判定一記憶體裝置中之錯誤位置之一方法的一流程圖。可藉由圖1之錯誤校正電路104執行該方法。
參考圖8,在操作801中,在給定一t位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣),t大於一(1)。
操作403、705、707、709及711類似於圖7中論述之操作。在操作709中,若判定校正子向量不等於零(此意謂在給定t位元ECC強度之情況下所擷取資料位元向量具有一或多個錯誤位元),則在操作813中判定P矩陣之一個列是否匹配校正子。若肯定,則在操作815中判定所擷取資料位元向量具有一個錯誤位元。隨後,藉由與校正子向量比較,識別匹配校正子向量之P矩陣之一個列且判定一錯誤位元。
若在操作813中判定P矩陣之單一列不匹配校正子(此意謂所擷取資料位元向量具有兩個或兩個以上錯誤位元),則在操作817中判定P矩陣之兩個列之一組合是否匹配校正子。在一實施例中,藉由一邏輯互斥或「XOR」函數進行組合。若經組合列匹配校正子,則在操作821中判定所擷取向量具有兩個錯誤位元,且可判定與兩個列相關聯之兩個錯誤位元。
若在操作817中判定P矩陣之兩個列在組合時不匹配校正子,則在操作819中判定所擷取資料位元向量具有三個或三個以上錯誤位元。重複操作817及819直至在給定t位元ECC強度之情況下判定錯誤位元位置。因此,若校正子等於零,則所擷取資料位元向量有效且不具有錯誤位元。若校正子不等於零且一個列匹配校正子,則存在一個錯誤位元。若校正子不等於零且經組合之兩個列匹配校正子,則存在兩個錯誤位元。同樣地,若校正子不等於零且經組合之t個列匹配校正子,則存在t個錯誤位元。
圖9係根據一些實施例之用於判定錯誤位置之一例示性邏輯電路之一系統圖式。
參考圖9,當校正子不等於零時,比較校正子與截斷P矩陣之列(或截斷H矩陣之行)以判定一位元之一錯誤位置。根據一些實施例,已藉由截斷具有相對較大重量之行而降低截斷H矩陣之複雜性。因此,亦降低判定錯誤位置之複雜性。舉例而言,在圖9中,藉由使用XOR閘,接著使用一OR閘以加上來自XOR閘之輸出而逐位元比較H矩陣之一行向量[v11, v12 … v1n]與一校正子S。當H矩陣之行向量[v11, v12 … v1n]逐位元匹配校正子S (即,OR閘之輸出係零)時,則行向量[v11, v12 … v1n]出錯,且偵測到一位元錯誤。圖9中展示之例示性邏輯電路用於偵測一個錯誤位元。為判定t位元錯誤,需要更多邏輯閘及佈線。如先前論述,由於截斷具有較大數目個1之H矩陣中之行中之列,故減少H矩陣之總行數。因此,大幅減少比較截斷H矩陣與校正子S之操作,且可節省解碼器之資源或邏輯閘。
根據一些實施例,可藉由一半導體製程形成或製造錯誤校正電路104。可在數位電子電路中或在電腦硬體、韌體、軟體中或在其等之組合中實施錯誤校正電路104。錯誤校正電路104可由特別設計的特定應用積體電路(ASIC)或適當程式化之場可程式化閘陣列(FPGA)補充或併入其等中。
此外,可在有形地體現於一機器可讀儲存裝置中以由一電腦處理器執行之一電腦程式產品中實施實施例之設備;且可由執行一程式以藉由對輸入資料操作且產生輸出而執行實施例之功能之一電腦處理器執行實施例之方法步驟。適合處理器(藉由實例)包含通用微處理器及專用微處理器兩者。適於有形地體現電腦程式指令之儲存裝置包含全部形式之非揮發性記憶體,包含(但不限於):半導體記憶體裝置,諸如EPROM、EEPROM及快閃裝置。
在一些實施例中,本揭露提供一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法。該方法包括:建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量對該P矩陣之列進行排序;鑑於一校正強度及資料位元之數目而判定待截斷之該P矩陣中之列之數目;藉由截斷該P矩陣之具有第一列重量之該等經排序列且保持該P矩陣之具有第二列重量之該等經排序列而產生一截斷P矩陣;及根據該截斷P矩陣形成該錯誤校正電路以校正該碼字之該錯誤;其中該等第一列重量大於該等第二列重量。
在一些實施例中,本揭露亦提供一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法。該方法包括:在給定一t位元錯誤校正碼(ECC)強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量依一升序對該P矩陣之列進行排序;判定待截斷之該P矩陣中之列之數目;判定該等經排序列之前x個群組具有小於資料位元之數目k×q之列重量之總和,q小於第x+1個群組之列重量;及針對第x+1個群組中之列,判定每一經組合t個列之列重量之總和;及根據待截斷之該P矩陣形成該錯誤校正電路以用於判定該碼字之該錯誤。
在一些實施例中,本揭露提供一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法。該方法包括:在給定一t位元錯誤校正碼(ECC)強度之情況下根據碼字建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;藉由使用該H矩陣而產生所擷取資料位元向量之一校正子;組合該P矩陣之u個列,u係不大於t之一自然數;判定該P矩陣之該u個列在組合時匹配該校正子;及根據該校正子形成該錯誤校正電路以用於校正該碼字之該錯誤。
前述內容略述數項實施例之特徵,使得熟習此項技術者可更佳地理解本揭露之態樣。熟習此項技術者應瞭解,其等可容易地使用本揭露作為用於設計或修改用於實行相同目的及/或達成本文中介紹之實施例之相同優點之其他製程及結構之一基礎。熟習此項技術者亦應瞭解,此等等效構造不脫離本揭露之精神及範疇,且其等可在本文中作出各種改變、代入及變更而不脫離本揭露之精神及範疇。
100:記憶體系統 102:記憶體 104:錯誤校正電路/處理器 401:操作 403:操作 405:操作 407:操作 409:操作 411:操作 413:操作 415:操作 601:操作 613:操作 615:操作 617:操作 701:操作 705:操作 707:操作 709:操作 711:操作 713:操作 801:操作 813:操作 815:操作 817:操作 819:操作 821:操作
當結合附圖閱讀時從以下詳細描述最佳理解本揭露之態樣。應注意,根據產業中之標準實踐,各種構件未按比例繪製。事實上,爲了清楚論述可任意增大或減小各種構件之尺寸。
圖1係圖解說明根據一些實施例之具有BCH碼方案之一記憶體系統之一圖式。
圖2係呈非系統形式之一例示性產生矩陣(G矩陣)之一圖式。
圖3係展示呈系統形式之一G矩陣及一檢查矩陣(H矩陣)之關係之一圖式。
圖4係展示根據一些實施例之運用兩位元錯誤校正強度減少一記憶體裝置之邏輯之一方法的一流程圖。
圖5係展示根據一些實施例之一產生矩陣之一圖式。
圖6係展示根據一些實施例之運用多位元錯誤校正強度減少一記憶體裝置之邏輯之一方法的一流程圖。
圖7係展示根據一些實施例之運用單位元錯誤校正強度判定一記憶體裝置中之錯誤位置之一方法的一流程圖。
圖8係展示根據一些實施例之運用多位元錯誤校正強度判定一記憶體裝置中之錯誤位置之一方法的一流程圖。
圖9係根據一些實施例之用於判定錯誤位置之一例示性邏輯電路之一系統圖式。
401:操作
403:操作
405:操作
407:操作
409:操作
411:操作
413:操作
415:操作

Claims (10)

  1. 一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路的方法,其包括:建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,其中該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量對該P矩陣之列進行排序;鑑於一校正強度及一資料位元數目而判定待截斷之該P矩陣中之列之一數目;藉由截斷該P矩陣之具有第一列重量之該等經排序列且保持該P矩陣之具有第二列重量之該等經排序列而產生一截斷P矩陣,以最小化邏輯閘操作之數目;及產生具有根據該截斷P矩陣最小化之邏輯閘操作之該數目之錯誤校正電路結構以校正該碼字之該錯誤;其中該等第一列重量大於該等第二列重量;及藉由在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中實施該錯誤校正電路結構而形成該錯誤校正電路。
  2. 如請求項1之方法,其中該H矩陣為該P矩陣之一轉置。
  3. 如請求項1之方法,在排序之後,其進一步包含:按照其列重量成群組地形成該等經排序列;及 判定該等經排序列之前x個群組之列重量之總和小於該資料位元數目k乘q,q小於第(x+1)個群組之該列重量。
  4. 一種產生用於校正從一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包含:在給定t位元錯誤校正碼ECC強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換為一系統形式,其中該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量依升序對該P矩陣之列進行排序;判定待截斷之該P矩陣中之列之數目,以最小化邏輯閘操作之數目;判定該等經排序列之前x個群組之列重量之總和小於資料位元數目k乘q,q小於第(x+1)個群組之該列重量;針對該第(x+1)個群組中之該列,判定各經組合t個列之列重量之總和;及產生具有根據待截斷之該P矩陣最小化之邏輯閘操作之該數目之錯誤校正電路結構以用於判定該碼字之該錯誤;及藉由在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中實施該錯誤校正電路結構而形成該錯誤校正電路。
  5. 一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校 正電路之方法,其包含:在給定t位元錯誤校正碼ECC強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;藉由使用該H矩陣而產生所擷取資料位元向量之一校正子;組合該P矩陣之u個列以截斷該P矩陣,u為不大於t之一自然數;在經組合u個列匹配該校正子時判定該錯誤;及根據該校正子形成該錯誤校正電路以用於校正該碼字之該錯誤,其中該錯誤校正電路中之邏輯閘操作之數目回應於截斷該P矩陣而最小化;根據該校正子產生用於校正該碼字之該錯誤之錯誤校正電路結構;及藉由在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中實施該錯誤校正電路結構而形成該錯誤校正電路。
  6. 如請求項5之方法,其中組合u個列進一步包含:藉由邏輯互斥或「XOR」閘逐位元地組合每u個列。
  7. 如請求項5之方法,其中在變換該G矩陣之後,該方法進一步包含:根據列重量依升序對該P矩陣之該列進行排序;及按照其列重量成群組地形成該等經排序列。
  8. 一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包含:建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,其中該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量對該P矩陣之列進行排序;鑑於一校正強度及資料位元數目而判定待截斷之該P矩陣中之列之數目;藉由保持該P矩陣之重量小於或等於該P矩陣之該截斷列之重量之該等經排序列而產生一截斷P矩陣,以最小化邏輯閘操作之數目;及在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中形成具有根據該截斷P矩陣而最小化之邏輯閘操作之該數目之錯誤校正電路,以校正該碼字之該錯誤。
  9. 一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包含:在給定t位元錯誤校正碼ECC強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,其中該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;根據列重量依升序對該P矩陣之列進行排序; 判定待截斷之該P矩陣中之列之數目;判定該等經排序列之前x個群組之總數目小於資料位元數目k乘q,q小於第(x+1)個群組之列數目;針對該第(x+1)個群組中之該列,判定各經組合t個列之列重量之總和;及根據待截斷之該P矩陣在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中形成錯誤校正電路以用於判定該碼字之該錯誤,其中從該P矩陣截斷該第(x+1)個群組之子集。
  10. 一種產生用於校正自一記憶體讀取之一碼字中之一錯誤之一錯誤校正電路之方法,其包含:在給定t位元錯誤校正碼ECC強度之情況下建構一產生矩陣(G矩陣);將該G矩陣變換成一系統形式,該經變換G矩陣由一同位檢查矩陣(P矩陣)及一檢查矩陣(H矩陣)構成;藉由使用該H矩陣而產生所擷取資料位元向量之一校正子;組合該P矩陣之u個列以截斷該P矩陣,u為不大於t之一自然數;在經組合u個列匹配該校正子時判定該錯誤;及根據該校正子形成該錯誤校正電路以用於校正該碼字之該錯誤,其中該經截斷P矩陣中之邏輯1之數目回應於截斷該P矩陣而最小化;根據該校正子產生用於校正該碼字之該錯誤之錯誤校正電路結構;及 藉由在數位電子電路、特定應用積體電路、場可程式化閘陣列及實施為硬體、韌體及軟體之至少一者之電腦電路之至少一者中實施該錯誤校正電路結構而形成該錯誤校正電路。
TW108122451A 2018-09-21 2019-06-26 減少多位元錯誤校正碼的邏輯的系統與方法 TWI782215B (zh)

Applications Claiming Priority (4)

Application Number Priority Date Filing Date Title
US201862734468P 2018-09-21 2018-09-21
US62/734,468 2018-09-21
US16/285,677 2019-02-26
US16/285,677 US10949298B2 (en) 2018-09-21 2019-02-26 System and method of reducing logic for multi-bit error correcting codes

Publications (2)

Publication Number Publication Date
TW202036288A TW202036288A (zh) 2020-10-01
TWI782215B true TWI782215B (zh) 2022-11-01

Family

ID=69883169

Family Applications (1)

Application Number Title Priority Date Filing Date
TW108122451A TWI782215B (zh) 2018-09-21 2019-06-26 減少多位元錯誤校正碼的邏輯的系統與方法

Country Status (3)

Country Link
US (3) US10949298B2 (zh)
CN (1) CN110941505A (zh)
TW (1) TWI782215B (zh)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR20200074467A (ko) * 2018-12-17 2020-06-25 삼성전자주식회사 에러 정정 코드 회로, 반도체 메모리 장치 및 메모리 시스템
US11237907B2 (en) * 2020-05-29 2022-02-01 Taiwan Semiconductor Manufacturing Company, Ltd. Processing-in-memory instruction set with homomorphic error correction
KR20210157829A (ko) 2020-06-22 2021-12-29 에스케이하이닉스 주식회사 메모리 및 메모리의 동작 방법

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7665008B2 (en) * 2004-01-12 2010-02-16 Intel Corporation Method and apparatus for implementing a low density parity check code in a wireless system
US20120192029A1 (en) * 2005-01-10 2012-07-26 Broadcom Corporation LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices
US20130227372A1 (en) * 2012-02-23 2013-08-29 Kabushiki Kaisha Toshiba Encoding apparatus and communication apparatus
US20140136921A1 (en) * 2011-07-27 2014-05-15 Yutaka Murakami Encoding method, decoding method

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5745507A (en) * 1995-03-31 1998-04-28 International Business Machines Corporation Systematic symbol level ECC for use in digital memory systems
SG76501A1 (en) * 1996-02-28 2000-11-21 Sun Microsystems Inc Error detection and correction method and apparatus for computer memory
US6615387B1 (en) * 1998-09-22 2003-09-02 Seagate Technology Llc Method and apparatus for error detection
US6675349B1 (en) * 2000-05-11 2004-01-06 International Business Machines Corporation Error correction coding of data blocks with included parity bits
US6671833B2 (en) * 2002-01-08 2003-12-30 Parama Networks, Inc. Forward error correction and framing protocol
KR20040033554A (ko) * 2002-10-15 2004-04-28 삼성전자주식회사 에러 정정 부호화 장치 및 그 방법
KR20050044963A (ko) * 2003-11-08 2005-05-16 삼성전자주식회사 q차 제곱 잉여류를 이용한 준순환 저밀도 패러티 검사부호 생성 방법
US7325183B2 (en) * 2004-07-21 2008-01-29 Hewlett-Packard Development Company, L.P. Error correction code generation method and apparatus

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7665008B2 (en) * 2004-01-12 2010-02-16 Intel Corporation Method and apparatus for implementing a low density parity check code in a wireless system
US20120192029A1 (en) * 2005-01-10 2012-07-26 Broadcom Corporation LDPC (Low Density Parity Check) codes with corresponding parity check matrices selectively constructed with CSI (Cyclic Shifted Identity) and null sub-matrices
US20140136921A1 (en) * 2011-07-27 2014-05-15 Yutaka Murakami Encoding method, decoding method
US20130227372A1 (en) * 2012-02-23 2013-08-29 Kabushiki Kaisha Toshiba Encoding apparatus and communication apparatus

Also Published As

Publication number Publication date
CN110941505A (zh) 2020-03-31
US11748192B2 (en) 2023-09-05
US10949298B2 (en) 2021-03-16
US20210191813A1 (en) 2021-06-24
US20230367673A1 (en) 2023-11-16
US20200097360A1 (en) 2020-03-26
TW202036288A (zh) 2020-10-01

Similar Documents

Publication Publication Date Title
US11740960B2 (en) Detection and correction of data bit errors using error correction codes
US20230367673A1 (en) System and method of reducing logic for multi-bit error correcting codes
US8806295B2 (en) Mis-correction and no-correction rates for error control
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US11632135B2 (en) Apparatuses and methods for interleaved BCH codes
JP2589957B2 (ja) 単一サブブロック・エラーと単一ビット・エラー検出のための符号化方法及びメモリ・システム
WO2018218125A1 (en) Non-binary error correcting code for correcting single symbol errors and detecting double bit errors
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
US7093183B2 (en) Symbol level error correction codes which protect against memory chip and bus line failures
US10567007B2 (en) Device and method of processing a data word using checkbits
US10367529B2 (en) List decode circuits
Badack et al. Modified DEC BCH codes for parallel correction of 3-bit errors comprising a pair of adjacent errors
US10404282B2 (en) Apparatuses and methods for integrated interleaved Reed-Solomon encoding and decoding
Kim et al. Hamming product code with iterative process for NAND flash memory controller
KR20190041390A (ko) Raid에 맞춤화된 bch 인코딩 및 디코딩 방법, 및 그 장치
JP2023045450A (ja) シンドローム計算回路、誤り訂正回路およびメモリシステム
CN115408198A (zh) 数据纠错方法、装置、设备及存储介质
KR101304570B1 (ko) 패리티 체크 행렬 생성 방법, 이를 이용한 오류 정정 방법 및 장치, 오류 정정 장치용 디코더 그리고 오류 정정 장치를 포함하는 메모리 및 전자장치
JP2021141369A (ja) メモリシステム
US9009577B1 (en) Circuitry and method for forward error correction
TWI551058B (zh) 最小-總和演算法之低密度奇偶校驗碼解碼器及其解碼方法
US20240048159A1 (en) Error processing and correction of adjacent 2-bit errors
US20230370092A1 (en) Error Correction With Fast Syndrome Calculation
Nordmann et al. A new DEC/TED code for fast correction of 2-bit-errors
Gherman et al. Sequential Decoders for Binary Linear Block ECCs