TW202205815A - 用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置 - Google Patents

用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置 Download PDF

Info

Publication number
TW202205815A
TW202205815A TW110121211A TW110121211A TW202205815A TW 202205815 A TW202205815 A TW 202205815A TW 110121211 A TW110121211 A TW 110121211A TW 110121211 A TW110121211 A TW 110121211A TW 202205815 A TW202205815 A TW 202205815A
Authority
TW
Taiwan
Prior art keywords
cluster
cpm
check
clusters
group
Prior art date
Application number
TW110121211A
Other languages
English (en)
Inventor
大衛 德克萊爾
貝尼迪克 J 雷伊瓦爾
梵斯 克里斯娜 耶拉
Original Assignee
美商科得魯西達股份有限公司
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 美商科得魯西達股份有限公司 filed Critical 美商科得魯西達股份有限公司
Publication of TW202205815A publication Critical patent/TW202205815A/zh

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/114Shuffled, staggered, layered or turbo decoding schedules
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/1151Algebraically constructed LDPC codes, e.g. LDPC codes derived from Euclidean geometries [EG-LDPC 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/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1108Hard decision decoding, e.g. bit flipping, modified or weighted bit flipping
    • HELECTRICITY
    • 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
    • H03M13/1117Soft-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/1122Soft-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
    • 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/1148Structural properties of the code parity-check or generator matrix
    • H03M13/116Quasi-cyclic LDPC [QC-LDPC] codes, i.e. the parity-check matrix being composed of permutation or circulant sub-matrices
    • 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/6502Reduction of hardware complexity or efficient processing
    • 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/6502Reduction of hardware complexity or efficient processing
    • H03M13/6505Memory efficient implementations

Abstract

本發明呈現一種用於使用一垂直分層(VL)反覆訊息傳遞演算法對LDPC碼進行解碼之方法及對應硬體裝置。本發明對準循環(QC LDPC)碼進行操作,針對該等準循環QC LDPC碼,非零循環置換矩陣(CPM)經放置於該等碼之奇偶檢查矩陣中之特定位置處,從而形成CPM之集中叢集。本發明之目的係利用叢集中之CPM之組織以便獲得比經典VL解碼器消耗更少功率之一特定硬體架構。此藉由最小化對設計之主要記憶體之讀取及寫入存取之次數來達成。

Description

用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置
本發明大體上係關於用於諸如有線及無線通信系統、光學通信系統、電腦記憶體、大量資料儲存系統等之資訊傳輸、儲存及處理系統之錯誤校正編碼。更特定而言,其係關於用於垂直分層反覆低密度奇偶檢查(LDPC)解碼器之硬體實施方案之低複雜度及低功率架構之簡化及最佳化。本發明係專門為自循環置換矩陣(CPM)之叢集構建之準循環LDPC (QC LDPC)碼而設計,主要目的係在解碼程序期間降低記憶體存取之功耗。
錯誤校正碼藉由確保資料之完整性而在通信、電腦及儲存系統中發揮至關重要的作用。過去幾十年已見證編碼理論方面之研究之激增,此導致基於LDPC碼之高效編碼方案之開發。反覆訊息傳遞解碼演算法連同適當設計之LDPC碼一起已被證明在無限碼字長度之限制下接近資訊理論通道容量。LDPC碼在數個應用中被標準化,諸如無線網路、衛星通信、深空通信及電力線通信。
針對具有長度N 及維數K 之一(N ,K ) LDPC碼,大小為M ×N =(N -KN (假定H係完整秩)之奇偶檢查矩陣(PCM) H由少量非零條目,即,少量1組成。吾人用dv (n )表示第n 行之度數,即,第n 行中之1之數目,1≤nN 。類似地,吾人用dc (m )表示第m 列之度數,即,第m 列中之1之數目,1≤m≤M 。此外,吾人定義列及行之最大度數:
Figure 02_image001
(1)
當H之行及列中之1之數目恆定時,LDPC碼被稱為係規則的,否則LDPC碼被認為係不規則的。針對規則LDPC碼,吾人有dv ,max =dv =dv (n ),1≤nN ,且dc ,max =dc =dc (m ),1≤mM 。(dv ,dc )-規則LDPC碼表示一種特殊類型之有趣LDPC碼。針對此類型,若PCM H係完整秩,則碼率係R =K /N =1-dv /dc 。除非為了論證之清晰性而有必要,否則吾人將省略列及行之度數之記號中之索引nm 。但清楚的是,本發明之所有實施例適用於規則及不規則LDPC碼兩者。
若長度為N 之一二進位行向量(表示為x=[x 1 ,x 2 , …,xN ] T )係一碼字,則其滿足Hx=0,其中乘法及加法運算在二進位域GF (2)中執行,且0係長度M 之全零行向量。x T 表示向量及矩陣兩者之x之轉置。一矩陣中之一元素可由Hm ,n H (m ,n )無差別地表示。類似地,一向量中之一元素由xn x (n )表示。向量及矩陣之水平級聯及垂直級聯分別被表示為[A ,B ]及[A ;B ]。
本發明係關於QC-LDPC之類別。在QC-LDPC碼中,PCM H由大小為L ×L 之方形區塊或子矩陣組成,如方程式(2)中所描述,其中各區塊H i ,j 係(i )一全零L ×L 區塊,或(ii )一循環置換矩陣(CPM)。
Figure 02_image003
(2)
一CPM被定義為一循環群組之一基元元素之冪。例如,針對L=8之情況,基元元素由方程式中(3)中所展示之L ×L 矩陣α 定義。因此,一CPMαk (其中
Figure 02_image005
)具有單位矩陣之形式,向左移位k 個位置。換言之,αk 之第一行之非零值之列索引係k +1。k 之值被稱為CPM值。一CPM之主要特徵係其在各列/行中僅具有單個非零元素且可由其第一列/行連同用以產生剩餘列/行之一程序來定義。此程序之簡單性轉化為實現一QC-LDPC編碼器或解碼器中之碼字位元子集與奇偶檢查方程式子集之間的實體連接所需之低複雜度。
Figure 02_image007
(3)
一QC-LDPC碼之PCM可方便地由一基矩陣(或原模圖矩陣) B表示,其中Mb 列及Nb 行含有指示各區塊H i ,j 之基元元素之冪之整數值。因此,基矩陣之維數按以下方式與PCM之維數相關:M =Mb LN =Nb LK =Kb L (假定H係完整秩)。針對Mb ×Nb =4×5及L =8之矩陣H及B之一實例被展示於方程式(4)中。
Figure 02_image009
(4) 其中I=α 0 係單位矩陣,且按照慣例α -∞ =0係全零L ×L 矩陣。在本發明中,基矩陣之列將被表示為PCM之區塊列,而基矩陣之行將被表示為區塊行。
針對QC-LDPC碼,奇偶檢查矩陣H之一區塊列(由PCM之L 個連續列組成)被稱為水平層或列層。例如,方程式(2)中之第i 區塊列定義第i 列層。類似地,一垂直層或行層由PCM之L 個連續行組成。例如,方程式(2)中之第j 區塊行定義第j 行層。
層之概念可進一步擴展為廣義層(GL)之概念。定義如下: Ÿ 一廣義層被定義為H之兩個或兩個以上層之級聯,使得在由廣義層定義之子矩陣之各區塊行中,存在至多一個非零CPM,而其他區塊係全零區塊。 Ÿ 一全廣義層進一步具有由廣義層定義之子矩陣之各區塊行僅含有一個非零CPM之性質。 此定義允許針對具有最大行度數dv ,max 之一QC-LDPC碼,PCM可以至少dv ,max 個廣義層設計。為呈現簡單起見且在不失一般性之情況下,吾人將假定GL之數目始終等於最大行度數dv ,max
圖1展示組織為由101、102、103及104指示之dv =4個全GL之一PCM之一實例。在此實例中,GL之各者含有4個區塊列,總共Mb =16個區塊列。一般而言,各GL可含有不同數目個區塊列,只要滿足上述定義中之GL約束即可。在此實例中,以灰色指示之第一GL 101由基矩陣之前四個區塊列組成。PCM之GL組織之目的係為了能夠並行執行若干CPM之處理,而不會發生資料存取衝突。
奇偶檢查矩陣H可方便地由一二分Tanner圖G 表示,其由基數N 之一組變數節點(VN)V ={v 1 ,v 2 , ...,vN }及基數M 之一組檢查節點(CN)C ={c 1 ,c 2 , ...,cM }組成。該等變數節點表示LDPC碼之碼字位元且該等檢查節點表示LDPC碼之奇偶檢查方程式。若奇偶檢查矩陣中之矩陣元素等於Hm ,n =1,則變數節點及檢查節點藉由邊緣連接,其中節點cm vn 之間存在一邊緣。檢查節點cm 之度數(表示為dc (m ))係其所連接至之變數節點之數目,且變數節點vn 之度數(表示為dv (n ))係其所連接至之檢查節點之數目。若一LDPC碼之Tanner圖具有一恆定變數節點度數dv (n )=dv , ∀n 及一恆定檢查節點度數dc (m )=dv , ∀m ,則LDPC碼被認為係規則的。否則LDPC碼被認為係不規則的。讓吾人用
Figure 02_image011
進一步表示連接至cm 之一組變數節點,且用
Figure 02_image013
表示連接至vn 之一組檢查節點。
對一LDPC碼之一Tanner圖進列操作之一反覆解碼器沿著連接兩種節點之邊緣在VN與CN之間交換訊息。一邊緣支援兩個方向上之訊息:變數至檢查訊息(表示為μv ,c )及檢查至變數訊息(表示為μc ,v )。
亦與本發明相關的係用於改良解碼器收斂速度同時仍維持一低硬體複雜度之分層解碼之概念。分層LDPC解碼方案藉由減少達到成功解碼所需之解碼反覆之所需次數來有效地改良收斂。一分層解碼器產生自檢查節點之一子集至變數節點之一子集之訊息,且接著產生自變數節點之一子集至檢查節點之一子集之訊息。
一反覆解碼器通常由VN更新(VNU)處理、CN更新(CNU)處理及訊息計算之排程來定義。該排程定義在LDPC碼之整個Tanner圖中執行VNU及CNU操作之順序。存在三種主要類型之用於反覆訊息傳遞LDPC解碼器之排程:(i )泛洪排程,(ii )水平分層(HL)排程,(iii )垂直分層(VL)排程。HL及VL排程通常結合QC-LDPC碼使用。在HL解碼中,逐列層執行訊息更新,而在VL解碼中,逐行層執行訊息計算。
本發明涉及遵循VL排程之反覆LDPC解碼器。吾人將貫穿本說明書僅參考此特定排程。
本發明適用於任何二進位輸入對稱通道,且可容易地推廣至具有非二進位輸入之通道。令x為一長度N 之QC-LDPC碼之一碼字。碼字藉由一雜訊無記憶通道發送,其中輸出為y,其值屬於一多進位字母
Figure 02_image015
。通道精度nq 係表示多進位字母所需之位元之數目,即,
Figure 02_image017
。解碼器之輸入(表示為通道值)可由雜訊通道之量化量測(即y之值)或由此等量測之任何變換來定義。例如且在不失一般性之情況下,通道值可被定義為自條件通道概率計算之對數似然比(LLR),等於
Figure 02_image019
本發明之實施例進一步係關於稱為有限字母反覆解碼器(FAID)之一種類別之反覆訊息傳遞解碼器。在此等解碼器中,訊息μc ,v μv ,c 屬於由一有限-通常較少-數目個級(表示為s )組成之一有限字母
Figure 02_image021
s 個級可使用ns 個精度位來表示,使得
Figure 02_image023
。針對其中
Figure 02_image021
具有奇數基數之特定闡釋性情況,訊息字母被表示為
Figure 02_image026
Figure 02_image028
,其中針對任何k >l,
Figure 02_image030
。應注意,訊息字母及通道字母可具有不同基數,sq
一FAID中之度數dv 之一變數節點v 之VNU使用一預定義函數
Figure 02_image032
來實施,在本說明書中該函數被稱為VNU函數。其依據一通道值y 及節點處之dv -1傳入訊息計算一特定邊緣上之傳出訊息,排除彼特定邊緣上之傳入訊息。例如,為了計算輸出訊息
Figure 02_image034
,吾人使用:
Figure 02_image036
(5) 可最佳化VNU函數以改良解碼器之錯誤校正能力。通道值y =+Y 之VNU函數可自具有通道值y=-Y 之VNU函數對稱地推導出:
Figure 02_image038
(6)
在FAID中使用之CNU函數
Figure 02_image040
類似於在當前最新技術中通常使用之最小和解碼器中使用之函數。若
Figure 02_image042
表示至具有度數dc 之一節點c 之傳入訊息,則
Figure 02_image040
由以下方程式給定:
Figure 02_image044
。         (7) 取決於使用之排程類型,CNU可以各種方式實施。隨後將呈現用於VL解碼之CNU實施方案之細節。
最後,為了計算VNv 之碼字位元之一硬決策估計,使用以下方程式來計算一後驗概率(APP):
Figure 02_image046
(8) 第n 碼字位元之硬決策估計(表示為
Figure 02_image048
)等於:
Figure 02_image050
(9) 若硬決策估計具有等於零之一校正子,即:
Figure 02_image052
(10) 則解碼器已成功地收斂至一有效碼字。
現在吾人描述QC-LDPC碼之VL解碼之一般原理,重點討論記憶體組織及CNU處理。針對連接至dc VN之各CNcm ,存在至CNU之dc 個傳入變數至檢查訊息,表示為
Figure 02_image054
。訊息可寫成符號量值表示
Figure 02_image056
,其中
Figure 02_image058
係訊息之符號且
Figure 02_image060
係訊息之量值。吾人將indexm ,n 進一步定義為含有連接至檢查節點cm 之第n VN之區塊行之索引。替代地,indexm ,n 可表示連接至cm dc 邊緣當中之邊緣之索引,其支援具有量值magm ,n 之訊息。索引indexm ,n 之兩個約定旨在定義被處理之訊息
Figure 02_image062
之位置。在本說明書之其餘部分中,吾人將其簡稱為變數至檢查訊息之索引。
針對每個cm ,吾人關聯一檢查節點狀態(CNS),其被定義為
Figure 02_image064
(11) 其中
Figure 02_image066
係連接至CNcm 之變數至檢查訊息之累加符號之值,在本說明書之其餘部分中將其稱為符號狀態。MAG (dc )被稱為量值狀態,且其由
Figure 02_image068
對組成。
處於量值狀態之一對(magk ,indexk )將被稱為量值對。各量值對由至CNU之dc 傳入變數至檢查訊息之一者之量值及索引組成。為呈現簡單起見,吾人在量值對之定義中省略CN之索引m 。在一量值狀態下,量值按昇冪排序:
Figure 02_image070
indexk 之值指示對應於其中訊息等於magk 之區塊行索引。為易於呈現,吾人進一步假定各CN在奇偶檢查矩陣之各區塊行中具有至多一個VN鄰居,即,若k ≠l,則
Figure 02_image072
。此條件針對VL解碼並非強制性的,且當一CN在區塊行中具有多於一個鄰居時,該演算法可容易地擴展。
貫穿本說明書,吾人將描述
Figure 02_image074
=2個最小量值之情況下之演算法及硬體架構,且吾人將使用記號CNS(cm )及MAG ,在該記號中省略參數
Figure 02_image074
。儘管如此,本發明在進行較小修改之情況下仍適用於具有其他
Figure 02_image074
值之VL解碼器。針對LDPC碼之M個檢查節點,所有CNS之集合經儲存於稱為檢查節點記憶體(CNM)之一記憶體中。
演算法1中呈現一般VL反覆解碼器。該演算法將通道值作為輸入,且產生硬決策估計
Figure 02_image076
該演算法之初始化步驟用於計算CNS之初始值。在初始化期間,自通道值yn 計算之連接至VNvn 之所有變數至檢查訊息
Figure 02_image078
皆係相等的。
在初始化步驟之後,解碼器運行至多Itmax 次反覆。在一次解碼反覆期間,逐區塊行執行訊息更新,直至已處理PCM中之所有區塊行為止。在該演算法中,且在不失一般性之情況下,吾人假定該區塊行自第一至最後一個循序地處理。
在各區塊行處理期間,訊息之計算及CNS之更新以三個步驟組織:CNU產生器步驟、VNU步驟及CNU更新器步驟。
新檢查至變數訊息
Figure 02_image080
由CNU產生器使用儲存於CNM中之CNS之值及來自先前反覆之變數至檢查訊息
Figure 02_image078
之符號signm ,n 產生,該等符號經儲存於一記憶體中。VNU使用新產生之訊息來計算變數至檢查訊息
Figure 02_image078
之新值。此等新訊息值用於使用CNU更新器來更新CNS,且其等符號經儲存於符號記憶體中以在下一次反覆期間使用。
取決於演算法之特定實施方案及變數節點更新
Figure 02_image082
之類型,初始化步驟及VNU步驟可改變。例如,若在VL解碼器中使用FAID演算法,則用直接通道輸出y執行初始化,而若在VL解碼器中使用一最小和演算法,則用LLR執行初始化。
在VNU步驟期間計算構成該演算法之輸出之硬決策估計
Figure 02_image084
。其等係使用CNU產生器期間產生之訊息
Figure 02_image080
且在使用方程式(9)對碼字位元做出決策之後自APP (8)推導出。
演算法 1 :VL反覆解碼
輸入 :通道值輸出 :硬決策估計
Figure 02_image086
初始化 :利用通道值來初始化訊息
Figure 02_image088
且自經初始化訊息計算CNS,
對於 iter =1 Itmax 進行
對於 j =1 Nb 進行
CNU 產生 針對區塊列j 中之各變數節點vn , 針對連接至變數節點vn 之各檢查節點cm 讀取檢查節點狀態
Figure 02_image090
(a) 計算臨時外部符號:
Figure 02_image092
(b) 計算至VNU之輸入訊息:若
Figure 02_image094
,則
Figure 02_image096
;及若
Figure 02_image098
,則
Figure 02_image100
VNU : (c) 使用VNU函數Φ v 自輸入訊息
Figure 02_image102
及通道值計算VNU之輸出
Figure 02_image104
CNU 更新器 針對區塊列j 中之各變數節點vn , 針對連接至變數節點vn 之各檢查節點cm , 讀取檢查節點狀態
Figure 02_image106
(d) 計算臨時外部符號:
Figure 02_image108
(e) 計算
Figure 02_image110
且設定
Figure 02_image112
計算新檢查節點狀態CNS (cm ): (f)
Figure 02_image114
(g) 若截斷清單MAG 中之indexk 等於index *,則自該清單移除(magk ,indexk )
Figure 02_image116
(h) 在排序清單MAG 中插入(mag *,index *)且將其截斷為w 值。
若硬決策估計驗證零校正子條件(10),則其等形成一有效碼字。APP值可在Itmax 反覆結束時計算,或替代地可在解碼期間,在每次反覆結束時或在每次區塊行處理結束時計算。在解碼期間進行一計算之情況下,校正子
Figure 02_image117
之值可用作一提前停止準則。每當校正子等於0時,就可停止解碼器,此係因為其已收斂至一有效碼字。
如演算法1中所描述,在反覆解碼期間需要存取CNM若干次。在每次區塊行處理期間,CNU產生器讀取CNS之L 個值dv 次,該等值經儲存於CNM之對應於其中具有非零CPM之區塊列之位址中。類似地,針對每次區塊行處理,CNU更新器在讀取時存取CNMdv 次且在寫入時存取dv 次。此表示在一次反覆期間總共存取此記憶體3dv Nb 次。
CNM係一大記憶體,且對其之讀取/寫入(R/W)存取占由硬體架構消耗之總功率之大部分。本發明之目的係減少對CNM之存取次數,同時仍實施對QC-LDPC碼之一準確VL解碼,而不會損失任何錯誤校正效能。吾人藉由提出一特定LDPC代碼設計來達成此目標,其中在CPM叢集中組織奇偶檢查矩陣。解碼器架構經實施使得模組,及尤其是CNU更新器,可處理k 個連續區塊行之集合,其中記憶體存取少於3dv k 。因此,本發明之目標係一經修改之VL反覆解碼器,其將比經典解碼器消耗更少功率,而不會犧牲錯誤校正效能。
本發明係關於一種用於對QC-LDPC碼進行解碼之垂直分層反覆訊息傳遞演算法。
本發明係關於一種實施以非常低功耗為目標之垂直分層LDPC解碼器之方法及硬體裝置。此係藉由設計一QC-LDPC碼來達成,針對該QC-LDPC碼非零循環置換矩陣(CPM)經放置於該碼之奇偶檢查矩陣中之特定位置處,從而形成CPM之集中叢集。
本發明之演算法將訊息自LDPC碼之Tanner圖中之變數節點傳遞至檢查節點,從而使用變數節點更新(VNU)處理器及檢查節點更新(CNU)處理器更新訊息。變數至檢查節點之訊息之累加符號、最小量值及相關聯位置形成檢查節點狀態(CNS),該等檢查節點狀態經儲存於一檢查節點記憶體(CNM)中。CNU使用以下兩個不同處理單元分兩步實施:CNU產生器及CNU更新器。
解碼器之硬體模組之特定實施方案利用叢集中之組織以便減少及最小化對記憶體之讀取及寫入(R/W)存取之次數。當處理k 個連續CPM之一叢集時,CNU產生器讀取檢查節點記憶體僅一次而非k 次;且CNU更新器在檢查節點記憶體中讀取一次及寫入一次而非k 次讀取及k 次寫入。此使對檢查節點記憶體之存取之次數減少k 倍。叢集之大小k 越大,功率節省就將越大。
由於R/W存取之減少,吾人提出使用CNU更新器之單個例項同時處理若干CPM,此可在將CPM叢集放置一高階廣義層內之特定位置處之條件下達成。階μ 之一高階廣義層由奇偶檢查矩陣之一子矩陣定義,階μ 之高階廣義層在定義該廣義層之子矩陣之區塊行中含有至多μ 個CPM。
在階μ 之一高階廣義層內,叢集之放置需要遵循一特定約束,其被稱為非衝突叢集(NCC)約束。此約束確保兩個叢集在同一區塊行中不具有其等最後一個CPM,從而允許CNU更新器並行處理多個(至多μ 個)叢集。
此外,吾人添加在階μ 之一廣義層中之一組叢集可被分解成μ 個非重疊叢集群組之約束。在一叢集群組內,兩個叢集在廣義層之同一區塊行中不可具有一CPM。將叢集組織成非重疊群組允許高效地例示CNU更新器硬體。
吾人描述取決於叢集大小k 及廣義層階μ 之本發明之若干較佳實施例,其中各者皆遵循NCC約束。較佳實施例被表示為NCC (k ,μ ),且吾人闡釋較佳情況NCC(2, 2)、NCC(3, 2)、NCC(3, 3)、NCC(4, 4)、NCC(6, 4)及NCC(8, 4)之實例。
為了達成R/W存取之減少,CNU更新器之裝置使用被稱為預更新器之特定單元,其等在更新叢集處理結束時之檢查節點記憶體中之CNS之前更新僅對應於一叢集內之CPM之局部檢查節點狀態。在用於一μ 階廣義層之一CNU更新器中,存在μ 個預更新器,各預更新器負責一非重疊叢集群組。類似地,CNU更新器使用μ 個符號局部校正子累加器來並行處理μ 個叢集群組之CNS之符號狀態。
本發明包含一初始化器模組,該初始化器模組負責自通道值計算校正子位元。使用校正子位元來在第一次解碼反覆之前初始化CNS之符號狀態。初始化器之裝置受叢集中之組織之影響,且使用μ 個局部符號累加器來實施,每個局部符號累加器用於一高階GL內之各叢集群組。
本發明亦包含一驗證器模組,該驗證器模組用於即時計算硬決策估計之校正子位元,且每當校正子為全零時停止解碼器。為了準確地計算儲存於一校正子記憶體中之校正子位元,驗證器模組之裝置針對各高階GL計算全叢集校正子及部分叢集校正子。部分叢集校正子對應於在經處理叢集未完成時校正子位元之值。接著,驗證器模組組合全叢集校正子及部分叢集校正子以計算整個碼之校正子且在整個碼校正子為全零時作出停止解碼器之決策。
本發明中之方法係關於一種對一QC-LDPC碼進行操作之反覆訊息傳遞LDPC解碼器,其奇偶檢查矩陣由大小為L×L之循環置換矩陣組成。針對具有Nb 個區塊行及Mb 個區塊列之奇偶檢查矩陣,第j 區塊行含有dv (j )個CPM,且第i 區塊列含有dc (i )個CPM。為呈現簡單起見,且當脈絡清楚時,將自此等記號省略索引ij
本發明之訊息傳遞解碼器遵循一垂直分層(VL)排程,其中主要處理模組係一變數節點更新(VNU)處理器及一檢查節點更新(CNU)處理器。CNU處理器本身由兩個主要模組組成:CNU產生器及CNU更新器。有關更多細節吾人可參考演算法1。VL解碼器在一次解碼反覆期間以一任意順序處理QC-LDPC碼之Nb 個區塊行。吾人在不失一般性之情況下假定區塊行係自索引j =1至索引j =Nb 循序地處理。
在一次解碼反覆期間,當前區塊行將被表示為經處理區塊行。此外,各區塊行由一組L個變數節點組成,其將被表示為經處理VN群組。在各區塊行中,存在位於不同區塊列中之dv 個CPM。在一經處理區塊行中,CPM被表示為經處理CPM,且對應區塊列被表示為經處理區塊列。一經處理區塊列中之一組L 個CN被稱為經處理CN群組。在各經處理區塊行中,一組L 個CNS被表示為CNS群組。一CNS群組由一符號狀態群組及一量值狀態群組組成。
本發明之硬體實施方案中之所有模組將並行處理L 資料之群組,接受L 資料之群組作為輸入且產生L 資料之群組作為輸出。取決於模組,該類型之資料可為訊息、校正子位元、碼字位元或檢查節點狀態。
在圖2上描繪本發明中所提出之用於VL解碼器之頂層架構之一裝置。檢查節點記憶體203儲存LDPC碼中之所有檢查節點之檢查節點狀態CNS (cm )。各CNS (cm )由對應檢查節點之符號狀態sm 及量值狀態MAG (w )組成,該量值狀態MAG (w )含有w 對(magk ,indexk )。吾人將本發明之呈現限於w =2,儘管其在進行微小變動之情況下亦適用於其他w 值。為簡單起見,吾人將表示MAG (2)=MAG 。符號記憶體206儲存變數至檢查訊息
Figure 02_image119
之符號signm ,n 。因此,針對將VN連接至CN之各邊緣存在一個符號。
在解碼程序開始時,初始化器模組202將L 個通道值200之群組作為輸入,且使用其等來初始化CNM中之CNS。初始化器模組202計算所有CN之初始符號狀態sm 及量值狀態之初始值,該等初始值僅取決於該等通道值之量值。替代地,初始量值狀態可由初始化器設定為固定的預定值。初始符號狀態經儲存於稱為校正子記憶體之一局部記憶體中,經儲存於初始化器模組中,或直接儲存於CNM中。在初始化期間,通道符號被複製為變數至檢查訊息符號之初始值,其等經儲存於符號記憶體206中。在執行初始化之後,CNM含有CNS之初始值{sm ;MAG }。
在初始化之後,CNU及VNU處理器透過桶形移位器單元反覆地交換訊息。桶形移位器根據QC-LDPC碼之CPM對訊息位址重新排序。一桶形移位器單元由最多dv,max 個桶形移位器組成,該等桶形移位器可並行處理一區塊行內之所有訊息。
針對度數為dv 之一經處理區塊行,該解碼器如下進行。CNU產生器205自203讀取dv 個CNS群組且自符號記憶體206讀取dv 個訊息符號群組以計算檢查至變數訊息群組。CNU產生器架構之細節稍後在本說明書中給出。接著,檢查至變數訊息
Figure 02_image121
根據經處理區塊行之CPM循環移位,且用作VNU處理器之輸入。
VNU處理器208接收dv 個檢查至變數訊息群組及對應於經處理區塊行之通道值群組。其根據方程式(5)使用VNU函數Φ v 計算dv 個變數至檢查訊息
Figure 02_image121
群組,該等群組接著經循環移位且經發送至CNU更新器204。新計算之變數至檢查訊息之桶形移位符號亦儲存於符號記憶體206中。
CNU更新器使用來自208之變數至檢查訊息、來自203之相關聯CNS及來自207之對應延遲符號作為輸入,且計算寫入於CNM 203中之新CNS。有關CNU更新器之功能之更多細節稍後在本說明書中給出。
應注意,更新CNS所需之符號係對應於變數至檢查訊息
Figure 02_image121
之符號,但來自先前解碼反覆。然而,歸因於該架構中之管線,在到達CNU更新器輸入之前,CNU產生器產生之訊息可能需要若干時脈循環來流動通過桶形移位器單元、VNU並通過第二桶形移位器單元。因此,CNU更新器使用來自與當前處理區塊行相較有延遲之區塊行之訊息來更新CNS。對應於經延遲區塊行之符號已使用來自當前反覆之新符號在符號記憶體206中被覆寫。為了使用來自先前反覆之正確符號來更新CNS,吾人添加用作CNU更新器模組之輸入之一延遲符號記憶體207。
逐區塊行地重複上文所描述之訊息及CNS之計算及更新直至已遍歷整個奇偶檢查矩陣為止,該遍歷整個奇偶檢查矩陣接著構成一次解碼反覆。接著,解碼程序在下一次解碼反覆中自第一區塊行再次開始。
本發明中之VL解碼器亦配備有一停止準則,該停止準則允許吾人在任何區塊行處理之後輸出一有效碼字。為此,VNU處理器亦針對經處理區塊行中之所有VN計算遵循(8)之APP值且計算硬決策估計
Figure 02_image124
。將硬決策估計發送至驗證器模組209以檢查解碼器是否已經收斂至一有效碼字。該驗證器使用自VNU處理器接收之
Figure 02_image124
之最新值來計算LDPC碼之校正子位元,該等校正子位元經儲存於一校正子記憶體中。每當校正子位元為全零時,驗證器停止解碼(遵循方程式(10)),此意謂硬決策估計
Figure 02_image124
形成一有效碼字210。
在本發明中,吾人提出將儲存有關CN之資訊之記憶體拆分成一個或若干塊,目的係將各記憶體塊中之R/W存取之次數減少至其最小值。此涉及CNU處理器中之CNM 203,及初始化器202及驗證器209中之校正子記憶體。
讓吾人以CNM為例,且令Γ係組成CNM之塊之數目。各記憶體塊CNM(γ) (
Figure 02_image126
)與一組CN,且因此與奇偶檢查矩陣之一組區塊列相關聯。與第γ記憶體塊相關聯之子矩陣被表示為Hγ 。每當解碼器處理位於Hγ 中之一CPM時,其將存取該塊CNM(γ) 中之資料。
在其中拆分CNM之塊之數目直接影響CNU處理器之硬體單元之實施方案。由於存在CNM之Γ個塊,因此CNU更新器204及CNU產生器205由並行處理各子矩陣Hγ 之CPM之Γ個單元組成。
將CNM拆分成若干塊之目的係允許CNU處理器中之Γ個單元之各者同時自一獨立記憶體存取其等資料。此僅可在將QC-LDPC碼中之CPM放置於特定位置處之情況下達成。類似地,初始化器模組202負責計算符號狀態之初始值,其等等於經儲存於一校正子記憶體中之校正子位元。由於存在校正子記憶體之Γ個塊,因此存在並行計算來自通道符號之校正子位元之Γ個單元。
最後,驗證器模組209自硬決策估計計算校正子位元且將該校正子位元儲存於一校正子記憶體中。驗證器中亦存在並行計算校正子位元之Γ個單元。
在一經典QC-LDPC碼中,子矩陣Hγ 通常被定義為一層或一廣義層,其含有每子矩陣區塊行至少一個CPM。
在本發明中,吾人引入高階廣義層或μ 階廣義層(μ 階GL)之新概念。該定義係經典廣義層之一直接推廣: Ÿ 一μ 階GL廣義層被定義為H之區塊列之級聯,使得在由高階廣義層定義之子矩陣之各區塊行中,存在至多μ 個非零CPM,而其他區塊係全零區塊。 Ÿ 一全μ 階廣義層進一步具有各區塊行僅含有μ 個非零CPM之性質。
一1階GL係一經典廣義層。根據定義,得出μ 個廣義層之垂直級聯形成一μ 階廣義層。然而,一μ 階廣義層並不總是分解成μ 個廣義層。
圖3展示具有兩個2階GL之一規則dv =4 QC-LDPC碼之組織。應注意,在此實例中,高階GL係全2階GL。在本說明書之其餘部分中,針對任何階μ ,吾人將一高階GL簡稱為GL,因為脈絡清楚地指示各區塊行中存在之CPM之數目。在本發明中,與記憶體塊相關聯之子矩陣Hγ 對應於μ 階GL,其中特別側重於
Figure 02_image128
為了最小化對應於一子矩陣Hγ 之記憶體塊之R/W存取之次數,CPM必須以一非常特定的方式定位。其等必須集中於CPM叢集中使得模組可以一有限的記憶體存取次數處理多個CPM。
讓吾人藉由一子矩陣之一區塊列中之k 倍連續非零CPM來定義CPM之一k 叢集:
Figure 02_image130
(12) 其中,H m ,k 係一非零CPM。
更一般而言,CPM之一k 叢集可在該叢集內含有少於k 個非零CPM。例如,具有兩個全零區塊及k- 2個非零CPM之一k 叢集將具有以下結構:
Figure 02_image132
(13)
當一k 叢集充滿CPM時,吾人將其稱為k 叢集或全k 叢集,否則其將被稱為稀疏k叢集。此CPM組織之目的係在處理k 叢集時將對記憶體之所需R/W存取之次數減少至最小值。當矩陣被組織成全叢集時,可達成最大硬體效率,在此情況下,針對給定數目k 之經處理CPM,吾人具有一最小記憶體存取次數。吾人將在本說明書之其餘部分中僅論述全叢集之情況。硬體模組至稀疏k 叢集之推廣很容易得出。集中叢集中之CPM之組織對初始化器、CNU更新器及驗證器之硬體實現有影響。
在一μ 階GL中,k 個叢集需要放置於非常特定的位置處以便避免記憶體存取埠違規。 [NCC]吾人強加兩個或兩個以上叢集無法在高階GL中之同一區塊行處結束之約束。吾人將此約束稱為非衝突叢集(NCC)約束。 吾人將假定,貫穿本說明書,一μ 階GL中之叢集遵循NCC約束。
在本發明之若干較佳實施例中,一高階GL中之叢集具有相同大小k 。應注意,由於稀疏叢集之定義,大小為k 之任何全叢集藉由將k' -k 個零塊附加至該叢集而可被視為其中k '>k 之一稀疏k' 叢集。在具有恆定大小叢集之一全μ 階GL中,NCC約束確保叢集不在同一區塊行結束,而且不自同一區塊行開始。此外,一全μ 階GL無法由其中kμk 個叢集組成,否則此違反NCC約束。
此導致在遵循NCC約束之一全μ 階GL中,吾人可將一組k 個叢集拆分成μ 個非重疊叢集群組。針對各非重疊叢集群組,對應子矩陣之各區塊行中存在至多一個CPM。在其中μ 階GL係全階之較佳實施例中,針對各非重疊叢集群組,各區塊行中僅存在一個CPM。
圖4展示在一全2階GL之情況下將2個叢集組織成兩個叢集群組,表示為群組A 402及群組B 403。將叢集組織成非重疊群組將用於初始化器、CNU處理器及驗證器之硬體實施方案之高效例示。
將CPM組織成叢集允許吾人限制對CNU更新器中之CNM記憶體與對初始化器及驗證器中之校正子記憶體之R/W存取之次數。吾人在各經處理器叢集起點處自此等記憶體讀取,且在各經處理叢集末尾處寫入至此等記憶體,而非各CPM進行R/W。針對大小k 之各叢集,R/W存取之次數自2k 減少至僅2。R/W存取之減少產生自由時隙,在其等期間記憶體未被存取,且可用於同時處理子矩陣Hγ 之同一區塊行中之其他叢集。因此,叢集中之CPM之組織允許吾人考量每區塊行具有一個以上CPM但仍能夠同時處理一區塊行中之所有CPM而不會發生記憶體存取衝突之子矩陣。
吾人現在論述本發明之若干較佳實施例,其等係關於一高階GL內之叢集之特定組織。叢集之長度k 及高階GL之階μ 定義各較佳實施例,且假定叢集遵循NCC約束。吾人將用NCC(k ,μ )表示描述一高階GL之結構之較佳實施例。
應注意,本發明適用於任何叢集大小及任何GL階。另外,當高階GL含有稀疏叢集時,kμ 表示叢集長度及GL階之實際最大值而非實際值。較佳實施例將在假定僅全叢集及僅全高階GL之情況下呈現,在此情況下,吾人必須有kμ 。至稀疏叢集及非全高階GL之推廣很容易得出。
吾人亦應注意,吾人可組合GL與不同階以形成具有不同VN度數之QC-LDPC碼。例如,吾人可組合一全NCC(3, 3) GL及一全NCC(3, 2) GL以獲得具有恆定VN度數dv =5之一規則QC-LDPC碼。在此實例中,當使用稀疏叢集而非全叢集時,GL將不再係全階,且吾人可構建具有VN度數dv ∈{3, 4, 5}之一不規則QC-LDPC碼。所獲得之不規則QC-LDPC遵循NCC約束將由2個高階GL組成。
本發明之一第一較佳實施例涉及一階2 GL中之大小k =2之全叢集之情況(表示為NCC(2, 2))。吾人在圖3中針對具有階μ =2之Γ=2個GL之一dv =4規則QC-LDPC碼給出遵循該較佳實施例NCC(2, 2)之一闡釋。針對各階2 GL,在各區塊行中僅存在2個CPM,以及一個叢集起點及一個叢集終點。吾人亦可注意,吾人將NCC性質強制為咬尾:304中所指示之叢集自第五區塊列及最後一個區塊行開始,且在同一區塊列及第一區塊行中結束。此係一合意的性質,因為在VL解碼器之一次反覆結束時,吾人將處理PCM之最後一個區塊行,接著係PCM之第一區塊行。在此過渡期間亦需要滿足叢集組織及NCC約束條件。
應注意,儘管叢集組織之咬尾性質係較佳的,但此並非強制性的。在其中矩陣末尾處之一經開始叢集未在同一區塊列之起點處循環結束之情況下,解碼器可在反覆之間引入暫停以確保滿足NCC約束條件,且不會發生記憶體存取埠違規。當強制咬尾性質時,在解碼反覆之間不需要暫停。
在圖5中,吾人展示較佳實施例NCC(3, 2)及NCC(3, 3)之闡釋性實例。501中所展示之表示為NCC(3, 2)之較佳實施例由具有長度k =3之叢集503組成。叢集經組織使得其等形成一全2階GL。在各區塊行中,僅存在屬於2個非重疊叢集群組之2個非零CPM。在此較佳實施例中,區塊行並非全部見到相同叢集組織。讓吾人以501中之三個連續區塊行為例,例如區塊行j =3,j =4及j =5。在區塊行j =3中,一個叢集開始且另一叢集結束。在區塊行j =4中,一個叢集開始且另一叢集在中間。最後,在區塊行j =5中,一個區塊行結束且另一區塊行在中間,此3個連續區塊行之型樣在整個高階GL中重複。
在502中展示表示為NCC(3, 3)之較佳實施例。階3 GL由具有長度k =3之叢集組成,但其等經拆分成3個非重疊群組。如同在其他實施例中,叢集組織及NCC約束係咬尾的:一3叢集在區塊列2之末尾處開始且在同一區塊列之起點處結束,且在區塊列6中係類似的。在此較佳實施例中,在每個區塊行中,一個群組中之叢集開始,另一群組中之叢集結束,且最後一個群組中之叢集在中間。
在圖6中,吾人展示具有組成一階4 GL之更大叢集之闡釋性實例。在601中所展示之表示為NCC(4, 4)之較佳實施例中,叢集具有長度k =4。階4 GL具有由4個非重疊叢集群組組成之階μ =4。此GL遵循NCC約束,該約束以一咬尾方式強制執行。在每個區塊行中,一個叢集在起點,一個叢集在終點,且另兩個叢集在中間。
在603中所展示之表示為NCC(6, 4)之較佳實施例中,叢集具有長度k =6且形成遵循NCC約束之一4階GL。因此,在此較佳情況下,吾人具有4個非重疊群組。
最後,在605中展示表示為NCC(8, 4)之較佳實施例。在此情況下,階4 GL由配置成4個非重疊群組之長度k =8個叢集組成。
現在讓吾人詳細地描述解碼器架構中之受叢集中之組織影響之模組之實施方案及功能。此涉及初始化模組202、CNU處理器中之CNU更新器204、CNU處理器中之CNU產生器205及最後驗證器處理器209。該架構之其他部分遵循一通用反覆VLQC-LDPC解碼器之原理,且不受CPM叢集中之組織影響。
在初始化器裝置之一較佳實施例中,CNS之初始量值狀態被設定為固定的預定值,且初始化器模組僅負責計算CNS之初始校正子位元,該等初始校正子位元用作CNS中之符號狀態之初始值。初始符號狀態等於自通道符號計算之校正子位元。
初始化器模組由並行處理Γ個高階GL之Γ個單元組成。吾人將描述一個單元之功能,其負責計算單個μ 階GL之校正子位元。
初始化器之一個單元將對應於經處理區塊行中之VN之L 個通道符號之群組作為輸入。由於高階GL之各區塊行中存在μ 個CPM,因此首先根據μ 個CPM移位值使L 個通道符號桶形移位,且在初始化器中使用μ 個經移位符號群組來計算對應區塊列之校正子位元。
使用符號累加器單元來累加屬於一k 叢集之傳入符號群組,該等符號累加器單元用來計算僅對應於與k 個叢集相關聯之通道符號之局部校正子位元。接著在初始化器中使用由符號累加器單元產生之局部校正子位元群組來計算全校正子。
讓吾人首先描述符號累加器之功能。圖7-(a)展示在大小k =2之叢集之情況下之一符號累加器單元且圖7-(b)展示在k>2之情況下之一符號累加器單元。
針對2個叢集,符號累加器單元循序地接收兩個通道符號群組。對應於該叢集之第一CPM之符號群組經儲存於一暫存器702中且與對應於該叢集之第二CPM之符號群組進行互斥或運算,以便獲得經處理叢集之局部校正子位元群組703。當叢集大小較大(其中k >2)時,針對含有經處理叢集之區塊列實施校正子位元群組之一遞迴計算係更高效的。在圖7-(b)中,暫存器705之輸入係XOR單元之輸出,以實施符號之遞迴累加。在處理一叢集之前,該暫存器之內容被設定為0。當藉由該叢集之第一CPM移位之通道符號到達單元之輸入處時,其等因此被複製至該暫存器中(因為其等與0進行互斥或運算)。針對經處理叢集之後續CPM,該暫存器含有僅對應於經處理叢集之經處理區塊列之經累加局部校正子位元。當經處理叢集之最後一個CPM之符號群組到達單元之輸入處時,在XOR之輸出處獲得局部校正子位元群組706。
作為一闡釋性、非限制性實例,圖8展示在μ =3之情況下之初始化器校正子位元計算器之架構。高階GL中之叢集經組織為3個非重疊群組,命名為群組A、群組B及群組C。第一輸入801對應於藉由各區塊行中之群組A叢集之CPM移位之通道符號,第二輸入802對應於藉由各區塊行中之群組B叢集之CPM移位之通道符號,且最後,第三輸入803對應於藉由各區塊行中之群組C叢集之CPM移位之通道符號。
三個輸入801至803屬於不同叢集群組之事實確保與一給定叢集群組相關聯之通道符號總是到達同一符號累加器單元之輸入處。因此,符號累加器單元804至806在k 個連續步驟中有效地計算與其等設計叢集群組之叢集相關聯之局部校正子位元。憑藉一μ 階GL中之NCC約束之定義,三個群組當中之僅一個叢集在給定區塊行中具有其最後一個CPM。讓吾人假定群組A中之叢集在區塊行j 處結束。當處理區塊行j 時,群組A之符號累加器804已完成局部校正子位元群組之計算,其由807選擇且發送至XOR 808以與用於經處理區塊列之校正子記憶體809之內容組合。XOR之輸出含有對應於經處理區塊列中之所有先前處理之叢集之經更新校正子位元。群組B及群組C之符號累加器繼續累加其等局部校正子位元,因為在區塊行j 處,群組B及C中之叢集尚未結束。
一旦已處理整個矩陣中之所有區塊行,就輸出儲存於校正子記憶體809之校正子位元且使用該等校正子位元來初始化CNM之符號狀態,以用於對應高階GL。儘管吾人在圖8中僅描述叢集大小及GL階之特定實例,但相同原則適用於任何大小μ ≥1之高階GL及任何大小kμ 之叢集。
如圖2中之頂層架構之裝置中所展示,檢查節點更新處理器由兩個處理單元組成:CNU更新器及CNU產生器。此等單元之各者由並行處理Γ個高階GL之Γ個單元組成。此後吾人描述負責處理單個高階GL之單個單元之功能。
讓吾人首先論述CNU產生器模組。在各μ 階GL中,存在並行處理μ 個非重疊叢集群組之μ 個訊息產生器單元。該等訊息產生器單元之各者負責讀取CNM中之CNS群組,接著在符號記憶體中自先前反覆讀取訊息符號,且判定發送至VNU處理器之檢驗至變數訊息群組之符號及量值。
CNU產生器如下進行。針對大小k 之一叢集,訊息產生器單元在叢集開始時讀取相關聯CNS {sm ;MAG },且在k 個連續步驟中產生L 個檢查至變數訊息之k 個群組。針對叢集中之各CPM,檢查至變數訊息之符號被計算為來自先前反覆之符號與CNS之校符號狀態sm 之值之間的XOR。檢驗至變數訊息之量值等於量值狀態MAG 之兩個最小量值(mag1 ,mag2 )之一者,且按以下方式判定。若輸出訊息之索引匹配index1 ,則量值將等於第二最小量值mag2 ,否則等於第一最小量值mag1 。接著,透過桶形移位器將叢集中之各經處理CPM之L 個檢查至變數訊息發出至VNU。
VNU處理器接收檢查至變數訊息群組及對應於經處理區塊行之通道值群組,且計算發送至CNU更新器之變數至檢查群組。
CNU更新器負責使用來自VNU之新計算出之變數至檢查訊息計算新CNS。該模組由兩個部分組成:一量值狀態CNU更新器及一符號狀態CNU更新器。
在圖9中,吾人展示在具有階μ =2之一高階GL之情況下之一CNU更新器之架構。叢集經組織為2個非重疊群組,其等被表示為群組A及群組B。CNU更新器將來自VNU模組之L 個變數至檢查訊息之群組作為輸入。一個群組901對應於群組A叢集且另一群組902對應於群組B叢集。來自記憶體207之對應於此等訊息之延遲符號群組903至904亦被輸入至CNU更新器。
吾人僅論述其中CNS由w =2個量值對組成之較佳實施例。
針對各叢集群組,輸入訊息之量值進入預更新器單元905至906。該等預更新器單元用於計算局部量值狀態
Figure 02_image134
,其等分別對應於僅用於經處理叢集中之訊息之兩個最小量值及對應索引。更確切而言,針對大小為k 之一叢集,在經處理區塊行中針對各CNS存在來自VNU之k 個傳入變數至檢查訊息。預更新器計算及排序k 個訊息量值當中之2個最小量值(
Figure 02_image136
),且將其等與其等局部索引(
Figure 02_image138
)相關聯。一訊息之局部索引指示其在叢集中之位置,即,
Figure 02_image140
當預更新器單元已完成經處理叢集之更新時,由909選擇此叢集之局部量值狀態群組且發送至量值狀態CNU更新器911以便計算新量值狀態,其表示為MAGnew 。量值狀態CNU更新器自預更新器針對經處理區塊列中之各CNS接收局部量值狀態。其比較自CNM讀取之兩個最小量值與局部量值狀態中之兩個最小量值,總共四個量值。量值狀態CNU更新器對此四個量值進行排序且僅輸出兩個最小量值,連同其等相關聯全域索引。
讓吾人現在描述符號狀態CNU更新器之功能。針對各叢集群組,輸入訊息之符號與延遲符號組合,且經累加以便計算新符號狀態群組。延遲符號對應於來自先前反覆之經處理訊息之符號。其等與當前反覆之新訊息符號進行互斥或運算以便偵測符號改變。
符號改變用作各叢集群組之符號累加器單元907至908之輸入。符號累加器單元與初始化器中使用之校正子累加單元相同,且在圖7中進行描述。其等計算各群組中之經處理叢集之符號狀態改變。當一符號累加器單元完成其處理時,由910選擇經處理叢集之符號狀態改變,且將其等與全域符號狀態群組之舊值進行互斥或運算,以獲得CNS群組符號狀態之新值,其被表示為
Figure 02_image142
圖9中之CNU更新器係針對一2階GL及任意長度之叢集大小k 而呈現。其可很容易地推廣至任何高階GL,主要區別在於CNU更新器並行處理μ 個非重疊叢集群組。
CNU更新器含有μ 個預更新器單元,各預更新器單元處理一個非重疊群組內之叢集。吾人在本段中描述單個預更新器單元之功能。圖10展示在k =2個叢集之情況下之一CNU預更新器單元。其循序地接收L 個訊息量值1001之兩個群組。首先,將對應於叢集中之第一CPM之訊息量值群組放置於暫存器1003中。接著,比較第二CPM之訊息量值與該暫存器之內容。針對經處理區塊列中之各CNS輸出兩個量值,其中減小量值在
Figure 02_image144
輸出上,且較大量值在
Figure 02_image146
輸出上。亦輸出對應局部索引
Figure 02_image148
Figure 02_image150
,以形成局部量值狀態
Figure 02_image152
針對長度k >2之叢集之情況,對於經處理區塊列中之各CNS,預更新器單元判定k 個輸入訊息量值當中之兩個最小量值,且關聯兩個對應局部索引。圖11展示k 個叢集之預更新器之架構。該單元在輸入1101處接收一系列訊息量值群組,並且在輸入1102處接收相關聯局部索引。在此實施方案中,預更新器在經處理叢集之k 個CPM之處理期間針對各CNS更新兩個最小量值
Figure 02_image144
Figure 02_image146
且將其等儲存於暫存器1103至1104中。使用比較器1107至1108來比較傳入量值與該等暫存器之內容,且選擇單元1109決定新傳入量值是否應替換
Figure 02_image144
暫存器或
Figure 02_image146
暫存器之內容,或不替換
Figure 02_image144
暫存器或
Figure 02_image146
暫存器之內容。局部索引之處理係並行執行的,遵循相同原則。對應於2個最小量值之局部索引經儲存於暫存器1105至1106中。一旦處理整個叢集,該預更新器單元就輸出局部量值狀態
Figure 02_image152
讓吾人現在呈現用於驗證器模組209之實施方案之一裝置。在圖12中針對度數dv =4個區塊行及Γ=2個高階GL之情況以實例方式展示驗證器模組之架構。在此實例中,各GL具有階μ =2且由兩個非重疊叢集群組組成。第一GL由群組A及B組成,且第二GL由群組C及D組成。
當處理一區塊行時,由VNU處理器產生之L 個硬決策估計1201之一群組到達驗證器之輸入處。硬決策記憶體1202含有最新近計算之硬決策估計之一複本。當模組接收對應於第j 區塊行之L 個硬決策估計時,記憶體1202針對所有區塊行kj 含有當前反覆之硬決策估計,而其針對所有區塊行kj 含有先前反覆之硬決策估計。
區塊行j 之新硬決策估計替換來自硬決策記憶體1202中之先前反覆之硬決策估計。另外,在新計算之硬決策估計及來自先前反覆之硬決策估計之間執行一XOR運算。因此,XOR單元1204輸出當前反覆與先前反覆之間的硬決策估計之改變。硬決策估計之改變藉由對應於各經處理叢集之桶形移位器循環移位。各叢集群組存在一個桶形移位器單元。接著,其等用作校正子更新器1205及1206之輸入。用於一高階GL之各校正子更新器含有儲存對應GL之校正子位元之一校正子記憶體,且其目的係使用硬決策估計之改變來更新此記憶體之值。後文給出校正子更新器之詳細描述。
接著,在零校正子檢查單元1207至1208中使用校正子更新器之輸出來偵測整個校正子向量是否為全零。在校正子為全零之情況下,一終止信號1210指示解碼器可停止,因為在1211上輸出之硬決策估計形成一有效碼字。移位暫存器1203用於在模組接收硬決策估計之後立即儲存硬決策估計,同時驗證器判定硬決策估計是否構成一碼字。移位暫存器具有L個位元之一寬度及等於終止器單元1209產生終止信號所必需之總延遲之一深度。此總延遲包含驗證器中之管線級之數目,以及由用於計算校正子更新器1205及1206中之經更新校正子位元之叢集中之組織引起之延遲。
讓吾人現在描述用於驗證器校正子更新器單元之硬體實施方案之一裝置。驗證器由Γ個此等單元組成,每個用於各高階GL。吾人在圖13中展示在由三個非重疊叢集群組組成之一階μ =3 GL之情況下之一驗證器校正子更新器之架構。該單元含有μ 個符號累加器,各符號累加器負責該等叢集群組之一者。符號累加器與初始化器及CNU更新器中所使用之符號累加器相同,且在圖7中進行描述。
各符號累加器循序地接收L 個桶形移位硬決策估計1301至1303之k 個群組。使用硬決策估計來計算對應於經處理叢集之CN之局部校正子位元。由於對叢集之NCC約束,在一個區塊行之處理期間,μ 個累加器之不超過一個累加器將完成一局部校正子之累加。
讓吾人在不失一般性之情況下且以實例方式假定,群組A中之叢集在經處理區塊行j 中具有其最後一個CPM。因此,在區塊行j 之處理期間,群組A之符號累加器1304已累加經處理叢集中之所有CPM之經移位硬決策估計,且計算全叢集之一局部校正子。此輸出被表示為叢集局部校正子。
符號累加器1304計算群組A叢集之局部校正子,而符號累加器1305及1306計算另兩個群組中之叢集之局部校正子。多工器1310選擇群組A中之經完成叢集之叢集局部校正子來更新校正子記憶體1312。為此,校正子記憶體中之對應於經完成叢集之區塊列之校正子位元群組與叢集局部校正子進行互斥或運算且寫回至記憶體中之同一位置。
然而,在區塊行j 之處理期間,群組B及C之叢集未完成,且對應區塊列之校正子記憶體之內容未考量群組B及群組C中之經處理區塊行之硬決策估計。為了能夠在處理區塊行j 之後停止解碼器,對應於群組B及群組C之區塊列之校正子位元需要考量來自區塊行kj 之所有硬決策估計之貢獻。此係藉由在區塊行j 之處理期間針對高階GL中之叢集群組B及C拍攝叢集局部校正子之快照來達成。
啟用信號1300觸發由符號累加器輸出之叢集局部校正子之一快照,且將其等儲存於暫存器1307至1309中。在區塊行j 處,暫存器1308中之群組之快照係群組B中之叢集之僅部分之局部校正子,其對應於藉由具有索引kj 之叢集之CPM移位之硬決策估計。此暫存器中之值將被表示為群組B中之叢集之部分叢集局部校正子。類似地,暫存器1309含有群組C中之叢集之僅一部分之部分叢集局部校正子。暫存器1307中之群組A之快照等於自叢集中之所有CPM計算之叢集局部校正子,且被表示為全叢集局部校正子。
當由多工器1311選擇時,群組B及群組C之部分叢集局部校正子與進入校正子記憶體之對應校正子位元群組組合,以形成部分叢集校正子。當拍攝快照時,即,在區塊行j 之處理期間,群組B或群組C之部分叢集校正子表示群組B或群組C中之區塊列之校正子位元值。多工器1310循序地選擇三個叢集群組之全叢集局部校正子,且組合其等與對應區塊列之校正子記憶體之內容,以便產生各群組之全叢集校正子。
因此,在區塊行j 之處理期間,校正子更新器拍攝所有群組之部分叢集局部校正子之一快照,更新群組A叢集之區塊列之校正子記憶體,且在1315上輸出群組A之全叢集校正子。在1313上輸出群組A之部分叢集校正子,其等於全叢集校正子。在區塊行j +1之處理期間,校正子更新器更新群組B叢集之區塊列之校正子記憶體,在1313上輸出群組B之部分叢集校正子,且在1315上輸出群組B之全叢集校正子。最後,在區塊行j +2之處理期間,校正子更新器更新群組C叢集之區塊列之校正子記憶體,在1313上輸出群組C之部分叢集校正子,且在1315上輸出群組C之全叢集校正子。添加暫存器1314以便確保輸出1313及1315將對應於同一叢集群組。
驗證器模組中之各零校正子檢查單元1207及1208將對應高階GL之叢集群組之全叢集校正子及部分叢集校正子作為輸入。在圖13之實例中,高階GL由三個群組組成。在處理區塊行j 之後,群組A叢集之全叢集校正子與群組B及群組C之兩個部分叢集校正子含有與此等叢集相關聯之區塊列中之CN之校正子位元。驗證器校正子記憶體中含有其他區塊列之校正子位元。零校正子檢查單元使用輸入叢集校正子及校正子記憶體之內容來計算整個高階GL之全校正子,且將一終止信號發送至終止器1209。等於一之一終止信號指示在快照時間j 滿足經處理高階GL中之所有校正子位元。若發送至終止器之所有信號同時等於一,則解碼器停止。
101:第一廣義層(GL) 102:GL 103:GL 104:GL 200:通道值 202:初始化器模組 203:檢查節點記憶體 204:檢查節點更新(CNU)更新器 205:CNU產生器 206:符號記憶體 207:延遲符號記憶體 208:變數節點更新(VNU)處理器 209:驗證器模組 210:有效碼字 211:通道符號 501:非衝突叢集 502:非衝突叢集 503:叢集 601:非衝突叢集 602:非衝突叢集 603:叢集 702:暫存器 703:局部校正子位元群組 705:暫存器 706:局部校正子位元群組 801:第一輸入 802:第二輸入 803:第三輸入 804:符號累加器單元 805:符號累加器單元 806:符號累加器單元 808:互斥或 809:校正子記憶體 901:群組 902:群組 903:延遲符號群組 904:延遲符號群組 905:預更新器單元 906:預更新器單元 907:符號累加器單元 908:符號累加器單元 911:量值狀態CNU更新器 1001:訊息量值 1003:暫存器 1101:輸入 1102:輸入 1103:暫存器 1104:暫存器 1105:暫存器 1106:暫存器 1107:比較器 1108:比較器 1109:選擇單元 1201:硬決策估計 1202:硬決策記憶體 1203:移位暫存器 1204:XOR單元 1205:校正子更新器 1206:校正子更新器 1207:零校正子檢查單元 1208:零校正子檢查單元 1209:終止器單元 1210:終止信號 1300:啟用信號 1301:桶形移位硬決策估計 1302:桶形移位硬決策估計 1303:桶形移位硬決策估計 1304:符號累加器 1305:符號累加器 1306:符號累加器 1307:暫存器 1308:暫存器 1309:暫存器 1310:多工器 1311:多工器 1312:校正子記憶體 1313:輸出 1314:暫存器 1315:輸出
為了更完整地理解本發明,參考以下描述及隨附圖式,其中:
圖1展示廣義層中之一QC-LDPC碼之奇偶檢查矩陣之組織。各廣義層在各區塊行中含有至多一個循環置換矩陣;
圖2展示一VL解碼器之頂層架構之一裝置;
圖3展示高階廣義層及CMP集中叢集中之一QC-LDPC碼之奇偶檢查矩陣之組織。吾人展示由2個叢集組成之2階GL之特定實例;
圖4展示具有屬於兩個非重疊群組之2個叢集之一2階GL之組織;
圖5展示皆由3個叢集組成之一2階GL及一3階GL之組織;
圖6展示具有不同叢集長度之4階GL之組織。吾人展示4個叢集、6個叢集及8個叢集之實例;
圖7展示(a) 2個叢集及(b)k 個叢集之一符號累加器之架構之一裝置。符號累加器用於初始化器、CNU更新器及驗證器中;
圖8展示初始化器校正子計算器之架構之一裝置。展示具有k 個叢集之一3階GL之情況;
圖9展示用於一2階GL及任何叢集大小k 之CNU更新器之架構之一裝置;
圖10展示針對一大小k =2叢集之之情況之CNU更新器內之一預更新器之架構之一裝置;
圖11展示針對一大小k >2叢集之情況之CNU更新器內之一預更新器之架構之一裝置;
圖12展示針對具有μ =2高階GL之一QC-LDPC碼之驗證器模組之架構之一裝置;及
圖13展示針對k 個叢集及一3階GL之一驗證器校正子更新器單元之架構之一裝置。
200:通道值
202:初始化器模組
203:檢查節點記憶體
204:檢查節點更新(CNU)更新器
205:CNU產生器
206:符號記憶體
207:延遲符號記憶體
208:變數節點更新(VNU)處理器
209:驗證器模組
210:有效碼字
211:通道符號

Claims (19)

  1. 一種用於準循環低密度奇偶檢查碼之垂直分層解碼之方法,該解碼係對具有由階大於或等於一之一或多個高階廣義層組成之一結構之一奇偶檢查矩陣進行操作,其中各高階廣義層由一或多個循環置換矩陣(CPM)之非重疊叢集群組組成,其中非重疊群組之數目至多等於該高階廣義層之該階,該方法包括: 接收屬於一通道輸出字母之通道值作為輸入; 使用該等通道值來初始化,以一任意順序及自一個區塊行至另一區塊行循序地在區塊行內之變數節點與檢查節點之間反覆地處理訊息群組,產生硬決策估計且進行驗證以檢查該等硬決策估計是否構成一碼字,基於此終止該解碼; 在該初始化期間,使用該等通道值之符號來計算變數至檢查訊息之各自符號; 在該初始化期間,藉由使用該等變數至檢查訊息之該等符號,計算與各檢查節點相關聯之符號狀態之初始值; 在該初始化期間,使用該等通道值,進一步計算與各檢查節點相關聯之量值狀態之初始值; 將檢查節點狀態儲存於一檢查節點記憶體中,其中與一檢查節點相關聯之各檢查節點狀態包括自該等變數至檢查訊息之該等符號計算之該相關聯檢查節點之一符號狀態及由一組值組成之一量值狀態,該組值包括該相關聯檢查節點之該等變數至檢查訊息之一或多個最小量值連同相同數目個各自區塊行索引; 反覆地處理一區塊行,其中該反覆處理包含: 使用一檢查節點更新產生器(CNU產生器)步驟,利用包括該等檢查節點狀態及對應於該CPM叢集之一或多個變數至檢查訊息群組之符號之輸入來計算對應於各CPM叢集之一或多個新檢查至變數訊息群組,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組; 使用一或多個變數節點更新函數,利用包括該等通道值及該等檢查至變數訊息之輸入來計算新變數至檢查訊息; 使用該等通道值及該等檢查至變數訊息來計算硬決策估計; 使用一檢查節點更新更新器(CNU更新器)步驟,利用包括該等檢查節點狀態之當前值、對應於該CPM叢集之一或多個變數至檢查訊息群組及來自先前反覆之對應於該CPM叢集之該一或多個變數至檢查訊息群組之該等符號之輸入,將對應於各CPM叢集之該等檢查節點狀態更新為新值,其中各叢集屬於一高階廣義層中之一非重疊叢集群組; 在該驗證期間,計算與對應於該整個奇偶檢查矩陣之該等檢查節點相關聯之校正子位元以檢查該等硬決策估計是否構成一碼字;及 根據構成一碼字之該等硬決策估計,輸出該碼字。
  2. 如請求項1之方法,其中各CPM叢集中之CPM之數目至多等於二,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之數目等於二。
  3. 如請求項1之方法,其中各CPM叢集中之CPM之該數目至多等於三,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之該數目等於二。
  4. 如請求項1之方法,其中各CPM叢集中之CPM之該數目至多等於三,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之該數目等於三。
  5. 如請求項1之方法,其中各CPM叢集中之CPM之該數目至多等於四,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之該數目等於四。
  6. 如請求項1之方法,其中各CPM叢集中之CPM之該數目至多等於六,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之該數目等於四。
  7. 如請求項1之方法,其中各CPM叢集中之CPM之該數目至多等於八,其中各叢集屬於一高階廣義層中之一非重疊叢集群組,且各廣義層中之非重疊叢集群組之該數目等於四。
  8. 如請求項1之方法,其中該初始化進一步包括: 藉由累加對應於該CPM叢集之該等變數至檢查訊息之該等符號,計算對應於各CPM叢集之該等相關聯檢查節點之局部符號狀態,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組;及 使用對應於各CPM叢集之該等相關聯檢查節點之該等局部符號狀態來計算各檢查節點之該符號狀態之該初始值。
  9. 如請求項1之方法,其中各檢查節點狀態之該量值狀態由該相關聯檢查節點之該等變數至檢查訊息之兩個最小量值連同其等兩個各自區塊行索引組成。
  10. 如請求項1之方法,其中該CNU更新器處理步驟進一步包括: 藉由使用對應於該CPM叢集之一或多個變數至檢查訊息群組之該等符號及來自該先前反覆之對應於該CPM叢集之該一或多個變數至檢查訊息群組之該等符號,計算對應於各CPM叢集之該等相關聯檢查節點之局部符號狀態,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 組合地使用該等局部符號狀態及對應於各CPM叢集之該等相關聯檢查節點之該等符號狀態之當前值,以計算對應於該CPM叢集之該等相關聯檢查節點之該等符號狀態之新值。
  11. 如請求項1之方法,其中該CNU更新器處理步驟進一步包括: 藉由使用對應於該CPM叢集之該一或多個變數至檢查訊息群組之該等量值,計算對應於各CPM叢集之該等相關聯檢查節點之局部量值狀態,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 組合地使用該等局部量值狀態及對應於各CPM叢集之該等相關聯檢查節點之該等量值狀態之當前值來計算對應於該CPM叢集之該等相關聯檢查節點之該等量值狀態之新值。
  12. 如請求項1之方法,其中該驗證進一步包括: 藉由使用包括對應於該CPM叢集之該等相關聯變數節點之該等硬決策估計之輸入,計算與對應於各CPM叢集之該等檢查節點相關聯之全叢集局部校正子位元,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組; 藉由使用包括對應於該CPM叢集之該等相關聯變數節點之該等硬決策估計之輸入,進一步計算與對應於各CPM叢集之該等檢查節點相關聯之部分叢集局部校正子位元,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組;及 使用包括各CPM叢集之該等全叢集局部校正子位元及該等部分叢集局部校正子位元之輸入來計算與對應於該整個奇偶檢查矩陣之該等檢查節點相關聯之該等校正子位元。
  13. 如請求項1之方法,其中該驗證進一步包括: 在一區塊行之該反覆處理結束時,計算與對應於該整個奇偶檢查矩陣之該等檢查節點相關聯之該等校正子位元,以計算該檢查子權重,基於此終止該解碼,且輸出該碼字。
  14. 一種用於準循環低密度奇偶檢查碼之垂直分層解碼之裝置,該解碼係對具有由階大於或等於一之一或多個高階廣義層組成之一結構之一奇偶檢查矩陣進行操作,其中各高階廣義層由一或多個循環置換矩陣(CPM)之非重疊叢集群組組成,該裝置包括: 一檢查節點記憶體,其儲存與檢查節點相關聯之檢查節點狀態,其中與一檢查節點相關聯之各檢查節點狀態包括一符號狀態及由一組值組成之一量值狀態,該組值包括該相關聯檢查節點之變數至檢查訊息之一或多個最小量值連同相同數目個各自區塊行索引; 一符號記憶體,其儲存該等變數至檢查訊息之符號; 一初始化器模組,其藉由使用該等變數至檢查訊息之該等符號作為輸入來計算與各檢查節點相關聯之該檢查節點狀態之初始值; 一或多個檢查節點更新處理器,其中各檢查節點更新處理器包括一或多個檢查節點更新產生器(CNU產生器)模組及一或多個檢查節點更新更新器(CNU更新器)模組,其中: 各CNU產生器模組藉由使用自該檢查節點記憶體讀取之該等相關聯檢查節點之該等檢查節點狀態及對應於自該符號記憶體讀取之該CPM叢集之一或多個變數至檢查訊息群組之符號,計算對應於各CPM叢集之一或多個新檢查至變數訊息群組,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組;且 各CNU更新器模組藉由使用自該檢查節點記憶體讀取之該等相關聯檢查節點之該等檢查節點狀態之當前值、對應於該CPM叢集之一或多個變數至檢查訊息群組及自該符號記憶體讀取之來自先前反覆之對應於該CPM叢集之一或多個變數至檢查訊息群組之該等符號,計算對應於各CPM叢集之該相關聯檢查節點之該檢查節點狀態之新值,其中各CPM叢集屬於一高階廣義層中之一非重疊叢集群組;及 一驗證器模組,其藉由使用該等硬決策估計作為輸入來計算與該整個奇偶檢查矩陣之該等檢查節點相關聯之校正子位元。
  15. 如請求項14之裝置,其進一步包括一初始化器模組,該初始化器模組由一或多個校正子計算器單元組成,該初始化器模組藉由使用該等變數至檢查訊息之該等符號作為輸入來計算與各檢查節點相關聯之該檢查節點狀態之該初始值,其中各校正子計算器單元與一高階廣義層相關聯: 藉由使用一或多個校正子累加器,利用對應於該CPM叢集之該等變數至檢查訊息之該等符號作為輸入來計算對應於各CPM叢集之該等相關聯檢查節點之局部符號狀態,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 使用對應於各CPM叢集之該等相關聯檢查節點之該等局部符號狀態,以計算與該高階廣義層相關聯之所有該等檢查節點之初始符號狀態。
  16. 如請求項14之裝置,其中與一高階廣義層相關聯之各CNU更新器模組計算對應於該高階廣義層之該等相關聯檢查節點之該等符號狀態之新值,其包括: 藉由使用一或多個符號累加器,使用包括對應於該CPM叢集之一或多個變數至檢查訊息之該等符號及來自該先前反覆之對應於該CPM叢集之該一或多個變數至檢查訊息群組之該等符號之輸入,計算對應於各CPM叢集之該等相關聯檢查節點之局部符號狀態,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 組合地使用對應於各CPM叢集之該等相關聯檢查節點之該等局部符號狀態及自該檢查節點記憶體讀取之該等相關聯檢查節點之當前符號狀態,計算對應於等高階廣義層之該等相關聯檢查節點之該等符號狀態之該等新值。
  17. 如請求項14之裝置,其中與一高階廣義層相關聯之各CNU更新器模組計算對應於該高階廣義層之該等相關聯檢查節點之量值狀態之新值,其包括: 藉由使用一或多個預更新器單元,基於對應於該CPM叢集之該一或多個變數至檢查訊息群組之量值,計算對應於各CPM叢集之該等相關聯檢查節點之局部量值狀態,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 組合地使用對應於各CPM叢集之該等相關聯檢查節點之該等局部量值狀態及自該檢查節點記憶體讀取之該等相關聯檢查節點之該等量值狀態之當前值,計算對應於該高階廣義層之該等相關聯檢查節點之該等量值狀態之該等新值。
  18. 如請求項14之裝置,其進一步包括一驗證器模組,該驗證器模組由一或多個校正子更新器單元組成,該驗證器模組藉由使用該等硬決策估計作為輸入來計算與該整個奇偶檢查矩陣之該等檢查節點相關聯之校正子位元,其中各校正子更新器單元與一高階廣義層相關聯: 藉由使用包括對應於該CPM叢集之該等相關聯變數節點之該等硬決策估計之輸入,計算對應於各CPM叢集之該等相關聯檢查節點之全叢集局部校正子位元,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組; 藉由使用包括對應於該CPM叢集之該等相關聯變數節點之該等硬決策估計之輸入,計算對應於各CPM叢集之該等相關聯檢查節點之部分叢集局部校正子位元,其中各CPM叢集屬於該高階廣義層中之一非重疊叢集群組;及 使用包括對應於各CPM叢集之該等相關聯檢查節點之該等全叢集局部校正子位元及該等部分叢集局部校正子位元之輸入,計算與該高階廣義層相關聯之所有該等檢查節點之該等校正子位元。
  19. 如請求項14之裝置,其進一步包括一驗證器模組,其中該驗證器模組在一區塊行之反覆處理結束時計算與該整個奇偶檢查矩陣之該等檢查節點相關聯之該等校正子位元,且藉由計算該檢查子權重來檢查該等硬決策估計是否構成一碼字,基於此終止該解碼,且輸出該碼字。
TW110121211A 2020-06-10 2021-06-10 用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置 TW202205815A (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US202063037393P 2020-06-10 2020-06-10
US63/037,393 2020-06-10

Publications (1)

Publication Number Publication Date
TW202205815A true TW202205815A (zh) 2022-02-01

Family

ID=78826619

Family Applications (1)

Application Number Title Priority Date Filing Date
TW110121211A TW202205815A (zh) 2020-06-10 2021-06-10 用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置

Country Status (3)

Country Link
US (2) US11258460B2 (zh)
CN (1) CN113783576A (zh)
TW (1) TW202205815A (zh)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US10530392B2 (en) 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
US11496155B2 (en) 2020-04-09 2022-11-08 Codelucida, Inc. Method and apparatus for vertical layered decoding of quasi-cyclic low-density parity check codes using predictive magnitude maps
CN117631962A (zh) * 2022-08-18 2024-03-01 慧荣科技股份有限公司 存储器控制器及快闪存储器的存取方法
CN115842558B (zh) * 2023-02-22 2023-05-05 华中科技大学 基于hls的qc-ldpc译码器的设计方法及qc-ldpc译码器

Family Cites Families (26)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
AU2335001A (en) 1999-12-20 2001-07-03 Research In Motion Limited Hybrid automatic repeat request system and method
DK2273683T3 (da) 2002-07-03 2013-09-16 Dtvg Licensing Inc Kodning af LDPC-koder
KR100918763B1 (ko) 2003-11-14 2009-09-24 삼성전자주식회사 병렬 연접 저밀도 패리티 검사 부호를 사용하는 채널 부호화/복호 장치 및 방법
US7281192B2 (en) 2004-04-05 2007-10-09 Broadcom Corporation LDPC (Low Density Parity Check) coded signal decoding using parallel and simultaneous bit node and check node processing
US7506238B2 (en) 2004-08-13 2009-03-17 Texas Instruments Incorporated Simplified LDPC encoding for digital communications
KR100975558B1 (ko) 2006-05-03 2010-08-13 삼성전자주식회사 통신 시스템에서 신호 송수신 장치 및 방법
US8161345B2 (en) * 2008-10-29 2012-04-17 Agere Systems Inc. LDPC decoders using fixed and adjustable permutators
KR101570472B1 (ko) 2009-03-10 2015-11-23 삼성전자주식회사 연접 부호화 및 복호화 구조를 갖는 데이터 처리 시스템
US8458556B2 (en) 2009-10-09 2013-06-04 Stmicroelectronics, Sa Low complexity finite precision decoders and apparatus for LDPC codes
WO2012118766A1 (en) * 2011-02-28 2012-09-07 Clariphy Communications, Inc. Non-concatenated fec codes for ultra-high speed optical transport networks
US9015550B2 (en) * 2012-10-05 2015-04-21 Lsi Corporation Low density parity check layer decoder for codes with overlapped circulants
US9100052B2 (en) 2013-02-01 2015-08-04 Samsung Electronics Co., Ltd. QC-LDPC convolutional codes enabling low power trellis-based decoders
CN104995844B (zh) 2013-02-14 2018-11-30 马维尔国际贸易有限公司 具有对于ldpc码可靠性输入的比特翻转解码
US9048867B2 (en) * 2013-05-21 2015-06-02 Lsi Corporation Shift register-based layered low density parity check decoder
US9459956B2 (en) * 2013-07-19 2016-10-04 Seagate Technology Llc Data decoder with trapping set flip bit mapper
EP2833553B1 (en) 2013-07-30 2021-03-31 Alcatel Lucent LDPC decoder
US9553608B2 (en) * 2013-12-20 2017-01-24 Sandisk Technologies Llc Data storage device decoder and method of operation
RU2014104571A (ru) 2014-02-10 2015-08-20 ЭлЭсАй Корпорейшн Системы и способы для эффективного с точки зрения площади кодирования данных
EP3001585B1 (en) 2014-09-29 2017-07-12 Alcatel Lucent Optical coherent receiver with forward error correction and parallel decoding
US9806743B2 (en) 2015-11-16 2017-10-31 Mitsubishi Electric Research Laboratories, Inc. System and method of belief propagation decoding
US10367526B2 (en) * 2015-11-23 2019-07-30 Avago Technologies International Sales Pte. Limited Irregular low density parity check processing system with non-uniform scaling
US10110249B2 (en) 2016-08-23 2018-10-23 Sandisk Technologies Llc Column-layered message-passing LDPC decoder
US10594339B2 (en) * 2017-02-03 2020-03-17 Huawei Technologies Co., Ltd. Method for generating parity check matrix for low density parity check coding
EP3373488B1 (en) * 2017-03-07 2020-05-06 Commissariat à l'Energie Atomique et aux Energies Alternatives Stopping criterion for decoding quasi-cyclic ldpc codes
US10530392B2 (en) 2017-07-31 2020-01-07 Codelucida, Inc. Vertical layered finite alphabet iterative decoding
CN112655152A (zh) 2018-08-03 2021-04-13 科得鲁西达股份有限公司 用于编码准循环低密度奇偶校验码的方法及设备

Also Published As

Publication number Publication date
CN113783576A (zh) 2021-12-10
US20220255560A1 (en) 2022-08-11
US11258460B2 (en) 2022-02-22
US20210391872A1 (en) 2021-12-16

Similar Documents

Publication Publication Date Title
TW202205815A (zh) 用於自循環置換矩陣之叢集建構之準循環低密度奇偶檢查碼之垂直分層解碼之方法及裝置
US10298261B2 (en) Reduced complexity non-binary LDPC decoding algorithm
CN111615793A (zh) 竖直分层式有限字母表迭代解码
CN100589357C (zh) 基于单位阵及其循环移位阵的ldpc码向量译码装置和方法
CN101803210B (zh) 使用块结构奇偶校验矩阵来提供半并行低密度奇偶校验解码的方法、装置和设备
US9195536B2 (en) Error correction decoder and error correction decoding method
US9461671B1 (en) Method and apparatus for power conservation in LDPC decoding
US20060020870A1 (en) Layered decoding of low density parity check (PDPC) codes
WO2018036178A1 (zh) 一种ldpc的解码方法
US9490844B1 (en) Syndrome computation in a layered low density parity check decoder
US10848182B2 (en) Iterative decoding with early termination criterion that permits errors in redundancy part
US20160020783A1 (en) Low Density Parity Check Decoder With Relative Indexing
WO2017113507A1 (zh) 一种集合译码方法和集合译码器
Bhatt et al. Pipelined block-serial decoder architecture for structured LDPC codes
Shao et al. Dispersed array LDPC codes and decoder architecture for NAND flash memory
KR101657912B1 (ko) 비이진 저밀도 패리티 검사 코드의 복호화 방법
US20170134048A1 (en) Message-passing based decoding using syndrome information, and related methods
KR101631128B1 (ko) 크기조정 상수를 사용하는 가변 노드 업데이터를 갖는 ldpc 디코더
US11108410B1 (en) User-programmable LDPC decoder
CN113595564B (zh) 基于信息截断的低复杂度多进制ldpc码译码器装置
US8347167B2 (en) Circuits for implementing parity computation in a parallel architecture LDPC decoder
US20150254130A1 (en) Error correction decoder
Ren et al. An NB-LDPC decoder algorithm combined using channel information for storage application
TW202203238A (zh) 使用預測性量值映射以用於準循環低密度奇偶校驗碼之垂直分層解碼之方法及設備
Wasson et al. Hardware-based ADMM-LP decoding