日韩成人黄色,透逼一级毛片,狠狠躁天天躁中文字幕,久久久久久亚洲精品不卡,在线看国产美女毛片2019,黄片www.www,一级黄色毛a视频直播

用于低密度奇偶校驗碼的改善的解碼器的制造方法

文檔序號:7546474閱讀:269來源:國知局
用于低密度奇偶校驗碼的改善的解碼器的制造方法
【專利摘要】描述了用于對LDPC碼進(jìn)行解碼的方法和裝置。LDPC碼可以表現(xiàn)為Tanner圖,包括位節(jié)點(diǎn)和校驗節(jié)點(diǎn)和其間的連接。在實(shí)施例中,支持具有任何子矩陣尺寸的很多不同LDPC碼的可配置的LDPC解碼器包括幾個獨(dú)立可尋址存儲器,被用于存儲對于每個位節(jié)點(diǎn)的軟判決數(shù)據(jù)。解碼器還包括數(shù)量P個校驗節(jié)點(diǎn)處理系統(tǒng),其產(chǎn)生更新的軟判決數(shù)據(jù)。更新的值然后經(jīng)由混排系統(tǒng)傳遞回存儲器。如果由校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的數(shù)量是PCNB(其中P≥PCNB),并且對于位節(jié)點(diǎn)的軟判決數(shù)據(jù)是q位字長,那么獨(dú)立可尋址存儲器的總寬度大于PCNB*q位。
【專利說明】用于低密度奇偶校驗碼的改善的解碼器

【背景技術(shù)】
[0001] 對于給定的消息字,低密度奇偶校驗(LDPC)碼,像諸如漢明碼的其他碼一樣使用 多個位。每個奇偶校驗覆蓋不同組的消息位,并且奇偶校驗重疊,以便任何一個消息位被多 于一個的奇偶校驗覆蓋。這意味著當(dāng)存在有限數(shù)量的錯誤時,可以識別錯誤的位置。LDPC 碼的特征在于表示為H的奇偶校驗矩陣,其具有對于每個奇偶校驗的行、以及對于總碼字 中每個位的列。對于LDPC碼而言,這些奇偶校驗矩陣非常大且稀疏(即,其包括很多0并 只有幾個1),結(jié)果導(dǎo)致非常長的碼字。
[0002] 奇偶校驗矩陣H還可以以Tanner圖的形式表現(xiàn),并且圖1示出示例奇偶校驗矩陣 102和對應(yīng)的Tanner圖104。Tanner圖104示出位節(jié)點(diǎn)106和校驗節(jié)點(diǎn)108以及其間的連 接(或者邊緣)。對于碼字中的每個位(并且這些對應(yīng)于奇偶校驗矩陣102中的列)有一 個位節(jié)點(diǎn),并且對于每個奇偶校驗(并且這些對應(yīng)于奇偶校驗矩陣102中的行)有一個校 驗節(jié)點(diǎn)。
[0003] LDPC碼典型地使用軟輸入軟輸出方法解碼,其中前級將信息傳遞至解碼器,其說 明了對于每個位的估計值(1或〇)和與該估計關(guān)聯(lián)的置信度值。置信度值可以是對數(shù)似 然比(LLR)的形式。解碼器以相同的形式(即,估計值和與該估計關(guān)聯(lián)的置信度)輸出信 息。解碼器使用基于置信傳播的迭代消息傳遞算法來執(zhí)行解碼。根據(jù)該算法的示例,位節(jié) 點(diǎn)告知連接的校驗節(jié)點(diǎn)其當(dāng)前LLR估計,并且校驗節(jié)點(diǎn)使用該信息來執(zhí)行其奇偶校驗,并 將信息提供回關(guān)于關(guān)聯(lián)的位是1的可能性的每個連接的位節(jié)點(diǎn)。在收到更新的信息時,位 節(jié)點(diǎn)將其從所有連接的校驗節(jié)點(diǎn)接收的值合并。然后重復(fù)該方法,位節(jié)點(diǎn)向校驗節(jié)點(diǎn)提供 更新的LLR,盡管從位節(jié)點(diǎn)向任何校驗節(jié)點(diǎn)傳遞的值可能不同,使得校驗節(jié)點(diǎn)僅接收"新的" 信息,其指示在之前的迭代中其他連接的校驗節(jié)點(diǎn)如何修改了LLR(即,校驗節(jié)點(diǎn)接收有關(guān) 由除了其自身的所有其他連接的校驗節(jié)點(diǎn)對LLR做出的改變的信息)。該方法是2通道 消息傳遞(TPMP,Two-PassMessagePassing)的示例,并且通過合并2個通道可以更有效 地進(jìn)行解碼,并且結(jié)果可以是合并計劃消息收發(fā)傳遞(MSMP,Merged-ScheduleMessaging Passing)算法。
[0004] 使用MSMP,對于每個位節(jié)點(diǎn)的當(dāng)前LLR估計被用于計算并存儲代表校驗節(jié)點(diǎn)至位 節(jié)點(diǎn)消息的值,并且一旦已計算了值,該值被用于更新臨時變量,該臨時變量是對于每個位 節(jié)點(diǎn)的LLR更新的運(yùn)行總數(shù)。一旦已處理所有的校驗節(jié)點(diǎn)(以及被用于更新運(yùn)行總數(shù)的它 們的校驗節(jié)點(diǎn)至位節(jié)點(diǎn)消息),則運(yùn)行總數(shù)被用于更新對于每個位的LLR的存儲的值(當(dāng)前 LLR估計)。如之前的一樣,然后重復(fù)該方法。
[0005] 對于LDPC碼有很多應(yīng)用,因為LDPC碼已被發(fā)現(xiàn)提供了可靠且有效的方法,用于在 有噪聲的傳輸通道上傳輸數(shù)據(jù)。示例包含在很多數(shù)字電視標(biāo)準(zhǔn)中的使用(無論是地面、衛(wèi) 星、有線還是移動使用),諸如DVB-T2、DVB-S2和DVB-C2、以及其他無線標(biāo)準(zhǔn),諸如WiMAX? 和一些WIFI?變型。
[0006] 下述實(shí)施例不限于解決了已知的LDPC解碼器的任何或者所有缺點(diǎn)的實(shí)施方式。


【發(fā)明內(nèi)容】

