TWI415396B - 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 - Google Patents
適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 Download PDFInfo
- Publication number
- TWI415396B TWI415396B TW098139768A TW98139768A TWI415396B TW I415396 B TWI415396 B TW I415396B TW 098139768 A TW098139768 A TW 098139768A TW 98139768 A TW98139768 A TW 98139768A TW I415396 B TWI415396 B TW I415396B
- Authority
- TW
- Taiwan
- Prior art keywords
- matrix
- decoder
- sub
- parity check
- code
- Prior art date
Links
- 238000000034 method Methods 0.000 title claims description 37
- 239000011159 matrix material Substances 0.000 claims description 145
- 238000006073 displacement reaction Methods 0.000 claims description 13
- 125000004122 cyclic group Chemical group 0.000 claims description 6
- 238000004364 calculation method Methods 0.000 claims description 4
- 238000013461 design Methods 0.000 description 28
- 238000012545 processing Methods 0.000 description 27
- 230000008569 process Effects 0.000 description 16
- 239000013598 vector Substances 0.000 description 14
- 238000004422 calculation algorithm Methods 0.000 description 10
- 238000004891 communication Methods 0.000 description 8
- 238000013139 quantization Methods 0.000 description 6
- 238000010586 diagram Methods 0.000 description 4
- 101100356682 Caenorhabditis elegans rho-1 gene Proteins 0.000 description 3
- 230000000295 complement effect Effects 0.000 description 3
- 230000009467 reduction Effects 0.000 description 3
- 230000008901 benefit Effects 0.000 description 2
- 230000005540 biological transmission Effects 0.000 description 2
- 230000015572 biosynthetic process Effects 0.000 description 2
- 238000012937 correction Methods 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 238000003786 synthesis reaction Methods 0.000 description 2
- 241000269586 Ambystoma 'unisexual hybrid' Species 0.000 description 1
- 238000010420 art technique Methods 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 239000000470 constituent Substances 0.000 description 1
- 230000001934 delay Effects 0.000 description 1
- 238000011156 evaluation Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 230000010354 integration Effects 0.000 description 1
- 230000001788 irregular Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 239000002184 metal Substances 0.000 description 1
- 229910052751 metal Inorganic materials 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 238000010606 normalization Methods 0.000 description 1
- 230000003287 optical effect Effects 0.000 description 1
- 238000004904 shortening Methods 0.000 description 1
- 238000004088 simulation Methods 0.000 description 1
- 238000012360 testing method Methods 0.000 description 1
- 238000012546 transfer Methods 0.000 description 1
Classifications
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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/1148—Structural properties of the code parity-check or generator matrix
- H03M13/1174—Parity-check or generator matrices built from sub-matrices representing known block codes such as, e.g. Hamming codes, e.g. generalized LDPC codes
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/11—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
- H03M13/1102—Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
- H03M13/1105—Decoding
- H03M13/1111—Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/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/65—Purpose and implementation aspects
- H03M13/6508—Flexibility, adaptability, parametrability and configurability of the implementation
- H03M13/6516—Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
-
- H—ELECTRICITY
- H03—ELECTRONIC CIRCUITRY
- H03M—CODING; DECODING; CODE CONVERSION IN GENERAL
- H03M13/00—Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
- H03M13/03—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
- H03M13/05—Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
- H03M13/13—Linear codes
- H03M13/15—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes
- H03M13/151—Cyclic codes, i.e. cyclic shifts of codewords produce other codewords, e.g. codes defined by a generator polynomial, Bose-Chaudhuri-Hocquenghem [BCH] codes using error location or error correction polynomials
- H03M13/1515—Reed-Solomon codes
Description
本發明係與通訊系統及儲存系統中的解碼器相關,並且尤其與適用於根據里德-索羅門(Reed-Solomon,RS)碼建立之低密度同位檢查(low-density parity check,LDPC)碼的解碼器及解碼方法相關。
由於LDPC碼具有接近極限的良好表現和適用於高度平行解碼器的特性,目前已經有許多與這種編碼相關的研究。LDPC碼可被應用在例如光通訊和透過無線通道傳送影像資料等多種應用中。許多較新的通訊標準,例如IEEE 802.3an和802.16e,已將與LDPC碼相關的規定包含在內。IEEE 802.3an標準所採用的LDPC碼是一種根據具有兩個資訊符號(information symbol)之RS碼建立的規律編碼。I. Djurdjevic等人在2003年7月於IEEE Commun. Lett.,vol. 7,no. 7發表的論文「A class of low-density parity-check codes constructed based on Reed-Solomon codes with two information symbols」,以及G. Liva等人在2006年9月於J. Commun. Softw. Syst.,vol. 2,no. 3發表的論文「Design of LDPC codes: A survey and new results」,對於如何根據短式RS碼(shortened RS code)及延伸式RS碼(extended RS code)建立LDPC碼已有介紹。RS-LDPC碼具有一定的最小漢明距離(Hamming distance),並且具有較大之最小漢明距離的RS-LDPC碼也是可實現的。IEEE 802.3an標準所採用之(2048,1723) RS-LDPC碼的錯誤底限(error floor)為10-13即可符合此通訊標準的要求。像(2048,1723) RS-LDPC碼這樣的高碼率編碼經常被用在具有低雜訊通道的應用中,亦即希望在有限頻寬中盡量提高可傳遞之訊息量的情況。高碼率編碼通常被用在例如802.3an標準之有線通訊及硬碟等儲存系統中。一般而言,這類應用所要求的資料傳輸量會在每秒十億位元以上。
利用包含變數節點(variable node)及檢查節點(check node)的丹拿圖(Tanner graph),訊息傳遞解碼(message-passing decoding,MPD)可被用來為LDPC碼解碼。R. Gallager等人在1962年1月於IRE Trans.Inf. Theory,vol. 7發表的「Low-density parity-check Codes」以及D. J. C. Mackay等人在1999年3月於IEEE Trans. Inf. Theory,vol. 45,no. 2發表的「Good error correcting codes based on very sparse matrices」揭露了一種稱為雙相位訊息傳遞(two-phase message passing,TPMP)的解碼排程方法,其中每一次疊代運算的解碼程序被分為檢查節點運算和變數節點運算兩個相位。分層式(layered) MPD和混合式(shuffled) MPD可被用以增加收斂速度,進而減少達到特定之位元錯誤率所需要的疊代運算的次數。
如果以完全平行架構來實現高處理量之解碼器,會面臨電路連接過度複雜的問題。採用位元串行(bit-serial)架構或是隨機(stochastic)解碼器可降低電路接線的複雜度。線路分割(wire partitioning)技巧可被用以縮短臨界路徑延遲(critical-path delay),進而提昇資料處理量。A. J. Blanksby等人在2002年3月於IEEE J. Solid-State Circuits,vol. 37,no. 3發表之「A 690-mW 1-Gb/s 1024-b,rate-1/2 low-density parity-check code decoder」、T. Brandon等人在2008年3月於Integration,vol. 41,no. 3發表之「A scalable LDPC decoder ASIC architecture with bit-serial message exchange」、S. S. Tehrani等人在2008年11月於IEEE Trans. Signal Processing,vol. 56,no. 11發表之「Fully parallel stochastic LDPC decoders」,以及N. Onizawa等人在IEEE Trans. VLSI Syst.發表之「Design of high-throughput fully parallel LDPC decoders based on wire partitioning」所提出的解碼器,屬於單一模式1/2率LDPC解碼器(single-mode rate-1/2 LDPC decoder),其檢查節點之數量較低,比方說等於6。A. Darabiha等人在2008年8月於IEEE J. Solid-State Circuits,vol. 43,no. 8發表之「Power reduction techniques for LDPC decoders」、A. Darabiha等人在2008年1月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 55發表之「Block-interlaced LDPC decoders with reduced interconnect complexity」,以及T. Mohsenin等人在2009年5月於Proc. IEEE ISCAS發表之「Multi-split-row threshold decoding implementations for LDPC codes」所揭露的解碼器為適用於高碼率2048位元(6,32)-規律LDPC碼之完全平行式解碼器,其變數節點及檢查節點的數量分別為6和32。
在完全平行式的解碼器中,檢查節點的數量愈高,硬體電路的複雜度會隨之大幅上升。因此,L. Liu等人在2008年12月於IEEE Trans. Circuits Syst. I,Reg. Papers,vol. 55,no. 11所發表的「Sliced message passing:high throughput overlapped decoding of high-rate low-density parity-check codes」中提出切片式訊息傳遞(sliced message passing,SMP)的做法,以暫存器(register)為基礎的部份平行式架構來設計適用於(6,32)規律LDPC碼的高處理量解碼器。為解決完全平行式解碼器中電路複雜度隨著編碼長度大幅增加的問題,適用於長LDPC碼的解碼器通常會採用部份平行式的架構。然而,這種解碼器通常是以TPMP排程方法為基礎,收斂速度難以提升。
以共用記憶體為基礎的部份平行式解碼器較適合多模式解碼器,在不同模式下共用大部分的硬體資源。許多應用於WiMAX網路之LDPC碼多模式解碼器係結合部份平行式架構可與分層式MPD的做法,藉此增加收斂速度。要實現適用於WiMAX標準中類循環(quasi-cyclic,QC)式之LDPC碼的多模式解碼器,解碼器中的排列器(permutator)在不同模式下必須被有效率地共享,才能降低硬體的複雜度。M. Karkooti等人在2006年9月發表於Proc. IEEE Application-specific Systems,Architectures and Processors的「Configurable,high throughput,irregular LDPC decoder architecture tradeoff analysis and implementation」提出了一種運用桶式位移器(barrel shifter)的多模式解碼器架構。J. Tang等人在2006年9月發表於Proc. IEEE 2006 Application-specific Systems,Architectures and Processors的「Reconfigurable shuffle network design in LDPC decoder」、D. Oh等人在2008年發表於Proc. IEEE ISCAS的「Area efficient controller design of barrel shifters for reconfigurable LDPC decoders」、C. H. Liu等人在2008年發表於Proc. IEEE ISCAS的「Multi-mode message passing switch networks applied for QC-LDPC decoder」,以及J. Lin等人在2009年3月發表於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 54,no. 3的「Efficient shuffle network architecture and application for WiMAX LDPC decoders」,揭露了幾種多碼長-多速率之QC-LDPC碼解碼器中的排列器。然而,對於以共用記憶體為基礎的部份平行式解碼器而言,要實現高處理量之多模式解碼器的難度還是很高。
A. Darabiha等人在2008年8月於IEEE J. Solid-State Circuits,vol. 43,no. 8發表之「Power reduction techniques for LDPC decoders」所揭露的RS-LDPC碼解碼器為單模式解碼器。J. Sha等人在2009年9月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 56,no. 9發表之「Decoder design for RS-based LDPC codes」中所提出的位移結構性質,以及Z. Zhang等人在2009年6月於IEEE VLSI Circuits Symposium,Kyoto,Japan發表之「A 47 Gb/s LDPC decoder with improved low error rate performance」中所提出以多工器(multiplexer,MUX)為基礎的設計概念,都能為單模式部份平行式RS-LDPC解碼器降低其排列器的複雜度。然而,由於RS-LDPC碼並非類循環式的編碼,如何為多模式RS-LDPC解碼器設計有效率的排列器還是一大挑戰。
本發明提出一種適用於高速率RS-LDPC碼的多模式解碼器架構。此多模式解碼器可被應用在多種需要碼率彈性和校正能力的通訊產品中。本發明利用同位檢查矩陣(parity-check matrix)的結構特性設計解碼器中可配置的排列器(configurable permutators)。部份平行式的架構可被結合於該排列器,藉此降低實現多模式解碼器之硬體的複雜度。採用根據本發明的架構,不同模式下的硬體資源可被有效共用。根據本發明,變數節點可被分為多個群組,並且每一個群組被依序處理,以克服因檢查節點數量較多時造成的困難度。藉此,臨界路徑延遲可被縮短,且資料處理量能夠被提升。此外,為了進一步增加資料處理量,根據本發明之解碼器可採用混合MPD的方式來提升收斂速度,藉此減少達到特定之位元錯誤率所需要的疊代運算的次數。
根據本發明之一多模式解碼器已經利用90奈米的CMOS製程被實現並驗證。該解碼器適用於八種碼長範圍在1536位元至3968位元間的RS-LDPC碼,其碼率範圍在0.79和0.93之間。根據本發明之解碼器可提供每秒數十億位元的資料處理量。當該解碼器架構係應用於為單一種根據延伸式RS碼建立之LDPC碼解碼時,根據本發明之排列器可被進一步簡化。以碼長為2048之單模式解碼器為例,根據本發明之解碼器可達到每秒9.7十億位元的資料處理量,其操作頻率為303百萬赫茲,晶片面積為6.31mm2
。
根據本發明之一具體實施例為一種解碼器,適用於根據RS碼建立之LDPC碼。該解碼器包含一排列電路。該排列電路係用以提供根據一同位檢查矩陣中一子矩陣B(i 0
,j 0
)所定義之複數個可配置的連結(configurable connection)。該同位檢查矩陣係與一高氏場GF(p s
)相關。p
為一質數(prime),s
為一正整數,i 0
和j 0
分別為範圍在0到(p s
-1)間之一整數指標。一組輸入包含p s
個元素(element)。該排列電路包含兩個排列器及一固定選路(fixed routing)。該第一排列器係用以固定該組輸入中之第一個元素,並將該組輸入中之其他(p s
-1)個元素環式位移(cyclically shifting)j 0
個位置,以產生一組第一臨時元素。該固定選路係用以重新排列該組第一臨時元素,以產生一組第二臨時元素。該第二排列器係用以固定該組第二臨時元素中之第一個元素,並將該組第二臨時元素中之其他(p s
-1)個元素環式位移i 0
個位置。
關於本發明之優點與精神可以藉由以下的發明詳述及所附圖式得到進一步的瞭解。
以下將依序介紹:同位檢查矩陣的結構特性、根據本發明之適用於RS-LDPC碼的排列電路架構、針對RS-LDPC碼之混移式訊息傳遞解碼(shuffled message-passing decoding)及其相對應的位元錯誤率結果、根據本發明之解碼器架構、實現根據本發明之解碼器架構的結果,以及根據本發明之解碼器與其他先前技術的比較。
考慮一高氏場(Galois field) GF(p s
),p
為一質數(prime),s
為一正整數。假設α為GF(p s
)之一原始元素(primitive element)且正整數ρ
的範圍為。根據GF(p s
)可建立一組RS碼,其產生多項式(generator polynomial)如下:
g(X)
=(X-
α)(X-
α 2 )
...(X-
α ρ - 2 )
=g 0
+g 1 X
+g 2 X 2
+‧‧‧+X ρ - 2
,(1)
其中。多項式g(X)
的(ρ
-1)個係數皆不為零。若藉由刪除前(p s
-ρ-1)個資訊符號(information symbol)來縮短該RS碼,可得到具有兩個資訊符號的短式RS碼C b
,其產生多項式為:
此短式RS碼的長度為ρ個碼符(code symbol),且具有兩種不同的碼重(code weight),ρ
和ρ
-1。若分別以r1
和r2
表示G b
的第一列和第二列,r1
和r2
可用以建立C b
之一副碼(subcode),表示如下:
假設ρ
的碼重為r1
+r2
,則非零的副碼之碼重為ρ
。的碼重為ρ
-1,α i-2
並不在中,且可根據以下之方程式被用以建立之一共集(coset)
其中i
的範圍為。針對,在每一個集合中,C b
具有p s
個碼字(codeword)。
0,1=α0
,α1
,‧‧‧,形成了GF(p s
)中的所有元素。令z為二位元的p s
-元組(tuple),其成分對應於0,α0
,α1
,‧‧‧,。這些位置向量0,α0
,α1
,‧‧‧,分別被表示為z(0),z(α0
),z(α1
),‧‧‧,,其中z(0)=(1,0,0,‧‧‧,0),z(α0
)=(0,1,0,‧‧‧,0),z(α1
)=(0,0,1,‧‧‧,0),‧‧‧,。令c=(c1
,c2
,‧‧‧,c ρ
)為C b
中之一碼字,並以位置向量z(c j
)取代c中的每一個成分c j
( ρ
),可得到二位元、碼重-ρ
的ρp s
-元組:
Z
(c
)=(z
(c 1
),z
(c 1
),...,z
(c ρ
)),(4)
稱為c的符號位置向量(symbol location vector)。
對於,可為GF(p s
)形成一個p s
×ρ
的矩陣D i
,其中的p s
列為中p s
個不同的碼字。中的碼字c1, j
=0,1,‧‧‧,p s
-2可被寫成:
c 1,j
=αj
(r 1
+r 2
),(5)
中該等非零的碼字被表示為c1,1
。對i
=2,3,‧‧‧,p s
,中的碼字c i , j
,j
=0,1,‧‧‧,p s
-2可被寫成:
c i , j
=α i -2
r1
+α j
(r 1
+r 2
),(6)
其中中的c i , 1
可被寫成:
c i ,∞
=α i -2 r 1
。(7)
因此,矩陣D i
可被寫成:
對,藉由將矩陣D i
中的每一個碼字(列)c i,j
以其符號位置向量Z(c i
,1)取代,可形成一個二位元的p s
×ρp s
矩陣A i
。矩陣A i
中的所有欄之碼重為1,且所有列的碼重為ρ
。假設為γ
範圍等於的正整數,如以下所示之γp s
×ρp s
矩陣Hγ
的零空間(null space)為一RS-LDPC碼。
因此,Hγ
為一組(N,K)RS-LDPC碼的同位檢查矩陣(parity-check matrix,PCM),其中N等於ρp s
,且N和K分別為碼和訊息的長度。由於該同位檢查矩陣未必為滿秩(full rank),因此,其中等於γp s
的M為該同位檢查矩陣的列數。碼率(code rate)為K/N
。該RS-LDPC碼為一(γ,ρ
)-規律LDPC碼,矩陣Hγ
中的每一列都具有相同的列重(row weight)ρ
,且矩陣Hγ
中的每一欄都具有相同的欄重(column weight)γ
。矩陣Hγ
可被切割為γ
(ρ
)個區塊列(block row)或區塊欄(block column),每一個區塊列/欄包含p s
列/欄。此外,矩陣Hγ
也可被切割為γρ
個子矩陣(sub-matrix),每一個子矩陣的尺寸為p s
×p s
。每一個子矩陣是一個排列矩陣(permutation matrix),但未必為循環(circulant)矩陣。
考慮高氏場GF(22
)及其原始多項式(primitive polynomial)1
+X
+X 2
。此高氏場的四個元素為0、1=α0
、α以及α2
=1+α。令ρ
=3,此RS碼的產生多項式為g(X)
=α+X
,且此短式RS碼的產生矩陣(generator matrix)為:
因此,r1
=(α 1 0),r2
=(0 α 1),r1
+r2
=(α α 2
1)。根據式(8),可得到:
如圖一所示,
以相對應的位置向量取代中的每一個場元素之後,可得到如圖二所示之矩陣H 12×12
。0、1、α和α2的位置向量分別為z(0)=(1 0 0 0)、z(1)=(0 1 0 0)、z(α)=(0 0 1 0)和z(α2)=(0 0 0 1)。
矩陣H 12×12
的零空間(null space)為一(3,3)-規律LDPC碼,其長度為12位元,碼率為1/3。矩陣H 12×12
中的第i
個區塊列(block row)為A i
,i
=1,2,3;每一個區塊列包含四列。矩陣H 12×12
可被分割為九個子矩陣,每一個子矩陣的尺寸為4×4。既然並非矩陣H 12×12
所有的4×4子矩陣皆為循環矩陣(circulant matrix),該RS-LDPC碼不是類循環(quasi-cyclic,QC)碼。因此,傳統上針對QC-LDPC碼的排列器無法直接適用於此RS-LDPC碼。
如圖二所示,矩陣H 12×12
的這些4×4子矩陣可以分成三種類型。除了最右邊的子矩陣之外,A1
中的其他子矩陣屬於第一類子矩陣。如先前所述,A1
是由中之碼字的符號位置向量而來。由於A1
中的第一列為零碼字的符號位置向量,每一個第一類子矩陣的第一列都會是[1 0 0 0]。此外,由於中每一個非零碼字的碼重為ρ(在這個範例中等於3),除了第一列之外,中的第一個區塊列不會有零場元素。因此,每一個第一類子矩陣的第一欄會是[1 0 0 0] T
,其中的T
代表矩陣轉置。如果不看第一類子矩陣的第一列和第一欄,第一類子矩陣中其他的3×3部份是碼重為1的循環矩陣。對於j
=0,1來說,c1, j +1
=αc1, j
。針對第一類子矩陣,根據本發明的解碼器可採用一桶式位移器(barrel shifter)加上一固定式的電路連接(interconnection)做為其排列電路。
由於r1
和r1
+r2
的最後一個元素分別為0和1,中每一個區塊列的最後一欄都會是[0 1 α α2
] T
。因此,如圖二所示,所有的第二類子矩陣皆為4×4單位矩陣(identity matrix)。
由圖一和圖二可看出,圖一中對應於圖二所示之第三類子矩陣的每一個子矩陣可以被寫為:
其中的i 0
和j 0
為兩個根據相對應之共集首(coset leader)決定的整數。藉由以相對應的位置向量取代b(i 0
,j 0
)矩陣中的每一個元素,可得到一個第三類子矩陣B(i 0
,j 0
)。舉例而言,圖二中的第三類部分可以被寫為:
由第(11)式可看出,與該同位檢查矩陣之第(l
+1)區塊列相關的i 0
個值可藉由將第l
區塊列相關的i 0
值加1來產生。相似地,與該同位檢查矩陣之第(l
+1)區塊列相關的j 0
個值可藉由將第l
區塊列相關的j 0
值減1來產生。上述性質可被利用來減少儲存這些位移指標(shift index)的複雜度。
如圖三(A)所示,以B(0,0)為一基礎矩陣(base matrix),藉由將B(0,0)的第一列固定,再將B(0,0)中的其他欄向上環式位移(cyclically shifting)一(j 0
)個位置,即可得到B(0,1)。如果令矩陣E j 0
為一個固定某4×4單位矩陣之第一列後將其餘欄向上環式位移j 0
個位置的結果,可以得到下列關係式:
如圖三(B)所示,固定B(0,1)之第一欄後將其餘列向右環式位移兩(i 0
)個位置,可得到矩陣B(2,1)。如果令矩陣F i 0
為一個固定某4×4單位矩陣之第一欄後將其餘列向右環式位移i 0
個位置的結果,可以得到下列關係式:
根據第(12)式和第(13)式,可推論B(2,1)=E1
B(0,0)F2
。類似於針對第一類子矩陣的處理方式,E1
(F2
)的運算可以用一桶式位移器加上一固定電路連接來實現。圖四(A)顯示了本發明所提出的根據矩陣B(2,1)所定義之排列器架構,其中,根據基礎矩陣B(0,0)所定義之排列係以具有固定連結的選路(routing)來實現。同樣地,矩陣B(i 0
,j 0
)=E j 0
B(0,0)F i 0
;根據矩陣B(i 0
,j 0
)所定義之排列可被實現為如圖四(B)所示之架構。如圖四(B)所示,根據矩陣B(i 0
,j 0
)所定義的排列器包含一個欄桶式位移器42、一固定連結的選路44以及一個列桶式位移器46。
根據本發明之多模式解碼器可用以支援多種利用高氏場GF(26
)及其原始多項式(primitive polynomial)1
+X
+X 6
建立的RS-LDPC碼。在接下來的說明中,將利用(6,32)-規律RS-LDPC碼做為說明範例。該短式RS碼的產生矩陣(generator matrix)為:
接著,可得到矩陣,該矩陣中的每一列為該短式RS碼的一個碼字,並且該矩陣中的第i
個區塊列包含中的所有碼字。在以相對應的位置向量取代矩陣中的每個場元素之後,可得到此(6,32)-規律RS-LDPC碼的同位檢查矩陣H 384×2048
。圖五所示即為矩陣H 384×2048
,其中的每一個點代表矩陣中的1。此矩陣可被分割為γ
‧ρ
個(也就是6‧32=192個)子矩陣,每一個子矩陣的大小為p s
×p s
(=64×64)。類似於圖二的情況,這192個子矩陣可以被分為三類。每一個區塊列包含64列。第一區塊列中的前31個子矩陣屬於第一類子矩陣。如果不看第一類子矩陣的第一列和第一欄,第一類子矩陣中其他的63×63部份是碼重為1的循環矩陣。針對第一類子矩陣,根據本發明的解碼器可採用一桶式位移器加上一固定式的電路連接做為其排列電路。這192個子矩陣中最後處於一個區塊欄的γ
個(也就是6個)64×64子矩陣屬於第二類子矩陣,並且都是單位矩陣(identity matrix)。其他的155個子矩陣即屬於第三類子矩陣。第三類子矩陣可以根據一個大小為64×64的基礎矩陣B(0,0)來建立。基礎矩陣B(0,0)的第一列為1的位置向量,第i
列為1+α i -1
的位置向量,i
=1,2,‧‧‧,63。第三類子矩陣B(i 0
,j 0
)的產生步驟如下:首先固定基礎矩陣B(0,0)中的第一列,接著將B(0,0)中的其他欄向上環式位移j 0
個位置,以產生一臨時矩陣(也可視為一組第一臨時元素);接著,先固定該臨時矩陣的第一欄,再將臨時矩陣中的其他列向右環式位移i 0
個位置。上述針對第三類子矩陣B(i 0
,j 0
)的排列步驟可以透過圖四(B)所示的電路架構來實現,其中的固定選路(fixed routing)係用以實現根據基礎矩陣B(0,0)定義的排列。
由於H 384×2048
的秩數(rank)為325,此(6,32)-規律RS-LDPC碼的同位檢查矩陣具有碼率。除此之外,根據本發明的解碼器還被設計為可適用於其他七種碼率在0.79到0.93之間且長度在1536位元和3968位元之間的RS-LDPC碼。該等RS-LDPC碼相對應的參數列示於表一。每一種碼的同位檢查矩陣可各自被分割為γ
‧ρ
個子矩陣,每個子矩陣的大小為p s
×p s
(例如64×64)。類似於上述H 384×2048
矩陣,該等同位檢查矩陣中的子矩陣都可被分為第一類、第二類和第三類。由於這些RS-LDPC碼都是根據高氏場GF(26
)所建立,只要適當地改變桶式位移器的設定參數,這些不同的碼便可以共用相同的排列電路。
RS-LDPC亦可根據高氏場GF(p s
)及其對應之延伸式(p s
,2)RS碼來建立。依照段落II.A揭露的概念,可得到矩陣D i
,其中,以及矩陣H γ
,r1=(1 1‧‧‧1 1 0),r1
+r2
=(1‧‧‧α2
α 1)。矩陣D i
和矩陣H γ
的大小分別為p s
×p s
和γp s
×p 2s
。藉由從矩陣H γ
中連續或不連續地選擇ρ個區塊欄,可得到長度為ρp s
之RS-LDPC碼的一個同位檢查矩陣。
舉例而言,IEEE 802.3an標準所採用的(2048,1723) RS-LDPC碼係根據(64,2)延伸式RS碼所建立,並且屬於不連續地選擇區塊欄。這種RS-LDPC碼的同位檢查矩陣也可以被分割為γ
‧ρ
個子矩陣,每個子矩陣的大小為p s
×p s
。如同根據短式RS碼建立的RS-LDPC碼,這些子矩陣都可被分為第一類、第二類和第三類。段落II.B所揭露的彈性化排列電路架構亦可被應用於根據延伸式RS碼建立的RS-LDPC碼。
舉例而言,考慮高氏場GF(22
)及原始多項式1
+X
+X 2
。若選擇γ
=3,將使r1
=(1 1 1 0),且r1
+r2
=(1 α2
α 1)。根據第(8)式,可得到:
選擇矩陣中的第一欄、第三欄和第四欄,可得到一個如圖六所示被表示為的矩陣。以相對應之位置向量取代矩陣中的每個場元素之後,可得到矩陣H 12×12
。矩陣H 12×12
的第三類部份可被寫為:
由第(14)式可看出,該同位檢查矩陣中屬於同一區塊列之第三類子矩陣有相同的列位移參數i 0
。由J. Sha等人在2009年9月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 56,no. 9發表的「Decoder design for RS-based LDPC codes」中,可看出除了第一列和最後一欄,矩陣D i
的其他部分是大小為(p s
-1)×(p s
-1)的循環矩陣,。於此先前技術中,這種位移性質被應用在採用連續地選擇區塊欄且根據延伸式RS碼建立的RS-LDPC碼,希望藉此降低排列電路的複雜度。
然而,對於根據短式RS碼建立的RS-LDPC碼,此性質並不存在。舉例來說,對於段落II.B提及的RS-LDPC碼,屏除其矩陣D2
或D3
之第一列和最後一欄所形成的矩陣即不具備上述循環性質。如圖六之矩陣所示,對於採用不連續地選擇區塊欄且根據延伸式RS碼建立的RS-LDPC碼,上述位移性質亦不存在。
LDPC碼的同位檢查矩陣可利用二分圖(bipartite graph)或丹拿圖(Tanner graph)來表示。如果H中的(i
,j
)元素出現一個1,在丹拿圖中,第i
個檢查節點和第j
個變數節點之間便有一邊緣連結(edge connecting)。訊息傳遞解碼(message-passing decoding,MPD)可針對該丹拿圖來執行。和-積演算法(sum-product algorithm,SPA)與最小和演算法(min-sum algorithm,MSA)都可以被用來實現上述檢查節點和變數節點之間的運算。J. Zhang等人在2005年2月於IEEE Trans. Commun,vol. 53,no. 6發表的「Shuffled iterative decoding」中提出了利用和-積演算法的逐位元(bit-wise)運算且以群組為基礎混合式訊息傳遞解碼(bit-wise and group-based shuffled MPD)。F. Guilloud等人在2007年11月於IEEE Trans. Commun.,vol. 55,no. 11發表的「Generic description and synthesis of LDPC decoders」揭露了一種以SPA為基礎的混合式訊息傳遞解碼硬體架構。Z. Cui等人在2008年12月於IEEE Asia Pacific Conf. on Circuits and Syst.發表的「Efficient decoder design for high-throughput LDPC decoding」揭露了一種運用修正式MSA的混合式訊息傳遞解碼方法,希望藉此降低運算複雜度。接下來,將介紹本發明所提出之以群組為基礎的混合式訊息傳遞解碼,其中的變數節點(等同於同位檢查矩陣的欄)被分割為G個群組,每個群組的大小為NG
個變數節點(亦即NG
欄)。
針對每個變數節點j
,在第k
次疊代運算(iteration)中所產生對應於檢查節點i
的變數-檢查(variable-to-check,V2C)訊息被表示為Q ji
[k
]。針對每個檢查節點i
,在第k
次疊代運算中所產生對應於變數節點j
的檢查-變數(check-to-variable,C2V)訊息被表示為R ij
[k
]。在第k
次疊代運算中,針對群組g所進行的檢查節點/變數節點運算如下:
(1)針對群組g所進行的變數節點運算:對於群組g中的每個變數節點j
,也就是範圍內的j
,根據以下方程式計算對應於其每個檢查節點鄰居i
的Q ji
[k
]:
其中λ j
為變數節點j
對應的通道可信度(channel reliability)而I C
[j
]表示該等連接至變數節點j
的檢查節點。
(2)針對群組g所進行的檢查節點運算:對於群組g中與變數節點j
有關的檢查節點i
,也就範圍在<(g+1)‧NG
內的i
,根據以下方程式計算R ij
[k
]:
其中δ為一偏移常數(offset constant),I R
[i
]表示該等連接至檢查節點i
的變數節點(亦即位元節點)。
在每一次的疊代運算中,針對群組0、群組1、...、群組G-1的檢查節點運算和變數節點運算係依序執行。圖七係繪示對應於該(6,32)-規律LDPC碼的運算順序,其中每個群組包含一個區塊欄中的欄,也就是NG
個欄(64欄)。在最後一次疊代運算(也就是k
=N it
的情況),針對每個變數節點j
的硬性決定(hard decision)係根據該變數節點j
的後驗機率(posterior probability)之正負號來決定,該正負號Λ j
[N it
]係表示如下:
由第(17)式可看出為了產生一個值需要進行大量的比較。因此,針對如表一所示之高碼率LDPC碼進行檢查節點運算的複雜度很高。為了降低此比較過程的複雜度,在根據本發明之解碼器中可針對第i列儲存一排列後的集合|Q ji
|,j ,表示如下:,其中
此外,相對應的指標j k
也會被儲存,k
=0,1,...,|I R
[i
]|-1。需注意的是,|Q ji
|的值係於本次或前一次疊代運算中產生。運用上述排列後的集合,更新的步驟可被簡化許多。更明確地說,在更新時只需要讀取和j 0
。如果j
=j 0
,則。如果j
≠j 0
,則。
為了正確計算S i j
,每個Q ji
的正負號也需要被儲存。此外,可儲存
以簡化計算S ij
的複雜度。產生S ij
和之後,即可根據第(16)式計算R ij
。藉此,便不需要儲存該等R ij
值。
根據本發明,若希望縮減儲存空間以及比較過程的複雜度,可僅儲存該排列後集合中的前ω個值,亦即:、。此做法的原因在於其他較大的|Q ji
|對於的影響很小。該組精簡後的排列後集合被表示為Φ i,ω
,係以一大常數L M
初始化。相對應的指標集合{j 0 ,j 1 ,
‧‧‧,j ω - 1
}被表示為J i, ω
。一開始,J j,ω
=φ,其中φ為一空集合。詳細的解碼演算法被列示於圖十四。
在第一次的疊代運算後,Φ i , ω
中的內容為對應於第i
列的ω
個最粗糙通道值之絕對值。接著,節點處理器可在選擇C2V訊息的階段(簡稱為CN-R階段)中計算該群組的R ij
值。其後,屬於該群組的Q ji
值係以變數節點運算產生。最後,Φ i , ω
中的內容及其所對應的指標集合J i , ω
於節點處理器中的排列(sorting)階段(簡稱為CN-S階段)被更新。第(16)式、第(17)式和第(18)式表示的運算係於上述CN-R階段和CN-S階段中被執行。
由段落III.A的說明可看出,ω
值與排列順序(或比較)的複雜度、存取記憶體的次數,以及所需的記憶體大小皆成反比。從這個角度來看,ω
愈小愈好。舉例而言,Z. Cui等人在2008年12月於IEEE Asia Pacific Conf. on Circuits and Syst.發表的「Efficient decoder design for high-throughput LDPC decoding」所採用的ω
為2。然而,由圖八可看出,在混合式訊息傳遞解碼中採用ω=2所產生的位元錯誤率結果顯然較採用ω=3的情況差。以下說明此差異存在的原因。由第(17)式可看出,係與|I R
[i
]|變數-檢查(V2C)值相關。此外,在依序處理各群組的解碼過程中,Φ i , ω
中的內容持續被更新。因此,即使在同一次的疊代運算中,Φ i , ω
中的內容都未必保持不變。如果ω=2,雖然在採用最小和演算法(MSA)的雙相位訊息傳遞(two-phase message passing,TPMP)解碼程序中產生時只需要Φ i , ω
中的最小的前兩個值,也就是和,這兩個最小值也可能在同一次的疊代運算中發生變化。換句話說,在計算和這兩個值時所根據的和可能是不同的,其中變數節點p
和q
屬於兩個不同的群組。這是根據本發明之混合式訊息傳遞解碼和TPMP的重要差異。
以下藉由實例來說明採用不同ω值會造成的C2V值差異。考慮連接至變數節點1、2、3的檢查節點i
。假設如圖九(A)所示,在第(k
-1
)次疊代運算的結尾,Φ i , 3
={0.1,0.2,0.3}且J i ,3
={1,2,3}。此外,假設群組1只和變數節點1相關,群組2只和變數節點2相關。根據段落III.A中提出的解碼演算法,針對群組1,在第k
次疊代運算可於CN-R階段得到R i,1
[k
-1
]=0.2。假設針對變數節點1在變數節點運算中得到的V2C訊息值為0.4,也就是|Q 1,i
[k
]|=0.4。在檢查節點運算階段,Φ i,3
和J i,3
會分別變為{0.2,0.3,0.4}和{2,3,1}。針對群組2,在第k
次疊代運算可於CN-R階段得到R i,2
[k
-1
]=0.3。上述程序係繪示於圖九(A)。ω
=2的情況係繪示於圖九(B)。在ω
=2的情況下,R i,2
[k
-1
]=0.4,不同於ω
=3時得到的結果。由此可知,採用ω=2的位元錯誤率係不同於採用ω=3的位元錯誤率。
由圖八亦可看出,採用ω=3時所形成的位元錯誤率幾乎相同於採用ω=32的情況。因此,綜合降低運算複雜度及維持較低位元錯誤率這兩個考量,根據本發明之解碼程序可採用ω
=3,亦可將ω
的範圍限制在3到(|I R
[i
]|-1)間。圖八亦顯示了同時採用TPMP及MSA的位元錯誤率結果。根據本發明之採用ω
=3的混合式訊息傳遞解碼的收斂速度快於採用TPMP的情況。表一也包含了根據本發明之混合式訊息傳遞解碼針對八種RS-LDPC碼所產生的位元錯誤率結果,其設定為NG
=64,N it
=8,ω=3。
這個段落將介紹包含根據本發明之排列電路所建立的適用於高碼率RS-LPDC碼之垂直排程(vertically-scheduled)解碼器架構。多模式解碼器和單模式解碼器都會被介紹。該多模式解碼器可支援例如表一所示之根據短式RS建立的多種RS-LDPC碼。如先前所述,IEEE 802.3an標準所採用的RS-LDPC碼係根據延伸式RS碼所建立。根據本發明之單模式解碼器即可適用於此規格的RS-LDPC碼。
圖十係繪示根據本發明之一實施例中的解碼器架構,該解碼器適用於根據高氏場GF(26
)建立且γ
=6之一(γ,ρ)-規律RS-LDPC碼,NG
=64。段落III.A提出之解碼演算法中的CN-R階段、變數節點運算階段,以及CN-S階段係分別由C2V-訊息計算器12、變數節點處理器(variable node processor,VNP) 14,以及V2C-訊息排列器16執行。γ
個排列器(Π0
,Π1
,...,Π γ - 1
)18係設置於C2V-訊息計算器12和變數節點處理器14之間。相對地,γ
個反向排列器() 20係設置於變數節點處理器14和V2C-訊息排列器16之間。各個排列器18及反向排列器20的輸入分別包含個元素。C2V-訊息計算器12包含γ
個模組,每個模組負責計算對應於RS-LDPC碼之同位檢查矩陣中一區塊列的C2V訊息R ij
。這γ
個模組係平行運作。每個模組後面接著一個大小為的排列器18。變數節點處理器14包含NG
個變數節點處理單元,能平行處理NG
欄(亦即NG
個變數節點)。在反向排列之後,集合Φi, ω
及其相對應的指標集合J i , ω
會根據最新產生的∣Q ji
∣值被更新。V2C-訊息排列器16中的排列暫存器及指標暫存器係分別用以儲存集合Φ i ,ω
及指標集合J i,ω
的內容。在V2C-訊息排列器16中,一正負號位元記憶體和複數個總正負號暫存器(未顯示於圖中)係分別用以儲存Q ji
值的正負號和S T,i
值的正負號。
圖十中簡寫為StoT的方塊代表正負大小至二之補數轉換器(sign-magnitude to two’s complement transformer);簡寫為TtoS的方塊則代表二之補數至正負大小轉換器(two’s complement to sign-magnitude transformer)。
在圖十所示之解碼器的平行解碼量為64,也就是NG
等於64的情況,有64個變數節點處理單元在平行運作。如果希望將解碼時的資料處理量加倍,則可將變數節點處理單元的數量提昇為128個,令變數節點處理器14能同時處理128欄的資料(等同於兩個區塊欄的資料),亦即將NG
調整為128。在這樣的情況下,排列器18及反向排列器20的數量也要加倍,C2V-訊息計算器12和V2C-訊息排列器16中的模組數量同樣要加倍。在根據本發明的解碼器架構中,資料處理量(TP)可根據下列方程式來計算:
其中N=NG
‧G,且f clk
表示其操作頻率。根據第(20)式,資料處理量(TP)的大小係無關於RS-LDPC碼的碼長。此外,只要增加NG
或是降低N it
,就可以提升資料處理量(TP)。若要藉由縮短臨界路徑延遲(critical-path delay)來進一步提升資料處理量(TP),該解碼器可採用管道式(pipeline)的架構。
只要採用彈性的、可配置的(configurable)排列器Π i
和反向排列器,圖十中所繪示的解碼器架構亦適用於多模式解碼器,i
=0,1,‧‧‧,5。如同段落Π中所描述的,(γ
,ρ
)-規律RS-LDPC碼之同位檢查矩陣中的γρ
個子矩陣可被分為三類。排列器Π0
和反向排列器可用以執行根據第一類和第二類子矩陣定義的排列方式。實務上,可利用一個多階桶式位移器加上一個固定連接來實現Π0
或。其他i
=1,2,‧‧‧,5的五個排列器Π i
和五個反向排列器可用以執行根據第二類和第三類子矩陣定義的排列方式。利用如圖四(B)所示之架構,根據本發明的解碼器可採用兩個多階桶式位移器來實現i
=1,2,‧‧‧,5的Π i
或。於此實施例中,可利用log2 p s
=6個位元的控制指令來控制各個桶式位移器。也就是說,上述實施方式總共只需要22個桶式位移器,以及22‧6=132個位元的控制指令。
汴尼茲網路(Benes network)是一種被廣泛採用以實現任意排列的架構。根據本發明之排列電路可以和汴尼茲網路做一比較。典型的汴尼茲網路包含p s
/2×(2log2 p s
-1)個開關,每一個開關的尺寸為2×2並各自需要1位元的控制信號。因此,汴尼茲網路總共需要p s
/2×(2log2 p s
-1)位元的控制信號。若以字長為5位元的多模式解碼器而言,採用汴尼茲網路架構的排列電路總共需要420,000個邏輯閘和4224個控制位元。相較之下,根據本發明之排列電路只需要150,000個邏輯閘和132個控制位元。根據本發明之排列電路顯然是個相當適用於多模式解碼器的良好設計。
以下將說明除了(6,32)-規律、碼長-2048之RS-LDPC碼,要實現能夠支援表一中的其他七種RS-LDPC碼的解碼器需要哪些額外的設計。首先,解碼器中的儲存空間必須被增加,以符合ρ
=62且γ
=6所對應之(3968,3643)碼的需求。由於這八種RS-LDPC碼是基於相同的高氏場GF(26
)所建立,只要為桶式位移器設定適當的位移量,前述排列電路即適用於這八種不同的RS-LDPC碼。因此,針對不同的RS-LDPC碼時需安排不同的排列器位移設定。針對γ=5的情況,變數節點單元和檢查節點單元的某些電路會被忽略,因此也需要設置一些多工器。表二中整理了支援單一碼和支援八種碼(NG
=64)的複雜度比較。由此可看出在多種模式下,硬體資源可以被有效共享。
如同段落II.D所述,IEEE 802.3an標準所採用的(2048,1723) RS-LDPC碼係根據(64,2)延伸式RS碼所建立,並且屬於不連續地選擇區塊欄。以下將說明如何以圖十之解碼器架構實現針對IEEE 802.3an標準(NG
=64)的單模式解碼器。對於這種RS-LDPC碼來說,只要屬於同一個區塊列,第三類子矩陣的列位移係數i 0
都是相同的。因此,根據基礎矩陣B(0,0)和矩陣F i0
定義的排列可以被整合在一起,並以包含固定電路連結的選路(routing)來實現。也就是說,圖十中的每一個排列器Π i
和反向排列器可各自以一個桶式位移器和複數個固定連結來實現。因此,此單模式解碼器的排列電路只需要12個桶式位移器和12‧6=72位元的控制指令。不同排列器中的固定連結之連接方式通常是不同的。需注意的是,對於根據短式RS碼建立的RS-LDPC碼來說,屬於同一個區塊列之第三類子矩陣的列位移係數i 0
都不相同,因此即使只支援單一種編碼,解碼器中根據矩陣F i 0
定義的排列仍不能被設計為固定的,可利用桶式位移器來實現。
Z. Zhang等人在2009年6月於IEEE VLSI Circuits Symposium發表之「A 47Gb/s LDPC decoder with improved low error rate performance」所揭露的以多工器為基礎的排列器設計相當適用於平行排程(horizontally-scheduled)解碼器。以下將討論將以多工器為基礎的設計應用於如圖十所示之垂直排程解碼器的狀況。針對NG
=64、以多工器為基礎的解碼器,可分別採用64個1到32反多工器(de-multiplexer)來實現排列器Π i
和反向排列器,i
=0,1,‧‧‧,5。每個排列器Π i
和反向排列器各自需要64.5=320位元的控制指令,表三列示了根據本發明之排列器與以多工器為基礎的設計之複雜度比較。NG
=64和NG
=256兩種狀況都被列入考慮。由此可看出,針對圖十所示之垂直排程單模式解碼器,根據本發明之排列器較具優勢。
J. Sha等人在2009年9月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 56,no. 9發表之「Decoder design for RS-based LDPC codes」(以下簡稱為Sha
)提出了一種以TPMP為基礎適用於(2048,1723) RS-LDPC碼的垂直排程解碼器。即使同樣採用垂直排程,本發明所提出的混合式疊代解碼器之收斂速度仍快於Sha
中提出的以TPMP為基礎之解碼器。Sha
中所探討的RS-LDPC碼係根據(64,2)延伸式RS碼所建立,並且屬於連續地選擇區塊欄。Sha
係利用這種RS-LDPC碼本身潛在的循環位移特性來降低其排列電路的複雜度。因此,其解碼器可在一定的資料處理量下仍達到相當的低複雜度。為了達成IEEE 802.3an標準規定的資料處理量,Sha
中採用p
-平行式(p
>1)的解碼器架構。然而,IEEE 802.3an標準所採用的RS-LDPC碼屬於不連續地選擇區塊欄,因此不具有Sha
所利用的循環位移特性。Sha
亦提及其p
-平行式解碼器架構並不適用於屬於連續地選擇區塊欄之RS-LDPC碼。相較之下,本發明所提出的解碼器不存在這個問題。
在本發明所提出的解碼器和Sha
所提出的解碼器中,圖十中的通道值記憶庫(memory bank) 22被用以儲存通道值,這些值的頻寬要求不是太高。此外,這兩種解碼器的變數節點運算單元類似。在本發明所提出的解碼器中,集合Φ i , ω
及其相對應的指標集合J i,ω
係儲存於暫存器中。在Sha
所提出的解碼器中,目前這一次和前一次疊代運算中產生的C2V訊息分別被壓縮並儲存在不同的列暫存器中。
在分層式訊息傳遞解碼(layered message-passing decoding,LMPD)中,檢查節點(等同於同位檢查矩陣的列)被分為多層,每一層被依序處理;為了增加收斂速度,各層之間的訊息會被交換。LMPD適用水平排程。Z. Cui等人在2009年4月於IEEE Trans. VLSI Syst.,vol. 17,no. 4提出之「High-throughput layered LDPC decoding architecture」揭露了一種高資料處理量、以LMPD為基礎的解碼器,適用於低檢查節點量、碼率-1/2 QC-LDPC碼。該解碼器之排列器的輸入為後驗機率;本發明所提出的解碼器之排列器的輸入為C2V訊息。根據第(19)式,用以表示後驗機率所需要的位元數大於表示C2V訊息所需要的位元數。因此,採用根據本發明之垂直排程架構來實現多模式解碼器可以減少排列器需處理的字長。若運用本發明提出的架構來實現適用於(2048,1723)碼的單模式解碼器,如段落IV.C所述,第三類子矩陣所定義的排列可僅以一個桶式位移器和複數個固定連結來實現。若採用水平排程解碼器,每一個排列器負責處理根據同一區塊欄中大小為64×64之子矩陣定義的排列。由於在這種情況下,該等子矩陣的列位移指標i 0
和欄位移指標j 0
都不相同,於以LMPD為基礎的水平排程解碼器中,第三類子矩陣所定義的排列可利用兩個桶式位移器和複數個固定連結來實現。基於上述考量,根據本發明之實施例中的解碼器係採用垂直排程混合式訊息交換解碼。
根據本發明的概念已利用UMC 90-奈米CMOS製程(包含九層金屬層)被實際實現為兩個多模式解碼器,適用於表一列出的八種RS-LDPC碼,以下分別稱為設計A和設計B。這兩種解碼器的NG
分別為128和64;其中之通道值、C2V訊息以及V2C訊息的量化後位元數(包含一個正負號位元)都是5。
圖十一顯示了根據本發明之解碼器採用NG
=128且配合(6,32)-規律RS-LDPC碼時的位元錯誤率,其中同時包含固定點運算(fixed-point)和浮點運算(floating-point)的結果。在固定點運算的部份,考慮管道等待時間(pipeline latency)和不考慮管道等待時間的情況都被納入了。如先前所述,相較於TPMP,混合式訊息傳遞解碼可提供較快的收斂速度。在混合式訊息傳遞解碼中,在各次疊代運算中產生的V2C訊息可被用做計算該次疊代運算之C2V訊息的基礎。如第(17)式所示,在處理群組g時,|Q j ' i
[k
]|值可用以計算,j
’<(g+1) NG
。然而,在硬體實現上,由於管道等待時間的存在,某些當次的V2C訊息(|Q j ' i
[k
]|)來不及產生,只能根據前一次的V2C訊息(|Q j ' i
[k
-1]|)計算C2V訊息()。由此可之,管道等待時間會使收斂速度減緩。由圖十一可看出,考慮管道等待時間時的結果(曲線C)略差於不考慮管道等待時間時的結果(曲線B);曲線B和曲線C的疊代次數相同。此外,導因於管道等待時間的損失小於0.1dB,主要的損失來自於量化(quantization)。在NG
=64的情況也的到相同的結論。
由於檢查節點單元和變數節點單元之間的接線很複雜,完全平行式單模式解碼器只能達到50%的利用率。如果為多模式解碼器採用完全平行式架構,接線間的複雜度會更高。在根據本發明之部分平行多模式架構中,無論在哪一種模式或正在處理哪一個欄/群組,通道值都是由記憶庫讀取並係傳送至變數節點處理器。如圖十二顯示的佈線圖(layout plot)所示,記憶庫和變數節點處理器被安置在中央區域。因此,這兩者之間的接線可以被簡化。檢查節點單元和變數節點單元之間的接線係經由排列器和反向排列器之緩衝。根據本發明之設計A的核心晶片面積為2.1×2.1mm2
,且其核心利用率為70%,臨界路徑延遲為3.3ns。當N it
=8且f clk
=303MHz時,設計A的資料處理量為4.85Gbit/s。表四的內容為其實現結果之匯整,其中亦包含設計A和設計B的初步耗電量估計,不同模式下的耗電量差異並不大。相較於設計A,設計B的利用率較高、複雜度較低、耗電量較低,但資料處理量也較低。
A. Darabiha等人在2008年8月於IEEE J. Solid-State Circuits,vol. 43,no. 8中發表之「Power reduction techniques for LDPC decoders」(以下簡稱Darabiha-1
)提出一種完全平行式位元串流MPD架構,希望降低LDPC解碼器的接線複雜度。A. Darabiha等人在2008年1月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 55中發表之「Block-interlaced LDPC decoders with reduced interconnect complexity」(以下簡稱Darabiha
)提出的設計係利用硬性決定演算法來達成較高的資料處理量,其中採用單位元量化。T. Mohsenin等人在2009年5月於Proc. IEEE ISCAS發表之「Multi-split-row threshold decoding implementations for LDPC codes」(以下簡稱Mohsenin
)提出將同位檢查矩陣分割為多個子矩陣的設計及降低位元錯誤率的方法。L. Liu等人在2008年12月於IEEE Trans. Circuits Syst. I,Reg. Papers,vol. 55,no. 11發表之「Sliced message passing:high throughput overlapped decoding of high-rate low-density parity-check codes」(以下簡稱Liu
)提出一種以暫存器為基礎的部份平行式解碼架構,稱為切片訊息傳遞(sliced message passing,SMP)。Z. Zhang等人在2009年六月於IEEE VLSI Circuits Symposium發表之「A 47Gb/s LDPC decoder with improved low error rate performance」(以下簡稱Zhang
)提出一種利用提前結束(early termination)概念的高資料量解碼器。Sha
提出了一種適用於根據延伸式RS碼所建立且屬於連續選擇區塊欄之LDPC碼的低複雜度解碼器。
表五的內容為根據本發明之設計A與上述其他解碼器的比較。由於Darabiha
係採用硬性決定解碼演算法,而Sha
未揭露其晶片面積和功率消耗,因此這兩者並未被列入表五中比較。Darabiha-1
提出了針對(660,484) LDPC碼的測量結果,其中對於(2048,1723) LDPC碼僅包含合成(synthesis)結果。Zhang
提出的解碼器係以65奈米製程製作;利用提前結束(early termination)的概念,該解碼器可提供的資料處理量為47.7Gb/s,其電壓為1.2伏特,f clk
=700MHz,並且具有相當高的信號雜訊比;佔據了總面積13.7%的後處理器可改良該解碼器的錯誤底限(error floor)。雖然Zhang
有提出位元錯誤率結果,但並未指明評估位元錯誤率時執行疊待運算的次數。由圖八可看出,根據本發明的混合式訊息傳遞解碼器實施例係採用ω=3,其疊代運算次數(N it
)為8時的位元錯誤率幾乎等於採用TPMP的先前技術之疊代運算次數為12的結果。根據Zhang
中的解碼等待時間,其解碼器於疊代運算次數為12時的資料處理量可被計算出來,如表五所示。G. Masera等人在2007年6月於IEEE Trans. Circuits. Syst. II,Exp. Briefs,vol. 54,no. 6發表之「Implementation of a flexible LDPC decoder」介紹了一個資料處理量-面積比例(throughput-to-area ratio,TAR)參數,其計算方式為資料處理量除以等同面積。舉例而言,以65奈米製程製作的解碼器之面積會被轉換為在90奈米製程中的等同面積,標準化係數(normalization factor)為2。各解碼器採用的演算法不同,所以達到相同之位元錯誤率所需要的疊代運算的次數亦不同。因此,應基於相同的位元錯誤率標準來衡量疊代運算的次數及相對應的資料處理量。
相較於Darabiha
-1
及Liu
,根據本發明的解碼器具有更高的TAR,並與Zhang
中提出的解碼器之TAR相當。相較於Darabiha
-1
中提出的完全平行、分列-16門檻解碼器,根據本發明的解碼器之TAR較低。由於Darabiha-1
中未提出固定點運算的位元錯誤率結果,以下比較係以其中的浮點運算結果為準。相較於採用TPMP及修正式MSA,分列-16門檻解碼器的錯誤表現在位元錯誤率(BER)為10-6
時為0.21。由圖八可看出,相較於採用TPMP及修正式MSA(曲線D),採用混合式訊息傳遞解碼且ω=3(曲線B),於增益等於0.08dB時之位元錯誤率(BER)為10-6
。因此,根據本發明之解碼器可提供較門檻解碼器為佳的錯誤表現。此外,相較於本段中提到的解碼器,根據本發明之解碼器只要執行較少次的疊代運算就可以達到最佳的錯誤表現。再者,相較於那些提供高資料處理量的先前技術,根據本發明之解碼器具有能提供多模式的優勢。
針對與表五中的單模式解碼器之比較,根據本發明的概念被實現為一個單模式解碼器,適用於根據延伸式RS碼建立之(2048,1723) RS-LDPC碼,且屬於不連續地選擇區塊欄。為了符合資料處理量的需求,其解碼平行度(parallelism)被設計為NG
=256。此單模式解碼器可達到9.7Gbit/s的資料處理量,頻率為303MHz且N it
=8時的功率消耗為926.7mW。此外,此解碼器的晶片面積為6.31mm2
,TAR為1537,其核心利用率為68%。基於以下兩個理由,相較於NG
=128的設計A多模式解碼器,該單模式解碼器的面積並未明顯增加。首先,該單模式解碼器係採用4位元量化,該多模式解碼器則係採用5位元量化。其次,該單模式解碼器中的排列器和反排列器係以如段落IV.C所述之單一桶式位移器來實現,該多模式解碼器中的排列器和反排列器則是以兩個桶式位移器來實現。相較於採用5位元量化,採用4位元量化的解碼器之錯誤表現在位元錯誤率(BER)為10-6
時為0.1dB。相較於表五中的單模式解碼器,根據本發明的單模式解碼器的面積較小,因此更適合應用在IEEE 802.3an標準的產品中。
先前有許多針對無線通訊規格(例如DVB-S2、IEEE 802.16e、IEEE 802.11n)設計的多模式解碼器。表六顯示了T. Brack等人在2007年4月於Proc. Des.,Autom. Test Eur.發表的「Low complexity LDPC code decoders for next generation standards」(簡稱Brack
)所提出針對該等標準中的LDPC碼之合成結果。這些多模式解碼器係採用以記憶體為基礎的部份平行式架構。相較於這些解碼器,根據本發明之多模式解碼器(設計B)所提供的模式較少但資料處理量和TAR都較高。根據本發明之多模式解碼器主要係針對高碼率的編碼所設計,可被應用在具有低雜訊通道且希望在有限頻寬下能盡量增加訊息量的情況,例如有線通訊和儲存系統。根據本發明之多模式解碼器尤其適用於希望碼率可調且提供錯誤校正的情況。
針對如無線通道等信號雜訊比較低的通道,需要採用碼率較低的編碼。實務上,如段落IV.B所述,根據本發明的解碼器可以支援根據高氏場GF(26
)且γ
等於5或6所建立的RS-LDPC碼。針對上述情況,可建立三種(γ
,ρ
)分別為(6,11)、(6,14)和(6,20)的RS-LDPC碼,其碼率分別為0.57、0.65和0.75,接近於WiMAX標準所規定的碼率0.5、0.67和0.75。
圖十三顯示了不同的資料處理量需求與模式數量需求所適合的解碼器架構。以暫存器為基礎的完全平行架構能提供高資料處理量,但無法達成多模式功能。以記憶體為基礎的部份平行架構能提供高達八種以上的模式,但其資料處理量僅大致為1Gbit/s。根據本發明之部分平行架構結合了記憶體和暫存器,可兼顧高資料處理量(>2Gbit/s)與多模式數量的需求。
本發明提出了一種適用於多模式及單模式RS-LDPC解碼器的排列器設計。為了減少達到特定之位元錯誤率所需要的疊代運算次數,以及縮短臨界路徑延遲,根據本發明之解碼器係採用部分平行式架構與混合式訊息傳遞解碼。發明人利用90奈米製程製作了兩個多模式解碼器和一個單模式(2048,1723)解碼器,其佈線後模擬(post-layout simulation)結果顯示,該等多模式解碼器的資料處理量能達到每秒數千兆位元(Gbit)。此外,晶片面積為6.31mm2
之該單模式解碼器的資料處理量能達到10Gbits/s。
藉由以上較佳具體實施例之詳述,係希望能更加清楚描述本發明之特徵與精神,而並非以上述所揭露的較佳具體實施例來對本發明之範疇加以限制。相反地,其目的是希望能涵蓋各種改變及具相等性的安排於本發明所欲申請之專利範圍的範疇內。
12...C2V-訊息計算器
14...變數節點處理器
16...V2C-訊息排列器
18...排列器
20...反向排列器
22...通道值記憶庫
42...欄桶式位移器
44...固定連結的選路
46...列桶式位移器
圖一係繪示矩陣。
圖二係繪示矩陣H 12×12
。
圖三(A)係繪示基礎矩陣B(0,0)與矩陣B(0,1)的相對關係;圖三(B)係繪示B(0,1)與矩陣B(2,1)的相對關係。
圖四(A)顯示了本發明所提出的根據矩陣B(2,1)所定義之排列器架構;圖四(B)顯示了本發明所提出的根據矩陣B(i 0
,j 0
)所定義之排列器架構。
圖五所示為矩陣H 384×2048
,其中的點代表矩陣中的1。
圖六係繪示矩陣。
圖七係繪示對應於一(6,32)-規律LDPC碼的運算順序。
圖八顯示了幾種不同解碼程序所造成的位元錯誤率。
圖九(A)及圖九(B)係繪示疊代運算的過程與結果。
圖十係繪示根據本發明之一實施例中的解碼器架構。
圖十一顯示了根據本發明之解碼器採用NG
=128且配合(6,32)-規律RS-LDPC碼時的位元錯誤率。
圖十二顯示了根據本發明之解碼器的佈線圖。
圖十三顯示了不同的資料處理量需求與模式數量需求所適合的解碼器架構。
圖十四係列示根據本發明之解碼演算法。
42...欄桶式位移器
44...固定連結的選路
46...列桶式位移器
Claims (16)
- 一種解碼器,適用於根據一里德-索羅門(Reed-Solomon,RS)碼建立之一低密度同位檢查(low-density parity check,LDPC)碼,該解碼器包含:一排列電路(permutation circuit),用以提供根據一同位檢查矩陣中一子矩陣B(i 0 ,j 0 )所定義之複數個可配置的連結(configurable connection),該同位檢查矩陣係與一高氏場GF(p s )相關,p 為一質數(prime),s 為一正整數,i 0 和j 0 分別為範圍在0到(p s -1)間之一整數指標,一組輸入包含p s 個元素(element),該排列電路包含:一第一排列器(permutator),用以固定該組輸入中之第一個元素,並將該組輸入中之其他(p s -1)個元素環式位移(cyclically shifting)j 0 個位置,以產生一組第一臨時元素;一固定選路(fixed routing),用以重新排列該組第一臨時元素,以產生一組第二臨時元素;以及一第二排列器,用以固定該組第二臨時元素中之第一個元素,並將該組第二臨時元素中之其他(p s -1)個元素環式位移i 0 個位置。
- 如申請專利範圍第1項所述之解碼器,該解碼器係位於符合百億位元乙太網路(10-gigabit Ethernet)規格之一接收器中。
- 如申請專利範圍第1項所述之解碼器,其中當該低密度同位檢查碼為一延伸式里德-索羅門碼,該第二排列器中用以環式位移該(p s -1)個第二臨時元素之(p s -1)個連結被固定。
- 如申請專利範圍第1項所述之解碼器,該解碼器係採用欄排程(column scheduling)並且包含複數個該排列電路,其中當該低密度同位檢查碼為一延伸式里德-索羅門碼,該等排列電路中之該整數指標i 0 皆相同,並且該第一排列器包含一桶式位移器(barrel shifter),該第二排列器包含複數個固定連結。
- 如申請專利範圍第1項所述之解碼器,其中該第一排列器和該第二排列器各自包含一桶式位移器。
- 如申請專利範圍第1項所述之解碼器,其中該同位檢查矩陣包含γ×ρ個子矩陣,該同位檢查矩陣中之一第一區塊列(block row)中的前(ρ-1)個子矩陣係屬於一第一類子矩陣,該同位檢查矩陣中之一最末區塊欄(block column)中的γ個子矩陣係屬於一第二類子矩陣,並且該同位檢查矩陣中其他(γ-1)×(ρ-1)個子矩陣係屬於一第三類子矩陣,其中γ與ρ分別為一正整數,該子矩陣B(i 0 ,j 0 )屬於該第一類子矩陣或該第三類子矩陣。
- 如申請專利範圍第1項所述之解碼器,進一步包含:一檢查節點(check-node)操作模組,用以於一第k 次疊代運算(iteration)中根據下列方程式產生與一第j 變數節點(variable node)及一第i 檢查節點相關之一檢查-變數訊息(check-to-variable message) R ij [k ]:
- 如申請專利範圍第7項所述之解碼器,其中該等數值,係於該第k 次疊代運算或是早於該第k 次疊代運算之一第(k -1)次疊代運算中產生。
- 如申請專利範圍第7項所述之解碼器,其中如果R ij [k ]之一最高位元(most significant bit)等於1,晚於該第k 次疊代運算之一第(k +1)次疊代運算即被終止。
- 一種解碼方法,適用於根據一里德-索羅門碼建立之一低密度同位檢查碼,一同位檢查矩陣係與一高氏場GF(p s )相關,p 為一質數,s 為一正整數,i 0 和j 0 分別為範圍在0到(p s -1)間之一整數指標,一組輸入包含p s 個元素,該解碼方法包含下列步驟:針對該組輸入,利用以下子步驟提供根據該同位檢查矩陣中一子矩陣B(i 0 ,j 0 )所定義之複數個可配置的連結:固定該組輸入中之第一個元素,並將該組輸入中之其他(p s -1)個元素環式位移j 0 個位置,以產生一組第一臨時元素;重新排列該組第一臨時元素,以產生一組第二臨時元素;以及固定該組第二臨時元素中之第一個元素,並將該組第二臨時元素中之其他(p s -1)個元素環式位移i 0 個位置。
- 如申請專利範圍第10項所述之解碼方法,該解碼方法係應用於符合百億位元乙太網路規格之一接收器中。
- 如申請專利範圍第10項所述之解碼方法,其中該等步驟中之環式位移係利用桶式位移(barrel shifting)來實現。
- 如申請專利範圍第10項所述之解碼方法,其中該同位檢查矩陣包含γ×ρ個子矩陣,該同位檢查矩陣中之一第一區塊列中的前(ρ-1)個子矩陣係屬於一第一類子矩陣,該同位檢查矩陣中之一最末區塊欄中的γ個子矩陣係屬於一第二類子矩陣,並且該同位檢查矩陣中其他(γ-1)×(ρ-1)個子矩陣係屬於一第三類子矩陣,其中γ與ρ分別為一正整數,該子矩陣B(i 0 ,j 0 )屬於該第一類子矩陣或該第三類子矩陣。
- 如申請專利範圍第10項所述之解碼方法,進一步包含下列步驟:於一第k 次疊代運算中根據下列方程式產生與一第j 變數節點及一第i 檢查節點相關之一檢查-變數訊息R ij [k ]:
- 如申請專利範圍第14項所述之解碼方法,其中該等數值係於該第k 次疊代運算或是早於該第k 次疊代運算之一第(k -1)次疊代運算中產生。
- 如申請專利範圍第14項所述之解碼方法,其中如果R ij [k ]之一最高位元等於1,晚於該第k 次疊代運算之一第(k +1)次疊代運算即被終止。
Priority Applications (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098139768A TWI415396B (zh) | 2009-11-23 | 2009-11-23 | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 |
US12/945,597 US8549375B2 (en) | 2009-11-23 | 2010-11-12 | Decoder and decoding method for low-density parity check codes constructed based on reed-solomon codes |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
TW098139768A TWI415396B (zh) | 2009-11-23 | 2009-11-23 | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 |
Publications (2)
Publication Number | Publication Date |
---|---|
TW201119247A TW201119247A (en) | 2011-06-01 |
TWI415396B true TWI415396B (zh) | 2013-11-11 |
Family
ID=44062991
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
TW098139768A TWI415396B (zh) | 2009-11-23 | 2009-11-23 | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 |
Country Status (2)
Country | Link |
---|---|
US (1) | US8549375B2 (zh) |
TW (1) | TWI415396B (zh) |
Families Citing this family (36)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8281210B1 (en) * | 2006-07-07 | 2012-10-02 | Aquantia Corporation | Optimized correction factor for low-power min-sum low density parity check decoder (LDPC) |
CN102130695B (zh) * | 2010-01-15 | 2013-06-12 | 中兴通讯股份有限公司 | 一种级联码的译码方法及装置 |
US10103751B2 (en) * | 2011-02-28 | 2018-10-16 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
US10063262B2 (en) | 2011-02-28 | 2018-08-28 | Inphi Corporation | Non-concatenated FEC codes for ultra-high speed optical transport networks |
WO2012118766A1 (en) | 2011-02-28 | 2012-09-07 | Clariphy Communications, Inc. | Non-concatenated fec codes for ultra-high speed optical transport networks |
US9037564B2 (en) | 2011-04-29 | 2015-05-19 | Stephen Lesavich | Method and system for electronic content storage and retrieval with galois fields on cloud computing networks |
US9569771B2 (en) | 2011-04-29 | 2017-02-14 | Stephen Lesavich | Method and system for storage and retrieval of blockchain blocks using galois fields |
US9137250B2 (en) | 2011-04-29 | 2015-09-15 | Stephen Lesavich | Method and system for electronic content storage and retrieval using galois fields and information entropy on cloud computing networks |
US9361479B2 (en) | 2011-04-29 | 2016-06-07 | Stephen Lesavich | Method and system for electronic content storage and retrieval using Galois fields and geometric shapes on cloud computing networks |
US9048875B2 (en) | 2012-03-28 | 2015-06-02 | Intel Corporation | Conserving computing resources during error correction |
US8972826B2 (en) | 2012-10-24 | 2015-03-03 | Western Digital Technologies, Inc. | Adaptive error correction codes for data storage systems |
US9281841B2 (en) * | 2012-10-31 | 2016-03-08 | Avago Technologies General Ip (Singapore) Pte. Ltd. | Load balanced decoding of low-density parity-check codes |
US9021339B2 (en) | 2012-11-29 | 2015-04-28 | Western Digital Technologies, Inc. | Data reliability schemes for data storage systems |
US9059736B2 (en) | 2012-12-03 | 2015-06-16 | Western Digital Technologies, Inc. | Methods, solid state drive controllers and data storage devices having a runtime variable raid protection scheme |
KR102068030B1 (ko) | 2012-12-11 | 2020-01-20 | 삼성전자 주식회사 | 메모리 컨트롤러 및 그 동작방법 |
US8966339B1 (en) | 2012-12-18 | 2015-02-24 | Western Digital Technologies, Inc. | Decoder supporting multiple code rates and code lengths for data storage systems |
US9619317B1 (en) * | 2012-12-18 | 2017-04-11 | Western Digital Technologies, Inc. | Decoder having early decoding termination detection |
US9122625B1 (en) | 2012-12-18 | 2015-09-01 | Western Digital Technologies, Inc. | Error correcting code encoder supporting multiple code rates and throughput speeds for data storage systems |
US9214963B1 (en) | 2012-12-21 | 2015-12-15 | Western Digital Technologies, Inc. | Method and system for monitoring data channel to enable use of dynamically adjustable LDPC coding parameters in a data storage system |
US9009557B2 (en) * | 2013-01-21 | 2015-04-14 | Lsi Corporation | Systems and methods for reusing a layered decoder to yield a non-layered result |
WO2017084024A1 (zh) * | 2015-11-17 | 2017-05-26 | 华为技术有限公司 | 低密度奇偶校验码的译码方法和译码器 |
US10050642B2 (en) | 2016-03-17 | 2018-08-14 | Silicon Motion Inc. | Low power scheme for bit flipping low density parity check decoder |
KR102626162B1 (ko) | 2016-06-14 | 2024-01-18 | 삼성전자주식회사 | 연산 복잡도를 감소시킬 수 있는 디코더의 동작 방법과 이를 포함하는 데이터 저장 장치의 동작 방법 |
US10218384B2 (en) * | 2016-12-01 | 2019-02-26 | Sandisk Technologies Llc | ECC decoder with multiple decoding modes |
US10530393B2 (en) | 2016-12-01 | 2020-01-07 | Western Digital Technologies, Inc. | Configurable ECC decoder |
US10565040B2 (en) * | 2016-12-01 | 2020-02-18 | Western Digital Technologies, Inc. | ECC decoder with selective component disabling based on decoding message resolution |
WO2019003888A1 (ja) * | 2017-06-26 | 2019-01-03 | ソニーセミコンダクタソリューションズ株式会社 | 情報処理装置及び方法 |
KR102543059B1 (ko) | 2017-11-22 | 2023-06-14 | 삼성전자주식회사 | 저밀도 패리티 체크 코드의 디코딩 방법, 이를 수행하는 디코더 및 시스템 |
KR101917829B1 (ko) * | 2017-11-30 | 2018-11-12 | 고려대학교 산학협력단 | Ldpc 부호의 셔플 복호를 위한 복호 순서 결정 방법 및 장치 |
CN108599775B (zh) * | 2018-05-10 | 2020-09-01 | 清华大学 | 一种混合校验ldpc码的构造方法 |
US11309915B1 (en) | 2019-07-11 | 2022-04-19 | Arrowhead Center, Inc. | Efficient implementation of a threshold modified min-sum algorithm for low-density parity-check decoders |
TWI730582B (zh) * | 2020-01-07 | 2021-06-11 | 瑞昱半導體股份有限公司 | 具有多模式的資料移位運算裝置及方法 |
US11424766B1 (en) | 2020-01-31 | 2022-08-23 | Marvell Asia Pte Ltd. | Method and device for energy-efficient decoders |
US11206043B2 (en) * | 2020-02-04 | 2021-12-21 | SK Hynix Inc. | Bit-flipping decoder architecture for irregular quasi-cyclic low-density parity-check codes |
CN112242851B (zh) * | 2020-11-23 | 2024-03-19 | 湖南国科锐承电子科技有限公司 | 一种ldpc码的分层译码中迭代数据处理方法及译码器系统 |
CN113556136A (zh) * | 2021-07-06 | 2021-10-26 | 北京航空航天大学 | 一种gn陪集码译码方法及装置 |
Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20060156168A1 (en) * | 2005-01-10 | 2006-07-13 | Ba-Zhong Shen | Construction of irregular LDPC (low density parity check) codes using RS (Reed-Solomon) codes or GRS (generalized Reed-Solomon) code |
US20070234179A1 (en) * | 2003-09-04 | 2007-10-04 | The Directv Group, Inc. | Method and system for providing short block length low density parity check (LDPC) codes in support of broadband satellite applications |
US20090067527A1 (en) * | 2007-09-06 | 2009-03-12 | Broadcom Corporation | Data puncturing ensuring orthogonality within communication systems |
Family Cites Families (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8196010B1 (en) * | 2007-08-17 | 2012-06-05 | Marvell International, Ltd. | Generic encoder for low-density parity-check (LDPC) codes |
EP2056549B1 (en) * | 2007-10-30 | 2012-12-12 | Sony Corporation | Data processing apparatus and method |
BRPI0820163B1 (pt) * | 2007-11-26 | 2019-06-04 | Sony Corporation | Aparelho de codificação, método de codificação para um aparelho de codificação, aparelho de decodificação, e, método de decodificação para um aparelho de decodificação |
-
2009
- 2009-11-23 TW TW098139768A patent/TWI415396B/zh not_active IP Right Cessation
-
2010
- 2010-11-12 US US12/945,597 patent/US8549375B2/en active Active
Patent Citations (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20070234179A1 (en) * | 2003-09-04 | 2007-10-04 | The Directv Group, Inc. | Method and system for providing short block length low density parity check (LDPC) codes in support of broadband satellite applications |
US20060156168A1 (en) * | 2005-01-10 | 2006-07-13 | Ba-Zhong Shen | Construction of irregular LDPC (low density parity check) codes using RS (Reed-Solomon) codes or GRS (generalized Reed-Solomon) code |
US20090067527A1 (en) * | 2007-09-06 | 2009-03-12 | Broadcom Corporation | Data puncturing ensuring orthogonality within communication systems |
Also Published As
Publication number | Publication date |
---|---|
US20110126078A1 (en) | 2011-05-26 |
TW201119247A (en) | 2011-06-01 |
US8549375B2 (en) | 2013-10-01 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
TWI415396B (zh) | 適用於根據里德-索羅門碼建立之低密度同位檢查碼的解碼器及解碼方法 | |
Chen et al. | Two low-complexity reliability-based message-passing algorithms for decoding non-binary LDPC codes | |
RU2395902C2 (ru) | Способы и устройство ldpc-кодирования | |
TWI406508B (zh) | 解碼ldpc編碼信號的解碼器 | |
US8352847B2 (en) | Matrix vector multiplication for error-correction encoding and the like | |
KR101227264B1 (ko) | Ldpc 코드용 디코더 | |
US8341489B2 (en) | Permuted accelerated LDPC (Low Density Parity Check) decoder | |
Liu et al. | Sliced message passing: High throughput overlapped decoding of high-rate low-density parity-check codes | |
JP4519694B2 (ja) | Ldpc符号検出装置及びldpc符号検出方法 | |
Cheng et al. | A fully parallel LDPC decoder architecture using probabilistic min-sum algorithm for high-throughput applications | |
US20100042892A1 (en) | Reconfigurable two's-complement and sign-magnitude converter | |
KR20090092892A (ko) | Ldpc 코드를 이용한 복호화 방법 | |
Ueng et al. | A multimode shuffled iterative decoder architecture for high-rate RS-LDPC codes | |
Ho et al. | A 520k (18900, 17010) array dispersion LDPC decoder architectures for NAND flash memory | |
Lu et al. | A 3.0 Gb/s throughput hardware-efficient decoder for cyclically-coupled QC-LDPC codes | |
JP2009152655A (ja) | 復号装置、復号方法、受信装置、および記憶媒体再生装置 | |
Lin et al. | An efficient fully parallel decoder architecture for nonbinary LDPC codes | |
Shao et al. | Dispersed array LDPC codes and decoder architecture for NAND flash memory | |
Ueng et al. | Jointly designed architecture-aware LDPC convolutional codes and memory-based shuffled decoder architecture | |
Boncalo et al. | Cost-efficient FPGA layered LDPC decoder with serial AP-LLR processing | |
CN105871385B (zh) | 一种ldpc卷积码构造方法 | |
Ren et al. | The design and implementation of high-speed codec based on FPGA | |
Cui et al. | Efficient decoder design for high-throughput LDPC decoding | |
Mohsenin et al. | A split-decoding message passing algorithm for low density parity check decoders | |
EP3496277A1 (en) | Parallel encoding method and system for protograph-based ldpc codes with hierarchical lifting stages |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
MM4A | Annulment or lapse of patent due to non-payment of fees |