專利名稱:基于類路由技術(shù)的高速ldpc碼譯碼器的制作方法
技術(shù)領(lǐng)域:
.-
本發(fā)明涉及通信技術(shù)領(lǐng)域,具體涉及通信數(shù)據(jù)傳輸與數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域。
背景技術(shù):
在VLSI設(shè)計(jì)中,資源和速度總是一對(duì)不可調(diào)和的矛盾。結(jié)構(gòu)設(shè)計(jì)工作主 要是解決資源和速度的平衡問題。對(duì)于LDPC碼的譯碼器,需要平衡的不僅僅 是資源和速度,還包括誤碼率性能。也就是說LDPC碼譯碼器的設(shè)計(jì),需要從 整體上對(duì)資源、速度和誤碼率性能做一個(gè)平衡。
其中誤碼率性能主要是由兩方面決定的,首先就是譯碼器采用的譯碼算 法,例如采用MIN-Smi算法肯定會(huì)帶來較BP算法更多的性能損失,但在很多 情況下需要通過犧牲一部分性能來換取對(duì)資源占用的降低。其次就是譯碼器 采用的數(shù)據(jù)格式,我們知道在計(jì)算機(jī)仿真中數(shù)據(jù)采用的是單精度或者雙精度 的浮點(diǎn)數(shù),而實(shí)際的硬件實(shí)現(xiàn)中,必須通過一定長(zhǎng)度的二進(jìn)制數(shù)來近似的表 示浮點(diǎn)數(shù),采用的二進(jìn)制數(shù)越長(zhǎng),其精度越好,對(duì)應(yīng)的LDPC碼譯碼器的實(shí)際 性能就能越靠近軟件仿真性能,在某些對(duì)性能要求極度苛刻的情況下還可以 考慮采用IEEE754標(biāo)準(zhǔn)來設(shè)計(jì)VLSI中的數(shù)據(jù)格式。誤碼率性能的設(shè)計(jì)在一定
程度上可以看作是校驗(yàn)點(diǎn)計(jì)算模塊和變量點(diǎn)計(jì)算模塊內(nèi)部結(jié)構(gòu)的設(shè)計(jì)。
對(duì)于LDPC碼的譯碼器,誤碼率性能主要由譯碼算法決定;而速度與資源
的占用主要由譯碼器的結(jié)構(gòu)決定。
無論從哪種LDPC碼譯碼算法來看,LDPC碼的譯碼過程主要包括信道信 息初始化,校驗(yàn)點(diǎn)計(jì)算,變量點(diǎn)計(jì)算,硬判決和輸出結(jié)果判斷。在按照LDPC
碼譯碼過程的基礎(chǔ)上發(fā)展出了 LDPC碼的完全串行譯碼結(jié)構(gòu),完全串行譯碼結(jié) 構(gòu)的主要特點(diǎn)在于只有1個(gè)校驗(yàn)點(diǎn)計(jì)算單元(CNU)和1個(gè)變量點(diǎn)計(jì)算單元 (VNU) , 二者之間通過RAM陣列將所有的計(jì)算結(jié)果緩存起來,該譯碼器結(jié)構(gòu)簡(jiǎn) 單,但計(jì)算速度慢。
完全并行譯碼結(jié)構(gòu)主要特點(diǎn)是含有m個(gè)校驗(yàn)點(diǎn)計(jì)算單元和n個(gè)變量點(diǎn)計(jì) 算單元,基本上不需要對(duì)迭代計(jì)算過程中的數(shù)據(jù)進(jìn)行存儲(chǔ)。其主要優(yōu)點(diǎn)在于 具有極高的計(jì)算速度,而其主要缺點(diǎn)是由于計(jì)算模塊數(shù)目過多,將占用過多 的資源。其次由于連線數(shù)目的龐大,當(dāng)幀長(zhǎng)較長(zhǎng)的時(shí)候,由于需要連接的數(shù) 據(jù)線過多,基本上會(huì)導(dǎo)致布線無法通過。例如本課題組曾經(jīng)完成的『20的LDPC 碼完全并行譯碼器,在Xilinx Virtex2 3000上布局布線后占用了 5334個(gè) Slices,占全部Slices (14336個(gè))的37%。同比計(jì)算,當(dāng)n=1000時(shí),采用 完全并行譯碼結(jié)構(gòu)的LDPC碼譯碼器將占用超過250, 000個(gè)Slices,這是任何 一款FPGA所無法接受的,而DVB-S2幀長(zhǎng)達(dá)到6萬。
目前LDPC碼譯碼器最為常用為部分并行譯碼結(jié)構(gòu)。部分并行譯碼結(jié)構(gòu)在 于校驗(yàn)點(diǎn)計(jì)算單元與變量點(diǎn)計(jì)算單元之間通過了雙口 RAM陣列進(jìn)行了數(shù)據(jù)緩 存;并且需要的CNU和VNU數(shù)目分別是校驗(yàn)點(diǎn)和變量點(diǎn)數(shù)目的l/f,折疊系數(shù) f是介于[2,M-1]之間的一個(gè)正整數(shù),反映的是復(fù)用的程度。每個(gè)CNU計(jì)算后 的信息存入雙口 RAM陣列,要等一側(cè)的計(jì)算單元(例如CNU)計(jì)算完全結(jié)束后, 另一側(cè)的計(jì)算單元(例如VNU)才可以根據(jù)更新后的信息進(jìn)行計(jì)算。采用這種 譯碼結(jié)構(gòu),可以將資源的消耗降低至原來的l/f,其缺點(diǎn)在于譯碼速度也將降 低為原來的l/f,同時(shí)需要一定數(shù)目的雙口RAM。
但是,部分并行譯碼結(jié)構(gòu)僅對(duì)特定的矩陣是現(xiàn)實(shí)的,而這種矩陣的性能
表現(xiàn)往往不是相當(dāng)好。其次,即使經(jīng)過特定約束的矩陣,在校驗(yàn)點(diǎn)與變量點(diǎn) 的信息傳遞過程中,沖突所引起的阻塞是不可避免的。只能通過增加存儲(chǔ)空 間以大量的資源消耗為代價(jià)或停止譯碼進(jìn)行數(shù)據(jù)沖突解決。事實(shí)上通用分析 矩陣結(jié)構(gòu),我們發(fā)現(xiàn)如果能夠合理的進(jìn)行時(shí)序規(guī)劃,完全到在空閑時(shí)序中解 決數(shù)據(jù)沖突,如果輔之以適量的存儲(chǔ)空間可以避免發(fā)生數(shù)據(jù)沖突。
發(fā)明內(nèi)容
為了克服現(xiàn)有技術(shù)中的上述缺陷,我們通過合理地增加RAM與VNU或 CNU的計(jì)算量,本發(fā)明設(shè)計(jì)了一種基于類路由技術(shù)的譯碼器結(jié)構(gòu),將VNU 與CNU結(jié)合RAM緩沖區(qū)陣列設(shè)計(jì)成網(wǎng)絡(luò)結(jié)點(diǎn)。同時(shí),通過各存儲(chǔ)控制單元 實(shí)現(xiàn)譯碼信息在各網(wǎng)絡(luò)結(jié)點(diǎn)之間路由傳遞,通過分組約束方式,能夠以相當(dāng) 低的資源代價(jià),實(shí)現(xiàn)譯碼信息在各網(wǎng)絡(luò)結(jié)點(diǎn)間之間的高速傳遞,獲取一種具 有極高數(shù)據(jù)吞吐率的譯碼器。
本發(fā)明解決上述技術(shù)問題的技術(shù)方案是,設(shè)計(jì)一種具有極高數(shù)據(jù)吞吐率 的譯碼器,該譯碼器從結(jié)構(gòu)上包括以下四個(gè)部分由變量點(diǎn)計(jì)算單元VNU與 RAM陣列構(gòu)成的結(jié)點(diǎn)單元,由校驗(yàn)點(diǎn)計(jì)算單元CNU與RAM陣列構(gòu)成的結(jié) 點(diǎn)單元,存儲(chǔ)控制單元與數(shù)據(jù)幀傳輸線路相結(jié)合構(gòu)成的路由和獨(dú)立的CNU。
一系列VNU分別級(jí)聯(lián)相應(yīng)的雙口 RAM陣列構(gòu)成一系列VNU結(jié)點(diǎn)單元, 一系列CNU分別級(jí)聯(lián)相應(yīng)的雙口 RAM陣列構(gòu)成一系列CNU結(jié)點(diǎn)單元,一 系列VNU結(jié)點(diǎn)單元的輸出端直接連接獨(dú)立的CNU單元的輸入端;同時(shí)通過 VNU輸出存儲(chǔ)控制器控制下的開關(guān)矩陣,分別連接到一系列CNU結(jié)點(diǎn)單元 的輸入端,CNU節(jié)點(diǎn)單元的輸出通過CNU輸出存儲(chǔ)控制器控制下的開關(guān)矩 陣,連接到VNU結(jié)點(diǎn)單元的輸入端。其中,雙口RAM陣列由一系列物理上
獨(dú)立的雙口 RAM構(gòu)成,譯碼器結(jié)構(gòu)中CNU結(jié)點(diǎn)單元的數(shù)量由變量點(diǎn)的度確 定,VNU結(jié)點(diǎn)單元數(shù)量由校驗(yàn)點(diǎn)的度確定。
由于VNU與CNU在本譯碼器結(jié)構(gòu)中的地位是對(duì)等的,根據(jù)譯碼器資源占 用最少的原則,用于計(jì)算變量點(diǎn)信息的VNU與用于計(jì)算校驗(yàn)點(diǎn)信息的CNU 可以互換其在譯碼器中的位置,因此,本發(fā)明還設(shè)計(jì)了另外一種以VNU為核 心構(gòu)建的譯碼器結(jié)構(gòu),該譯碼器具體結(jié)構(gòu)如下所述, 一系列CNU結(jié)點(diǎn)單元的 輸出端連接獨(dú)立的VNU單元的輸入端;同時(shí)通過CNU輸出存儲(chǔ)控制單元控 制下的開關(guān)矩陣,分別連接VNU結(jié)點(diǎn)單元輸入端, 一系列VNU節(jié)點(diǎn)單元的 輸出端通過VNU輸出存儲(chǔ)控制單元控制下的開關(guān)矩陣,連接到一系列CNU 結(jié)點(diǎn)單元的輸入端。其中,雙口RAM陣列由一系列獨(dú)立的雙口RAM構(gòu)成, 一系列CNU結(jié)點(diǎn)單元中的CNU和雙口 RAM陣列數(shù)量由變量點(diǎn)的度確定, 一系列VNU結(jié)點(diǎn)單元中的VNU和雙口 RAM陣列數(shù)量由校驗(yàn)點(diǎn)的度確定。
根據(jù)本發(fā)明設(shè)計(jì)的LDPC碼譯碼器,在相關(guān)的矩陣約束條件下該結(jié)構(gòu)的 譯碼器能夠以較低的資源代價(jià)實(shí)現(xiàn)極高的數(shù)據(jù)吞吐率,可以有效地降低資源 占用。并且在高速數(shù)據(jù)通信領(lǐng)域具有相當(dāng)高的應(yīng)用價(jià)值。
圖1示出了部分并行譯碼器結(jié)構(gòu)
圖2所示為以CNU為核心構(gòu)建的譯碼器結(jié)構(gòu)框圖
圖3所示為以VNU為核心構(gòu)建的譯碼器結(jié)構(gòu)框圖
具體實(shí)施例方式
下面結(jié)合附圖和具體實(shí)施例對(duì)本發(fā)明的實(shí)施作進(jìn)一步具體的說明。
H矩陣即校驗(yàn)矩陣是LDPC碼的核心,H矩陣與各校驗(yàn)點(diǎn)及變量點(diǎn)的關(guān)
系滿足以下關(guān)系,它的行數(shù)表示校驗(yàn)點(diǎn)數(shù)量,而列數(shù)則表示變量點(diǎn)數(shù)量。每 一行上的非零元素個(gè)數(shù)表示該行所對(duì)應(yīng)的校驗(yàn)點(diǎn)所關(guān)聯(lián)的變量點(diǎn)數(shù),每一列 上的非零元素個(gè)數(shù)表示該列所對(duì)應(yīng)的變量點(diǎn)所關(guān)聯(lián)的校驗(yàn)點(diǎn)數(shù),即表示校驗(yàn)
點(diǎn)的度和變量點(diǎn)的度。變量點(diǎn)計(jì)算單元VNU,用于生成校驗(yàn)點(diǎn)計(jì)算所需的變 量點(diǎn)信息;校驗(yàn)點(diǎn)計(jì)算單元CNU,用于生成變量點(diǎn)計(jì)算所需的校驗(yàn)點(diǎn)信息。 因此,基于本結(jié)構(gòu)設(shè)計(jì)LDPC碼譯碼器關(guān)鍵在于,如何將相應(yīng)的變量點(diǎn)信息 和校驗(yàn)點(diǎn)信息分別映射到VNU和CNU中進(jìn)行計(jì)算。
假設(shè)11矩陣[..] ,, 中矩陣的行非零元素為《個(gè),列非零元素為《個(gè),即表 示該矩陣對(duì)應(yīng)的LDPC碼有m個(gè)校驗(yàn)點(diǎn)與"個(gè)變量點(diǎn),且校驗(yàn)點(diǎn)的度為《, 變量點(diǎn)的度為《。
優(yōu)選地,我們針對(duì)圖2所示對(duì)LDPC碼譯碼器結(jié)構(gòu)的設(shè)計(jì)進(jìn)行如下具體 描述。首先,設(shè)計(jì)由D:《個(gè)獨(dú)立的VNU (VNU-1至VNU-D)分別級(jí)聯(lián)相 應(yīng)由《個(gè)雙口 RAM陣列構(gòu)成的D個(gè)VNU結(jié)點(diǎn)單元,D個(gè)VNU結(jié)點(diǎn)單元的 輸出端,均直接連接獨(dú)立的校驗(yàn)點(diǎn)控制單元CNU-1的輸入端;并通過VNU 輸出存儲(chǔ)控制器控制下的開關(guān)矩陣,分別連接到CNU結(jié)點(diǎn)單元。由K-《個(gè) 獨(dú)立的CNU分別級(jí)聯(lián)相應(yīng)《個(gè)雙口 RAM陣列構(gòu)成K (2,……k+l)個(gè)CNU 結(jié)點(diǎn)單元。雙口 RAM陣列由一系列獨(dú)立的雙口 RAM構(gòu)成,每個(gè)雙口 RAM 包括兩部分,CNU結(jié)點(diǎn)單元中的RAM陣列僅存儲(chǔ)當(dāng)前迭代所需的變量點(diǎn)信 息,VNU結(jié)點(diǎn)單元中的每個(gè)雙口 RAM陣列的前一部分存儲(chǔ)上一次迭代生成的校 驗(yàn)點(diǎn)信息,后一部分存儲(chǔ)本次迭代生成的校驗(yàn)點(diǎn)信息。CNU節(jié)點(diǎn)單元的輸出 通過CNU輸出存儲(chǔ)控制單元控制下的開關(guān)矩陣,分別連接到VNU結(jié)點(diǎn)單元 的輸入端。將哪個(gè)VNU結(jié)點(diǎn)單元的輸出數(shù)據(jù)(即變量點(diǎn)信息)送入哪個(gè)CNU
結(jié)點(diǎn)單元由VNU輸出存儲(chǔ)控制器決定。VNU輸出存儲(chǔ)器中控制信息在校驗(yàn) 點(diǎn)與變量點(diǎn)的分組過程中生成。CNU輸出存儲(chǔ)控制器提供VNU結(jié)點(diǎn)單元中 雙口 RAM陣列的地址信息,控制將CNU結(jié)點(diǎn)單元的輸出信息送入相應(yīng)的 VNU結(jié)點(diǎn)單元,實(shí)現(xiàn)路由功能。雙口 RAM陣列的地址信息由在校驗(yàn)點(diǎn)與變 量點(diǎn)的分組過程中生成。
存儲(chǔ)控制器通過向開關(guān)矩陣提供路由信息和向RAM陣列提供地址信息 實(shí)現(xiàn)校驗(yàn)點(diǎn)信息與變量點(diǎn)信息的傳遞?,F(xiàn)統(tǒng)稱校驗(yàn)點(diǎn)信息與變量點(diǎn)信息為譯 碼信息,則開關(guān)矩陣依據(jù)路由信息將相應(yīng)的譯碼信息送入VNU結(jié)點(diǎn)單元或 CNU結(jié)點(diǎn)單元,而地址信息則說明當(dāng)前路由過來的譯碼信息應(yīng)存入結(jié)點(diǎn)單元 RAM陣列的哪一個(gè)地址,這些路由信息和地址信息在譯碼器設(shè)計(jì)時(shí)即以指令 的形式存儲(chǔ)在存儲(chǔ)控制器中,譯碼器工作時(shí)每輸出一個(gè)譯碼信息,讀出一條 指令, 一次迭代完成后,開始新的迭代則重新讀取指令,路由信息和地址信 息是根據(jù)變量點(diǎn)和校驗(yàn)點(diǎn)分組后形成的對(duì)應(yīng)關(guān)系生成的。
校驗(yàn)點(diǎn)與變量點(diǎn)的分組方式和過程通過下面的實(shí)例進(jìn)行詳細(xì)描述。 對(duì)校驗(yàn)點(diǎn)與變量點(diǎn)進(jìn)行分組,并將分組結(jié)果分別映射到LDPC碼譯碼器結(jié) 構(gòu)中的VNU結(jié)點(diǎn)與CNU結(jié)點(diǎn)。通過搜索及排序,我們將所有校驗(yàn)點(diǎn)與變量點(diǎn) 按如下方式進(jìn)行分組。首先將m個(gè)校驗(yàn)點(diǎn)分成兩組,分別用集合{"表示/個(gè) 校驗(yàn)點(diǎn),用集合{M-£}表示m-/個(gè)校驗(yàn)點(diǎn)。其中,集合"r滿足約束條件完 成集合{丄}中的/個(gè)校驗(yàn)點(diǎn)的計(jì)算必須用到全部的"個(gè)變量點(diǎn)。然后,將集合 中的/個(gè)校驗(yàn)點(diǎn)恰當(dāng)分組為"HK,A…,AJ ,而將剩余的w _ /個(gè)校驗(yàn)點(diǎn)恰當(dāng)?shù)?分組為(M-Z^(M,M2…,MJ,使其滿足以下的對(duì)應(yīng)關(guān)系 1)在完成校驗(yàn)點(diǎn)(IJ計(jì)算后,計(jì)算校驗(yàn)點(diǎn)(MJ所需的變量點(diǎn)信息更新完成。
2)在完成校驗(yàn)點(diǎn){ZJ和{Z2}計(jì)算后,計(jì)算校驗(yàn)點(diǎn){M2}所需的變量點(diǎn)信息更新完成。
3) 在完成校驗(yàn)點(diǎn)仏),"2},…,(U計(jì)算后,計(jì)算校驗(yàn)點(diǎn)(MJ所需的 變量點(diǎn)信息更新完成。
4) 在完成校驗(yàn)點(diǎn)(ZJ, &}, ..., {^}組計(jì)算后,計(jì)算校驗(yàn)點(diǎn)(M^所需的 變量點(diǎn)信息更新完成。
5) 其余分組基于上述情況類推。 完成對(duì)變量點(diǎn)和校驗(yàn)點(diǎn)的分組后,接下來要解決的是如何將分組后的變
量點(diǎn)信息和校驗(yàn)點(diǎn)信息映射到譯碼器結(jié)構(gòu)的變量點(diǎn)計(jì)算單元VNU與校驗(yàn)點(diǎn) 計(jì)算單元CNU中。
對(duì)于校驗(yàn)點(diǎn)分組,它與CNU具有如下的關(guān)系
在CNU-1中以流水方式處理{丄} = ", V,4}組校驗(yàn)點(diǎn); 在CNU-2中處理(MJ組校驗(yàn)點(diǎn);
在CNU-K中處理(M^J組校驗(yàn)點(diǎn); 在CNU-K+1中處理(MJ組校驗(yàn)點(diǎn);
對(duì)于變量點(diǎn)分組,其與VNU的映射關(guān)系是通過"卜仏,l2…,i^組校驗(yàn)點(diǎn) 推導(dǎo)獲取。上述的校驗(yàn)點(diǎn)與變量點(diǎn)分組和分組到VNU或CNU的映射均是通
過計(jì)算機(jī)軟件搜索排列完成的。
由于VNU與CNU在譯碼器結(jié)構(gòu)中的地位是對(duì)等的,根據(jù)譯碼器資源占用 最少的原則,用于計(jì)算變量點(diǎn)信息的VNU與用于計(jì)算校驗(yàn)點(diǎn)信息的CNU可
以互換其在譯碼器中的位置,因此,本發(fā)明還設(shè)計(jì)了另外一種以VNU為核心 構(gòu)建的譯碼器結(jié)構(gòu),該譯碼器結(jié)構(gòu)示意如圖3所示。設(shè)計(jì)由0=《個(gè)獨(dú)立的 CNU (CNU-1至CNU-D)分別級(jí)聯(lián)相應(yīng)雙口 RAM陣列構(gòu)成D個(gè)CNU結(jié)點(diǎn) 單元;D個(gè)CNU結(jié)點(diǎn)單元的輸出端均直接連接變量點(diǎn)計(jì)算單元VNU-1的輸 入端,上述輸出端同時(shí)接入CNU輸出存儲(chǔ)控制器控制下的開關(guān)矩陣,分別連 接到K個(gè)(2,……k+l) VNU結(jié)點(diǎn)單元。VNU節(jié)點(diǎn)單元的輸出通過VNU輸 出存儲(chǔ)控制單元控制下的開關(guān)矩陣,連接到CNU結(jié)點(diǎn)單元的輸入端。將哪個(gè) CNU結(jié)點(diǎn)單元的輸出數(shù)據(jù)(即校驗(yàn)點(diǎn)信息)送入哪個(gè)VNU結(jié)點(diǎn)單元由CNU 輸出存儲(chǔ)控制器決定,CNU輸出存儲(chǔ)器中控制信息在校驗(yàn)點(diǎn)與變量點(diǎn)的分組 過程中生成。
接下來,我們以二進(jìn)制LDPC碼為例對(duì)基于圖2所示譯碼器結(jié)構(gòu)的實(shí)現(xiàn)作 具體說明,二進(jìn)制LDPC碼的矩陣為10*20的矩陣H表達(dá)式如下,
—0 010010010010100010 0_ 00001110000000110000 01000011010001000001 10010000100100000010 00001 1 00001 01 0000001 一l 000000001 1 00001 1 01 0 00101000010100100100 01010001100000010001 1 1000010000000001100 0011000000001100100 0
其中,矩陣H的行表示變量點(diǎn),列表示校驗(yàn)點(diǎn),LDPC碼校驗(yàn)點(diǎn)的度由H 矩陣中對(duì)應(yīng)行的非零元素個(gè)數(shù)所決定,LDPC碼變量點(diǎn)的度由H矩陣中對(duì)應(yīng)列
的非零元素個(gè)數(shù)決定,其中非零元素個(gè)數(shù)最多的行或列對(duì)應(yīng)確定的度為最大
度。我們可以將校驗(yàn)點(diǎn)分為兩組,丄={1,2,3,4,5,6}和崖={7,8,9,10}。顯然I
組校驗(yàn)點(diǎn)關(guān)聯(lián)了全部的變量點(diǎn),即要完成丄組校驗(yàn)點(diǎn)的計(jì)算,必須有上一次
迭代生成的全部的變量點(diǎn)信息。而當(dāng)丄組校驗(yàn)點(diǎn)計(jì)算完成后,ilf組校驗(yàn)點(diǎn)所
需的變量點(diǎn)信息已生成,并存入CNU結(jié)點(diǎn)單元中的RAM陣列。
考慮到校驗(yàn)點(diǎn)的最大度為6,我們使用6個(gè)VNU,使得丄組校驗(yàn)點(diǎn)能夠 在獨(dú)立的CNU中以流水方式計(jì)算。由矩陣中相應(yīng)行中非零元素對(duì)應(yīng)的變量點(diǎn) 信息,計(jì)算確定校驗(yàn)點(diǎn)信息,如為了計(jì)算第1個(gè)校驗(yàn)點(diǎn)信息必須有3、 6、 9、 12、 14、 18六個(gè)變量點(diǎn)信息,計(jì)算第2個(gè)校驗(yàn)點(diǎn)信息必須有5、 6、 7、 15、 16六個(gè)變量點(diǎn)信息,計(jì)算第3個(gè)校驗(yàn)點(diǎn)信息必須有2、 7、 8、 10、 14、 20六 個(gè)變量點(diǎn)信息,計(jì)算第4個(gè)校驗(yàn)點(diǎn)信息必須有1、 4、 9、 12、 19六個(gè)變量點(diǎn) 信息,計(jì)算第5個(gè)校驗(yàn)點(diǎn)信息必須有5、 6、 11、 13、 20六個(gè)變量點(diǎn)信息,計(jì) 算第6個(gè)校驗(yàn)點(diǎn)信息必須有1、 10、 11、 16、 17、 19六個(gè)變量點(diǎn)信息。
這樣,分別在第1個(gè)VNU中按順序計(jì)算3、 5、 2、 1、 5、 l變量點(diǎn)信息; 在第2個(gè)VNU中按順序計(jì)算6、 6、 7、 4、 6、 10變量點(diǎn)信息;在第3個(gè)VNU 中按順序計(jì)算9、 7、 8、 9、 11、 ll變量點(diǎn)信息;在第4個(gè)VNU中按順序計(jì)算 12、 15、 10、 12、 13、 16變量點(diǎn)信息;在第5個(gè)VNU中按順序計(jì)算14、 16、 14、 19、 20、 17變量點(diǎn)信息;在第6個(gè)VNU中按順序計(jì)算18、 *、 20、 *、 *、 19變量點(diǎn)信息;(*表示補(bǔ)充的信息,由實(shí)際算法決定。)
對(duì)第1個(gè)VNU,為計(jì)算相應(yīng)的變量點(diǎn)信息需要相應(yīng)的上一次迭代的校驗(yàn)點(diǎn)
信息-
p, 5,2,1,5,1}
{{7,10} {2,5}{3,8, 9} {4,6,9} {2,5} {4,6,9}}
按此對(duì)應(yīng)關(guān)系將上一次迭代的校驗(yàn)點(diǎn)信息存儲(chǔ)在相應(yīng)的雙口 RAM中,并
獲取其余校驗(yàn)點(diǎn)信息在存儲(chǔ)器中的存儲(chǔ)位置。當(dāng)前生成的用于下一次迭代的
檢驗(yàn)點(diǎn)信息存儲(chǔ)在存儲(chǔ)器用于存儲(chǔ)當(dāng)前迭代信息的同一對(duì)應(yīng)位置。每開始一
次迭代,切換一次存儲(chǔ)器。
在CNU結(jié)點(diǎn)單元中計(jì)算M組校驗(yàn)點(diǎn),其所需求的變量點(diǎn)信息,已在計(jì)算 丄組校驗(yàn)點(diǎn)過程中生成,相應(yīng)的變量點(diǎn)信息按變量點(diǎn)與校驗(yàn)點(diǎn)的對(duì)應(yīng)關(guān)系在 CNU結(jié)點(diǎn)單元中的RAM陣列進(jìn)行存儲(chǔ),注意,這里的RAM陣列僅需存儲(chǔ) 當(dāng)前迭代M組校驗(yàn)點(diǎn)所需的變量點(diǎn)信息。相對(duì)基于流水工作方式的譯碼器所 需的資源下降,吞吐量有所提高。
由于VNU結(jié)點(diǎn)單元需存儲(chǔ)本次迭代與上一次迭代生成的校驗(yàn)點(diǎn)信息,而 CNU結(jié)點(diǎn)單元僅需存儲(chǔ)本次迭代生成的變量點(diǎn)信息,隨著CNU結(jié)點(diǎn)單元的 增加,譯碼器的所需的資源將迅速下降。同時(shí),CNU結(jié)點(diǎn)單元的增加,將有 更多的校驗(yàn)點(diǎn)同時(shí)運(yùn)算,能夠有效地提高譯碼器吞吐量。在超長(zhǎng)幀,如DVB-S2 長(zhǎng)達(dá)1萬和6萬的幀長(zhǎng)具有更為顯著的效果。由于單個(gè)CNU在100MHz的時(shí) 鐘下最小吞吐量為17.48Mbit/s,因此具有數(shù)十個(gè)CNU結(jié)點(diǎn)單元同時(shí)工作的超 長(zhǎng)幀LDPC碼型,可以達(dá)到Gbit/s的吞吐量。滿足當(dāng)前大多數(shù)高速數(shù)據(jù)通信 需求。
雖然為了說明的目的,這里僅針對(duì)一個(gè)簡(jiǎn)易的實(shí)施例進(jìn)行說明。但是本 領(lǐng)域的技術(shù)人員應(yīng)該理解,在不偏離權(quán)利要求中所公開的本發(fā)明的范圍和核 心的情況下,可以作相當(dāng)多細(xì)節(jié)上的修改、附加和替代。
權(quán)利要求
1、基于類路由技術(shù)的高速LDPC碼譯碼器,變量點(diǎn)計(jì)算單元VNU級(jí)聯(lián)雙口RAM陣列構(gòu)成VNU結(jié)點(diǎn)單元,校驗(yàn)點(diǎn)計(jì)算單元CNU級(jí)聯(lián)雙口RAM陣列構(gòu)成CNU結(jié)點(diǎn)單元,其特征在于,一系列VNU結(jié)點(diǎn)單元的輸出端直接連接獨(dú)立的CNU的輸入端,并通過VNU輸出存儲(chǔ)控制器控制下的開關(guān)矩陣,分別連接到一系列CNU結(jié)點(diǎn)單元;一系列CNU節(jié)點(diǎn)單元的輸出通過CNU輸出存儲(chǔ)控制單元控制下的開關(guān)矩陣,分別連接到一系列VNU結(jié)點(diǎn)單元的輸入端。
2、 根據(jù)權(quán)利要求1所述的高速LDPC碼譯碼器,其特征在于,VNU結(jié)點(diǎn) 單元的數(shù)量等于LDPC碼校驗(yàn)點(diǎn)的最大度,CNU結(jié)點(diǎn)單元的數(shù)量不受限制。
3、 根據(jù)權(quán)利要求1所述的高速LDPC碼譯碼器,其特征在于,CNU結(jié)點(diǎn) 單元中的RAM陣列僅存儲(chǔ)當(dāng)前迭代所需的變量點(diǎn)信息,VNU結(jié)點(diǎn)單元中的每 個(gè)雙口 RAM陣列的前一部分存儲(chǔ)上一次迭代生成的校驗(yàn)點(diǎn)信息,后一部分存 儲(chǔ)本次迭代生成的校驗(yàn)點(diǎn)信息。
4、根據(jù)權(quán)利要求1所述的高速LDPC碼譯碼器,其特征在于,路由信息和地 址信息根據(jù)變量點(diǎn)和校驗(yàn)點(diǎn)分組后形成的對(duì)應(yīng)關(guān)系生成,VNU輸出存儲(chǔ)控制 器控制將VNU結(jié)點(diǎn)單元的輸出信息送入相應(yīng)的CNU結(jié)點(diǎn)單元,CNU輸出存 儲(chǔ)控制器提供VNU結(jié)點(diǎn)單元中雙口 RAM陣列的地址信息,控制將CNU結(jié) 點(diǎn)單元的輸出信息送入相應(yīng)的VNU結(jié)點(diǎn)單元。
5、根據(jù)權(quán)利要求2所述的高速LDPC碼譯碼器,其特征在于,所述LDPC 碼校驗(yàn)點(diǎn)的度由譯碼器H矩陣中對(duì)應(yīng)行的非零元素個(gè)數(shù)確定,LDPC碼變量點(diǎn) 的度由譯碼器H矩陣中對(duì)應(yīng)列的非零元素個(gè)數(shù)確定。
6、 基于類路由技術(shù)的高速LDPC碼譯碼器,變量點(diǎn)計(jì)算單元VNU級(jí)聯(lián)雙 口 RAM陣列構(gòu)成VNU結(jié)點(diǎn)單元,校驗(yàn)點(diǎn)計(jì)算單元CNU級(jí)聯(lián)雙口 RAM陣列 構(gòu)成CNU結(jié)點(diǎn)單元,其特征在于, 一系列CNU結(jié)點(diǎn)單元的輸出端直接連接 獨(dú)立的VNU的輸入端,并通過CNU輸出存儲(chǔ)控制器控制下的開關(guān)矩陣,分 別連接到一系列VNU結(jié)點(diǎn)單元; 一系列VNU節(jié)點(diǎn)單元的輸出通過VNU輸 出存儲(chǔ)控制單元控制下的開關(guān)矩陣,分別連接到一系列CNU結(jié)點(diǎn)單元的輸入 端。
7、 根據(jù)權(quán)利要求6所述的高速LDPC碼譯碼器,其特征在于,CNU結(jié)點(diǎn) 單元的數(shù)量等于LDPC碼變量點(diǎn)的最大度,VNU結(jié)點(diǎn)單元的數(shù)量不受限制。
8、 根據(jù)權(quán)利要求6所述的高速LDPC碼譯碼器,其特征在于,VNU結(jié)點(diǎn) 單元中的RAM陣列僅存儲(chǔ)當(dāng)前迭代所需的校驗(yàn)點(diǎn)信息,VNU結(jié)點(diǎn)單元中的雙 口 RAM陣列的前一部分存儲(chǔ)上一次迭代生成的變量點(diǎn)信息,后一部分存儲(chǔ)本 次迭代生成的變量點(diǎn)信息。
9、 根據(jù)權(quán)利要求6所述的高速LDPC碼譯碼器,其特征在于,路由信息 和地址信息根據(jù)變量點(diǎn)和校驗(yàn)點(diǎn)分組后形成的對(duì)應(yīng)關(guān)系生成,VNU輸出存儲(chǔ) 控制器控制將VNU結(jié)點(diǎn)單元的輸出信息送入相應(yīng)的CNU結(jié)點(diǎn)單元,CNU輸 出存儲(chǔ)控制器控制將CNU結(jié)點(diǎn)單元的輸出信息送入相應(yīng)的VNU結(jié)點(diǎn)單元。
10、根據(jù)權(quán)利要求7所述的高速LDPC碼譯碼器,其特征在于,所述LDPC 碼校驗(yàn)點(diǎn)的度由譯碼器H矩陣中對(duì)應(yīng)行的非零元素個(gè)數(shù)確定,LDPC碼變量點(diǎn) 的度由譯碼器H矩陣中對(duì)應(yīng)列的非零元素個(gè)數(shù)確定。
全文摘要
本發(fā)明請(qǐng)求保護(hù)一種基于類路由技術(shù)的高速LDPC譯碼器,涉及數(shù)據(jù)傳輸與數(shù)據(jù)存儲(chǔ)技術(shù)領(lǐng)域。為了克服現(xiàn)有LDPC譯碼器在校驗(yàn)點(diǎn)與變量點(diǎn)的信息傳遞過程中,沖突所引起的阻塞,本發(fā)明對(duì)任意LDPC碼的變量點(diǎn)與校驗(yàn)點(diǎn)進(jìn)行分組,并將分組映射到VNU與CNU中進(jìn)行運(yùn)算。通過CNU與VNU結(jié)點(diǎn)單元中的RAM陣列,保證了VNU與CNU的流水無阻塞工作。而經(jīng)過分組后合理的時(shí)序劃分,由存儲(chǔ)控制器控制將迭代過程中空閑時(shí)序用來解決新生成的信息的存儲(chǔ)問題。本發(fā)明能夠?qū)崿F(xiàn)極高的數(shù)據(jù)吞吐率,可以有效地降低資源占用。并且可廣泛適用于高速數(shù)據(jù)通信領(lǐng)域。
文檔編號(hào)H03M13/11GK101106382SQ200710092500
公開日2008年1月16日 申請(qǐng)日期2007年7月31日 優(yōu)先權(quán)日2007年7月31日
發(fā)明者張建文, 徐位凱, 琳 王, 旻 肖, 謝東福, 崗 陳 申請(qǐng)人:重慶蓋爾樂普科技發(fā)展有限公司