[0007] 提供該
【發(fā)明內(nèi)容】
來以簡化形式介紹概念的選擇,其在【具體實(shí)施方式】中進(jìn)一步在下 面述。該
【發(fā)明內(nèi)容】
不意圖識別權(quán)利要求的主題的關(guān)鍵特征或者基本特征,也并非意圖被用 來協(xié)助確定權(quán)利要求的主題的范圍。
[0008] 描述了用于對LDPC碼進(jìn)行解碼的方法和裝置。LDPC碼可以表現(xiàn)為Tanner圖,包 括位節(jié)點(diǎn)(碼字中的每位一個)和校驗節(jié)點(diǎn)(每奇偶校驗一個)和其間的連接。在實(shí)施例 中,支持具有任何子矩陣尺寸的很多不同LDPC碼的可配置的LDPC解碼器,包括幾個獨(dú)立的 可尋址存儲器,被用于存儲對于每個位節(jié)點(diǎn)的軟判決數(shù)據(jù)。解碼器還包括數(shù)量P的校驗節(jié) 點(diǎn)處理系統(tǒng),其產(chǎn)生更新的軟判決數(shù)據(jù)。更新的值然后經(jīng)由混排系統(tǒng)傳遞回存儲器。如果 由校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)數(shù)量是Pras (其中P>PaJ,并且對于位節(jié)點(diǎn)的軟 判決數(shù)據(jù)是q位的字長,那么獨(dú)立可尋址存儲器的總寬度大于Pc:NB*q位。
[0009] 第一方面提供可配置的LDPC解碼器,被布置為支持具有任何子矩陣尺寸的多個 不同的LDPC碼構(gòu)造,所述LDPC解碼器包括:多個獨(dú)立可尋址存儲器,被布置為共同存儲對 于每個位節(jié)點(diǎn)的、用于解碼LDPC碼的軟判決數(shù)據(jù),并且每個存儲器具有寬度,存儲器的所 述寬度包括在單個周期從所述存儲器可訪問的數(shù)據(jù)的量;多個校驗節(jié)點(diǎn)處理系統(tǒng),被布置 為并行操作,并產(chǎn)生對所述位節(jié)點(diǎn)軟判決數(shù)據(jù)的更新;第一混排系統(tǒng),被布置為將數(shù)據(jù)從多 個獨(dú)立可尋址存儲器傳遞至多個校驗節(jié)點(diǎn)處理系統(tǒng);以及第二混排系統(tǒng),被布置為將對所 述位節(jié)點(diǎn)軟判決數(shù)據(jù)的更新從所述多個校驗節(jié)點(diǎn)處理系統(tǒng)傳遞至所述多個獨(dú)立可尋址存 儲器,其中所述多個獨(dú)立可尋址存儲器的總寬度大于由所述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的 校驗節(jié)點(diǎn)的數(shù)量與對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度之積。
[0010] 第二方面提供LDPC碼的解碼的方法,包括:在單個周期從多個獨(dú)立可尋址存儲器 訪問對于多個位節(jié)點(diǎn)的軟判決數(shù)據(jù),每個存儲器具有寬度,并且存儲器的寬度包括在單個 周期從所述存儲器可訪問的數(shù)據(jù)的量;將訪問的軟判決數(shù)據(jù)提供給多個校驗節(jié)點(diǎn)處理系 統(tǒng);以及在所述校驗節(jié)點(diǎn)處理系統(tǒng)中并行產(chǎn)生對于所述多個位節(jié)點(diǎn)的對所述軟判決數(shù)據(jù)的 更新;以及在所述多個獨(dú)立可尋址存儲器中存儲對于所述多個位節(jié)點(diǎn)的更新的軟判決數(shù) 據(jù),其中在至少一個周期中,訪問對于多個位節(jié)點(diǎn)的軟判決數(shù)據(jù)包括:訪問軟判決數(shù)據(jù)的總 量,其大于由所述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的數(shù)量與對于位節(jié)點(diǎn)的所述軟判 決數(shù)據(jù)的寬度之積。
[0011] 另一方面提供實(shí)質(zhì)上如參考附圖的圖5、7和9任一個描述的LDPC解碼器;實(shí)質(zhì)上 如參考附圖的圖14描述的方法;其上編碼有計算機(jī)可讀程序代碼的計算機(jī)可讀存儲介質(zhì), 用于產(chǎn)生包括本文描述的LDPC解碼器的處理器;以及其上編碼有計算機(jī)可讀程序代碼的 計算機(jī)可讀存儲介質(zhì),用于產(chǎn)生配置為執(zhí)行本文描述的方法的處理器。
[0012] 本文描述的方法可以由計算機(jī)執(zhí)行,該計算機(jī)配置有以機(jī)器可讀形式存儲在有形 存儲介質(zhì)上的軟件,例如以計算機(jī)程序的形式,包括用于配置計算機(jī)以執(zhí)行描述的方法的 組成部分的計算機(jī)可讀程序代碼;或者以計算機(jī)程序的形式,包括適于執(zhí)行本文描述的任 何方法的所有步驟的計算機(jī)程序代碼單元(當(dāng)在計算機(jī)上運(yùn)行程序,并且計算機(jī)程序可以 體現(xiàn)在計算機(jī)可讀存儲介質(zhì)上之時)。有形(或者非暫時性)存儲介質(zhì)的示例包含盤、拇指 驅(qū)動器、存儲卡等,并且不包含傳播的信號。軟件可以適于在并行處理器或者串行處理器上 執(zhí)行,使得方法步驟可以以任何適當(dāng)?shù)捻樞?、或者同時進(jìn)行。
[0013] 本文描述的硬件組件可以由其上編碼有計算機(jī)可讀程序代碼的非暫時性計算機(jī) 可讀存儲介質(zhì)產(chǎn)生。
[0014] 這承認(rèn)了固件和軟件可以分開使用并且是有價值的。意圖包括軟件,其運(yùn)行或者 控制"啞(dumb)"或者標(biāo)準(zhǔn)硬件來進(jìn)行期望的功能。還意圖包括"描述"或者定義硬件的配 置的軟件,諸如HDL(硬件描述語言)軟件,其用于設(shè)計硅芯片、或者用于配置通用可編程芯 片,來進(jìn)行期望的功能。
[0015] 如對技術(shù)人員將是明顯的,優(yōu)選特征可以適當(dāng)組合,并可以與本發(fā)明的任何方面 組合。
[0016] 附圖描述
[0017] 將參考下面的附圖,以示例的方式描述本發(fā)明的實(shí)施例,其中:
[0018] 圖1示出示例奇偶校驗矩陣和對應(yīng)的Tanner圖;
[0019] 圖2示出2個示例奇偶校驗矩陣;
[0020] 圖3是示出示例LDPC解碼器的示意圖;
[0021] 圖4示出奇偶校驗矩陣的示例片段;
[0022] 圖5示出示例解碼器和包括單個子矩陣的H矩陣的片段示意圖;
[0023] 圖6示出2個示例子矩陣;
[0024] 圖7示出另一個示例解碼器的示意圖;
[0025] 圖8示出示例校驗節(jié)點(diǎn)處理系統(tǒng)的示意圖;
[0026] 圖9示出另一個示例解碼器的示意圖;
[0027] 圖10示出來自圖9所示的解碼器的選擇塊的示意圖;
[0028] 圖11是示出用于特定校驗節(jié)點(diǎn)塊的數(shù)據(jù)如何對于特定碼進(jìn)行組裝的示例的示意 圖;
[0029] 圖12示出另一個示例校驗節(jié)點(diǎn)處理系統(tǒng)的示意圖;
[0030] 圖13示出另2個示例子矩陣;以及
[0031] 圖14示出LDPC解碼器的操作的示例方法的流程圖。
[0032] 貫穿附圖使用共同的附圖標(biāo)記,以指示類似的特征。

