TWI397811B - 錯誤修正碼之編碼及解碼方法以及編碼解碼器 - Google Patents

錯誤修正碼之編碼及解碼方法以及編碼解碼器 Download PDF

Info

Publication number
TWI397811B
TWI397811B TW098126686A TW98126686A TWI397811B TW I397811 B TWI397811 B TW I397811B TW 098126686 A TW098126686 A TW 098126686A TW 98126686 A TW98126686 A TW 98126686A TW I397811 B TWI397811 B TW I397811B
Authority
TW
Taiwan
Prior art keywords
code
short
long
symptom
zero
Prior art date
Application number
TW098126686A
Other languages
English (en)
Other versions
TW201102807A (en
Inventor
Tsung Chieh Yang
Original Assignee
Silicon Motion Inc
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 Silicon Motion Inc filed Critical Silicon Motion Inc
Priority to US12/785,778 priority Critical patent/US8468432B2/en
Publication of TW201102807A publication Critical patent/TW201102807A/zh
Application granted granted Critical
Publication of TWI397811B publication Critical patent/TWI397811B/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
    • 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

Landscapes

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

Description

錯誤修正碼之編碼及解碼方法以及編碼解碼器
本發明係有關於錯誤修正碼,特別是有關於錯誤修正碼之編碼及解碼。
錯誤修正碼(error correction code)係用於修正資料的錯誤。通信系統所傳輸的資料於傳輸端傳送前經常事先被編碼為錯誤修正碼(包含資料訊息及檢查碼)。當接收端收到錯誤修正碼資料時,即使資料於傳輸過程中遭受損毀而產生隨機錯誤,亦可藉解碼錯誤修正碼而回復正確的資料。同樣的,資料儲存系統亦經常在儲存資料前將所儲存的資料編碼為錯誤修正碼。當資料於儲存過程中遭受損毀而產生隨機錯誤時,亦可藉解碼錯誤修正碼而回復正確的資料。常見的錯誤修正碼如BCH碼(Bose,Ray-Chaudhuri,and Hocquenghem code)及RS碼(Reed-Solomon code)。BCH碼常用於快閃記憶體資料的儲存,而RS碼常用於光碟資料的儲存。
當資料儲存系統欲取出其所儲存的資料時,所取出的為編碼後的錯誤修正碼,因此在資料使用前必須先解碼錯誤修正碼,以還原為原始資料。第1圖為錯誤修正碼之習知解碼方法100的流程圖。首先,解碼器接收一錯誤修正碼(步驟102)。接著,解碼器依據該錯誤修正碼的檢查碼(parity)計算多個症狀碼(syndrome)(步驟104)。接著,解碼器檢查是否該等症狀碼皆為零(步驟106)。若該等症狀碼為零,表示錯誤修正碼沒有發生錯誤,因此不需進一步的 修正。反之,若該等症狀碼有其中之一不為零,表示錯誤修正碼有錯誤發生,因此必須對錯誤修正碼進行修正。首先,解碼器依據該等症狀碼計算一錯誤多項式(error-location polynomial)的多個係數(步驟108)。接著,解碼器執行一秦氏搜尋(Chien search)以找出該錯誤多項式之根(步驟110)。由於該錯誤多項式之根指示錯誤修正碼中發生錯誤的位元之位置,因此解碼器便可依據該錯誤多項式之根修正該錯誤修正碼(步驟112),而得到無錯誤的錯誤修正碼,亦即得到正確之資料。
然而,當解碼器於步驟108計算錯誤多項式的係數時,會耗費許多時間。同樣的,當解碼器於步驟110進行秦式搜尋以找出錯誤多項式的根時,亦會耗費許多時間。於習知的解碼方法100中,只要錯誤修正碼的多個症狀碼其中之一不為零便表示有錯誤發生,因此必須執行步驟108與步驟110以便修正錯誤,也因而造成系統的解碼時間的延遲。於錯誤修正碼的多個症狀碼不為零時,若能在部分情況中以其他方式修正錯誤修正碼,進而避免於步驟108中計算錯誤多項式的係數以及於步驟110中進行秦式搜尋以找出錯誤多項式的根,則可大大的減少所需的解碼時間,而增進解碼器的效能。因此,需要一種可減少錯誤修正碼之解碼時間的編碼及解碼方法。
有鑑於此,本發明之目的在於提供一種錯誤修正碼之編碼及解碼方法,以解決習知技術存在之問題。首先,接收一原始資料。接著將該原始資料分割為多個區段資料。 接著,依據一第一產生多項式(generator polynomial)分別產生該等區段資料之短檢查碼(short parity)。接著,附加該等短檢查碼於該等區段資料之後,以分別產生多個短碼字(short codeword)。接著,結合該等短碼字以得到一編碼資料。接著,依據一第二產生多項式(generator polynomial)以產生該編碼資料之長檢查碼(long parity),其中該第一產生多項式為該第二產生多項式之至少一個最小多項式(minimum polynomial)的函式。最後,附加該長檢查碼於該編碼資料之後,以產生該錯誤修正碼之一長碼字(long codeword)。
本發明提供一種錯誤修正碼之編碼解碼器。於一實施例中,該編碼解碼器包括一錯誤修正碼編碼器以及一錯誤修正碼解碼器。該錯誤修正碼編碼器接收一原始資料,將該原始資料分割為多個區段資料,產生該等區段資料之短檢查碼(short parity),附加該等短檢查碼於該等區段資料之後以分別產生多個短碼字(short codeword),結合該等短碼字以得到一編碼資料,產生該編碼資料之長檢查碼(long parity),以及附加該長檢查碼於該編碼資料之後以產生一長碼字(long codeword),以供儲存於一儲存媒體。該錯誤修正碼解碼器自該儲存媒體讀出該長碼字,自該長碼字取出其所包含的該等短碼字,依據該等短碼字的該等短檢查碼計算該等短碼字的多個短症狀碼(short syndrome),檢查是否該等短症狀碼皆為零,以及當該等短症狀碼其中之一至數個非零短症狀碼不為零時,利用該等非零短症狀碼更正對應之該等短碼字。
本發明更提供一種錯誤修正碼之解碼方法。首先,接收該錯誤修正碼之一長碼字(long codeword),其中該長碼字包括多個短碼字(short codeword)及一長檢查碼(long parity),每一該等短碼字均包括一短檢查碼(short parity)。接著,自該長碼字取出其所包含的該等短碼字。接著,依據該等短碼字的該等短檢查碼計算該等短碼字的多個短症狀碼(short syndrome)。接著,檢查是否該等短症狀碼皆為零。當該等短症狀碼其中之一至數個非零短症狀碼不為零時,利用該等非零短症狀碼更正對應之該等短碼字。當該等短症狀碼計算完畢後,依據該長碼字的該長檢查碼計算該長碼字的一長症狀碼(long syndrome)。接著,檢查是否該長症狀碼為零。當該長症狀碼不為零時,檢查是否該等非零短症狀碼均可正確更正對應之該等短碼字。最後,當該等非零短症狀碼均可正確更正對應之該等短碼字時,利用該等非零短症狀碼更正該長症狀碼,以得一更正後長症狀碼。
為了讓本發明之上述和其他目的、特徵、和優點能更明顯易懂,下文特舉數較佳實施例,並配合所附圖示,作詳細說明如下:
第2圖為依據本發明之資料儲存系統200的區塊圖。於一實施例中,資料儲存系統200包括一主機202以及一資料儲存裝置204。該資料儲存裝置204包括一控制器212及一儲存媒體214。於一實施例中,控制器212包括一錯誤修正碼編碼器222以及一錯誤修正碼解碼器224。當主 機202欲儲存資料D1入資料儲存裝置204時,控制器212之錯誤修正碼編碼器222先將資料D1編碼為錯誤修正碼C1,控制器212再將錯誤修正碼C1儲存於儲存媒體214。當主機202自資料儲存裝置204讀取資料D2時,控制器212先自儲存媒體214讀取包含資料D2的錯誤修正碼C2,再由控制器212之錯誤修正碼解碼器224將錯誤修正碼C2解碼為資料D2,最後控制器212再將資料D2傳送至主機202。於一實施例中,資料儲存裝置204為一記憶卡,儲存媒體214為一快閃記憶體,而錯誤修正碼C1與C2為BCH碼。於另一實施例中,資料儲存裝置204為一光碟機,儲存媒體214為一光碟片,而錯誤修正碼C1與C2為RS碼。請注意到,儲存裝置與錯誤修正碼之類型並非本發明之限制,熟悉此項技藝者在本發明之實施例的教導下當可將其應用至任何類型之儲存裝置與錯誤修正碼。
第3A圖為依據本發明之錯誤修正碼編碼器300的區塊圖。於一實施例中,錯誤修正碼編碼器300包括短碼字編碼器302、添附器304、長碼字編碼器306、以及添附器308。第3B圖為依據本發明之錯誤修正碼之編碼方法350的流程圖。第3A圖的錯誤修正碼編碼器300係依據第3B圖之編碼方法350將原始資料D編碼為錯誤修正碼之一長碼字CL 。首先,錯誤修正碼編碼器300接收一原始資料D(步驟352)。接著,錯誤修正碼編碼器300將該原始資料D分割為多個區段資料(步驟354)。當短碼字編碼器302收到該等區段資料後,短碼字編碼器302接著依據一第一產生多項式(generator polynomial)依序產生該等區段資料之短檢查 碼(short parity)Ps(步驟356)。
接著,添附器304附加該等短檢查碼Ps於該等區段資料之後,以分別產生多個短碼字(short codeword)Cs(步驟358)。長碼字編碼器306接著結合該等短碼字Ps以得到一編碼資料(步驟360),並依據一第二產生多項式(generator polynomial)以產生該編碼資料之長檢查碼(long parity)PL (步驟362)。最後,添附器308附加該長檢查碼PL 於該編碼資料之後,以產生該錯誤修正碼之一長碼字(long codeword)CL (步驟364)。其中,短碼字編碼器302之第一產生多項式為長碼字編碼器306之第二產生多項式的至少一個最小多項式(minimum polynomial)的函式。於一實施例中,該第一產生多項式為該第二產生多項式之至少一個最小多項式的最小公倍式(least common multiple,LCM)。舉例來說,假設長碼字編碼器306對應的第二產生多項式g(x)為多個最小多項式Ψ1 (x)、Ψ2 (x)、…、Ψk (x)的最小公倍式{Ψ1 (x)×Ψ2 (x)×…×Ψk (x)}。於一實施例中,短碼字編碼器302對應的第一產生多項式g’(x)為最小多項式Ψ1 (x)。於另一實施例中,短碼字編碼器302對應的第一產生多項式g’(x)為最小多項式Ψ1 (x)與Ψ2 (x)的最小公倍式[Ψ1 (x)×Ψ2 (x)]。
第4圖為依據本發明所產生的一長碼字CL 的示意圖。長碼字CL 由N個短碼字CS1 、CS2 、…、CSN 及一個長檢查碼PL 所組成。每一個短碼字CS1 、CS2 、…、CSN 包括一區段資料及一短檢查碼。舉例來說,短碼字CS1 由檢查碼PS1 接續於相對應的區段資料D1 之後而形成,短碼字CS2 由檢查碼PS2 接續於相對應的區段資料D2 之後而形成,而短碼 字CSN 由檢查碼PSN 接續於相對應的區段資料DN 之後而形成。原始資料係被切割為多個區段資料D1 、D2 、…、DN ,而原始資料在經由第3A圖之錯誤修正碼編碼器300編碼後形成第4圖之長碼字CL
第5圖為依據本發明之編碼器500的電路圖,該編碼器500可為第3A圖之短碼字編碼器302或長碼字編碼器306。假設編碼器500係依據一產生多項式g(x)將資料DA 轉換為檢查碼P,而產生多項式g(x)的一次項係數為g1 、二次項係數為g2 、…、N次項係數為gN 。編碼器500包括加法器540、乘法器521~52N、加法器501~50N、以及緩衝器511~51N及530。首先,資料DA 的位元依次被送至加法器540。加法器540依次將資料DA 的位元與緩衝器51N儲存的資料位元DDN 相加而得到資料DB 。乘法器521、522、…、52N接著分別將資料DB 與產生多項式g(x)的係數g1 、g2 、…、gN 相乘而分別得到資料DC1 、DC2 、…、DCN 。資料DB 在經過緩衝器530的儲存後,依次由加法器501、502、…、50N分別與資料DC1 、DC2 、…、DCN 相加,而得到資料DDN 。最後,緩衝器51N儲存資料DDN 後,將資料DDN 輸出為檢查碼P。
第6圖為依據本發明之錯誤修正碼解碼器600的區塊圖。於一實施例中,錯誤修正碼解碼器600包括症狀碼計算模組602、錯誤多項式計算模組604、秦式搜尋模組606、以及控制電路608。當錯誤修正碼解碼器600收到錯誤修正碼之一長碼字時,錯誤修正碼解碼器600自該長碼字取出其所包含的多個短碼字。首先,症狀碼計算模組602依 據該等短碼字的短檢查碼計算該等短碼字的多個短症狀碼(short syndrome)S1a ,S1b ,...,S1N ,並依據該長碼字的該長檢查碼計算該長碼字的多個長症狀碼(long syndrome)S1 ,S2 ,...,SK 。錯誤多項式計算模組604用以依據長碼字之長症狀碼S1 ,S2 ,...,SK 計算該長碼字之錯誤多項式(error location polynomial)的係數。秦式搜尋模組606用以找出該錯誤多項式之多個根,以供修正錯誤修正碼之長碼字。此外,當短碼字的短症狀碼S1a ,S1b ,...,S1N 不為0時,錯誤多項式計算模組604亦會依據不為零的短症狀碼計算短碼字之錯誤多項式,並由秦式搜尋模組606進行秦式搜尋找出短碼字之錯誤多項式的根,以立即更正短碼字發生之錯誤。與第1圖的習知方法100類似,控制電路608檢查長症狀碼S1 ,S2 ,...,SK 是否為零,並於該等長症狀碼S1 ,S2 ,...,SK 皆為零時停止錯誤多項式計算模組604對錯誤多項式之係數的計算,並停止該秦式搜尋模組606對錯誤多項式之根的搜尋。然而,控制電路608尚有其他功能,可減少解碼長碼字所需之時間,而提升錯誤修正碼解碼器600的效能。此部分功能將以第8圖說明。
於一實施例中,由於用以編碼短碼字的第一產生多項式是用以編碼長碼字的第二產生多項式的最小多項式的函式,因此可利用同一組症狀碼計算模組602計算長碼字的症狀碼與短碼字的症狀碼。第7圖為依據本發明之症狀碼計算模組700的電路圖。症狀碼計算模組700包括多個症狀碼產生器701、702、…、70K,該等症狀碼產生器701、702、…、70K分別產生長症狀碼之長症狀碼S1 、S2 、…、 SK 。症狀碼產生器701亦產生多個短碼字的短症狀碼S1a ,S1b ,...,S1N 。於一實施例中,長碼字的資料位元D被依次遞送至症狀碼產生器702、…、70K,當長碼字的資料位元D被處理完畢,症狀碼產生器702、…、70K便產生長碼字之長症狀碼S2 、…、SK 。同時,短碼字的資料位元D亦依序被遞送至症狀碼產生器701。每當一短碼字的資料位元D被處理完畢,症狀碼產生器701便產生該短碼字相應之一短症狀碼。例如,當區段資料D1 與短檢查碼PS1 被輸入至症狀碼產生器701時,症狀碼產生器701便產生短碼字CS1 之短症狀碼;當區段資料D2 與短檢查碼PS2 被輸入至症狀碼產生器701時,症狀碼產生器701便產生短碼字CS2 之短症狀碼。由於長碼字係由多個短碼字所組成,當症狀碼產生器701將長碼字所包括的多個短碼字的資料位元D均處理完畢,症狀碼產生器701便產生長碼字之長症狀碼S1
第7圖之每一症狀碼產生器701、702、…、70K包括一加法器、一乘法器、以及一緩衝器。舉例來說,於第一症狀碼產生器701中,緩衝器711儲存資料D1 並將其輸出。加法器731將長碼字的資料位元D與緩衝器711輸出的資料D1 相加後得到一第一症狀碼S1 。乘法器721將係數α與症狀碼S1 相乘後得到資料D1 ,而新得到的資料D1 再被送至緩衝器711中儲存。症狀碼產生器701之係數α係長碼字編碼器之產生多項式與短碼字編碼器之產生多項式的共同根,而其他症狀碼產生器702、…、70K的係數分別為α2 、…、αK 。而α、α2 、…、αK 為長碼字編碼器之產生多項式的根。
第8圖為依據本發明之錯誤修正碼之解碼方法800的流程圖。第6圖之錯誤修正碼解碼器600依據方法800進行錯誤修正碼之解碼。首先,錯誤修正碼解碼器600接收一長碼字(步驟802)。接著,症狀碼計算模組602循序計算該長碼字中一短碼字之短症狀碼(步驟804),例如,錯誤修正碼解碼器600首先對長碼字CL 中第一個短碼字CS1 進行計算。此時控制電路608檢查是否計算得到的短症狀碼為零(步驟806)。當短症狀碼為零時,表示短碼字正確無誤,因此症狀碼計算模組602繼續計算該長碼字中其他的短碼字之短症狀碼(步驟804),例如,接著計算第二個短碼字CS2 、第三個短碼字CS3 ......直到該長碼字中所有短碼字均處理完畢為止(步驟812)。當短症狀碼不為零時,表示短碼字有錯誤,因此控制電路608利用非零短症狀碼更正該短碼字並紀錄更正結果(步驟808),再由症狀碼計算模組602繼續計算該長碼字中的短碼字之短症狀碼(步驟804),直到該長碼字中所有短碼字均處理完畢為止(步驟810)。
接著,症狀碼計算模組602計算長碼字之長症狀碼(步驟814)。若長症狀碼為零(步驟816),表示長碼字正確無誤,則該長碼字之解碼結束。若長症狀碼不為零(步驟816),表示長碼字有錯誤。此時控制電路608繼續檢查是否所有非零短症狀碼均可正確更正短碼字(步驟818)。若所有非零短症狀碼均可正確更正短碼字(步驟818),則控制電路608利用非零短症狀碼更正長症狀碼(步驟820),例如,若第四短碼字之CS4 之短症狀碼並非全為零,則利用該非零短症狀碼去更正非零長症狀碼中相對應的位置。若更正 後長症狀碼為零(步驟822),表示該些錯誤已藉由短症狀碼更正成功,則可將該些利用短碼字更正的更正結果回覆予主機,無需再利用長症狀碼進行更正整個長碼字,可大幅節省時間。若更正後長症狀碼不為零(步驟822),或部分非零短症狀碼無法正確更正短碼字(步驟818),則控制電路608利用原本的長症狀碼針對無法正確更正的短碼字進行修正(步驟824),以得到正確的長碼字,而該長碼字之解碼結束。
若當所有短症狀碼為零時即認為該長碼字正確無誤,可能會發生誤判。因為短症狀碼的更正能力較低,可能僅有一個或兩個位元的更正能力,而當該短碼字發生的錯誤超過該短症狀碼的更正能力時,例如出現8個位元的錯誤,該短症狀碼亦可能被計算為零。因此需要利用更正能力較強的長症狀碼再度進行檢驗。長症狀碼的更正能力較高,可能有24個位元的更正能力。故若某短碼字中出現8個位元的錯誤,仍可藉由長症狀碼發現,並進行後續更正。發生誤判低機率就可降低。
雖然本發明已以較佳實施例揭露如上,然其並非用以限定本發明,任何熟習此項技術者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
(第2圖)
202‧‧‧主機
204‧‧‧資料儲存裝置
212‧‧‧控制器
214‧‧‧儲存媒體
222‧‧‧錯誤修正碼編碼器
224‧‧‧錯誤修正碼解碼器
(第3A圖)
300‧‧‧錯誤修正碼編碼器
302‧‧‧短碼字編碼器
304‧‧‧添附器
306‧‧‧長碼字編碼器
309‧‧‧添附器
(第4圖)
CL ‧‧‧長碼字
CS1 、CS2 、…、CSN ‧‧‧短碼字
D1 、D2 、…、DN ‧‧‧區段資料
PS1 、PS2 、…、PSN ‧‧‧短檢查碼
PL ‧‧‧長檢查碼
(第5圖)
500‧‧‧短碼字編碼器或長碼字編碼器
530,511-51N‧‧‧緩衝器
501-50N‧‧‧加法器
521-52N‧‧‧乘法器
(第6圖)
600‧‧‧錯誤修正碼解碼器
602‧‧‧症狀碼計算模組
604‧‧‧錯誤多項式計算模組
606‧‧‧秦式搜尋模組
608‧‧‧控制電路
(第7圖)
700‧‧‧症狀碼計算模組
701、702、…、70K‧‧‧症狀碼產生器
731-73K‧‧‧加法器
721-72K‧‧‧乘法器
711-71K‧‧‧緩衝器
第1圖為錯誤修正碼之習知解碼方法的流程圖;第2圖為依據本發明之資料儲存系統的區塊圖;第3A圖為依據本發明之錯誤修正碼編碼器的區塊圖; 第3B圖為依據本發明之錯誤修正碼之編碼方法的流程圖;第4圖為依據本發明所產生的一長碼字的示意圖;第5圖為依據本發明之編碼器的電路圖,該編碼器可為第3A圖之短碼字編碼器或長碼字編碼器;第6圖為依據本發明之錯誤修正碼解碼器的區塊圖;第7圖為依據本發明之症狀碼計算模組的電路圖;以及第8圖為依據本發明之錯誤修正碼之解碼方法的流程圖。

Claims (18)

  1. 一種錯誤修正碼之編碼及解碼方法,包括:接收一原始資料;將該原始資料分割為多個區段資料;依據一第一產生多項式(generator polynomial)分別產生該等區段資料之短檢查碼(short parity);附加該等短檢查碼於該等區段資料之後,以分別產生多個短碼字(short codeword);結合該等短碼字以得到一編碼資料;依據一第二產生多項式(generator polynomial)以產生該編碼資料之長檢查碼(long parity),其中該第一產生多項式為該第二產生多項式之至少一個最小多項式(minimum polynomial)的函式;附加該長檢查碼於該編碼資料之後,以產生該錯誤修正碼之一長碼字(long codeword);其中,該等短碼字之每一者係由該等短檢查碼之一對應的短檢查碼與該等區段資料之一對應的區段資料所形成,該對應的短檢查碼接續於該對應的區段資料之後,並且該等短碼字之每一者不與該等短碼字之另一者相接續。
  2. 如申請專利範圍第1項所述之錯誤修正碼之編碼及解碼方法,其中該第一產生多項式為該第二產生多項式之至少一個最小多項式的最小公倍式(least common multiple,LCM)。
  3. 如申請專利範圍第1項所述之錯誤修正碼之編碼及解碼方法,更包括儲存該長碼字於一儲存媒體中。
  4. 如申請專利範圍第1項所述之錯誤修正碼之編碼及解碼方法,更包括:自一儲存媒體讀出該長碼字;自該長碼字取出其所包含的該等短碼字;依據該等短碼字的該等短檢查碼計算該等短碼字的多個短症狀碼(short syndrome);檢查是否該等短症狀碼皆為零;以及當該等短症狀碼其中之一至數個非零短症狀碼不為零時,利用該等非零短症狀碼更正對應之該等短碼字。
  5. 如申請專利範圍第4項所述之錯誤修正碼之編碼及解碼方法,更包括:當該等短症狀碼計算完畢後,依據該長碼字的該長檢查碼計算該長碼字的一長症狀碼(long syndrome);檢查是否該長症狀碼為零;當該長症狀碼不為零時,檢查是否該等非零短症狀碼均可正確更正對應之該等短碼字;以及當該等非零短症狀碼均可正確更正對應之該等短碼字時,利用該等非零短症狀碼更正該長症狀碼,以得一更正後長症狀碼。
  6. 如申請專利範圍第5項所述之錯誤修正碼之編碼及解碼方法,更包括:當該長症狀碼不為零,且該等非零短症狀碼之部分無法正確更正對應之該等短碼字時,利用該長症狀碼對無法正確更正的該等短碼字進行修正。
  7. 如申請專利範圍第1項所述之錯誤修正碼之編碼及 解碼方法,其中該長碼字及該等短碼字為BCH碼或RS碼。
  8. 一種錯誤修正碼之編碼解碼器,包括:一錯誤修正碼編碼器,接收一原始資料,將該原始資料分割為多個區段資料,產生該等區段資料之短檢查碼(short parity),附加該等短檢查碼於該等區段資料之後以分別產生多個短碼字(short codeword),結合該等短碼字以得到一編碼資料,產生該編碼資料之長檢查碼(long parity),以及附加該長檢查碼於該編碼資料之後以產生一長碼字(long codeword)以供儲存於一儲存媒體;以及一錯誤修正碼解碼器,自該儲存媒體讀出該長碼字,自該長碼字取出其所包含的該等短碼字,依據該等短碼字的該等短檢查碼計算該等短碼字的多個短症狀碼(short syndrome),檢查是否該等短症狀碼皆為零,以及當該等短症狀碼其中之一至數個非零短症狀碼不為零時,利用該等非零短症狀碼更正對應之該等短碼字;其中該錯誤修正碼編碼器係依據一第一產生多項式(generator polynomial)以產生該等區段資料之該等短檢查碼,並依據一第二產生多項式(generator polynomial)以產生該編碼資料之該長檢查碼,其中該第一產生多項式為該第二產生多項式之至少一個最小多項式(minimum polynomial)的函式;其中,該等短碼字之每一者係由該等短檢查碼之一對應的短檢查碼與該等區段資料之一對應的區段資料所形成,該對應的短檢查碼接續於該對應的區段資料之後,並且該等短碼字之每一者不與該等短碼字之另一者相接續。
  9. 如申請專利範圍第8項所述之錯誤修正碼之編碼解碼器,其中該第一產生多項式為該第二產生多項式之至少一個最小多項式的最小公倍式(least common multiple,LCM)。
  10. 如申請專利範圍第8項所述之錯誤修正碼之編碼解碼器,其中該錯誤修正碼編碼器包括:一短碼字編碼器,依據該第一產生多項式以產生該等區段資料之該等短檢查碼;一第一添附器,附加該等短檢查碼於該等區段資料之後以分別產生該等短碼字;一長碼字編碼器,結合該等短碼字以得到該編碼資料,並依據該第二產生多項式以產生該編碼資料之該長檢查碼;以及一第二添附器,附加該長檢查碼於該編碼資料之後以產生該長碼字。
  11. 如申請專利範圍第8項所述之錯誤修正碼之編碼解碼器,其中當該等短症狀碼計算完畢後,該錯誤修正碼解碼器依據該長碼字的該長檢查碼計算該長碼字的一長症狀碼(long syndrome),檢查是否該長症狀碼為零,當該長症狀碼不為零時檢查是否該等非零短症狀碼均可正確更正對應之該等短碼字,當該等非零短症狀碼均可正確更正對應之該等短碼字時,利用該等非零短症狀碼更正該長症狀碼以得一更正後長症狀碼。
  12. 如申請專利範圍第8項所述之錯誤修正碼之編碼解碼器,其中當該長症狀碼不為零,且該等非零短症狀碼 之部分無法正確更正對應之該等短碼字時,該錯誤修正碼解碼器利用該長症狀碼對無法正確更正的該等短碼字進行修正。
  13. 如申請專利範圍第11項所述之錯誤修正碼之編碼解碼器,其中該錯誤修正碼解碼器包括:一症狀碼計算模組,依據該等短碼字的該等短檢查碼計算該等短碼字的該等短症狀碼,並依據該長碼字的該長檢查碼計算該長碼字的該等長症狀碼;一控制電路,檢查是否該等短症狀碼皆為零,當該等短症狀碼其中之該等非零短症狀碼不為零時利用該等非零短症狀碼更正對應之該等短碼字,檢查是否該長症狀碼為零,當該長症狀碼不為零時檢查是否該等非零短症狀碼均可正確更正對應之該等短碼字,以及當該等非零短症狀碼均可正確更正對應之該等短碼字時利用該等非零短症狀碼更正該長症狀碼。
  14. 如申請專利範圍第8項所述之錯誤修正碼之編碼解碼器,其中該長碼字及該等短碼字為BCH碼或RS碼。
  15. 一種錯誤修正碼之解碼方法,包括:接收該錯誤修正碼之一長碼字(long codeword),其中該長碼字包括多個短碼字(short codeword)及一長檢查碼(long parity),每一該等短碼字均包括一短檢查碼(short parity);自該長碼字取出其所包含的該等短碼字;依據該等短碼字的該等短檢查碼計算該等短碼字的多個短症狀碼(short syndrome);檢查是否該等短症狀碼皆為零; 當該等短症狀碼其中之一至數個非零短症狀碼不為零時,利用該等非零短症狀碼更正對應之該等短碼字;當該等短症狀碼計算完畢後,依據該長碼字的該長檢查碼計算該長碼字的一長症狀碼(long syndrome);檢查是否該長症狀碼為零;當該長症狀碼不為零時,檢查是否該等非零短症狀碼均可正確更正對應之該等短碼字;以及當該等非零短症狀碼均可正確更正對應之該等短碼字時,利用該等非零短症狀碼更正該長症狀碼,以得一更正後長症狀碼;其中該等短碼字之該等短檢查碼係依據一第一產生多項式(generator polynomial)所產生,該長碼字之該長檢查碼係依據一第二產生多項式(generator polynomial)所產生,其中該第一產生多項式為該第二產生多項式之至少一個最小多項式(minimum polynomial)的函式;其中,該等短碼字之每一者係由該等短檢查碼之一對應的短檢查碼與該等區段資料之一對應的區段資料所形成,該對應的短檢查碼接續於該對應的區段資料之後,並且該等短碼字之每一者不與該等短碼字之另一者相接續。
  16. 如申請專利範圍第15項所述之錯誤修正碼之解碼方法,更包括:當該長症狀碼不為零,且該等非零短症狀碼之部分無法正確更正對應之該等短碼字時,利用該長症狀碼對無法正確更正的該等短碼字進行修正。
  17. 如申請專利範圍第15項所述之錯誤修正碼之解碼 方法,其中該第一產生多項式為該第二產生多項式之至少一個最小多項式的最小公倍式(least common multiple,LCM)。
  18. 如申請專利範圍第15項所述之錯誤修正碼之解碼方法,其中該長碼字及該等短碼字為BCH碼或RS碼。
TW098126686A 2009-07-01 2009-08-10 錯誤修正碼之編碼及解碼方法以及編碼解碼器 TWI397811B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
US12/785,778 US8468432B2 (en) 2009-07-01 2010-05-24 Coder-decoder and method for encoding and decoding an error correction code

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US22246809P 2009-07-01 2009-07-01

Publications (2)

Publication Number Publication Date
TW201102807A TW201102807A (en) 2011-01-16
TWI397811B true TWI397811B (zh) 2013-06-01

Family

ID=43391438

Family Applications (1)

Application Number Title Priority Date Filing Date
TW098126686A TWI397811B (zh) 2009-07-01 2009-08-10 錯誤修正碼之編碼及解碼方法以及編碼解碼器

Country Status (4)

Country Link
KR (1) KR101314232B1 (zh)
CN (1) CN101938280B (zh)
TW (1) TWI397811B (zh)
WO (1) WO2011000176A1 (zh)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8806309B2 (en) * 2011-06-13 2014-08-12 Silicon Motion Inc. Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof
KR101636406B1 (ko) * 2015-01-30 2016-07-05 고려대학교 산학협력단 저지연 신드롬 계산을 위한 bch 디코더의 전처리 장치 및 방법
TWI566091B (zh) * 2015-09-10 2017-01-11 慧榮科技股份有限公司 用來對一錯誤更正碼進行解碼之方法與解碼電路
EP3474471B1 (en) 2016-06-19 2022-10-05 LG Electronics Inc. Data transmission method and transmitter
US20180358989A1 (en) * 2017-06-09 2018-12-13 Western Digital Technologies, Inc. Non-volatile Storage Systems With Application-Aware Error-Correcting Codes
CN115278769A (zh) * 2021-04-30 2022-11-01 华为技术有限公司 数据传输方法、装置、系统及可读存储介质

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872799A (en) * 1994-07-05 1999-02-16 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
TW200401263A (en) * 2002-04-30 2004-01-16 Sony Corp Magneto-optical disk
TW200846898A (en) * 2007-05-24 2008-12-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
WO2009036004A2 (en) * 2007-09-14 2009-03-19 Motorola, Inc. Multi-layer cyclic redundancy check code in wireless communication system

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4630271A (en) * 1983-01-20 1986-12-16 Nippon Hoso Kyokai Error correction method and apparatus for data broadcasting system
US5782799A (en) * 1997-02-07 1998-07-21 Sarcos, Inc. Method for automatic dosing of drugs
CN100557715C (zh) * 2006-08-11 2009-11-04 福昭科技(深圳)有限公司 利用一组ecc电路并行处理多组数据的方法
US7949927B2 (en) * 2006-11-14 2011-05-24 Samsung Electronics Co., Ltd. Error correction method and apparatus for predetermined error patterns

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5872799A (en) * 1994-07-05 1999-02-16 Adaptec, Inc. Global parity symbol for interleaved reed-solomon coded data
TW200401263A (en) * 2002-04-30 2004-01-16 Sony Corp Magneto-optical disk
TW200846898A (en) * 2007-05-24 2008-12-01 Realtek Semiconductor Corp Method for writing data in flash memory and error correction coding/decoding method thereof
WO2009036004A2 (en) * 2007-09-14 2009-03-19 Motorola, Inc. Multi-layer cyclic redundancy check code in wireless communication system

Also Published As

Publication number Publication date
KR20130014484A (ko) 2013-02-07
CN101938280A (zh) 2011-01-05
CN101938280B (zh) 2013-09-25
WO2011000176A8 (zh) 2012-12-13
TW201102807A (en) 2011-01-16
WO2011000176A1 (zh) 2011-01-06
KR101314232B1 (ko) 2013-10-02

Similar Documents

Publication Publication Date Title
US8468432B2 (en) Coder-decoder and method for encoding and decoding an error correction code
US7721185B1 (en) Optimized reed-solomon decoder
US8429489B2 (en) Data retrieval from a storage device using a combined error correction and detection approach
US8850296B2 (en) Encoding method and system, decoding method and system
US8806295B2 (en) Mis-correction and no-correction rates for error control
US9037953B2 (en) Multi-bit error correction method and apparatus based on a BCH code and memory system
US20060085726A1 (en) Apparatus and method for decoding Reed-Solomon code
TWI397811B (zh) 錯誤修正碼之編碼及解碼方法以及編碼解碼器
US8694872B2 (en) Extended bidirectional hamming code for double-error correction and triple-error detection
US8032812B1 (en) Error correction decoding methods and apparatus
CN110071727B (zh) 编码方法、译码方法、纠错方法及装置
KR101819152B1 (ko) 오류 정정 코드를 디코딩하기 위한 방법 및 이와 관련된 디코딩 회로
US20100199156A1 (en) Method And Circuit For Encoding An Error Correction Code
US7810015B2 (en) Decoding with a concatenated error correcting code
US8694850B1 (en) Fast erasure decoding for product code columns
US20170264320A1 (en) Code reconstruction scheme for multiple code rate tpc decoder
US11101925B2 (en) Decomposable forward error correction
EP1499026A1 (en) Error correction decoding method and apparatus
US8181096B2 (en) Configurable Reed-Solomon decoder based on modified Forney syndromes
US9236890B1 (en) Decoding a super-code using joint decoding of underlying component codes
US8209589B2 (en) Reed-solomon decoder with a variable number of correctable errors
KR20140074600A (ko) 비씨에이치 디코더, 이를 포함하는 메모리 시스템 및 디코딩 방법
WO2023197935A1 (zh) 存储数据的方法、读取数据的方法和相关设备
TWI387214B (zh) 糾錯碼的解碼方法及電路
WO2009069087A1 (en) Apparatus and method for decoding concatenated error correction codes