TWI664636B - 錯誤檢查和糾正解碼器 - Google Patents

錯誤檢查和糾正解碼器 Download PDF

Info

Publication number
TWI664636B
TWI664636B TW106133136A TW106133136A TWI664636B TW I664636 B TWI664636 B TW I664636B TW 106133136 A TW106133136 A TW 106133136A TW 106133136 A TW106133136 A TW 106133136A TW I664636 B TWI664636 B TW I664636B
Authority
TW
Taiwan
Prior art keywords
circuit
finite field
value
syndrome
error
Prior art date
Application number
TW106133136A
Other languages
English (en)
Other versions
TW201901691A (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 TW201901691A publication Critical patent/TW201901691A/zh
Application granted granted Critical
Publication of TWI664636B publication Critical patent/TWI664636B/zh

Links

Classifications

    • 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/07Arithmetic 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/157Polynomial evaluation, i.e. determination of a polynomial sum at a given value
    • 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/617Polynomial operations, e.g. operations related to generator polynomials or parity-check polynomials

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Computing Systems (AREA)
  • Error Detection And Correction (AREA)

Abstract

錯誤檢查和糾正(ECC)解碼器用以進行BCH解碼,以將碼字解碼為經解碼資料。所述ECC解碼器包括校驗子產生電路、錯誤定位多項式電路以及解碼電路。校驗子產生電路可以產生對應於碼字的多個校驗子。錯誤定位多項式電路可以藉由使用這些校驗子進行算術運算,以產生錯誤定位多項式的多個係數。所述算術運算包含多個運算子,其中這些運算子中的至少一個運算子是查找表電路。解碼電路可以求取具有這些係數的錯誤定位多項式的至少一解,以及依據錯誤定位多項式的所述解來糾正碼字,以產生所述經解碼資料。

Description

錯誤檢查和糾正解碼器
本發明是有關於一種解碼電路,且特別是有關於一種錯誤檢查和糾正解碼器。
在資料傳輸與/或資料儲存的過程中,資料的可靠度是一個重要的課題。例如,非揮發性記憶體(Non-volatile memory)具有資料非揮發性、省電、體積小等特性,所以可應用於各種電子裝置。一般來說,欲寫入至非揮發性記憶體的資料會透過錯誤檢查和糾正(Error Checking and Correcting,以下稱ECC)編碼器來編碼,以產生對應的錯誤檢查和糾正碼,然後將含有此資料與錯誤檢查和糾正碼的碼字(codeword)存放於非揮發性記憶體。反之,ECC解碼器可以從非揮發性記憶體獲得碼字(經編碼資料),然後進行ECC解碼程序以將碼字解碼為經解碼資料。亦即,ECC解碼器可以利用對應的錯誤檢查和糾正碼來校正所讀取之資料中的錯誤位元。
運用在非揮發性記憶體的ECC解碼程序可以是博斯-喬赫里-霍克文黑姆(Bose-Chaudhuri-Hocquenghem,以下簡稱BCH)解碼程序。然而,隨著記憶體容量的增加,使得進行BCH解碼所花費的時間也隨之增加。基此,如何減少BCH解碼所需要的時間(提昇解碼效率)以及如何降低BCH解碼所需要的功耗,為此領域技術人員所關心的議題。
本發明提供一種錯誤檢查和糾正(ECC)解碼器,以BCH解碼。
本發明的實施例提供一種ECC解碼器,用以進行BCH解碼方法以將碼字(codeword)解碼為經解碼資料。所述ECC解碼器包括校驗子(syndrome)產生電路、錯誤定位多項式(error locator polynomial)電路以及解碼電路。校驗子產生電路可以接收碼字。校驗子產生電路可以產生對應於碼字的多個校驗子。錯誤定位多項式電路的至少一輸入端耦接至校驗子產生電路的至少一輸出端,以接收該些校驗子。錯誤定位多項式電路可以藉由使用這些校驗子進行算術運算,以產生錯誤定位多項式的多個係數。所述算術運算包含多個運算子,其中這些運算子中的至少一個運算子是查找表電路。解碼電路耦接至錯誤定位多項式電路的至少一輸出端,以接收這些係數。解碼電路可以依據具有這些係數的錯誤定位多項式的至少一解來糾正碼字,以產生所述經解碼資料。
基於上述,本發明諸實施例所述ECC解碼器可以進行BCH解碼。查找表電路被用來實現BCH解碼過程中部份運算子,以提升速度與降低功耗。
為讓本發明的上述特徵和優點能更明顯易懂,下文特舉實施例,並配合所附圖式作詳細說明如下。
請參照圖1,非揮發性記憶體裝置10包括非揮發性記憶體11與ECC解碼器100。非揮發性記憶體11輸出碼字12給ECC解碼器100的輸入端。ECC解碼器100可以進行BCH解碼方法。因此,ECC解碼器100可以將碼字12解碼為經解碼資料13,然後將經解碼資料13提供給主機20。
於圖1所示實施例中,所述ECC解碼器100包括校驗子(syndrome)產生電路110、錯誤定位多項式(error locator polynomial)電路120以及解碼電路130。校驗子產生電路110可以接收來自於非揮發性記憶體11的碼字12。藉由使用BCH解碼方法,校驗子產生電路110可以產生對應於碼字12的多個校驗子S。
假設碼字12有N個位元,而ECC解碼器100最多可以糾正碼字12中的m個錯誤位元,其中N與m為整數。所述N與m可以依照設計需求來決定。舉例來說,碼字12有64個位元(N=64),而ECC解碼器100最多可以糾正碼字12中的3個錯誤位元(m=3)。在m為3的應用情境中,校驗子產生電路110可以計算出3個校驗子S,例如校驗子S1、校驗子S3與校驗子S5。
錯誤定位多項式電路120的輸入端耦接至校驗子產生電路110的輸出端,以接收這些校驗子S。錯誤定位多項式電路120可以藉由使用這些校驗子S進行算術運算,以產生錯誤定位多項式中的多個係數C。所述算術運算包含多個運算子,其中這些運算子中的至少一個運算子是查找表(lookup table, LUT)電路。所述查找表電路可以包含唯讀記憶體(read only memory, ROM)或是其他記憶體,以存放查找表。
在一些實施例中,所述錯誤定位多項式可以是,而其中的係數C可以是係數ai 。在m為3的應用情境中,錯誤定位多項式電路120可以藉由使用校驗子S1、校驗子S3與校驗子S5進行算術運算,以產生錯誤定位多項式a 3 X 3 +a 2 X 2 +a 1 X +a 0 = 0中的三次方項係數a 3 、二次方項係數a 2 、一次方項係數a 1 與常數項係數a 0
在另一些實施例中,所述錯誤定位多項式可以是,而其中的係數C可以是係數bi 。在m為3的應用情境中,錯誤定位多項式電路120可以藉由使用校驗子S1、校驗子S3與校驗子S5進行算術運算,以產生錯誤定位多項式X 3 +S1X 2 +b 1 X +b 0 = 0中的一次方項係數b 1 與常數項係數b 0
解碼電路130耦接至錯誤定位多項式電路120的輸出端,以接收這些係數C。藉由使用BCH解碼方法,解碼電路130可以求取具有這些係數C的錯誤定位多項式的至少一解(或至少一根(root)),以及依據錯誤定位多項式的所述解(根)來糾正碼字12,以產生所述經解碼資料13。
在m為3的應用情境中,解碼電路130可以求取錯誤定位多項式a 3 X 3 +a 2 X 2 +a 1 X +a 0 = 0的至少一解,其中所述X的解(根)可以指出碼字12中錯誤位元的位置。藉由將在錯誤位元的位元值進行反相運算,解碼電路130可以糾正這個錯誤位元。因此,解碼電路130可以獲得糾正後的經解碼資料13。舉例來說,假設碼字12為四位元值「1111」,並且假設所述X的解為「0001」(代表碼字12中第一個位元為錯誤位元),因此解碼電路130可以對碼字12的第一個位元做反相運算,而使得所述經解碼資料13為「1110」。
圖2是依照本發明的一實施例說明圖1所示錯誤定位多項式電路120的電路方塊示意圖。於圖2所示實施例中,ECC解碼器100被假設最多可以糾正碼字12中的3個錯誤位元(m=3)。在m為3的應用情境中,校驗子產生電路110所輸出給錯誤定位多項式電路120的3個校驗子S包括校驗子S1、校驗子S3與校驗子S5。校驗子S1、校驗子S3與校驗子S5的位元數量可以視設計需求來決定。舉例來說,校驗子S1、校驗子S3與校驗子S5的任一個可以是6位元的值。
錯誤定位多項式電路120包括第一算術電路121與第二算術電路122。藉由使用這些校驗子S的部份或全部,第一算術電路121可以進行第一有限場(finite field)算術運算,以產生一次方項值a 1 ’。第二算術電路122耦接至第一算術電路121,以接收一次方項值a 1 ’。藉由使用這些校驗子S的部份或全部,以及藉由使用一次方項值a 1 ’,第二算術電路122可以進行第二有限場算術運算,以產生常數項值a 0 ’。所述有限場算術運算又被稱為伽羅瓦場(Galois field, GF)算術運算。舉例來說,在「校驗子S1、校驗子S3與校驗子S5都是6位元校驗子」的應用情境中,所述有限場算術的序(order)為64(亦即26 ,一般以GF(64)表示)。
於圖2所示實施例中,第一算術電路121包括有限場平方電路121a、有限場乘法電路121b與有限場加法電路121c。有限場平方電路121a接收並使用這些校驗子S中的校驗子S1來進行有限場平方運算,以產生校驗子S1的有限場平方值201,即(S1)2 的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場平方電路121a。有限場乘法電路121b耦接至有限場平方電路121a,以接收有限場平方值201。有限場乘法電路121b使用有限場平方值201與這些校驗子S中的校驗子S3來進行有限場乘法運算,以產生有限場乘積值202,即(S1)2 *S3的有限場算術值。在一些實施例中,一階及閘(1-stage AND gate)與4階互斥或閘(4-stage XOR gate)可以被用來實現有限場乘法電路121b。有限場加法電路121c耦接至有限場乘法電路121b,以接收有限場乘積值202。有限場加法電路121c使用有限場乘積值202與這些校驗子S中的校驗子S5來進行有限場加法運算,以產生一次方項值a 1 ’,即(S1)2 *S3+S5的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路121c。
於圖2所示實施例中,錯誤定位多項式電路120更包括查找表電路123以及有限場加法電路124。查找表電路123接收並使用這些校驗子S中的校驗子S1來查找查找表,以獲得校驗子S1的有限場立方值211,即(S1)3 的有限場算術值。在「校驗子S1是6位元的值」以及「有限場立方值211是6位元的值」的應用情境中,所述查找表電路123具有63*6位元的儲存空間以存放「S1轉換為(S1)3 」查找表。
有限場加法電路124耦接至查找表電路123,以接收有限場立方值211。有限場加法電路124使用有限場立方值211與這些校驗子S中的校驗子S3來進行有限場加法運算,以產生三次方項值a 3 ’,即(S1)3 +S3的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路124。
第二算術電路122更耦接至有限場加法電路124,以接收三次方項值a 3 ’。藉由使用這些校驗子S的部份或全部,並藉由使用一次方項值a 1 ’與三次方項值a 3 ’,第二算術電路122可以進行所述第二有限場算術運算,以產生常數項值a 0 ’。於圖2所示實施例中,第二算術電路122包括有限場平方電路122a、有限場乘法電路122b以及有限場加法電路122c。有限場平方電路122a耦接至有限場加法電路124,以接收三次方項值a 3 ’。有限場平方電路122a使用三次方項值a 3 ’來進行有限場平方運算,以產生三次方項值a 3 ’的有限場平方值212,即(a 3 ’)2 的有限場算術值。於圖2所示實施例中,三次方項值a 3 ’為(S1)3 +S3。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場平方電路122a。
有限場乘法電路122b耦接至第一算術電路121,以接收一次方項值a 1 ’。有限場乘法電路122b使用一次方項值a 1 ’與校驗子S1來進行有限場乘法運算,以產生有限場乘積值203,即a 1 ’*S1的有限場算術值。於圖2所示實施例中,一次方項值a 1 ’為(S1)2 *S3+S5。在一些實施例中,一階及閘(1-stage AND gate)與4階互斥或閘(4-stage XOR gate)可以被用來實現有限場乘法電路122b。有限場加法電路122c耦接至有限場乘法電路122b與有限場平方電路122a,以分別以接收有限場乘積值203與有限場平方值212。有限場加法電路122c使用有限場乘積值203與有限場平方值212來進行有限場加法運算,以產生常數項值a 0 ’,即a 1 ’*S1 + (a 3 ’)2 的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路122c。
於圖2所示實施例中,錯誤定位多項式電路120更包括有限場乘法電路125。有限場乘法電路125耦接至有限場加法電路124,以接收三次方項值a 3 ’。有限場乘法電路125使用三次方項值a 3 ’與校驗子S1來進行有限場乘法運算,以產生二次方項值a 2 ’,即a 3 ’*S1的有限場算術值。在一些實施例中,一階及閘(1-stage AND gate)與4階互斥或閘(4-stage XOR gate)可以被用來實現有限場乘法電路125。
於圖2所示實施例中,錯誤定位多項式電路120更包括錯誤旗標電路126。錯誤旗標電路126接收這些校驗子S中的校驗子S1與校驗子S3,並檢查校驗子S1的多個位元與校驗子S3的多個位元。依據檢查結果,錯誤旗標電路126對應產生錯誤旗標信號EF給解碼電路130。錯誤旗標信號EF用以表示在碼字12是否存在錯誤位元。舉例來說,當碼字12具有錯誤位元時,錯誤旗標信號EF可以是邏輯「1」。反之,當碼字12沒有錯誤位元時,錯誤旗標信號EF可以是邏輯「0」。在一些實施例中,錯誤旗標電路126的判斷條件為「校驗子S1的所有位元均為0」以及「校驗子S3的所有位元均為0」。當這兩個判斷條件都成立(都為真)時,錯誤旗標電路126將錯誤旗標信號EF設為邏輯「0」,否則將錯誤旗標信號EF設為邏輯「1」。
於圖2所示實施例中,錯誤定位多項式電路120更包括錯誤旗標電路127。錯誤旗標電路127耦接至錯誤旗標電路126與有限場加法電路124,以分別接收錯誤旗標信號EF與三次方項值a 3 ’。錯誤旗標電路127可以檢查錯誤旗標信號EF,以及檢查三次方項值a 3 ’的多個位元。依據檢查結果,錯誤旗標電路127可以對應產生錯誤位元數量旗標信號E1F給解碼電路130。錯誤位元數量旗標信號E1F用以表示在碼字12中的錯誤位元的數量是否為1個。舉例來說,當碼字12具有1個錯誤位元時,錯誤位元數量旗標信號E1F可以是邏輯「1」。除此之外,錯誤位元數量旗標信號E1F為邏輯「0」。在一些實施例中,錯誤旗標電路127的判斷條件為「錯誤旗標信號EF為1」以及「三次方項值a 3 ’的所有位元均為0」。當這兩個判斷條件都成立(都為真)時,錯誤旗標電路127將錯誤位元數量旗標信號E1F設為邏輯「1」,否則將錯誤位元數量旗標信號E1F設為邏輯「0」。
於圖2所示實施例中,錯誤定位多項式電路120更包括錯誤旗標電路128。錯誤旗標電路128耦接至錯誤旗標電路126、第二算術電路122與有限場加法電路124,以分別接收錯誤旗標信號EF、常數項值a 0 ’與三次方項值a 3 ’。錯誤旗標電路128可以檢查錯誤旗標信號EF、常數項值a 0 ’的多個位元與三次方項值a 3 ’的多個位元。依據檢查結果,錯誤旗標電路128可以對應產生錯誤位元數量旗標信號E2F給解碼電路130。錯誤位元數量旗標信號E2F用以表示在碼字12中的錯誤位元的數量是否為2個。舉例來說,當碼字12具有2個錯誤位元時,錯誤位元數量旗標信號E2F可以是邏輯「1」。除此之外,錯誤位元數量旗標信號E2F為邏輯「0」。在一些實施例中,錯誤旗標電路128的判斷條件為「錯誤旗標信號EF為1」、「三次方項值a 3 ’的任何一個位元不為0」以及「常數項值a 0 ’的所有位元均為0」。當這三個判斷條件都成立(都為真)時,錯誤旗標電路128將錯誤位元數量旗標信號E2F設為邏輯「1」,否則將錯誤位元數量旗標信號E2F設為邏輯「0」。
於圖2所示實施例中,錯誤定位多項式電路120更包括多工器129。在第一模式中(亦即當錯誤位元數量旗標信號E1F為0時),多工器129將三次方項值a 3 ’、二次方項值a 2 ’、一次方項值a 1 ’與常數項值a 0 ’輸出給解碼電路130作為錯誤定位多項式的多個係數C中的三次方項係數、二次方項係數、一次方項係數與常數項係數。舉例來說,假設錯誤定位多項式為a 3 X 3 +a 2 X 2 +a 1 X +a 0 = 0,則在第一模式中,三次方項值a 3 ’作為三次方項係數a 3 ,二次方項值a 2 ’作為二次方項係數a 2 ,一次方項值a 1 ’作為一次方項係數a 1 ,而常數項值a 0 ’作為常數項係數a 0
在第二模式中(亦即當錯誤位元數量旗標信號E1F為1時),多工器129將「0」、「0」、「1」與「校驗子S1」輸出給解碼電路130作為錯誤定位多項式的多個係數C中的三次方項係數、二次方項係數、一次方項係數與常數項係數。舉例來說,假設錯誤定位多項式為a 3 X 3 +a 2 X 2 +a 1 X +a 0 = 0,則在第二模式中,錯誤定位多項式為X +S1 = 0。
無論如何,圖1所示錯誤定位多項式電路120的實施方式不應受限於圖2所示實施範例。舉例來說,圖3是依照本發明的另一實施例說明圖1所示錯誤定位多項式電路120的電路方塊示意圖。於圖3所示實施例中,ECC解碼器100被假設最多可以糾正碼字12中的3個錯誤位元(m=3)。在m為3的應用情境中,校驗子產生電路110所輸出給錯誤定位多項式電路120的3個校驗子S包括校驗子S1、校驗子S3與校驗子S5。
錯誤定位多項式電路120包括第一算術電路121與第二算術電路122。藉由使用這些校驗子S的部份或全部,第一算術電路121可以進行第一有限場算術運算,以產生一次方項值a 1 ’。第二算術電路122耦接至第一算術電路121,以接收一次方項值a 1 ’。藉由使用這些校驗子S的部份或全部,以及藉由使用一次方項值a 1 ’,第二算術電路122可以進行第二有限場算術運算,以產生常數項值a 0 ’。
於圖3所示實施例中,第一算術電路121包括查找表電路121d以及有限場加法電路121c。查找表電路121d接收並使用這些校驗子S中的校驗子S1與校驗子S3來查找查找表,以獲得校驗子S1的有限場平方值與校驗子S3的有限場乘積值202,即(S1)2 *S3的有限場算術值。舉例來說,在「校驗子S1是6位元的值」以及「校驗子S3是6位元的值」的應用情境中,所述查找表電路121d具有63*64*6位元的儲存空間以存放「將S1與S3轉換為(S1)2 *S3」查找表。有限場加法電路121c耦接至查找表電路121d,以接收有限場乘積值202。有限場加法電路121c可以使用有限場乘積值202與這些校驗子S中的校驗子S5來進行有限場加法運算,以產生一次方項值a 1 ’,即(S1)2 *S3+S5的有限場算術值。
於圖3所示實施例中,錯誤定位多項式電路120更包括查找表電路310。查找表電路310接收並使用這些校驗子S中的校驗子S1與校驗子S3來查找查找表,以獲得校驗子S1的有限場立方值與校驗子S3的有限場加法值,即(S1)3 +S3的有限場算術值。所述有限場加法值(即(S1)3 +S3)作為三次方項值a 3 ’。舉例來說,在「校驗子S1是6位元的值」以及「校驗子S3是6位元的值」的應用情境中,所述查找表電路310具有63*64*6位元的儲存空間以存放「將S1與S3轉換為(S1)3 +S3」查找表。
於圖3所示實施例中,第二算術電路122更耦接至查找表電路310以接收三次方項值a 3 ’。藉由使用這些校驗子S的部份或全部,並藉由使用一次方項值a 1 ’與三次方項值a 3 ’,第二算術電路122可以進行所述第二有限場算術運算,以產生常數項值a 0 ’。圖3所示第二算術電路122可以參照圖2所示第二算術電路122的相關說明來類推,故不再贅述。
於圖3所示實施例中,錯誤定位多項式電路120更包括有限場乘法電路125、錯誤旗標電路126、錯誤旗標電路127、錯誤旗標電路128以及多工器129。圖3所示有限場乘法電路125、錯誤旗標電路126、錯誤旗標電路127、錯誤旗標電路128以及多工器129可以參照圖2的相關說明來類推,故不再贅述。
在另一些實施例中,錯誤定位多項式中的三次方項係數可以被設為1,而錯誤定位多項式中的二次方項係數可以被設為這些校驗子S中的校驗子S1。舉例來說,在「ECC解碼器100最多可以糾正碼字12中的3個錯誤位元(m為3)」的應用情境中,錯誤定位多項式a 3 X 3 +a 2 X 2 +a 1 X +a 0 =X 3 +(a 2 /a 3 )X 2 +(a 1 /a 3 )X +(a 0 /a 3 ) =X 3 +S1X 2 +b 1 X +b 0 = 0,其中b 1 = (S1)2 + d,b 0 = S1*d + S3,而d = [(S1)5 + S5]*[(S1)3 + S3]-1 。因此,錯誤定位多項式電路120可以輸出校驗子S1、一次方項係數b 1 與常數項係數b 0 給解碼電路130作為係數C。
圖4是依照本發明的又一實施例說明圖1所示錯誤定位多項式電路120的電路方塊示意圖。於圖4所示實施例中,ECC解碼器100被假設最多可以糾正碼字12中的3個錯誤位元(m=3)。在m為3的應用情境中,校驗子產生電路110所輸出給錯誤定位多項式電路120的3個校驗子S包括校驗子S1、校驗子S3與校驗子S5。錯誤定位多項式電路120可以藉由使用校驗子S1、校驗子S3與校驗子S5進行算術運算,以產生錯誤定位多項式X 3 +S1X 2 +b 1 X +b 0 = 0中的一次方項係數b 1 與常數項係數b 0 給解碼電路130。
解碼電路130耦接至錯誤定位多項式電路120的輸出端,以接收校驗子S1、一次方項係數b 1 與常數項係數b 0 作為係數C。藉由使用BCH解碼方法,在m為3的應用情境中,解碼電路130可以求取錯誤定位多項式X 3 +S1X 2 +b 1 X +b 0 = 0的至少一解,其中所述X的解(根)可以指出碼字12中錯誤位元的位置。藉由將在錯誤位元的位元值進行反相運算,解碼電路130可以糾正這個錯誤位元。
在圖4所示實施例中,錯誤定位多項式電路120包括算術電路400。算術電路400藉由使用這些校驗子S的部份或全部進行有限場算術運算,以產生錯誤定位多項式的這些係數C中的一次方項係數b 1 以及常數項係數b 0 給解碼電路130。其中,算術電路400包括算術電路410、算術電路420以及算術電路430。算術電路410藉由使用這些校驗子S的部份或全部進行第一有限場算術運算,以產生內部值d。算術電路420耦接至算術電路410,以接收內部值d。藉由使用這些校驗子S的部份或全部,以及藉由使用內部值d,算術電路420可以進行第二有限場算術運算,以產生錯誤定位多項式的這些係數C中的常數項係數b 0 給解碼電路130。算術電路430耦接至算術電路410,以接收內部值d。藉由使用這些校驗子S的部份或全部,以及藉由使用內部值d,算術電路430可以進行第三有限場算術運算,以產生錯誤定位多項式的這些係數C中的一次方項係數b 1 給解碼電路130。
在圖4所示實施例中,算術電路410包括查找表電路411、有限場加法電路412、查找表電路413、查找表電路414、有限場加法電路415與有限場乘法電路416。查找表電路411接收並使用校驗子S1來查找第一查找表,以獲得校驗子S1的有限場立方值411a,即(S1)3 的有限場算術值。舉例來說,在「校驗子S1是6位元的值」以及「有限場立方值411a是6位元的值」的應用情境中,所述查找表電路411具有63*6位元的儲存空間以存放「S1轉換為(S1)3 」查找表。
有限場加法電路412耦接至查找表電路411,以接收有限場立方值411a。有限場加法電路412可以使用有限場立方值411a與這些校驗子S中的校驗子S3來進行有限場加法運算,以產生有限場加法值412a,即(S1)3 +S3的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路412。查找表電路413耦接至有限場加法電路412,以接收有限場加法值412a。查找表電路413可以使用有限場加法值412a來查找第二查找表,以獲得有限場加法值412a的有限場負一次方值413a,即[(S1)3 +S3]-1 的有限場算術值。舉例來說,在「有限場加法值412a是6位元的值」以及「有限場負一次方值413a是6位元的值」的應用情境中,所述查找表電路413具有63*6位元的儲存空間以存放「將(S1)3 +S3轉換為[(S1)3 +S3]-1 」查找表。
查找表電路414接收並使用校驗子S1來查找第三查找表,以獲得校驗子S1的有限場五次方值414a,即(S1)5 的有限場算術值。舉例來說,在「校驗子S1是6位元的值」以及「有限場五次方值414a是6位元的值」的應用情境中,所述查找表電路414具有63*6位元的儲存空間以存放「S1轉換為(S1)5 」查找表。有限場加法電路415耦接至查找表電路414,以接收有限場五次方值414a。有限場加法電路415可以使用有限場五次方值414a與這些校驗子S中的校驗子S5來進行有限場加法運算,以產生有限場加法值415a,即(S1)5 + S5的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路415。
有限場乘法電路416耦接至查找表電路413與有限場加法電路415,以分別接收有限場負一次方值413a與有限場加法值415a。有限場乘法電路416可以使用有限場負一次方值413a與有限場加法值415a來進行有限場乘法運算,以產生內部值d,即[(S1)5 + S5]*[(S1)3 + S3]-1 的有限場算術值。在一些實施例中,一階及閘(1-stage AND gate)與4階互斥或閘(4-stage XOR gate)可以被用來實現有限場乘法電路416。
在圖4所示實施例中,算術電路420包括有限場乘法電路421以及有限場加法電路422。有限場乘法電路421耦接至算術電路410,以接收內部值d。有限場乘法電路421可以使用內部值d與校驗子S1來進行有限場乘法運算,以產生有限場乘積值421a,即d*S1的有限場算術值。在一些實施例中,一階及閘(1-stage AND gate)與4階互斥或閘(4-stage XOR gate)可以被用來實現有限場乘法電路421。有限場加法電路422耦接至有限場乘法電路421,以接收有限場乘積值421a。有限場加法電路422可以使用有限場乘積值421a與這些校驗子S中的校驗子S3來進行有限場加法運算,以產生常數項係數b 0 給解碼電路130,其中常數項係數b 0 為d*S1 + S3的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場加法電路422。
在圖4所示實施例中,算術電路430包括有限場平方電路431以及有限場加法電路432。有限場平方電路431接收並使用校驗子S1來進行有限場平方運算,以產生校驗子S1的有限場平方值431a,即(S1)2 的有限場算術值。在一些實施例中,一階互斥或閘(1-stage XOR gate)可以被用來實現有限場平方電路431。有限場加法電路432耦接至有限場平方電路431與算術電路410,以分別接收有限場平方值431a與內部值d。有限場加法電路432可以使用有限場平方值431a與內部值d來進行有限場加法運算,以產生一次方項係數b 1 給解碼電路130,其中一次方項係數b 1 為(S1)2 + d的有限場算術值。
圖5是依照本發明的再一實施例說明圖1所示錯誤定位多項式電路120的電路方塊示意圖。於圖5所示實施例中,ECC解碼器100被假設最多可以糾正碼字12中的3個錯誤位元(m=3)。在m為3的應用情境中,校驗子產生電路110所輸出給錯誤定位多項式電路120的校驗子S包括校驗子S1、校驗子S3與校驗子S5。錯誤定位多項式電路120可以藉由使用校驗子S1、校驗子S3與校驗子S5進行算術運算,以產生錯誤定位多項式X 3 +S1X 2 +b 1 X +b 0 = 0中的一次方項係數b 1 與常數項係數b 0 給解碼電路130。
圖5所示錯誤定位多項式電路120、算術電路410’、算術電路420以及算術電路430可以參照圖4所示錯誤定位多項式電路120、算術電路410、算術電路420以及算術電路430的相關說明來類推,故不再贅述。
於圖5所示實施例中,算術電路410’包括有限場乘法電路416、查找表電路417以及查找表電路418。查找表電路417接收並使用校驗子S1與校驗子S3來查找第一查找表,以獲得第一有限場算術值417a,即[(S1)3 +S3]-1 的有限場算術值。舉例來說,在「校驗子S1是6位元的值」以及「校驗子S3是6位元的值」的應用情境中,所述查找表電路417具有63*64*6位元的儲存空間以存放「將S1與S3轉換為[(S1)3 +S3]-1 」查找表。查找表電路418接收並使用校驗子S1與校驗子S5來查找第二查找表,以獲得第二有限場算術值418a。舉例來說,查找表電路418查找第二查找表,以獲得校驗子S1的有限場五次方值與校驗子S5的有限場加法值,即(S1)5 +S5的有限場算術值。舉例來說,在「校驗子S1是6位元的值」以及「校驗子S5是6位元的值」的應用情境中,所述查找表電路418具有63*64*6位元的儲存空間以存放「將S1與S5轉換為(S1)5 +S5」查找表。有限場乘法電路416耦接至查找表電路417與查找表電路418,以分別接收第一有限場算術值417a與第二有限場算術值418a,並使用第一有限場算術值417a與第二有限場算術值418a來進行有限場乘法運算,以產生內部值d給算術電路420以及算術電路430。
值得注意的是,在不同的應用情境中,校驗子產生電路110、錯誤定位多項式電路120及/或解碼電路130的相關功能可以利用一般的編程語言(programming languages,例如C)、硬體描述語言(hardware description languages,例如Verilog HDL)或其他合適的編程語言來實現為軟體、韌體或硬體。可執行所述相關功能的編程語言可以被佈置為任何已知的計算機可存取媒體(computer-accessible medias),例如磁帶(magnetic tapes)、半導體(semiconductors)記憶體、磁盤(magnetic disks)或光盤(compact disks,例如CD-ROM),或者可通過互聯網(Internet)、有線通信(wired communication)、無線通信(wireless communication)或其它通信介質傳送所述編程語言。所述編程語言可以被存放在計算機的可存取媒體中,以便於由計算機的處理器來存取/執行所述編程語言的編程碼(programming codes)。另外,本發明的裝置和方法可以通過硬體和軟體的組合來實現。
綜上所述,本發明諸實施例所述ECC解碼器100可以進行BCH解碼。在BCH解碼過程中,查找表電路被用來實現錯誤定位多項式電路120的一個或多個運算子,以提升BCH解碼的速度與降低錯誤定位多項式電路120的功耗。
雖然本發明已以實施例揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明的精神和範圍內,當可作些許的更動與潤飾,故本發明的保護範圍當視後附的申請專利範圍所界定者為準。
10‧‧‧非揮發性記憶體裝置
11‧‧‧非揮發性記憶體
12‧‧‧碼字
13‧‧‧經解碼資料
20‧‧‧主機
100‧‧‧ECC解碼器
110‧‧‧校驗子產生電路
120‧‧‧錯誤定位多項式電路
121‧‧‧第一算術電路
121a‧‧‧有限場平方電路
121b‧‧‧有限場乘法電路
121c‧‧‧有限場加法電路
121d‧‧‧查找表電路
122‧‧‧第二算術電路
122a‧‧‧有限場平方電路
122b‧‧‧有限場乘法電路
122c‧‧‧有限場加法電路
123‧‧‧查找表電路
124‧‧‧有限場加法電路
125‧‧‧有限場乘法電路
126‧‧‧錯誤旗標電路
127‧‧‧錯誤旗標電路
128‧‧‧錯誤旗標電路
129‧‧‧多工器
130‧‧‧解碼電路
201‧‧‧有限場平方值
202‧‧‧有限場乘積值
203‧‧‧有限場乘積值
211‧‧‧有限場立方值
212‧‧‧有限場平方值
310‧‧‧查找表電路
400‧‧‧算術電路
410‧‧‧算術電路
410’‧‧‧算術電路
411‧‧‧查找表電路
411a‧‧‧有限場立方值
412‧‧‧有限場加法電路
412a‧‧‧有限場加法值
413‧‧‧查找表電路
413a‧‧‧有限場負一次方值
414‧‧‧查找表電路
414a‧‧‧有限場五次方值
415‧‧‧有限場加法電路
415a‧‧‧有限場加法值
416‧‧‧有限場乘法電路
417‧‧‧查找表電路
417a‧‧‧第一有限場算術值
418‧‧‧查找表電路
418a‧‧‧第二有限場算術值
420‧‧‧算術電路
421‧‧‧有限場乘法電路
422‧‧‧有限場加法電路
421a‧‧‧有限場乘積值
430‧‧‧算術電路
431‧‧‧有限場平方電路
431a‧‧‧有限場平方值
432‧‧‧有限場加法電路
a 0’‧‧‧常數項值
a 1’‧‧‧一次方項值
a 2’‧‧‧二次方項值
a 3’‧‧‧三次方項值
b 0‧‧‧常數項係數
b 1‧‧‧一次方項係數
C‧‧‧係數
d‧‧‧內部值
E1F‧‧‧錯誤位元數量旗標信號
E2F‧‧‧錯誤位元數量旗標信號
EF‧‧‧錯誤旗標信號
S、S1、S3、S5‧‧‧校驗子
圖1是依照本發明的一實施例所繪示的一種錯誤檢查和糾正解碼器的電路方塊(circuit block)示意圖。 圖2是依照本發明的一實施例說明圖1所示錯誤定位多項式電路的電路方塊示意圖。 圖3是依照本發明的另一實施例說明圖1所示錯誤定位多項式電路的電路方塊示意圖。 圖4是依照本發明的又一實施例說明圖1所示錯誤定位多項式電路的電路方塊示意圖。 圖5是依照本發明的再一實施例說明圖1所示錯誤定位多項式電路的電路方塊示意圖。

Claims (20)

  1. 一種錯誤檢查和糾正解碼器,用以進行博斯-喬赫里-霍克文黑姆解碼方法以將一碼字解碼為一經解碼資料,所述錯誤檢查和糾正解碼器包括:一校驗子產生電路,用以接收該碼字,並產生對應於該碼字的多個校驗子;一錯誤定位多項式電路,具有至少一輸入端耦接至該校驗子產生電路的至少一輸出端以接收該些校驗子,用以藉由使用該些校驗子進行一算術運算,以產生一錯誤定位多項式的多個係數,其中該算術運算包含多個運算子,且該錯誤定位多項式電路包括:一查找表電路,包括一記憶體以儲存一查找表,且該查找表電路為該些運算子中的至少一個運算子以接收並使用該些校驗子中的至少一校驗子來查找該查找表,以獲得該校驗子的一有限場立方值;以及一解碼電路,耦接至該錯誤定位多項式電路的至少一輸出端以接收該些係數,用以依據具有該些係數的該錯誤定位多項式的至少一解來糾正該碼字以產生該經解碼資料。
  2. 如申請專利範圍第1項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路包括:一第一算術電路,藉由使用該些校驗子的部份或全部進行一第一有限場算術運算,以產生一一次方項值;以及一第二算術電路,耦接至該第一算術電路以接收該一次方項值,其中該第二算術電路藉由使用該些校驗子的部份或全部,以及藉由使用該一次方項值,來進行一第二有限場算術運算,以產生一常數項值;其中在一第一模式中,該一次方項值作為該錯誤定位多項式的該些係數中的一一次方項係數,該常數項值作為該錯誤定位多項式的該些係數中的一常數項係數。
  3. 如申請專利範圍第2項所述的錯誤檢查和糾正解碼器,其中在一第二模式中,1作為該一次方項係數,該些校驗子中的一第一校驗子作為該常數項係數。
  4. 如申請專利範圍第2項所述的錯誤檢查和糾正解碼器,其中該第一算術電路包括:一有限場平方電路,接收並使用該些校驗子中的一第一校驗子來進行一有限場平方運算,以產生該第一校驗子的一有限場平方值;一有限場乘法電路,耦接至該有限場平方電路以接收該有限場平方值,並使用該有限場平方值與該些校驗子中的一第二校驗子來進行一有限場乘法運算,以產生一有限場乘積值;以及一有限場加法電路,耦接至該有限場乘法電路以接收該有限場乘積值,並使用該有限場乘積值與該些校驗子中的一第三校驗子來進行一有限場加法運算,以產生該一次方項值。
  5. 如申請專利範圍第2項所述的錯誤檢查和糾正解碼器,其中該查找表電路用以接收並使用該些校驗子中的一第一校驗子來查找該查找表;以及該錯誤定位多項式電路更包括:一第一有限場加法電路,耦接至該查找表電路以接收該有限場立方值,並使用該有限場立方值與該些校驗子中的一第二校驗子來進行一有限場加法運算,以產生一三次方項值;其中該第二算術電路更耦接至該第一有限場加法電路以接收該三次方項值,該第二算術電路藉由使用該些校驗子的部份或全部,並藉由使用該一次方項值與該三次方項值,來進行該第二有限場算術運算,以產生該常數項值;以及在該第一模式中,該三次方項值作為該錯誤定位多項式的該些係數中的一三次方項係數。
  6. 如申請專利範圍第5項所述的錯誤檢查和糾正解碼器,其中該第二算術電路包括:一有限場平方電路,耦接至該第一有限場加法電路以接收該三次方項值來進行一有限場平方運算,以產生該三次方項值的一有限場平方值;一有限場乘法電路,耦接至該第一算術電路以接收該一次方項值,並使用該一次方項值與該第一校驗子來進行一有限場乘法運算,以產生一有限場乘積值;以及一第二有限場加法電路,耦接至該有限場乘法電路與該有限場平方電路以分別以接收該有限場乘積值與該有限場平方值,並使用該有限場乘積值與該有限場平方值來進行該有限場加法運算,以產生該常數項值;該錯誤定位多項式電路更包括:一有限場乘法電路,耦接至該第一有限場加法電路以接收該三次方項值,並使用該三次方項值與該第一校驗子來進行一有限場乘法運算,以產生一二次方項值;其中在該第一模式中,該二次方項值作為該錯誤定位多項式的該些係數中的一二次方項係數。
  7. 如申請專利範圍第5項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一第一錯誤旗標電路,接收該些校驗子中的該第一校驗子與該第二校驗子,並檢查該第一校驗子的多個位元與該第二校驗子的多個位元來對應產生一錯誤旗標信號給該解碼電路。
  8. 如申請專利範圍第7項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一第二錯誤旗標電路,耦接至該第一錯誤旗標電路與該第一有限場加法電路以分別接收該錯誤旗標信號與該三次方項值,用以檢查該錯誤旗標信號與該三次方項值的多個位元來對應產生一錯誤位元數量旗標信號給該解碼電路。
  9. 如申請專利範圍第7項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一第二錯誤旗標電路,耦接至該第一錯誤旗標電路、該第二算術電路與該第一有限場加法電路以分別接收該錯誤旗標信號、該常數項值與該三次方項值,用以檢查該錯誤旗標信號、該常數項值的多個位元與該三次方項值的多個位元來對應產生一錯誤位元數量旗標信號給該解碼電路。
  10. 如申請專利範圍第2項所述的錯誤檢查和糾正解碼器,其中該第一算術電路包括:該查找表電路,接收並使用該些校驗子中的一第一校驗子與一第二校驗子來查找該查找表,以獲得該第一校驗子的有限場平方值與該第二校驗子的一有限場乘積值;以及一有限場加法電路,耦接至該查找表電路以接收該有限場乘積值,並使用該有限場乘積值與該些校驗子中的一第三校驗子來進行一有限場加法運算,以產生該一次方項值。
  11. 如申請專利範圍第2項所述的錯誤檢查和糾正解碼器,其中該查找表電路用以接收並使用該些校驗子中的一第一校驗子與一第二校驗子來查找該查找表,以獲得該第一校驗子的一有限場立方值與該第二校驗子的一有限場加法值,並將該有限場加法值作為一三次方項值;其中該第二算術電路更耦接至該查找表電路以接收該三次方項值,以及該第二算術電路藉由使用該些校驗子的部份或全部,並藉由使用該一次方項值與該三次方項值,來進行該第二有限場算術運算,以產生該常數項值;以及在該第一模式中,該三次方項值作為該錯誤定位多項式的該些係數中的一三次方項係數。
  12. 如申請專利範圍第11項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一有限場乘法電路,耦接至該查找表電路以接收該三次方項值,並使用該三次方項值與該第一校驗子來進行一有限場乘法運算,以產生一二次方項值;其中在該第一模式中,該二次方項值作為該錯誤定位多項式的該些係數中的一二次方項係數。
  13. 如申請專利範圍第11項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一第一錯誤旗標電路,接收該些校驗子中的該第一校驗子與該第二校驗子,並檢查該第一校驗子的多個位元與該第二校驗子的多個位元來對應產生一錯誤旗標信號給該解碼電路;以及一第二錯誤旗標電路,耦接至該第一錯誤旗標電路與該查找表電路以分別接收該錯誤旗標信號與該三次方項值,用以檢查該錯誤旗標信號與該三次方項值的多個位元來對應產生一錯誤位元數量旗標信號給該解碼電路。
  14. 如申請專利範圍第11項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式電路更包括:一第一錯誤旗標電路,接收該些校驗子中的該第一校驗子與該第二校驗子,並檢查該第一校驗子的多個位元與該第二校驗子的多個位元來對應產生一錯誤旗標信號給該解碼電路;以及一第二錯誤旗標電路,耦接至該第一錯誤旗標電路、該第二算術電路與該查找表電路以分別接收該錯誤旗標信號、該常數項值與該三次方項值,用以檢查該錯誤旗標信號、該常數項值的多個位元與該三次方項值的多個位元來對應產生一錯誤位元數量旗標信號給該解碼電路。
  15. 如申請專利範圍第1項所述的錯誤檢查和糾正解碼器,其中該錯誤定位多項式中的一三次方項係數為1,該錯誤定位多項式中的一二次方項係數為該些校驗子中的一第一校驗子,以及該錯誤定位多項式電路包括:一算術電路,藉由使用該些校驗子的部份或全部進行一有限場算術運算,以產生該錯誤定位多項式的該些係數中的一一次方項係數以及一常數項係數。
  16. 如申請專利範圍第15項所述的錯誤檢查和糾正解碼器,其中該算術電路包括:一第一算術電路,藉由使用該些校驗子的部份或全部進行一第一有限場算術運算,以產生一內部值;一第二算術電路,耦接至該第一算術電路以接收該內部值,用以藉由使用該些校驗子的部份或全部與該內部值來進行一第二有限場算術運算,以產生該常數項係數;以及一第三算術電路,耦接至該第一算術電路以接收該內部值,用以藉由使用該些校驗子的部份或全部與該內部值來進行一第三有限場算術運算,以產生該一次方項係數。
  17. 如申請專利範圍第16項所述的錯誤檢查和糾正解碼器,其中該第一算術電路包括:一第一查找表電路,接收並使用該第一校驗子來查找一第一查找表,以獲得該第一校驗子的一有限場立方值;一第一有限場加法電路,耦接至該第一查找表電路以接收該有限場立方值,並使用該有限場立方值與該些校驗子中的一第二校驗子來進行一有限場加法運算,以產生一第一有限場加法值;一第二查找表電路,耦接至該第一有限場加法電路以接收該第一有限場加法值,並使用該第一有限場加法值來查找一第二查找表,以獲得該第一有限場加法值的一有限場負一次方值;一第三查找表電路,接收並使用該第一校驗子來查找一第三查找表,以獲得該第一校驗子的一有限場五次方值;一第二有限場加法電路,耦接至該第三查找表電路以接收該有限場五次方值,並使用該有限場五次方值與該些校驗子中的一第三校驗子來進行該有限場加法運算,以產生一第二有限場加法值;以及一有限場乘法電路,耦接至該第二查找表電路與該第二有限場加法電路以分別接收該有限場負一次方值與該第二有限場加法值,並使用該有限場負一次方值與該第二有限場加法值來進行一有限場乘法運算,以產生該內部值。
  18. 如申請專利範圍第16項所述的錯誤檢查和糾正解碼器,其中該第一算術電路包括:一第一查找表電路,接收並使用該第一校驗子與一第二校驗子來查找一第一查找表,以獲得一第一有限場算術值;一第二查找表電路,接收並使用該第一校驗子與一第三校驗子來查找一第二查找表,以獲得一第二有限場算術值;以及一有限場乘法電路,耦接至該第一查找表電路與該第二查找表電路以分別接收該第一有限場算術值與該第二有限場算術值,並使用該第一有限場算術值與該第二有限場算術值來進行一有限場乘法運算,以產生該內部值。
  19. 如申請專利範圍第16項所述的錯誤檢查和糾正解碼器,其中該第二算術電路包括:一有限場乘法電路,耦接至該第一算術電路以接收該內部值,並使用該內部值與該第一校驗子來進行一有限場乘法運算,以產生一有限場乘積值;以及一有限場加法電路,耦接至該有限場乘法電路以接收該有限場乘積值,並使用該有限場乘積值與該些校驗子中的一第二校驗子來進行一有限場加法運算,以產生該常數項係數。
  20. 如申請專利範圍第16項所述的錯誤檢查和糾正解碼器,其中該第三算術電路包括:一有限場平方電路,接收並使用該第一校驗子來進行一有限場平方運算,以產生該第一校驗子的一有限場平方值;以及一有限場加法電路,耦接至該有限場平方電路與該第一算術電路以分別接收該有限場平方值與該內部值,並使用該有限場平方值與該內部值來進行一有限場加法運算,以產生該一次方項係數。
TW106133136A 2017-05-11 2017-09-27 錯誤檢查和糾正解碼器 TWI664636B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US15/592,220 2017-05-11
US15/592,220 US10236913B2 (en) 2017-05-11 2017-05-11 Error checking and correcting decoder

Publications (2)

Publication Number Publication Date
TW201901691A TW201901691A (zh) 2019-01-01
TWI664636B true TWI664636B (zh) 2019-07-01

Family

ID=64098035

Family Applications (1)

Application Number Title Priority Date Filing Date
TW106133136A TWI664636B (zh) 2017-05-11 2017-09-27 錯誤檢查和糾正解碼器

Country Status (3)

Country Link
US (1) US10236913B2 (zh)
CN (1) CN108880567B (zh)
TW (1) TWI664636B (zh)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10936408B2 (en) * 2018-09-25 2021-03-02 Intel Corporation Error correction of multiple bit errors per codeword
KR20210032810A (ko) 2019-09-17 2021-03-25 삼성전자주식회사 메모리 컨트롤러 및 메모리 시스템

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145677A1 (en) * 2009-12-16 2011-06-16 Nvidia Corporation Method and system for fast two bit error correction
US20140281822A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Method and apparatus for generation of soft decision error correction code information
US20170093433A1 (en) * 2015-07-14 2017-03-30 Western Digital Technologies, Inc. Error locator polynomial decoder and method

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5440570A (en) * 1990-03-27 1995-08-08 National Science Council Real-time binary BCH decoder
US6745363B2 (en) 1999-07-30 2004-06-01 Hewlett-Packard Development Company, Lp Early error detection using ECC
US6738942B1 (en) * 2000-06-02 2004-05-18 Vitesse Semiconductor Corporation Product code based forward error correction system
KR100856129B1 (ko) * 2006-12-29 2008-09-03 삼성전자주식회사 오정정 확률을 줄이는 에러 정정 회로, 그 방법 및 상기회로를 구비하는 반도체 메모리 장치
US8196019B2 (en) * 2007-01-30 2012-06-05 International Business Machines Corporation Error correction in codeword pair headers in a data storage tape format
US8327242B1 (en) * 2008-04-10 2012-12-04 Apple Inc. High-performance ECC decoder
CN103916138B (zh) * 2012-12-28 2018-03-16 深圳开阳电子股份有限公司 一种钱搜索电路及基于该钱搜索电路的ecc解码装置及方法
TWI514778B (zh) * 2014-03-27 2015-12-21 Storart Technology Co Ltd 用於bch碼字之縮短秦式搜尋演算法延時的方法及電路
CN105553485B (zh) * 2015-12-08 2019-03-29 西安电子科技大学 基于fpga的bch编解码装置及其编解码方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110145677A1 (en) * 2009-12-16 2011-06-16 Nvidia Corporation Method and system for fast two bit error correction
US20140281822A1 (en) * 2013-03-14 2014-09-18 Lsi Corporation Method and apparatus for generation of soft decision error correction code information
US20170093433A1 (en) * 2015-07-14 2017-03-30 Western Digital Technologies, Inc. Error locator polynomial decoder and method

Also Published As

Publication number Publication date
CN108880567B (zh) 2022-03-08
CN108880567A (zh) 2018-11-23
TW201901691A (zh) 2019-01-01
US20180331700A1 (en) 2018-11-15
US10236913B2 (en) 2019-03-19

Similar Documents

Publication Publication Date Title
JP4036338B2 (ja) 誤りバイト数を制限したバイト内複数スポッティバイト誤り訂正・検出方法及び装置
US8612834B2 (en) Apparatus, system, and method for decoding linear block codes in a memory controller
US7844880B2 (en) Error correction for flash memory
US10243589B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
JP2001175542A (ja) 記録再生装置および半導体メモリ
US7171591B2 (en) Method and apparatus for encoding special uncorrectable errors in an error correction code
TWI539758B (zh) 藉由癥狀表來解碼渦輪乘積碼之系統及方法
JP2008165808A (ja) 誤り訂正確率を減らすエラー訂正回路、その方法及び前記回路を備える半導体メモリ装置
US20040117688A1 (en) Error correction for flash memory
US20130318423A1 (en) Mis-correction and no-correction rates for error control
JP2011514743A (ja) 受信したシンボル列におけるフェーズドバーストエラー、消失、シンボルエラー、及び、ビットエラーを検出及び訂正するための方法及びシステム
US20050149834A1 (en) (18, 9) Error correction code for double error correction and triple error detection
KR20090041224A (ko) 연접 디코더 및 연접 디코딩 방법
TWI664636B (zh) 錯誤檢查和糾正解碼器
US10291258B2 (en) Error correcting code for correcting single symbol errors and detecting double bit errors
JP7116374B2 (ja) 短縮レイテンシ誤り訂正復号
US8739006B2 (en) Reduced circuit implementation of encoder and syndrome generator
US7100103B2 (en) Efficient method for fast decoding of BCH binary codes
JP5667408B2 (ja) リードソロモン符号・復号化回路、リードソロモン符号・復号化方法、および、記憶装置
US8255777B2 (en) Systems and methods for locating error bits in encoded data
JP3743915B2 (ja) スポッティバイト誤り訂正・検出方法及び装置
JP2006060465A (ja) スポッティバイト誤り訂正・検出方法及び装置
JP2006101429A (ja) バイト内複数スポッティバイト誤り訂正・検出方法及び装置
Kumar et al. High-speed and parallel approach for decoding of binary BCH codes with application to Flash memory devices
JP2004007217A (ja) バイト誤り訂正・検出方法及び装置