【具體實(shí)施方式】
[0033] 下面僅以示例的方式描述了本發(fā)明的實(shí)施例。這些示例代表目前 申請人:已知的將 本發(fā)明付諸實(shí)踐的最佳方式,盡管它們并非是實(shí)現(xiàn)的唯一方式。描述陳述了示例的功能、以 及用于構(gòu)建并操作該示例的步驟的順序。然而,相同的或者等價的功能和順序可以由不同 示例完成。
[0034] 上述LDPC解碼算法涉及在臨時變量(運(yùn)行總數(shù))中存儲所有位節(jié)點(diǎn)更新,直至迭 代的結(jié)束,此時所有更新被立即應(yīng)用。該技術(shù)被稱為泛洪(flooding),并且如果給定的位 節(jié)點(diǎn)涉及多個校驗節(jié)點(diǎn)計算,那么對于該位節(jié)點(diǎn)的相同的LLR估計被用于迭代內(nèi)的所有計 算。然而,替代的方法允許首先處理的校驗節(jié)點(diǎn)以立即更新其連接的位節(jié)點(diǎn)(并且因此,更 新對于這些位節(jié)點(diǎn)的當(dāng)前LLR估計)。這意味著相同迭代內(nèi)的接下來的校驗節(jié)點(diǎn)使用更新 的LLR估計。該方法被稱作分層解碼,其與泛洪相比要求更少的存儲設(shè)備,并且導(dǎo)致算法更 快速收斂。
[0035] -些LDPC碼被設(shè)計用于分層解碼,并且對于這些碼而言,奇偶校驗(或者Η)矩陣 被分割為多個層,每個層由一組行(即,一組校驗節(jié)點(diǎn))組成,并且每個層僅使用一次特定 位節(jié)點(diǎn),如圖2的第一示例202所示。由于層中的每行包含位的不同集合,因此層內(nèi)的行可 以并行處理,不會有兩個以上的校驗節(jié)點(diǎn)試圖同時更新相同的位節(jié)點(diǎn)導(dǎo)致的任何沖突。
[0036] 在一些示例中,除了將H矩陣水平分割為層外,矩陣被進(jìn)一步垂直分割,以形成一 組子矩陣,每個尺寸為S1乘以S2,如圖2中的第二示例204所示。子矩陣的行構(gòu)成層,并且 每個子矩陣每列僅含有一個" 1 "以及每行僅含有一個" 1 "。這樣組成的碼稱作"架構(gòu)感知", 并且使得與之前的示例相比在解碼器中顯著的邏輯節(jié)省。
[0037] 盡管下面的描述是指分層解碼,但該方法還可以適用到非分層碼,諸如DVB-T2 碼,如下參考圖13所述。
[0038] 圖3是示出示例LDPC解碼器300的示意圖。其包括一個或多個存儲器,該存儲器 形成被布置為存儲對于每個位節(jié)點(diǎn)的估計的LLR(其可以稱作軟判決或者"位節(jié)點(diǎn)值")的 λRAM302。這些值可以表示為Qj[k],其中j指位節(jié)點(diǎn),并且k是迭代數(shù)。LDPC解碼器300 還包括并行操作的多個校驗節(jié)點(diǎn)處理系統(tǒng)(或者校驗節(jié)點(diǎn)處理塊)304。每個校驗節(jié)點(diǎn)處理 系統(tǒng)304與校驗對位(check-to-bit)節(jié)點(diǎn)消息存儲306接合,并且該存儲可以由一個或多 個存儲器(例如每個校驗節(jié)點(diǎn)處理系統(tǒng)304可以有一個存儲器)提供。這些校驗對位節(jié)點(diǎn) 消息可以表示為Rij [k],其中i指校驗節(jié)點(diǎn)。LPDC解碼器300額外包括2個混排系統(tǒng)308、 310,其從λRAM302獲得用于處理的適當(dāng)?shù)奈还?jié)點(diǎn)數(shù)據(jù),并將其傳遞至校驗節(jié)點(diǎn)處理系統(tǒng) 304,進(jìn)而將更新的位節(jié)點(diǎn)數(shù)據(jù)返回至λRAM302中的適當(dāng)點(diǎn)。
[0039] 圖3所示的解碼器300包括P個校驗節(jié)點(diǎn)處理系統(tǒng)304 (其中P是整數(shù)),因此, 解碼器可以最大并行處理P個校驗節(jié)點(diǎn)。并行處理的校驗節(jié)點(diǎn)的組可以稱作校驗節(jié)點(diǎn)塊 (CNB),并且CNB402的示例可以在圖4的H矩陣400的示例片段中看到。CNB包括Pras個校 驗節(jié)點(diǎn),并且在圖4的示例中Pras = 3。在利用了所有校驗節(jié)點(diǎn)處理系統(tǒng)304的示例實(shí)施方 式中,P=Ρ? (對于特定LDPC碼),盡管如下所述在一些示例中,Ρ>Ρ_ (由于由LDPC解碼 器支持的各種碼的子矩陣尺寸的差異)。通過增加CNB的尺寸(即通過增加PaJ增加了吞 吐量,然而,硬件尺寸也增加了(作為額外校驗節(jié)點(diǎn)處理系統(tǒng)304的結(jié)果,即隨著P增加)。 在示例中,層中的校驗節(jié)點(diǎn)的數(shù)量可以是CNB尺寸的整數(shù)倍,以便整數(shù)個CNB包括層(例如 在圖4中,層中有9個校驗節(jié)點(diǎn),并且CNB中有3個校驗節(jié)點(diǎn))。在示例中,對于DVB-T2而 言,解碼器在每個層可以使用8個CNB,其中CNB尺寸為45 (即Pcmb = 45),或者通過在提升 的內(nèi)部時鐘頻率上運(yùn)行解碼器,可以減小CNB尺寸。
[0040] 混排系統(tǒng)308被布置為在校驗節(jié)點(diǎn)處理系統(tǒng)304呈現(xiàn)正確的位節(jié)點(diǎn)數(shù)據(jù)。抓取用 于CNB的數(shù)據(jù)(如校驗節(jié)點(diǎn)處理系統(tǒng)304要求的)涉及從λRAM302挑選出多組軟判決數(shù) 據(jù)(即多組%陽值),長度為一個CNB(即每個時鐘周期為Pras值)。盡管H矩陣可以布置 為一組子矩陣,其中每個子矩陣包括空矩陣或者一個或多個單循環(huán)移位的單位矩陣(例如 圖4所示的),但單位矩陣的循環(huán)移位意味著要求的來自λRAM302的多組數(shù)據(jù)可以在偽隨 機(jī)布置的開始點(diǎn)開始。當(dāng)子矩陣尺寸等于P或者等于Ρ*Ν(其中N是整數(shù))時,那么開始點(diǎn) 將是規(guī)律的,并且(由混排系統(tǒng)308)要求的混排不太復(fù)雜。然而,當(dāng)子矩陣尺寸不等于Ρ*Ν 時,那么開始點(diǎn)將是不規(guī)律的,并且混排系統(tǒng)執(zhí)行更復(fù)雜的操作。例如,當(dāng)多組數(shù)據(jù)在偽隨 機(jī)布置的開始點(diǎn)開始時(并且盡管是以連續(xù)的順序),其將繞子矩陣邊界環(huán)繞。這在圖4所 示的H矩陣400的示例片段的右手子矩陣中的CNB2中顯示。
[0041] 處理校驗節(jié)點(diǎn)要求!Ti個位節(jié)點(diǎn)值(其中!Ti是連接至校驗節(jié)點(diǎn)i的位節(jié)點(diǎn)的數(shù)量), 并且在圖4所示的示例中,每個非空子矩陣向每個校驗節(jié)點(diǎn)貢獻(xiàn)一個位節(jié)點(diǎn)值。^的值對于 CNB中的所有校驗節(jié)點(diǎn)相同,并且等于子矩陣的數(shù)量,位節(jié)點(diǎn)數(shù)據(jù)需要從所述子矩陣供應(yīng)。
[0042] 如果每個校驗節(jié)點(diǎn)處理系統(tǒng)304具有單個q位輸入和單個q位輸出(其中q是位 節(jié)點(diǎn)LLR數(shù)據(jù)的字寬度、[k]),那么連接的位節(jié)點(diǎn)數(shù)據(jù)以串行方式傳遞至每個校驗節(jié)點(diǎn)處 理系統(tǒng),并且當(dāng)解碼器300在ri時鐘周期處理P個校驗節(jié)點(diǎn)時,實(shí)現(xiàn)了最大吞吐量。為了 在XRAM302的輸入和輸出匹配該吞吐量,ARAM302要求P*q位的總RAM寬度(對于雙端口 RAM而言);然而,如果總RAM寬度恰好等于P*q位(對于雙端口RAM而言),那么在混排系 統(tǒng)308、310內(nèi)實(shí)現(xiàn)的重新排序系統(tǒng)為了以正確的順序呈現(xiàn)數(shù)據(jù)(給校驗節(jié)點(diǎn)處理系統(tǒng)304 和λRAM302)是復(fù)雜的,并且這會導(dǎo)致顯著的延遲。此外,當(dāng)對角線(循環(huán)移位的單位矩陣 中)沒有對齊存儲單元邊界時,需要存儲在一個周期(即對于一個CNB)拉出的數(shù)據(jù)用于接 下來的CNB的處理,并且這可以參考圖4描述。
[0043] 在圖4所示的H矩陣400的示例片段中,子矩陣尺寸S(其中S是整數(shù))是CNB的 尺寸Pras的整數(shù)倍。在示出的示例中,Pcmb = 3并且S= 9,S卩,子矩陣中有3個CNB并且存 儲器寬度是3個位節(jié)點(diǎn)(即3q,恰好等于P_*q)。參考回圖3,對應(yīng)的解碼器包括3個校驗 節(jié)點(diǎn)處理系統(tǒng)304(P= 3 =PaJ。在圖4所示的示例中,每個子矩陣也僅有一個單位矩陣, 盡管本文描述的方法可以適用于:每個子矩陣有多于一個單位矩陣的碼,如參考圖13在下 面描述。
[0044] 為了處理CNB0,左手子矩陣要求的所有數(shù)據(jù)可以通過訪問存儲器單元0獲得(例 如在第一周期,一個位節(jié)點(diǎn)值被傳遞給3個校驗節(jié)點(diǎn)處理系統(tǒng)304中的每個);然而,為了 訪問用于右手子矩陣的數(shù)據(jù)(中心子矩陣是空矩陣,并被忽略對于CNB0-2),訪問存儲單元 6和7 (其占用2個周期)。在訪問這兩個存儲單元時,獲得了比處理CNBO所需更多的數(shù)據(jù), 并且該附加的數(shù)據(jù)是處理CNBl和2所要求的。由于總RAM寬度等于PCNB*q(在該示例中P =PaJ,因此沒有可用的RAM吞吐量來再次訪問相同的數(shù)據(jù)(當(dāng)處理CNBl或者2時),并 且因此該附加的數(shù)據(jù)需要被保留。保留該數(shù)據(jù)是有問題的,因為其導(dǎo)入了延遲(即,其導(dǎo)入 了一段時間,在該此期間數(shù)據(jù)在λRAM外緩存,并且在此期間,在相同的位節(jié)點(diǎn)在下一行饋 送至非空子矩陣的情況下,那么新的子矩陣行無法被處理)。這使得難以保證更新以正確的 順序處理,并且要求例如以緩存形式的、用于附加數(shù)據(jù)的額外存儲。
[0045] 本文描述的是可配置的改善的LDPC解碼器(或者解碼器架構(gòu)),其支持很多不同 的LDPC碼,并且這些支持的LDPC碼可以具有任何尺寸的子矩陣。此外,在改善的LDPC解 碼器中,總存儲器寬度(即,在單個周期可以從整個λΜΜ302訪問的數(shù)據(jù)的量)寬于P*q, 這能使對于每個子矩陣完整的CNB有價值的數(shù)據(jù)在單個周期被訪問(例如對存儲器單個訪 問),不論對角線放置在子矩陣的哪里,并且不需要任何存儲供以后使用的不希望的數(shù)據(jù)。 λRAM302可以包括多個獨(dú)立可尋址存儲器(即M個獨(dú)立可尋址存儲器,其中M是整數(shù))。在 各種示例中,M個存儲器可以包括與P*q寬度的基線要求相比一個或多個額外庫(bank)的 存儲器(例如圖7所示的)、和/或更寬的存儲器庫(例如圖9所示的)。在很多示例中,M 個存儲器庫可以都具有相同的寬度;然而,在其他示例中,存儲器可以具有不同寬度(例如 4個更大寬度的存儲器和2個更小寬度的存儲器,其中M= 6)。
[0046] 在可以用于DVB-T2的示例中,Pcnb = 45 =P并且λRAM302可以包括多個存儲器 庫,每個為15個軟判決寬(例如每個具有15q的寬度)。在該示例中,3個存儲器將匹配 P(并可以表示為基線存儲器要求);然而,在改善的解碼器示例中,可以有4個存儲器。在 第二示例中,可以使用3個更寬的存儲器,每個存儲器具有2/3*P*q的寬度(而非作為基線 要求的l/3*P*q)。
[0047] 當(dāng)P=Pcmb時,基線存儲器要求可以表示為P*q或者Pc;NB*q。然而,當(dāng)P>Pc;NB時,對 于特定碼的基線存儲器要求是Pc:NB*q,并且對于解碼器(其可以是能對多碼解碼的解碼器) 的基線存儲器要求是P*q(由于其由校驗節(jié)點(diǎn)處理系統(tǒng)的數(shù)量確定,并非用于任何碼的CNB 的實(shí)際尺寸)。當(dāng)基線要求(P*q)由Mmin個存儲器滿足時,每個寬度為P/Mmin*q,可能有多于 Mmin個存儲器(即M>Mmin)和/或每個存儲器可能具有超過P/Mmin*q的寬度。
[0048] 圖5示出示例可配置的LDPC解碼器500的示意圖,其支持很多不同的LDPC碼(具 有任何尺寸的子矩陣)以及包括單個子矩陣502的H矩陣的片段,其中子矩陣尺寸是36。 在該示例中,P=Pcmb = 9 (因此有9個校驗節(jié)點(diǎn)處理系統(tǒng)304并且Pcmb是子矩陣尺寸的整 數(shù)約數(shù)),并且λRAM302包括4個存儲器504 (記為A-D)。每個存儲器的存儲器寬度是3 位節(jié)點(diǎn)值(即3q),使得3個存儲器將滿足(P*q的)基線要求;然而,該系統(tǒng)包括額外的存 儲器(給出總存儲器寬度為12q= 4/3*P*q)。應(yīng)該理解的是,包括4個存儲器的該布置僅 示出為示例的方式,并且在其他示例中,根據(jù)子矩陣尺寸、要求的吞吐量等,可以使用不同 數(shù)量的存儲器。例如,可以使用M個存儲器的任何布置,其中那些M個存儲器的M-I的總 寬度至少可以供應(yīng)Pras-I位節(jié)點(diǎn)值,即對于每個具有w位節(jié)點(diǎn)值的寬度的M個存儲器而言, (M-I)w> (Pcnb-I)。
[0049] 盡管圖5示出Pcmb作為子矩陣尺寸的整數(shù)約數(shù),但應(yīng)該理解的是這可能并不總是 可能的(例如當(dāng)S是素數(shù)時)。
[0050] 解碼器500還包括2個混排系統(tǒng)508、510。第一混排系統(tǒng)508被布置為在校驗節(jié) 點(diǎn)處理系統(tǒng)304呈現(xiàn)正確的位節(jié)點(diǎn)數(shù)據(jù),并且第二混排系統(tǒng)510被布置為將更新的位節(jié)點(diǎn) 數(shù)據(jù)(例如以更新的形式或者更新值,如下文更詳細(xì)描述的那樣)返回至λRAM504。
[0051] 從子矩陣502取出位節(jié)點(diǎn)數(shù)據(jù)的操作對于CNBO由圖5中的陰影示出,并且該操作 由第一混排系統(tǒng)508實(shí)現(xiàn)。如圖5所示,通過訪問RAMC單元0、RAMD單元0、RAMA單元 1和RAMB單元1獲得了所有要求的位節(jié)點(diǎn)值,并且所有這些值可以在單個周期中被訪問 (因為從每個存儲器僅有單個單元被訪問)。然后,從自RAMC訪問的數(shù)據(jù)丟棄2個位節(jié)點(diǎn) 值,并且從自RAMB訪問的數(shù)據(jù)丟棄1個位節(jié)點(diǎn)值??梢载暙I(xiàn)給每個CNB的存儲單元的數(shù) 量依賴于架構(gòu)設(shè)計。
[0052] 圖6示出類似于圖5所示的第一示例子矩陣600,其對應(yīng)于每個存儲單元具有3 個軟判決的4個存儲器布置(M= 4);然而,該在示例子矩陣600中,每個子矩陣僅有3個 CNB,因此子矩陣尺寸是27 (與圖5中的S= 36相比,每個子矩陣有4個CNB)。這意味著在 子矩陣600中,有9個存儲單元貢獻(xiàn)給子矩陣:這是行的第一子矩陣,使得這些包括來自每 個存儲器的單元〇和1,以及額外地來自RAMA的單元2。
[0053] 在該示例中可見,處理子矩陣600中的CNBO將要求從存儲器A的2個單元(A0和 A2)拉取數(shù)據(jù),而存儲器B保持未使用,因此這是不可能的。
[0054] 相反,在圖6中的第二示例子矩陣602中,當(dāng)跨所有RAM(例如從每個RAMl至M的 單元X)應(yīng)用任何RAM單元(或者RAM地址)時,僅從一個子矩陣訪問數(shù)據(jù),并且這避免了 有關(guān)子矩陣600的上述的問題。在第二示例中,有3個RAM(M= 3)并且每個存儲單元是5 個軟判決的寬度。每個RAM對每個子矩陣供應(yīng)2個單元,并且6個單元提供30位節(jié)點(diǎn)的存 儲器寬度。這導(dǎo)致3個浪費(fèi)的位節(jié)點(diǎn)(在該示例中的存儲單元Cl),然而,當(dāng)繞子矩陣邊界 環(huán)繞時,這啟動了存儲器的循環(huán)選擇(即為了不必對于單個的CNB從相同的存儲器中的2 個單元讀出)。在像這樣的示例中,當(dāng)有未使用的RAM數(shù)據(jù)通路時,可以使用缺口封閉(gap closing)硬件,參考圖9在以下對其進(jìn)行描述。
[0055]GB20600碼(用于數(shù)字地面電視的LDPC碼的示例)使用127的子矩陣尺寸,其是 素數(shù)。如果實(shí)現(xiàn)了能夠并行處理45個校驗節(jié)點(diǎn)(P= 45,因為這是對于另一個碼的最佳布 置)的硬件,那么對于GB20600碼有效分裂為CNB將是每個子矩陣有3個CNB,尺寸為42、 42和43,因為這會有效使用可用的校驗節(jié)點(diǎn)處理系統(tǒng)。如上所述,具有4個存儲器布置,并 且這可能對于其他碼(例如DVB-T2)是最佳的;以及15個軟判決的存儲單元寬度,這在每 個子矩陣給出9個RAM單元(9個存儲器寬度給出135個軟判決)。然而,在該布置中,當(dāng)跨 所有RAM(例如每個RAMl至M中的單元X)應(yīng)用任何RAM單元時,將不會僅從一個子矩陣訪 問數(shù)據(jù)(如以上描述),反而,將有一些當(dāng)跨所有RAM應(yīng)用時從多于一個的子矩陣訪問數(shù)據(jù) 的RAM單元。這意味著循環(huán)選擇將跨子矩陣邊界打破,因此是不可能的。為了使用4個存 儲器(M= 4)布置來處理該碼,每個子矩陣可以使用12個RAM單元(M的倍數(shù))。換言之, 這樣設(shè)計的系統(tǒng)對每個子矩陣將使用4個CNB,尺寸為32或者31 (3*32+31 = 127)。每個 CNB從3個存儲單元獲取數(shù)據(jù),并有71 %的硬件利用率效率(因為使用了 45個校驗節(jié)點(diǎn)處 理系統(tǒng)中的32個)。
[0056] 在該4個存儲器(M= 4)的布置下,不同的子矩陣尺寸可能導(dǎo)致非常不同的硬件 利用率。例如,在該子矩陣尺寸下,每個子矩陣可以使用S= 60的4個RAM單元,因此,完 全利用15個RAM數(shù)據(jù)路徑。每個子矩陣有2個CNB時,有使用的30個校驗節(jié)點(diǎn)處理系統(tǒng) (來自總數(shù)為45個的校驗節(jié)點(diǎn)處理系統(tǒng)),效率為67%。然而,對于S= 61,每個子矩陣需 要使用8個RAM單元,因此,7個或者8個RAM單元實(shí)際上被用于每個RAM。這意味著使用 20或者21的CNB尺寸,(每個子矩陣3個CNB),效率降至45%。所以,根據(jù)子矩陣尺寸,4 個存儲器布置可能不是最佳的,參考圖9在下面描述了替代的布置。
[0057] 如上所述,為了避免與必須從相同的RAM、任何RAM單元(或者RAM地址)訪問2 個存儲單元關(guān)聯(lián)的問題,當(dāng)跨所有RAM應(yīng)用時,僅從一個子矩陣訪問數(shù)據(jù),即從每個RAMl至 M的單元X訪問相同的子矩陣。因此,子矩陣中的存儲單元的數(shù)量是在一起形成ARAM的利 用的獨(dú)立可尋址存儲器(M)的數(shù)量的倍數(shù)。
[0058] 圖7是支持很多LDPC不同碼(具有任何尺寸的子矩陣)的另一個示例可配置的 LDPC解碼器700的示意圖,其中總存儲器寬度超過P*q的基線值。正如圖5的示例,圖7中 的示例包括4個存儲器701-704,并且具有4/3*P*q的總存儲器寬度。
[0059] 如圖5的示例那樣,解碼器700包括2個混排系統(tǒng)706、708。在λRAM701-704的 輸出的混排系統(tǒng)708包括讀出桶式移位器(readbarrelshifter) 710、以及多個互相連接 的復(fù)用器712。來自RAM701-704的讀出數(shù)據(jù)應(yīng)用到讀出桶式移位器710,其處理H矩陣內(nèi) 的每個對角線的開始可能沒有對齊存儲器寬度的事實(shí)。因此桶式移位器710從RAM701-704 得到4P/3個軟判決,并輸出要求的P軟判決,將位節(jié)點(diǎn)與其必要的校驗節(jié)點(diǎn)對齊,并且丟棄 處理中不希望的P/3個軟判決。在桶式移位器710的輸入的所述多組復(fù)用器712對RAM輸 出重新排序,以處理含有更高校驗節(jié)點(diǎn)的存儲器將根據(jù)對角線的位置而改變的事實(shí),并以 一致的順序(例如在示出的示例中,左側(cè)為最高校驗節(jié)點(diǎn),右側(cè)為最低校驗節(jié)點(diǎn))向桶式移 位器710提供位節(jié)點(diǎn)。
[0060] 單個CNB的處理包括依次從每個非空子矩陣(從λRAM701-704)讀出位節(jié)點(diǎn)數(shù) 據(jù),并將其通過桶式移位器710流至校驗節(jié)點(diǎn)處理系統(tǒng)714。然后,對于位數(shù)據(jù)的更新以相 同的順序從校驗節(jié)點(diǎn)處理系統(tǒng)(或者系統(tǒng))714流出,進(jìn)入(作為第二混排系統(tǒng)706的部分 的)寫入桶式移位器716(writebarrelshifter)。該桶式移位器716執(zhí)行與讀出桶式移 位器710相反的功能,將數(shù)據(jù)與RAM701-704中要求的位置重新對齊。復(fù)用器組718然后將 正確的值指引至每個RAM。由于RAM701-704得到4P/3個輸入值,而僅P個值從校驗節(jié)點(diǎn)處 理系統(tǒng)714到達(dá),因此一些值將是無效的,并且其被遮蔽以防止由一組寫入啟動控制720寫 入。
[0061] 應(yīng)該理解的是,本文指代的讀出和寫入桶式移位器的操作(例如讀出桶式移位器 710和寫入桶式移位器716)不同于可以被用于常規(guī)LDPC解碼器的常規(guī)桶式移位器。常規(guī) 桶式移位器被配置用于特定尺寸的碼子矩陣,并只是執(zhí)行輸入元件的循環(huán)旋轉(zhuǎn),進(jìn)而將這 些循環(huán)旋轉(zhuǎn)的輸入元件(即,相同數(shù)量的元件輸出作為輸入)輸出。然而,如上所述,在本 文描述的可配置的LDPC解碼器中實(shí)現(xiàn)的桶式移位器輸入并輸出不同數(shù)量的元件(例如,根 據(jù)精確的RAM布置、LDPC碼構(gòu)造等)。
[0062] 圖8示出示例校驗節(jié)點(diǎn)處理系統(tǒng)800的示意圖。每個校驗節(jié)點(diǎn)處理系統(tǒng)接收一條 位節(jié)點(diǎn)數(shù)據(jù),每個時鐘周期為% [L-1],(其中L是對于分層解碼的層指數(shù)),因此其占用ri 個時鐘周期來積累充分的數(shù)據(jù)以繼續(xù)計算。因此,在校驗節(jié)點(diǎn)處理系統(tǒng)800的輸入位置的 Qj寄存器801-802是雙緩沖的:當(dāng)對于一個校驗節(jié)點(diǎn)的數(shù)據(jù)進(jìn)入時,對于之前的校驗節(jié)點(diǎn) 的數(shù)據(jù)被處理。
[0063] 校驗節(jié)點(diǎn)處理的第一級是從上次迭代減去存儲的校驗對位節(jié)點(diǎn)消息:從Qj[L_l] 值減去RijDi-I](塊803)。在一些示例中,RijDc-I]值可以以"壓縮的"形式(例如最小、最 小指數(shù)、符號位的組和最小但是一個值)存儲在存儲804中。該數(shù)據(jù)以雙緩沖方式"解壓 縮"(在塊806-807中),使得解壓縮的Rij[k-Ι]值看起來與對應(yīng)的Qj[L-1]值一致(在塊 803)。
[0064] 新的校驗對位節(jié)點(diǎn)消息的組RijDO然后(在塊808中)可以使用如下計算:
[0065] & [A] = |ρ,.[£ - 1] - - 1]|) (I) -間nu,
[0066] 其中Sij是由符號的XOR函數(shù)確定的符號校正因子(參見下方的公式⑷),并且 表達(dá)式j(luò)'eR[i]\{j}代表指數(shù)j'跨連接的位節(jié)點(diǎn)的組運(yùn)行,但是跳過當(dāng)前指數(shù)j。新的 校驗對位節(jié)點(diǎn)消息以壓縮的形式(壓縮在塊810中執(zhí)行)被重新存儲(在存儲804中),為 下一次迭代準(zhǔn)備好。
[0067] 下面的公式然后可以被用于更新位節(jié)點(diǎn)值:
[0068] Qj [L] =Qj [L-1]-Rij [k~l]+Rij [k] (2)
[0069] 然而,在圖8所示的示例中,從校驗節(jié)點(diǎn)處理塊800出現(xiàn)的值只 是,辦-1]+1^[?部分(如塊812中產(chǎn)生的那樣),并且與Qj[L-l]的相加是由位于存儲 回RAM701-704之前的加法器722完成的(如圖7所示)。
[0070] 下面更詳細(xì)地描述上面的公式(1)和(2)。
[0071] 圖9是支持很多不同LDPC碼(具有任何子矩陣尺寸)的其他示例可配置的LDPC解碼器900的示意圖,其中,總存儲器寬度超過P*q的基線值。在該示例中,有3個 λRAM901_903(M= 3),其中每個具有2/3*P*q的存儲器寬度,給出2P*q的總寬度。圖9所 示的架構(gòu)是非常靈活的,并可以容納很多不同子矩陣尺寸(例如從對于一些無線標(biāo)準(zhǔn)的小 的子矩陣尺寸、到對于數(shù)字電視標(biāo)準(zhǔn)的顯著更大的子矩陣尺寸),并且因此很多不同碼。
[0072] 在該示例中,混排系統(tǒng)904、906的實(shí)施方式略不同于圖7所示和上面描述的,盡管 應(yīng)該理解的是任一解碼器700、900都可以使用任何適當(dāng)?shù)募軜?gòu)來實(shí)現(xiàn)混排系統(tǒng)。在圖9的 示例中,讀出預(yù)移位器908-909和寫入后移位器910-911進(jìn)行操作,以封閉由RAM中未使用 的數(shù)據(jù)路徑導(dǎo)致的任何缺口。通過將該缺口填充硬件導(dǎo)入至架構(gòu),可以從每個存儲單元出 現(xiàn)的軟判決的數(shù)量(即位節(jié)點(diǎn)值)是變量,其可以針對特定應(yīng)用選擇。
[0073] 在RAM中的所有數(shù)據(jù)路徑被使用的標(biāo)準(zhǔn)(S卩,對于RAM中的所有數(shù)據(jù)路徑被使用 的子矩陣尺寸,P=PaJ中,預(yù)移位器和后移位器值保持在0,并且這些級沒有效果。這例 如是具有Pcmb = 36的DVB-T2中的情況。對于該碼,可以使用360的子矩陣尺寸,其可以被 分割為10個CNB,為了 100%利用可以設(shè)置在示例解碼器中的36個校驗節(jié)點(diǎn)處理系統(tǒng)(其 中S= 360,P= 36)。每個RAM單元具有24個軟判決(因為存儲器寬度為2/3*P*q并且 2/3*36 = 24),每個子矩陣有15個RAM單元,其是3-RAM系統(tǒng)要求的3的倍數(shù)(由于參考 圖6的上述原因)。
[0074] 對于運(yùn)行在相同硬件上的GB20600的情況(不同的數(shù)字電視標(biāo)準(zhǔn)),S= 127并且 僅有6個RAM單元組成子矩陣(6是用于每個RAM單元的結(jié)果導(dǎo)致< 24個軟判決的3的最 小倍數(shù));所以僅有21或者22個軟判決實(shí)際上來自每個RAM單元,給出子矩陣尺寸為127。 當(dāng)有36個數(shù)據(jù)路徑可用(P= 36)時,可以使用的最大CNB尺寸是36并且每個子矩陣可以 使用4個CNB,因此實(shí)際的CNB尺寸--Pcmb是31或者32 ;導(dǎo)致88%的利用圖(由PeNB/P 給出)。
[0075] 如該示例展示的那樣,為了改善效率,PaJCNB尺寸)應(yīng)該接近P,因為這意味著校 驗節(jié)點(diǎn)處理硬件沒有未充分利用,受到如下約束:組成子矩陣的RAM單元的數(shù)量是獨(dú)立可 尋址存儲器的數(shù)量的倍數(shù),并且每個單元的軟判決的數(shù)量不超過單獨(dú)存儲器的寬度。
[0076] 讀出預(yù)移位器908-909將數(shù)據(jù)從"邊遠(yuǎn)的"存儲單元向內(nèi)朝向中心移位,這能創(chuàng)建 有未使用的數(shù)據(jù)路徑的"重疊"。這些預(yù)移位器908-909接下來的選擇塊912然后包括2對1 復(fù)用器,來選擇已創(chuàng)建重疊的適當(dāng)?shù)男校?,在來自一個存儲器的不希望的數(shù)據(jù)與來自第二 存儲器的希望的數(shù)據(jù)之間的重疊的區(qū)域,選擇塊將選擇第二存儲器。圖10示出選擇塊912 的示意圖,簡化為P= 12的情況;以及圖11示出對于特定CNB的數(shù)據(jù)如何對于GB20600的 情況進(jìn)行組裝的示例。
[0077] 在圖11中,希望的數(shù)據(jù)1102示出為對角陰影,并且這對應(yīng)于在(在H矩陣片段 1105中)CNBO內(nèi)示出的粗對角線1104。不希望的數(shù)據(jù)1106示出為沒有任何陰影,并且來 自未使用的RAM數(shù)據(jù)路徑1108的數(shù)據(jù)示出為點(diǎn)狀圖案。應(yīng)該理解的是,CNB尺寸和使用的 RAM數(shù)據(jù)路徑的數(shù)量兩者可以根據(jù)H矩陣中的位置而變化。
[0078] 在該示例中,未使用的數(shù)據(jù)位于"右手"存儲器數(shù)據(jù)路徑(即,具有最高位節(jié)點(diǎn)指 數(shù)的數(shù)據(jù)路徑)。這在移位/選擇設(shè)計中會引起不對稱(例如圖9或者10中)。來自存儲 器B的輸出向右移位,以將未使用路徑丟失,然而,該區(qū)域中的數(shù)據(jù)總是來自存儲器B(即其 移位至之前也由來自存儲器B的數(shù)據(jù)占據(jù)的位置),因此不需要選擇器。來自存儲器A的輸 出向左移位,以與存儲器C的未使用的區(qū)域重疊,并且選擇塊選擇該區(qū)域中的存儲器A。因 此,封閉了不希望的缺口。
[0079] 圖9-11中示出并在上面所描述的缺口封閉硬件,能使系統(tǒng)有效改變RAM的寬度, 以應(yīng)對不同的子矩陣尺寸(通過允許系統(tǒng)保證該數(shù)據(jù)分割為子矩陣尺寸)。當(dāng)有多于一個 被封閉的缺口時,不同缺口的尺寸不需要相同。
[0080] 圖9所示的示例解碼器不包括任何加法器(例如,對應(yīng)于圖7的加法器722)。在 這種情況下將-Hk-U+Ryk]相加至QjL-I]是在校驗節(jié)點(diǎn)處理系統(tǒng)914內(nèi)執(zhí)行的,并且 圖12示出這樣的校驗節(jié)點(diǎn)處理系統(tǒng)1200的示例的示意圖。
[0081] 在圖12所示的示例校驗節(jié)點(diǎn)處理系統(tǒng)1200中,在之前的迭代上來自該校驗節(jié)點(diǎn) 的Rij消息事先從RijRAM1202取回;這些然后隨著它們進(jìn)入校驗節(jié)點(diǎn)處理系統(tǒng)1200被解壓 縮(在塊1204中),并且從Qj值中減去(在塊1206中),形成Qji位對校驗節(jié)點(diǎn)消息。隨 著這些進(jìn)入,系統(tǒng)記錄它們的符號,并保持最小以及下個最小幅度的運(yùn)行估計。Qji消息也存 儲在FIF01208中。一旦對于特定CNB的上次位節(jié)點(diǎn)值已進(jìn)入,每個校驗節(jié)點(diǎn)處理系統(tǒng)然后 可以形成Ru消息的新的壓縮組(在塊1210中)用于存儲。這些消息存儲在小緩沖1212 中;以及當(dāng)從該緩沖輸出時,它們可以被解壓(在塊1214中),并相加至從FIF01208出現(xiàn) 的^消息(在塊1216中),形成新的%值用于輸出回λRAM。
[0082] 在圖9-12中示出的LDPC解碼器900的變化中,對于讀出和寫入兩者示出的2個 級別的移位(即移位器和預(yù)移位器)可以合并為對于每個讀出和寫入的單個移位級。在示 例中,移位級可以借助適當(dāng)?shù)恼诒蜗蛎總€左、中和右組的LLR適用單個移位,進(jìn)而將其在一 起邏輯或。這在功能上等同于圖9-12中示出的2級方法,并應(yīng)該理解的是在移位策略上也 可以有在功能上等價的其他變化。
[0083] 在圖9-12中示出的架構(gòu)被設(shè)計為與多個不同碼操作,并作為結(jié)果,校驗節(jié)點(diǎn)處理 系統(tǒng)1200的架構(gòu)略不同于圖8所示和以上描述的架構(gòu)。如果對于特定碼的每個校驗節(jié)點(diǎn) 具有相同數(shù)量的連接的位節(jié)點(diǎn),那么%緩沖可以構(gòu)造為雙緩沖系統(tǒng)(如圖8中的示例):一 個緩沖被用于積累對于當(dāng)前校驗節(jié)點(diǎn)的消息,而另一個緩沖讀出用于之前的校驗的消息, 形成修改的%輸出。然而,在每個校驗節(jié)點(diǎn)可能沒有恒定數(shù)量的連接的位節(jié)點(diǎn)(例如對于 一些DVB-T2碼,該數(shù)量從一個層到下個層會變化)的實(shí)施方式中,使用這樣的雙緩沖布置 將使得操作停頓并丟失處理周期(例如,如果要讀出的位節(jié)點(diǎn)的數(shù)量多于讀入數(shù)量,那么 校驗節(jié)點(diǎn)處理系統(tǒng)的操作停頓以等待讀出結(jié)束)。
[0084] 為了避免通過這樣停頓,圖12的實(shí)施方式中的壓縮的Rij緩沖1212是具有3個位 置的非常小的FIFO。如果!"《?是該碼中每個校驗節(jié)點(diǎn)的最大數(shù)量的位節(jié)點(diǎn),那么在"天的 開始"(開始迭代),讀出校驗節(jié)點(diǎn)被延遲了 周期。這意味著當(dāng)系統(tǒng)首先開始讀出時,Qji FIF01208保持rmxf條目;并且系統(tǒng)寫入至Rij緩沖1212中的第二或者第三位置(根據(jù)第 一個CNB是否具有少于或者等于rMX個連接)。這然后給予充分的緩沖,以保證讀出或者處 理操作都不需要從那里開始停頓。
[0085] 盡管圖9所示的示例LDPC解碼器900包括3個λRAM(M= 3),但在另一個示例中 可能僅有2個λRAM(M= 2)。在這樣的示例中,移位邏輯與3λRAM示例中相同,除了相同 的LLR(來自一個ARAM的)被用于左和右LLR數(shù)據(jù)路徑(例如,塊910-911),使得移位邏 輯作為桶式移位器。
[0086] 在上述示例碼中,每個子矩陣有一個單位矩陣,盡管本文描述的方法可以應(yīng)用到 每個子矩陣有多于一個單位矩陣的碼。這樣的碼的示例是DVB-T2或者DVB-S2,并且這些碼 不是架構(gòu)感知的。然而,這些碼確實(shí)具有可以重新布置的構(gòu)造和H矩陣,以采用以下形式: 含有循環(huán)移位的單位矩陣(除了不與模式擬合的一個奇偶性位)的尺寸為360x360節(jié)點(diǎn)的 子矩陣。
[0087] 因為這些碼不是"架構(gòu)感知的",因此每個子矩陣要么可以是空矩陣,要么可以含 有一個或多個移位的單位矩陣。多于一個單位矩陣存在時,這可以稱作"多對角線",并且在 一些示例中,高達(dá)4個單位矩陣可以存在于單個子矩陣中。
[0088] 這些多對角線使得不可能將H矩陣拆分為真正層。在多對角線子矩陣中,將多次 使用相同組的位節(jié)點(diǎn),其連接至不同的校驗節(jié)點(diǎn)。在很多情形下,子矩陣內(nèi)的多個校驗節(jié)點(diǎn) 將嘗試更新相同的位節(jié)點(diǎn)。這具有2個含義:首先,這些校驗節(jié)點(diǎn)對于每個位節(jié)點(diǎn)將都使用 相同的輸入值(這意味著從分層解碼的想法出發(fā),每次使用已由之前的校驗節(jié)點(diǎn)更新的位 節(jié)點(diǎn))。其次,不用修改上述架構(gòu),這將意味著對位節(jié)點(diǎn)的兩個更新中的一個將覆蓋另一個, 使得更新中的一個將丟失。
[0089] 這些含義的第一個具有的效果是:解碼器性能下降至純泛洪解碼器(所有校驗節(jié) 點(diǎn)從相同組的位節(jié)點(diǎn)饋送)與真正分層解碼器(位節(jié)點(diǎn)在每次使用之間更新)之間。
[0090] 這些含義的第二個具有更嚴(yán)重的后果:如果校驗節(jié)點(diǎn)更新持續(xù)丟失,那么這將降 低碼的性能。仿真示出了如果這被允許發(fā)生,那么一些位節(jié)點(diǎn)將卡住,并沒能朝向改善的 LLR值遷移。沖突的數(shù)量通過使用CNB(如上所述)減小,并且可以通過去除在每個CNB內(nèi)沖 突的那些邊緣(即連接)來處理任何剩余沖突,如參考圖13所示的示例子矩陣1300、1301 解釋的。
[0091] 在第一示例子矩陣1300中,以多于CNB的尺寸隔開了 2個對角線1302、1304,因 此在用于任何CNB的位節(jié)點(diǎn)之間沒有沖突。如果對角線之間的間距減小到少于CNB尺寸, 那么沖突將開始出現(xiàn),如第二示例子矩陣1301所示,僅當(dāng)2個對角線相鄰放置時發(fā)生最大 沖突。假定在實(shí)際碼中在對角線之間一般有合理的間距,并且本文描述的方法對CNB而非 子矩陣進(jìn)行操作,需要在任何迭代中排除的邊緣的數(shù)量實(shí)際上非常小。在第二示例子矩陣 1301中,需要排除的邊緣被圈出1306,并且可見這些僅是涉及相同的CNB內(nèi)的2個奇偶校 驗的位節(jié)點(diǎn)的這些點(diǎn)。
[0092] 當(dāng)處理具有多對角線的子矩陣時,抓取CNB輸入數(shù)據(jù)(由混排系統(tǒng))將涉及訪問 相同的子矩陣兩次(每個情況下對于對角線為不同的開始位置)。這可以潛在地將相同的 位節(jié)點(diǎn)數(shù)據(jù)放入處理管道兩次。當(dāng)數(shù)據(jù)回到RAM(再次從混排系統(tǒng))時,將會有使得更新被 覆蓋的重復(fù)的寫入地址。將被保留、即不覆蓋的該值與上次出現(xiàn)的地址關(guān)聯(lián);并且這依賴于 當(dāng)起初讀出數(shù)據(jù)時對子矩陣索引的順序。通過循環(huán)旋轉(zhuǎn)順序(對角線以該順序被參考),當(dāng) 從λRAM拉出數(shù)據(jù)時(通過混排系統(tǒng)),不同的更新在不同迭代上對于給定層保留。參考回 圖13中的第二示例子矩陣1301,有2個對角線1308、1310。在第一迭代中,首先參考對角 線1308,在該情況下,從圈邊緣1306導(dǎo)致的更新將被覆蓋(并且因此那些邊緣將從系統(tǒng)被 有效排除)。在第二迭代中,首先參考另一個對角線1310,并因此從圈邊緣1306導(dǎo)致的更 新將實(shí)際上覆蓋從沖突邊緣導(dǎo)致的更新,并且因此這些圈邊緣1306將被保留。
[0093]在示例實(shí)施方式中,順序的循環(huán)旋轉(zhuǎn)(其中對角線以該順序被參考)可以使用二 維表來記錄對于每行的H矩陣信息,如下所示:
[0094]

