TWI501565B - 控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置 - Google Patents

控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置 Download PDF

Info

Publication number
TWI501565B
TWI501565B TW101119770A TW101119770A TWI501565B TW I501565 B TWI501565 B TW I501565B TW 101119770 A TW101119770 A TW 101119770A TW 101119770 A TW101119770 A TW 101119770A TW I501565 B TWI501565 B TW I501565B
Authority
TW
Taiwan
Prior art keywords
value
decoding operation
iterative process
adjusting
symptom
Prior art date
Application number
TW101119770A
Other languages
English (en)
Other versions
TW201251342A (en
Inventor
Zhen U Liu
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
Publication of TW201251342A publication Critical patent/TW201251342A/zh
Application granted granted Critical
Publication of TWI501565B publication Critical patent/TWI501565B/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/37Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35
    • H03M13/3746Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding
    • H03M13/3753Decoding methods or techniques, not specific to the particular type of coding provided for in groups H03M13/03 - H03M13/35 with iterative decoding using iteration stopping criteria
    • 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/1142Decoding using trapping sets
    • 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/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • 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/65Purpose and implementation aspects
    • H03M13/6577Representation or format of variables, register sizes or word-lengths and quantization
    • H03M13/658Scaling by multiplication or division
    • 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/09Error detection only, e.g. using cyclic redundancy check [CRC] codes or single parity bit
    • 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
    • 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/17Burst error correction, e.g. error trapping, Fire codes
    • H03M13/175Error trapping or Fire 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/29Coding, 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/2942Coding, 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 wherein a block of parity bits is computed only from combined information bits or only from parity bits, e.g. a second block of parity bits is computed from a first block of parity bits obtained by systematic encoding of a block of information bits, or a block of parity bits is obtained by an XOR combination of sub-blocks of information bits

Landscapes

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

Description

控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置
本發明係有關於一種基於訊息傳遞演算法的解碼機制,尤指一種利用依據複數次已執行疊代處理所得之複數個徵狀值的統計資料,來選擇性地調整下一次要執行之疊代處理的解碼操作以控制基於訊息傳遞演算法之解碼操作的方法以及其相關裝置。
電腦與其他電子裝置之間的資訊傳播可利用多種不同的規範(standard)與技術來完成,而通道編碼(channel coding)與錯誤更正(error correction)技術可用於減少接收信號中因失真(distortion)或其他干擾引起的錯誤,其中關於此種編碼與錯誤更正技術,可利用傳輸通道(transmission channel)之兩端的編碼器(encoder)與解碼器(decoder)來加以實作。
舉例來說,任何用於低密度奇偶校驗碼(low-density parity check code,LDPC code)的解碼演算法(decoding algorithm)可以應用於接收端,以將所接收之字碼(codeword)(亦即,所接收之通道值)解碼。一般來說,多半會利用疊代式解碼器(iterative decoder)來使解碼值收斂至正確值。在一實作例子中,係利用一軟決策(soft-decision)之訊息傳遞演算法(message-passing algorithm,MPA)來於接收端進行低密度奇偶校驗解碼(LDPC decoding),而 其中所接收之複數個位元(例如,複數個通道值)皆可視為分別代表數值為「0」或「1」之機率的複數個變數,以及於解碼演算法中,該複數個變數係表示為複數個對數概似比(log likelihood ratio,LLR)。訊息傳遞演算法會將訊息(例如,對數概似比)由變數節點(variable node)傳遞至檢查節點(check node),計算目前疊代處理(current iteration)的徵狀值(syndrome),再將訊息(例如,對數概似比)由檢查節點傳遞至變數節點,並以上述相同方式來進行疊代直到達到收斂為止(例如,徵狀值的檢查位元(check bit)皆為0)。
然而,低密度奇偶校驗碼本身的問題之一為陷阱集(trapping set)的存在,其中陷阱集乃是無論經由多少次的疊代處理,仍無法被解碼成正確值之複數個位元的集合。對於具有高信號雜訊比(signal-to-noise,SNR)之可加性白色高斯雜訊(additive white Gaussian noise,AWGN)的低密度奇偶校驗解碼器(LDPC decoder)來說,一種錯誤的型式即為一小規模的陷阱集。一般來說,所接收之複數個位元中的錯誤位元數目通常不多,然而,如果複數個錯誤是位於某些特定變數節點時,該複數個錯誤會回授(feed back)錯誤的可信度數值(reliability value),因而造成陷阱集。簡而言之,當低密度奇偶校驗解碼器針對所接收之字碼進行解碼時,可能會遭遇一個或多個陷阱集,而這些陷阱集會致使該解碼器無法將所接收之字碼正確地解碼。
因此,需要一種能夠解決陷阱集所產生之解碼錯誤的基於訊息 傳遞演算法之創新的解碼器設計。
依據本發明之實施例,提出一種利用依據由複數次已執行疊代處理所得之複數個徵狀值的統計資料,以選擇性地調整下一次要執行之疊代處理的解碼操作來控制基於訊息傳遞演算法之解碼操作的方法以及其相關裝置,以解決上述問題。
依據本發明的第一層面,其揭示一種用來控制基於訊息傳遞演算法之解碼操作的方法。該方法包含:收集由複數次已執行疊代處理所得之複數個徵狀值的一統計資料,以及依據該統計資料來選擇性地調整下一次要執行之疊代處理的一解碼操作。
依據本發明的第二層面,其揭示一種用於控制基於訊息傳遞演算法之解碼器的控制裝置。該控制裝置包含一調整電路以及一偵測電路。該偵測電路耦接於該調整電路,用以收集由複數次已執行疊代處理所得之複數個徵狀值的一統計資料,以及依據該統計資料來選擇性地調整下一次要執行之疊代處理的一解碼操作。
在說明書及後續的申請專利範圍當中使用了某些詞彙來指稱特定的元件。所屬領域中具有通常知識者應可理解,製造商可能會用不同的名詞來稱呼同樣的元件。本說明書及後續的申請專利範圍並 不以名稱的差異來作為區別元件的方式,而是以元件在功能上的差異來作為區別的基準。在通篇說明書及後續的請求項當中所提及的「包含」係為一開放式的用語,故應解釋成「包含但不限定於」。此外,「耦接」一詞在此係包含任何直接及間接的電氣連接手段。因此,若文中描述一第一裝置電性連接於一第二裝置,則代表該第一裝置可直接連接於該第二裝置,或透過其他裝置或連接手段間接地連接至該第二裝置。
為了中斷由位於複數個特定變數節點的複數個錯誤位元所產生的陷阱集迴圈(trapping set loop),本發明提出一種搭配基於訊息傳遞演算法之解碼器(MPA based decoder)的控制裝置。請參閱第1圖,第1圖係為本發明解碼裝置之一實施例的功能方塊圖。解碼裝置100包含基於訊息傳遞演算法之解碼器(例如,低密度奇偶校驗解碼器)102以及控制裝置104。基於訊息傳遞演算法之解碼器102包含緩衝器(buffer)112、置換與反置換功能方塊(permutation & inverse-permutation block)114、變數節點處理功能方塊(variable node processing block)115、檢查節點訊息計算功能方塊(check node message calculation block)116、回授訊息決定功能方塊(feedback message determination block)118,以及提早終止功能方塊(early-termination block)120。對於控制裝置104來說,其包含有調整電路(adjusting circuit)122以及偵測電路(detecting circuit)124,其中調整電路122包含(但本發明並不侷限於此)通道值正規化單元(channel value normalization unit)126以及有序集正規化單 元(order set normalization unit)128。由於本發明著重於控制裝置104的設計,故基於訊息傳遞演算法之解碼器102可利用任一習知解碼器架構來加以實作,亦即第1圖所示之解碼器架構係僅供範例說明之需。關於基於訊息傳遞演算法之解碼器102中的複數個功能方塊之操作,請參閱下方說明。
緩衝器112係用來接收及緩衝欲解碼之複數個通道值(亦即,已接收之字碼)CHV_IN,其中該複數個通道值係設定為複數個變數節點之複數個初始值(initial value)。置換與反置換功能方塊114控制複數個變數節點與複數個檢查節點之間的訊息傳遞,也就是說,置換與反置換功能方塊114依據所要的低密度奇偶校驗矩陣(desired LDPC matrix)來建立連結於該複數個變數節點與該複數個檢查節點之間的複數個所要的路徑(desired path)。變數節點處理功能方塊115計算出事後機率值(A-Posteriori Probability value,APP value)及傳遞給檢查節點的變數節點值,而檢查節點訊息計算功能方塊116計算出每一個檢查節點的複數個檢查節點訊息(亦即,複數個有序集)。依據實際採用的演算法,回授訊息決定功能方塊118會決定出要由該複數個檢查節點傳遞至該複數個變數節點的複數個回授訊息。同樣地,置換與反置換功能方塊114亦控制著所選取之複數個回授訊息的傳遞。在下一次疊代處理中,利用依據由該複數個檢查節點所提供之最新的複數個回授訊息來調整位於緩衝器112中所緩衝的已接收之複數個通道值,進而更新該複數個變數節點的複數個軟決策位元(soft bit)(亦即,複數個事後機率值)。在每一 次疊代處理中,提早終止功能方塊120係依據複數個檢查節點值來計算出一徵狀值,並且決定基於訊息傳遞演算法之解碼操作是否已收斂至一正確字碼。
如上所述,陷阱集係為無論經由多少次的疊代處理,仍無法被解碼成正確值之複數個位元的集合,因而陷阱集的問題便決定了低密度奇偶校驗錯誤基數(LDPC error floor)。為了解決上述之陷阱集的問題,調整電路122因而具有安插於緩衝器112與變數節點處理功能方塊115之間的通道值正規化單元126,以及另具有安插於回授訊息決定功能方塊118與置換與反置換功能方塊114之間的有序集正規化單元128。因此,一個疊代處理的解碼操作係允許經由調整電路122來調整,因而可中斷陷阱集迴圈而使得基於訊息傳遞演算法之解碼器102具有收斂至所要之正確字碼的機會。除了調整電路122之外,控制裝置104亦具有偵測電路124,其用來收集由複數次已執行疊代處理(executed iteration)所得之複數個徵狀值SD的一統計資料,並依據該統計資料來選擇性地控制調整電路122調整下一次要執行之疊代處理(next iteration)的解碼操作。於此實施例中,偵測電路124利用由該複數次已執行疊代處理所得之複數個徵狀值SD的該統計資料來偵測是否出現陷阱集。舉例來說,偵測電路124利用計數(count)目前疊代處理之徵狀值相同於前一疊代處理之徵狀值的連續發生次數,來更新一計數值CN,以及偵測電路124參照計數值CN以選擇性地控制調整電路122調整下一次要執行之疊代處理的解碼操作。因此,當目前疊代處理之徵狀值與前一疊代 處理之徵狀值相異時,偵測電路124便會將計數值CN重置(reset)為一初始值(例如,0);以及當目前疊代處理之徵狀值與前一疊代處理之徵狀值相同時,偵測電路124便會增加一調整值(例如,1)至計數值CN。為了辨識出陷阱集的發生,偵測電路124檢查計數值CN是否到達一目標值(target value)(例如,1、2或3),而當計數值CN到達該目標值時,偵測電路124便控制調整電路122調整下一次要執行之疊代處理的解碼操作,以及將計數值CN重置為該初始值。
如上所述,調整電路122包含通道值正規化單元126以及有序集正規化單元128,因此,當偵測電路124藉由參照該統計資料(例如,具有相同徵狀值的連續複數次疊代處理的計數值CN)而判別出該複數個變數節點的複數個位元包含陷阱集時,則偵測電路124產生一致能信號(enable signal)S_EN以控制有序集正規化單元128,以及產生一正規化索引信號(normalization index signal)S_IDX以控制通道值正規化單元126。當有序集正規化單元128被致能信號S_EN所通知時,有序集正規化單元128會被啟用(enabled)以調整該複數個檢查節點的所有有序集,接著,調整後的有序集會經由置換與反置換功能方塊114所決定之訊息路徑而被傳遞至變數節點處理功能方塊115,以便計算事後機率值。同樣地,當通道值正規化單元126被正規化索引信號S_IDX所通知時,通道值正規化單元126會被啟用以調整由緩衝器112所讀取的所有通道值(亦即,所接收之位元),接著,調整後的通道值會被傳遞至變數節點處理功 能方塊115,以便計算事後機率值。請注意,原本儲存於緩衝器112之中的複數個通道值仍是完整而未有任何變更的。換言之,調整電路122可利用調整所有通道值及所有有序集,來調整下一次要執行之疊代處理的解碼操作。舉例來說,有序集正規化單元128可設定為利用針對每一個有序集執行位元移位(bit-shifting)操作來減少所有的有序集(例如,減少所有的檢查節點訊息的值),以及通道值正規化單元126可設定為利用針對每一個通道值執行位元移位操作來減少所有的通道值。請注意,有序集正規化單元128亦可設定為減少至少一部份的檢查節點訊息之值(例如,減少所有2048個檢查節點訊息之中的2000個檢查節點訊息之值),以及通道值正規化單元126亦可設定為減少至少一部份的通道值(例如,減少所有1024個通道值之中的1000個通道值)。
請參閱第2圖,第2圖係為本發明控制基於訊息傳遞演算法之解碼操作的方法的一實施例的流程圖。倘若所得到的結果實質上是相同的,則不一定要按照第2圖所示之步驟來執行。該方法可應用於第1圖所示之解碼裝置100,並可簡單歸納如下:步驟200:開始;步驟202:執行應用於低密度奇偶校驗碼之基於訊息傳遞演算法之解碼操作的一次疊代處理;步驟204:計算一目前疊代處理之一徵狀值;步驟206:檢查該目前疊代處理之該徵狀值是否與一前一疊代處 理之一徵狀值相同?若相同,執行步驟210;反之,執行步驟208;步驟208:儲存該目前疊代處理之該徵狀值;步驟209:以一初始值(例如,0)來初始化(initialize)/重置(reset)一計數值。執行步驟202;步驟210:將一調整值(例如,1)增加至該計數值;步驟212:檢查該計數值是否到達一目標值(例如,3)。若是,執行步驟214;反之,執行步驟202;步驟214:調整所有通道值及所有有序集(例如,針對每一個通道值及每一個有序集執行位元移位操作,以減少所有通道值及所有有序集);步驟216:將該計數值重置為該初始值。執行步驟202。
在步驟208中,目前疊代處理之徵狀值會被儲存,以用來與應用於低密度奇偶校驗碼之基於訊息傳遞演算法之解碼操作的下一疊代處理之徵狀值作比較。換言之,當下一疊代處理在步驟202中開始執行時,於先前已執行之步驟208中所得到的目前疊代處理之徵狀值會成為接下來步驟206所需要的前一疊代處理之徵狀值。請注意,以上所述之初始值、調整值及/或目標值可視實際設計之需求/考量來作調整。
為了使以上所述更為清楚,請參閱第3圖,第3圖為應用於低密度奇偶校驗碼之基於訊息傳遞演算法之解碼操作的每一次疊代處 理期間的計數值、所計算出之徵狀值以及所儲存之徵狀值的設定的示意圖。如圖所示,在第8次疊代處理時,步驟212偵測出計數值到達初始值,因此,執行步驟216以將計數值重置為初始值以供下一疊代處理(亦即,第9次疊代處理)之用。再者,由於步驟206發現第1次、第2次以及第5次疊代處理中所計算之徵狀值(亦即,目前疊代處理之徵狀值)相異於所儲存之徵狀值(亦即,前一疊代處理之徵狀值),故所儲存之徵狀值係被所計算出之徵狀值所更新/取代。
由於熟習技藝者經由上述說明可輕易地了解第2圖所示之每一個步驟的操作,在此便不再贅述以求簡潔。
請參閱第4圖,第4圖為第1圖所示之偵測電路124的一實作方式的示意圖。偵測電路124包含(但本發明並不侷限於此)第一徵狀值暫存器(syndrome register)402、第二徵狀值暫存器404、比較器(comparator)406、複數個多工器(multiplexer)408_1、408_2及408_3、偵測器(detector)410、複數個加法器(adder)412_1及412_2、正規化索引暫存器(normalization index register)414,以及致能暫存器(enable register)416。第一徵狀值暫存器402係用以儲存一目前疊代處理之一徵狀值(亦即,上述的所計算出之徵狀值),以及第二徵狀值暫存器404係用以儲存一前一疊代處理之一徵狀值(亦即,上述的所儲存之徵狀值)。比較器406會將儲存於第一徵狀值暫存器402及第二徵狀值暫存器404之徵狀值作比較,以判 別此接連兩次的疊代處理是否有相同的徵狀值。當比較結果顯示儲存於第一徵狀值暫存器402之徵狀值係等同於儲存於第二徵狀值暫存器404之徵狀值時,多工器408_1會選擇儲存於第二徵狀值暫存器404之徵狀值來做為其輸出,以使得儲存於第一徵狀值暫存器402之徵狀值維持不變;反之,多工器408_1會選擇儲存於第一徵狀值暫存器402之徵狀值來做為其輸出,以利用儲存於第一徵狀值暫存器402之徵狀值來更新儲存於第二徵狀值暫存器404之徵狀值。
此外,當比較結果顯示儲存於第一徵狀值暫存器402之徵狀值係相同於儲存於第二徵狀值暫存器404之徵狀值時,多工器408_2會選擇一初始值(例如,0)來做為其輸出,以使計數值CN等於該初始值;反之,多工器408_2會選擇加法器412_1之輸出來做為其輸出,其中加法器412_1係用來將一調整值(例如,1)增加至計數值CN。
當偵測器410偵測到計數值CN尚未到達一目標值(例如,3)時,多工器408_3會選擇儲存於正規化索引暫存器414的一正規化索引來做為其輸出,其中該正規化索引之初始值可設為0;反之,多工器408_3會選擇加法器412_2之輸出來做為其輸出,以更新儲存於正規化索引暫存器414的該正規化索引,其中加法器412_2係用來將一調整值(例如,1)增加至從正規化索引暫存器414所讀出之該正規化索引。請注意,正規化索引暫存器414之輸出亦可做為上述之傳送至通道值正規化單元126的正規化索引信號S_IDX,因 此,於此實施例中,儲存於正規化索引暫存器414之該正規化索引決定了在通道值正規化單元126所執行之位元移位操作中所要移位的位元數,也就是說,該正規化索引會決定通道值的調整程度。請注意,通道值正規化單元126亦可藉由其他除了位元移位操作的手段來達成通道值的調整。此外,當該解碼操作完成時(無論解碼成功或解碼失敗),儲存於正規化索引暫存器414之該正規化索引可被重置。
另外,當偵測器410偵測到計數值CN尚未到達目標值(例如,3)時,多工器408_4會選擇第一邏輯值「0」來做為其輸出;反之,多工器408_4會選擇第二邏輯值「1」來做為其輸出。請注意,致能暫存器416之輸出係做為上述之傳送至有序集正規化單元128的致能信號S_EN,更具體地說,當多工器408_4選擇第一邏輯值「0」來做為其輸出時,致能信號S_EN並未被啟用(deasserted),然而,當多工器408_4選擇第二邏輯值「1」來做為其輸出時,致能信號S_EN則會被啟用(asserted),因而啟動有序集正規化單元128以將一比例因子(scaling factor)(例如,0.5)應用至所有的有序集。請注意,該比例因子可在任何時候依照所需來加以設定。
此外,值得注意的是,在致能信號S_EN與正規化索引信號S_IDX分別觸發有序集正規化單元128與通道值正規化單元126之後,計數值CN會被重置為初始值,因此,由於具有初始值的計數值CN會小於目標值的關係,偵測器410會控制多工器408_3及 408_4,以使多工器408_4會選擇第二邏輯值「0」來做為其輸出以及多工器408_3會選擇儲存於正規化索引暫存器414之正規化索引來做為其輸出。然而,當前一次針對複數個通道值與複數個有序集的調整無法讓陷阱集迴圈能成功地中斷時,儲存於正規化索引暫存器414之該正規化索引會再度被加1以進一步減少由緩衝器112所讀出之複數個通道值,以及致能信號S_EN會再度被啟用以進一步減少由檢查節點訊息計算功能方塊116所產生之複數個有序集。
請注意,調整複數個通道值與複數個有序集的效果係等同於在複數個變數節點調整複數個事後機率值的效果,此因複數個事後機率值(及/或傳遞至複數個檢查節點的複數個變數節點值)係由複數個通道值與相對應之複數個有序集計算而得(例如,將複數個通道值與相對應之複數個有序集相加)。由於熟習技藝者可輕易地了解,無論是否有調整複數個通道值及/或複數個有序集,調整複數個事後機率值(或傳遞至複數個檢查節點的複數個變數節點值)同樣有機會得以解決陷阱集的問題,換言之,本發明所提出之調整電路122可具有調整複數個事後機率值(或傳遞至複數個檢查節點的複數個變數節點值)的能力,或是可具有調整複數個事後機率值(或傳遞至複數個檢查節點的複數個變數節點值)來代替調整複數個通道值及/或複數個有序集的能力,這些設計上的變化均落入本發明的範疇。利用所提出之包含通道值正規化單元126及有序集正規化單元128於其中的調整電路122,下一疊代處理之解碼操作可被正確地調整。由於所有存在於複數個變數節點中的錯誤可經由調整複數個通 道值與複數個有序集而於接下來一次或多次的疊代處理中被辨識及修正,低密度奇偶校驗錯誤基數便得以有效地降低。
於上述實施例中,通道值與有序集係皆因應由偵測電路124所執行之陷阱集偵測而一起被調整,然而,以上僅供範例說明之需,並非用來做為本發明的限制。在一設計變化中,可以省略第1圖所示之通道值正規化單元126,因而留下有序集正規化單元128於修改後的調整電路中;在另一設計變化中,可以省略第1圖所示之有序集正規化單元128,因而留下通道值正規化單元126於修改後的調整電路中;這些設計上的變化同樣可達成中斷陷阱集迴圈與減少低密度奇偶校驗錯誤基數的目的。簡而言之,無論調整電路如何被設計,只要是當偵測操作辨識出陷阱集的存在即調整下一次要執行之疊代處理的解碼操作,皆遵循本發明之發明精神。
再者,控制裝置104可搭配任一種基於訊息傳遞演算法之解碼器,例如基於補償式最小和演算法(offset min-sum algorithm,OMSA)的解碼器或是基於正規化最小和演算法(normalized min-sum algorithm,NMSA)的解碼器。另外,本發明所提出之控制裝置104並不侷限於解決由陷阱集所引起的問題,換言之,只要是收集由複數次已執行疊代處理所得之複數個徵狀值的統計資料,並依據該統計資料來選擇性地調整下一次要執行之疊代處理的解碼操作,皆符合本發明之發明精神。
以上所述僅為本發明之較佳實施例,凡依本發明申請專利範圍所做之均等變化與修飾,皆應屬本發明之涵蓋範圍。
100‧‧‧解碼裝置
102‧‧‧基於訊息傳遞演算法之解碼器
104‧‧‧控制裝置
112‧‧‧緩衝器
114‧‧‧置換與反置換功能方塊
115‧‧‧變數節點處理功能方塊
116‧‧‧檢查節點訊息計算功能方塊
118‧‧‧回授訊息決定功能方塊
120‧‧‧提早終止功能方塊
122‧‧‧調整電路
124‧‧‧偵測電路
126‧‧‧通道值正規化單元
128‧‧‧有序集正規化單元
402、404‧‧‧徵狀值暫存器
406‧‧‧比較器
408_1、408_2、408_3、408_4‧‧‧多工器
410‧‧‧偵測器
412_1、412_2‧‧‧加法器
414‧‧‧正規化索引暫存器
416‧‧‧致能暫存器
第1圖為本發明解碼裝置之一實施例的功能方塊圖。
第2圖為本發明控制基於訊息傳遞演算法之解碼操作的方法的一實施例的流程圖。
第3圖為應用於低密度奇偶校驗碼之基於訊息傳遞演算法之解碼操作的每一次疊代處理期間的計數值、所計算出之徵狀值以及所儲存之徵狀值的設定的示意圖。
第4圖為第1圖所示之偵測電路的一實作方式的示意圖。
100‧‧‧解碼裝置
102‧‧‧基於訊息傳遞演算法之解碼器
104‧‧‧控制裝置
112‧‧‧緩衝器
114‧‧‧置換與反置換功能方塊
115‧‧‧變數節點處理功能方塊
116‧‧‧檢查節點訊息計算功能方塊
118‧‧‧回授訊息決定功能方塊
120‧‧‧提早終止功能方塊
122‧‧‧調整電路
124‧‧‧偵測電路
126‧‧‧通道值正規化單元
128‧‧‧有序集正規化單元

Claims (18)

  1. 一種用來控制基於訊息傳遞演算法之解碼操作的方法,包含:計數一目前疊代處理之一徵狀值相同於一前一疊代處理之一徵狀值的連續發生次數來更新一計數值,以收集由複數次已執行疊代處理所得之複數個徵狀值的一統計資料;以及依據該統計資料來選擇性地調整下一次要執行之疊代處理的一解碼操作。
  2. 如申請專利範圍第1項所述之方法,其中選擇性地調整該下一次要執行之疊代處理的該解碼操作的步驟包含:依據該統計資料來偵測是否出現陷阱集;以及當偵測到出現陷阱集時,調整該下一次要執行之疊代處理的該解碼操作。
  3. 如申請專利範圍第1項所述之方法,其中選擇性地調整該下一次要執行之疊代處理的該解碼操作的步驟包含:參照該計數值以選擇性地調整該下一次要執行之疊代處理的該解碼操作。
  4. 如申請專利範圍第3項所述之方法,其中更新該計數值的步驟包含:當該目前疊代處理之該徵狀值與該前一疊代處理之該徵狀值相異時,將該計數值重置為一初始值;以及 當該目前疊代處理之該徵狀值與該前一疊代處理之該徵狀值相同時,將一調整值增加至該計數值。
  5. 如申請專利範圍第3項所述之方法,其中參照該計數值以選擇性地調整該下一次要執行之疊代處理的該解碼操作的步驟包含:檢查該計數值是否到達一目標值;以及當該計數值到達該目標值時,調整該下一次要執行之疊代處理的該解碼操作,並將該計數值重置為一初始值。
  6. 如申請專利範圍第1項所述之方法,其中調整該下一次要執行之疊代處理的該解碼操作的步驟包含:調整所有通道值中至少一部份的通道值以及所有有序集中至少一部份的有序集。
  7. 如申請專利範圍第1項所述之方法,其中調整該下一次要執行之疊代處理的該解碼操作的步驟包含:調整所有通道值中至少一部份的通道值。
  8. 如申請專利範圍第1項所述之方法,其中調整該下一次要執行之疊代處理的該解碼操作的步驟包含:調整所有有序集中至少一部份的有序集。
  9. 如申請專利範圍第1項所述之方法,其中調整該下一次要執行之 疊代處理的該解碼操作的步驟包含:調整所有事後機率值中至少一部份的事後機率值或被傳遞出去之所有變數節點值中至少一部份的變數節點值。
  10. 一種用於控制基於訊息傳遞演算法之解碼器的控制裝置,包含:一調整電路;以及一偵測電路,耦接於該調整電路,用以計數一目前疊代處理之一徵狀值相同於一前一疊代處理之一徵狀值的連續發生次數來更新一計數值,以收集由複數次已執行疊代處理所得之複數個徵狀值的一統計資料,以及依據該統計資料來選擇性地控制該調整電路調整下一次要執行之疊代處理的一解碼操作。
  11. 如申請專利範圍第10項所述之控制裝置,其中該偵測電路依據該統計資料來偵測是否出現陷阱集;以及當偵測到陷阱集時,該偵測電路控制該調整電路調整該下一次要執行之疊代處理的該解碼操作。
  12. 如申請專利範圍第10項所述之控制裝置,其中該偵測電路參照該計數值以選擇性地控制該調整電路調整該下一次要執行之疊代處理的該解碼操作。
  13. 如申請專利範圍第12項所述之控制裝置,其中當該目前疊代處理之該徵狀值與該前一疊代處理之該徵狀值相異時,該偵測電路 將該計數值重置為一初始值;以及當該目前疊代處理之該徵狀值與該前一疊代處理之該徵狀值相同時,該偵測電路將一調整值增加至該計數值。
  14. 如申請專利範圍第12項所述之控制裝置,其中該偵測電路檢查該計數值是否到達一目標值;以及當該計數值到達該目標值時,該偵測電路控制該調整電路來調整該下一次要執行之疊代處理的該解碼操作並將該計數值重置為一初始值。
  15. 如申請專利範圍第10項所述之控制裝置,其中該調整電路係用以透過調整所有通道值中至少一部份的通道值以及所有有序集中至少一部份的有序集,來調整該下一次要執行之疊代處理的該解碼操作。
  16. 如申請專利範圍第10項所述之控制裝置,其中該調整電路係透過調整所有通道值中至少一部份的通道值,來調整該下一次要執行之疊代處理的該解碼操作。
  17. 如申請專利範圍第10項所述之控制裝置,其中該調整電路係透過調整所有有序集中至少一部份的有序集,來調整該下一次要執行之疊代處理的該解碼操作。
  18. 如申請專利範圍第10項所述之控制裝置,其中該調整電路係透 過調整所有事後機率值中至少一部份的事後機率值或調整被傳遞出去之所有變數節點值中至少一部份的變數節點值,來調整該下一次要執行之疊代處理的該解碼操作。
TW101119770A 2011-06-13 2012-06-01 控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置 TWI501565B (zh)

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
US13/159,398 US8806309B2 (en) 2011-06-13 2011-06-13 Method for controlling message-passing algorithm based decoding operation by referring to statistics data of syndromes of executed iterations and related control apparatus thereof

Publications (2)

Publication Number Publication Date
TW201251342A TW201251342A (en) 2012-12-16
TWI501565B true TWI501565B (zh) 2015-09-21

Family

ID=47294195

Family Applications (1)

Application Number Title Priority Date Filing Date
TW101119770A TWI501565B (zh) 2011-06-13 2012-06-01 控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置

Country Status (3)

Country Link
US (1) US8806309B2 (zh)
CN (1) CN102832949B (zh)
TW (1) TWI501565B (zh)

Families Citing this family (22)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US8781033B2 (en) * 2012-06-26 2014-07-15 Lsi Corporation Apparatus and method for breaking trapping sets
US8949702B2 (en) * 2012-09-14 2015-02-03 Lsi Corporation Systems and methods for detector side trapping set mitigation
CN104995844B (zh) * 2013-02-14 2018-11-30 马维尔国际贸易有限公司 具有对于ldpc码可靠性输入的比特翻转解码
US9214959B2 (en) 2013-02-19 2015-12-15 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for skip layer data decoding
KR20150128750A (ko) 2013-03-07 2015-11-18 마벨 월드 트레이드 리미티드 늦은 신뢰도 정보를 사용하여 디코딩하기 위한 시스템 및 방법
US9323611B2 (en) 2013-03-21 2016-04-26 Marvell World Trade Ltd. Systems and methods for multi-stage soft input decoding
US9274889B2 (en) 2013-05-29 2016-03-01 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for data processing using global iteration result reuse
US8959414B2 (en) 2013-06-13 2015-02-17 Lsi Corporation Systems and methods for hybrid layer data decoding
US8917466B1 (en) 2013-07-17 2014-12-23 Lsi Corporation Systems and methods for governing in-flight data sets in a data processing system
US8817404B1 (en) 2013-07-18 2014-08-26 Lsi Corporation Systems and methods for data processing control
US9196299B2 (en) 2013-08-23 2015-11-24 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for enhanced data encoding and decoding
US8908307B1 (en) 2013-08-23 2014-12-09 Lsi Corporation Systems and methods for hard disk drive region based data encoding
US9400797B2 (en) 2013-09-17 2016-07-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for recovered data stitching
US9219503B2 (en) 2013-10-16 2015-12-22 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for multi-algorithm concatenation encoding and decoding
US9323606B2 (en) 2013-11-21 2016-04-26 Avago Technologies General Ip (Singapore) Pte. Ltd. Systems and methods for FAID follower decoding
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
US9378765B2 (en) 2014-04-03 2016-06-28 Seagate Technology Llc Systems and methods for differential message scaling in a decoding process
US9565461B2 (en) * 2014-07-23 2017-02-07 Highlands Technologies Solutions System for displaying personalized messages, images and the like at event centers including cinema
US10141953B2 (en) * 2016-12-14 2018-11-27 Via Technologies, Inc. Low-density parity-check apparatus and matrix trapping set breaking method
KR102582326B1 (ko) * 2018-09-20 2023-09-26 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
KR102592870B1 (ko) * 2018-10-12 2023-10-24 에스케이하이닉스 주식회사 에러 정정 회로 및 이의 동작 방법
US11146291B2 (en) * 2020-03-02 2021-10-12 Micron Technology, Inc. Configuring iterative error correction parameters using criteria from previous iterations

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080019443A1 (en) * 2006-07-19 2008-01-24 Dake He Method for efficient encoding and decoding quantized sequence in wyner-ziv coding of video
US20100042897A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Selectively strengthening and weakening check-node messages in error-correction decoders

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6640327B1 (en) * 2000-11-01 2003-10-28 Sharp Laboratories Of America, Inc. Fast BCH error detection and correction using generator polynomial permutation
US8051363B1 (en) * 2007-01-16 2011-11-01 Marvell International Ltd. Absorb decode algorithm for 10GBase-T LDPC decoder
WO2011000176A1 (zh) * 2009-07-01 2011-01-06 慧帝科技(深圳)有限公司 错误修正码的编码及解码方法以及编码解码器
CN103166649B (zh) * 2011-12-19 2016-06-15 国际商业机器公司 用于解码循环码的方法、装置和解码器

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20080019443A1 (en) * 2006-07-19 2008-01-24 Dake He Method for efficient encoding and decoding quantized sequence in wyner-ziv coding of video
US20100042897A1 (en) * 2008-08-15 2010-02-18 Lsi Corporation Selectively strengthening and weakening check-node messages in error-correction decoders

Also Published As

Publication number Publication date
US8806309B2 (en) 2014-08-12
CN102832949B (zh) 2015-09-30
US20120317462A1 (en) 2012-12-13
CN102832949A (zh) 2012-12-19
TW201251342A (en) 2012-12-16

Similar Documents

Publication Publication Date Title
TWI501565B (zh) 控制基於訊息傳遞演算法之解碼操作的方法及其控制裝置
US9337873B2 (en) Miscorrection detection for error correcting codes using bit reliabilities
AU2002217598B2 (en) Apparatus and method for stopping iterative decoding in a CDMA mobile communication system
TWI594583B (zh) 硬決定輸入之一般化低密度同位檢查軟解碼
TWI411912B (zh) 使用寫入驗證之代碼之錯誤底限減緩
US10218388B2 (en) Techniques for low complexity soft decoder for turbo product codes
EP1942579A1 (en) An iterative decoder and an iterative decoding method for a communication system
JP5670411B2 (ja) トラッピング・セットを破壊するための装置および方法
JP4777876B2 (ja) ターボデコーダの反復の早期終了
US20170279467A1 (en) Performance optimization in soft decoding of error correcting codes
US10303364B2 (en) Techniques for low-latency chase decoding of turbo product codes with soft information
WO2014139123A1 (en) Method and apparatus of ldpc decoder with lower error floor
US20170070243A1 (en) Early termination method with re-encoding scheme for decoding of error correction code
US10326477B2 (en) Techniques for miscorrection detection for constituent codewords in product codes
EP3605851A1 (en) Iterative decoding using re-encoding between decoding stages
US20140013190A1 (en) Iterative Decoding Device and Related Decoding Method
WO2020170435A1 (ja) 誤り訂正復号装置および誤り訂正復号方法
WO2020011761A1 (en) Soft-aided decoding of staircase codes
US8898539B2 (en) Correcting errors in miscorrected codewords using list decoding
KR102197751B1 (ko) 블록 터보 부호의 저 복잡도 오류정정을 위한 신드롬 기반의 혼합 복호 장치 및 그 방법
JP6972424B2 (ja) 復号装置および復号方法
JPH05235906A (ja) 多元符号の復号装置及びこれを用いた誤り訂正・検出方式
Zhuo et al. Improved Reliability‐Based Iterative Decoding of LDPC Codes Based on Dynamic Threshold
TW201320620A (zh) 疊代檢測暨解碼裝置與疊代檢測暨解碼方法