TWI645683B - 使用代數碼與ldpc碼的部分聯結編碼系統 - Google Patents
使用代數碼與ldpc碼的部分聯結編碼系統 Download PDFInfo
- Publication number
- TWI645683B TWI645683B TW107103533A TW107103533A TWI645683B TW I645683 B TWI645683 B TW I645683B TW 107103533 A TW107103533 A TW 107103533A TW 107103533 A TW107103533 A TW 107103533A TW I645683 B TWI645683 B TW I645683B
- Authority
- TW
- Taiwan
- Prior art keywords
- message
- decoding
- module
- codeword
- decoding module
- Prior art date
Links
- 238000012544 monitoring process Methods 0.000 claims abstract description 19
- 238000012795 verification Methods 0.000 claims description 19
- 238000004891 communication Methods 0.000 claims description 15
- 230000005540 biological transmission Effects 0.000 claims description 10
- 238000000034 method Methods 0.000 claims description 8
- 230000008878 coupling Effects 0.000 claims description 7
- 238000010168 coupling process Methods 0.000 claims description 7
- 238000005859 coupling reaction Methods 0.000 claims description 7
- 230000008569 process Effects 0.000 claims description 5
- 230000003139 buffering effect Effects 0.000 claims description 2
- 238000012937 correction Methods 0.000 abstract description 9
- 238000013461 design Methods 0.000 abstract description 2
- 230000006870 function Effects 0.000 description 4
- 238000010586 diagram Methods 0.000 description 2
- 238000012986 modification Methods 0.000 description 2
- 230000004048 modification Effects 0.000 description 2
- 101100400452 Caenorhabditis elegans map-2 gene Proteins 0.000 description 1
- 101150064138 MAP1 gene Proteins 0.000 description 1
- 239000000872 buffer Substances 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000284 extract Substances 0.000 description 1
- 238000007689 inspection Methods 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 239000011159 matrix material Substances 0.000 description 1
- 238000012545 processing Methods 0.000 description 1
- 230000003252 repetitive effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2906—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes using block codes
- H03M13/2927—Decoding strategies
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/29—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes combining two or more codes or code structures, e.g. product codes, generalised product codes, concatenated codes, inner and outer codes
- H03M13/2948—Iterative decoding
- H03M13/2951—Iterative decoding using iteration stopping criteria
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/152—Bose-Chaudhuri-Hocquenghem [BCH] codes
Abstract
本發明揭露一種使用代數碼與低密度校驗碼的部分聯結編碼系統。該部分聯結編碼系統包括一ECC編碼器、一接收碼字監控模組及一ECC解碼器。該ECC編碼器具有一LDPC碼編碼模組及一代數碼編碼模組,該ECC解碼器具有一LDPC碼解碼模組及一代數碼解碼模組。相較於習知的聯結編碼系統,本發明具有較少備用空間、更好的糾錯性能、較不複雜的硬體設計、較佳解碼吞吐量及具彈性編碼長度之優點。
Description
本發明關於一種編碼系統,特別是關於一種使用代數碼與LDPC(Low Density Parity Check)碼的部分聯結編碼系統。
隨著數位通訊通道與儲存設備系統對資訊高可靠性傳輸的需求增加,各種錯誤糾正的技巧被廣泛應用在這類的系統中。它們目的在檢測和糾正由各種因素引起的錯誤,例如傳輸通道噪聲、快閃記憶體的資料保存性與耐久性等。
傳統上,代數碼,例如BCH碼與RS碼,被用於資料傳輸系統並提供一定的糾錯能力。由於用戶需求和巨大的資料傳輸,需要更強的糾錯碼(Error Correcting Code,ECC)來支援更多錯誤位元發生的情況,以達到延長關聯設備的使用壽命。為了增強糾錯能力,可應用每個位元的可靠值(soft value)進行軟判決解碼。近來,在軟判決表現優異的低密度校驗(Low Density Parity Check,LDPC)碼廣泛應用於各種領域。LDPC碼的軟解碼方式除了具有出色的糾錯能力,並可以在硬體上有效地實現。然而,在應用上,輸入位元可靠值的精準度會影響解碼時的糾錯能力。此外,LDPC碼校驗矩陣的結構會導致錯誤基數現象(Error floor),即誤碼率(Bit Error Rate,BER)對信噪比(Signal-to-Noise Ratio,SNR)性能曲線中的平坦區域,這個問題對於LDPC解碼來說非常關鍵。特別在某些應用中,使用者要求達到解碼性能誤幀率(Frame Error Rate,FER)<10
-10。另一方面,成本考量下要求高的儲存資料比率,因此校驗空間有限,進而導致ECC的糾錯能力受到限制。
為了改進糾錯能力及解決LDPC碼的錯誤基數現象,許多ECC技術可供應用。例如,較常用的是乘積碼與聯結碼,在此以聯結碼做例子。一(n
1,k
1)線性碼C
1與一(n
2,k
2)線性碼C
2組成的聯結碼之編碼器首先藉由使用線性碼C
1編碼訊息後得到一碼字c
1,接著第一編碼程序後使用線性碼C
2編碼c
1以取得碼字c,其中k
1< n
1= k
2< n
2。聯結碼的碼率R = (k
1)/(n
2)。是故,聯結碼需要許多備用空間來進行重複保護,且花了許多的運算時間,即,編碼時間與解碼時間。
因此,需要一種創新的聯結編碼系統來解決上述所有的問題。
本段文字提取和編譯本發明的某些特點。其它特點將被揭露於後續段落中。其目的在涵蓋附加的申請專利範圍之精神和範圍中,各式的修改和類似的排列。
為了解決上述問題,本發明提出一種部分聯結編碼系統。該部分聯結編碼系統包含:一ECC編碼器,用以將一訊息編碼為一碼字,以發出到一通訊通道或一儲存設備中做為傳送碼字,該碼字具有一第一訊息部、一第二訊息部、一第一校驗部及一第二校驗部,該ECC編碼器包含:一LDPC碼編碼模組,用以編碼該訊息為一LDPC碼字,該LDPC碼字具有該第一訊息部、該第二訊息部與該第一校驗部;及一代數碼編碼模組,用以編碼該LDPC碼字的該第二訊息部與該第一校驗部,以由一代數碼產生該第二校驗部,其中該ECC編碼器聯結該第二校驗部到該LDPC碼字;一接收碼字監控模組,用以決定來自該通訊通道或該儲存設備的該接收碼字的所有字碼位元的LLR(Log-likelihood Ratio)值;及一ECC解碼器,用以解碼來自該接收碼字監控模組的具有LLR值的該接收碼字,以獲得該訊息、如果碼字解碼成功,發出該訊息及/或校驗部,及如果碼字解碼判定於一停止條件下失敗,發出一解碼失敗訊號。該ECC解碼器,包含:一LDPC碼解碼模組,用以解碼該具LLR值的接收碼字的該第一訊息部、該第二訊息部與該第一校驗部,或使用一反饋訊息提供完整訊息與第一校驗部(即,LDPC碼的校驗部分)進行解碼,及當迭代運算次數到達一預定停止值或一停止條件時,終止解碼迭代運算;及一代數碼解碼模組,用以解碼來自該LDPC碼解碼模組,僅具有硬位元值(即,0或1)的該接收碼字的該第二訊息部、該第一校驗部與該第二校驗部、如果解碼成功,利用該代數解碼模組產生一解碼後的訊息部與該第一校驗部作為該反饋訊息,及如果解碼失敗,提供該現有的第二訊息部與來自LDPC解碼的第一校驗部作為該反饋訊息。
建議採用代數碼BCH碼或RS碼。
建議停止條件可為當一預定值達到時,該LDPC碼解碼模組用來對一接收字的該第一訊息部、該第二訊息部與該第一校驗部解碼的運算次數上限,或該LDPC碼解碼模組對一接收字的解碼後判斷為發散。
建議,來自該LDPC碼解碼模組,具有LLR值的該接收碼字的該第二訊息部與該第一校驗部,在該代數碼解碼模組開始解碼程序前可被映射為硬位元。
依照本發明,當該代數碼解碼模組成功地進行解碼,來自該代數碼解碼模組的該解碼訊息部的所有字碼位元維持為原符號並指定為最大或者最小的可靠位元值。或當該代數碼解碼模組不成功地解碼,且由該代數碼解碼模組發出,做為反饋訊息的現有的第二訊息部與該第一校驗部保有進入代數解碼前不變的軟位元值。
如果代數碼編碼模組將其訊息部部分位元設為零,該代數碼解碼模組進一步比對編碼時設定為零的位置是否為零,成功比對後產生該解碼訊息部。
建議,在該LDPC碼解碼模組對該碼字之次一回運算中的該預定停止值,可較該LDPC碼解碼模組對相同的碼字的當前回運算中的該預定停止值來得大。對每回運算的該預定停止值可基於該通訊通道或該儲存設備的物理條件而設定。解碼資訊可進一步發送至該接收碼字監控模組,用以決定接收到的碼字的LLR值。
該部分聯結編碼系統可進一步包含一記憶模組,連接到該LDPC碼解碼模組,用以暫時緩衝儲存包含解碼訊息部的某些資訊及來自LDPC碼解碼模組或者代數解碼模組的解碼訊息部與第一校驗部,或來自接收碼字監控模組的具有LLR的訊息部與第一校驗部及硬位元的第二校驗部。
藉由代數碼解碼模組的幫助,LDPC碼解碼模組的解碼性能可以提升,錯誤基數現象可以緩解。同時,因為內碼(代數碼)保護外碼(LDPC碼)部分及特定資料,部分聯結編碼系統需要較少備用空間來進行重複保護,且花較少的運算時間,即,編碼時間與解碼時間。相較於習知聯結編碼系統,本發明具有較不複雜的硬體設計、較佳解碼吞吐量及可修復的碼長度之優點。
本發明將藉由參照下列的實施方式而更具體地描述。
請參閱圖1到圖4,該些圖式揭露依照本發明使用一代數碼與LDPC碼的一部分聯結編碼系統10的實施例。圖1為部分聯結編碼系統10的示意圖,圖2描述一訊息如何被編碼,圖3顯示一碼字的結構,圖4為該部分聯結編碼系統10的運作流程圖。部分聯結編碼系統10包含一ECC編碼器100、一接收碼字監控模組300及一ECC解碼器200,前述元件為圖1中一長虛線框所包圍。這些元件為硬體且能安裝於個別裝置上,例如ECC編碼器100裝在發射器上,接收碼字監控模組300與ECC解碼器200裝在接收器中。這些模組的功能及部分聯結編碼系統10的運作將於下方詳細說明。
ECC編碼器100用來編碼一訊息為一碼字。不同於習知碼字的結構,來自ECC編碼器100的碼字具有兩個訊息部及對應的兩個校驗部。為了能更全面地理解,它們被稱為一第一訊息部、一第二訊息部、一第一校驗部及一第二校驗部。請參閱圖2與圖3。要被保護的訊息(顯示為M)由一LDPC碼與一代數碼進行編碼。在本發明中,代數碼可以是BCH碼或RS碼;在本實施例中使用BCH碼。通常來說,“代數碼”用於相關的名詞,因此可以提供最廣泛的解釋。原始訊息包含第一訊息部(顯示為M
1)與第二訊息部(顯示為M
2)。當該訊息由ECC編碼器100中的一LDPC碼編碼模組110編碼時,訊息(M
1|M
2)進行處理且第一校驗部(顯示為P
1)由LDPC碼產生,從而獲得一LDPC碼字Y
1,[M | P
1]。當該訊息進一步由ECC編碼器100中的一代數碼編碼模組120編碼,並非整個訊息都使用到。反而,第二訊息部M
2與第一校驗部P
1用來當作一新的訊息X來進行編碼,第二校驗部(顯示為P
2)由代數碼(BCH碼)產生,獲得一代數碼字Y
2,[M
2| P
1| P
2]。ECC編碼器100串接第二校驗部M
2到該LDPC碼字以得到完整的碼字,Y = [M | P
1| P
2]。它揭示了本發明的一個特點:內碼僅保護一部分訊息。這節省了硬體實現代數碼運算的面積成本。
同時,ECC編碼器100能發出該碼字Y到一通訊通道或存於儲存設備做為傳送碼字進一步對其經過通道後的訊息,稱為傳送碼字進行解碼獲得正確訊息。這裡,通訊通道指的是有形或無形的,用於攜帶和傳輸訊息的任何媒體。例如,通訊通道可以是一個連接一主機至另一主機的USB連接線,通訊通道也能是一個開放的空間,電磁波從一信源30調變到一目標50。儲存設備可以是任何設備,用於暫時或長時間儲存訊息。硬碟(Hard Disk Drive,HDD)或固態硬碟(Solid State Drive,SSD)是儲存設備的例子。往往通訊通道或儲存設備中會具有干擾原始訊息的因子,而糾錯碼具備還原正確訊息的特性。
如上所述,ECC編碼器100包含該LDPC碼編碼模組110與一代數碼編碼模組120。LDPC碼編碼模組110編碼該訊息為該LDPC碼字,後者具有前述第一訊息部、第二訊息部及第一校驗部。代數碼編碼模組120能編碼該第二訊息部與該LDPC碼字的第一校驗部,以由該代數碼產生該第二校驗部。LDPC碼編碼模組110與代數碼編碼模組120的工作流程可以從圖2看出。應該注意的是ECC編碼器100配置於一裝置中,該裝置可不同於另一攜帶ECC解碼器200的裝置;在某些實施例中,ECC編碼器100也可與ECC解碼器200在同一裝置中。因此,通訊通道或儲存設備需要某些橋接模組。在本實施例中,用於傳送碼字Y的一通道40是一個具調變電磁波的開放空間。因此,用來調變該傳送碼字Y的一調變器410就是所謂的橋接模組。
當傳送碼字Y經電磁波傳輸時,不可避免地會受到干擾。傳送碼字Y的多個字碼位元訊號可能會受到干擾並導致錯誤。在該接收具有雜訊的接收碼字 R = Y + Noise經由一解調器420解調後,該接收碼字R也需要重新整理以進一步使用。LDPC碼的軟判決與硬判決解碼程序分別需要軟位元及硬位元資料,這意味對軟判決而言,接收碼字R的字碼位元必須是實數形式,舉例來說,12、8、5、1、-1、-5、-8、-12(Log-likelihood Ratio值,LLR值);對硬判決而言,其值必須是二元值0或1。接收碼字監控模組300的主要職能是決定來自通道40(或儲存設備)接收碼字R的所有位元的LLR值。
ECC解碼器200解碼來自接收碼字監控模組300,具有LLR值的接收碼字R以獲得訊息M。同時,如果碼字解碼成功,ECC解碼器200也能發出訊息M及/或校驗部。否則,如果碼字解碼判定於一停止條件下失敗,ECC解碼器200會發出一解碼失敗訊號。直覺來說,ECC解碼器200發出該訊息M或失敗訊號到下一站(以下,使用目標50來表示),如同習知ECC解碼器所做的一般。然而,前述停止條件可以讓基於ECC解碼器200的架構具有較佳的性能。
依照本發明,該停止條件可設為當一預定值達到時,一LDPC碼解碼模組210(將於之後詳述)用來對接收碼字R的第一訊息部、第二訊息部與第一校驗部的解碼的運算次數上限。LDPC碼解碼模組210與一代數碼解碼模組220是ECC解碼器200的基本單元。具有軟資訊的一接收碼字需要在LDPC碼解碼模組210與代數碼解碼模組220間來回數次,以確定是否可以恢復到相應的訊息或該失敗訊號發送至目標50。對LDPC解碼程序來說,一個接收字需要許多次的迭代計算,非常耗時。有時,計算結果可能會發散,這意味著在這種情形下無法找到正確的訊息。為了解決這些問題,LDPC碼解碼模組210的LDPC解碼程序在幾回迭代運算後暫時停止,並由代數碼解碼程序接手。因為包含一部分訊息M,且由代數碼保護的資料量不大,可以很快得到訊息M的部分正確的第二訊息部與第一校驗部,並將其反饋給LDPC碼解碼模組210。因此,LDPC碼解碼模組210與代數碼解碼模組220的幾輪運算可能是需要的。停止條件用來停止進一步數輪運算,以免資源浪費,即便當該停止條件到達時接收碼字也幾乎解碼成功。因為LDPC碼解碼模組210能判斷一個接收碼字的解碼當下為發散,該停止條件能被設定為LDPC碼解碼模組210對一接收字的運算未達預設回數下發散。依照通道40(或儲存設備)的不同環境,預設回數可由實驗或模擬計算得到。
如上所述,ECC解碼器200包含LDPC碼解碼模組210與代數碼解碼模組220。LDPC碼解碼模組210用來解碼具LLR值的接收碼字的第一訊息部、第二訊息部與第一校驗部。此外,它也能使用一反饋訊息供第二訊息部與第一校驗部進行解碼。反饋訊息包含代數碼解碼模組220提供給LDPC碼解碼模組210的第二訊息部M2的正確解碼訊息部及該第一校驗部P1,或僅為原始第二訊息部與第一校驗部。LDPC碼解碼模組210的另一個工作是當迭代運算次數到達一預定停止值或一停止條件時,終止解碼迭代運算。這個工作是本發明的另一個特點。設定預定停止值的規則是:在該LDPC碼解碼模組210對該接收碼字之次一回運算中的該預定停止值,較該LDPC碼解碼模組210對相同的接收碼字的當前回運算中的該預定停止值來得大。針對解碼一個收到訊息的例子來說,LDPC碼解碼模組210的第一回運算中有5次迭代運算,LDPC碼解碼模組210的第二回運算中有10次迭代運算,LDPC碼解碼模組210的最後一回運算中有15次迭代運算。依照本發明的精神,運算回數不限於3,每回的迭代運算次數也不各限於5、10及15。運算回數與每回迭代運算次數可藉由對不同通訊通道或儲存設備的預實驗或模擬計算而獲得。對每回運算的預定停止值或停止條件是基於該通訊通道或該儲存設備的物理條件而設定。
代數碼解碼模組220能解碼來自LDPC碼解碼模組210與記憶模組230的接收碼字的第二訊息部、第一校驗部及第二校驗部。如果解碼成功,由代數碼產生作為反饋訊息的解碼訊息部(第二訊息部)與第一校驗部。然而,如果解碼失敗,代數碼解碼模組220提供一解碼失敗訊號到LDPC碼解碼模組210,及提供現有的第二訊息部與第一校驗部(儲存於記憶模組230中)當作反饋訊息。如果訊息部中特定位元處被代數碼編碼模組120所設定為零,代數碼解碼模組210解碼後,進一步比對其值為零時,產生該解碼訊息部。也就是說,解碼程序與比對編碼設定為零部分資料都必須“成功”。
要強調的是,如果必須,可以應用一記憶模組230,它連接到LDPC碼解碼模組210與代數碼解碼模組220。記憶模組230的功用在暫時緩衝儲存用於LDPC碼解碼模組210的資訊,及來自LDPC碼解碼模組210或者代數解碼模組220的解碼訊息部與第一校驗部,或來自接收碼字監控模組300的具有LLR的訊息部與第一校驗部及硬位元的第二校驗部。此外,來自代數碼解碼模組220的解碼訊息部能進一步發送至接收碼字監控模組300。解碼訊息部被接收碼字監控模組300用來決定接收到的接收碼字的LLR值。從而,接收碼字監控模組300能更有效及正確地決定LLR值。
請見圖4,部分聯結編碼系統10的解碼運算與某些元件的細部功能將進一步於下方說明。
在接收碼字R的位元的LLR值由接收碼字監控模組300決定後,LDPC碼解碼模組210開始解碼接收具有第一訊息部、第二訊息部及第一校驗部的接收碼字R。在LDPC碼解碼模組210第一回5次迭代運算後,ECC解碼器200解碼不成功,此時將確認是否達到停止條件。如果為是,ECC解碼器200將發出失敗訊號到目標50。如果為否,且LDPC碼解碼模組210的解碼程序還不成功,ECC解碼器200將要求代數碼解碼模組220,以硬位元形式解碼第二訊息部、第一校驗部及第二校驗部。應該注意的是第二訊息部與第一校驗部在代數碼解碼模組220解碼過程中,可能有某些字碼位元值改變。另一方面,如果訊息M於LDPC碼解碼模組210第一回5次迭代運算中成功獲得,ECC解碼器200會將訊息M、第一校驗部及第二校驗部傳給目標50。
因為代數碼解碼模組220需要所有接收的字碼位元是硬位元,所以在代數碼解碼模組220開始解碼程序前,來自LDPC碼解碼模組210之具有LLR值的第二訊息部與第一校驗部需要映射為硬位元(0或1)。如果代數碼解碼模組220成功地進行解碼,依照ECC解碼器200的需要,解碼訊息部(訊息M的正確第二訊息部)與第一校驗部的字碼位元可以如下進一步處理。解碼訊息部與第一校驗部的所有字碼位元維持為原性質符號並指定為最大或最小的軟位元值,諸如12與-12。否則,解碼訊息部與第一校驗部的所有字碼位元維持為來自LDPC碼解碼模組210的原始軟位元。整個來說,處理正確解碼訊息部與第一校驗部的程序標註為圖4中的“映射1”。映射指的是計算值與輸出值的對應關係。
如果代數碼解碼模組220不能成功進行解碼,且當反饋訊息由代數碼解碼模組220發出時,作為反饋訊息的現有的第二訊息部與現有的第一校驗部會被指定保有進入代數解碼前不變的軟位元值,該反饋訊息接著又會再被送回代數碼解碼模組220。相似地,本步驟標註為圖4中的“映射2”。
之後,ECC解碼器200持續LDPC碼解碼模組210與代數碼解碼模組220間的解碼迴圈。如果停止條件設為LDPC碼解碼模組210使用4次來解碼,當第4次結束而解碼還是失敗時,ECC解碼器200會自動停止解碼接收碼字R並發出失敗訊號。
雖然本發明已以實施方式揭露如上,然其並非用以限定本發明,任何所屬技術領域中具有通常知識者,在不脫離本發明之精神和範圍內,當可作些許之更動與潤飾,因此本發明之保護範圍當視後附之申請專利範圍所界定者為準。
10‧‧‧部分聯結編碼系統
100‧‧‧ECC編碼器
110‧‧‧LDPC碼編碼模組
120‧‧‧代數碼編碼模組
200‧‧‧ECC解碼器
210‧‧‧LDPC碼解碼模組
220‧‧‧代數碼解碼模組
230‧‧‧記憶模組
30‧‧‧信源
300‧‧‧接收碼字監控模組
40‧‧‧通道
410‧‧‧調變器
420‧‧‧解調器
50‧‧‧目標
圖1為依照本發明一種部分聯結編碼系統的示意圖; 圖2描述一訊息如何被編碼; 圖3顯示一碼字的結構; 圖4為該部分聯結編碼系統的運作流程圖。
Claims (12)
- 一種部分聯結編碼系統,包含:一ECC編碼器,用以將一訊息編碼為一碼字,以傳送到一通訊通道或一儲存設備中做為傳送碼字,該碼字具有一第一訊息部、一第二訊息部、一第一校驗部及一第二校驗部,該ECC編碼器包含:一LDPC碼編碼模組,用以編碼該訊息為一LDPC碼字,該LDPC碼字具有該第一訊息部、該第二訊息部與該第一校驗部;及一代數碼編碼模組,用以編碼該LDPC碼字的該第二訊息部與該第一校驗部,由一代數碼產生該第二校驗部,其中該ECC編碼器串接該第二校驗部到該LDPC碼字;一接收碼字監控模組,用以決定來自該通訊通道或該儲存設備的接收碼字的所有位元的LLR(Log-likelihood Ratio)值;及一ECC解碼器,用以解碼來自該接收碼字監控模組的具有LLR值的該接收碼字,以獲得該訊息,如果碼字解碼成功,僅發出該訊息或連同第一校驗部及/或第二校驗部與該訊息一併發出,及如果碼字解碼判定於一停止條件下失敗,發出一解碼失敗訊號,該ECC解碼器,包含:一LDPC碼解碼模組,用以藉具LLR值解碼該接收碼字的該第一訊息部、該第二訊息部與該第一校驗部,使用一反饋訊息供該第二訊息部與第一校驗部進行解碼,及當迭代運算次數到達一預定停止值或一停止條件時,終止解碼迭代運算;及一代數碼解碼模組,用以解碼來自該LDPC碼解碼模組,具有硬位元的該接收字的該第二訊息部、該第一校驗部與第二校驗部,如果解碼成功,利用該 代數碼產生一解碼訊息部與該第一校驗部作為該反饋訊息,及如果解碼失敗,提供該現有的第二訊息部與第一校驗部作為該反饋訊息。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中該代數碼為BCH碼或RS碼。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中該停止條件為當一預定值達到時,該LDPC碼解碼模組用來對一接收碼字的該第一訊息部、該第二訊息部與該第一校驗部解碼的運算次數上限,或該LDPC碼解碼模組對一接收碼字的解碼後判斷為發散。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中來自該LDPC碼解碼模組的具有LLR值的該接收碼字的該第二訊息部與該第一校驗部,在該代數碼解碼模組開始解碼程序前被映射為硬位元。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中當該代數碼解碼模組成功地進行解碼,來自該代數碼解碼模組的該解碼訊息部的所有字碼位元維持為原性質符號並指定為最大或最小的軟位元值。
- 如申請專利範圍第1項所述的部分聯接編碼系統,其中當該代數碼解碼模組解碼後,該解碼訊息部的所有碼字位元維持為軟位元。
- 如申請專利範圍第1項所述的部分聯接編碼系統,其中當反饋訊息由該代數碼解碼模組發出時,作為該反饋訊息的該現有的第二訊息部與第一校驗部保有進入代數解碼前不變的軟位元值。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中如果訊息部的特定位元被代數編碼模組指定為零,該代數碼解碼模組解碼後,進一步比對其值為零時,產生該解碼訊息部。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中在該LDPC碼解碼模組對該碼字之次一回運算中的該預定停止值,較該LDPC碼解碼模組對相同的碼字的當前回運算中的該預定停止值來得大。
- 如申請專利範圍第9項所述的部分聯結編碼系統,其中對每回運算的該預定停止值是基於該通訊通道或該儲存設備的物理條件而設定。
- 如申請專利範圍第1項所述的部分聯結編碼系統,其中該解碼訊息部的資訊進一步發送至該接收碼字監控模組,用以決定接收到的碼字的LLR值。
- 如申請專利範圍第1項所述的部分聯結編碼系統,進一步包含一記憶模組,連接到該LDPC碼解碼模組與該代數碼解碼模組,用以暫時緩衝儲存LDPC碼解碼模組內的資訊,及來自LDPC碼解碼模組或者代數解碼模組的解碼訊息部與第一校驗部,或來自接收碼字監控模組的具有LLR的訊息部與第一校驗部及硬位元的第二校驗部。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107103533A TWI645683B (zh) | 2018-01-31 | 2018-01-31 | 使用代數碼與ldpc碼的部分聯結編碼系統 |
US15/890,432 US10270474B1 (en) | 2018-01-31 | 2018-02-07 | Partial concatenated coding system using algebraic code and LDPC code |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW107103533A TWI645683B (zh) | 2018-01-31 | 2018-01-31 | 使用代數碼與ldpc碼的部分聯結編碼系統 |
Publications (2)
Publication Number | Publication Date |
---|---|
TWI645683B true TWI645683B (zh) | 2018-12-21 |
TW201935860A TW201935860A (zh) | 2019-09-01 |
Family
ID=65431793
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107103533A TWI645683B (zh) | 2018-01-31 | 2018-01-31 | 使用代數碼與ldpc碼的部分聯結編碼系統 |
Country Status (2)
Country | Link |
---|---|
US (1) | US10270474B1 (zh) |
TW (1) | TWI645683B (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US10992323B2 (en) * | 2019-02-01 | 2021-04-27 | Micron Technology, Inc. | Early decoding termination for a memory sub-system |
Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7992070B2 (en) * | 2006-12-27 | 2011-08-02 | Nec Laboratories America, Inc. | Bit-interleaved LDPC-coded modulation for high-speed optical transmission |
US9065483B2 (en) * | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
TWI528732B (zh) * | 2013-12-30 | 2016-04-01 | 衡宇科技股份有限公司 | 具有ldpc碼及bch碼之解碼器及其解碼方法 |
TWI566532B (zh) * | 2015-09-30 | 2017-01-11 | 衡宇科技股份有限公司 | 用於低密度同位檢查碼之使用增強型同位檢查矩陣與再編碼方案的解碼演算法 |
US20170104496A1 (en) * | 2015-10-12 | 2017-04-13 | Nec Laboratories America, Inc. | Iterative Decoding Scheme of Concatenated LDPC and BCH Codes for Optical Transport Network |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20050046471A (ko) * | 2003-11-14 | 2005-05-18 | 삼성전자주식회사 | 저밀도 패러티 검사 부호를 병렬 연접하는 채널부호화/복호화 장치 및 방법 |
US7770090B1 (en) * | 2005-09-14 | 2010-08-03 | Trident Microsystems (Far East) Ltd. | Efficient decoders for LDPC codes |
US7904783B2 (en) * | 2006-09-28 | 2011-03-08 | Sandisk Corporation | Soft-input soft-output decoder for nonvolatile memory |
US7818653B2 (en) * | 2006-09-28 | 2010-10-19 | Sandisk Corporation | Methods of soft-input soft-output decoding for nonvolatile memory |
US10475523B2 (en) * | 2013-05-31 | 2019-11-12 | Western Digital Technologies, Inc. | Updating read voltages triggered by the rate of temperature change |
US20170148510A1 (en) * | 2013-05-31 | 2017-05-25 | Sandisk Technologies Llc | Updating read voltages |
US10089177B2 (en) * | 2014-06-30 | 2018-10-02 | Sandisk Technologies Llc | Multi-stage decoder |
US20180032396A1 (en) * | 2016-07-29 | 2018-02-01 | Sandisk Technologies Llc | Generalized syndrome weights |
JP2018147231A (ja) * | 2017-03-06 | 2018-09-20 | 東芝メモリ株式会社 | メモリコントローラ、メモリシステムおよびメモリシステムの制御方法 |
-
2018
- 2018-01-31 TW TW107103533A patent/TWI645683B/zh active
- 2018-02-07 US US15/890,432 patent/US10270474B1/en active Active
Patent Citations (5)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7992070B2 (en) * | 2006-12-27 | 2011-08-02 | Nec Laboratories America, Inc. | Bit-interleaved LDPC-coded modulation for high-speed optical transmission |
US9065483B2 (en) * | 2013-01-21 | 2015-06-23 | Micron Technology, Inc. | Determining soft data using a classification code |
TWI528732B (zh) * | 2013-12-30 | 2016-04-01 | 衡宇科技股份有限公司 | 具有ldpc碼及bch碼之解碼器及其解碼方法 |
TWI566532B (zh) * | 2015-09-30 | 2017-01-11 | 衡宇科技股份有限公司 | 用於低密度同位檢查碼之使用增強型同位檢查矩陣與再編碼方案的解碼演算法 |
US20170104496A1 (en) * | 2015-10-12 | 2017-04-13 | Nec Laboratories America, Inc. | Iterative Decoding Scheme of Concatenated LDPC and BCH Codes for Optical Transport Network |
Also Published As
Publication number | Publication date |
---|---|
TW201935860A (zh) | 2019-09-01 |
US10270474B1 (en) | 2019-04-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
JP5237119B2 (ja) | ラプターコードをデコードする方法及び装置 | |
US7823043B2 (en) | Corruption-resistant data porting with multiple error correction schemes | |
AU761792B2 (en) | An iterative decoder and an iterative decoding method for a communication system | |
US7853854B2 (en) | Iterative decoding of a frame of data encoded using a block coding algorithm | |
KR101625273B1 (ko) | 더 짧은 블록 길이를 이용하여 더 긴 선형 블록 코드워드를 생성 및 디코딩하기 위한 장치, 시스템 및 방법 | |
US9673839B2 (en) | Decoding of product codes | |
US20060085726A1 (en) | Apparatus and method for decoding Reed-Solomon code | |
US9489256B2 (en) | Device quality metrics using unsatisfied parity checks | |
TWI557747B (zh) | 記憶體控制模組與方法以及錯誤更正碼編/解碼電路與方法 | |
US8583982B2 (en) | Concatenated decoder and concatenated decoding method | |
EP2573943A1 (en) | Power-optimized decoding of linear codes | |
JP2012519982A (ja) | 確率的に一定組成の符号から不均一誤り保護符号の設計を提供するための方法およびデバイス | |
WO2019019550A1 (zh) | 应用于快闪存储器中的自适应ldpc码纠错码系统和方法 | |
US10606697B2 (en) | Method and apparatus for improved data recovery in data storage systems | |
CN111597072B (zh) | 差错控制编码ecc系统及包括ecc系统的存储器设备 | |
US10200066B2 (en) | Code reconstruction scheme for multiple code rate TPC decoder | |
US8365054B2 (en) | Soft reed-solomon decoder based on error-and-erasure reed-solomon decoder | |
WO2020124980A1 (zh) | 应用于闪存控制器中的自适应polar码纠错码系统和方法 | |
TWI645683B (zh) | 使用代數碼與ldpc碼的部分聯結編碼系統 | |
US20170070243A1 (en) | Early termination method with re-encoding scheme for decoding of error correction code | |
WO2011000176A1 (zh) | 错误修正码的编码及解码方法以及编码解码器 | |
US10326477B2 (en) | Techniques for miscorrection detection for constituent codewords in product codes | |
US11750219B2 (en) | Decoding method, decoder, and decoding apparatus | |
CN110138499A (zh) | 级联编码系统 | |
US9236890B1 (en) | Decoding a super-code using joint decoding of underlying component codes |