專利名稱::用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的ldpc碼進(jìn)行并行處理的譯碼器及方法
技術(shù)領(lǐng)域:
:本發(fā)明涉及通信信道編解碼技術(shù),特別是涉及一種釆用共享硬件資源、對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC(低密度奇偶檢驗(yàn))碼進(jìn)行并行迭代譯碼的譯碼器結(jié)構(gòu)以及對(duì)實(shí)現(xiàn)并4于迭代i斧碼的控制方法。
背景技術(shù):
:低密度奇偶校驗(yàn)(LowDensityParityCheck,LDPC)碼是一種可以用非常稀疏的校驗(yàn)矩陣來(lái)定義的線性分組糾錯(cuò)碼。1962年,Gallager'首次提出了LDPC碼的古典模型,即規(guī)則(regular)的LDPC碼(n,j,k),校驗(yàn)矩陣H具有恒定的列重量和行重量。LDPC碼最重要的創(chuàng)新在于引入了迭代譯碼算法,但在當(dāng)時(shí)并沒(méi)有得到重視。直到Turbo碼被發(fā)現(xiàn)和廣泛地應(yīng)用之后,才又被Mackay、Neal和Wiberg重新提出。由于LDPC碼具有逼近香農(nóng)限的良好性能,比Turbo碼接近香農(nóng)限的誤碼率性能,且LDPC碼采用完全并行的迭代譯碼算法使其比Turbo碼在部分場(chǎng)合具有更廣泛的應(yīng)用前景,成為當(dāng)前糾錯(cuò)編碼的一個(gè)研究熱點(diǎn)?;诹己玫淖g碼性能,LDPC碼被認(rèn)為是通信系統(tǒng)的下一代糾錯(cuò)碼,被用來(lái)提高信道傳輸?shù)目煽啃院凸β世寐剩徊⒖梢詮V泛應(yīng)用于空間通信、光纖通信、個(gè)人通信系統(tǒng)、ADSL和磁記錄設(shè)備等。目前應(yīng)用最廣泛的LDPC碼的譯碼算法是對(duì)數(shù)域的信度傳播(BeliefPropagation,BP)算法。將BP算法應(yīng)用到對(duì)數(shù)域,使本來(lái)相乘的運(yùn)算轉(zhuǎn)換成了加法運(yùn)算,極大地降低了譯碼器的硬件復(fù)雜度。對(duì)數(shù)域的BP算法大致如下定義參與校驗(yàn)方程附的變量節(jié)點(diǎn)集合為^(/)={"|/^=1},同樣定義變量節(jié)點(diǎn)"參與校驗(yàn)方程集合^(")={^1/^=1}。在Tanner圖中,變量節(jié)點(diǎn)代表實(shí)際的變量,校驗(yàn)節(jié)點(diǎn)代表這些變量節(jié)點(diǎn)之間的約束;iV(w)是所有與校驗(yàn)節(jié)點(diǎn)m相連的變量節(jié)點(diǎn)的集合,A/Oi)是所有與變量節(jié)點(diǎn)"相連的校驗(yàn)方程集合。這里用^(0\"表示參與校驗(yàn)方程/n、除變量節(jié)點(diǎn)n'以外變量節(jié)點(diǎn)集,A/(w)\附表示變量節(jié)點(diǎn)"參與的校驗(yàn)方程中除去校驗(yàn)方程m以外校驗(yàn)方程集。wv2c^是變量節(jié)點(diǎn)"傳遞給校驗(yàn)方程w的信息,/wc2v^是校驗(yàn)方程m傳遞給變量節(jié)點(diǎn)"的信息,義"表示更新后的變量節(jié)點(diǎn)的對(duì)數(shù)似然比,用以判決變量節(jié)點(diǎn)的值,IXi^表示初始化的對(duì)數(shù)似然比。下面提到的0,")滿足//,,-1,即在校驗(yàn)矩陣中對(duì)應(yīng)著"1"的位置。(1)初始化<formula>formulaseeoriginaldocumentpage6</formula>(2)校驗(yàn)節(jié)點(diǎn)更新只于w-0,l,…,M—l,"=7VO)<formula>formulaseeoriginaldocumentpage6</formula>(3)變量節(jié)點(diǎn)更新對(duì)w-O,U-l,w=M(w)<formula>formulaseeoriginaldocumentpage6</formula>(4)硬判決當(dāng)義20,C=0;當(dāng)義^0,c=l。當(dāng)達(dá)到限定迭代次數(shù)或者滿足"/T=0,停止迭代。為了降低硬件實(shí)現(xiàn)復(fù)雜度,可以對(duì)對(duì)數(shù)域BP算法做一個(gè)近似運(yùn)算,即"最小和算法,,,在譯碼性能損失不大的情況下極大地降低了運(yùn)算復(fù)雜度。最小和算法中的校驗(yàn)節(jié)點(diǎn)更新規(guī)則變?yōu)?lt;formula>formulaseeoriginaldocumentpage6</formula>其中<formula>formulaseeoriginaldocumentpage6</formula>最小和算法實(shí)際上是對(duì)對(duì)數(shù)域算法的簡(jiǎn)化,它的收斂速度會(huì)慢一些。除了校驗(yàn)節(jié)點(diǎn)更新規(guī)則有所改變以外,其他過(guò)程跟對(duì)數(shù)域BP算法完全一樣。盡管BP算法能夠?qū)崿F(xiàn)全并行結(jié)構(gòu)來(lái)提高LDPC碼的譯碼處理速度,但對(duì)于碼長(zhǎng)較長(zhǎng)的LDPC碼,采用全并行的處理結(jié)構(gòu),如果將中間計(jì)算結(jié)果存放在寄存器,將需要占用非常大的硬件資源,如果將中間結(jié)果存放在RAM中,每次讀寫將會(huì)浪費(fèi)很多的時(shí)間。因此,有必要針對(duì)碼長(zhǎng)較長(zhǎng)的LDPC碼,提出一種硬件實(shí)現(xiàn)更簡(jiǎn)單、譯碼處理速度更快的譯碼處理方式。
發(fā)明內(nèi)容本發(fā)明所要解決的技術(shù)問(wèn)題是,基于準(zhǔn)循環(huán)的LDPC碼在編碼和譯碼方面降低了硬件實(shí)現(xiàn)復(fù)雜度,故利用其準(zhǔn)循環(huán)特性來(lái)提出一種對(duì)碼長(zhǎng)較長(zhǎng)的準(zhǔn)為解決本發(fā)明的技術(shù)問(wèn)題,本發(fā)明公開(kāi)一種用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的i奪碼器,該LDPC碼的4交-瞼矩陣分成若干個(gè)127x127的子矩陣,每個(gè)子矩陣中的每一行和每一列均只有一個(gè)'T,或者為全零,且子矩陣的行循環(huán)右移產(chǎn)生;該譯碼器包括校驗(yàn)節(jié)點(diǎn)處理單元,用于以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理;變量節(jié)點(diǎn)處理單元,用于以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理;RAM存儲(chǔ)器,連接在所述才L瞼節(jié)點(diǎn)處理單元與所述變量節(jié)點(diǎn)處理單元之間,用于譯碼處理過(guò)程中數(shù)據(jù)的緩沖;微指令控制器,連接所述校驗(yàn)節(jié)點(diǎn)處理單元、所述變量節(jié)點(diǎn)處理單元和所述RAM存儲(chǔ)器,用于發(fā)出微指令控制所述校驗(yàn)節(jié)點(diǎn)處理單元與所述變量節(jié)點(diǎn)處理單元的計(jì)算結(jié)果的相互傳遞和更新的迭代譯碼處理。較優(yōu)的,所述校驗(yàn)節(jié)點(diǎn)處理單元包括5個(gè)結(jié)構(gòu)相同且并列的校驗(yàn)節(jié)點(diǎn)處理模塊,每個(gè)校驗(yàn)節(jié)點(diǎn)處理模塊用于完成校驗(yàn)矩陣的一行中所有為"1"位置的校驗(yàn)節(jié)點(diǎn)信息處理。較優(yōu)的,1個(gè)所述校驗(yàn)節(jié)點(diǎn)處理模塊包括127個(gè)具有相同結(jié)構(gòu)的校驗(yàn)節(jié)點(diǎn)處理子模塊,該校驗(yàn)節(jié)點(diǎn)處理子模塊包括絕對(duì)值處理模塊,用于對(duì)校驗(yàn)矩陣的一行中為'T,位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息作求絕對(duì)值的處理;最小值處理模塊和次小值處理才莫塊,用于對(duì)校驗(yàn)矩陣的一行中所有為'T,位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息作求絕對(duì)值處理的結(jié)果中,找出最小絕對(duì)值、次小絕對(duì)值,并由所述微指令控制器控制輸出該最小絕對(duì)值和次小絕對(duì)值;比較模塊,用于將所述最小絕對(duì)值與所述絕對(duì)值處理模塊輸出的處理結(jié)果相比較,若兩者不相等,則選擇所述最小絕對(duì)值為該"1"位置的校驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值,否則選擇所述次小絕對(duì)值為該"1"位置的校驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值;符號(hào)計(jì)算模塊,用于求出對(duì)4L瞼矩陣的一行中為"1"位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息的符號(hào)乘積,再將對(duì)應(yīng)點(diǎn)變量節(jié)點(diǎn)信息的符號(hào)與所述符號(hào)乘積相乘,得到該"1"位置的校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值;合并處理模塊,用于該'T'位置的校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值和絕對(duì)值進(jìn)行合并處理,獲得該"1"位置的校驗(yàn)節(jié)點(diǎn)信息。較優(yōu)的,所述變量節(jié)點(diǎn)處理單元包括9個(gè)結(jié)構(gòu)相同且并列的變量節(jié)點(diǎn)處理模塊,每個(gè)變量節(jié)點(diǎn)處理;漠塊用于完成校驗(yàn)矩陣的一行中所有為"1"位置的變量節(jié)點(diǎn)信息處理。較優(yōu)的,所述變量節(jié)點(diǎn)處理;漠塊包括127個(gè)結(jié)構(gòu)相同的變量節(jié)點(diǎn)處理子模塊,該變量節(jié)點(diǎn)處理子模塊包括累加器,用于將校驗(yàn)矩陣的一列中所有為"1"位置的變量節(jié)點(diǎn)信息和輸入的先驗(yàn)概率liin作累加處理,得到該校驗(yàn)矩陣列的后驗(yàn)概率人;減法器,用于從后驗(yàn)概率人中減去對(duì)應(yīng)位置的變量節(jié)點(diǎn)信息,得到該列校驗(yàn)矩陣列中"1"位置的變量節(jié)點(diǎn)信息。較優(yōu)的,所述微指令釆用128位的指令格式,至少包括l位的指令結(jié)束信號(hào)、l位的指令有效信號(hào)、1位的校驗(yàn)節(jié)點(diǎn)處理單元指示信號(hào)、l位虛擬機(jī)開(kāi)啟控制信號(hào)、59位的控制打開(kāi)RAM存儲(chǔ)器中數(shù)據(jù)的地址信息、5位的校驗(yàn)節(jié)點(diǎn)處理單元使能信號(hào)、9位的變量節(jié)點(diǎn)處理單元使能信號(hào)和5位的該指令重復(fù)執(zhí)行次數(shù)的信息。另外,本發(fā)明還公開(kāi)一種對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼方法,包括信道數(shù)據(jù)初始化,LDPC碼的校驗(yàn)矩陣分成若干個(gè)127x127的子矩陣,每個(gè)子矩陣中的每一行和每一列均只有一個(gè)"1"或者為全零,且子矩陣的行循環(huán)右移產(chǎn)生;以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理;以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理;并由微指令控制器發(fā)出微指令控制校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)的計(jì)算結(jié)果的相互傳遞和更新來(lái)進(jìn)行迭代譯碼處理。較優(yōu)的,所述對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理的步驟包括將該行中所有為"1"位置的變量節(jié)點(diǎn)信息輸入;將該行中除本節(jié)點(diǎn)外所有為'T'位置的變量節(jié)點(diǎn)信息的絕對(duì)值中的最小絕對(duì)值;將該行中除本節(jié)點(diǎn)外所有為"1"位置的變量節(jié)點(diǎn)信息的符號(hào)相乘得到符號(hào)乘積;將得到的最小絕對(duì)值和符號(hào)乘積合并處理,獲得該行中對(duì)應(yīng)節(jié)點(diǎn)的校驗(yàn)節(jié)點(diǎn)信息。較優(yōu)的,所述對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理的步驟包括將該列對(duì)應(yīng)的變量節(jié)點(diǎn)的先驗(yàn)概率LZ^"與該列中所有為"1"位置的變量節(jié)點(diǎn)信息輸入;將該列中除本節(jié)點(diǎn)外所有為'T,位置的4L瞼節(jié)點(diǎn)信息相加,再加上lzj得到該列中對(duì)應(yīng)節(jié)點(diǎn)的變量節(jié)點(diǎn)信息。較優(yōu)的,所述微指令采用128位的指令格式,至少包括l位的指令結(jié)束信號(hào)、l位的指令有效信號(hào)、1位的校驗(yàn)節(jié)點(diǎn)處理單元指示信號(hào)、l位虛擬機(jī)開(kāi)啟控制信號(hào)、59位的控制打開(kāi)RAM存儲(chǔ)器中數(shù)據(jù)的地址信息、5位的校驗(yàn)節(jié)點(diǎn)處理單元使能信號(hào)、9位的變量節(jié)點(diǎn)處理單元使能信號(hào)和5位的該指令重復(fù)執(zhí)行次數(shù)的信息。與現(xiàn)有技術(shù)相比,本發(fā)明具有如下有益效果本發(fā)明是通過(guò)共享校驗(yàn)節(jié)點(diǎn)處理單元和變量節(jié)點(diǎn)處理單元,可以節(jié)省硬件資源;并且,校驗(yàn)節(jié)點(diǎn)處理單元和變量節(jié)點(diǎn)處理單元內(nèi)部則釆用全并行的結(jié)構(gòu),可以提高譯碼的處理速度。圖l是本發(fā)明的譯碼器的結(jié)構(gòu)示意圖。圖2是本發(fā)明的校驗(yàn)節(jié)點(diǎn)處理單元的結(jié)構(gòu)示意圖。圖3是本發(fā)明的校驗(yàn)節(jié)點(diǎn)處理子模塊的結(jié)構(gòu)示意圖。圖4是本發(fā)明的變量節(jié)點(diǎn)處理單元的結(jié)構(gòu)示意圖。圖5是本發(fā)明的變量節(jié)點(diǎn)處理子模塊的結(jié)構(gòu)示意圖。具體實(shí)施例方式本發(fā)明的核心思想是,共享校驗(yàn)節(jié)點(diǎn)處理單元(CheckNodeUnit,CNU)和變量節(jié)點(diǎn)處理單元(VariableNodeUnit,VNU);由于每次校驗(yàn)節(jié)點(diǎn)處理單元和變量節(jié)點(diǎn)處理單元處理的數(shù)據(jù)只是完成一次迭代譯碼過(guò)程所需要得到數(shù)據(jù)的一部分,因此需要經(jīng)過(guò)一定次數(shù)的處理才能完成一次迭代譯碼過(guò)程,如此,通過(guò)共享校驗(yàn)節(jié)點(diǎn)處理單元和變量節(jié)點(diǎn)處理單元,可以節(jié)省硬件資源;并且,校驗(yàn)節(jié)點(diǎn)處理單元和變量節(jié)點(diǎn)處理單元內(nèi)部則采用全并行的結(jié)構(gòu),可以提高譯碼的處理速度。請(qǐng)參考圖1所示,是本發(fā)明的譯碼器的結(jié)構(gòu)示意圖。本發(fā)明的譯碼器是基于準(zhǔn)循環(huán)的LDPC碼在編碼和譯碼方面降低了硬件實(shí)現(xiàn)復(fù)雜度為考量,利用其準(zhǔn)循環(huán)特性來(lái)提出一種對(duì)碼長(zhǎng)較長(zhǎng)的準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼的進(jìn)行并行譯碼處理。本發(fā)明的譯碼器包括用于對(duì)信道的編碼數(shù)據(jù)進(jìn)行特定運(yùn)算處理的校驗(yàn)節(jié)點(diǎn)處理單元(CNU)110和變量節(jié)點(diǎn)處理單元(VNU)120;用于對(duì)所述校驗(yàn)節(jié)點(diǎn)處理單元110與所述變量節(jié)點(diǎn)處理單元120在進(jìn)行迭代譯碼處理過(guò)程中數(shù)據(jù)進(jìn)行緩沖的RAM存儲(chǔ)器130;用于發(fā)出微指令來(lái)控制整個(gè)譯碼過(guò)程的微指令控制器140。信道數(shù)據(jù)初始化后送入所述校驗(yàn)節(jié)點(diǎn)處理單元110,完成才交驗(yàn)節(jié)點(diǎn)信息的更新;更新后的41瞼節(jié)點(diǎn)信息再送入所述變量節(jié)點(diǎn)處理單元120,完成變量節(jié)點(diǎn)信息的更新,這樣就完成一次迭代。本發(fā)明是針對(duì)特定準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼(其中,LDPC碼的準(zhǔn)循環(huán)矩陣即為下面描述提到的校驗(yàn)矩陣),采用并行處理的譯碼結(jié)構(gòu)。信道數(shù)據(jù)初始化的過(guò)程如下將LDPC碼的校驗(yàn)矩陣分成若干個(gè)127x127的子塊,每個(gè)子塊中的每一行每一列均只有一個(gè)"1"或者為全零矩陣。基于此,LDPC碼的準(zhǔn)循環(huán)矩陣結(jié)構(gòu),為實(shí)現(xiàn)分時(shí)復(fù)用的并行處理,故使所述校驗(yàn)節(jié)點(diǎn)處理單元120以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行更新處理;而所述變量節(jié)點(diǎn)處理單元120以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行更新處理。同時(shí),請(qǐng)參考圖2所示,為所述校驗(yàn)節(jié)點(diǎn)處理單元110的結(jié)構(gòu)示意圖。所述校驗(yàn)節(jié)點(diǎn)處理單元110包括5個(gè)并列的校驗(yàn)節(jié)點(diǎn)處理模塊CNUO、CNU1.....CNU4,每個(gè)校驗(yàn)節(jié)點(diǎn)處理模塊CNUO、CNU1、...、CNU4均包括127個(gè)校驗(yàn)節(jié)點(diǎn)處理子模塊CP0、CP1.....CP126;并且,每個(gè)CNUi(i^,1,2,3,4)分別由CNU_ENi(i=0,1,…,4)控制。每個(gè)校驗(yàn)節(jié)點(diǎn)處理模塊CNUi(i=0,1,2,3,4)分別以校驗(yàn)矩陣中的l行為單位進(jìn)行處理。一個(gè)校驗(yàn)節(jié)點(diǎn)處理模塊CNUi(i=0,1,2,3,4)完成校驗(yàn)矩陣一行中所有為'T,位置的校驗(yàn)節(jié)點(diǎn)信息(wc2v自)的更新將該行中所有為'T,位置的變量節(jié)點(diǎn)信息(wv&柳,"eiV(w))輸入;在除掉本身外該行中所有為"1"位置的變量節(jié)點(diǎn)信息(即wv2c.,"'e7V(w)/")的絕對(duì)值中的最小值與它們的符號(hào)積相乘,得到該行中對(duì)應(yīng)點(diǎn)的校驗(yàn)節(jié)點(diǎn)信息wc2v咖。由于校驗(yàn)矩陣中每行最多有26個(gè)1,因此按時(shí)鐘共需要送入26個(gè)變量節(jié)點(diǎn)信息mc2v柳,一行中不足26個(gè)的行補(bǔ)送32,h7FFF—FFFF(32bit所能表示的最大絕對(duì)值,對(duì)求最小絕對(duì)值、次小絕對(duì)值無(wú)影響,對(duì)符號(hào)計(jì)算也無(wú)影響)。由于所述校馬全節(jié)點(diǎn)處理單元110是按校^r矩陣中的一行為單位完成運(yùn)算的,故首先取與按校驗(yàn)矩陣的第1至5行(每一行包括LDPC碼的校驗(yàn)矩陣中的127行)有關(guān)的數(shù)據(jù),將第1至5行數(shù)據(jù)分別送入所述校驗(yàn)節(jié)點(diǎn)處理模塊CNUi(ii,1,2,3,4);經(jīng)過(guò)固定時(shí)鐘周期后取出計(jì)算結(jié)果;再取與按校驗(yàn)矩陣的第6~10行有關(guān)的數(shù)據(jù)送進(jìn)所述校驗(yàn)節(jié)點(diǎn)處理單元110進(jìn)行處理,經(jīng)過(guò)固定時(shí)鐘周期后取出計(jì)算結(jié)果;以此類推,直到校驗(yàn)矩陣中的所有行都送進(jìn)所述校^r節(jié)點(diǎn)處理單元110完成一次更新處理。其中,每個(gè)校驗(yàn)節(jié)點(diǎn)處理子模塊CPO、CP1.....CP126均具有相同的結(jié)構(gòu)(請(qǐng)參考圖3所示),且每個(gè)校驗(yàn)節(jié)點(diǎn)處理子模塊CPO、CPl.....CP126完成如下相同的功能<formula>formulaseeoriginaldocumentpage11</formula>一個(gè)校驗(yàn)節(jié)點(diǎn)處理子模塊CP,(i=0,1,...,126)功能的實(shí)現(xiàn)可以分為兩個(gè)部分一是除掉本身外變量節(jié)點(diǎn)信息(即啣2~,"'eWO)/打)最小絕對(duì)值的計(jì)算;二是除掉本身外變量節(jié)點(diǎn)信息符號(hào)乘積的計(jì)算。具體而言,其工作過(guò)程如下1、將變量節(jié)點(diǎn)信息經(jīng)過(guò)絕對(duì)值處理一莫塊作求絕對(duì)值的處理后,送入一個(gè)最小值處理模塊、次小值處理模塊分別求出該行內(nèi)所有為'T'位置的變量節(jié)點(diǎn)信息的最小絕對(duì)值、次小絕對(duì)值;并在求出算完26個(gè)變量節(jié)點(diǎn)信息中的最小絕對(duì)值、次小絕對(duì)值后送出,并由CNU一EN控制信息出發(fā)后送出;然后通過(guò)比較模塊判斷經(jīng)過(guò)28級(jí)FIFO模塊送來(lái)的對(duì)應(yīng)點(diǎn)變量節(jié)點(diǎn)信息的絕對(duì)值與前面求得的最小絕對(duì)值是否相等,如果相等則取次小絕對(duì)值作為該點(diǎn)校驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值,否則取最小絕對(duì)值作為該點(diǎn)沖交驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值。2、符號(hào)計(jì)算模塊用"與"門求該行內(nèi)所有為l位置的變量節(jié)點(diǎn)信息的符號(hào)乘積(算完26個(gè)變量節(jié)點(diǎn)信息的符號(hào)乘積后送出),再將對(duì)應(yīng)點(diǎn)變量節(jié)點(diǎn)信息的符號(hào)與符號(hào)乘積相乘,得到該點(diǎn)校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值。3、將該點(diǎn)校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值與絕對(duì)值在合并處理模塊中進(jìn)行合并處理,即得到?jīng)_交驗(yàn)節(jié)點(diǎn)信息。同時(shí),-清參考圖4所示,為所述變量節(jié)點(diǎn)處理單元120的結(jié)構(gòu)示意圖。所述變量節(jié)點(diǎn)處理單元120包括9個(gè)并列的變量節(jié)點(diǎn)處理才莫塊VNUi(i=0,1,...,8),每個(gè)變量節(jié)點(diǎn)處理模塊均包括127個(gè)變量節(jié)點(diǎn)處理子模塊BPi(i=0,1,...,126);每個(gè)變量節(jié)點(diǎn)處理模塊VNUi(i-O,1,...,8)分別由VNU—EN,控制。其中,每個(gè)變量節(jié)點(diǎn)處理模塊VNUi(i=0,1,...,8)是以校驗(yàn)矩陣中的列為單位,完成校驗(yàn)矩陣列中所有為1位置的變量節(jié)點(diǎn)信息(wv2cw)的更新將該列對(duì)應(yīng)的變量節(jié)點(diǎn)的先驗(yàn)概率LL&與該列中所有為'T'位置的變量節(jié)點(diǎn)信息(w"v^,weM("))輸入;除掉本身外該列中所有為"1"位置的校驗(yàn)節(jié)點(diǎn)信息(即wc2、、,附'eM(")/w)相加,再加上LL&得到該列中對(duì)應(yīng)點(diǎn)的變量節(jié)點(diǎn)信息節(jié)點(diǎn)mv2c目;該列中所有為'T,位置的才交驗(yàn)節(jié)點(diǎn)信息(即mdv則,weM("))相加,再加上LL/J尋到對(duì)應(yīng)節(jié)點(diǎn)的后驗(yàn)概率^。由于校驗(yàn)矩陣中每列最多有16個(gè)1,因此按時(shí)鐘共需要送入一個(gè)變量節(jié)點(diǎn)的先驗(yàn)概率LZ凡與16個(gè)變量節(jié)點(diǎn)信息wc2v師,一行中不足16個(gè)的列補(bǔ)送32,h0000—0000(送入0對(duì)累加結(jié)果無(wú)影響)。由于所述變量節(jié)點(diǎn)處理單元120是按校驗(yàn)矩陣中的一列為單位完成運(yùn)算的,故首先取與按校驗(yàn)矩陣的第1至9行(每一行包括LDPC碼的校驗(yàn)矩陣中的127列)有關(guān)的數(shù)據(jù),將第1至9行數(shù)據(jù)分別送入所迷校驗(yàn)節(jié)點(diǎn)處理模塊VNUi(i-O,1,...,8);經(jīng)過(guò)固定時(shí)鐘周期后取出計(jì)算結(jié)果;再取與按校驗(yàn)矩陣的第10~18行有關(guān)的數(shù)據(jù)送進(jìn)所述變量節(jié)點(diǎn)處理單元120進(jìn)行處理,經(jīng)過(guò)固定時(shí)鐘周期后取出計(jì)算結(jié)果;以此類推,直到校驗(yàn)矩陣中的所有行都送進(jìn)所述變量節(jié)點(diǎn)處理單元120完成一次更新處理。其中,每個(gè)變量節(jié)點(diǎn)處理子模塊BP;(i=0,1,…,126)均具有相同的結(jié)構(gòu)(請(qǐng)參考圖5所示),且變量節(jié)點(diǎn)處理子模塊BP,(i=0,1,…,126)均完成如下相同的功能<formula>formulaseeoriginaldocumentpage12</formula>具體來(lái)說(shuō),一個(gè)變量節(jié)點(diǎn)處理子模塊BP的工作流程如下將變量節(jié)點(diǎn)的先—驗(yàn)概率ZZ^與16個(gè)變量節(jié)點(diǎn)信息wc2v自送入累加器,送完后lt出,得到該列的后驗(yàn)概率義;然后在減法器中,再將&減掉從17級(jí)FIFO模塊送入的wc2vm,依次得到該列中對(duì)應(yīng)點(diǎn)的變量節(jié)點(diǎn)信息wv2c自。所述微指令控制器140發(fā)出微指令控制整個(gè)譯碼過(guò)程。微指令存放在所迷微指令控制器140中的指令寄存器(InstructionROM)中,所述微指令控制器140通過(guò)一個(gè)狀態(tài)機(jī)來(lái)讀取微指令,當(dāng)微指令的讀信號(hào)到來(lái),根據(jù)狀態(tài)機(jī)給定的地址從指令寄存器中讀取微指令的內(nèi)容。根據(jù)微指令的內(nèi)容決定將哪些CNU—ENi(i=0,1,…,4)、VNU—ENi(iH),1,…,8)置為1,以及決定從所述RAM存儲(chǔ)器130的哪個(gè)地址取數(shù)據(jù)送入所述校驗(yàn)節(jié)點(diǎn)處理單元110與所述變量節(jié)點(diǎn)處理單元120,并且經(jīng)過(guò)固定的時(shí)間周期后取出計(jì)算結(jié)果存入所述RAM存儲(chǔ)器130的對(duì)應(yīng)地址。如果用狀態(tài)機(jī)來(lái)控制整個(gè)譯碼過(guò)程,狀態(tài)機(jī)將會(huì)非常大,狀態(tài)機(jī)難以控制。因此,本發(fā)明采用微指令來(lái)控制譯碼過(guò)程極大地降低了狀態(tài)機(jī)的復(fù)雜度,而且用微指令控制過(guò)程簡(jiǎn)潔、直觀、容易讀懂。微指令存^L在128bits的指令寄存器中,指令^f各式為:<table>tableseeoriginaldocumentpage13</column></row><table>其中,微指令中每個(gè)域的描迷詳見(jiàn)下表:<table>tableseeoriginaldocumentpage13</column></row><table><table>tableseeoriginaldocumentpage14</column></row><table>并且,指令寄存器雇用雙讀取端口,一個(gè)用于對(duì)所述校驗(yàn)節(jié)點(diǎn)處理單元110相關(guān)的指令的讀取,一個(gè)用于對(duì)所述變量節(jié)點(diǎn)處理單元120相關(guān)的指令的讀取,以便于并行操作。權(quán)利要求1、一種用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器,該LDPC碼的校驗(yàn)矩陣分成若干個(gè)127×127的子矩陣,每個(gè)子矩陣中的每一行和每一列均只有一個(gè)“1”或者為全零,且子矩陣的行循環(huán)右移產(chǎn)生;其特征在于,該譯碼器包括校驗(yàn)節(jié)點(diǎn)處理單元,用于以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理;變量節(jié)點(diǎn)處理單元,用于以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理;RAM存儲(chǔ)器,連接在所述校驗(yàn)節(jié)點(diǎn)處理單元與所述變量節(jié)點(diǎn)處理單元之間,用于譯碼處理過(guò)程中數(shù)據(jù)的緩沖;微指令控制器,連接所述校驗(yàn)節(jié)點(diǎn)處理單元、所述變量節(jié)點(diǎn)處理單元和所述RAM存儲(chǔ)器,用于發(fā)出微指令控制所述校驗(yàn)節(jié)點(diǎn)處理單元與所述變量節(jié)點(diǎn)處理單元的計(jì)算結(jié)果的相互傳遞和更新的迭代譯碼處理。2、根據(jù)權(quán)利要求1所述的用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器,其特征在于,所述校驗(yàn)節(jié)點(diǎn)處理單元包括5個(gè)結(jié)構(gòu)相同且并列的校驗(yàn)節(jié)點(diǎn)處理模塊,每個(gè)校驗(yàn)節(jié)點(diǎn)處理模塊用于完成校驗(yàn)矩陣的一行中所有為"1"位置的校驗(yàn)節(jié)點(diǎn)信息處理。3.譯碼器,其特征在于,1個(gè)所述校驗(yàn)節(jié)點(diǎn)處理;溪塊包括127個(gè)具有相同結(jié)構(gòu)的校驗(yàn)節(jié)點(diǎn)處理子模塊,該校驗(yàn)節(jié)點(diǎn)處理子模塊包括絕對(duì)值處理模塊,用于對(duì)校驗(yàn)矩陣的一行中為"1"位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息作求絕對(duì)值的處理;最小值處理模塊和次小值處理模塊,用于對(duì)校驗(yàn)矩陣的一行中所有為"1"位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息作求絕對(duì)值處理的結(jié)果中,找出最小絕對(duì)值、次小絕對(duì)值,并由所述^f敫指令控制器控制輸出該最小絕對(duì)值和次小絕對(duì)值;比較模塊,用于將所述最小絕對(duì)值與所述絕對(duì)值處理模塊輸出的處理結(jié)果相比較,若兩者不相等,則選擇所述最小絕對(duì)值為該'T,位置的校驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值,否則選擇所述次小絕對(duì)值為該"1"位置的校驗(yàn)節(jié)點(diǎn)信息的絕對(duì)值;符號(hào)計(jì)算模塊,用于求出對(duì)校驗(yàn)矩陣的一行中為"1"位置對(duì)應(yīng)的變量節(jié)點(diǎn)信息的符號(hào)乘積,再將對(duì)應(yīng)點(diǎn)變量節(jié)點(diǎn)信息的符號(hào)與所述符號(hào)乘積相乘,得到該"1"位置的校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值;合并處理才莫塊,用于該'T'位置的校驗(yàn)節(jié)點(diǎn)信息的符號(hào)值和絕對(duì)值進(jìn)行合并處理,獲得該"1"位置的校驗(yàn)節(jié)點(diǎn)信息。4、根據(jù)權(quán)利要求1所述的用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器,其特征在于,所述變量節(jié)點(diǎn)處理單元包括9個(gè)結(jié)構(gòu)相同且并列的變量節(jié)點(diǎn)處理模塊,每個(gè)變量節(jié)點(diǎn)處理模塊用于完成校驗(yàn)矩陣的一行中所有為'T'位置的變量節(jié)點(diǎn)信息處理。5、根據(jù)權(quán)利要求4所述的用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器,其特征在于,所述變量節(jié)點(diǎn)處理模塊包括127個(gè)結(jié)構(gòu)相同的變量節(jié)點(diǎn)處理子模塊,該變量節(jié)點(diǎn)處理子模塊包括累加器,用于將校^r矩陣的一列中所有為'T,位置的變量節(jié)點(diǎn)信息和輸入的先驗(yàn)概率LLi作累加處理,得到該校驗(yàn)矩陣列的后驗(yàn)概率A;減法器,用于從后驗(yàn)概率;i"中減去對(duì)應(yīng)位置的變量節(jié)點(diǎn)信息,得到該列校驗(yàn)矩陣列中"1"位置的變量節(jié)點(diǎn)信息。6、根據(jù)權(quán)利要求1至5任何一項(xiàng)所述的用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器,其特征在于,所述微指令采用128位的指令格式,至少包括l位的指令結(jié)束信號(hào)、l位的指令有效信號(hào)、l位的校驗(yàn)節(jié)點(diǎn)處理單元指示信號(hào)、l位虛擬機(jī)開(kāi)啟控制信號(hào)、59位的控制打開(kāi)RAM存儲(chǔ)器中數(shù)據(jù)的地址信息、5位的校驗(yàn)節(jié)點(diǎn)處理單元使能信號(hào)、9位的變量節(jié)點(diǎn)處理單元使能信號(hào)和5位的該指令重復(fù)執(zhí)行次數(shù)的信息。7、一種對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的i,碼方法,其特征在于,包括信道數(shù)據(jù)初始化,LDPC碼的校驗(yàn)矩陣分成若干個(gè)127xl!27的子矩陣,每個(gè)子矩陣中的每一行和每一列均只有一個(gè)"1"或者為全零,且子矩陣的行循環(huán)右移產(chǎn)生;以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理;以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理;并由微指令控制器發(fā)出微指令控制校驗(yàn)節(jié)點(diǎn)與變量節(jié)點(diǎn)的計(jì)算結(jié)果的相互傳遞和更新來(lái)進(jìn)行迭代;奪碼處理。8、根據(jù)權(quán)利要求7所述的對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼方法,其特征在于,所述對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理的步驟包括將該行中所有為"1"位置的變量節(jié)點(diǎn)信息輸入;將該行中除本節(jié)點(diǎn)外所有為"1"位置的變量節(jié)點(diǎn)信息的絕對(duì)值中的最小絕對(duì)值;將該行中除本節(jié)點(diǎn)外所有為"1"位置的變量節(jié)點(diǎn)信息的符號(hào)相乘得到符號(hào)乘積;將得到的最小絕對(duì)值和符號(hào)乘積合并處理,獲得該行中對(duì)應(yīng)節(jié)點(diǎn)的校驗(yàn)節(jié)點(diǎn)信息。9、根據(jù)權(quán)利要求7所述的對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼方法,其特征在于,所述對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理的步驟包括將該列對(duì)應(yīng)的變量節(jié)點(diǎn)的先驗(yàn)概率ZZA與該列中所有為"1"位置的變量節(jié)點(diǎn)信息輸入;將該列中除本節(jié)點(diǎn)外所有為"1"位置的校驗(yàn)節(jié)點(diǎn)信息相加,再加上LLi^得到該列中對(duì)應(yīng)節(jié)點(diǎn)的變量節(jié)點(diǎn)信息。10、根據(jù)權(quán)利要求7或8或9所述的對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼方法,其特征在于,所述微指令采用128位的指令格式,至少包括l位的指令結(jié)束信號(hào)、l位的指令有效信號(hào)、l位的校驗(yàn)節(jié)點(diǎn)處理單元指示信號(hào)、l位虛擬機(jī)開(kāi)啟控制信號(hào)、59位的控制打開(kāi)RAM存儲(chǔ)器中數(shù)據(jù)的地址信息、5位的校驗(yàn)節(jié)點(diǎn)處理單元使能信號(hào)、9位的變量節(jié)點(diǎn)處理單元使能信號(hào)和5位的該指令重復(fù)執(zhí)行次數(shù)的信息。全文摘要本發(fā)明公開(kāi)一種用于對(duì)準(zhǔn)循環(huán)結(jié)構(gòu)的LDPC碼進(jìn)行并行處理的譯碼器及方法,該譯碼器包括校驗(yàn)節(jié)點(diǎn)處理單元,以校驗(yàn)矩陣中的一行為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每行數(shù)據(jù)進(jìn)行校驗(yàn)節(jié)點(diǎn)信息的更新處理;變量節(jié)點(diǎn)處理單元,以校驗(yàn)矩陣中的一列為單位,通過(guò)分時(shí)復(fù)用依次對(duì)校驗(yàn)矩陣的每列數(shù)據(jù)進(jìn)行變量節(jié)點(diǎn)信息的更新處理;RAM存儲(chǔ)器,用于譯碼處理過(guò)程中數(shù)據(jù)的緩沖;微指令控制器,連接所述校驗(yàn)節(jié)點(diǎn)處理單元、所述變量節(jié)點(diǎn)處理單元和所述RAM存儲(chǔ)器,用于發(fā)出微指令控制所述校驗(yàn)節(jié)點(diǎn)處理單元與所述變量節(jié)點(diǎn)處理單元的計(jì)算結(jié)果的相互傳遞和更新的迭代譯碼處理。本發(fā)明可以節(jié)省硬件資源,提高譯碼的處理速度。文檔編號(hào)H03M13/11GK101188426SQ20071007759公開(kāi)日2008年5月28日申請(qǐng)日期2007年12月5日優(yōu)先權(quán)日2007年12月5日發(fā)明者浩羅申請(qǐng)人:深圳國(guó)微技術(shù)有限公司