TWI406508B - 解碼ldpc編碼信號的解碼器 - Google Patents

解碼ldpc編碼信號的解碼器 Download PDF

Info

Publication number
TWI406508B
TWI406508B TW97124955A TW97124955A TWI406508B TW I406508 B TWI406508 B TW I406508B TW 97124955 A TW97124955 A TW 97124955A TW 97124955 A TW97124955 A TW 97124955A TW I406508 B TWI406508 B TW I406508B
Authority
TW
Taiwan
Prior art keywords
bit
check
ldpc
registers
message
Prior art date
Application number
TW97124955A
Other languages
English (en)
Other versions
TW200922152A (en
Inventor
J Blanksby Andrew
Lai Lin Alvin
Original Assignee
Broadcom Corp
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 Broadcom Corp filed Critical Broadcom Corp
Publication of TW200922152A publication Critical patent/TW200922152A/zh
Application granted granted Critical
Publication of TWI406508B publication Critical patent/TWI406508B/zh

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/65Purpose and implementation aspects
    • H03M13/6508Flexibility, adaptability, parametrability and configurability of the implementation
    • H03M13/6516Support of multiple code parameters, e.g. generalized Reed-Solomon decoder for a variety of generator polynomials or Galois fields
    • 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
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1111Soft-decision decoding, e.g. by means of message passing or belief propagation algorithms
    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/11Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits using multiple parity bits
    • H03M13/1102Codes on graphs and decoding on graphs, e.g. low-density parity check [LDPC] codes
    • H03M13/1105Decoding
    • H03M13/1131Scheduling of bit node or check node processing
    • H03M13/1137Partly parallel processing, i.e. sub-blocks or sub-groups of nodes being processed in parallel
    • 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

Description

解碼LDPC編碼信號的解碼器
本發明涉及通信系統,更具體地說,涉及通信系統內低密度奇偶校驗(Low Density Parity Check,簡稱LDPC)編碼信號的解碼。
資料通信系統已經持續發展了多年,近年來,採用疊代改錯碼的通信系統是研究者們關注的焦點。其中最受關注的是採用LDPC碼的通信系統。在同一信噪比情況下,使用疊代碼的通信系統的誤碼率通常低於使用其他編碼的通信系統。
該領域的一個持續和主要的發展方向是降低通信系統中的信噪比以達到特定的誤碼率。理想的目標是嘗試研究通信通道中的山農限度(Shannon's limit),山農限度可以看作是用在具有特定信噪比的通道中使用的資料傳輸率,通過該通道可實現無誤碼傳輸。換句話說,山農限度是在給定調製和編碼率情況下通道容量的理論限度。
LDPC碼已被證實在某些情況下可以提供接近山農限度的非常好的解碼性能。理論上,某些LDPC解碼器被證實可以達到離山農限度0.3分貝的性能。長度為一百萬的不規則LDPC碼曾達到該性能,它證實了在通信系統中應用LDPC碼是非常有希望的。
LDPC編碼信號的使用繼續被應用於許多新的領域。可採用LDPC編碼信號的幾種可能的通信系統的例子包括用於高速乙太網應用的採用4對雙絞線電纜的通信系統(例如依據 IEEE 802.3an的10Gbps(吉位元/秒)乙太網操作(10GBASE-T))以及無線環境內運行的通信系統(例如在包括IEEE 802.11n新興標準的IEEE 802.11環境空間內)。
對於這些特殊的通信系統應用領域,非常期望有能夠實現接近容量的改錯碼。因使用傳統的鏈結碼而引入的潛在限制(latency constraints),妨礙了他們在高資料率通信系統應用領域內的使用。
一般來講,在採用LDPC碼的通信系統環境內,在通信通道的一端有一個具有編碼器能力的第一通信設備,在通信通道的另一端有一個具有解碼器能力的第二通信設備。多數情況下,這兩個通信設備其一或兩者都具有編碼器和解碼器能力(例如在雙向通信系統內)。LDPC碼還可以應用于各種其他應用中,包括那些採用某種形式的資料存儲(例如,硬碟驅動器HDD應用和其他存儲設備)的應用,其中資料在寫入存儲媒介之前被編碼,然後資料在從該資料媒介中讀出/取出後被解碼。
在許多這樣的現有通信設備中,設計解碼LDPC編碼信號的有效設備和/或通信設備的一個最大的困難在於存儲和管理在疊代解碼過程中(例如,在校驗引擎和位元引擎之間來回存儲和傳遞校驗邊消息和位元邊消息時)被更新和使用的所有位元邊消息(bit edge message)和校驗邊消息(check edge message)所需的大面積和記憶體。在LDPC碼環境中處理相對較大的塊尺寸時,處理這些校驗邊消息和位元邊消息所需的記憶體要求和記憶體管理將是非常難於處理的。因而本技術領域需要並將繼續需要有一種更好的手段來解碼LDPC編碼信號以提取出編碼在其內的資訊。
本發明涉及設備和操作方法,對其的進一步描述將在如下的附圖、具體實施方式和權利要求中進行。
根據本發明的一個方面,本發明提供一種解碼LDPC編碼信號的解碼器,所述解碼器包括:配置在菊花鏈架構內的多個寄存器和多個複用器(MUX),其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:採用所述第二校驗邊消息更新第二位元邊消息從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置(non-null location);所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎。
優選地,所述解碼器進一步包括:包含所述校驗引擎的 多個校驗引擎;包含所述位元引擎的多個位元引擎;其中,所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至(hard-wired to)所述多個位元引擎和所述多個校驗引擎。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位(CSI(Cyclic Shifted Identity))子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個非迴圈移位元單位(non-CSI)子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括至少一個迴圈移位元單位子矩陣和至少一個非迴圈移位元單位子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個矩形(square)子矩陣。
優選地,所述解碼器執行置信傳播(belief propagation)解碼處理或消息傳遞(message passing)解碼處理。
優選地,所述菊花鏈架構配置執行多個位元邊消息的移位元用於位元節點處理,或執行多個校驗邊消息的移位元用於校驗節點處理。
優選地,所述解碼器實現在積體電路內。
優選地,所述解碼器實現在從通信通道接收LDPC編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個內。
根據本發明的一個方面,本發明提供一種解碼LDPC編碼信號的解碼器,所述解碼器包括:配置在菊花鏈架構內的多個寄存器和多個複用器,其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;多個校驗引擎,其採用第一多個位元邊消息更新第一多個校驗邊消息,從而生成第二多個校驗邊消息;多個位元引擎,其:採用所述第二多個校驗邊消息更新第二多個位元邊消息從而生成第三多個位元邊消息;採用所述第三多個位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的至少一個資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的至少一個資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的所述至少一個資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置;所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎;所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至所述多個位元引擎和所述多個校驗引擎;所述解碼器執行置信傳播解碼處理或消息傳遞解碼處理。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個非迴圈移位元單位子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括至少一個迴圈移位元單位子矩陣和至少一個非迴圈移位元單位子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個矩形子矩陣。
優選地,所述解碼器實現在積體電路內。
優選地,所述解碼器實現在從通信通道接收LDPC編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個內。
根據本發明的一個方面,本發明提供一種解碼器,實現在積體電路內,用於解碼LDPC編碼信號,所述積體電路包括:配置在菊花鏈架構內的多個寄存器和多個複用器,其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:採用所述第二校驗邊消息更新第二位元邊消息從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的 資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置;所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎;所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至所述多個位元引擎和所述多個校驗引擎;所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個矩形子矩陣。
優選地,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位子矩陣。
優選地,所述解碼器實現在從通信通道接收LDPC編碼信號的通信設備內;且所述通信設備實現在衛星通信系統、無線通信系統、有線通信系統和光纖通信系統中的至少一個內。
本發明的各種優點、各個方面和創新特徵,以及其中所示例的實施例的細節,將在以下的描述和附圖中進行詳細介紹。
如圖1所示的通信系統10包括多個基站和/或訪問點12、16,多個無線通信設備18~32和網路硬體部件34。網路硬體 34可以是路由器、交換機、網橋、數據機、系統控制器等等,為所述通信系統10提供廣域網連接42。無線通信設備18~32可以是筆記本主機18和26、個人數位助理20和30、個人電腦主機24和32和/或包括有內置的無線收發器和/或具有相關聯無線收發器的蜂窩電話主機22和28和/或。圖2~16將具體描述無線收發器。
LDPC(低密度奇偶校驗)碼是容量逼近前向改錯碼(ECC),正被大量通信標準(例如IEEE 802.3an、IEEE 802.11n、802.20、DVB-S2)所採用。相關的應用領域包括磁記錄、無線、通過銅纜和光纖的高速資料傳輸。
一個實施例中,使用疊代解碼方法來執行LDPC解碼處理,其中,在執行校驗節點處理(有時又被稱為“校驗引擎處理”)和位元節點處理(有時又被稱為“位元引擎處理”)時將來回傳遞消息(例如,校驗邊消息和位元邊消息(或又被稱為“變數邊消息”))。某些時候,這被稱為消息傳遞解碼處理,在編碼的圖形標示上(例如,LDPC二分圖(業內有時也稱其為"Tanner"圖))操作。
其中的一個關鍵的硬體實現難點是在每次解碼器疊代過程中必須交換的大量消息的管理。因此提出了各種方法來減少對記憶體的需求、某些硬體需求(例如,無需桶形移位器(barrel shifter)和任何大扇入複用器(MUX),或通常用於存儲校驗邊消息和位元邊消息的大記憶體如RAM)。此外,根據本發明執行解碼處理的新方法還提供了高吞吐量。採用一個或多個菊花鏈且每個菊花鏈具有合適設置的寄存器和僅僅局部化的(localized)MUX(例如,僅有2個輸入的MUX)的新方法分別針 對校驗節點處理和位元節點處理執行校驗邊消息和位元邊消息的合適移位元和對準。某些實施例中,本申請中介紹的方法基於LDPC碼的低密度奇偶校驗矩陣H由子矩陣構成的事實。例如,在處理低密度奇偶校驗矩陣H時可執行子矩陣的處理,並且低密度奇偶校驗矩陣H的特徵(例如,由子矩陣構成)可應用於對架構和效率的改進。
在每個菊花鏈中,每個寄存器存儲任一特定時間的校驗邊消息和位元邊消息,MUX用於選擇在特定處理時間內校驗邊消息和位元邊消息中哪個將被更新。還需要注意,本發明中採用的菊花鏈配置與傳統的菊花鏈的不同點在於,本發明中採用的菊花鏈包括有MUX,實現首先是位元邊消息其次是校驗邊消息的更新,反之亦然,且在不同時間使用的是完全相同的菊花鏈。一個或多個位元引擎以及一個或多個校驗引擎何時連接到菊花鏈的連接性取決於低密度奇偶校驗矩陣H內的非零元素的位置。換句話說,從某種角度來說,菊花鏈的硬連線連接性(hard-wired connectivity)對應於低密度奇偶校驗矩陣H。
此外,一般來說,當以子矩陣為基礎進行解碼時,若每個子矩陣的大小為"X×X",本發明的方法可採用"N"個位元引擎和"M"個校驗引擎,從而X/M和X/N均構成第一和/或第二整數值。也就是說,採用的位元引擎的數量不需要與採用的校驗引擎的數量相同。
或者,如果這些條件不滿足(例如,X/M和X/N其中之一或兩者構成非整數值),則在執行位元節點處理或校驗節點處理時分別會有一個或多個位元引擎和/或校驗引擎是空閒的(idle)。儘管如此,仍然可以採用本發明中使用菊花鏈的方法。
本申請中提出的新手段包括一種LDPC解碼架構,利用分散式處理技術(例如,菊花鏈)來增加資料吞吐量並減少記憶體存儲需求。在這種設計中,路由擁塞和關鍵的路徑等待時間(latency)也得到改善。本申請中提出的新解碼方法還可應用於操作在低密度奇偶校驗矩陣H上的LDPC碼,該矩陣H由迴圈移位元單位矩陣子模組組成。某些實施例中,整個低密度奇偶校驗矩陣H被劃分成多個矩形子矩陣,使得每個子矩陣由CSI(迴圈移位元單位)矩陣或空矩陣(全零)組成。CSI子矩陣是通過單位矩陣的迴圈移位元得到的(例如,可通過從作為單位矩陣的原始子矩陣開始執行迴圈移位,從而使從左上方的入口開始繼續向下並向右直到最右下方的對角線列元素全部為值"1",而其他元素為"0",來得到CSI子矩陣)。當用於解碼LDPC編碼信號的低密度奇偶校驗矩陣H包括具有CSI格式的子矩陣的情況下,則每個子矩陣的CSI偏移量應該是已知的。CSI偏移量是從原始單位矩陣生成期望的CSI矩陣所需的迴圈移位量。低密度奇偶校驗矩陣H具有如此結構(例如,包括CSI子矩陣等)的LDPC碼在IEEE 802.11n草案2.02標準和IEEE 802.16e標準中有介紹。
應注意,本申請中提出的手段也同樣可適用於對低密度奇偶校驗矩陣H未包含CSI格式的子矩陣的LDPC編碼信號的解碼。換句話說,本申請中提出的新解碼方法可適用於任何形式的低密度奇偶校驗矩陣H。
注意,本申請中以下描述的任意實施例和方法都是可以適用的,不管整個LDPC解碼器的架構如何,例如,在架構/硬體實現上是否是完全並行的、部分並行的或串列的。
數位通信系統的目標是從一個位置或子系統無錯地或以可接受的低錯誤率發送數位資料到另一個位置或子系統。如圖1所示,資料可通過多種通信系統內的各種通信通道來傳輸:磁媒介、有線、無線、光纖、銅纜和其他類型的媒介。
圖1和圖2分別是根據本發明不同實施例的通信系統的100和200的示意圖。
如圖1所示,通信系統100包括一個通信通道199,將位於通信通道199一端的通信設備110(包括帶有編碼器114的發送器112和帶有解碼器118的接收器116)與位於通信通道199另一端的另一個通信設備120(包括帶有編碼器128的發送器126和帶有解碼器124的接收器122)通信連接。在某些實施例中,通信設備110和120均可僅包括一個發送器或一個接收器。通信通道199可通過各種不同類型的媒介來實現(例如,利用圓盤式衛星接收天線132和134的衛星通信通道130、利用塔142與144和/或本地天線152和154的無線通信通道140、有線通信通道150和/或利用電-光(E/O)介面162和光-電(O/E)介面164的光纖通信通道160)。另外,可以通過一種以上的媒介連接在一起從而形成通信通道199。
為了減少通信系統內不期望出現的傳輸錯誤,通常採用糾錯和通道編碼方案。一般,這些糾錯和通道編碼方案包括發送器端編碼器的使用以及接收器端解碼器的使用。
如圖2所示的通信系統200中,在通信通道299的發送端,資訊位元201被提供給發送器297,發送器297可使用編碼器和符號映射器200(可分別視為是不同的功能塊222和224) 執行對這些信習位元201的編碼,從而生成一個離散值調製符號序列203,然後提供給發送驅動器230。發送驅動器230使用DAC(數模轉換器)232生成一個連續時間發送信號204,然後通過發送濾波器234,生成充分適合通信通道299的濾波後連續時間發送信號205。在通信通道299的接收端,連續時間接收信號206被提供給AFE(類比前端)260,AFE 260包括接收濾波器262(生成濾波後連續時間接收信號207)和ADC(模數轉換器)264(生成離散時間接收信號208)。量度生成器(metric generator)270計算符號量度(symbol metrics)209,解碼器280使用符號量度209做出對離散值調製符號和編碼在其內的資訊位元的最佳估算210。
前述實施例中的解碼器具有本發明的各種特徵。另外,以下的一些附圖和相關的描述將介紹支援本發明的設備、系統、功能性和/或方法的其他和特定實施例(某些實施例的介紹更加詳細)。根據本發明處理的一種特定類型的信號是LDPC編碼信號。在給出更詳細的介紹之前,先對LDPC碼進行概要描述。
圖3示出了執行LDPC解碼處理的裝置300的一個實施例。裝置300包括處理模組320和記憶體310。記憶體310連接至處理模組320,並且記憶體310用於存儲能使處理模組320執行各種功能的操作指令。處理模組320用於執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式。
處理模組320可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控 制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體310可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備320通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。
某些實施例中若期望如此,執行LDPC解碼處理的方式(例如,將執行哪種方式的操作參數修改,該操作參數修改將對哪些參數執行,是否針對不同的解碼疊代執行不同的操作參數修改,等等)可從裝置300提供給使用預期的LDPC碼執行LDPC編碼的通信系統340。例如,對應於被使用的LDPC碼的資訊(例如,LDPC碼的奇偶校驗矩陣)也可從處理模組320提供給通信系統340內的任意通信設備330。此外,通信系統340內的任一通信設備330內將執行的LDPC碼將以哪種方式執行,也可從處理模組320提供。
若想要,處理模組320可被設計成生成依據多個需求和/或預期生成多種執行LDPC解碼的方式。某些實施例中,處理模組320選擇性的提供不同的資訊(例如,對應於不同LDPC碼、不同操作參數修改等的資訊)給不同的通信設備和/或通信系統。因而,不同通信設備之間的不同通信鏈結可採用不同的LDPC碼和/或執行LDPC解碼的方式(例如,採用不同的操作 參數修改)。顯然,處理模組320還能提供相同的資訊給每個不同的通信設備和/或通信系統而不會脫離本發明的保護範圍和精神實質。
圖4示出了另一實施例的執行LDPC解碼處理的裝置400。裝置400包括處理模組420和記憶體410。記憶體410連接至處理模組420,並且記憶體410用於存儲能使處理模組420執行各種功能的操作指令。處理模組420(由記憶體410服務的)可實現為能夠執行此處所描述的各種模組和/或功能塊的任意功能的設備。例如,處理模組420(由記憶體410服務的)可實現為用於執行和/或控制依據本申請中所描述的任一實施例或其等效實施例執行的LDPC解碼處理的方式的設備。
處理模組420可使用共用的處理設備、單個的處理設備或多個處理設備來實現。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。記憶體410可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備420通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。
某些實施例中若期望如此,裝置400可以是任意一種通信設備430,或這樣的通信設備430中的任意部分。包括有處 理模組420和記憶體410的通信設備430可實現在任意通信系統440內。還要注意,本申請中的LDPC解碼處理和/或依據LDPC解碼處理進行的操作參數修改的各個實施例及其各種等效實施例,可應用於多種類型的通信系統和/或通信設備。
圖5是LDPC碼二分圖500的示意圖。在業內,LDPC二分圖也被稱為Tanner圖(坦納圖)。LDPC碼被看作是具有二進位奇偶校驗矩陣從而使矩陣的幾乎所有元素都為零值(例如,該二進位奇偶校驗矩陣是稀疏矩陣)的代碼。例如,H=(hi,j)MxN被看作是區塊長度為N的LDPC碼奇偶校驗矩陣。
LDPC碼是線性區塊碼,因此所有碼字的集合xC分佈在奇偶校驗矩陣H的零空間內。
對於LDPC碼,H是m×n維的稀疏二進位矩陣。H的每行對應於一個奇偶校驗,一組元素hij表示資料符號j參與奇偶校驗i。H的每列對應於碼字元號。
對於每個碼字x,有n個符號,其中m個是奇偶符號。因此,編碼率r給定為:r=(n-m)/n (2)
行和列的權重分別定義為H的給定行或列的集合元素的數量。H的集合元素選定為滿足編碼的性能需求。奇偶校驗矩陣的第i列中1的數量表示為dv(i),奇偶校驗矩陣的第j行中的1的數量表示為dc(j)。如果對所有的i,dv(i)=dv,對 所有的j,dc(j)=dc,那麼這種LDPC碼被稱為(dv,dc)規則LDPC碼,否則被稱為不規則LDPC碼。
關於LDPC碼的介紹請參考以下參考文獻:[1]R. Gallager,Low-Dentisy Parity-Check Codes,Cambridge,MA:MIT Press,1963.
[2]R. G. Gallager,"Low Dentisy Parity Check Codes",IRE Trans. Info. Theory,Vol. IT-8, Jan. 1962, PP. 21-28.
[3]M. G. Luby,M. Mitzenmacher,M. A. Shokrollahi,D.A. Spielman,and V. Stemann, "Practical Loss-Resilient Codes",Proc.29thSymp.On Theoryof Computing, 1997, pp. 150-159.
規則LDPC碼可表示為二分圖500,其奇偶校驗矩陣的左側節點為代碼位元變數(或為解碼LDPC編碼信號的位元解碼方法中的“變數節點”(或“位元節點”)510),右側節點為校驗方程(或“校驗節點”520)。由H定義的LDPC碼的二分圖500(或稱為坦納圖500)可由N個變數節點(例如,N個位元節點)和M個校驗節點來定義。N個變數節點510中的每個變數節點都具有精確的dv(i)個邊(如邊530),連接位元節點例如vi 512與一個或多個校驗節點(M個校驗節點內)。圖中所示的邊530連接位節點vi 512與校驗節點cj 522。該dv個邊(如dv 514所示)的數量dv被稱為變數節點的度i。類似地,M個校驗節點520中的每個校驗節點都有精確的dc(j)個邊(如dc 524所示),連接該節點與一個或多個變數節點(或位元節點)510。該邊的數量dc被稱為校驗節點的度j。
變數節點vi(或位元節點bi)512與校驗節點cj 522之間 的邊530可被定義為e=(i,j)。但是,另一方面,給定邊e=(i,j),則該邊的節點可表示為e=(v(e),c(e))(或e=(b(e),c(e)))。或者,二分圖中的邊對應于H的集合元素,其中,集合元素hji表示一條邊連接位元(例如,變數)節點i和奇偶校驗節點j。
假定給出變數節點vi(或位元節點bi),可將從節點vi(或位元節點bi)發射出的一組邊定義為EV(i)={e | v(e)=i}(或Eb(i)={e | b(e)=i})。這些邊被稱為位元邊,而對應於這些位元邊的消息被稱為位元邊消息。
假定給出校驗節點cj,可將從節點cj發射出的一組邊定義為Ec(j)={e | c(e)=j}。這些邊被稱為校驗邊,而對應于這些校驗邊的消息被稱為校驗邊消息。接著,導出的結果是| Ev(i)|=dv(或| Eb(i)|=db)以及| Ec(j)|=dc。
一般說來,任何可用二分圖表示的代碼,其特徵都是圖形碼。要注意的是,不規則LDPC碼也可用二分圖表示。但是,不規則LDPC碼內的每組節點的度可根據某些分佈進行選擇。因此,對於不規則LDPC碼的兩個不同變數節點vi1和vi2,| Ev(i1)|可能會不等於| Ev(i2)|。對於兩個校驗節點也是這種關係。不規則LDPC碼的概念最早在上述的參考文獻[3]中給出了介紹。
總之,通過LDPC碼的圖示,LDPC碼的參數可由分佈的度來定義,如M. Luby等在上述參考文獻[3]中所述,以下的參考文獻中也有相關的描述:[4]T. J. Richardson and R. L. Urbanke, "The capacity of low-density parity-check code under message-passing decoding",IEEETrans.Inform.Theory,Vol. 47,No.2, Feb. 2001,pp. 599-618.
這種分佈可描述如下:用λ i表示從度為i的變數節點發射的邊的分數,ρ i表示從度為i的校驗節點發射的邊的分數,則度分佈對定義如下:,其中Mv和Mc分別表示變數節點和校驗節點的最大度。
雖然在此描述的多個實施例採用規則LDPC碼,但是要注意的是本發明的特徵既適用於規則LDPC碼,也適用於不規則LDPC碼。
還要注意的是,本申請中描述的多數實施例採用“位元節點”和“位元邊消息”或等效的表述這樣的命名。但是通常在LDPC解碼的現有技術中,“位元節點”和“位元邊消息”又被稱為“變數節點”和“變數邊消息”,因此,位元值(或變數值)是那些試圖被估算的值。這兩種命名都可以被本申請所採用。
本申請中提出的新解碼方法可依據解碼LDPC編碼信號的置信傳播演算法(或有些時候又稱為置信傳播解碼處理)來執行。置信傳播演算法(belief propagation algorithm)包括使用一位元所參與的奇偶校驗方程來疊代更新每個位元的概率值(如上述R. Gallager於1963出版的參考文獻[1]所述)。這一演算法某些時候又可被稱為“消息傳遞解碼”(或消息傳遞解碼處 理),因為內部資訊作為消息在校驗節點和位元節點之間進行傳遞(如上述Richardson和Urbanke在2001年出版的參考文獻[4]所述)。校驗節點對應於低密度奇偶校驗矩陣H內的行,位元節點對應於低密度奇偶校驗矩陣H內的列。因此,置信傳播演算法的疊代將由各行上的校驗節點更新以及緊跟著各列上的位元節點更新組成。
圖6示出了LDPC解碼功能600的一個實施例。為了執行具有m位元信號序列的LDPC編碼信號的解碼,採用了圖6所示的功能塊。一般來說,從通信通道接收到連續時間信號(continuous-time signal),如附圖標號601所示。該通信通道可以是任何類型的通道,包括但不限於有線通信通道、無線通信通道、光纖通信通道、HDD的讀通道或能夠傳送已使用LDPC碼編碼的連續時間信號的其他類型的通信通道。
類比前端(AFE)610對該連續時間信號執行任何初始處理(例如,通過執行濾波(類比和/或數位濾波)、增益調節等一種或多種處理)並進行數位採樣,從而生成離散時間信號611。該離散時間信號611又被稱為數位信號、基帶信號或現有技術中已知的其他命名。通常,離散時間信號611被分成信號的I、Q(同相、正交)值。
度量生成器620接收離散時間信號611(例如,其包括有I、Q值),並計算對應的位元度量和/或對數似然比(LLR)621,其對應於離散時間信號611內的接收值。某些實施例中,這些位元度量/LLR符號度量621的計算是兩個步驟的處理,其中,度量生成器620首先計算對應於離散時間信號611的符號的符號度量,然後度量生成器再採用該符號度量來分解這些符號度 量為位元度量/LLR 621。然後由位元引擎630使用這些位元度量/LLR 621來初始化位元邊消息(例如,如附圖標號629所示),在執行LDPC編碼信號的疊代解碼處理635(例如,如位元引擎630和校驗引擎640所執行的)時將使用該位元邊消息。
對數似然比(LLR)的值為λ i,對應的接收符號的值為yi的情況下,針對每個變數節點i的位元邊消息的初始化可以定義為如下:
同樣,在位元節點處,位元引擎630使用最近更新的位元邊消息計算該位元的對應軟資訊(例如,如軟資訊632所示)。然而,通常要執行多次解碼疊代,因而經初始化的位元邊消息被傳送給校驗引擎640,在其中,第一次解碼疊代過程中,校驗引擎640採用該初始化的位元邊消息更新校驗邊消息。
在每個校驗節點處,LDPC解碼處理在入站消息的正負號(sign)上形成奇偶校驗結果(XOR)。這通過找出每個出站消息的正負號作為具有該奇偶校驗結果的對應入站消息的正負號的XOR來執行。
然後,依據下式計算從校驗節點j到位元(例如,變數)節點i的出站消息可靠性:
某些期望的實施例中,這一計算在對數域內執行,以將乘法轉換成加法,如下:
此後,位元引擎630從校驗引擎640接收經更新的邊消息(例如,如校驗邊消息641所示),並利用他們更新位元邊消息。同樣,位元引擎630還在依據LDPC解碼執行位元邊消息的更新時使用從度量生成器620接收的位元度量/LLR 621。然後,這些經更新的校驗邊消息641被傳送回位元節點(例如,位元引擎630),在此使用位元度量/LLR 621和校驗邊消息的當前疊代值計算出該位元的軟資訊632。在每個位元(例如,變數)節點處,軟資訊的計算包括形成來自校驗節點的入站消息(例如,校驗邊消息641)內的接收符號的LLR的和。解碼出的位元由求出的總和的正負號_sign來給出。用於下一次解碼疊代的每個出站消息通過從該總和中減去對應的入站消息來計算得到。為了繼續疊代解碼處理635,這些位元邊消息631在被更新後,被傳送給校驗引擎640。
然後執行再一次解碼疊代。在校驗節點處,校驗引擎640接收從位元節點(例如,從位元節點630)發送來的經更新的位元邊消息631,並據此更新校驗邊消息。然後,將經更新的校驗邊消息641傳送回位元節點(例如,位元引擎630),在此使用位元度量/LLR 621和校驗邊消息的當前疊代值計算出位元的軟資訊632。此後,使用這一剛剛計算出的位元的軟資訊632,位元引擎630再次使用校驗邊消息的前一值(來自剛剛的 前次疊代)更新位元邊消息。依據編碼正被解碼的信號時所採用的LDPC碼二分圖,疊代處理635在位元節點和校驗節點之間繼續進行。
位元節點引擎630和校驗節點引擎640所執行的這些疊代解碼處理步驟重復進行,直到滿足停止標準,如附圖標號661所示(例如,已經執行了預定的或自適應確定的疊代次數後,LDPC碼的所有校正子都等於零後(例如,所有的奇偶校驗均滿足),和/或已經滿足其他的停止標準)。LDPC解碼停止的另一種方式是當LDPC碼字的當前估計值滿足以下關係時停止:H=0
每次解碼疊代過程中,軟資訊632會在位元引擎630中生成。圖中所示的這個實施例中,可將軟資訊632提供給做出硬判決的硬限幅器(hard limiter)650,而且硬資訊(例如,硬/最佳估計值651)可提供給校正子計算器660以確定LDPC碼的校正子是否都等於零。也就是說,校正子計算器660基於LDPC碼字的當前估計值確定是否與LDPC碼相關的每個校正子都等於零。
當校正子不等於零時,再繼續疊代解碼處理635,適當地在位元節點引擎630和校驗節點引擎640之間更新和傳遞位元邊消息和校驗邊消息。執行完疊代解碼處理的所有步驟後,基於軟資訊632輸出該位元的硬/最佳估計值651。
圖7示出了消息傳遞解碼處理或置信傳播解碼處理700的一個實施例以及校驗節點、位元節點和低密度奇偶校驗矩陣H的行和列之間的關係。這一特殊的低密度奇偶校驗矩陣H 包括4行和8列。該低密度奇偶校驗矩陣H的各行對應於表示該特殊LDPC碼的LDPC二分圖中的校驗節點,該低密度奇偶校驗矩陣H的各列對應於表示該特殊LDPC碼的LDPC二分圖中的位元節點(或變數節點)。從圖的左手側可以看出,該低密度奇偶校驗矩陣H內包括有非零值元素(即"1")和零值元素(即"0")。對於每次解碼疊代,依據LDPC二分圖的邊連接性在處理模組(例如一個或多個位元引擎到一個或多個校驗引擎,反之亦然)之間傳遞邊消息。
從圖中可以看出,該低密度奇偶校驗矩陣H內的非零值元素對應於LDPC二分圖中可選擇性地將某些校驗節點與某些位元節點互連的邊。
每次校驗節點更新可通過任意幾個可能的計算來執行,包括和-積、最小和(參見以下引用的參考文獻[5])、改進最小和(參見以下參考文獻[6])和BCJR(參見以下參考文獻[7])。計算的選擇取決於分配給校驗節點更新的區域和等待時間預算。分散式處理LDPC解碼器能根據具體的應用使用任何可能的校驗節點更新。
[5]Anastasopoulos, A., "A comparision between the sum-product and the min-sum iterative detection algorithms based on density evolution",IEEEGlobalTelecommunicationConference, Vol. 2, No. 25-29, November 2001, pp. 1021-1025.
[6]Karkooti, M., and Cavallaro, J.R., "Semi-Parallel Reconfigurable Architectures for Real-Time LDPC Decoding",Proceedings of the International Conference on Information Technology: Coding and Computing, Vol. 1, 2004, pp. 579-585.
[7]Mansour, M.M., and Shanbhag, N.R., "Low-Power VLSI Decoder Architectures for LDPC Codes",Proceedings of the 2002 International Symposium on Low Power Electronics and Design, 2002, pp. 284-289.
還需要注意的是,為了很好的解碼性能,二分圖中迴圈周期的長度盡可能的長是很重要的。短的迴圈周期,例如4迴圈,可能會降低用於解碼LDPC編號信號的消息傳遞解碼方法的性能。
雖然消息傳遞解碼方法的數學計算包括雙曲線函數和對數函數(參見等式(5)),在硬體實現中,這些函數也可通過查找表(LUT)逼近或直接通過邏輯門實現。數學計算僅涉及加法、減法和XOR操作。固定點實現中所需的位元的數量由所需的編碼性能、解碼器收斂的速度以及是否必需壓制誤碼平層(error floor)(如參考文件[8]所描述)來確定。
[8]Zhang, T., Wang, Z., and Parhi, K., "On finite precision implementation of low density parity check codes decoder",Proceedings of ISCAS, Sydney, Australia, May 2001, pp 202-205.
本申請所提出的新解碼方法採用分散式處理LDPC解碼器,在每個非零子模組位置使用一個寄存器菊花鏈。這些寄存器用作校驗消息和位元消息的記憶體結構。這不同于現有的基於RAM的解碼器,基於RAM的解碼器包含有RAM以用於 每個位元節點以及每個校驗節點,如參考文獻[9]中所述。
[9]Mansour, M.M, and Shanbhag, N.R., "High-Throughput LDPC Decoders", IEEE Transactions on Very Large Scale Integration Systems, Vol. 11, No. 6, December 2003, pp. 976-996.
本申請中提出的新的菊花鏈方法還不同於以下參考文獻[10]中介紹的全並行架構,全並行架構中,從校驗節點到位元節點以及從位元節點到校驗節點的每一個連接都用線纜和寄存器來示例。
[10]Andrew J. Blanksby and Chris J. Howland, "A 690-mW 1-Gb/s 1024-b, rate-1/2 low density parity-check code decoder",IEEE JournalofSolid-StateCircuits, Vol. 37, No. 3, March 2002, pp 404-412.
在本申請介紹的分散式處理LDPC解碼器中,寄存器菊花鏈(以及合適設置的MUX)用於將資料移位元一個位置,而不是遞增RAM位址(如現有技術中所採用的)。
每個菊花鏈連接至至少一個校驗節點和至少一個位元節點。一條連接包括從菊花鏈寄存器到節點輸入的連接線以及從節點輸出到後一菊花鏈寄存器的寫回路徑。多個校驗節點和/或位元節點可連接至相同的菊花鏈以增加解碼器的吞吐量。
圖8示出了一個實施例中用於執行LDPC編碼信號的解碼的菊花鏈架構800。考慮圖8,菊花鏈的這一特定實施例(其包括6個寄存器,4個MUX,和2個位元引擎以及2個校驗引擎),對於子模組大小為6,具有兩個並行校驗節點和兩個並行位元節點。MUX控制是否校驗節點是活動的(例如,在校驗 節點處理過程中)或是否位元節點是活動的(例如,位元節點處理過程中)。
在一次解碼疊代過程中,校驗節點更新首先被啟動,而位元節點被去啟動。校驗節點更新/校驗節點處理將開始並持續直到整個菊花鏈填滿校驗邊消息。這時,校驗節點更新/校驗節點處理將停止,位元節點更新/位元節點處理開始。類似地,位元節點更新/位元節點處理將發生直到整個菊花鏈記憶體結構填滿位元邊消息。這一過程繼續進行直到碼字通過了故障校驗(syndrome check)、達到最大疊代次數、或一個或多個其他的停止標準/條件被滿足。
菊花鏈寄存器到校驗節點和位元節點之間的連接保持靜止,這是因為資料是繞著菊花鏈旋轉的。這消除了任何外部的資料移位元,同時能夠實現校驗節點和位元節點兩者內的任意並行度。校驗節點和位元節點理論上可在每對寄存器之間相加,從而產生全並行解碼器。
當每個記憶體使用不止一個的校驗節點和/或位元節點時,分散式處理LDPC解碼器落入被稱為半並行架構的這樣一類LDPC解碼器中(例如,參見參考文獻[6])。這樣的解碼器的優點在於相比串列架構具有改進的吞吐量,但是不會遭遇全並行解碼器的路由和面積損失。
圖9示出了基於分散式子矩陣的置信傳播解碼處理或消息傳遞解碼處理的一個實施例900。這個實施例採用多個寄存器存儲位元邊消息和校驗邊消息。一個實施例中,解碼處理是基於子矩陣執行的。針對低密度奇偶校驗矩陣H的子矩陣的 每列執行1個位元/變數引擎,針對低密度奇偶校驗矩陣H的子矩陣的每行執行1個校驗引擎。該架構包括由寄存器和MUX(僅為局部MUX,例如僅具有2個輸入的MUX)構成的菊花鏈。針對每個子矩陣還具有專門的變數/位元和校驗引擎輸入。所有這些元件提供了增加的並行性。
這一特定實施例對大小為m(行)×n(列)的子矩陣進行操作。從圖中可以看出,有m個執行的校驗引擎,和n個執行的變數/位元引擎。底行寄存器使用第一校驗引擎(例如,校驗引擎0),從底行寄存器起算的第二行使用校驗引擎1。從頂行寄存器起算的第二行使用校驗引擎(m-1)頂行寄存器使用校驗引擎m。
圖10示出了基於分散式子矩陣的置信傳播解碼處理或消息傳遞解碼處理的另一個實施例1000。該實施例示出了變數/位元節點i和校驗節點j之間的關係和連接性。每次超級疊代(super iteration)內(例如,涉及一次校驗節點處理子疊代和一次位元節點處理子疊代),所有的校驗邊消息和位元邊消息被更新。可以看出,此處不需要桶形移位元器。該實施例中的唯一的“記憶體”需求是多個寄存器和合適設置的MUX。
圖11示出了用於執行LDPC編碼信號的解碼的菊花鏈架構1100。菊花鏈架構的這一實施例示出了多個校驗引擎(例如,表示為校驗節點0、校驗節點1等等)和多個位元引擎(例如,表示為變數/位元節點0,變數/位元節點1等等)之間可以使用的連接性。如上所述,多種方法可用於校驗節點處理,例如和-積、最小和(參見參考文獻[5])、改進最小和(參見參考文獻[6])和BCJR(參見參考文獻[7])。
這一特定實施例對應於偏移量為3的迴圈移位元單位(CSI)子矩陣。這個實施例中,有9個周期用於變數/位元更新(例如,位元節點處理子疊代),並有9個周期用於校驗更新(例如,校驗節點處理子疊代)。
圖12示出了具有非CSI子矩陣的低密度奇偶校驗矩陣H所採用的變數/位元更新順序1200的實施例的示意圖。這個實施例中,針對每個子塊或子矩陣,觸發器(FF,flip-flop)或寄存器被雙重鏈結/連接成兩個單獨的菊花鏈以實現校驗節點處理和位元節點處理兩者中所使用的子矩陣格式。圖12示出了用於變數/位元節點處理的寄存器和MUX之間的連接性。圖13示出了用於校驗節點處理的寄存器和MUX之間的連接性。
圖13是圖12所示的具有非CSI子矩陣的低密度奇偶校驗矩陣H所採用的校驗更新順序1300的實施例的示意圖。可以看出,用於校驗節點處理的寄存器和MUX之間可選擇的連接性與圖12中的變數/位元節點處理的相比稍有不同。由於這個實施例是針對具有至少一個非CSI子矩陣的低密度奇偶校驗矩陣H的,菊花鏈之間具有雙重鏈路/連接,從而一個連接方式用於位元節點處理,另一個連接方式用於校驗節點處理。
圖14是處理LDPC編碼信號的方法的一個實施例1400的流程圖。方法1400一開始接收連續時間信號,如步驟1410所示。連續時間信號的接收和處理還包括對第一連續時間信號執行任何必需的下變頻轉換,從而生成第二連續時間信號,如步驟1412所示。需要執行的任何頻率轉換可通過從載波頻率到基帶頻率的直接轉換來執行。這一頻率轉換還可通過IF(中頻)來執行。不管哪個實施例中,在執行此方法時,接收的連 續時間信號都被降頻到基帶連續時間信號。此外,還可對接收的連續時間信號執行某些類型的增益調節/增益控制。
方法1400還採樣第一(或第二)連續時間信號從而生成連連續時間信號並從中提取出I、Q成分,如步驟1420所示。這一採樣可使用ADC(模數轉換器)或等效的手段來執行,以從經過合適的降頻轉換(可能的話,還經過濾波、增益調節等等)的連續時間信號生成離散時間信號。該離散時間信號的各個採樣樣本的I、Q成分也在這個步驟中提取出來。然後方法1400解調I、Q成分並執行I、Q成分的符號映射(例如映射到具有星座點分佈圖的星座圖形),從而生成離散值調製符號序列,如步驟1430所示。
方法1900的下一步驟執行邊消息的更新,直到滿足停止條件(例如,預定的疊代次數,直到所有校正子都等於零,或直到滿足某些其他的停止條件),如步驟1440所示。這一步驟可看作是依據前述的各個實施例執行LDPC解碼。該LDPC解碼一般包括用於更新位元邊消息(例如,變數邊消息)的位元引擎處理(如步驟1442所示)以及用於更新校驗邊消息的校驗引擎處理(如步驟1444所示)。此外,方法1400的LDPC解碼還包括採用菊花鏈(例如,寄存器和MUX)以在位元引擎處理和校驗引擎處理過程中執行位元邊消息和校驗邊消息的移位元以及資料傳送,如步驟1446所示。
停止條件滿足之後,方法1400基於對應于最近更新的位元邊消息的軟資訊做出硬決策,如步驟1450所示。最後方法1400輸出從接收的連續時間信號中提取出的LDPC編碼位元(LDPC碼字,或LDPC碼塊)(其包含有資訊位元)的最佳估計 值,如步驟1460所示。
在本申請所公開的內容中,需要注意的是,一旦低密度奇偶校驗矩陣H可用於通信通道接收端的解碼處理,便可從該低密度奇偶校驗矩陣H中直接生成LDPC碼的對應的生成矩陣G。有了這一資訊,設計者便可在通信通道的發送端執行編碼處理(使用LDPC碼的生成矩陣G),並在該通信信號的接收端執行解碼處理(使用LDPC碼的低密度奇偶校驗矩陣H)。實際上,從低密度奇偶校驗矩陣H中直接定義LDPC碼是現有技術中常用的。換句話說,低密度奇偶校驗矩陣H包含有定義LDPC碼所需的所有資訊。
圖15示出了包括具有多LDPC碼能力的通信設備1510的實施例1500。某些時候,期望有一個連接至通信通道1501的通信設備1510,能解碼不同的LDPC編碼信號,使得每個LDPC編碼信號都是依據不同的低密度奇偶校驗矩陣H生成的。例如,某些時候,通信設備需要接收和解碼具有對應的第一低密度奇偶校驗矩陣H 1的第一信號,具有對應的第二低密度奇偶校驗矩陣H 2的第二信號,等等。
據此,通信設備1510包括多個不同的菊花鏈,對應於不同的LDPC碼。選擇器模組1520用於選擇合適的菊花鏈用於解碼特定的LDPC編碼信號。例如,選擇器模組1520選擇第一菊花鏈用於解碼對應於第一低密度奇偶校驗矩陣H 1的第一信號,如標號1511所示。選擇器模組1520選擇第二菊花鏈用於解碼對應於第二低密度奇偶校驗矩陣H 2的第二信號,如標號1512所示。選擇器模組1520還選擇第三菊花鏈用於解碼對應於第三低密度奇偶校驗矩陣H 3的第三信號,如標號1513 所示,等等。一般來說,選擇器模組1520可選擇第n個菊花鏈用於解碼對應於第n個低密度奇偶校驗矩陣H n的第n個信號,如標號1519所示。
圖16示出了包括具有多LDPC碼能力的通信設備1610的實施例1600。同樣如上所述,某些時候,期望有一個連接至通信通道1601的通信設備1610,能解碼不同的LDPC編碼信號,使得每個LDPC編碼信號都是依據不同的低密度奇偶校驗矩陣H生成的。例如,某些時候,通信設備需要接收和解碼具有對應的第一低密度奇偶校驗矩陣H 1的第一信號,具有對應的第二低密度奇偶校驗矩陣H 2的第二信號,等等。
據此,通信設備1610包括一組寄存器1699,且菊花鏈的寄存器(以及合適的複用器)之間的連接性/鏈路是根據採用哪個低密度奇偶校驗矩陣H來解碼特定LDPC編碼信號進行變化的。圖15的實施例包括多個專用的菊花鏈,而圖16的實施例採用相同的一組寄存器,但是基於特定時間哪個低密度奇偶校驗矩陣H正被採用來通過菊花鏈的必要鏈路修改連接性。
雖然圖16的實施例可能會增加所需的MUX的數量和大小(例如,可能不僅僅需要兩輸入型MUX),與對每個不同的LDPC碼執行單獨且不同的寄存器菊花鏈相比(如圖15所示),這一實施例仍然具有較低的硬體需求。還應注意,圖16的實施例不僅能用於支援多碼,還能使用相同的一組寄存器1699適用於具有不同子矩陣大小的LDPC碼。這是可以通過修改菊花鏈的寄存器(以及任何合適的複用)之間的接連性/鏈路來簡單的實現的。
選擇器模組1620用於在解碼特定LDPC編碼信號時選擇菊花鏈內的合適連接性/鏈路和複用。例如,選擇器模組1620可選擇第一連接性/鏈路和複用用於解碼對應於第一低密度奇偶校驗矩陣H 1的第一信號,如標號1611所示。菊花鏈內的連接性/鏈路和複用便基於對應於標號1611的這一選擇被合適地設置。
選擇器模組1620可選擇第二連接性/鏈路和複用用於解碼對應於第二低密度奇偶校驗矩陣H 2的第二信號,如標號1612所示。菊花鏈內的連接性/鏈路和複用便基於對應於標號1612的這一選擇被合適地設置。
同樣地,選擇器模組1620可選擇第三連接性/鏈路和複用用於解碼對應於第三低密度奇偶校驗矩陣H 3的第三信號,如標號1613所示。菊花鏈內的連接性/鏈路和複用便基於對應於標號1613的這一選擇被合適地設置。
總的來說,選擇器模組1620可選擇第n個連接性/鏈路和複用用於解碼對應於第n個低密度奇偶校驗矩陣Hn的第n個信號,如標號1619所示。菊花鏈內的連接性/鏈路和複用便基於對應於標號1619的這一選擇被合適地設置。
依據本申請中介紹的菊花鏈實現的LDPC解碼器的吞吐量,以每次疊代的周期數來表示,可以定義為:
其中::x的天棚函數(ceiling function),或是在x不是整數值時將x的浮點值上舍入成最接近的整數值所得到的結果(例如,是在不是整數值時將的浮 點值上舍入成最接近的整數值所得到的結果是 在不是整數時將的浮點值上舍入成最接近的整數值所得到的結果;Z:子矩陣或子塊的大小;pipevar/bit:菊花鏈的位元節點處理配置的管線階的數量;parvar/bit:菊花鏈的位元節點處理配置的並行因數;pipechk:菊花鏈的校驗節點處理配置的管線階的數量;parchk:菊花鏈的校驗節點處理配置的並行因數。
應注意,在開始準備校驗節點時需要一些初始化時間(例如,使用接收的信號值來提供用於第一校驗節點處理子疊代步驟的位元邊消息的初始值)。該初始化/啟動時間等於個周期_又如以下等式所示。在此初始化/啟動過程中,使用位元/變數節點輸出作為記憶體的啟動源。
執行每個塊的解碼處理的周期數可由下式給出:
總的來說,本申請介紹的菊花鏈配置提供了一種方法,通過該方法,設計者可將積體電路的面積折衷為期望和/或需要的吞吐量的函數,並具有較高的粒度(with a higher degree of granularity)。
本發明的新解碼LDPC編碼信號的方法提供了很多固有特性。例如,將本申請介紹的採用菊花鏈配置的新方法與全並行LDPC解碼器(實現為包括有用於校驗節點和位元節點之間的每個連接的消息線,如參考文獻[10]所描述的)相比,可以看出,全並行LDPC解碼器會產生最優吞吐量但是會產生不期望的路由擁塞並導致大的面積。本申請使用菊花鏈配置的新解碼方法不會產生這些不利的影響。
此外,將本申請介紹的採用菊花鏈配置的新方法與全並行LDPC解碼器進行比較,注意到,全並行設計已經被證實對大的編碼長度(大於1000位元)不可用,因為面積和路由複雜度不允許(參見參考文獻[6])。
串列LDPC解碼器由單個校驗節點和單個位元節點組成。解碼過程中,該單個校驗節點順序地處理奇偶校驗矩陣內的每行。基於校驗節點更新的結論,位元節點順序地處理奇偶校驗矩陣內的每列。這樣一種設計的吞吐量對大多數實際應用 來說都太小了。
已有幾種針對半並行LDPC解碼器的公開設計(參見參考文獻[6]和以下的參考文獻[11])。
[11]Zhong, H., and Zhang, T., "Block-LDPC: A Practical LDPC Coding System Design Approach",IEEE Transactions on Circuits and Systems, Vol. 52, No. 4, April 2005, pp. 766-755.
這些半並行LDPC解碼設計使用RAM代表對應任何給定子塊的校驗邊消息。RAM可存儲校驗邊消息或位元邊消息,這取決於子疊代的階段(例如,是在執行校驗節點處理或是在執行位元節點處理)。這些半並行LDPC解碼器的並行度在一個處理器中基於每個子塊是固定的,這導致對應大部分實際應用來說吞吐量不夠。這種設計的另一個缺點是,需要ROM(或某些其他記憶體類型的設備)來存儲低密度奇偶校驗矩陣H內的子塊位移。
這些不足都通過本申請的菊花鏈架構所消除了,這是因為,儘管與SRAM方法一樣有記憶體需求,但是不需要任何大的扇入MUX或桶形移位器,並且菊花鏈本身是執行邊消息移位元的器件。
此外,本申請中用於解碼LDPC編碼信號的菊花鏈架構所提供的固有的好處和優點中的另一點是,它可以精確地調節以符合目標應用的性能需求。具體來說,該架構允許任何數量的位元節點和校驗節點來並行執行處理。這與將位元節點和校驗節點限制為每個子塊一個的半並行LDPC解碼器(參見參考文獻[6]和參考文獻[11])正好相反。
全並行LDPC解碼器(參見參考文獻[10])對於大碼字來說太擁塞且面積太大(參見參考文獻[6])。
但是,通過本申請中使用菊花鏈架構的分散式處理架構,對於給定應用,並行度可以減少到面積和擁塞變得可管理和/或適合於(可接受)的程度。
本申請的菊花鏈架構還不包含任何桶形移位器或高扇入複用器(如上所述)。因此,關鍵路徑相對很短並且可通過管線實現以增加資料吞吐量。
此外,通信設備內未使用的處理節點(例如,未使用的位元引擎和/或校驗引擎)以及菊花鏈寄存器可置入睡眠模式以省電。這一技術可用於執行各種類型的LDPC編碼信號的解碼(例如,在解碼LDPC編碼信號1、LDPC編碼信號2等等時可使用多個低密度奇偶校驗矩陣H1、H2等等)和/或變化子塊大小(如上面圖15所述)的應用。
還應注意,依據本發明構建的分散式處理LDPC解碼器內所採用的新穎的菊花鏈架構/消息結構可適用於針對同一基礎奇偶矩陣變化子塊大小的系統。這種系統的一個例子可在IEEE 802.16e標準中找到。
當需要大的子塊大小時,菊花鏈擴展到包含額外的邊消息。額外的校驗和位元節點(例如,額外的校驗和位元引擎)連接到菊花鏈的擴展部分以處理額外的邊消息。當選擇了較小的子塊大小時,可以將菊花鏈的擴展部分以及與其連接的位元和校驗節點置入睡眠模式以在通信設備內省電。
分散式處理LDPC解碼器的菊花鏈架構在並行度上是高 度可調的,這使其適合於需要不同級別的吞吐量和晶片面積的各種範圍內的應用。從1到子塊大小的任何數量的位元節點和校驗節點可並行使用。還應注意,位元節點(例如,位元引擎)的數量不需與校驗節點(例如,校驗引擎)的數量相同。
這樣的使用菊花鏈原理構建的分散式處理LDPC解碼器可以被需要LDPC解碼的任何應用所考慮,包括IEEE 802.3an、IEEE 802.11n、IEEE 802.20和/或DVB-S2以及其他應用。使用這一創新架構,設計者能夠在多種現代設計中提供最小的並行度以滿足吞吐量需求,同時還省電並節省通信設備和/或通信系統的面積。
需要注意的是,本申請中所描述的各個模組(例如,編碼模組、解碼模組、位元引擎、校驗引擎等)可以是單個處理設備或多個處理設備。這樣的處理器可以是微處理器、微控制器、數位信號處理器、微型電腦、中央處理單元、現場可編程閘陣列、可編程邏輯器件、狀態機、邏輯電路、類比電路、數位電路和/或基於操作指令處理信號(類比的和/或數位的)的任何器件。操作指令可存儲在記憶體中。該記憶體可以是單個存儲設備或多個存儲設備。這樣的存儲設備可以是唯讀記憶體、隨機訪問記憶體、易失記憶體、非易失記憶體、靜態記憶體、動態記憶體、快閃記憶體和/或存儲數位資訊的任何設備。注意,當處理設備通過狀態機、類比電路、數位電路和/或邏輯電路執行其一種或多種功能時,存儲對應操作指令的記憶體嵌入在包括狀態機、類比電路、數位電路和/或邏輯電路的電路內。這樣的實施例中,記憶體存儲操作指令,處理模組連接至記憶體以執行操作指令,該操作指令對應於以上描述的步驟和 /或功能中的至少一部分。
本發明通過借助方法步驟展示了本發明的特定功能及其關係。所述方法步驟的範圍和順序是為了便於描述任意定義的。只要能夠執行特定的功能和順序,也可應用其他界限和順序。任何所述或選的界限或順序因此落入本發明的範圍和精神實質。
本發明還借助功能模組對某些重要的功能進行了描述。所述功能模組的界限和各種功能模組的關係是為了便於描述任意定義的。只要能夠執行特定的功能,也可應用其他的界限或關係。所述其他的界限或關係也因此落入本發明的範圍和精神實質。
本領域普通技術人員還可知,本申請中的功能模組和其他展示性模組和元件可實現為離散元件、專用積體電路、執行恰當軟體的處理器和前述的任意組合。
此外,儘管以上是通過一些實施例對本發明進行的描述,本領域技術人員知悉,本發明不局限於這些實施例,在不脫離本發明的精神和範圍的情況下,可以對這些特徵和實施例進行各種改變或等效替換。本發明的保護範圍僅由本申請的權利要求書來限定。
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發送器
114‧‧‧編碼器
116‧‧‧接收器
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收器
124‧‧‧解碼器
126‧‧‧發送器
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧圓盤式衛星接收天線
140‧‧‧無線通信通道
142、144‧‧‧塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電-光(E/O)介面
164‧‧‧光-電(O/E)介面
199‧‧‧通信通道
200‧‧‧通信系統
201‧‧‧資訊位元
203‧‧‧離散值調製符號序列
204‧‧‧連續時間發送信號
205‧‧‧濾波後連續時間發送信號
206‧‧‧連續時間接收信號
207‧‧‧濾波後連續時間接收信號
208‧‧‧離散時間接收信號
209‧‧‧符號量度(symbol metrics)
210‧‧‧最佳估算
222、224‧‧‧功能塊
230‧‧‧發送驅動器
232‧‧‧數模轉換器(DAC)
234‧‧‧發送濾波器
260‧‧‧模擬前端(AFE)
262‧‧‧接收濾波器
264‧‧‧模數轉換器(ADC)
270‧‧‧量度生成器(metric generator)
280‧‧‧解碼器
297‧‧‧發送器
299‧‧‧通信通道
300‧‧‧LDPC解碼處理的裝置
310‧‧‧記憶體
320‧‧‧處理模組
330‧‧‧通信設備
340‧‧‧通信系統
400‧‧‧裝置
410‧‧‧記憶體
420‧‧‧處理模組
430‧‧‧通信設備
440‧‧‧通信系統
500‧‧‧LDPC碼二分圖
510‧‧‧位元節點
512‧‧‧位元節點vi
514‧‧‧邊dv
520‧‧‧校驗節點
522‧‧‧校驗節點cj
524‧‧‧邊dc
530‧‧‧邊
600‧‧‧LDPC解碼功能
610‧‧‧類比前端(AFE)
611‧‧‧離散時間信號
620‧‧‧度量生成器
621‧‧‧位元度量和/或對數似然比(LLR)
629‧‧‧位元邊消息
630‧‧‧位元引擎
632‧‧‧軟資訊
635‧‧‧迭代解碼處理
640‧‧‧校驗引擎
641‧‧‧校驗邊消息
650‧‧‧硬限幅器(hard limiter)
651‧‧‧硬/最佳估計值
660‧‧‧校正子計算器
700‧‧‧消息傳遞解碼處理或置信傳播解碼處理
1500‧‧‧實施例
1501‧‧‧通信通道
1510‧‧‧通信設備
1511‧‧‧第一信號
1512‧‧‧第二信號
1513‧‧‧第三信號
1519‧‧‧第n信號
1520‧‧‧選擇器模組
1600‧‧‧實施例
1601‧‧‧通信通道
1610‧‧‧通信設備
1611‧‧‧第一信號
1612‧‧‧第二信號
1613‧‧‧第三信號
1619‧‧‧第n個信號
1620‧‧‧選擇器模組
1699‧‧‧寄存器
圖1是通信系統的一個實施例的示意圖;圖2是通信系統的另一實施例的示意圖;圖3是執行LDPC解碼處理的裝置的一個實施例的示意 圖;圖4是執行LDPC解碼處理的裝置的另一實施例的示意圖;圖5是LDPC碼二分圖(bipartite graph)的一個實施例的示意圖;圖6是LDPC解碼功能的一個實施例的示意圖;圖7是消息傳遞解碼處理或置信傳播解碼處理以及校驗節點、位元節點與奇偶校驗矩陣H內的行和列的關係的實施例的示意圖;圖8是執行LDPC編碼信號的解碼的菊花鏈架構的一個實施例的示意圖;圖9是基於分散式子矩陣的置信傳播解碼處理或消息傳遞解碼處理的一個實施例的示意圖;圖10是基於分散式子矩陣的置信傳播解碼處理或消息傳遞解碼處理的另一個實施例的示意圖;圖11是執行LDPC編碼信號的解碼的菊花鏈架構的一個實施例的示意圖;圖12是用於具有非CSI子矩陣的奇偶校驗矩陣H的變數/位元更新順序的示意圖;圖13是圖12所示的用於具有非CSI子矩陣的奇偶校驗矩陣H的校驗更新順序的示意圖;圖14是處理LDPC編碼信號的方法的一個實施例的示意 圖;圖15是包括具有多LDPC碼性能的通信設備的一個實施例的示意圖;圖16是包括具有多LDPC碼性能的通信設備的另一實施例的示意圖。
100‧‧‧通信系統
110‧‧‧通信設備
112‧‧‧發送器
114‧‧‧編碼器
116‧‧‧接收器
118‧‧‧解碼器
120‧‧‧通信設備
122‧‧‧接收器
124‧‧‧解碼器
126‧‧‧發送器
128‧‧‧編碼器
130‧‧‧衛星通信通道
132、134‧‧‧圓盤式衛星接收天線
140‧‧‧無線通信通道
142、144‧‧‧塔
150‧‧‧有線通信通道
152、154‧‧‧本地天線
160‧‧‧光纖通信通道
162‧‧‧電-光(E/O)介面
164‧‧‧光-電(O/E)介面
199‧‧‧通信通道

Claims (10)

  1. 一種解碼LDPC編碼信號的解碼器,其特徵在於,所述解碼器包括:配置在菊花鏈架構內的多個寄存器和多個複用器,其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;校驗引擎,其採用第一位元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:採用所述第二校驗邊消息更新第二位元邊消息從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置;所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎。
  2. 如申請專利範圍第1項所述的解碼器,其中,所述解碼器進一步包括:包含所述校驗引擎的多個校驗引擎;包含 所述位元引擎的多個位元引擎;其中,所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至所述多個位元引擎和所述多個校驗引擎。
  3. 如申請專利範圍第1項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位子矩陣。
  4. 如申請專利範圍第1項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個非迴圈移位元單位子矩陣。
  5. 如申請專利範圍第1項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括至少一個迴圈移位元單位子矩陣和至少一個非迴圈移位元單位子矩陣。
  6. 一種解碼LDPC編碼信號的解碼器,其特徵在於,所述解碼器包括:配置在菊花鏈架構內的多個寄存器和多個複用器,其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;多個校驗引擎,其採用第一多個位元邊消息更新第一多個校驗邊消息,從而生成第二多個校驗邊消息;多個位元引擎,其:採用所述第二多個校驗邊消息更新第二多個位元邊消息從而生成第三多個位元邊消息;採用所述第三多個位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的至少一個資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的至少一個資訊位元的軟資訊被用於做出對編碼在所述 LDPC編碼信號內的所述至少一個資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置;所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎;所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至所述多個位元引擎和所述多個校驗引擎;所述解碼器執行置信傳播解碼處理或消息傳遞解碼處理。
  7. 如申請專利範圍第6項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位子矩陣。
  8. 如申請專利範圍第6項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個非迴圈移位元單位子矩陣。
  9. 一種解碼器,實現在積體電路內,用於解碼LDPC編碼信號,其特徵在於,所述積體電路包括:配置在菊花鏈架構內的多個寄存器和多個複用器,其中,所述多個寄存器用於存儲位元邊消息和校驗邊消息,所述多個複用器插入在所述多個寄存器之間;校驗引擎,其採用第一位 元邊消息更新第一校驗邊消息,從而生成第二校驗邊消息;位元引擎,其:採用所述第二校驗邊消息更新第二位元邊消息從而生成第三位元邊消息;採用所述第三位元邊消息生成軟資訊,所述軟資訊對應於編碼在所述LDPC編碼信號內的資訊位元;且其中:所述對應於編碼在所述LDPC編碼信號內的資訊位元的軟資訊被用於做出對編碼在所述LDPC編碼信號內的資訊位元的最佳估計;所述多個寄存器中的每個寄存器對應于生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣的子矩陣內的非零位置;所述多個寄存器中的每個寄存器用於將其內的校驗邊消息或位元邊消息移位元一個位置;位元節點處理過程中,第一選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保校驗邊消息從所述多個寄存器中的至少一個寄存器提供給位元引擎;以及校驗節點處理過程中,第二選定信號被提供給插入在所述多個寄存器之間的多個複用器以確保位元邊消息從所述多個寄存器中的至少一個寄存器提供給校驗引擎;所述多個寄存器基於生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣內的非零位置,硬連線連接至所述多個位元引擎和所述多個校驗引擎;所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個矩形子矩陣。
  10. 如申請專利範圍第9項所述的解碼器,其中,所述生成LDPC編碼信號的LDPC碼的奇偶校驗矩陣包括多個迴圈移位元單位子矩陣。
TW97124955A 2007-07-02 2008-07-02 解碼ldpc編碼信號的解碼器 TWI406508B (zh)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US95801407P 2007-07-02 2007-07-02
US11/828,532 US7958429B2 (en) 2007-07-02 2007-07-26 Distributed processing LDPC (low density parity check) decoder

Publications (2)

Publication Number Publication Date
TW200922152A TW200922152A (en) 2009-05-16
TWI406508B true TWI406508B (zh) 2013-08-21

Family

ID=39720190

Family Applications (1)

Application Number Title Priority Date Filing Date
TW97124955A TWI406508B (zh) 2007-07-02 2008-07-02 解碼ldpc編碼信號的解碼器

Country Status (6)

Country Link
US (2) US7958429B2 (zh)
EP (1) EP2012433A3 (zh)
KR (1) KR100975547B1 (zh)
CN (1) CN101340194B (zh)
HK (1) HK1127826A1 (zh)
TW (1) TWI406508B (zh)

Families Citing this family (31)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US7617439B2 (en) * 2005-01-10 2009-11-10 Broadcom Corporation Algebraic construction of LDPC (Low Density Parity Check) codes with corresponding parity check matrix having CSI (Cyclic Shifted Identity) sub-matrices
JP5057925B2 (ja) * 2007-10-18 2012-10-24 株式会社日立製作所 デジタル情報再生方法
JP4626827B2 (ja) * 2007-10-19 2011-02-09 ソニー株式会社 受信装置および方法、並びにプログラム
CN101272150B (zh) * 2008-05-14 2010-09-29 中兴通讯股份有限公司 一种低密度生成矩阵码的译码方法及装置
US20090319860A1 (en) * 2008-06-23 2009-12-24 Ramot At Tel Aviv University Ltd. Overcoming ldpc trapping sets by decoder reset
US8370711B2 (en) * 2008-06-23 2013-02-05 Ramot At Tel Aviv University Ltd. Interruption criteria for block decoding
US8341492B2 (en) * 2008-07-28 2012-12-25 Broadcom Corporation Quasi-cyclic LDPC (low density parity check) code construction
US8219873B1 (en) 2008-10-20 2012-07-10 Link—A—Media Devices Corporation LDPC selective decoding scheduling using a cost function
TWI469533B (zh) * 2008-11-07 2015-01-11 Realtek Semiconductor Corp 同位檢查碼解碼器及接收系統
JP5440836B2 (ja) * 2009-03-24 2014-03-12 ソニー株式会社 受信装置及び方法、プログラム、並びに受信システム
US8407555B2 (en) * 2009-03-30 2013-03-26 Broadcom Corporation LDPC codes robust to non-stationary narrowband ingress noise
EP2320574B1 (en) * 2009-08-21 2019-10-09 Avago Technologies International Sales Pte. Limited Header encoding for single carrier (SC) and/or orthogonal frequency division multiplexing (OFDM) using shortening, puncturing, and/or repetition
CN102859885B (zh) 2010-04-09 2015-10-07 Sk海尼克斯存储技术公司 Ldpc选择性解码调度的实现
IT1402261B1 (it) * 2010-06-29 2013-08-28 St Microelectronics Srl Metodo di decodifica list e relativo decoder per codici ldpc
JP5790029B2 (ja) * 2011-03-01 2015-10-07 ソニー株式会社 復号装置、復号方法、およびプログラム
KR102000268B1 (ko) * 2012-02-10 2019-07-16 연세대학교 산학협력단 복호화 장치 및 복호화 방법
DE102013201973A1 (de) 2012-02-22 2013-08-22 International Business Machines Corp. Verteilte Anwendung mit Vorwegnahme von Server-Antworten
KR102068030B1 (ko) * 2012-12-11 2020-01-20 삼성전자 주식회사 메모리 컨트롤러 및 그 동작방법
RU2549134C1 (ru) * 2013-10-10 2015-04-20 Федеральное государственное бюджетное образовательное учреждение высшего профессионального образования "Юго-Западный государственный университет" (ЮЗ ГУ) Устройство декодирования ldpc-кодов
US9489256B2 (en) 2013-11-07 2016-11-08 Seagate Technology Llc Device quality metrics using unsatisfied parity checks
US9722633B2 (en) * 2015-02-11 2017-08-01 Mitsubishi Electric Research Laboratories, Inc. Method and system for reliable data communications with adaptive multi-dimensional modulations for variable-iteration decoding
KR20160102738A (ko) * 2015-02-23 2016-08-31 에스케이하이닉스 주식회사 컨트롤러, 반도체 메모리 시스템 및 그것의 동작 방법
US10001999B2 (en) * 2015-03-13 2018-06-19 Cavium, Inc. System and method for configuring a plurality of registers with soft error detection and low wiring complexity
US10382064B2 (en) * 2015-10-13 2019-08-13 SK Hynix Inc. Efficient LDPC encoder for irregular code
TWI573147B (zh) * 2015-11-05 2017-03-01 大心電子股份有限公司 解碼方法、記憶體儲存裝置及記憶體控制電路單元
US9793923B2 (en) * 2015-11-24 2017-10-17 Texas Instruments Incorporated LDPC post-processor architecture and method for low error floor conditions
US10778371B2 (en) * 2016-11-02 2020-09-15 Qualcomm Incorporated Deeply-pipelined high-throughput LDPC decoder architecture
CN109213614B (zh) * 2017-06-30 2022-03-29 群联电子股份有限公司 解码方法、存储器存储装置及存储器控制电路单元
CN109952729B (zh) * 2019-01-31 2021-12-03 香港应用科技研究院有限公司 并行ldpc解码器
EP4208947A1 (en) * 2020-09-03 2023-07-12 Telefonaktiebolaget LM Ericsson (publ) Method and apparatus for improved belief propagation based decoding
US11929762B2 (en) * 2021-11-24 2024-03-12 Samsung Electronics Co., Ltd. Low density parity check decoder and storage device

Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US20030104788A1 (en) * 2001-09-01 2003-06-05 Sungwook Kim Decoding architecture for low density parity check codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
TW200417156A (en) * 2002-11-18 2004-09-01 Qualcomm Inc Rate-compatible LDPC codes
KR20050111201A (ko) * 2004-05-21 2005-11-24 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
TW200705826A (en) * 2005-01-10 2007-02-01 Broadcom Corp Construction of LDPC (low density parity check) codes using GRS (generalized reed-solomon) code
TW200711327A (en) * 2005-04-22 2007-03-16 Broadcom Corp Algebraic construction of LDPC (low density parity check) codes with corresponding parity check matrix having CSI (cyclic shifted identity) submatrices

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3542756A (en) 1968-02-07 1970-11-24 Codex Corp Error correcting
US3665396A (en) 1968-10-11 1972-05-23 Codex Corp Sequential decoding
US4295218A (en) 1979-06-25 1981-10-13 Regents Of The University Of California Error-correcting coding system
US6789227B2 (en) * 2001-07-05 2004-09-07 International Business Machines Corporation System and method for generating low density parity check codes using bit-filling
US6895547B2 (en) * 2001-07-11 2005-05-17 International Business Machines Corporation Method and apparatus for low density parity check encoding of data
KR100419614B1 (ko) 2001-10-30 2004-02-25 삼성전기주식회사 5ghz 무선랜 및 2.4ghz 무선랜 통합형 억세스포인트
US7178080B2 (en) * 2002-08-15 2007-02-13 Texas Instruments Incorporated Hardware-efficient low density parity check code for digital communications
KR100502608B1 (ko) * 2002-12-24 2005-07-20 한국전자통신연구원 계산이 간단한 저밀도 패리티 검사 부호를 위한 메시지 전달 복호기
US7430396B2 (en) * 2003-07-03 2008-09-30 The Directv Group, Inc. Encoding low density parity check (LDPC) codes through an LDPC decoder
US7213197B2 (en) * 2003-08-08 2007-05-01 Intel Corporation Adaptive bit loading with low density parity check forward error correction
KR20060032464A (ko) * 2004-10-12 2006-04-17 삼성전자주식회사 효율적인 저밀도 패리티 검사 코드 복호 방법 및 장치
US7661055B2 (en) * 2005-12-05 2010-02-09 Broadcom Corporation Partial-parallel implementation of LDPC (Low Density Parity Check) decoders
US20090003379A1 (en) * 2007-06-27 2009-01-01 Samsung Electronics Co., Ltd. System and method for wireless communication of uncompressed media data having media data packet synchronization
US20080273600A1 (en) * 2007-05-01 2008-11-06 Samsung Electronics Co., Ltd. Method and apparatus of wireless communication of uncompressed video having channel time blocks

Patent Citations (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6430233B1 (en) * 1999-08-30 2002-08-06 Hughes Electronics Corporation Single-LNB satellite data receiver
US6473010B1 (en) * 2000-04-04 2002-10-29 Marvell International, Ltd. Method and apparatus for determining error correction code failure rate for iterative decoding algorithms
US6567465B2 (en) * 2001-05-21 2003-05-20 Pc Tel Inc. DSL modem utilizing low density parity check codes
US6633856B2 (en) * 2001-06-15 2003-10-14 Flarion Technologies, Inc. Methods and apparatus for decoding LDPC codes
US20030104788A1 (en) * 2001-09-01 2003-06-05 Sungwook Kim Decoding architecture for low density parity check codes
TW200417156A (en) * 2002-11-18 2004-09-01 Qualcomm Inc Rate-compatible LDPC codes
KR20050111201A (ko) * 2004-05-21 2005-11-24 삼성전자주식회사 저밀도 패리티 검사 코드를 이용한 복호화 장치 및 방법
TW200705826A (en) * 2005-01-10 2007-02-01 Broadcom Corp Construction of LDPC (low density parity check) codes using GRS (generalized reed-solomon) code
TW200711327A (en) * 2005-04-22 2007-03-16 Broadcom Corp Algebraic construction of LDPC (low density parity check) codes with corresponding parity check matrix having CSI (cyclic shifted identity) submatrices

Also Published As

Publication number Publication date
KR20090004652A (ko) 2009-01-12
US8171375B2 (en) 2012-05-01
TW200922152A (en) 2009-05-16
EP2012433A3 (en) 2015-05-27
HK1127826A1 (en) 2009-10-09
CN101340194B (zh) 2011-08-17
KR100975547B1 (ko) 2010-08-16
EP2012433A2 (en) 2009-01-07
US20110202816A1 (en) 2011-08-18
US7958429B2 (en) 2011-06-07
US20090013237A1 (en) 2009-01-08
CN101340194A (zh) 2009-01-07

Similar Documents

Publication Publication Date Title
TWI406508B (zh) 解碼ldpc編碼信號的解碼器
TWI400890B (zh) 解碼ldpc編碼信號的解碼器及方法
KR100915368B1 (ko) 중복 부분 행렬 기반의 저밀도 패리티 체크 디코더
US8549375B2 (en) Decoder and decoding method for low-density parity check codes constructed based on reed-solomon codes
US8341492B2 (en) Quasi-cyclic LDPC (low density parity check) code construction
US9075738B2 (en) Efficient LDPC codes
US8392787B2 (en) Selective merge and partial reuse LDPC (Low Density Parity Check) code construction for limited number of layers Belief Propagation (BP) decoding
US20090013239A1 (en) LDPC (Low Density Parity Check) decoder employing distributed check and/or variable node architecture
Chandrasetty et al. FPGA implementation of high performance LDPC decoder using modified 2-bit min-sum algorithm
US20090113276A1 (en) Method, apparatus, computer program product and device providing semi-parallel low density parity check decoding using a block structured parity check matrix
US8386906B2 (en) Multi-CSI (cyclic shifted identity) sub-matrix based LDPC (low density parity check) codes
CN116964945A (zh) 原模图准循环极化码及相关的低密度生成矩阵族
Nguyen et al. Low-complexity multi-mode multi-way split-row layered LDPC decoder for gigabit wireless communications
TWI407703B (zh) 解碼器
Angarita et al. High-throughput FPGA-based emulator for structured LDPC codes
Chen et al. FPGA-based low-complexity high-throughput tri-mode decoder for quasi-cyclic LDPC codes
Weiner et al. A high-throughput, flexible LDPC decoder for multi-Gb/s wireless personal area networks
Roberts et al. A Power-and Area-Efficient Multirate Quasi-Cyclic LDPC Decoder
EP2023492A2 (en) Multi-code LDPC (low density parity check) decoder
Kim Reduced-complexity VLSI architectures for binary and nonbinary LDPC codes

Legal Events

Date Code Title Description
MM4A Annulment or lapse of patent due to non-payment of fees