【權(quán)利要求】
1. 一種可配置的LDPC解碼器(500、700、900),被布置為支持具有任何子矩陣尺寸的多 個不同的LDPC碼構(gòu)造,所述LDPC解碼器包括: 多個獨(dú)立可尋址存儲器(504、701-704、901-903),被布置為共同存儲對于每個位節(jié)點(diǎn) 的軟判決數(shù)據(jù),用于對LDPC碼進(jìn)行解碼,并且每個存儲器具有寬度,存儲器的所述寬度包 括在單個周期可從所述存儲器訪問的數(shù)據(jù)的量; 多個校驗節(jié)點(diǎn)處理系統(tǒng)(304、714、914),被布置為并行操作,并產(chǎn)生對所述軟判決數(shù)據(jù) 的更新; 第一混排系統(tǒng)(508、708、906),被布置為從所述多個獨(dú)立可尋址存儲器將數(shù)據(jù)傳遞至 所述多個校驗節(jié)點(diǎn)處理系統(tǒng);以及 第二混排系統(tǒng)(510、706、904),被布置為從所述多個校驗節(jié)點(diǎn)處理系統(tǒng)將對所述軟判 決數(shù)據(jù)的所述更新傳遞至所述多個獨(dú)立可尋址存儲器, 其中,所述多個獨(dú)立可尋址存儲器的總寬度大于由所述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的 校驗節(jié)點(diǎn)的數(shù)量與對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度之積。
2. 如權(quán)利要求1所述的可配置的LDPC解碼器,其中對于所述LDPC碼的奇偶校驗矩陣 包括多個子矩陣,校驗節(jié)點(diǎn)塊包括由所述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的組,并 且子矩陣包括多個校驗節(jié)點(diǎn)塊。
3. 如權(quán)利要求2所述的可配置的LDPC解碼器,其中所述多個獨(dú)立可尋址存儲器包括 M個獨(dú)立可尋址存儲器,每個存儲器包括多個存儲單元,每個存儲單元被布置為存儲對于多 個位節(jié)點(diǎn)的軟判決數(shù)據(jù),其中每個子矩陣中的所述位節(jié)點(diǎn)分布在X個存儲單元之間,其中X 是M的倍數(shù)并且M和X是整數(shù)。
4. 如權(quán)利要求2所述的可配置的LDPC解碼器(500、700),其中所述多個獨(dú)立可尋址存 儲器包括第一多個獨(dú)立可尋址存儲器,和至少一個額外的獨(dú)立可尋址存儲器,所述第一多 個獨(dú)立可尋址存儲器中的每個存儲器的寬度等于對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度與 校驗節(jié)點(diǎn)塊中的校驗節(jié)點(diǎn)的數(shù)量之積。
5. 如權(quán)利要求4所述的可配置的LDPC解碼器,其中每個額外的獨(dú)立可尋址存儲器的寬 度等于對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度與校驗節(jié)點(diǎn)塊中的校驗節(jié)點(diǎn)的數(shù)量之積。
6. 如權(quán)利要求2所述的可配置的LDPC解碼器(900),其中所述多個獨(dú)立可尋址存儲器 包括M個獨(dú)立可尋址存儲器,所述多個校驗節(jié)點(diǎn)處理系統(tǒng)包括P個校驗節(jié)點(diǎn)處理系統(tǒng),對于 位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度是q,并且每個存儲器的寬度大于P*q/M。
7. 如權(quán)利要求6所述的可配置的LDPC解碼器,其中M = 3或者M(jìn) = 2。
8. 如權(quán)利要求6所述的可配置的LDPC解碼器,其中每個存儲器的寬度是2*P*q/M。
9. 如權(quán)利要求2所述的可配置的LDPC解碼器,其中所述第一混排系統(tǒng)被布置為訪問多 個存儲單元,以獲得由所述多個校驗節(jié)點(diǎn)處理系統(tǒng)處理的數(shù)據(jù),并且丟棄任何來自那些存 儲單元內(nèi)的、在單個周期將不會由所述多個校驗節(jié)點(diǎn)處理系統(tǒng)使用的訪問數(shù)據(jù)。
10. 如權(quán)利要求9所述的可配置的LDPC解碼器,其中所述第一混排系統(tǒng)包括缺口封閉 硬件(912),被布置為消除由丟棄的數(shù)據(jù)導(dǎo)致的、從多個存儲單元訪問的所述數(shù)據(jù)中的任何 缺口。
11. 如權(quán)利要求2所述的可配置的LDPC解碼器,其中所述奇偶校驗矩陣包括含有循環(huán) 移位的單位矩陣的子矩陣,每個單位矩陣稱作對角線,并且其中,所述第一混排系統(tǒng)被布置 為將順序進(jìn)行循環(huán)旋轉(zhuǎn),其中當(dāng)從所述多個獨(dú)立可尋址存儲器訪問數(shù)據(jù)時所述對角線以所 述順序被參考。
12. 如權(quán)利要求11所述的可配置的LDPC解碼器,其中子矩陣包括D個對角線,所述子 矩陣中的每個對角線具有一指數(shù),并且對于給定迭代L,所述對角線以根據(jù)其指數(shù)的順序被 參考,以由L以D為模給出的指數(shù)開始。
13. 如之前任一權(quán)利要求所述的可配置的LDPC解碼器,其中每個校驗節(jié)點(diǎn)處理系統(tǒng)對 于連接至位節(jié)點(diǎn)的每個校驗節(jié)點(diǎn)使用校驗對位節(jié)點(diǎn)消息,來產(chǎn)生對于所述位節(jié)點(diǎn)的對軟判 決數(shù)據(jù)的更新,并且其中每個校驗對位節(jié)點(diǎn)消息是使用最小和算法和變量偏移計算的,其 中基于最低值的位對校驗消息量級之間的差異來計算所述變量偏移。
14. 如權(quán)利要求13所述的可配置的LDPC解碼器,其中從使用所述最小和算法計算的初 始位對校驗節(jié)點(diǎn)消息中減去所述變量偏移。
15. -種LDPC碼的解碼的方法,包括: 在單個周期從多個獨(dú)立可尋址存儲器訪問對于多個位節(jié)點(diǎn)的軟判決數(shù)據(jù)(1402),每 個存儲器具有寬度,并且存儲器的所述寬度包括在單個周期從所述存儲器可訪問的數(shù)據(jù)的 量; 將訪問的軟判決數(shù)據(jù)提供給多個校驗節(jié)點(diǎn)處理系統(tǒng)(1404);以及 在所述校驗節(jié)點(diǎn)處理系統(tǒng)中并行產(chǎn)生對于所述多個位節(jié)點(diǎn)的對所述軟判決數(shù)據(jù)的更 新(1406);以及 在所述多個獨(dú)立可尋址存儲器中存儲對于所述多個位節(jié)點(diǎn)的更新的軟判決數(shù)據(jù) (1408), 其中,在至少一個周期中,訪問對于多個位節(jié)點(diǎn)的軟判決數(shù)據(jù)包括:訪問總量大于由所 述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的數(shù)量與對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度 之積的軟判決數(shù)據(jù)。
16. 如權(quán)利要求15所述的方法,其中在所述至少一個周期中,訪問總量大于由所述校 驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的數(shù)量與對于位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的寬度之積 的軟判決數(shù)據(jù)包括: 訪問多個存儲單元來獲得用于由所述多個校驗節(jié)點(diǎn)處理系統(tǒng)進(jìn)行處理的數(shù)據(jù), 并且所述方法還包括: 在提供所述數(shù)據(jù)給所述校驗節(jié)點(diǎn)處理系統(tǒng)之前,丟棄來自那些存儲單元內(nèi)的、將不會 在單個周期由所述多個校驗節(jié)點(diǎn)處理系統(tǒng)使用的任何訪問的數(shù)據(jù)(1410)。
17. 如權(quán)利要求15所述的方法,其中對于所述LDPC碼的奇偶校驗矩陣包括多個子矩 陣,校驗節(jié)點(diǎn)塊包括由所述校驗節(jié)點(diǎn)處理系統(tǒng)并行處理的校驗節(jié)點(diǎn)的組,子矩陣包括多個 校驗節(jié)點(diǎn)塊,并且至少一個校驗節(jié)點(diǎn)塊包括兩個或更多個對角線,并且其中在單個周期從 多個獨(dú)立可尋址存儲器訪問對于多個位節(jié)點(diǎn)的軟判決數(shù)據(jù)包括: 將順序進(jìn)行循環(huán)旋轉(zhuǎn),其中當(dāng)從所述多個獨(dú)立可尋址存儲器訪問數(shù)據(jù)時所述對角線以 所述順序被參考。
18. 如權(quán)利要求17所述的方法,其中子矩陣包括D個對角線,所述子矩陣中的每個對角 線具有一指數(shù),并且對于給定迭代L,對角線以根據(jù)其指數(shù)的順序被參考,以由L以D為模給 出的指數(shù)開始。
19.如權(quán)利要求15-18中任一項所述的方法,其中在所述校驗節(jié)點(diǎn)處理系統(tǒng)中,并行產(chǎn) 生對于所述多個位節(jié)點(diǎn)的所述軟判決數(shù)據(jù)的更新,對于每個位節(jié)點(diǎn)包括: 使用最小和算法,計算對于連接至所述位節(jié)點(diǎn)的每個校驗節(jié)點(diǎn)的初始校驗對位節(jié)點(diǎn)消 息(1414); 從每個初始校驗對位節(jié)點(diǎn)消息減去變量偏移,以產(chǎn)生對于連接至所述位節(jié)點(diǎn)的每個校 驗節(jié)點(diǎn)的最終校驗對位節(jié)點(diǎn)消息(1416),其中基于最低值的位對校驗節(jié)點(diǎn)消息之間的差異 來計算所述變量偏移;以及 基于對于連接至所述校驗節(jié)點(diǎn)的每個位節(jié)點(diǎn)的最終校驗對位節(jié)點(diǎn)消息,計算對所述軟 判決數(shù)據(jù)的更新(1418)。
【文檔編號】H03M13/11GK104426554SQ201410407562
【公開日】2015年3月18日 申請日期:2014年8月19日 優(yōu)先權(quán)日:2013年8月27日
【發(fā)明者】C·歐文, A·J·安德森 申請人:想象力科技有限公司
網(wǎng)友詢問留言 已有0條留言
  • 還沒有人留言評論。精彩留言會獲得點(diǎn)贊!
1