TW201926911A - 使用於低密度奇偶檢查碼解碼器的方法及解碼器 - Google Patents
使用於低密度奇偶檢查碼解碼器的方法及解碼器 Download PDFInfo
- Publication number
- TW201926911A TW201926911A TW107113677A TW107113677A TW201926911A TW 201926911 A TW201926911 A TW 201926911A TW 107113677 A TW107113677 A TW 107113677A TW 107113677 A TW107113677 A TW 107113677A TW 201926911 A TW201926911 A TW 201926911A
- Authority
- TW
- Taiwan
- Prior art keywords
- value
- flip
- codeword
- specific data
- data portion
- Prior art date
Links
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/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/1108—Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
-
- 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/1128—Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
-
- 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/61—Aspects and characteristics of methods and arrangements for error correction or error detection, not provided for otherwise
- H03M13/615—Use of computational or mathematical techniques
- H03M13/616—Matrix operations, especially for generator matrices or check matrices, e.g. column or row permutations
Landscapes
- Physics & Mathematics (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Probability & Statistics with Applications (AREA)
- Pure & Applied Mathematics (AREA)
- Mathematical Physics (AREA)
- Mathematical Optimization (AREA)
- Mathematical Analysis (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Algebra (AREA)
- Computing Systems (AREA)
- Error Detection And Correction (AREA)
Abstract
一種使用於低密度奇偶檢查碼解碼器之方法包括:接收第一碼字之特定資料部份;通過使用奇偶校驗矩陣之複數個校驗方程式並根據該特定資料部份來計算該特定資料部份之翻轉函式值,以計算該特定資料部份之複數個校驗值;以及通過比較該翻轉函式值與一翻轉臨界值來決定是否翻轉該第一碼字之該特定資料部份;其中該翻轉臨界值係為已經基於較早於該特定資料部份的複數個先前的資料部份之複數個對翻轉函式值所被計算出的值。
Description
本發明係關於一種解碼機制,尤指一種使用在低密度奇偶檢查碼解碼器(Low-Density Parity-Check Code (LDPC) Decoder)的方法及低密度奇偶檢查碼解碼器。
一般而言,具有傳統的位元翻轉(Bit Flip)機制的低密度奇偶檢查碼解碼器會被用來計算一個完整碼字(Codeword)的所有資料位元的所有初步的/初始的徵狀值(Syndrome)、接著基於所有資料位元的所有初步的/初始的徵狀值來決定出一翻轉臨界值(Flipping Threshold)、接著再通過比較每一位元被計算出的徵狀值與該翻轉臨界值來分別決定是否翻轉或切換(Toggle)該完整碼字的每一位元、以及如果某一位元已經被翻轉或被切換則重新計算或更新該完整碼字之該位元的徵狀值,不幸的是,由於對於這種傳統的位元翻轉機制來說必然需要計算一個完整碼字的所有資料位元的所有初步的/初始的徵狀值、接著基於所有資料位元的所有初步的/初始的徵狀值來決定出該翻轉臨界值、最終才能根據該翻轉臨界值及所有位元的計算出的徵狀值來決定是否翻轉或切換該完整碼字的每個位元,因此無可避免地需要進行複雜的計算、同時導致數值收斂較慢的問題。
因此,本發明的目的之一在於提供一種使用於一低密度奇偶檢查碼解碼器的方法及該低密度奇偶檢查碼解碼器,以解決上述的問題。
根據本發明的實施例,其係揭露一種使用於一低密度奇偶檢查碼解碼器之方法。該方法包含有:接收一第一碼字之一特定資料部份;通過使用一奇偶校驗矩陣之複數個校驗方程式並根據該特定資料部份來計算該特定資料部份之一翻轉函式值,以計算該特定資料部份之複數個校驗值;以及通過比較該翻轉函式值與一翻轉臨界值來決定是否翻轉該第一碼字之該特定資料部份;其中該翻轉臨界值係為已經基於較早於該特定資料部份的複數個先前的資料部份之複數個對翻轉函式值所被計算出的值。
根據上述實施例,其另揭露了一種低密度奇偶檢查碼解碼器。該低密度奇偶檢查碼解碼器包含有一桶式移位器、一徵狀值計算器、一反向桶式移位器、一翻轉函式值計算器以及一決定單元。桶式移位器用來對一第一碼字進行一規定位元個數的移位及旋轉操作;徵狀值計算器耦接於該桶式移位器並用來接收該桶式移位器之一輸出,基於一奇偶校驗矩陣之複數個校驗方程式,計算該第一碼字之一特定資料部分之一徵狀值;反向桶式移位器耦接於該徵狀值計算器並用來對於該徵狀值計算器之一輸出執行該桶式移位器之一反相的操作,產生對於在該奇偶校驗矩陣之一特定橫列上的一校驗方程式的該特定資料部份之一校驗值;翻轉函式值計算器耦接於該反向桶式移位器並用來通過使用該奇偶校驗矩陣之該複數個校驗方程式所產生之複數個校驗值並根據該特定資料部份,計算該特定資料部份之一翻轉函式值;以及決定單元耦接於該翻轉函式值計算器並用來通過比較該翻轉函式值與一翻轉臨界值來決定是否翻轉該第一碼字之該特定資料部份;該翻轉臨界值係為已經基於較早於該特定資料部份的複數個先前的資料部份之複數個對翻轉函式值所被計算出的值。
根據上述實施例,本發明的方法及解碼器能夠大幅增進解碼器的效能、降低/減少計算複雜度以及加速數值收斂。
第1圖是本發明第一實施例使用於一線性分組碼(Linear Block Code)解碼器(例如一低密度奇偶檢查碼解碼器)的解碼方法之流程示意圖,包含於一碼字內的某些資料部份(例如一或多個資料位元)於其傳輸期間可能會受到某些錯誤的影響而造成資料改變,本解碼方法係用來接收並解碼這樣的碼字以產生一個更正後的正確碼字,本解碼方法係用以執行位元翻轉操作,該翻轉操作係用以判斷是否翻轉所接收的碼字的一資料部份(例如一位元;但不限定)並接著在翻轉之後計算一對應的徵狀值,如果所計算之對應的徵狀值等於零,則該位元(無論是被翻轉後或並未被翻轉)會被估計為一正確的位元,亦即,本解碼方法正確地解碼了該位元;該翻轉操作均對於每一個資料部份進行處理,每一個資料部份例如是每一個碼字的每一個資料位元。
對於一個完整碼字,現有傳統機制會計算該完整碼字的所有資料位元的所有初步的/初始的多個徵狀值、基於所有的初步的/初始的多個徵狀值來決定一翻轉臨界值、通過比較該完整碼字的一位元的一初步的/初始的徵狀值與該位元的該翻轉臨界值來決定是否翻轉該位元以及最後在翻轉運作後再次計算結果的或更新後的多個徵狀值,然而,現有機制需要複雜的計算。
為了解決現有傳統機制的問題,在第一實施例,本方法決定是否翻轉一位元的操作係基於根據多個先前的資料位元在其翻轉操作後(例如一先前碼字的多個位元)的結果的/更新後的多個徵狀值所決定出的一翻轉臨界值,如此,對於決定是否翻轉一目前碼字的一位元,本解碼方法並不需要等候直到該目前碼字的所有資料位元的所有初步的多個徵狀值已經被計算出時才進行決定是否翻轉的操作,本解碼方法係在一旦某一個位元的先前徵狀值已經計算出後就可以立刻決定是否要翻轉該位元。
再者,本解碼方法更特別地涉及一種直行式(Column-layer)的位元翻轉機制,該位元翻轉機制能夠翻轉一個碼字位元,而不用等待計算出一個完整碼字的所有初步徵狀值的時間,也就是說,在同一個碼字的其他剩下的一或多個碼字位元還尚未被解碼器所接收或所處理時,如果需要翻轉的話,則該解碼方法就可以立刻翻轉該碼字位元,這樣的作法可以大幅地增進解碼器的效能、降低計算複雜度以及加速數值收斂。
換言之,本解碼方法的操作係基於該碼字位元(例如目前進來的資料位元)的資訊以及較早於該目前進來的資料位元的其他多個資料位元的資訊,更具體來說,本解碼方法係用於當每一個資料位元正在被處理時基於先前多個資料位元來估計及更新每一資料位元的一翻轉臨界值以及接著比較所估計的翻轉臨界值與該目前進來資料位元的一翻轉函式值(Flipping Function Value)來決定是否要翻轉該目前進來資料位元並計算其更新後的徵狀值,舉例來說,該翻轉函式值可以被設置為該資料位元的初步徵狀值,亦即無效校驗和(Invalid Checksum)。
另外,在一加權位元翻轉(Weighted Bit Flipping,WBF)之解碼器的其他實施例,本解碼方法可以被另用來基於多個先前資料位元的資訊來決定多個加權數值(Weighted Value)以決定多個翻轉函式值及翻轉臨界值。
假設可獲取相同的結果,則這些步驟並不一定要遵照第1圖所示的執行次序來執行,且這些步驟不一定要連續地執行,也就是說,一些其他步驟可插入其中。這些步驟的詳細內容如下:
步驟105:開始;
步驟110:接收具有N個位元的一碼字之一特定資料位元,其中N為一正整數,舉例來說,該特定資料位元係為一目前進來的位元,例如是該碼字之第n個資料位元;
步驟115:計算第n個資料位元之翻轉函式值,舉例來說,翻轉函式值可以是該特定資料位元之一無效校驗和(亦即,該徵狀值,與奇偶校驗矩陣(Parity Check Matrix)H的所有校驗方程式有關之多個初步校驗值的總和);
步驟120:比較第n個資料位元之翻轉函式值與第n個資料位元之翻轉臨界值,以決定是否翻轉第n個資料位元,其中第n個資料位元之翻轉臨界值係為已經根據N-1個先前的資料位元的多個翻轉函式值所計算出或決定出的值;
步驟125A:翻轉第n個資料位元;
步驟125B:不翻轉第n個資料位元;
步驟130A:計算已經被翻轉的第n個資料位元之所有校驗方程式的多個徵狀值/校驗值;
步驟130B:計算沒有被翻轉的第n個資料位元之所有校驗方程式的多個徵狀值/校驗值;
步驟135:根據第n個資料位元之翻轉函式值及N-1個先前的資料位元之多個翻轉函式值,對於接下來的一或多個資料位元,更新翻轉臨界值;
步驟140:對於接下來的一或多個資料位元,重複執行上述步驟直到計算出之多個徵狀值/校驗值的和等於零或是到達一最大迭代次數(Maximum Iteration Number);以及
步驟145:結束。
具體來說,本解碼方法係基於奇偶校驗矩陣H來計算所接收到之多個資料位元的多個徵狀值/校驗值,對於橫列上的任一向量X來說,S=XT
•H即係為向量X的徵狀值,向量X在意義上所指的是所接收到之一碼字,向量X為一正確的碼字的條件以及徵狀值S等於0的條件為充份且必要的條件,矩陣H具有M個橫列(Row)及N個直行(Column),其中M及N均為正整數,在實施例中,N個直行所指的是一個碼字被定義為具有N個資料位元,而M個橫列所指的是M個校驗方程式或檢查節點(Checking Node),此外,奇偶校驗矩陣H係與類循環碼(Quasi-Cyclic (QC) Code)有關並由多個循環矩陣的多個區塊所形成,該低密度奇偶檢查碼解碼器係為一類循環低密度奇偶檢查碼解碼器,碼字向量X內的每一單元係為0或1,定義為對於第m個橫列的一特定校驗方程式在第n個直行的第n個資料位元的一徵狀值/校驗值,而定義為對於所有M個校驗方程式在第n個直行的第n個資料位元的多個徵狀值/校驗值的一總和,亦即,第n個資料位元的一無效校驗和,舉例來說,如果有一個校驗方程式的條件不滿足,則該無效校驗和會等於1,相同地,如果有兩個校驗方程式的條件不滿足,則該無效校驗和會等於2。
在步驟115,解碼方法係將第n個資料位元之翻轉函式值設置為第n個資料位元之無效校驗和,亦即翻轉操作之前的初步徵狀值,相同地,解碼方法也可以對於N-1個先前的資料位元執行類似的步驟,分別計算在處理第n個資料位元之前的N-1個先前的資料位元的多個翻轉函式值。
如此,在步驟120,解碼方法用來比較翻轉函式值與翻轉臨界值,其中翻轉臨界值係為基於N-1個先前的資料位元的翻轉函式值所已經決定出或計算出的值,而在N-1個先前的資料位元中某一些資料位元可能會屬於另一個不同的碼字。此外,解碼方法舉例來說可以對N-1個先前的資料位元的多個翻轉函式值進行排序、選取並記錄N-1個先前的資料位元的多個翻轉函式值中的一最大值作為翻轉臨界值以及也可以記錄上述多個翻轉函式值中的一次大值作為第n個資料位元之一候選的翻轉臨界值。
如果翻轉函式值不小於翻轉臨界值,則於步驟125A中解碼方法會翻轉或切換第n個資料位元,而在步驟130A中解碼方法會計算,亦即已經被翻轉之第n個資料位元的所有校驗方程式之徵狀值/校驗值的一總和。反之,如果翻轉函式值小於翻轉臨界值,則在步驟125B中該解碼方法會決定不翻轉或不切換第n個資料位元,而在步驟130B中該解碼方法會計算,亦即沒有被翻轉之第n個資料位元的所有校驗方程式之徵狀值/校驗值的一總和。
在步驟135,該解碼方法接著會根據上述N-1個先前的資料位元的多個翻轉函式值及上述之該翻轉函式值,更新接下來一或多個資料位元的翻轉臨界值。
相似地,在其他實施例,該解碼方法也可以對於該翻轉函式值及N-2個先前的資料位元的多個翻轉函式值進行排序、選取及更新/記錄該翻轉函式值及N-2個先前的資料位元的多個翻轉函式值中的一最大值作為該翻轉臨界值,以及也可以更新/記錄該翻轉函式值及N-2個先前的資料位元的多個翻轉函式值中的一次大值作為接下來一或多個資料位元之一候選的翻轉臨界值。
因此,每一個資料部份(例如每一資料位元)的一翻轉臨界值均可基於N-1個先前的資料位元之多個無效校驗和而決定出,此外,應注意的是,該解碼方法也可以記錄對應於該最大翻轉函式值的翻轉臨界值之相對應的索引值以及記錄對應於該次大的翻轉函式值之候選翻轉臨界值之一相對應的索引值,以更新該些臨界值;然此均並非是本案的限制。
實作上,請搭配參考第1圖與第2圖,第2圖是第1圖之實施例的一解碼器電路200的方塊示意圖,解碼器電路200包含一邏輯異或運算(exclusive-OR,XOR)電路205、一桶式移位器(Barrel Shifter)210、一徵狀值計算器215、一反向桶式移位器(Inverse Barrel Shifter)220、一翻轉函式值計算器225、一決定單元230以及一臨界值記錄單元235。邏輯異或運算電路205係用來於其第一輸入端接收多個碼字(例如碼字201A、201B、201C、201D及201E)以及在其第二輸入端接收多個回授位元以執行邏輯異或運算操作來產生一輸出至桶式移位器210。桶式移位器210係為耦接於邏輯異或運算電路205之一輸出的一數位電路,並用來對一碼字進行一規定位元個數的移位及旋轉操作。徵狀值計算器215係耦接於桶式移位器210並用來接收桶式移位器210的一輸出,其係基於奇偶校驗矩陣H的多個校驗方程式來計算一資料部份(例如一資料位元)的一或多個徵狀值,該資料位元例如該碼字的第n個資料位元;在本實施例,一資料部份的徵狀值係定義為對於奇偶校驗矩陣H之所有校驗方程式該資料部份的校驗值/徵狀值的一總和,然而並非本案的限制。
反向桶式移位器220係耦接於徵狀值計算器215並用來接收徵狀值計算器215的一輸出,執行與桶式移位器210相反的操作以在其輸出端產生在奇偶校驗矩陣H之第m個橫列的一校驗方程式之第n個資料位元的一校驗值,該校驗值可視為是第m個橫列的校驗方程式之第n個資料位元的一徵狀值,而對於奇偶校驗矩陣H的所有校驗方程式,反向桶式移位器220會一個接一個地於其輸出端上輸出第n個資料位元的多個徵狀值/校驗值、、…、。翻轉函式值計算器225係耦接於反向桶式移位器220並用來基於對應於奇偶校驗矩陣H的所有校驗方程式之第n個資料位元的多個校驗值、、…、,計算第n個資料位元的翻轉函式值,舉例來說,翻轉函式值計算器225會計算出翻轉函式值,亦即對於所有校驗方程式第n個資料位元的多個徵狀值/校驗值之一總和,然此並非是本案的限制,在其他實施例,也可以通過其他不同的等式來設置或計算翻轉函式值。
決定單元230係耦接於翻轉函式值計算器225的輸出並用來比較第n個資料位元之該翻轉函式值與該翻轉臨界值以決定是否翻轉第n個資料位元。臨界值記錄單元235係耦接於決定單元230並用來記錄上述的翻轉臨界值及候選的翻轉臨界值(亦即N-1個先前的資料位元的多個無效校驗和中的次大值)。此外,決定單元230係用來更新該翻轉臨界值,並接著會輸出該回授位元(無論是已經翻轉後或並未被翻轉)至邏輯異或運算電路205。、等分別所指的是不同碼字的多個不同的回授位元。桶式移位器210、徵狀值計算器215、反向桶式移位器220、翻轉函式值計算器225、決定單元230及臨界值記錄單元235分別用來對下一個資料位元(例如第n+1個資料位元)執行相對應的操作。
再者,上述所提的該解碼方法亦可應用於一加權位元翻轉的解碼器電路。請搭配參考第3圖與第4圖,第3圖是本發明第二實施例之使用於一加權位元翻轉的低密度奇偶檢查碼解碼器中的解碼方法的流程示意圖,第4圖是第3圖所示之實施例的加權位元翻轉的低密度奇偶檢查碼解碼器400的方塊示意圖,在本實施例中,加權位元翻轉的解碼器電路400中所採用的方法係可另用來基於多個先前的資料位元的多個徵狀值/校驗值的資訊來決定多個權重值,以決定出多個翻轉函式值及翻轉臨界值。
假設可獲取相同的結果,則這些步驟並不一定要遵照第3圖所示的執行次序來執行,且這些步驟不一定要連續地執行,也就是說,一些其他步驟可插入其中。這些步驟的詳細內容如下:
步驟305:開始;
步驟307:計算初始的權重;
步驟310:接收具有N個位元的一碼字之一特定資料位元,其中N為正整數,例如,該特定資料位元係為一目前進來的位元,例如該碼字的第n個位元;
步驟315:計算第n個資料位元的翻轉函式值;
步驟317:更新該權重;
步驟320:比較第n個資料位元之翻轉函式值與第n個資料位元的翻轉臨界值來決定是否翻轉第n個資料位元,其中第n個資料位元的翻轉臨界值係已經根據N-1個先前的資料位元的多個翻轉函式值而被算出或被決定出;
步驟325A:翻轉第n個資料位元;
步驟325B:不翻轉第n個資料位元;
步驟330A:對於已經翻轉之第n個資料位元,計算其所有校驗方程式的多個徵狀值/校驗值;
步驟330B:對於沒有被翻轉之第n個資料位元,計算其所有校驗方程式的多個徵狀值/校驗值;
步驟335:根據第n個資料位元之翻轉函式值及N-1個先前的資料位元之多個翻轉函式值,更新下一個或多個資料位元的翻轉臨界值;
步驟340:對於下一個或多個資料位元,重複上述的步驟,直到所計算之多個徵狀值/校驗值的總和等於零或已經達到了一最大迭代次數;以及
步驟345:結束。
在步驟307,如果加權位元翻轉的低密度奇偶檢查碼解碼器400係搭配有一動態加權位元翻轉演算法,則該初始的權重(例如一初始加權值)可以被設定為零,或者如果加權位元翻轉的低密度奇偶檢查碼解碼器400係搭配有其他加權位元翻轉演算法,則可根據通道值來計算出該初始的權重。
在步驟315,例如該解碼方法係用以基於以下方程式來計算第n個資料位元之翻轉函式值:
其中為在奇偶校驗矩陣H的第m個橫列之校驗方程式所對應之第n個資料位元的一加權值,亦即,有M×N個加權值,其中某些加權值可能相同,而其他加權值可能不相同,以及可以由下列方程式所表示:
在其他實施例,第n個資料位元的翻轉函式值可以被設定為以下等式(但不限定):
在步驟317, 該解碼方法係用來對於N-1個先前的資料位元中每一個位元,計算其加權值,並在每次當計算例如第n個資料位元之翻轉函式值時排序該些加權值以選出並記錄一最小的加權值、一次小的加權值及一再次小的加權值,如果根據上述等式及該翻轉函式值而已經計算出一新的加權值,則該解碼方法會接著排序並記錄一最小的加權值、一次小的加權值及一再次小的加權值,此外,該解碼方法也可以改為記錄與最小的加權值、一次小的加權值及一再次小的加權值三者有關的相對應之索引值。
再者,該解碼方法也可以設定N-1個先前的資料位元的多個翻轉函式值中一最大值作為翻轉臨界值。
步驟320至步驟340的操作係相似於第1圖所述的相對應的步驟內容,為了簡化說明書篇幅,不再重述。
對於實作來說,解碼器電路400包含邏輯異或運算電路205、桶式移位器210、徵狀值計算器215、反向桶式移位器220、翻轉函式值計算器425、一權重更新單元427、決定單元230以及臨界值記錄單元235,邏輯異或運算電路205係用來於其第一輸入端接收多個碼字(例如碼字201A、201B、201C、201D及201E)以及於其第二輸入端接收多個回授位元,以執行邏輯異或運算操作以產生輸出至桶式移位器210,桶式移位器210係為一數位電路,該數位電路用以耦接於邏輯異或運算電路205的輸出並用來對一碼字進行一規定位元個數的移位及旋轉操作,徵狀值計算器215係耦接於桶式移位器210並用來接收桶式移位器210的輸出以基於多個校驗方程式來計算一資料部份(例如一資料位元,例如該碼字的第n個資料位元)的一或多個徵狀值,反向桶式移位器220係耦接於徵狀值計算器215並用來接收徵狀值計算器215的輸出以執行與桶式移位器210相反的操作以在其輸出端產生在奇偶校驗矩陣H之第m個橫列的一校驗方程式之第n個資料位元的徵狀值/校驗值,反向桶式移位器220會對於奇偶校驗矩陣H的所有校驗方程式,一個接一個地於其輸出端上輸出第n個資料位元的多個徵狀值/校驗值、、…、。
翻轉函式值計算器425係耦接於反向桶式移位器220並用來基於對應於奇偶校驗矩陣H的所有校驗方程式所對應之第n個資料位元的多個校驗值、、…、,計算第n個資料位元的翻轉函式值,例如,翻轉函式值計算器425計算該翻轉函式值,然此並非是本案的限制,在其他實施例,可以通過其他不同的公式來設定或計算該翻轉函式值。
權重更新單元427係耦接於翻轉函式值計算器425並用來於第n個資料位元之前計算N-1個先前的資料位元的每一個資料位元的加權值,並於每一次當計算該翻轉函式值(例如第n個資料位元的翻轉函式值)時對多個加權值進行排序以選取並記錄該最小的加權值、該次小的加權值及該再次小的加權值,如果根據上述等式及該翻轉函式值而已經計算得到一新的加權值,權重更新單元427係用來再對多個加權值進行排序以選取並記錄該最小的加權值、該次小的加權值及該再次小的加權值,並且,權重更新單元427也可以用來記錄該最小的加權值、該次小的加權值及該再次小的加權值有關的相對應之多個索引值。
決定單元230係耦接於翻轉函式值計算器425的輸出並用來比較第n個資料位元之翻轉函式值與翻轉臨界值以決定是否翻轉第n個資料位元,臨界值記錄單元235係耦接於決定單元230並用來記錄上述的翻轉臨界值及候選的翻轉臨界值(亦即,N-1個先前的資料位元的多個翻轉函式值的次大值),決定單元230係用來更新該翻轉臨界值,此外,決定單元230會接著輸出回授位元(無論是被翻轉或並未被翻轉)至邏輯異或運算電路205,、、、、、、等分別所指的是不同碼字的不同回授位元,桶式移位器210、徵狀值計算器215、反向桶式移位器220、翻轉函式值計算器425、權重更新單元427、決定單元230及臨界值記錄單元235分別用來對於接下來的資料位元(第n+1個資料位元)執行上述相對應的操作。
此外,應注意的是,上述包含於一解碼器電路內的元件及/或單元均可採用硬體電路(例如處理器)、軟體模組/應用/程式碼及/或硬體電路與軟體模組/應用/程式碼的多種組合來實現。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
200、400‧‧‧解碼器電路
205‧‧‧邏輯異或運算電路
210‧‧‧桶式移位器
215‧‧‧徵狀值計算器
225、425‧‧‧翻轉函式值計算器
230‧‧‧決定單元
235‧‧‧臨界值記錄單元
220‧‧‧反向桶式移位器
427‧‧‧權重更新單元
第1圖為本發明第一實施例使用於一線性分組碼解碼器(例如低密度奇偶檢查碼解碼器)的解碼方法的流程示意圖。 第2圖為第1圖之實施例的解碼器電路的方塊示意圖。 第3圖為本發明第二實施例之使用於一加權位元翻轉的低密度奇偶檢查碼解碼器中的解碼方法的流程示意圖。 第4圖為第3圖所示之實施例的加權位元翻轉的低密度奇偶檢查碼解碼器的方塊示意圖。
Claims (20)
- 一種使用於一低密度奇偶檢查碼解碼器之方法,包含有: 接收一第一碼字之一特定資料部份; 通過使用一奇偶校驗矩陣之複數個校驗方程式並根據該特定資料部份來計算該特定資料部份之一翻轉函式值,以計算該特定資料部份之複數個校驗值;以及 通過比較該翻轉函式值與一翻轉臨界值來決定是否翻轉該第一碼字之該特定資料部份; 其中該翻轉臨界值係為已經基於較早於該特定資料部份的複數個先前的資料部份之複數個對翻轉函式值所被計算出的值。
- 如申請專利範圍第1項所述之方法,其中接收該第一碼字之該特定資料部份的步驟、計算該特定資料部份之該複數個校驗值的步驟以及決定是否翻轉該第一碼字之該特定資料部份的步驟係迭代地重複執行以處理至少一個接下來的資料部份,直到對應於該複數個校驗值之一徵狀值在計算後係等於零或是已經到達一最大迭代次數才停止。
- 如申請專利範圍第2項所述之方法,其中該徵狀值係被設定為再次計算後之該複數個校驗值之一總和。
- 如申請專利範圍第1項所述之方法,其中該特定資料部份係為該第一碼字之一資料位元。
- 如申請專利範圍第1項所述之方法,其中該複數個先前的資料部份的至少其中一個係被一第二碼字所包含,以及該第一碼字係在該第二碼字之後。
- 如申請專利範圍第1項所述之方法,其中該特定資料部份及該複數個先前的資料部份係對應於一資料長度,該資料長度等於一完整碼字的一資料長度。
- 如申請專利範圍第1項所述之方法,其中計算該特定資料部份之該複數個校驗值的步驟包含有: 通過使用該奇偶校驗矩陣之該複數個校驗方程式及複數個加權值,來計算該特定資料部份之該複數個校驗值,該複數個加權值係基於至少一個最小值所已經決定出的數值,該至少一個最小值係從該複數個先前的資料部份之多個加權值所選出的;以及 根據所計算之該複數個校驗方程式,計算該第一碼字之該特定資料部份之該翻轉函式值。
- 如申請專利範圍第7項所述之方法,其中在決定是否翻轉該第一碼字之該特定資料部份之前: 根據該特定資料部份之所計算的該翻轉函式值,更新該複數個加權值。
- 如申請專利範圍第1項所述之方法,另包含有: 根據該特定資料部份之所計算的該翻轉函式值,更新該翻轉臨界值以用以處理下一個資料部分。
- 如申請專利範圍第1項所述之方法,其中決定是否翻轉該第一碼字之該特定資料部份的步驟包含有: 當該翻轉函式值不小於該翻轉臨界值時,翻轉或切換該第一碼字之該特定資料部份,該翻轉臨界值係為已經基於較早於該特定資料部份的該複數個先前的資料部份之該複數個對翻轉函式值所被計算出的值。
- 一種低密度奇偶檢查碼解碼器,包含有: 一桶式移位器,用來對一第一碼字進行一規定位元個數的移位及旋轉操作; 一徵狀值計算器,耦接於該桶式移位器,用來接收該桶式移位器之一輸出,基於一奇偶校驗矩陣之複數個校驗方程式,計算該第一碼字之一特定資料部分之一徵狀值; 一反向桶式移位器,耦接於該徵狀值計算器,用來對於該徵狀值計算器之一輸出執行該桶式移位器之一反相的操作,產生對於在該奇偶校驗矩陣之一特定橫列上的一校驗方程式的該特定資料部份之一校驗值; 一翻轉函式值計算器,耦接於該反向桶式移位器,用來通過使用該奇偶校驗矩陣之該複數個校驗方程式所產生之複數個校驗值並根據該特定資料部份,計算該特定資料部份之一翻轉函式值;以及 一決定單元,耦接於該翻轉函式值計算器,用來通過比較該翻轉函式值與一翻轉臨界值來決定是否翻轉該第一碼字之該特定資料部份; 其中該翻轉臨界值係為已經基於較早於該特定資料部份的複數個先前的資料部份之複數個對翻轉函式值所被計算出的值。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,其中該桶式移位器係用來接收至少一個接下來的資料部份,以及該桶式移位器、該徵狀值計算器、該反向桶式移位器、該翻轉函式值計算器及該決定單元係迭代地對該至少一個接下來的資料部份重複相對應操作,直到該徵狀值在計算後係等於零或是已經到達一最大迭代次數才停止。
- 如申請專利範圍第12項所述之低密度奇偶檢查碼解碼器,其中該徵狀值係被設定為再次計算後之該複數個校驗值之一總和。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,該特定資料部份係為該第一碼字之一資料位元。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,其中該複數個先前的資料部份的至少其中一個係被一第二碼字所包含,以及該第一碼字係在該第二碼字之後。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,其中該特定資料部份及該複數個先前的資料部份係對應於一資料長度,該資料長度等於一完整碼字的一資料長度。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,其中該翻轉函式值計算器係用來: 通過使用該奇偶校驗矩陣之該複數個校驗方程式及複數個加權值,來計算該特定資料部份之該複數個校驗值,該複數個加權值係基於至少一個最小值所已經決定出的數值,該至少一個最小值係從該複數個先前的資料部份之多個加權值所選出的;以及 根據所計算之該複數個校驗方程式,計算該第一碼字之該特定資料部份之該翻轉函式值。
- 如申請專利範圍第17項所述之低密度奇偶檢查碼解碼器,另包含有: 一權重更新單元,耦接於該翻轉函式值計算器,用來在該決定單元決定是否翻轉該第一碼字之該特定資料部份之前,根據該特定資料部份之所計算的該翻轉函式值,更新該複數個加權值。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,另包含有: 一臨界值記錄單元,耦接於該決定單元,用來根據該特定資料部份之所計算的該翻轉函式值,更新該翻轉臨界值及一相對應的索引值,以用以處理下一個資料部分。
- 如申請專利範圍第11項所述之低密度奇偶檢查碼解碼器,其中當該翻轉函式值不小於該翻轉臨界值時,該決定單元係翻轉或切換該第一碼字之該特定資料部份,該翻轉臨界值係為已經基於較早於該特定資料部份的該複數個先前的資料部份之該複數個對翻轉函式值所被計算出的值。
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US15/820,391 US10523236B2 (en) | 2017-11-21 | 2017-11-21 | Method employed in LDPC decoder and the decoder |
US15/820,391 | 2017-11-21 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201926911A true TW201926911A (zh) | 2019-07-01 |
TWI699977B TWI699977B (zh) | 2020-07-21 |
Family
ID=66533461
Family Applications (2)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW107113677A TWI699977B (zh) | 2017-11-21 | 2018-04-23 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
TW109119738A TWI758748B (zh) | 2017-11-21 | 2018-04-23 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
Family Applications After (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW109119738A TWI758748B (zh) | 2017-11-21 | 2018-04-23 | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 |
Country Status (3)
Country | Link |
---|---|
US (2) | US10523236B2 (zh) |
CN (1) | CN109818625B (zh) |
TW (2) | TWI699977B (zh) |
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI818490B (zh) * | 2022-03-29 | 2023-10-11 | 睿寬智能科技有限公司 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
Families Citing this family (10)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI646783B (zh) * | 2018-04-10 | 2019-01-01 | 大陸商深圳大心電子科技有限公司 | 解碼方法及儲存控制器 |
US10951232B2 (en) * | 2018-11-26 | 2021-03-16 | Micron Technology, Inc. | Error correction bit flipping scheme |
US11184024B2 (en) * | 2019-12-02 | 2021-11-23 | SK Hynix Inc. | Error mitigation scheme for bit-flipping decoders for irregular low-density parity-check codes |
US11057059B1 (en) * | 2020-01-15 | 2021-07-06 | Western Digital Technologies, Inc. | Content aware bit flipping decoder |
US11387845B2 (en) | 2020-02-06 | 2022-07-12 | SK Hynix Inc. | LDPC decoder, operating method of LDPC decoder, and semiconductor memory system |
US11190212B1 (en) | 2020-07-24 | 2021-11-30 | SK Hynix Inc. | Dynamic control of quasi-cyclic low-density parity-check bit-flipping decoder |
US11349498B2 (en) * | 2020-10-08 | 2022-05-31 | Micron Technology, Inc. | Bit flipping low-density parity-check decoders with low error floor |
CN112306741B (zh) * | 2020-11-19 | 2022-12-23 | 山东云海国创云计算装备产业创新中心有限公司 | 一种crc校验方法及相关装置 |
US11664821B1 (en) | 2022-02-08 | 2023-05-30 | SK Hynix Inc. | Error floor performance of a bit flipping decoder through identifying unreliable check nodes |
US11949430B2 (en) * | 2022-09-01 | 2024-04-02 | SK Hynix Inc. | Parallel system to calculate low density parity check |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US63400A (en) * | 1867-04-02 | Joel lee | ||
US8677225B1 (en) * | 2011-02-11 | 2014-03-18 | Marvell International Ltd. | Low-density parity-check decoder |
US9258015B2 (en) * | 2013-12-23 | 2016-02-09 | Apple Inc. | Decoder with selective iteration scheduling |
CN103888148B (zh) * | 2014-03-20 | 2016-10-26 | 山东华芯半导体有限公司 | 一种动态阈值比特翻转的ldpc码硬判决译码方法 |
WO2015152922A1 (en) * | 2014-04-03 | 2015-10-08 | Empire Technology Development Llc | Memory device with speculated bit flip threshold |
US9692450B2 (en) * | 2015-05-11 | 2017-06-27 | Maxio Technology (Hangzhou) Ltd. | Systems and methods for early exit of layered LDPC decoder |
US9768807B2 (en) * | 2015-08-31 | 2017-09-19 | Sandisk Technologies Llc | On-the-fly syndrome and syndrome weight computation architecture for LDPC decoding |
US10050642B2 (en) * | 2016-03-17 | 2018-08-14 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
US20170288698A1 (en) * | 2016-03-29 | 2017-10-05 | Silicon Motion Inc. | Power saving for bit flipping decoding algorithm in ldpc decoder |
-
2017
- 2017-11-21 US US15/820,391 patent/US10523236B2/en active Active
-
2018
- 2018-04-23 TW TW107113677A patent/TWI699977B/zh active
- 2018-04-23 TW TW109119738A patent/TWI758748B/zh active
- 2018-07-20 CN CN201810804568.7A patent/CN109818625B/zh active Active
-
2019
- 2019-12-24 US US16/726,808 patent/US11296725B2/en active Active
Cited By (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
TWI818490B (zh) * | 2022-03-29 | 2023-10-11 | 睿寬智能科技有限公司 | 低密度奇偶校驗碼的重組式解碼法與裝置 |
Also Published As
Publication number | Publication date |
---|---|
CN109818625A (zh) | 2019-05-28 |
US10523236B2 (en) | 2019-12-31 |
US11296725B2 (en) | 2022-04-05 |
CN109818625B (zh) | 2022-10-21 |
TW202044780A (zh) | 2020-12-01 |
US20200136645A1 (en) | 2020-04-30 |
TWI699977B (zh) | 2020-07-21 |
TWI758748B (zh) | 2022-03-21 |
US20190158115A1 (en) | 2019-05-23 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI758748B (zh) | 使用於低密度奇偶檢查碼解碼器的方法及解碼器 | |
TWI663839B (zh) | 使用硬選取硬解碼模式下的解碼器產生軟資訊的方法 | |
US7730377B2 (en) | Layered decoding of low density parity check (LDPC) codes | |
US8572463B2 (en) | Quasi-cyclic LDPC encoding and decoding for non-integer multiples of circulant size | |
JP4320418B2 (ja) | 復号装置および受信装置 | |
CN109787639B (zh) | 用于解码纠错码的系统和方法 | |
KR20040049864A (ko) | 패리티 검사 디코더에 사용하기 위한 노드 처리기 | |
US20200044668A1 (en) | Method for ldpc decoding, ldpc decoder and storage device | |
CN109802688B (zh) | 一种多进制ldpc译码系统和方法 | |
US8504892B2 (en) | LDPC decoder and method for LDPC decoding based on layered algorithm applied to parity check matrix | |
CN113783576A (zh) | 用于从循环置换矩阵的集群构建的准循环低密度奇偶校验码的垂直分层解码的方法及设备 | |
CN108270518B (zh) | 用以解码接收信息的解码方法与相关解码装置 | |
CN106856406B (zh) | 一种译码方法中校验节点的更新方法及译码器 | |
US11381260B2 (en) | Architecture for guessing random additive noise decoding (GRAND) | |
CN114499541A (zh) | 分层译码方法、装置、终端设备及介质 | |
US20100185913A1 (en) | Method for decoding ldpc code and the circuit thereof | |
US9590658B1 (en) | High-speed low-power LDPC decoder design | |
CN115694513A (zh) | 一种基于移位型基图的超高吞吐率ldpc译码器 | |
CN112104379B (zh) | 一种基于关键集的极化码置信度传播动态翻转译码方法 | |
CN113612485A (zh) | 一种译码方法、译码装置、设备及存储装置 | |
JP2012124888A (ja) | 復号装置及び復号方法 | |
TWI523437B (zh) | Bch碼編碼與癥狀計算共用設計電路及決定該共用設計電路的方法 | |
TWI810872B (zh) | 用於準循環低密度奇偶校驗碼的快速解碼器 | |
CN108270517B (zh) | 用以解码接收信息的解码方法与相关解码装置 | |
US20140075261A1 (en) | Optimized mechanism to simplify the circulant shifter and the p/q kick out for layered ldpc decoder |