TWI631830B - 解碼方法與相關解碼裝置 - Google Patents

解碼方法與相關解碼裝置 Download PDF

Info

Publication number
TWI631830B
TWI631830B TW105144104A TW105144104A TWI631830B TW I631830 B TWI631830 B TW I631830B TW 105144104 A TW105144104 A TW 105144104A TW 105144104 A TW105144104 A TW 105144104A TW I631830 B TWI631830 B TW I631830B
Authority
TW
Taiwan
Prior art keywords
received message
symptom
bit
vector
flip
Prior art date
Application number
TW105144104A
Other languages
English (en)
Other versions
TW201824759A (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 TW105144104A priority Critical patent/TWI631830B/zh
Priority to CN201710471210.2A priority patent/CN108270518B/zh
Priority to CN202110006001.7A priority patent/CN112865920A/zh
Priority to US15/654,721 priority patent/US20180191377A1/en
Publication of TW201824759A publication Critical patent/TW201824759A/zh
Application granted granted Critical
Publication of TWI631830B publication Critical patent/TWI631830B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • 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
    • H04L1/0063Single parity check
    • 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/11Error 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/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1128Judging correct decoding and iterative stopping criteria other than syndrome check and upper limit for decoding iterations
    • 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
    • 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/0045Arrangements at the receiver end

Landscapes

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

Abstract

一種用以解碼一接收訊息的解碼方法,其中該接收訊息包含有複數個接收訊息區塊。該解碼方法包含:根據一校驗矩陣得到一第一徵狀;根據該第一徵狀與該複數個接收訊息區塊中之一第一接收訊息區塊產生對應於該第一接收訊息區塊之一第一位元翻轉向量;根據該第一位元翻轉向量更新該第一徵狀以產生一第二徵狀;以及根據該第二徵狀與該複數個接收訊息區塊中之一第二訊息區塊產生對應於該第二接收訊息區之一第二位元翻轉向量。

Description

解碼方法與相關解碼裝置
本發明係關於錯誤校正,尤指一種用以執行錯誤校正的解碼方法與相關解碼裝置。
如第1圖所示的資訊傳輸系統中,為了實現錯誤校正,傳送端1的原始訊息m會經過編碼器11的編碼處理,在原始訊息m後加上若干位元數的奇偶校驗碼p,從而得到碼字(codeword)c。經過通道30的傳輸後,接收端2可接收到一接收訊息r,接收端2中的解碼器21會基於編碼器11所進行的編碼處理,來判斷接收訊息r中是否存在通道雜訊造成的錯誤,並且在發現錯誤後,執行相對應的演算法進行錯誤校正,從而還原出碼字c,並從碼字c中得到原始訊息m。
儘管現有技術中已經存在了不少效果著越的解碼演算法與相關電路,但不論是在演算法或者是電路架構上,仍有改善的空間。
本發明之一實施例提供一種用以解碼一接收訊息的解碼方法,其中該接收訊息包含有複數個接收訊息區塊。該解碼方法包含:根據一校驗矩陣得到一第一徵狀;根據該第一徵狀與該複數個接收訊息區塊中之一第一接收訊息區塊產生對應於該第一接收訊息區塊之一第一位元翻轉向量; 根據該第一位元翻轉向量更新該第一徵狀以產生一第二徵狀;以及根據該第二徵狀與該複數個接收訊息區塊中之一第二訊息區塊產生對應於該第二接收訊息區之一第二位元翻轉向量。
本發明之另一實施例提供一種用以解碼一接收訊息的解碼裝置,其中該接收訊息包含有複數個接收訊息區塊。該解碼裝置包含:一徵狀計算單元以及一翻轉計算單元。該徵狀計算單元用以根據一校驗矩陣 得到一第一徵狀。該翻轉計算單元用以根據該第一徵狀與該複數個接收訊息區塊中之一第一接收訊息區塊產生對應於該第一接收訊息區塊之一第一位元翻轉向量。並且,該徵狀計算單元根據該第一位元翻轉向量更新該第一徵狀以產生一第二徵狀,而該翻轉計算單元根據該第二徵狀與該複數個接收訊息區塊中之一第二訊息區塊產生對應於該第二接收訊息區之一第二位元翻轉向量。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,硬體製造商可能會用不同的名詞來稱呼同一個元件。本說明書及後續的申請專利範圍並不以名稱的差異來作為區分元件的方式,而是以元件在功能上的差異來作為區分的準則。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置耦接於一第二裝置,則代表該第一裝置可直接電氣連接於該第二裝置,或透過其他裝置或連接手段間接地電氣連接至該第二裝置。
本發明之解碼方法與解碼裝置可用於一訊息傳輸系統的接收端,以對該訊息傳輸系統的傳送端之編碼器所傳送出的碼字c進行解碼處理。首先,傳送端的原始訊息m會基於編碼器的編碼處理,在原始訊息m後加上若干位元數的奇偶校驗碼p,從而得到碼字c。例如,在低密度奇偶檢查碼(Low-density parity-check code,LDPC code)架構下,編碼器可根據一個產生矩陣(generation matrix)G進行的編碼處理,從而得到碼字c,亦即:
m‧G=c
其中,產生矩陣G與一個相對應的校驗矩陣(parity check matrix)H有著以下的關係:
G‧H T=0
並且,與校驗矩陣H與碼字c之間具有以下關係:
c‧H T=0
假設碼字c經過通道傳送後,在接收端接所接收到接收訊息為r,則接收訊息r可表示成錯誤e與碼字c疊加的結果,其中錯誤e可能為通道雜訊所造成的干擾:
r=c+e
若進一步將接收訊息r與校驗矩陣H的轉置矩陣進行內積,則可得到:
r‧H T= (c+e)‧H T= c‧H T+ e‧H T
由於c‧H T必為零,因此上述的運算的結果為e‧H T,亦稱之為徵狀(syndrome)。當接收訊息r中不包含錯誤,則徵狀為0。然而,若在接收到接收訊息r的初期,上述徵狀計算的結果不為零,也可透過反覆校正接收訊息r的部分位元,得到r’‧H T=0的結果,此時代表校正後的接收訊息r’與傳送端所傳送出的碼字c一致。
接收訊息r可以視為第2圖所示的n個接收訊息區塊r 1~r n所組成。其中,每一個訊息區塊r 1~r­ n可能包含有一個或多個位元,而校驗矩陣H也可以根據這樣的方式分割成n個相應的子矩陣H 1~H n
第3圖繪示本發明之一實施例的解碼裝置100,解碼裝置100反覆地進行遞迴式的運算來解碼接收訊息r。在一個遞迴(iteration)中,徵狀計算單元110中的運算單元112會分別計算出每個接收訊息區塊r 1~r­ n與其所相應的子矩陣H 1~H n的轉置矩陣H 1 T~H n T的內積,亦即,r 1‧H 1 T、r 2‧H 2 T、r 3‧H 3 T、….. ­以及r n‧H n T。每當運算單元112計算出一組內積r k‧H k T,就會被累計在徵狀計算單元110中的儲存單元114,並且透過加法器116,與下一組內積r k+1‧H k+1 T,進行加總,並再次寫入儲存單元114。最後,當所有的部分接收息r 1~r­ n與相應的轉置矩陣H 1 T~H n T的內積計算完畢後,可以得到徵狀S,這個運算過程可以表達如下:
r 1‧H 1 T⊕ r 2‧H 2 T⊕r 3‧H 3 T⊕…⊕r n‧H n T=S
由徵狀計算單元110計算出的徵狀S,在一個遞迴結束後,會被寫入至另一組儲存單元120中。在下一個遞迴中,儲存單元120會維持所儲存的徵狀S不變,不受儲存單元114的影響。權重計算單元130會根據儲存單元120中所儲存的徵狀S,計算出多組權重向量。其中,權重計算單元130會利用徵狀S分別與子矩陣H 1~H n進行內積計算,從而得到權重向量W 1­­=ΣS‧H 1、W 2=ΣS‧H 2、….以及W n=ΣS‧H n。接著,翻轉計算單元140會根據權重向量W 1­­、W 2、….以及W n,以及翻轉臨界值調整單元150所設定的翻轉臨界值TH k,產生分別對於每一個接收訊息區塊r 1~r­ n的位元翻轉向量v 1~v­ n來進行錯誤校正。其中,權重向量W 1­­、W 2、….以及W n與對應之接收訊息區塊r 1~r­ n中的位元的錯誤機率正相關。
一開始,翻轉臨界值調整單元150會將翻轉臨界值TH k設定為TH 1(通常為所有可供設定之臨界值中的最大者,亦等校驗矩陣H的一行中,“1”的個數),接著,翻轉計算單元140會根據當前的翻轉臨界值TH 1逐個檢查權重向量W 、W 2…W n,確認是否權重向量W 、W 2…W 中有元素大於或等於當前的翻轉臨界值TH 1,從而產生位元翻轉向量v 1~v n。例如,當翻轉計算單元140檢查權重向量W 時,發現其中的一個或多個元素大於或等於翻轉臨界值TH 1,那麼翻轉計算單元140會針對接收訊息區塊r 2中產生一個位元翻轉向量v 2,位元翻轉向量v 2指出該接收訊息區塊r 2中對應於該一個或多個元素的位元需要進行位元翻轉(代表該位元可能錯誤),如將某個位元的數值由“1”翻轉為“0”或者是由“0”翻轉為“1”。另一方面,若翻轉計算單元140沒有發現權重向量W 、W 2…W 中有元素大於或等於當前的翻轉臨界值TH 1,則會產生數值為零的位元翻轉向量v 1~v n。再者,翻轉處理單元160會根據位元翻轉向量v 1~v n來更新儲存於儲存單元170中之接收訊息區塊r 1~r n,從而得到處理後之接收訊息區塊r 1’~r n’。
在一個遞迴中,翻轉計算單元140會針對每個權重向量W 、W 2…W n進行相同檢查,並且視檢查結果產生位元翻轉向量v 1~v n,並且在所有權重向量W 1、W 2…W n檢查完畢後,結束這個遞迴。在一個遞迴之中,若翻轉計算單元140並沒有檢查出權重向量W 、W 2…W n中的元素有任何一者大於或等於當前的翻轉臨界值TH 1,則會令翻轉臨界值調整單元150將當前的臨界值調降翻轉臨界值為TH 2。之後,下一個遞迴中,翻轉計算單元140會根據臨界值TH 2對每個權重向量W 、W 2…W n進行檢查,並判斷是否對某個接收訊息區塊r 1~r k進行位元翻轉,以產生位元翻轉向量v 1~v n
另一方面,一旦翻轉計算單元140針對了接收訊息區塊r 1~r­ n中之一者產生會造成位元翻轉的非零位元翻轉向量,那麼,在這個遞迴結束後,翻轉處理單元160會將儲存單元170中接收訊息更新為處理後的接收訊息區塊r 1’~r­ n’。並且,在下一個遞迴中,徵狀計算單元110會根據處理後的接收訊息區塊r 1’~r n’重新計算一次徵狀,得到徵狀S’,而權重計算單元130則再根據徵狀S’與校驗矩陣H(H 1~H n)進行權重計算,從而得到新的n組權重向量:W 1­­’、W 2’、….以及W n’。在得到新的n組權重向量W 1­­’、W 2’、….以及W n’之後,翻轉計算單元140再次根據翻轉臨界值TH 1進行檢查。請注意,一旦翻轉計算單元140在某個遞迴中,針對了某個接收訊息區塊r 1~r k進行了位元翻轉,那麼在下一個遞迴中,翻轉臨界值會被重置成所有翻轉臨界值中最大的一者(如TH 1);只有在檢查的過程中沒有發現權重向量W 、W 2…W n中有元素大於或等於當前的翻轉臨界值,此時才會調降翻轉臨界值,(如由TH 1調降成TH 2)。解碼裝置100將反覆進行這樣的操作,直到計算出為0的徵狀,這就表示處理後的接收訊息中已不包含任何錯誤,並且與傳送端所傳送出的碼字c相同,此時針對接收訊息的錯誤校正流程結束。又或者,當遞迴次數達到一個預設上限,則代表接收訊息r中的錯誤無法校正,流程亦結束,接收訊息r被視為無效。
第4圖繪示了上述的校正流程中,前幾個遞迴的時序圖。在這個範例中,為簡化說明,接收訊息r只包含為三個接收訊息區塊r 1、r 2以及r 3。首先可看到,在時間點T1時,徵狀計算單元110接收到包含有接收訊息區塊r 1、r 2以及r 的接收訊息r,並且在遞迴I中計算出徵狀S。在遞迴I之中,權重計算單元130基於徵狀S,依序計算出權重向量W1、W2、以及W3。同時,每當權重計算單元130計算出一組權重向量後,翻轉計算單元140便根據當前的臨界值TH 1對權重向量W 1、W 2、W 3進行檢查,並在檢查後視情況,判定是否對接收訊息區塊r 1、r 2以及r 3進行特定位元的翻轉,從而得到處理後的接收訊息r’的接收訊息區塊r 1 、r 2 以及r 3 。在遞迴II之中,徵狀計算單元110再次利用校正後的接收訊息區塊r 1 、r 2 以及r 3 計算徵狀,以及得到新的徵狀S’。
從上述的時序圖可以看出,徵狀的更新與位元翻轉判斷之間有延遲,例如,儘管在遞迴I的初期就可以得到處理後的接收訊息區塊r 1 ,但是必須等到進入遞迴II之後,針對接收訊息區塊r 1的處理結果,才會影響徵狀,使得徵狀被更新成S’。另一個問題在於,不論一個遞迴中是否所有的接收訊息區塊r 1、r 2以及r 3有被更新,徵狀計算單元110都需要讀取與利用儲存單元170中所有的接收訊息區塊r 1、r 2以及r 3來計算徵狀,造成無謂的耗電。因此,為了解決這個問題,本發明的第二實施例提供了另一種架構。
第5圖繪示了改善徵狀更新延遲與耗電問題的解碼裝置200的架構圖。此實施例的徵狀計算單元210,權重計算單元230、翻轉計算單元240、翻轉處理單元260、儲存單元270的原理與操作大致上與權重計算單元130與翻轉計算單元140、翻轉處理單元160與儲存單元170相同,其特點在於,每當位元翻轉發生後,徵狀立刻被更新。請同時參考第5圖的架構圖與第6圖所示的時序圖。首先,在時間點T1後,徵狀計算單元210利用遞迴的方式,根據接收訊息區塊r 1~r 3(此處為n=3的範例)計算出徵狀S,接著,權重計算單元230據此計算出了權重向量W 1,而翻轉計算單元240則根據權重向量W 判斷出訊息區塊r 1需進行位元翻轉(假設此時符合位元翻轉的條件),產生對應接於收訊息區塊r 1的位元翻轉向量v 1,這時,徵狀計算單元210會立刻根據位元翻轉向量v 1更新徵狀S,得到徵狀S’。基於徵狀S’,翻轉計算單元240計算出權重向量W 2’,並且再次對判斷出訊息區塊r 2需進行位元翻轉(假設此時亦符合位元翻轉的條件),得到對應於訊息區塊r 2的位元翻轉向量v 2,並令徵狀計算單元210再一次更新徵狀S’,從而得到徵狀S’’。接著再針對訊息區塊r 3產生位元翻轉向量v 3。另一方面,儲存單元270在時間點T1之間儲存了接收訊息區塊r 1~r 3,之後,翻轉處理單元260根據位元翻轉向量v 1~v 3來更新儲存單元270中的接收訊息區塊r 1~r 3使其成為處理後的接收訊息區塊r 1'~r 3'。
由於這個實施例不包含前述實施例的儲存單元120,因此每當一個接收訊息區塊經過位元翻轉處理後,徵狀的改變可以馬上反映在下一個接收訊息區塊的處理與更新上,因此,解碼效率可被提升。另一方面,在電路架構上,徵狀計算單元210不再需要依據所有的接收訊息區塊來計算與更新徵狀,而是只利用接受訊息區塊再處理後的變化(亦即,位元翻轉向量),改變徵狀計算單元210中儲存單元224的累加結果,從而更新徵狀,這樣可大幅降低在前一個實施例中在每個遞迴中反覆進行徵狀計算所造成的無謂耗電。另一方面,由於解碼效率的提升,也實質上提升了解碼裝置200的吞吐量(throughput)。
在此實施例中,由於徵狀是持續被更新的,所以已難以界定遞迴邊界,故無法以遞迴為基礎,調整翻轉臨界值。因此,翻轉臨界值調整單元250基於權重向量W 1~W n的檢查次數與在一定次數中是否已發生位元翻轉來調整翻轉臨界值。舉例來說,若接收訊息r被分割為n段接收訊息區塊r 1~r n,那麼翻轉臨界值設定單元250會在n個階段(cycle)的檢查中,觀察是否翻轉計算單元240決定對某個接收訊息區塊進行位元翻轉(亦即,產生非零之位元翻轉向量),如果歷經了n個階段的檢查,都沒有發生位元翻轉,則會調降臨界值。另外,若在位元翻轉發生的頻率過高,翻轉臨界值調整單元250則會提高翻轉臨界值。
為了提升解碼或錯誤校正的可靠度,在本發明的一個實施例中,會給予每個位元至少四種不同的位元狀態。如同上述,每一個接收訊息區塊r 1~r­ n包含有一個或多個位元。每個位元在接收後,會被為判定為一第一位元值(如:“1”)或一第二位元值(如:“0”)。接者,每一個位元的四種不同的位元狀態包含:strong “1”、strong “0”、weak “1”與weak “0”。判定出的位元值“1”會使狀態判斷單元180/280讓該位元進入strong “1”的位元狀態,以及判定出的位元值“0”會使狀態判斷單元180/280讓該位元進入strong “0”的狀態,而狀態判斷單元180/280則將每個位元的初始位元狀態記錄在儲存單元170/270中,而且,儲存單元170/270也會持續記錄每個位元後續的位元狀態變化。
在此例中,翻轉計算單元140/240所產生的非零位元翻轉向量會讓位元值由一個狀態轉換成另一個狀態,但不一定會直接造成位元值的翻轉。當徵狀計算單元110/210計算出徵狀S,以及權重計算單元110/230根據徵狀S與校驗矩陣H(H 1~H n)計算出權重向量W 1~W n後,翻轉計算單元140/240將根據權重向量W 1~W n以及當前的翻轉臨界值TH k來產生位元翻轉向量v 1~v n,翻轉處理單元160/260根據非零之位元翻轉向量v 1~v n,更新儲存單元170/270中一個或多個位元的狀態。根據權重向量W 1~W n以及翻轉臨界值TH k,翻轉計算單元140/240會產生足以造成不同調整幅度的位元翻轉向量。其中,strong “1”可視為可能性較大的位元值“1”的狀態、strong “0” 可視為可能性較大的位元值“0”的狀態、weak “1” 可視為可能性較低的位元值“1”的狀態,以及weak “0” 可視為可能性較低的位元值“0”的狀態。如第7A圖所示,四種位元狀態有著遠近關係,當轉換至相鄰的位元狀態時,可視為進行幅度較小的調整,而轉換至不相鄰的位元狀態時,可視為進行幅度較大的調整。
再者,如第7B圖所示,若權重向量W k之一元素w k大於或等於當前翻轉臨界值TH k,且臨界值TH k不等於最大翻轉臨界值TH 1時,則翻轉計算單元140/240會產生可造成對應於該元素之一位元的狀態具有一較小改變幅度的位元翻轉向量。舉例來說,若該位元的位元狀態為strong “0”,則這個位元翻轉向量會讓這個位元調整為weak“0”,又或者是,當該位元的位元狀態為weak“0”時,則會被位元翻轉向量調整為weak“1”;另一方面,若該位元的位元狀態為strong “1”時,則上述的位元翻轉向量會讓這個位元調整為weak“1”,又或者是,該位元的位元狀態為weak“1”時,則被調整為weak“0”。
再者,如第7C圖所示,若權重向量W 的一個元素w k小於或等於一個翻轉臨界值TH low下限(非零)時,則翻轉計算單元140/240會讓對應位元的位元狀態由weak“0”調整回strong“0”,又或者是由weak“1”調整回strong“1”。
另外,如第7D圖所示,若權重向量W k之一元素w k等於當前翻轉臨界值TH k,且當前翻轉臨界值TH k等於最大臨界值TH 1時,則翻轉計算單元140/240會產生可造成對位元的狀態具有一較大改變幅度的位元翻轉向量。舉例來說,若該位元的位元狀態為strong “0”時,則這個位元翻轉向量會讓這個位元的狀態調整為weak“1”或者是strong “1”,又或者是該位元的位元狀態為weak“0”時,將其調整為strong“1”。另一方面,若該位元的位元狀態為strong “1”時,則位元狀態將被調整為weak“0”或者是strong “0”,又或者是該位元的位元狀態為weak“1”時,將其調整為strong“0”。
上述的範例可由第7B~7D圖可看出,在不同條件的w k與TH k之下,翻轉計算單元140/240所產生的位元翻轉向量對位元狀態造成的調整幅度也不同。當元素w k等於當前翻轉臨界值TH k時,翻轉計算單元140/240會造成位元狀態的較大調整幅度,因為此時代表位元值錯誤的可能性較大,需要較大的狀態改變,從而造成位元值的實質翻轉,另一方面,當元素w k大於或等於當前翻轉臨界值TH k,且當前翻轉臨界值TH k不等於最大翻轉臨界值TH 1時,則代表位元值錯誤的可能性不明確,需要更多的遞迴運算來確認,因此讓位元狀態的改變幅度較小。最後,當元素w k小於或等於一個翻轉臨界值TH low下限時,則代表錯誤可校正機會不大,因此傾向於不改變實質位元值,讓位元狀態退回較肯定的狀態,避免把正確的位元值改錯。透過以上的設計,可以讓錯誤校正有更佳的可靠度,不會因為少數不恰當的位元翻轉,造成錯誤的校正的結果。
以上文中所提及之「一實施例」代表針對該實施例所描述之特定特徵、結構或者是特性係包含於本發明之至少一實施方式中。因此,文中不同段落中所出現之「一實施例」並非代表相同的實施例。因此,儘管以上對於不同實施例描述時,分別提及了不同的結構特徵或是方法性的動作,但應當注意的是,這些不同特徵可透過適當的修改而同時實現於同一特定實施方式中。
本發明之實施例可使用硬體、軟體、韌體以及其相關結合來完成。藉由適當之一指令執行系統,可使用儲存於一記憶體中之軟體或韌體來實作本發明的實施例。就硬體而言,則是可應用下列任一技術或其相關結合來完成:具有可依據資料信號執行邏輯功能之邏輯閘的一個別運算邏輯、具有合適的組合邏輯閘之一特定應用積體電路(application specific integrated circuit, ASIC)、可程式閘陣列(programmable gate array, PGA)或一現場可程式閘陣列(field programmable gate array, FPGA)等。 以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
<TABLE border="1" borderColor="#000000" width="85%"><TBODY><tr><td> 1 </td><td> 傳送端 </td></tr><tr><td> 2 </td><td> 接收端 </td></tr><tr><td> 11 </td><td> 編碼器 </td></tr><tr><td> 21 </td><td> 解碼器 </td></tr><tr><td> 30 </td><td> 通道 </td></tr><tr><td> 100、200 </td><td> 解碼裝置 </td></tr><tr><td> 110、210 </td><td> 徵狀計算單元 </td></tr><tr><td> 112、212 </td><td> 運算單元 </td></tr><tr><td> 114、214、120、170、270 </td><td> 儲存單元 </td></tr><tr><td> 116、216 </td><td> 加法電路 </td></tr><tr><td> 130、230 </td><td> 權重計算單元 </td></tr><tr><td> 140、240 </td><td> 翻轉計算單元 </td></tr><tr><td> 150、250 </td><td> 翻轉臨界值調整單元 </td></tr><tr><td> 160、260 </td><td> 翻轉處理單元 </td></tr><tr><td> 180、280 </td><td> 狀態決定單元 </td></tr></TBODY></TABLE>
第1圖為一資料編解碼與傳輸架構的示意圖。 第2圖為接收訊息分段與檢驗矩陣分割的示意圖。 第3圖為本發明之一實施例的解碼裝置的架構圖。 第4圖為第3圖所示之解碼裝置的訊號時序圖。 第5圖為本發明之另一實施例的解碼裝置的架構圖。 第6圖為第5圖所示之解碼裝置的訊號時序圖。 第7A~7D圖為本發明之實施例的位元狀態與其變遷。

Claims (17)

  1. 一種用以解碼一接收訊息的解碼方法,其中該接收訊息包含有複數個接收訊息區塊,該解碼方法包含:根據一校驗矩陣得到一第一徵狀;根據該第一徵狀與該複數個接收訊息區塊中之一第一接收訊息區塊產生對應於該第一接收訊息區塊之一第一位元翻轉向量;根據該第一位元翻轉向量與該校驗矩陣更新該第一徵狀以產生一第二徵狀;以及根據該第二徵狀與該複數個接收訊息區塊中之一第二訊息區塊產生對應於該第二接收訊息區之一第二位元翻轉向量,其中該第二接收訊息區塊不會直接基於該第一徵狀進行位元翻轉。
  2. 如請求項1所述之解碼方法,其中得到該第一徵狀的步驟包含:根據該校驗矩陣與該複數個接收訊息區塊來產生該第一徵狀;或者根據該校驗舉陣與一第三位元翻轉向量更新一第三徵狀產生該第一徵狀。
  3. 如請求項1所述之解碼方法,其中該第一接收訊息區塊與該第二接收訊息區塊為相連區塊。
  4. 如請求項1所述之解碼方法,其中該第一、該第二位元翻轉向量分別包含有一個或多個元素,該個或該多個元素分別用以指出該第一、該第二接收訊息區塊中所對應的一個位元或多個位元是否需要翻轉,以及當該第一位元翻轉向量包含的一個或多個元素為零時,該第一徵狀與該第二徵狀相同。
  5. 如請求項1所述之解碼方法,其中該複數個接收訊息區塊中的每一者包含有一個或多個位元。
  6. 如請求項1所述之解碼方法,另包含:根據該第一接收訊息區塊與該第一位元翻轉向量翻轉該第一接收訊息區塊中之一個或多個位元;以及根據該第二接收訊息區塊與該第二位元翻轉向量翻轉該該第二接收訊息區塊中之一個或多個位元。
  7. 如請求項1所述之解碼方法,另包含:根據該第一徵狀與該校驗矩陣產生對應於該第一接收訊息區塊的該第一權重向量;以及根據該第一無效權向量與一翻轉臨界值來產生該第一位元翻轉向量。
  8. 如請求項7所述之解碼方法,另包含:根據於一特定時間間隔內,產生出非零之位元翻轉向量的次數來調整該翻轉臨界值。
  9. 一種用以解碼一接收訊息的解碼裝置,其中該接收訊息包含有複數個接收訊息區塊,該解碼裝置包含:一徵狀計算單元,用以根據一校驗矩陣得到一第一徵狀;以及一翻轉計算單元,用以至少根據該第一徵狀與該複數個接收訊息區塊中之一第一接收訊息區塊產生對應於該第一接收訊息區塊之一第一位元翻 轉向量;其中該徵狀計算單元根據該第一位元翻轉向量更新該第一徵狀以產生一第二徵狀,以及該翻轉計算單元根據該第二徵狀與該複數個接收訊息區塊中之一第二訊息區塊產生對應於該第二接收訊息區之一第二位元翻轉向量,其中該第二接收訊息區塊不會直接基於該第一徵狀進行位元翻轉。
  10. 如請求項9所述之解碼裝置,其中該徵狀計算單元:根據該校驗矩陣與該複數個接收訊息區塊來產生該第一徵狀;或者根據該校驗矩陣與一第三位元翻轉向量更新一第三徵狀產生該第一徵狀。
  11. 如請求項9所述之解碼裝置,其中該第一接收訊息區塊與該第二接收訊息區塊為相連區塊。
  12. 如請求項9所述之解碼裝置,其中該第一、該第二位元翻轉向量分別包含有一個或多個元素,該個或該多個元素分別用以指出該第一、該第二接收訊息區塊中所對應的一個位元或多個位元是否需要翻轉,以及當該第一位元翻轉向量包含的一個或多個元素為零時,該第一徵狀與該第二徵狀相同。
  13. 如請求項9所述之解碼裝置,其中該複數個接收訊息區塊中的每一者包含有一個或多個位元。
  14. 如請求項9所述之解碼裝置,另包含一翻轉處理單元,用以: 根據該第一接收訊息區塊與該第一位元翻轉向量翻轉該第一接收訊息區塊中之一個或多個位元;以及根據該第二接收訊息區塊與該第二位元翻轉向量翻轉該該第二接收訊息區塊中之一個或多個位元。
  15. 如請求項14所述之解碼裝置,另包含一儲存裝置,用以儲存該複數個訊息區塊,並且該翻轉處理單元根據至少該第一位元翻轉向量與該第二位元翻轉向量更新該儲存裝置所儲存之該第一接收訊息區塊以及該第二接收訊息區塊。
  16. 如請求項9所述之解碼裝置,另包含:一權重計算單元,用以根據該第一徵狀與該校驗矩陣產生對應於該第一接收訊息區塊的該第一權重向量,其中該翻轉計算單元至少根據該第一權重向量與一翻轉臨界值來產生該第一位元翻轉向量。
  17. 如請求項16所述之解碼裝置,另包含:一翻轉臨界值調整單元,用以根據於一特定時間間隔內,該翻轉計算單元產生出的非零位元翻轉向量的次數來調整該翻轉臨界值。
TW105144104A 2016-12-30 2016-12-30 解碼方法與相關解碼裝置 TWI631830B (zh)

Priority Applications (4)

Application Number Priority Date Filing Date Title
TW105144104A TWI631830B (zh) 2016-12-30 2016-12-30 解碼方法與相關解碼裝置
CN201710471210.2A CN108270518B (zh) 2016-12-30 2017-06-20 用以解码接收信息的解码方法与相关解码装置
CN202110006001.7A CN112865920A (zh) 2016-12-30 2017-06-20 用以解码接收信息的解码方法与相关解码装置
US15/654,721 US20180191377A1 (en) 2016-12-30 2017-07-20 Decoding method and related apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
TW105144104A TWI631830B (zh) 2016-12-30 2016-12-30 解碼方法與相關解碼裝置

Publications (2)

Publication Number Publication Date
TW201824759A TW201824759A (zh) 2018-07-01
TWI631830B true TWI631830B (zh) 2018-08-01

Family

ID=62712076

Family Applications (1)

Application Number Title Priority Date Filing Date
TW105144104A TWI631830B (zh) 2016-12-30 2016-12-30 解碼方法與相關解碼裝置

Country Status (3)

Country Link
US (1) US20180191377A1 (zh)
CN (2) CN112865920A (zh)
TW (1) TWI631830B (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
TWI646783B (zh) * 2018-04-10 2019-01-01 大陸商深圳大心電子科技有限公司 解碼方法及儲存控制器
US11016843B2 (en) * 2018-12-06 2021-05-25 Micron Technology, Inc. Direct-input redundancy scheme with adaptive syndrome decoder
US11018695B1 (en) * 2019-11-11 2021-05-25 SK Hynix Inc. Fast-converging bit-flipping decoder for low-density parity-check codes
US11057059B1 (en) * 2020-01-15 2021-07-06 Western Digital Technologies, Inc. Content aware bit flipping decoder

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335160A1 (en) * 2014-04-03 2016-11-17 Empire Technology Development Llc Memory device with speculated bit flip threshold

Family Cites Families (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7039854B1 (en) * 2002-02-21 2006-05-02 Ciena Corporation Method and apparatus for performing syndrome computation in a decoder of a forward error correction (FEC) system
CN100517981C (zh) * 2007-01-05 2009-07-22 东南大学 低密度奇偶校验码的并行加权比特翻转解码方法
CN101493804B (zh) * 2008-01-24 2011-07-20 国际商业机器公司 数据总线系统及其编解码器和编解码方法
JP5007676B2 (ja) * 2008-01-31 2012-08-22 富士通株式会社 符号化装置、復号化装置、符号化・復号化装置及び記録再生装置
MX2012007899A (es) * 2010-05-31 2012-08-01 Ibm Decodificacion del codigo de verificacion de la paridad de baja densidad.
CN101976584B (zh) * 2010-10-27 2013-01-30 记忆科技(深圳)有限公司 准循环低密度奇偶校验码译码器及译码方法
WO2012097046A1 (en) * 2011-01-14 2012-07-19 Marvell World Trade Ltd. Ldpc multi-decoder architectures
KR101854954B1 (ko) * 2011-07-29 2018-05-04 샌디스크 테크놀로지스 엘엘씨 치환 소행렬의 합을 사용하는 체크섬
CN104995844B (zh) * 2013-02-14 2018-11-30 马维尔国际贸易有限公司 具有对于ldpc码可靠性输入的比特翻转解码
CN105023613B (zh) * 2014-04-22 2019-06-14 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
TWI543178B (zh) * 2014-06-10 2016-07-21 群聯電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
CN105304142B (zh) * 2014-06-20 2019-01-11 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
TWI541820B (zh) * 2014-07-10 2016-07-11 群聯電子股份有限公司 解碼方法、記憶體控制電路單元及記憶體儲存裝置
CN105304143B (zh) * 2014-07-21 2018-10-02 群联电子股份有限公司 解码方法、存储器控制电路单元及存储器存储装置
US9692450B2 (en) * 2015-05-11 2017-06-27 Maxio Technology (Hangzhou) Ltd. Systems and methods for early exit of layered LDPC decoder
KR102281751B1 (ko) * 2015-10-01 2021-07-27 에스케이하이닉스 주식회사 플래시 메모리 시스템 동작 방법
KR20170101368A (ko) * 2016-02-26 2017-09-06 에스케이하이닉스 주식회사 에러 정정 회로 및 에러 정정 방법

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160335160A1 (en) * 2014-04-03 2016-11-17 Empire Technology Development Llc Memory device with speculated bit flip threshold

Also Published As

Publication number Publication date
TW201824759A (zh) 2018-07-01
CN112865920A (zh) 2021-05-28
CN108270518B (zh) 2021-01-26
US20180191377A1 (en) 2018-07-05
CN108270518A (zh) 2018-07-10

Similar Documents

Publication Publication Date Title
TWI631830B (zh) 解碼方法與相關解碼裝置
TWI758748B (zh) 使用於低密度奇偶檢查碼解碼器的方法及解碼器
TWI626830B (zh) 低密度奇偶校驗解碼器以及對其進行省電的方法
CN107528597B (zh) 一种基于crc校验码的ldpc码后处理译码方法
TWI484762B (zh) 用於中斷截留集之裝置及方法
US8689084B1 (en) Method and apparatus for breaking trapping sets in decoding of information
KR101718543B1 (ko) 개선된 비트 반전 알고리즘 기반의 저밀도 패리티 검사 부호를 위한 복호 방법, 장치 및 이를 위한 기록 매체
US8689074B1 (en) Method and apparatus for detecting trapping sets in decoding of information
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US20170047945A1 (en) Data sending method and apparatus
US11283468B1 (en) Log-likelihood ratio mapping tables in flash storage systems
US9793924B1 (en) Method and system for estimating an expectation of forward error correction decoder convergence
Krainyk et al. Low-complexity high-speed soft-hard decoding for turbo-product codes
US9231620B2 (en) Iterative decoding device and related decoding method for irregular low-density parity-check code capable of improving error correction performance
TWI632780B (zh) 解碼方法與相關解碼裝置
TWI685211B (zh) 用於對低密度奇偶校驗資料進行解碼以對碼字進行解碼的方法以及解碼器
JP6567238B1 (ja) 誤り訂正復号装置および誤り訂正復号方法
TWI685218B (zh) 解碼方法與相關解碼裝置
TWI672911B (zh) 解碼方法及相關電路
JP2009290657A (ja) 誤り訂正装置
KR101606040B1 (ko) 실패검사노드를 이용한 저밀도패리티 검사부호 복호장치 및 그 방법
Kumar et al. A two stage selective averaging LDPC decoding
TWI769001B (zh) 資料儲存系統選擇解碼策略之方法
Tithi Error-floors of the 802.3 an ldpc code for noise assisted decoding
TW202427485A (zh) 用於校驗位元翻轉解碼器中的錯誤的設備和方法