TWI566091B - 用來對一錯誤更正碼進行解碼之方法與解碼電路 - Google Patents

用來對一錯誤更正碼進行解碼之方法與解碼電路 Download PDF

Info

Publication number
TWI566091B
TWI566091B TW104129917A TW104129917A TWI566091B TW I566091 B TWI566091 B TW I566091B TW 104129917 A TW104129917 A TW 104129917A TW 104129917 A TW104129917 A TW 104129917A TW I566091 B TWI566091 B TW I566091B
Authority
TW
Taiwan
Prior art keywords
error
result
code
correction
symptom
Prior art date
Application number
TW104129917A
Other languages
English (en)
Other versions
TW201710893A (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 慧榮科技股份有限公司
Priority to TW104129917A priority Critical patent/TWI566091B/zh
Priority to US15/259,065 priority patent/US10404283B2/en
Priority to KR1020160116682A priority patent/KR101819152B1/ko
Priority to CN201910991519.3A priority patent/CN110768751B/zh
Priority to CN201610812822.9A priority patent/CN106533615B/zh
Application granted granted Critical
Publication of TWI566091B publication Critical patent/TWI566091B/zh
Publication of TW201710893A publication Critical patent/TW201710893A/zh
Priority to US16/516,268 priority patent/US10848184B2/en

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/1545Determination of error locations, e.g. Chien search or other methods or arrangements for the determination of the roots of the error locator polynomial
    • 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
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0057Block 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/1525Determination and particular use of error location polynomials
    • 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/159Remainder calculation, e.g. for encoding and syndrome calculation
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3738Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with judging correct decoding
    • 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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/39Sequence estimation, i.e. using statistical methods for the reconstruction of the original 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/65Purpose and implementation aspects
    • H03M13/6502Reduction of hardware complexity or efficient processing
    • 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
    • H03M13/6505Memory efficient implementations
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0056Systems characterized by the type of code used
    • H04L1/0061Error detection codes

Landscapes

  • Physics & Mathematics (AREA)
  • Mathematical Physics (AREA)
  • Engineering & Computer Science (AREA)
  • Probability & Statistics with Applications (AREA)
  • Theoretical Computer Science (AREA)
  • Algebra (AREA)
  • General Physics & Mathematics (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Error Detection And Correction (AREA)
  • Detection And Correction Of Errors (AREA)

Description

用來對一錯誤更正碼進行解碼之方法與解碼電路
本發明係有關於錯誤更正處理之控制,尤指一種用來對一錯誤更正碼(Error Correction Code)進行解碼之方法以及相對應的解碼電路。
錯誤更正碼可用來更正資料錯誤。例如:一個傳統的通訊系統當中之一發送裝置在傳送資料之前,往往會將資料編碼成為一錯誤更正碼,並且這個傳統的通訊系統當中之一接收裝置於接收該錯誤更正碼之後,可藉由對該錯誤更正碼進行解碼,來更正傳送過程中所產生的資料錯誤以重獲(Recover)原始的資料。又例如:一個傳統的資料儲存系統在儲存資料於一儲存媒體中之前,往往會將資料編碼成為一錯誤更正碼,其中當儲存於該儲存媒體中之資料係部分地損壞時,這個傳統的資料儲存系統可藉由對該錯誤更正碼進行解碼,來重獲原始的資料。錯誤更正碼的例子可包含(但不限於):博斯-查德胡里-霍昆格母碼(Bose, Ray-Chaudhuri, and Hocquenghem code,可簡稱為「BCH碼」)、以及里德-所羅門碼(Reed-Solomon code,可簡稱為「RS碼」)。依據相關技術,BCH碼係廣泛地用於快閃記憶體(Flash memory)儲存裝置中之錯誤更正處理,並且RS碼係廣泛地用於光學儲存媒體中之錯誤更正處理。
當上述傳統的資料儲存系統要從上述之儲存媒體讀取資料時,由於該資料係以一組錯誤更正碼來儲存,故這個傳統的資料儲存系統必須對該組錯誤更正碼進行解碼以重獲原始資料。在美國專利公告號US 8,370,727之說明書(其揭露內容對應於中華民國專利證書號I387214之說明書)當中介紹了傳統的錯誤更正處理方法以及新穎的錯誤更正處理方法。隨著短短數年過去,某些儲存裝置諸如可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)的儲存容量變得愈來愈大,並且終端使用者變得更易於利用這些儲存裝置來存取總資料量非常大的檔案。在此狀況下,有需要使各種儲存裝置諸如可攜式記憶裝置具備更強的錯誤更正處理效能,以滿足終端使用者的需求。因此,需要一種更新穎的錯誤更正處理架構及方法,來提昇電子裝置之整體效能。
本發明之一目的在於提供一種用來對一錯誤更正碼(Error Correction Code)進行解碼之方法以及相對應的解碼電路,以提昇錯誤更正處理之效能。
本發明之另一目的在於提供一種用來對一錯誤更正碼進行解碼之方法以及相對應的解碼電路,以降低記憶體控制器當中關於錯誤更正處理之功率損耗。
本發明之較佳實施例中提供一種用來對一錯誤更正碼進行解碼之方法,該方法包含有下列步驟:計算該錯誤更正碼之一組錯誤症狀碼(Error Syndrome),其中該錯誤更正碼係為一t-錯誤更正碼(t-Error Correcting Code)、且具有更正t個錯誤之能力,以及該組錯誤症狀碼的數量s小於t;依據該組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之一錯誤定位器多項式(Error Locator Polynomial)的複數個係數中之一組係數,以供建立一假定錯誤定位器多項式,其中該複數個係數的數量等於t,以及該組係數的數量等於s;執行一秦氏搜尋(Chien Search)以找出該假定錯誤定位器多項式之根;依據該假定錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之一更正結果;以及對該更正結果進行至少一校驗運作,以選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。
本發明於提供上述方法之同時,亦對應地提供一種用來對一錯誤更正碼進行解碼之解碼電路,該解碼電路包含一錯誤症狀碼計算模組、一錯誤定位器多項式決定模組、一秦氏搜尋模組、一錯誤更正模組、一校驗(Check)模組、以及一控制模組。該錯誤症狀碼計算模組係用來計算該錯誤更正碼之一組錯誤症狀碼,其中該錯誤更正碼係為一t-錯誤更正碼、且具有更正t個錯誤之能力,以及該組錯誤症狀碼的數量s小於t。另外,該錯誤定位器多項式決定模組係用來依據該組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之一錯誤定位器多項式的複數個係數中之一組係數,以供建立一假定錯誤定位器多項式,其中該複數個係數的數量等於t,以及該組係數的數量等於s。此外,該秦氏搜尋模組係用來執行一秦氏搜尋以找出該假定錯誤定位器多項式之根,而該錯誤更正模組係用來依據該假定錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之一更正結果,並且該校驗模組係用來對該錯誤更正碼之該更正結果進行至少一校驗運作,以產生至少一校驗結果。此外,該控制模組係用來控制該解碼電路之運作,其中在該控制模組之控制下,該解碼電路依據該至少一校驗運作之該至少一校驗結果,選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。
本發明於提供上述解碼電路之同時,亦對應地提供一種記憶體控制器(Memory Controller),其包含上述之解碼電路。
本發明於提供上述解碼電路之同時,亦對應地提供一種儲存裝置(Storage Device),其包含上述之解碼電路。
本發明於提供上述解碼電路之同時,亦對應地提供一種電子裝置之控制器(Controller),其中該控制器包含上述之解碼電路。
本發明的好處之一是,相較於傳統的資料處理方法,本發明之方法以及相對應的解碼電路可大幅地提昇錯誤更正處理之效能。另外,本發明之方法以及相對應的解碼電路可大幅地降低記憶體控制器當中關於錯誤更正處理之功率損耗。
第1圖為依據本發明一實施例之一種用來對一錯誤更正碼(Error Correction Code)進行解碼之解碼電路100的示意圖。例如:該錯誤更正碼可包含一組訊息(Message)位元以及一組奇偶校驗(Parity)位元。這只是為了說明的目的而已,並非對本發明之限制。
如第1圖所示,解碼電路100可包含一控制模組105、一錯誤症狀碼(Error Syndrome)計算模組110、一錯誤定位器多項式(Error Locator Polynomial)決定模組120、一秦氏搜尋(Chien Search)模組130、一錯誤更正模組140、以及 一校驗(Check)模組150,其中錯誤症狀碼計算模組110可包含複數個錯誤症狀碼計算單元,諸如t個錯誤症狀碼計算單元110-1、110-2、...、與110-t。依據本實施例,控制模組105可用來控制該解碼電路100之運作。尤其是,控制模組105可選擇性地控制該t個錯誤症狀碼計算單元110-1、110-2、...、與110-t當中被致能(Enable)的錯誤症狀碼計算單元110-1、110-2、...、與110-s之數量s。另外,控制模組105可選擇性地控制錯誤定位器多項式決定模組120在一相對應的工作流程當中針對該錯誤更正碼之的執行次數s,其中錯誤定位器多項式決定模組120在該相對應的工作流程當中針對該錯誤更正碼進行s次的迴圈之計算。
基於第1圖所示之架構,控制模組105可選擇性地開啟錯誤症狀碼計算模組110中之至少一部分錯誤症狀碼計算單元(例如一部分錯誤症狀碼計算單元、或全部的錯誤症狀碼計算單元),並且可對應地控制錯誤定位器多項式決定模組120的執行次數。例如:控制模組105可選擇性地開啟錯誤症狀碼計算單元110-1、110-2、...、與110-s,其中錯誤症狀碼計算單元110-1、110-2、...、與110-s的數量s在這個例子中可小於錯誤症狀碼計算單元110-1、110-2、...、與110-t的總數t。又例如:在控制模組105選擇性地開啟一部分錯誤症狀碼計算單元諸如錯誤症狀碼計算單元110-1、110-2、...、與110-s的狀況下,控制模組105可對應地控制錯誤定位器多項式決定模組120的執行次數s,而非容許錯誤定位器多項式決定模組120執行直到針對單一訊息(諸如單一碼字(Codeword))的工作流程之最大可能次數t,故錯誤定位器多項式決定模組120可提早完成針對一特定訊息(諸如一特定碼字)之處理運作、並且立刻進行針對下一訊息(諸如下一碼字)之處理運作。於是,當秦氏搜尋模組130正在進行針對該特定訊息(諸如該特定碼字)之處理運作時,錯誤定位器多項式決定模組120已經開始進行針對下一訊息(諸如下一碼字)之處理運作。因此,在控制模組105之控制下,解碼電路100可達到省時、省電的目標,並且具備解碼電路100之電子裝置之整體效能得以提昇。
另外,在控制模組105之控制下,解碼電路100可針對少數解碼錯誤進行重新解碼,尤其是可將上述之數量s暫時地設定成等於上述之總數t,以取得正確的解碼結果。由於在大部分狀況下,錯誤發生的機率相當低,故只要錯誤更正碼之控制參數(錯誤更正能力)設計妥當,解碼電路100對全部資料之整體解碼效率可以在不產生副作用之狀況下大幅地提昇。因此,雖然重新解碼運作會耗費額外時間,具備解碼電路100之電子裝置之整體效能仍然得以提昇。
實作上,該錯誤更正碼可為博斯-查德胡里-霍昆格母碼(Bose, Ray-Chaudhuri, and Hocquenghem code,可簡稱為「BCH碼」)。這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,該錯誤更正碼可為里德-所羅門碼(Reed-Solomon code,可簡稱為「RS碼」)。
第2圖為依據本發明一實施例之一種用來對一錯誤更正碼進行解碼之方法200的流程圖。例如:該錯誤更正碼可包含一組訊息位元(諸如上述之該組訊息位元)以及一組奇偶校驗位元(諸如上述之該組奇偶校驗位元)。這只是為了說明的目的而已,並非對本發明之限制。第2圖所示之方法200可應用於第1圖所示之解碼電路100。方法200說明如下。
於步驟210中,錯誤症狀碼計算模組110計算該錯誤更正碼之一組錯誤症狀碼,諸如s個錯誤症狀碼,其中該錯誤更正碼係為一t-錯誤更正碼(t-Error Correcting Code)、且具有更正t個錯誤之能力,以及該組錯誤症狀碼的數量s小於t。尤其是,錯誤症狀碼計算模組110內之錯誤症狀碼計算單元110-1、110-2、…、與110-s分別計算該s個錯誤症狀碼。
於步驟220中,錯誤定位器多項式決定模組120依據該組錯誤症狀碼中之至少一部分錯誤症狀碼(例如:該組錯誤症狀碼中之一部分錯誤症狀碼、或該組錯誤症狀碼中之全部的錯誤症狀碼),依序決定該錯誤更正碼之一錯誤定位器多項式(例如:多項式Λ(x))的複數個係數Λ 1、Λ 2、…、與Λ t中之一組係數Λ 1、Λ 2、…、與Λ s,以供建立一假定錯誤定位器多項式,其中該複數個係數Λ 1、Λ 2、…、與Λ t的數量等於t,以及該組係數Λ 1、Λ 2、…、與Λ s的數量等於s。實作上,該錯誤定位器多項式之該複數個係數Λ 1、Λ 2、…、與Λ t中之該組係數Λ 1、Λ 2、…、與Λ s之計算的次序係由一次項係數Λ 1進而逐次計算到該組係數Λ 1、Λ 2、…、與Λ s中之最高次項係數Λ s
於步驟230中,秦氏搜尋模組130執行一秦氏搜尋以找出該假定錯誤定位器多項式之根。尤其是,秦氏搜尋模組130之可依據該組係數Λ 1、Λ 2、…、與Λ s建立該假定錯誤定位器多項式,並且執行該秦氏搜尋以找出該假定錯誤定位器多項式之根。例如:該假定錯誤定位器多項式之建立可依據下列式子: 1 + Λ 1x + Λ 2x 2+ … + Λ sx s; 這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,上列式子的樣式可以予以變化,其中該複數個係數Λ 1、Λ 2、…、與Λ t以及該組係數Λ 1、Λ 2、…、與Λ s可對應地變化。
於步驟240中,錯誤更正模組140依據該假定錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之一更正結果。
於步驟250中,校驗模組150對該更正結果進行至少一校驗運作,以使解碼電路100選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。尤其是,校驗模組150對該更正結果進行上述之至少一校驗運作,以產生至少一校驗結果。在控制模組105之控制下,解碼電路100依據上述至少一校驗運作之上述至少一校驗結果,選擇性地利用該更正結果作為該錯誤更正碼之該解碼結果。
請注意,第2圖繪示了包含步驟210至步驟250之工作流程。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之不同的變化例,該工作流程可予以變化。例如:步驟210至步驟250的運作當中之至少一部分運作可重複地執行。又例如:步驟210至步驟250的運作當中之至少一部分運作可同時執行。
依據本實施例,由於控制模組105可選擇性地控制該t個錯誤症狀碼計算單元110-1、110-2、…、與110-t當中被致能的錯誤症狀碼計算單元之數量s、且可選擇性地控制錯誤定位器多項式決定模組120在該相對應的工作流程當中針對該錯誤更正碼之的執行次數s,故只要「錯誤症狀碼計算單元110-1、110-2、…、與110-s的數量s小於錯誤症狀碼計算單元110-1、110-2、…、與110-t的總數t」以及「錯誤定位器多項式決定模組120在該相對應的工作流程當中針對該錯誤更正碼之的執行次數s小於上述之最大可能次數t」之條件(Condition)被滿足,控制模組105可控制錯誤症狀碼計算模組110節省電力、並且可控制錯誤定位器多項式決定模組120節省處理時間。於是,採用方法200之解碼電路100即可達到省時、省電的目標,並且依據方法200來實施之電子裝置(尤其是具備解碼電路100之電子裝置)之整體效能得以提昇。
實作上,該錯誤更正碼可為BCH碼。這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,該錯誤更正碼可為RS碼。
請注意,於第1圖所示之架構中,校驗模組150和控制模組105可被繪示為兩個不同的模組。這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,校驗模組150和控制模組105可被整合成為同一模組,諸如一控制暨校驗模組。此狀況下,於步驟250中,該控制暨校驗模組對該更正結果進行上述之至少一校驗運作,以使解碼電路100選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。
依據本發明之某些實施例,在控制模組105之控制下,當上述至少一校驗運作之上述至少一校驗結果指出該更正結果係正確時,解碼電路100利用該更正結果作為該錯誤更正碼之該解碼結果。尤其是,在控制模組105之控制下,當上述至少一校驗運作之上述至少一校驗結果指出該更正結果係正確時,解碼電路100利用該更正結果作為該錯誤更正碼之該解碼結果,否則,解碼電路100避免利用該更正結果作為該錯誤更正碼之該解碼結果。例如:在上述至少一校驗運作之上述至少一校驗結果指出該更正結果係不正確的狀況下,解碼電路100可在控制模組105之控制下對該錯誤更正碼重新解碼。
依據本發明之某些實施例,上述之至少一校驗運作可包含一後校驗(Post Check)運作、及/或一循環冗餘校驗(Cyclic Redundancy Check, CRC)運作。例如:上述之至少一校驗運作可包含該後校驗運作。又例如:上述之至少一校驗運作可包含該循環冗餘校驗運作。又例如:上述之至少一校驗運作可包含該後校驗運作以及該循環冗餘校驗運作。
尤其是,在上述之至少一校驗運作包含該後校驗運作之狀況下,校驗模組150可依據該更正結果計算對應於該更正結果之一個或多個錯誤症狀碼,以偵測對應於該更正結果之全部的錯誤症狀碼是否均等於零。另外,在控制模組105之控制下,解碼電路100可依據對應於該更正結果之全部的錯誤症狀碼是否均等於零,選擇性地利用該錯誤更正碼之該更正結果作為該錯誤更正碼之該解碼結果。例如:在控制模組105之控制下,當對應於該更正結果之全部的錯誤症狀碼均等於零時,解碼電路100利用該錯誤更正碼之該更正結果作為該錯誤更正碼之該解碼結果。又例如:在控制模組105之控制下,當對應於該更正結果之錯誤症狀碼當中並非全部的錯誤症狀碼均等於零時,解碼電路100避免利用該錯誤更正碼之該更正結果作為該錯誤更正碼之該解碼結果。實作上,當偵測到對應於該更正結果之上述一個或多個錯誤症狀碼當中有某一(些)錯誤症狀碼不等於零(這表示該更正結果係不正確),解碼電路100可在控制模組105之控制下對該錯誤更正碼重新解碼。
依據本發明之某些實施例,在控制模組105之控制下,當上述至少一校驗運作之上述至少一校驗結果指出該更正結果係不正確時,錯誤症狀碼計算模組110計算該錯誤更正碼之至少一其它錯誤症狀碼以產生另一組錯誤症狀碼,以供建立該錯誤定位器多項式並據以產生該錯誤更正碼之另一更正結果,其中該另一組錯誤症狀碼包含該組錯誤症狀碼與上述之至少一其它錯誤症狀碼,以及該另一組錯誤症狀碼的數量等於t。尤其是,在控制模組105之控制下,錯誤定位器多項式決定模組120可依據該另一組錯誤症狀碼中之至少一部分錯誤症狀碼(例如:該另一組錯誤症狀碼中之一部分錯誤症狀碼、或該另一組錯誤症狀碼中之全部的錯誤症狀碼),依序決定該錯誤更正碼之該錯誤定位器多項式的該複數個係數Λ 1、Λ 2、…、與Λ t中之至少一其它係數(例如:一個或多個其它係數),以供建立該錯誤定位器多項式(諸如多項式Λ(x))。例如:該複數個係數Λ 1、Λ 2、…、與Λ t中之上述至少一其它係數可包含(t - s)個係數Λ s + 1、Λ s + 2、…、與Λ t。又例如:在步驟210中所述之該組錯誤症狀碼的數量s被設定為(t - 1)的狀況下,該複數個係數Λ 1、Λ 2、…、與Λ t中之上述至少一其它係數可包含一個係數Λ t
實作上,該錯誤定位器多項式之該複數個係數Λ 1、Λ 2、…、與Λ t之計算的次序係由一次項係數Λ 1進而逐次計算到該複數個係數Λ 1、Λ 2、…、與Λ t中之最高次項係數Λ t,因此,只要該組係數Λ 1、Λ 2、…、與Λ s已預先暫存,錯誤定位器多項式決定模組120可基於既有的該組係數Λ 1、Λ 2、…、與Λ s,接著計算上述之至少一其它係數諸如該(t - s)個係數Λ s + 1、Λ s + 2、…、與Λ t,其中該(t - s)個係數Λ s + 1、Λ s + 2、…、與Λ t之計算的次序係由(s + 1)次項係數Λ s + 1進而逐次計算到該複數個係數Λ 1、Λ 2、…、與Λ t中之該最高次項係數Λ t
另外,不論該複數個係數Λ 1、Λ 2、…、與Λ t中之上述至少一其它係數的數量是多少,秦氏搜尋模組130可執行該秦氏搜尋以找出該錯誤定位器多項式(例如:多項式Λ(x))之根,並且錯誤更正模組140可依據該錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之該另一更正結果。尤其是,秦氏搜尋模組130之可依據該複數個係數Λ 1、Λ 2、…、與Λ t建立該錯誤定位器多項式,並且執行該秦氏搜尋以找出該錯誤定位器多項式之根。例如:該錯誤定位器多項式之建立可依據下列式子: 1 + Λ 1x + Λ 2x 2+ … + Λ tx t; 這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,上列式子的樣式可以予以變化,其中該複數個係數Λ 1、Λ 2、…、與Λ t可對應地變化。
依據本發明之某些實施例,該錯誤更正碼可包含一組訊息位元諸如上述者,且可另包含一組奇偶校驗位元諸如上述者。解碼電路100可對該組訊息位元進行編碼,以產生一組編碼位元。另外,解碼電路100可對該組編碼位元以及該組奇偶校驗位元進行位元互斥或(Bitwise Exclusive OR, Bitwise XOR)運算,以產生一組奇偶校驗不吻合(Parity Mismatch)位元,其中該該組奇偶校驗不吻合位元可稱為差異(Disparity)。此外,錯誤症狀碼計算模組110可依據該組奇偶校驗不吻合位元進行轉換運作,以產生該組錯誤症狀碼。
第3圖繪示第2圖所示方法200於一實施例中所涉及之工作流程300。工作流程300說明如下。
於步驟310中,控制模組105設定一門檻s,尤其是將門檻s設定給錯誤症狀碼計算模組110以及錯誤定位器多項式決定模組120。例如:門檻s可以用來作為第1圖所示實施例中所述之錯誤症狀碼計算單元110-1、110-2、…、與110-s的數量s。又例如:門檻s可以用來作為第1圖所示實施例中所述之錯誤定位器多項式決定模組120在該相對應的工作流程當中針對該錯誤更正碼之的執行次數s。典型狀況下,步驟310中所述之門檻s在工作流程300中之初始值係被設定為小於t的值。
於步驟312中,錯誤症狀碼計算模組110(尤其是其內之錯誤症狀碼計算單元110-1、110-2、…、與110-s)計算s個錯誤症狀碼。例如:在s < t的狀況下,步驟312中所述之s個錯誤症狀碼可為步驟210中所述之s個錯誤症狀碼。這只是為了說明的目的而已,並非對本發明之限制。在s = t的狀況下,步驟312中所述之s個錯誤症狀碼可為上述之該另一組錯誤症狀碼。
於步驟314中,藉由錯誤定位器多項式決定模組120執行迴圈s次之計算,解碼電路100(尤其是其內之錯誤定位器多項式決定模組120以及秦氏搜尋模組130)依據該s個錯誤症狀碼決定對應的錯誤定位器多項式。例如:在s < t的狀況下,上述之對應的錯誤定位器多項式可代表步驟220中所述之該假定錯誤定位器多項式,其中步驟314之運作可包含步驟220之運作,且秦氏搜尋模組130可建立該假定錯誤定位器多項式。又例如:在s = t的狀況下,上述之對應的錯誤定位器多項式可代表步驟220中所述之該錯誤定位器多項式,其中錯誤定位器多項式決定模組120可依據該另一組錯誤症狀碼中之上述至少一部分錯誤症狀碼(例如:該另一組錯誤症狀碼中之一部分錯誤症狀碼、或該另一組錯誤症狀碼中之全部的錯誤症狀碼),依序決定該錯誤更正碼之該錯誤定位器多項式的該複數個係數Λ 1、Λ 2、…、與Λ t中之上述至少一其它係數(例如:上述一個或多個其它係數),以供秦氏搜尋模組130建立該錯誤定位器多項式(諸如多項式Λ(x))。
於步驟316中,控制模組105進行基於安全指數(Safety Index)y之檢查運作,以確認是否通過基於安全指數y之檢查。尤其是,控制模組105可檢查是否最新的y次迴圈之不符值(Discrepancy)Δ均等於零(於第3圖中係標示為「最新的y次迴圈之Δ = 0 ?」,以求簡明)。例如:控制模組105可檢查是否最新的連續y次迴圈中之每一次迴圈的不符值Δ都等於零。若最新的連續y次迴圈中之每一次迴圈的不符值Δ都等於零,則控制模組105判斷通過基於安全指數y之檢查;否則,控制模組105判斷不通過基於安全指數y之檢查。於是,當控制模組105判斷通過基於安全指數y之檢查時,進入步驟320;否則,進入步驟318。
於步驟318中,控制模組105設定s = t,以進行重新解碼。
於步驟320中,解碼電路100(尤其是其內之秦氏搜尋模組130、錯誤更正模組140、以及校驗模組150)進行秦氏搜尋、錯誤更正、以及校驗運作。例如:在s < t的狀況下,步驟320之運作可包含步驟230之運作、步驟240之運作、以及步驟250之運作。這只是為了說明的目的而已,並非對本發明之限制。在s = t的狀況下,步驟320之運作可包含:秦氏搜尋模組130執行該秦氏搜尋以找出該錯誤定位器多項式(例如:多項式Λ(x))之根;錯誤更正模組140可依據該錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之該另一更正結果;以及校驗模組150對該另一更正結果進行上述之至少一校驗運作,以產生對應的校驗結果,以供判斷是否通過校驗運作。
於步驟322中,控制模組105檢查是否根(即步驟320中所得之根)的數量等於對應的錯誤定位器多項式(即步驟314中所述之對應的錯誤定位器多項式)之維度且通過校驗運作,以判斷是否「錯誤為可更正」。例如:在s < t的狀況下,控制模組105檢查是否該假定錯誤定位器多項式之根的數量等於該假定錯誤定位器多項式之維度且於步驟320中所得之該更正結果(諸如步驟240中所述之該更正結果)已通過校驗運作,以判斷是否「錯誤為可更正」。又例如:在s = t的狀況下,控制模組105檢查是否該錯誤定位器多項式之根的數量等於該錯誤定位器多項式之維度且於步驟320中所得之該另一更正結果已通過校驗運作,以判斷是否「錯誤為可更正」。當偵測到根的數量等於對應的錯誤定位器多項式之維度且通過校驗運作(亦即,判斷「錯誤為可更正」)時,進入步驟330-1;否則,進入步驟330-2,以進行進一步的判斷。
於步驟324中,控制模組105檢查是否s = t,以判斷是否「錯誤為不可更正」。當偵測到s = t(亦即,判斷「錯誤為不可更正」)時,進入步驟330-2;否則,進入(或重新進入)步驟318。
於步驟330-1中,基於「錯誤為可更正」,控制模組105輸出對應的解碼結果。例如:在s < t的狀況下,控制模組105控制解碼電路100輸出該更正結果(諸如步驟250中所述之該更正結果)作為該錯誤更正碼之該解碼結果。又例如:在s = t的狀況下,控制模組105控制解碼電路100輸出該另一更正結果作為該錯誤更正碼之該解碼結果。
於步驟330-2中,基於「錯誤為不可更正」,控制模組105輸出錯誤不可更正之通知。
實作上,步驟316中所述之不符值Δ的計算方法可依據相關技術中的計算方法,諸如某些有關BCH碼之編碼/解碼的教科書中所教導的方法。
請注意,第3圖所示之工作流程300當中,步驟312與步驟314之間並未繪示用來檢查步驟312中所述之該s個錯誤症狀碼當中是否全部的錯誤症狀碼均等於零之檢查步驟。這只是為了說明的目的而已,並非對本發明之限制。依據本發明之某些實施例,第3圖所示之工作流程300可予以變化。例如:步驟312與步驟314之間可設置上述之檢查步驟,以便檢查步驟312中所述之該s個錯誤症狀碼當中是否全部的錯誤症狀碼均等於零。尤其是,於該些實施例中,當偵測到步驟312中所述之該s個錯誤症狀碼當中是否全部的錯誤症狀碼均等於零時,可忽略執行後續之至少一步驟之運作。
第4圖繪示第2圖所示方法200於另一實施例中所涉及之工作流程400。如第4圖所示,工作流程400中之大部分的步驟和第3圖所示工作流程300中之相對應的步驟相同,其中上述之步驟316於本實施例中係被代換為步驟416。
於步驟416中,控制模組105進行基於安全指數y之檢查運作,以確認是否通過基於安全指數y之檢查。尤其是,在y = 1的狀況下,控制模組105可檢查是否最新的一次迴圈之不符值Δ等於零(於第4圖中係標示為「最新的1次迴圈之Δ = 0 ?」,以求簡明)。若最新的一次迴圈之不符值Δ等於零,則控制模組105判斷通過基於安全指數y之檢查;否則,控制模組105判斷不通過基於安全指數y之檢查。於是,當控制模組105判斷通過基於安全指數y之檢查時,進入步驟320;否則,進入步驟318。
請注意,相較於第3圖所示之工作流程300,工作流程400更能達到省電、省時的目標。
依據本發明之某些實施例,在一個具備解碼電路100的系統中,安全指數y的大小可依據該系統的編碼對資料之保護強度(例如上述之該組奇偶校驗位元對上述之該組訊息位元的比率)來決定。例如:該系統的編碼對資料之保護強度愈弱,則安全指數y的大小可以愈大。又例如:該系統的編碼對資料之保護強度愈強,則安全指數y的大小可以愈小。
第5圖為依據本發明一實施例之一種具備第1圖所示解碼電路100之儲存裝置(Storage Device)500的示意圖,其中第2圖所示之方法200可應用於第5圖所示之儲存裝置500(尤其是其內之解碼電路100)。為了便於理解,本實施例之儲存裝置500可為一可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,儲存裝置500可為其它類型的記憶裝置,諸如固態硬碟(Solid State Drive, SSD)。
如第5圖所示,儲存裝置500包含有:一快閃記憶體(Flash Memory)520;以及一控制器,用來存取快閃記憶體520,其中該控制器可為一儲存控制器,諸如一記憶體控制器510(Memory Controller)。依據本實施例,記憶體控制器510包含一微處理器512、一唯讀記憶體(Read Only Memory, ROM)512M、一控制邏輯514、一緩衝記憶體516、與一介面邏輯518,且另包含一錯誤更正碼編碼/解碼模組510ECC,其中錯誤更正碼編碼/解碼模組510ECC包含第1圖所示之解碼電路100。唯讀記憶體係用來儲存一程式碼512C,而微處理器512則用來執行程式碼512C以控制對快閃記憶體520之存取(Access)。
於典型狀況下,快閃記憶體520包含複數個區塊(Block),而該控制器(例如:藉由微處理器512執行程式碼512C之記憶體控制器510)對快閃記憶體520進行抹除資料之運作的單位可為一區塊。另外,一區塊可記錄特定數量的頁(Page),其中該控制器(例如:藉由微處理器512執行程式碼512C之記憶體控制器510)對快閃記憶體520進行寫入資料之運作的單位可為一頁。
實作上,藉由微處理器512執行程式碼512C之記憶體控制器510可利用其本身內部之元件來進行諸多控制運作。例如:記憶體控制器510可利用錯誤更正碼編碼/解碼模組510ECC對寫入資料進行錯誤更正碼編碼運作、利用錯誤更正碼編碼/解碼模組510ECC(尤其是其內之解碼電路100)對讀取資料進行錯誤更正碼解碼運作、利用控制邏輯514來控制快閃記憶體520之存取運作(尤其是對至少一區塊或至少一頁之存取運作)、利用緩衝記憶體516進行所需之緩衝處理、以及利用介面邏輯518來與一主裝置(Host Device)溝通。本實施例與前述實施例/變化例相仿之處不再重複贅述。
於第5圖所示之架構中,儲存裝置500包含快閃記憶體520。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,儲存裝置500可為其它類型的儲存裝置,其中儲存裝置500可具備其它類型的儲存媒體,並且該控制器可存取上述其它類型的儲存媒體。這些變化例與前述實施例/變化例相仿之處不再重複贅述。
依據本實施例之某些變化例,儲存裝置500可設置於一電子裝置當中。如此,該電子裝置可享有解碼電路100所具備之省時、省電的效能。因此,相較於相關技術,依據方法200所實施之該電子裝置的整體效能更為強大。
依據本實施例之某些變化例,解碼電路100可設置於一電子裝置之一控制器(Controller)當中。如此,該電子裝置可享有解碼電路100所具備之省時、省電的效能。因此,相較於相關技術,依據方法200所實施之該電子裝置的整體效能更為強大。
第6圖為依據本發明另一實施例之一種具備第1圖所示解碼電路100之儲存裝置600的示意圖,其中第2圖所示之方法200可應用於第6圖所示之儲存裝置600(尤其是其內之解碼電路100)。為了便於理解,本實施例之儲存裝置600可為一可攜式記憶裝置(例如:符合SD/MMC、CF、MS、XD標準之記憶卡)。這只是為了說明的目的而已,並非對本發明之限制。依據本實施例之某些變化例,儲存裝置600可為其它類型的記憶裝置,諸如固態硬碟。
如第6圖所示,錯誤更正碼編碼/解碼模組510ECC(尤其是其內之解碼電路100)以及上述之控制邏輯514係整合成為同一模組,諸如控制邏輯614。因應架構上的改變,本實施例之該控制器可稱為記憶體控制器610。本實施例與前述實施例/變化例相仿之處不再重複贅述。
依據本實施例之某些變化例,儲存裝置600可設置於一電子裝置當中。如此,該電子裝置可享有解碼電路100所具備之省時、省電的效能。因此,相較於相關技術,依據方法200所實施之該電子裝置的整體效能更為強大。   以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧解碼電路
105‧‧‧控制模組
110‧‧‧錯誤症狀碼計算模組
110-1,110-2,…,110-t‧‧‧錯誤症狀碼計算單元
120‧‧‧錯誤定位器多項式決定模組
130‧‧‧秦氏搜尋模組
140‧‧‧錯誤更正模組
150‧‧‧校驗模組
200‧‧‧用來對一錯誤更正碼進行解碼之方法
210‧‧‧錯誤症狀碼計算步驟
220‧‧‧錯誤定位器多項式決定步驟
230‧‧‧秦氏搜尋步驟
240‧‧‧錯誤更正步驟
250‧‧‧校驗步驟
300,400‧‧‧工作流程
310‧‧‧門檻設定步驟
312‧‧‧錯誤症狀碼計算步驟
314‧‧‧錯誤定位器多項式決定步驟
316‧‧‧基於安全指數之檢查步驟
318‧‧‧重新解碼設定步驟
320‧‧‧秦氏搜尋與錯誤更正暨校驗步驟
322‧‧‧判斷「錯誤為可更正」是否成立之步驟
324‧‧‧判斷「錯誤為不可更正」是否成立之步驟
330-1‧‧‧基於「錯誤為可更正」的處理之步驟
330-2‧‧‧基於「錯誤為不可更正」的處理之步驟
416‧‧‧基於最低安全指數之檢查步驟
500,600‧‧‧儲存裝置
510,610‧‧‧記憶體控制器
510ECC‧‧‧錯誤更正碼編碼/解碼模組
512‧‧‧微處理器
512C‧‧‧程式碼
512M‧‧‧唯讀記憶體
514,614‧‧‧控制邏輯
516‧‧‧緩衝記憶體
518‧‧‧介面邏輯
520‧‧‧快閃記憶體
第1圖為依據本發明一實施例之一種用來對一錯誤更正碼(Error Correction Code)進行解碼之解碼電路的示意圖。
第2圖為依據本發明一實施例之一種用來對一錯誤更正碼進行解碼之方法的流程圖。
第3圖繪示第2圖所示方法於一實施例中所涉及之工作流程。
第4圖繪示第2圖所示方法於另一實施例中所涉及之工作流程。
第5圖為依據本發明一實施例之一種具備第1圖所示解碼電路之儲存裝置(Storage Device)的示意圖。
第6圖為依據本發明另一實施例之一種具備第1圖所示解碼電路之儲存裝置的示意圖。
100‧‧‧解碼電路
105‧‧‧控制模組
110‧‧‧錯誤症狀碼計算模組
110-1,110-2,...,110-t‧‧‧錯誤症狀碼計算單元
120‧‧‧錯誤定位器多項式決定模組
130‧‧‧秦氏搜尋模組
140‧‧‧錯誤更正模組
150‧‧‧校驗模組

Claims (23)

  1. 一種用來對一錯誤更正碼(Error Correction Code)進行解碼之方法,該方法包含有下列步驟:計算該錯誤更正碼之一組錯誤症狀碼(Error Syndrome),其中該錯誤更正碼係為一t-錯誤更正碼(t-Error Correcting Code)、且具有更正t個錯誤之能力,以及該組錯誤症狀碼的數量s小於t;依據該組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之一錯誤定位器多項式(Error Locator Polynomial)的複數個係數中之一組係數,以供建立一假定錯誤定位器多項式,其中該複數個係數的數量等於t,以及該組係數的數量等於s;執行一秦氏搜尋(Chien Search)以找出該假定錯誤定位器多項式之根;依據該假定錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之一更正結果;以及對該更正結果進行至少一校驗運作,以選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。
  2. 如申請專利範圍第1項所述之方法,其中對該更正結果進行該至少一校驗運作以選擇性地利用該更正結果作為該錯誤更正碼之該解碼結果之步驟另包含:當該至少一校驗運作之至少一校驗結果指出該更正結果係正確時,利用該更正結果作為該錯誤更正碼之該解碼結果。
  3. 如申請專利範圍第2項所述之方法,其中對該更正結果進行該至少一校驗運作以選擇性地利用該更正結果作為該錯誤更正碼之該解碼結果之 步驟另包含:當該至少一校驗運作之該至少一校驗結果指出該更正結果係正確時,利用該更正結果作為該錯誤更正碼之該解碼結果;否則,避免利用該更正結果作為該錯誤更正碼之該解碼結果。
  4. 如申請專利範圍第1項所述之方法,其中該至少一校驗運作包含一後校驗(Post Check)運作;以及對該更正結果進行該至少一校驗運作以選擇性地利用該更正結果作為該錯誤更正碼之該解碼結果之步驟另包含:依據該更正結果計算對應於該更正結果之一個或多個錯誤症狀碼,以偵測對應於該更正結果之全部的錯誤症狀碼是否均等於零;以及依據對應於該更正結果之全部的錯誤症狀碼是否均等於零,選擇性地利用該更正結果作為該錯誤更正碼之該解碼結果,其中,當對應於該更正結果之全部的錯誤症狀碼均等於零時,該更正結果係被用來作為該錯誤更正碼之該解碼結果,否則,該更正結果不被用來作為該錯誤更正碼之該解碼結果。
  5. 如申請專利範圍第4項所述之方法,其中該至少一校驗運作另包含一循環冗餘校驗(Cyclic Redundancy Check,CRC)運作。
  6. 如申請專利範圍第1項所述之方法,其中該至少一校驗運作包含一循環冗餘校驗(Cyclic Redundancy Check,CRC)運作。
  7. 如申請專利範圍第1項所述之方法,其中該方法另包含:當該至少一校驗運作之至少一校驗結果指出該更正結果係不正確時,計算 該錯誤更正碼之至少一其它錯誤症狀碼以產生另一組錯誤症狀碼,以供建立該錯誤定位器多項式並據以產生該錯誤更正碼之另一更正結果,其中該另一組錯誤症狀碼包含該組錯誤症狀碼與該至少一其它錯誤症狀碼,以及該另一組錯誤症狀碼的數量等於t。
  8. 如申請專利範圍第7項所述之方法,其中該方法另包含:依據該另一組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之該錯誤定位器多項式的該複數個係數中之至少一其它係數,以供建立該錯誤定位器多項式。
  9. 如申請專利範圍第8項所述之方法,其中該方法另包含:執行該秦氏搜尋以找出該錯誤定位器多項式之根;以及依據該錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之該另一更正結果。
  10. 如申請專利範圍第1項所述之方法,其中該錯誤更正碼包含一組訊息(Message)位元以及一組奇偶校驗(Parity)位元;以及該方法另包含:對該組訊息位元進行編碼,以產生一組編碼位元;對該組編碼位元以及該組奇偶校驗位元進行位元互斥或(Bitwise Exclusive OR,Bitwise XOR)運算,以產生一組奇偶校驗不吻合(Parity Mismatch)位元;以及依據該組奇偶校驗不吻合位元進行轉換運作,以產生該組錯誤症狀碼。
  11. 一種用來對一錯誤更正碼(Error Correction Code)進行解碼之解碼 電路,該解碼電路包含有:一錯誤症狀碼(Error Syndrome)計算模組,用來計算該錯誤更正碼之一組錯誤症狀碼,其中該錯誤更正碼係為一t-錯誤更正碼(t-Error Correcting Code)、且具有更正t個錯誤之能力,以及該組錯誤症狀碼的數量s小於t;一錯誤定位器多項式(Error Locator Polynomial)決定模組,用來依據該組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之一錯誤定位器多項式的複數個係數中之一組係數,以供建立一假定錯誤定位器多項式,其中該複數個係數的數量等於t,以及該組係數的數量等於s;一秦氏搜尋(Chien Search)模組,用來執行一秦氏搜尋以找出該假定錯誤定位器多項式之根;一錯誤更正模組,用來依據該假定錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之一更正結果;一校驗(Check)模組,用來對該錯誤更正碼之該更正結果進行至少一校驗運作,以產生至少一校驗結果;以及一控制模組,用來控制該解碼電路之運作,其中在該控制模組之控制下,該解碼電路依據該至少一校驗運作之該至少一校驗結果,選擇性地利用該更正結果作為該錯誤更正碼之一解碼結果。
  12. 如申請專利範圍第11項所述之解碼電路,其中在該控制模組之控制下,當該至少一校驗運作之該至少一校驗結果指出該更正結果係正確時,該解碼電路利用該更正結果作為該錯誤更正碼之該解碼結果。
  13. 如申請專利範圍第12項所述之解碼電路,其中在該控制模組之控制下,當該至少一校驗運作之該至少一校驗結果指出該更正結果係正確時,該解碼電路利用該更正結果作為該錯誤更正碼之該解碼結果,否則,該解碼電路避免利用該更正結果作為該錯誤更正碼之該解碼結果。
  14. 如申請專利範圍第11項所述之解碼電路,其中該至少一校驗運作包含一後校驗(Post Check)運作;該校驗模組依據該更正結果計算對應於該更正結果之一個或多個錯誤症狀碼,以偵測對應於該更正結果之全部的錯誤症狀碼是否均等於零;以及在該控制模組之控制下,該解碼電路依據對應於該更正結果之全部的錯誤症狀碼是否均等於零,選擇性地利用該錯誤更正碼之該更正結果作為該錯誤更正碼之該解碼結果,其中,當對應於該更正結果之全部的錯誤症狀碼均等於零時,該更正結果係被用來作為該錯誤更正碼之該解碼結果,否則,該更正結果不被用來作為該錯誤更正碼之該解碼結果。
  15. 如申請專利範圍第14項所述之解碼電路,其中該至少一校驗運作另包含一循環冗餘校驗(Cyclic Redundancy Check,CRC)運作。
  16. 如申請專利範圍第11項所述之解碼電路,其中該至少一校驗運作包含一循環冗餘校驗(Cyclic Redundancy Check,CRC)運作。
  17. 如申請專利範圍第11項所述之解碼電路,其中在該控制模組之控制下,當該至少一校驗運作之該至少一校驗結果指出該更正結果係不正確時,該錯誤症狀碼計算模組計算該錯誤更正碼之至少一其它錯誤症狀碼以 產生另一組錯誤症狀碼,以供建立該錯誤定位器多項式並據以產生該錯誤更正碼之另一更正結果,其中該另一組錯誤症狀碼包含該組錯誤症狀碼與該至少一其它錯誤症狀碼,以及該另一組錯誤症狀碼的數量等於t。
  18. 如申請專利範圍第17項所述之解碼電路,其中在該控制模組之控制下,該錯誤定位器多項式決定模組依據該另一組錯誤症狀碼中之至少一部分錯誤症狀碼,依序決定該錯誤更正碼之該錯誤定位器多項式的該複數個係數中之至少一其它係數,以供建立該錯誤定位器多項式。
  19. 如申請專利範圍第18項所述之解碼電路,其中該秦氏搜尋模組執行該秦氏搜尋以找出該錯誤定位器多項式之根;以及該錯誤更正模組依據該錯誤定位器多項式之根更正該錯誤更正碼,以產生該錯誤更正碼之該另一更正結果。
  20. 如申請專利範圍第11項所述之解碼電路,其中該錯誤更正碼包含一組訊息(Message)位元以及一組奇偶校驗(Parity)位元;該解碼電路對該組訊息位元進行編碼,以產生一組編碼位元;該解碼電路對該組編碼位元以及該組奇偶校驗位元進行位元互斥或(Bitwise Exclusive OR,Bitwise XOR)運算,以產生一組奇偶校驗不吻合(Parity Mismatch)位元;以及該錯誤症狀碼計算模組依據該組奇偶校驗不吻合位元進行轉換運作,以產生該組錯誤症狀碼。
  21. 一種記憶體控制器(Memory Controller),其包含申請專利範圍第11項所述之解碼電路。
  22. 一種儲存裝置(Storage Device),其包含申請專利範圍第11項所述之解碼電路。
  23. 一種電子裝置之控制器(Controller),其中該控制器包含申請專利範圍第11項所述之解碼電路。
TW104129917A 2015-09-10 2015-09-10 用來對一錯誤更正碼進行解碼之方法與解碼電路 TWI566091B (zh)

Priority Applications (6)

Application Number Priority Date Filing Date Title
TW104129917A TWI566091B (zh) 2015-09-10 2015-09-10 用來對一錯誤更正碼進行解碼之方法與解碼電路
US15/259,065 US10404283B2 (en) 2015-09-10 2016-09-08 Method and associated decoding circuit for decoding an error correction code
KR1020160116682A KR101819152B1 (ko) 2015-09-10 2016-09-09 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
CN201910991519.3A CN110768751B (zh) 2015-09-10 2016-09-09 译码的方法与电路、存储器控制器、储存装置、控制器
CN201610812822.9A CN106533615B (zh) 2015-09-10 2016-09-09 译码的方法与电路、存储器控制器、储存装置、控制器
US16/516,268 US10848184B2 (en) 2015-09-10 2019-07-19 Method for controlling storage device with aid of error correction and associated apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW104129917A TWI566091B (zh) 2015-09-10 2015-09-10 用來對一錯誤更正碼進行解碼之方法與解碼電路

Publications (2)

Publication Number Publication Date
TWI566091B true TWI566091B (zh) 2017-01-11
TW201710893A TW201710893A (zh) 2017-03-16

Family

ID=58257714

Family Applications (1)

Application Number Title Priority Date Filing Date
TW104129917A TWI566091B (zh) 2015-09-10 2015-09-10 用來對一錯誤更正碼進行解碼之方法與解碼電路

Country Status (4)

Country Link
US (2) US10404283B2 (zh)
KR (1) KR101819152B1 (zh)
CN (2) CN106533615B (zh)
TW (1) TWI566091B (zh)

Families Citing this family (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10312944B2 (en) 2017-03-17 2019-06-04 Micron Technology, Inc. Error correction code (ECC) operations in memory for providing redundant error correction
TWI657336B (zh) 2017-08-28 2019-04-21 慧榮科技股份有限公司 用以檢測資料儲存裝置之資料儲存方法及其資料儲存裝置
KR20190062908A (ko) 2017-11-29 2019-06-07 에스케이하이닉스 주식회사 에러 정정 방법 및 칩 킬 감지 방법
US10831596B2 (en) 2018-01-22 2020-11-10 Micron Technology, Inc. Enhanced error correcting code capability using variable logical to physical associations of a data block
US10756763B2 (en) * 2018-09-28 2020-08-25 Innogrit Technologies Co., Ltd. Systems and methods for decoding bose-chaudhuri-hocquenghem encoded codewords
KR102657783B1 (ko) * 2018-10-12 2024-04-15 수퍼멤, 인크. 오류 정정 및 데이터 클리닝 회로가 구비된 메모리 시스템
US11509473B2 (en) * 2020-07-20 2022-11-22 Pqsecure Technologies, Llc Architecture and method for hybrid isogeny-based cryptosystems
US11689219B1 (en) * 2021-08-12 2023-06-27 Kioxia Corporation Method and system for error correction in memory devices using irregular error correction code components

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107190A1 (en) * 2001-08-21 2006-05-18 Equator Technologies, Inc. Even-load software reed-solomon decoder
TW201031127A (en) * 2009-02-03 2010-08-16 Silicon Motion Inc Method and circuit for decoding an error correction code
TW201102807A (en) * 2009-07-01 2011-01-16 Silicon Motion Inc Method for encoding and decoding an error correction code and coder-decoder
US8418028B2 (en) * 2008-03-01 2013-04-09 Kabushiki Kaisha Toshiba Chien search device and Chien search method
US8739007B2 (en) * 2009-06-30 2014-05-27 Apple Inc. Chien search using multiple basis representation

Family Cites Families (13)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6643819B1 (en) 2000-01-26 2003-11-04 Maxtor Corporation Hybrid root-finding technique
FR2817418B1 (fr) 2000-11-27 2003-02-21 Matra Nortel Communications Procede de decodage d'un bloc de symboles et dispositif mettant en oeuvre un tel procede
FR2860360B1 (fr) * 2003-09-29 2005-12-09 Canon Kk Dispositif de codage /decodage utilisant un codeur/decodeur de reed-solomon
US8370727B2 (en) * 2009-02-03 2013-02-05 Silicon Motion, Inc. Method and circuit for decoding an error correction code
JP5017407B2 (ja) 2010-03-24 2012-09-05 株式会社東芝 半導体記憶装置
KR20120063329A (ko) * 2010-12-07 2012-06-15 삼성전자주식회사 에러 체크 및 정정기 및 그것을 포함하는 메모리 시스템
KR101807538B1 (ko) * 2010-12-30 2017-12-12 삼성전자주식회사 듀얼-신드롬 생성기를 포함하는 에러 정정 코드 블록, 이의 동작 방법, 및 상기 에러 정정 코드 블록을 포함하는 시스템
WO2012098157A2 (en) * 2011-01-18 2012-07-26 Universität Zürich Evaluation of polynomials over finite fields and decoding of cyclic tools
KR101747794B1 (ko) 2011-03-29 2017-06-16 삼성전자주식회사 에러 정정 디코더 및 그것의 에러 정정 방법
CN102567134B (zh) 2012-01-06 2015-01-07 威盛电子股份有限公司 存储器模块的错误检查与校正系统以及方法
JP2014033364A (ja) 2012-08-03 2014-02-20 Samsung Electronics Co Ltd 誤り検出訂正回路、及びメモリ装置
KR101432909B1 (ko) 2012-12-21 2014-08-22 인하대학교 산학협력단 병렬 bch 복호기를 위한 고속 소면적의 수정된 스텝-바이-스텝 복호 방법 및 그 연산 회로
US9906240B2 (en) * 2015-06-03 2018-02-27 SK Hynix Inc. One-shot decoder for two-error-correcting BCH codes

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20060107190A1 (en) * 2001-08-21 2006-05-18 Equator Technologies, Inc. Even-load software reed-solomon decoder
US8418028B2 (en) * 2008-03-01 2013-04-09 Kabushiki Kaisha Toshiba Chien search device and Chien search method
TW201031127A (en) * 2009-02-03 2010-08-16 Silicon Motion Inc Method and circuit for decoding an error correction code
US8739007B2 (en) * 2009-06-30 2014-05-27 Apple Inc. Chien search using multiple basis representation
TW201102807A (en) * 2009-07-01 2011-01-16 Silicon Motion Inc Method for encoding and decoding an error correction code and coder-decoder

Also Published As

Publication number Publication date
CN110768751B (zh) 2022-01-25
CN106533615A (zh) 2017-03-22
US10848184B2 (en) 2020-11-24
CN106533615B (zh) 2019-11-15
US10404283B2 (en) 2019-09-03
KR101819152B1 (ko) 2018-01-16
KR20170035795A (ko) 2017-03-31
CN110768751A (zh) 2020-02-07
US20190341937A1 (en) 2019-11-07
US20170077962A1 (en) 2017-03-16
TW201710893A (zh) 2017-03-16

Similar Documents

Publication Publication Date Title
TWI566091B (zh) 用來對一錯誤更正碼進行解碼之方法與解碼電路
US7823043B2 (en) Corruption-resistant data porting with multiple error correction schemes
US8850296B2 (en) Encoding method and system, decoding method and system
KR102143353B1 (ko) 메모리 소자로부터 액세스된 데이터의 오류를 정정하는 장치 및 방법
US20080320369A1 (en) Data retrieval from a storage device using a combined error correction and detection approach
US9100054B2 (en) Data processing systems and methods providing error correction
CN102024501A (zh) 存储器系统以及对存储器系统的控制方法
US8806295B2 (en) Mis-correction and no-correction rates for error control
JP2011198272A (ja) 半導体記憶装置および半導体記憶装置の制御方法
US9960788B2 (en) Memory controller, semiconductor memory device, and control method for semiconductor memory device
TWI397811B (zh) 錯誤修正碼之編碼及解碼方法以及編碼解碼器
US10200066B2 (en) Code reconstruction scheme for multiple code rate TPC decoder
US20090106634A1 (en) Error detecting and correcting circuit using chien search, semiconductor memory controller including error detecting and correcting circuit, semiconductor memory system including error detecting and correcting circuit, and error detecting and correcting method using chien search
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
US20170161141A1 (en) Method and apparatus for correcting data in multiple ecc blocks of raid memory
TW202006735A (zh) 編碼方法及使用所述編碼方法的記憶體儲存裝置
TWI551060B (zh) Bch解碼方法及其解碼器
CN102684841A (zh) 一种编码计算单元及解码数据校验方法
KR101154923B1 (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 비씨에이치 디코딩 방법
JP7182373B2 (ja) 半導体集積回路、記憶装置及びエラー訂正方法
US10114569B2 (en) Computing system with shift expandable coding mechanism and method of operation thereof
JP2013069377A (ja) 復号方法、復号装置および記憶装置
JP2013201503A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法
JP2015032885A (ja) 符号化装置及び復号装置
JP2013201482A (ja) チェンサーチ回路、復号器、記憶装置およびチェンサーチ方法