TWI533620B - 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 - Google Patents
減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 Download PDFInfo
- Publication number
- TWI533620B TWI533620B TW102109208A TW102109208A TWI533620B TW I533620 B TWI533620 B TW I533620B TW 102109208 A TW102109208 A TW 102109208A TW 102109208 A TW102109208 A TW 102109208A TW I533620 B TWI533620 B TW I533620B
- Authority
- TW
- Taiwan
- Prior art keywords
- check
- variable
- node
- message
- node message
- 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/1131—Scheduling of bit node or check node processing
- H03M13/114—Shuffled, staggered, layered or turbo decoding schedules
-
- 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
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/112—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule with correction functions for the min-sum rule, e.g. using an offset or a scaling factor
-
- 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
- H03M13/1117—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule
- H03M13/1122—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms using approximations for check node processing, e.g. an outgoing message is depending on the signs and the minimum over the magnitudes of all incoming messages according to the min-sum rule storing only the first and second minimum values per check node
-
- 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/65—Purpose and implementation aspects
- H03M13/6577—Representation or format of variables, register sizes or word-lengths and quantization
- H03M13/658—Scaling by multiplication or division
Landscapes
- Physics & Mathematics (AREA)
- Probability & Statistics with Applications (AREA)
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Error Detection And Correction (AREA)
- Communication Control (AREA)
Description
本發明係有關於一種減少硬體緩衝器之低密度奇偶檢查碼(Low-Density Parity-Check codes,LDPC codes)階層式解碼架構,可達到更佳之硬體使用率、較少之緩衝暫存器使用,最終達到較小之硬體面積,且收斂速度不變慢之階層式排程結構。
應用於低密度奇偶檢查碼之解碼,其解碼基本之概念可見第2圖及第3圖,且第3圖係表達第2圖所示奇偶檢查矩陣(Parity-Check Matrix)中檢查節點(Check Node)以及變數節點(Variable Node)連接情形之丹拿圖(Tanner Graph)。圖中奇偶檢查矩陣之一列(Row)代表一個檢查節點,而一行(Column)代表一個變數節點,在奇偶檢查矩陣裡若第i個列以及第j個行為1,在Tanner graph裡就將檢查節點i以及變數節點j以一條直線將其連結起來,反之則無。
接著請參閱第4圖,其表示第j個變數節點從各個相連結之檢查節點i′所得到之外來訊息(Extrinsic Information)Ri′j以及通道值Lj(Channel Value)來計算出送至檢查節點i之變數至檢查節點訊息(Variable-to-Check Message)Qij,而此處之外來訊息為不包含接收者已知之訊息,對檢查節點i而言,變數節點j送給檢查節點i之變數至檢查節點訊息Qij會將檢查節點i送給變數節點j之檢查至變數節點訊息Rij排除在外並將其他所得之訊息經計算後求得。另外第5圖表示第i個檢查節點從各個相連結之變數節點
j′所得到之外來訊息Qij′來計算出送至變數節點j之檢查至變數節點訊息(Check-to-Variable Message)Rij,而此處之外來訊息亦為不包含接收者已知之訊息,對變數節點j而言,檢查節點i送給變數節點j之檢查至變數節點訊息Rij會將變數節點j送給檢查節點i之變數至檢查節點訊息Qij排除在外並將其他所得之訊息經計算後求得。
一般在解碼過程中皆有三個階段,變數節點處理(Variable Node Processing)、檢查節點處理(Check Node Processing)以及後驗概率處理(A Posteriori Probability Processing)。一般階層架構之演算法,係令N(i)為一所有與檢查節點i相連結之變數節點之集合,等式(1)為變數節點處理,其目的為求出與目前所處理檢查層(Check-Node Layer)所有檢查節點i相關之變數至節點訊息(Q),而等式(2)目的為求出目前所處理檢查層所有檢查節點i之檢查至變數節點訊息(R),接著等式(3)目的為求出目前所處理檢查層之所有檢查節點i在完成等式(2)之後與此檢查層之所有與檢查節點相連之所有變數節點j更新後之後驗概率(A Posteriori Probability,APP),詳細演算法如下:
等式(2)中的α是正規化係數(normalization factor),一般階層式解碼架構(Layered Decoding Architecture)皆係儲存後驗概率之方式來做解碼,在檢查節點開始新之一個階層時會先取得後驗概率減掉此階層上一次疊代(Iteration)所得之檢查至變數節點訊息可得到變數至檢查節點訊息,此後將變數至檢查節點訊息存入緩衝儲存器(Buffer)同時代入檢查節點等式(Check Node Equation)可得檢查至變數節點訊息,隨後將此階層所得之檢查至變數節點訊息存回記憶體並與緩衝儲存器之變數至檢查節點訊息相加得到更新
後之後驗概率,再將此後驗概率存回記憶體,完成一個階層之檢查節點更新以及與之相連之變數節點更新。
當操作時,如第6圖所示,在一個新之階層開始解碼時,會先從一後驗概率記憶體(APP Memory)31取得更新後之後驗概率,接著經由一後驗概率繞線網路(APP Routing Network)單元32將各個後驗概率分別對應到相對應之檢查節點上,同時從一檢查至變數節點訊息移位暫存器(Check-to-Variable Message Shift Register)364讀取上一個階層所得之變數至檢查節點訊息正負號總乘積、最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小,透過該正負號總乘積以及從變數至檢查節點訊息正負號記憶體(Q Sign Memory)35所得之變數至檢查節點訊息正負號可得檢查至變數節點訊息正負號,另外透過最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小可得檢查至變數節點訊息大小,即可求得完整之檢查至變數節點訊息,再由一第一計算單元33將所得之後驗概率減去檢查至變數節點訊息(如Q=APP-R所示)而得到變數至檢查節點訊息,接著將此變數至檢查節點訊息同時分別送往一變數至節點訊息大小緩衝暫存器(Q Magnitude Buffer)34、一變數至節點訊息正負號記憶體(Q Sign Memory)35以及一檢查節點處理器(Check-Node Processor)36,該檢查節點處理器36包含一比較器(Comparator)361、一暫存器(Reg)362、一正規化器(Normalizer)363以及該檢查至變數節點訊息移位暫存器364,其中該比較器361會將得到之變數至檢查節點訊息做最小以及次小之比較以找出最小值、次小值、正負號總乘積以及最小值索引,此最小值索引記錄著該檢查節點上最小值所在之變數節點位置,接著把暫時求得之這些值暫存在該暫存器362裡面,在完成整個階層之檢查節點運算後將上述求得之值送往該正規化器363以將最小與次小值做正規化,接著同時送往該檢查至
變數節點訊息移位暫存器364以及一第二計算單元37,由該第二計算單元37做後驗概率之更新(如APP=Q+R所示)而得到更新後之後驗概率,更新完後驗概率再分別將其存回該後驗概率記憶體31,以及經過一後驗概率正負號繞線網路(APP Sign Routing Network)單元38將各檢查節點上之後驗概率正負號對應回相對應之變數節點上存回一後驗概率正負號記憶體(APP Sign Memory)39以供解碼完成後做碼字(Codeword)之輸出。
然而,一般階層架構皆是儲存後驗概率。由於一個階層要更新後驗概率必須得到該階層在此次疊代之檢查至變數節點訊息,而檢查節點等式計算所花之時間與此階層之列權重(Row Weight)相關,列權重越高則計算所花時間越長,一般架構因為並非儲存變數至檢查節點訊息(Q),所以必須將進入此階層所求得之變數至檢查節點訊息(Q)存入緩衝儲存器,在此階層之檢查節點等式完成計算前都需要將變數至檢查節點訊息存入,因此緩衝儲存器之大小與列權重成正比例。
承上述,在一般階層架構由於每個階層對後驗概率之更新皆需要此階層所計算之檢查至變數節點訊息,所以需要先經過檢查節點等式一次計算之時間之後才能做後驗概率之更新,如第6圖所示一般傳統架構中,在上個階層之後驗概率沒有更新之情況下,下個階層之解碼動作將會被延宕直到後驗概率更新完畢,此舉將造成某些解碼元件閒置,再從另一角度來看,在一個階層裡,只要未處理完這個階層之最後一個變數至節點訊息之比較,那麼更新後驗概率之元件一樣也無法運作,因此傳統架構之效能係依賴奇偶檢查矩陣之建構方式,導致硬體使用率效果不彰。
鑑於傳統階層式解碼架構係儲存後驗概率,於階層運算結束後依序更新,而此架構之排程除了造成硬體使用率較低之外,尚需使用多個變數至檢查節點訊息大小緩衝儲
存器,導致硬體面積增加,故,一般習用者係無法符合使用者於實際使用時之所需。
本發明之主要目的係在於,克服習知技藝所遭遇之上述問題並提供一種能應用於低密度奇偶檢查碼(Low-Density Parity-Check codes,LDPC codes)之解碼,並可較傳統技術達到更佳之硬體使用率與較少之緩衝暫存器使用,最終達成較小之硬體面積,且收斂速度不變慢之減少硬體緩衝器之階層式解碼架構。
為達以上之目的,本發明係一種減少硬體緩衝器之階層式解碼架構,係包括:一變數至檢查節點訊息大小記憶體(Q Magnitude Memory),係將所得之通道值以及變數至檢查節點訊息儲存;一後驗概率計算單元,其與該變數至檢查節點訊息大小記憶體、變數至檢查節點訊息正負號記憶體、及檢查至變數節點訊息移位暫存器電性耦接,係從該變數至檢查節點訊息大小記憶體及變數至檢查節點訊息正負號記憶體分別讀取變數至檢查節點訊息之大小與正負號,將其加上自一檢查至變數節點訊息移位暫存器讀取上一個階層所得之檢查至變數節點訊息而計算出上個階層所更新之後驗概率;一後驗概率正負號繞線網路單元,其與該後驗概率計算單元電性耦接,係從該後驗概率計算單元讀取上個階層所更新之後驗概率正負號,將各檢查節點上之後驗概率正負號對應回相對應之變數節點上;一後驗概率正負號記憶體,其與該後驗概率正負號繞線網路單元電性耦接,係從該後驗概率正負號繞線網路單元讀取上個階層所更新之後驗概率正負號,將其解碼完成後碼字(Codeword)輸出;
一後驗概率繞線網路單元,其與該後驗概率計算單元電性耦接,係從該後驗概率計算單元讀取上個階層所更新之後驗概率,並將上個階層所更新之後驗概率分別對應到相對應之檢查節點上;一變數至檢查節點訊息計算單元,其與該後驗概率繞線網路單元、及該變數至節點訊息大小記憶體、及該變數至節點訊息正負號記憶體電性耦接,係從該後驗概率繞線網路單元讀取上個階層所更新之後驗概率(APP),將其減去自該檢查至變數節點訊息移位暫存器以及該變數至節點訊息正負號記憶體所獲取此階層上一次疊代所得之檢查至變數節點訊息而計算出變數至檢查節點訊息,並將此變數至檢查節點訊息大小以及正負號分別存回至該變數至節點訊息大小記憶體以及變數至節點訊息正負號記憶體;一變數至檢查節點訊息正負號記憶體(Q Sign Memory),其與該後驗概率計算單元及該變數至檢查節點訊息計算單元電性耦接,用以儲存由該變數至檢查節點訊息計算單元得到之變數至檢查節點訊息正負號用以提供給該後驗概率計算單元及該變數至檢查節點訊息計算單元;以及一檢查節點處理器(Check-Node Processor),其與該變數至檢查節點訊息計算單元電性耦接,包含一比較器(Comparator)、一暫存器(Reg)、一正規化器(Normalizer)、以及該檢查至變數節點訊息移位暫存器,該檢查節點處理器係從該變數至檢查節點訊息計算單元讀取變數至檢查節點訊息,經過比較最小值之計算,再將此階層所得之檢查至變數節點訊息提供給該變數至檢查節點訊息計算單元。
上述所提之減少硬體緩衝器之階層式解碼架構,於一具體實施例中,該後驗概率計算單元係以一後驗概率等式做後驗概率更新,求出目前所處理檢查層之所有檢查節點i在上個階層與此檢查層之所有與檢查節點i相連之所有變數節點j更新後之後驗概率,該後驗概率等式為:
其中,f(i,j)係指在目前所處之檢查節點i之前最後一次與變數節點j做訊息傳送之檢查節點;該APPj係在檢查節點f(i,j)所在之檢查層所更新之變數節點j之後驗概率,而Q f(i,j)j 與R f(i,j)j 分別為該檢查節點f(i,j)與變數節點j所對應之變數至檢查節點訊息與檢查至變數節點訊息。。
上述所提之減少硬體緩衝器之階層式解碼架構,於一具體實施例中,該變數至檢查節點訊息計算單元係以一變數至檢查節點訊息等式做變數節點處理,求出與目前所處理檢查層所有檢查節點i相關之變數至檢查節點訊息,該變數至檢查節點訊息等式為:
其中,該APPj係上個階層所更新之後驗概率;以及該Rij係此階層上一次疊代所得之檢查至變數節點訊息。
上述所提之減少硬體緩衝器之階層式排程結構,於一具體實施例中,該檢查節點處理器係以一檢查節點等式做檢查節點處理,求出與目前所處理檢查層所有檢查節點i相關之檢查至變數節點訊息,該檢查節點等式為:
11‧‧‧變數至檢查節點訊息大小記憶體
12‧‧‧後驗概率計算單元
13‧‧‧後驗概率正負號繞線網路單元
14‧‧‧後驗概率正負號記憶體
15‧‧‧後驗概率繞線網路單元
16‧‧‧變數至檢查節點訊息計算單元
17‧‧‧變數至檢查節點訊息正負號記憶體
18‧‧‧檢查節點處理器
181‧‧‧比較器
182‧‧‧暫存器
183‧‧‧正規化器
184‧‧‧檢查至變數節點訊息移位暫存器
31‧‧‧後驗概率記憶體
32‧‧‧後驗概率繞線網路單元
33‧‧‧第一計算單元
34‧‧‧變數至檢查節點訊息大小緩衝暫存器
35‧‧‧變數至檢查節點訊息正負號記憶體
36‧‧‧檢查節點處理器
361‧‧‧比較器
362‧‧‧暫存器
363‧‧‧正規化器
364‧‧‧檢查至變數節點訊息移位暫存器
37‧‧‧第二計算單元
38‧‧‧後驗概率正負號繞線網路單元
39‧‧‧後驗概率正負號記憶體
第1圖,係本發明之架構示意圖。
第2圖,係奇偶檢查矩陣示意圖。
第3圖,係第2圖中檢查節點以及變數節點連接情形之丹拿圖(Tanner Graph)。
第4圖,係變數節點處理器之操作態樣示意圖。
第5圖,係檢查節點處理器之操作態樣示意圖。
第6圖,係傳統階層架構示意圖。
請參閱『第1圖』所示,係本發明之架構示意圖。如圖所示:本發明係一種減少硬體緩衝器之階層式排程結構,係至少包括一變數至節點訊息大小記憶體(Q Magnitude Memory)11、一後驗概率計算單元12、一後驗概率正負號繞線網路(APP Sign Routing Network)單元13、一後驗概率正負號記憶體(APP Sign Memory)14、一後驗概率繞線網路(APP Routing Network)單元15、一變數至檢查節點訊息計算單元16、一變數至檢查節點訊息正負號記憶體(Q Sign Memory)17以及一檢查節點處理器(Check-Node Processor)18所構成。
上述所提之變數至節點訊息大小記憶體11係將所得之通道值(Channel Value)以及變數至檢查節點訊息大小儲存起來。
上述所提之後驗概率計算單元12係與該變數至檢查節點訊息大小記憶體11以及該變數至檢查節點訊息正負號記憶體17電性耦接,用以從該變數至檢查節點訊息大小記憶體11以及該變數至檢查節點訊息正負號記憶體17讀取變數至檢查節點訊息之大小及正負號,將其加上自一檢查至變數節點訊息移位暫存器(Check-to-Variable Message Shift Register)184讀取上一個階層所得之正負號總乘積、最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小,透過正負號總乘積以及上述所得之變數至檢查節點訊息正負號可得檢查至變數節點訊息正負號,另外透過最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小可得檢查至變數節點訊息大小,即可求得完整之檢查至變數節點訊息(Check-to-Variable Message)而計
算出上個階層所更新之後驗概率(A Posteriori Probability,APP)。
上述所提之後驗概率正負號繞線網路單元13係與該後驗概率計算單元12電性耦接,用以從該後驗概率計算單元12讀取上個階層所更新之後驗概率,將各檢查節點上之後驗概率正負號對應回相對應之變數節點上。
上述所提之後驗概率正負號記憶體14係與該後驗概率正負號繞線網路單元13電性耦接,用以從該後驗概率正負號繞線網路單元13讀取上個階層所更新之後驗概率,將其解碼後碼字(Codeword)輸出。
上述所提之後驗概率繞線網路單元15係與該後驗概率計算單元12電性耦接,用以從該後驗概率計算單元12讀取上個階層所更新之後驗概率,並將上個階層所更新之後驗概率分別對應到相對應之檢查節點上。
上述所提之變數至檢查節點訊息計算單元16係與該後驗概率繞線網路單元15、該變數至節點訊息大小記憶體11、及該變數至節點訊息正負號記憶體17電性耦接,用以從該後驗概率繞線網路單元15讀取上個階層所更新之後驗概率(APP),將其減去自該檢查至變數節點訊息移位暫存器184讀取此階層上一次疊代(Iteration)所得之檢查至變數節點訊息大小以及由變數至檢查節點訊息正負號和正負號總乘積所得之檢查至變數節點訊息正負號而來之檢查至變數節點訊息來計算出變數至檢查節點訊息,並將此變數至檢查節點訊息大小及正負號分別存回至該變數至節點訊息大小記憶體11以及變數至檢查節點訊息正負號記憶體17。
上述所提之變數至檢查節點訊息大小記憶體11以及變數至節點訊息正負號記憶體17係與該後驗概率計算單元12及該變數至檢查節點訊息計算單元16電性耦接,用以儲存由該變數至檢查節點訊息計算單元16得到之
變數至檢查節點訊息並提供給該後驗概率計算單元12及該變數至檢查節點訊息計算單元16。
上述所提之檢查節點處理器18係與該變數至檢查節點訊息計算單元16電性耦接,包含一比較器(Comparator)181、一暫存器(Reg)182、一正規化器(Normalizer)183、以及該檢查至變數節點訊息移位暫存器184,該檢查節點處理器18係從該變數至檢查節點訊息計算單元16讀取變數至檢查節點訊息,經過比較最小值之計算,再將此階層所得之正負號總乘積、最小變數至節點訊息大小索引、最小和次小變數至節點訊息大小提供給該變數至檢查節點訊息計算單元16以及後驗概率計算單元12,使其能求出各別之檢查至變數節點訊息。
如是,藉由上述揭露之架構構成一全新之減少硬體緩衝器之階層式解碼架構。
本發明所提之一種減少硬體緩衝器之階層式排程結構,其演算法係令N(i)為一所有與檢查節點i相連結之變數節點之集合,先由該後驗概率計算單元12以一後驗概率等式(4)做後驗概率更新,求出目前所處理檢查層(Check-Node layer)之所有檢查節點i在上個階層與此檢查層之所有與檢查節點i相連之所有變數節點j更新後之後驗概率;並由該變數至檢查節點訊息計算單元16以一變數至檢查節點訊息等式(5)做變數節點處理,求出與目前所處理檢查層所有檢查節點i相關之變數至檢查節點訊息;再由該檢查節點處理器18以一檢查節點等式(6)做檢查節點處理,求出與目前所處理檢查層所有檢查節點i相關之檢查至變數節點訊息,其詳細演算法如下:
其中,等式(4)中的f(i,j)係指在目前所處理之檢
查節點i之前最後一次與變數節點j做訊息傳送之檢查節點;該APPj係在檢查節點f(i,j)所在之檢查層所更新之變數節點j之後驗概率,而Q f(i,j)j 與R f(i,j)j 分別為該檢查節點f(i,j)與變數節點j所對應之變數至檢查節點訊息與檢查至變數節點訊息;等式(5)中的Rij係目前所在之階層上一次疊代所得之檢查至變數節點訊息;而Q ij 係此階層所得之變數至檢查節點訊息;等式(4)
和等式(5)中的檢查至變數節點訊息可從等式(6)求得,其中α
為正規化係數,為除了變數節點j以外和檢查節
點i’所相連之變數節點送來之變數至檢查節點訊息正負號
之乘積,而為除了變數節點j以外和檢查節點i’
所相連之變數節點送來之變數至檢查節點訊息大小之最小
值,最後求得該檢查至變數節點訊息
當運用時,如第1圖所示,本發明所提之階層式解碼結構係儲存變數至檢查節點訊息之方式來做解碼,在檢查節點開始一個新之階層時會先從變數至檢查節點訊息大小記憶體以及變數至檢查節點訊息正負號記憶體取得變數至檢查節點訊息(Q)加上上一個階層所得之檢查至變數節點訊息(R)而得上個階層所更新之後驗概率(APP),如後驗概率等式(4)所示;接著,再以此後驗概率(APP)減去此階層上一次疊代所得之檢查至變數節點訊息(R)可得到變數至檢查節點訊息(Q),如變數至檢查節點訊息等式(5)所示;此後,將此變數至檢查節點訊息大小以及變數至檢查節點訊息正負號分別存變數至檢查節點訊息大小記憶體以及變數至檢查節點訊息正負號記憶體同時代入比較器找出目前所在檢查層之最小及次小變數至檢查節點訊息大小以及變數至檢查節點所有正負號乘積之正負號總乘積,同時紀錄最小變數至檢查節點訊息大小所在之變數節點位置,在找出所在檢查層之最小及次小變數至檢查節點訊息大小之後將其與正規化係數相乘後連同最小變數至檢查節點訊息大小索引和正負號總乘積一併存至檢查至變數節點訊息移位暫存器,即完成一個階層之檢查
節點更新以及與之相連之變數節點更新。
與傳統技術相較,本發明係具有下列優點:
1.本發明所提之架構係將變數至檢查節點訊息儲存於記憶體,因此在進入下個階層時只要將上個階層所求得之檢查至變數節點訊息與變數至檢查節點訊息相加即可得更新後之後驗概率,隨後再將此後驗概率減掉此階層上次疊代所求之檢查至變數節點訊息並將此訊息存回記憶體同時代入檢查節點等式(Check Node Equation)做計算,利用此方式可以有效提升硬體使用率。
2.本發明所提之架構只需要上個階層所得之檢查至變數節點訊息以及此階層在上個疊代所得之檢查至變數節點訊息即可更新變數至檢查節點訊息,以此方式達到硬體面積減少之目的。因此,本發明係將後驗概率之更新留在下個階層做計算時一併做處理,意即在做完後驗概率(APP)之更新後可以馬上求得該階層檢查節點等式所需之變數至檢查節點訊息(Q)同時將其代入檢查節點等式做計算,如此可以免去為了更新後驗概率而等待檢查節點等式所計算之時間,因此可以達到與傳統技術相同之收斂速度並可有效減少使用大量緩衝儲存器。
3.本發明所提之架構可以有效提升硬體使用率,如第1圖所示,在本結構中,在一個新之階層做檢查節點等式計算之時候,先做先前後驗概率之更新動作,接著將後驗概率做移位以確保所有的值都對到正確之位置,接著再做變數至檢查節點訊息計算以及比較最小值之計算,如此一連串之運算行為皆可同時進行而無任何衝突情形會發生,因此可以有效提升硬體之使用率。
4.本發明所提之架構,係在計算檢查節點等式計算上有需求時再做後驗概率之更新,其餘與上個階層無重疊之地方就先予以保留至往後有需要後驗概率更新之階層再做更新即可,因此本結構並不會引發因不必要之後驗概率之更新而
造成檢查節點等式計算之延宕,其為本發明與傳統技術在後驗概率之更新上相異之處,進而使本發明可有較高之硬體使用率。
5.在本發明所提之架構上因不需像傳統技術需要額外之變數至檢查節點訊息大小之緩衝儲存器,因此可以大幅減少硬體面積。本發明在此以(變數節點數,檢查節點數)=(9300,900)之奇偶校驗矩陣為例來說明,碼之列權重為62,欄權重為6,可得知一個檢查層有150個檢查節點,因此在變數至檢查節點訊息大小量化取五個位元時,傳統技術與本發明所提之結構相比,需要再額外多一個儲存46500個位元(9300*5=46500)之變數至檢查節點訊息大小之緩衝儲存器。
藉此,本發明所提減少硬體緩衝器之階層式排程結構,係可有效減少面積以及提升硬體使用率,能應用於低密度奇偶檢查碼(Low-Density Parity-Check codes,LDPC codes)之解碼,比起傳統技術係可達到更佳之硬體使用率、較少之緩衝暫存器使用,最終達到較小之硬體面積,且收斂速度不變慢。
綜上所述,本發明係一種減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構,可有效改善習用之種種缺點,係能有效減少面積以及提升硬體使用率,比起傳統技術係可達到更佳之硬體使用率、較少之緩衝暫存器使用,最終達到較小之硬體面積,且收斂速度不變慢,進而使本發明之產生能更進步、更實用、更符合使用者之所須,確已符合發明專利申請之要件,爰依法提出專利申請。
惟以上所述者,僅為本發明之較佳實施例而已,當不能以此限定本發明實施之範圍;故,凡依本發明申請專利範圍及發明說明書內容所作之簡單的等效變化與修飾,皆應仍屬本發明專利涵蓋之範圍內。。
11‧‧‧變數至檢查節點訊息大小記憶體
12‧‧‧後驗概率計算單元
13‧‧‧後驗概率正負號繞線網路單元
14‧‧‧後驗概率正負號記憶體
15‧‧‧後驗概率繞線網路單元
16‧‧‧變數至檢查節點訊息計算單元
17‧‧‧變數至檢查節點訊息正負號記憶體
18‧‧‧檢查節點處理器
181‧‧‧比較器
182‧‧‧暫存器
183‧‧‧正規化器
184‧‧‧最小檢查至變數節點訊息移位暫存器
Claims (4)
- 一種減少硬體緩衝器之階層式解碼架構,係包括:一變數至檢查節點訊息大小記憶體(Q Magnitude Memory),係將所得之通道值以及變數至檢查節點訊息大小儲存起來;一後驗概率計算單元,其與該變數至節點訊息大小記憶體以及該變數至檢查節點訊息正負號記憶體電性耦接,係從該變數至節點訊息大小記憶體以及變數至檢查節點訊息正負號記憶體分別讀取變數至檢查節點訊息大小及正負號,接著自一檢查至變數節點訊息移位暫存器(Check-to-Variable Message Shift Register)所得之變數至檢查節點訊息正負號總乘積、最小變數至檢查節點訊息大小索引、最小及次小變數至檢查節點訊息大小和上述之變數至檢查節點訊息正負號求得檢查至變數節點訊息正負號和檢查節點訊息大小即可得完整之檢查至變數節點訊息(Check-to-Variable Message)而計算出上個階層所更新之後驗概率(A Posteriori Probability,APP);一後驗概率正負號繞線網路(APP Sign Routing Network)單元,其與該後驗概率計算單元電性耦接,係從該後驗概率計算單元讀取上個階層所更新之後驗概率正負號,將各檢查節點上之後驗概率正負號對應回相對應之變數節點上;一後驗概率正負號記憶體(APP Sign Memory),其與該後驗概率正負號繞線網路單元電性耦接,係從該後驗概率正負號繞線網路單元讀取上個階層所更新之後驗概率正負號,將其解碼碼字(Decoded Codeword)輸出;一後驗概率繞線網路(APP Routing Network)單元,其與該後驗概率計算單元電性耦接,係從該後驗概率計算單元讀取上個階層所更新之後驗概率,並將上個階層所更新之後驗概率分別對應到相對應之檢查節點上; 一變數至檢查節點訊息計算單元,其與該後驗概率繞線網路單元、該變數至檢查節點訊息大小記憶體、及該變數至檢查節點訊息正負號記憶體電性耦接,係從該後驗概率繞線網路單元讀取上個階層所更新之後驗概率(APP),將其減去透過自該檢查至變數節點訊息移位暫存器讀取此階層上一次疊代所得之正負號總乘積、最小變數至檢查節點訊息大小索引、最小及次小變數至檢查節點訊息大小和上述之變數至檢查節點訊息正負號求得檢查至變數節點訊息正負號和檢查節點訊息大小而得之完整之檢查至變數節點訊息而計算出變數至檢查節點訊息,並將此變數至檢查節點訊息大小以及正負號分別存回至該變數至檢查節點訊息大小記憶體以及變數至檢查節點正負號記憶體;一變數至檢查節點訊息正負號記憶體(Q Sign Memory),其與該後驗概率計算單元及該變數至檢查節點訊息計算單元電性耦接,用以儲存由該變數至檢查節點訊息計算單元得到之變數至檢查節點訊息並提供給該後驗概率計算單元及該變數至檢查節點訊息計算單元;以及一檢查節點處理器(Check-Node Processor),其與該變數至檢查節點訊息計算單元電性耦接,包含一比較器(Comparator)、一暫存器(Reg)、一正規化器(Normalizer)、以及該檢查至變數節點訊息移位暫存器,該檢查節點處理器係從該變數至檢查節點訊息計算單元取得正負號總乘積、最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小,透過正負號總乘積以及上述所得之變數至檢查節點訊息正負號可得檢查至變數節點訊息正負號,另外透過最小變數至檢查節點訊息大小索引、最小和次小變數至檢查節點訊息大小可得變數至檢查節點訊息大小,即可求得完整之檢查至變數節點訊息,再將此階層所得之檢查至變數節點訊息提供給該變數 至檢查節點訊息計算單元以及後驗概率計算單元。
- 依申請專利範圍第1項所述之減少硬體緩衝器之階層式解碼架構,其中,該後驗概率計算單元係以一後驗概率等式做後驗概率更新,求出目前所處理檢查層(Check-node layer)之所有檢查節點i在上個階層與此檢查層之所有與檢查節點i相連之所有變數節點j更新後之後驗概率,該後驗概率等式為:
- 依申請專利範圍第1項所述之減少硬體緩衝器之階層式解碼架構,其中,該變數至檢查節點訊息計算單元係以一變數至檢查節點訊息等式做變數節點處理,求出與目前所處理檢查層所有檢查節點i相關之變數至檢查節點訊息,該變數至檢查節點訊息等式為:
- 依申請專利範圍第1項所述之減少硬體緩衝器之階層式解碼架構,其中,該檢查節點處理器係以一檢查節點等式做檢查節點處理,求出與目前所處理檢查層所有檢查節點i’相關之檢查至變數節點訊息,該檢查節點等式為:
Priority Applications (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102109208A TWI533620B (zh) | 2013-03-15 | 2013-03-15 | 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 |
US13/869,439 US9048872B2 (en) | 2013-03-15 | 2013-04-24 | Layered decoding architecture with reduced number of hardware buffers for LDPC codes |
CN201410013418.6A CN104052495B (zh) | 2013-03-15 | 2014-01-13 | 减少硬件缓冲器的低密度奇偶检查码阶层式译码架构 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW102109208A TWI533620B (zh) | 2013-03-15 | 2013-03-15 | 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201436476A TW201436476A (zh) | 2014-09-16 |
TWI533620B true TWI533620B (zh) | 2016-05-11 |
Family
ID=51504905
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW102109208A TWI533620B (zh) | 2013-03-15 | 2013-03-15 | 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 |
Country Status (3)
Country | Link |
---|---|
US (1) | US9048872B2 (zh) |
CN (1) | CN104052495B (zh) |
TW (1) | TWI533620B (zh) |
Families Citing this family (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
WO2014023355A1 (en) * | 2012-08-09 | 2014-02-13 | Telefonaktiebolaget L M Ericsson (Publ) | A method and a node for detecting phase noise in mimo communication systems |
US9048867B2 (en) * | 2013-05-21 | 2015-06-02 | Lsi Corporation | Shift register-based layered low density parity check decoder |
US9628114B2 (en) * | 2015-03-31 | 2017-04-18 | Macronix International Co., Ltd. | Length-compatible extended polar codes |
US20170222659A1 (en) * | 2016-02-02 | 2017-08-03 | Silicon Motion Inc. | Power improvement for ldpc |
KR102626162B1 (ko) * | 2016-06-14 | 2024-01-18 | 삼성전자주식회사 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
US11146289B2 (en) * | 2019-03-29 | 2021-10-12 | Intel Corporation | Techniques to use intrinsic information for a bit-flipping error correction control decoder |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7174495B2 (en) * | 2003-12-19 | 2007-02-06 | Emmanuel Boutillon | LDPC decoder, corresponding method, system and computer program |
US7251769B2 (en) * | 2004-03-17 | 2007-07-31 | Lucent Technologies Inc. | Methods and apparatus for communication using generalized low density parity check codes |
US20070245217A1 (en) * | 2006-03-28 | 2007-10-18 | Stmicroelectronics S.R.L. | Low-density parity check decoding |
US8418023B2 (en) * | 2007-05-01 | 2013-04-09 | The Texas A&M University System | Low density parity check decoder for irregular LDPC codes |
CN101321043B (zh) * | 2007-06-08 | 2011-10-26 | 电信科学技术研究院 | 低密度校验码编码的译码方法及译码装置 |
CN101106381B (zh) * | 2007-08-09 | 2010-04-07 | 上海交通大学 | 分层的低密度校验码译码器及译码处理方法 |
US8181083B2 (en) * | 2007-08-27 | 2012-05-15 | Stmicroelectronics S.R.L. | Methods and architectures for layered decoding of LDPC codes with minimum latency |
WO2009143375A2 (en) * | 2008-05-21 | 2009-11-26 | The Regents Of The University Of Calfornia | Lower-complexity layered belief propagation deconding ldpc codes |
US8341489B2 (en) * | 2008-08-04 | 2012-12-25 | Broadcom Corporation | Permuted accelerated LDPC (Low Density Parity Check) decoder |
US20100037121A1 (en) * | 2008-08-05 | 2010-02-11 | The Hong Kong University Of Science And Technology | Low power layered decoding for low density parity check decoders |
CN101615914A (zh) * | 2009-06-24 | 2009-12-30 | 重庆金美通信有限责任公司 | 分层最小和ldpc译码校验节点处理的实现方法 |
TWI419481B (zh) * | 2009-12-31 | 2013-12-11 | Nat Univ Tsing Hua | 低密度奇偶檢查碼編解碼器及其方法 |
CN102281125B (zh) * | 2011-07-29 | 2013-07-17 | 上海交通大学 | 分层分块非规则低密度校验码译码器及译码方法 |
CN102723957B (zh) * | 2012-05-28 | 2015-03-04 | 北京大学 | 一种适用于层间并行译码器的qc-ldpc码译码方法 |
-
2013
- 2013-03-15 TW TW102109208A patent/TWI533620B/zh active
- 2013-04-24 US US13/869,439 patent/US9048872B2/en active Active
-
2014
- 2014-01-13 CN CN201410013418.6A patent/CN104052495B/zh active Active
Also Published As
Publication number | Publication date |
---|---|
US20140281786A1 (en) | 2014-09-18 |
CN104052495A (zh) | 2014-09-17 |
TW201436476A (zh) | 2014-09-16 |
CN104052495B (zh) | 2018-09-21 |
US9048872B2 (en) | 2015-06-02 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI533620B (zh) | 減少硬體緩衝器之低密度奇偶檢查碼階層式解碼架構 | |
US11784666B2 (en) | Decoding signals by guessing noise | |
US10819648B2 (en) | Retry handling in messaging queues | |
KR101818710B1 (ko) | 그래프 질의 로직 | |
US10187085B2 (en) | Decoding method, decoding apparatus and decoder | |
US10645105B2 (en) | Network attack detection method and device | |
US20130268565A1 (en) | Traversal Based Directed Graph Compaction | |
JP5971670B2 (ja) | 誤り訂正復号装置 | |
US20200099958A1 (en) | Efficient length limiting of compression codes | |
CN104298699A (zh) | 固定和可变长度数据库列的卸载投影的方法和系统 | |
CN112382406A (zh) | 传染病的基本再生数的估算方法及装置、介质和设备 | |
CN110679090B (zh) | 减少延迟错误校正解码 | |
KR20140099820A (ko) | 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더 | |
KR102607761B1 (ko) | 극 부호를 이용하는 복호화를 위한 복호 위치 제어 정보 생성 방법 및 장치 | |
EP4072023A1 (en) | Decoding method, decoder, and decoding device | |
Han et al. | Successive-cancellation list decoder of polar codes based on GPU | |
Tsurumaru et al. | Exact minimum and maximum of yield with a finite number of decoy light intensities | |
RU2811072C1 (ru) | Способ декодирования, декодер и устройство декодирования | |
CN114421973B (zh) | Ldpc译码器的译码方法和系统 | |
US8983893B2 (en) | Modeling dynamic graphs with binary decision diagrams | |
TW201703441A (zh) | 執行於通量圖形處理器的低密度奇偶檢查解碼方法 | |
TW202331598A (zh) | 四倍窄化操作 | |
CN112527394A (zh) | 基于指令序列与消息序列指引的深度依赖问题并行方法 |