两个人的电影免费视频_国产精品久久久久久久久成人_97视频在线观看播放_久久这里只有精品777_亚洲熟女少妇二三区_4438x8成人网亚洲av_内谢国产内射夫妻免费视频_人妻精品久久久久中国字幕

用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化ldpc碼譯碼方法及裝置的制作方法

文檔序號(hào):7740966閱讀:247來(lái)源:國(guó)知局
專(zhuān)利名稱(chēng):用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化ldpc碼譯碼方法及裝置的制作方法
技術(shù)領(lǐng)域
本發(fā)明屬于無(wú)線通信領(lǐng)域,特指無(wú)線通信中包含低密度奇偶校驗(yàn)碼LDPC碼 (Low-DensityParity-Checks Codes)的信道編譯碼領(lǐng)域。 通信標(biāo)準(zhǔn)通常采用信道編譯碼技術(shù)以降低數(shù)據(jù)傳輸過(guò)程中的誤碼率BER(Bit ErrorRate)丄DPC碼作為一類(lèi)性能逼近香農(nóng)極限的線性分組糾錯(cuò)碼,具有良好的應(yīng)用前景。 目前DVB-S2 (Digital Video Broadcasting-Satellite 2)、 IEEE 802. lln、 IEEE 802. 16e 等標(biāo)準(zhǔn)都采用LDPC碼作為其核心信道編碼技術(shù)。 LDPC碼的奇偶校驗(yàn)矩陣屬于稀疏矩陣,稀疏校驗(yàn)矩陣可通過(guò)Tanner圖更為直觀 地表示。任何一種LDPC碼的Tanner圖表示中都包含變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)兩類(lèi)節(jié)點(diǎn)。根據(jù) Tanner圖各類(lèi)節(jié)點(diǎn)的連接關(guān)系的不同,LDPC碼可分為結(jié)構(gòu)化LDPC碼和非結(jié)構(gòu)化LDPC碼, 其中結(jié)構(gòu)化LDPC碼應(yīng)用廣泛。為了平衡硬件開(kāi)銷(xiāo)和吞吐率,結(jié)構(gòu)化LDPC碼的譯碼裝置通 常采用部分并行譯碼,每次對(duì)一定數(shù)量的變量節(jié)點(diǎn)或校驗(yàn)節(jié)點(diǎn)進(jìn)行更新,或者同時(shí)更新一 定數(shù)量的變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)。參見(jiàn)圖1所示,為給出了規(guī)則LDPC碼(12,3,6)的校驗(yàn)矩 陣和Tanner圖,其中每個(gè)變量節(jié)點(diǎn)(XI XI2)連接3個(gè)校驗(yàn)節(jié)點(diǎn)(SI S6),每個(gè)校驗(yàn)節(jié) 點(diǎn)連接6個(gè)變量節(jié)點(diǎn)。 LDPC碼譯碼裝置實(shí)現(xiàn)的核心技術(shù)之一是譯碼算法, 一般均采用基于置信傳播的迭 代譯碼算法,每次迭代包含校驗(yàn)節(jié)點(diǎn)更新和變量節(jié)點(diǎn)更新兩類(lèi)操作。當(dāng)前主流LDPC碼譯 碼算法包括"和積算法SPA" (Sum Product Algorithm)以及"最小和算法MSA" (Min-Sum Algorithm) 。 SPA的校驗(yàn)節(jié)點(diǎn)更新操作包含非線性運(yùn)算,導(dǎo)致譯碼裝置的復(fù)雜度較高,而 MSA簡(jiǎn)化了校驗(yàn)節(jié)點(diǎn)更新操作,采用求最小值、次小值以及求和操作代替原有的非線性操 作,降低了譯碼裝置的實(shí)現(xiàn)開(kāi)銷(xiāo),但同時(shí)降低了譯碼性能。 LDPC碼譯碼裝置一般是由譯碼邏輯、存儲(chǔ)單元管理部件和譯碼控制器等組成。譯 碼裝置實(shí)現(xiàn)的關(guān)鍵技術(shù)之一是存儲(chǔ)單元管理,尤其對(duì)于碼長(zhǎng)較長(zhǎng)的LDPC碼,校驗(yàn)矩陣的存 儲(chǔ)和譯碼過(guò)程迭代中間量的存儲(chǔ)面積開(kāi)銷(xiāo)較大,一般占整個(gè)譯碼裝置面積開(kāi)銷(xiāo)的50%以 上。此外,一個(gè)通信標(biāo)準(zhǔn)通常提供多種碼率和碼長(zhǎng),以滿(mǎn)足不同應(yīng)用場(chǎng)合的需求。理論上, 實(shí)現(xiàn)支持多種碼率的譯碼裝置,需要存儲(chǔ)每種碼率的校驗(yàn)矩陣,同時(shí)由于不同碼率的校驗(yàn) 節(jié)點(diǎn)的度不同,造成譯碼中間結(jié)果的存儲(chǔ)的不規(guī)則性,也相應(yīng)增加了譯碼裝置的面積開(kāi)銷(xiāo)。
同時(shí),在設(shè)計(jì)LDPC碼譯碼裝置時(shí)需考慮的另一個(gè)問(wèn)題是譯碼控制器和處理單 元陣列之間的連接方式,該問(wèn)題同樣關(guān)系到譯碼裝置的復(fù)雜度和面積開(kāi)銷(xiāo)。例如,專(zhuān)利 (CN200710044715. 7)給出的LDPC碼譯碼裝置中的每個(gè)校驗(yàn)節(jié)點(diǎn)處理單元或變量節(jié)點(diǎn)處理 單元都匹配有各自獨(dú)立的譯碼控制器,但是這種分布式控制方式實(shí)現(xiàn)復(fù)雜,面積開(kāi)銷(xiāo)較大, 特別是對(duì)于碼長(zhǎng)較大、并行度較高的譯碼裝置。
背景技術(shù)

發(fā)明內(nèi)容
本發(fā)明要解決的技術(shù)問(wèn)題就在于針對(duì)現(xiàn)有技術(shù)存在的技術(shù)問(wèn)題,本發(fā)明提供一
種結(jié)構(gòu)簡(jiǎn)單緊湊、成本低廉、操作方便、能夠降低硬件復(fù)雜度、支持多種碼率的用于顯式存
儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法及裝置。
為解決上述技術(shù)問(wèn)題,本發(fā)明采用以下技術(shù)方案 —種用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法,其特征在于步驟為
(1)、譯碼的初始化該初始化過(guò)程包括將接收到的對(duì)數(shù)似然比 LLR(log-likelihood ratio)按特定的存儲(chǔ)方式存儲(chǔ)到變量節(jié)點(diǎn)存儲(chǔ)塊中、初始化校驗(yàn)節(jié) 點(diǎn)存儲(chǔ)塊的值為0、預(yù)先設(shè)定一個(gè)最大迭代次數(shù);
對(duì)n = 1,2,…,N,義 = A( 0),A(= = 0, m G M (n) (公式1) (2)、迭代過(guò)程啟動(dòng)迭代次數(shù)計(jì)數(shù)器Iter ;即對(duì)每個(gè)校驗(yàn)節(jié)點(diǎn)m = 1,2,
',M,依
次計(jì)算
<formula>formula see original document page 5</formula> (3)、輸出譯碼結(jié)果當(dāng)?shù)螖?shù)計(jì)數(shù)器Iter達(dá)到最大迭代數(shù)且完成最后一個(gè)校 驗(yàn)節(jié)點(diǎn)的譯碼操作時(shí),停止譯碼并輸出譯碼結(jié)果^=(^^0) 0:1,即將變量節(jié)點(diǎn)存儲(chǔ)塊中 所存儲(chǔ)的An值的符號(hào)位作為譯碼結(jié)果輸出;否則,轉(zhuǎn)到步驟(2)繼續(xù)迭代;
在上述譯碼過(guò)程中,An(Q)是接收到的對(duì)數(shù)似然比LLR, ^n是變量節(jié)點(diǎn)向校驗(yàn)節(jié)點(diǎn) 傳遞的消息,A,(k)是第k次迭代中校驗(yàn)節(jié)點(diǎn)向變量節(jié)點(diǎn)傳遞的消息,13是一個(gè)非負(fù)的修正 值,M(n)表示與變量節(jié)點(diǎn)Xn相連的變量節(jié)點(diǎn)集合,N(m)表示與校驗(yàn)節(jié)點(diǎn)、相連的變量節(jié) 點(diǎn)集合,N(m) \n表示變量節(jié)點(diǎn)集合N(m)中去掉變量節(jié)點(diǎn)xn。
作為本發(fā)明的進(jìn)一步改進(jìn) 所述步驟(2)的迭代過(guò)程包括外層循環(huán)和內(nèi)層循環(huán),所述外層循環(huán)依次對(duì)每個(gè)校 驗(yàn)節(jié)點(diǎn)進(jìn)行計(jì)算,當(dāng)所有的校驗(yàn)節(jié)點(diǎn)計(jì)算完畢時(shí),表示已完成一次迭代;所述內(nèi)層循環(huán)采用 Offset修正最小和譯碼算法,對(duì)與校驗(yàn)節(jié)點(diǎn)連接的變量節(jié)點(diǎn)依次進(jìn)行處理。
所述內(nèi)層循環(huán)中包括第一子循環(huán)和第二子循環(huán),所述第一次子循環(huán)分別從變 量節(jié)點(diǎn)存儲(chǔ)塊和校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中讀取、和Amn(k-",將它們相減得到(An-Amn(k-"), 將此結(jié)果的絕對(duì)值送去與新的最小值進(jìn)行比較,將符號(hào)位送去進(jìn)行更新新的符號(hào)位集 合NewSignSet,并將所有符號(hào)位進(jìn)行異或操作得到新的符號(hào)集異或結(jié)果NewSignM ; IndexCounter表示正在處理的當(dāng)前校驗(yàn)節(jié)點(diǎn)所連接的變量節(jié)點(diǎn)索引計(jì)數(shù)值,Shift表示桶 形移位器的移位值,Address表示訪問(wèn)本地存儲(chǔ)器的訪問(wèn)地址。根據(jù)IndexCounter、 Shift
和Address的值可以從校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中讀取A n ;由于",^&n)J;i"-八("l只有兩個(gè)值,在
校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中,只需存儲(chǔ)最小值01dMin,次小值Sec01dMin和最小值索引值01dlndex 以及(、-A (k—")的符號(hào)位集合01dSignSet ;根據(jù)IndexCounter和OldSignSet確定 A (k—D的符號(hào)位,以及根據(jù)IndexCounter是否等于Oldlndex確定A (k-"的絕對(duì)值是最 小值OldMin還是次小值Sec01dMin ;當(dāng)對(duì)校驗(yàn)節(jié)點(diǎn)所有相連的變量節(jié)點(diǎn)操作完之后,對(duì)新得到的最小值和次小值進(jìn)行修正;所述第二子循環(huán)為分別讀取Amn(k)和A (k-D,并將它們 相減得到(A (k-Amn(k-D),將此結(jié)果送去變量節(jié)點(diǎn)功能單元,在變量節(jié)點(diǎn)功能單元中執(zhí)行 加法操作^-^+A^-At",即完成了變量節(jié)點(diǎn)A。的更新;所述第二子循環(huán)完成之后,
對(duì)校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中的存儲(chǔ)單元進(jìn)行更新,將A (k-D更新為A,(k),然后對(duì)下一個(gè)校驗(yàn)節(jié)
點(diǎn)進(jìn)行譯碼操作;當(dāng)對(duì)所有校驗(yàn)節(jié)點(diǎn)都完成一次譯碼操作時(shí),表示已完成一次迭代譯碼。 —種用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼裝置,其特征在于包括 碼率可重構(gòu)存儲(chǔ)管理控制器,包括一組針對(duì)不同碼率條件下的狀態(tài)機(jī),由譯碼控
制器配置重構(gòu),完成不同碼率條件下的二級(jí)存儲(chǔ)器和本地存儲(chǔ)器之間的數(shù)據(jù)加載; 譯碼控制器,包括表征校驗(yàn)矩陣的地址序列存儲(chǔ)器和移位序列存儲(chǔ)器,所述地址
序列存儲(chǔ)器存儲(chǔ)不同碼率條件下譯碼過(guò)程所需的地址信息,所述移位序列存儲(chǔ)器存儲(chǔ)不同
碼率條件下譯碼過(guò)程所需的桶型移位器控制信息,所述譯碼控制器用于通過(guò)單控制流多數(shù)
據(jù)流SCMD控制通路產(chǎn)生不同碼率條件下譯碼控制信號(hào),所述控制信號(hào)包括本地存儲(chǔ)器的
地址和讀寫(xiě)信號(hào)和桶形移位器的移位控制信號(hào); 處理陣列單元,包括一組以上的功能單元簇、功能單元數(shù)據(jù)交換網(wǎng)絡(luò)、一個(gè)以上的
本地存儲(chǔ)器、模式可重構(gòu)存儲(chǔ)管理控制器以及校驗(yàn)和變量中間量交換通路,所述功能單元
簇包括校驗(yàn)節(jié)點(diǎn)功能單元、變量節(jié)點(diǎn)功能單元,校驗(yàn)節(jié)點(diǎn)功能單元對(duì)應(yīng)一組變量節(jié)點(diǎn),變量
節(jié)點(diǎn)功能單元對(duì)應(yīng)一組校驗(yàn)節(jié)點(diǎn),所述功能單元簇通過(guò)功能單元數(shù)據(jù)交換網(wǎng)絡(luò)與本地存儲(chǔ)
器進(jìn)行數(shù)據(jù)交互,所述功能單元數(shù)據(jù)交換網(wǎng)絡(luò)包括一個(gè)多周期流水化桶形移位寄存器,所
述本地存儲(chǔ)器通過(guò)模式可重構(gòu)存儲(chǔ)管理控制器以及校驗(yàn)和變量中間量交換通路與碼率可
重構(gòu)存儲(chǔ)管理控制器相連,所述模式可重構(gòu)存儲(chǔ)管理控制器負(fù)責(zé)通過(guò)校驗(yàn)和變量中間量交
換通路產(chǎn)生不同碼率條件下配置本地存儲(chǔ)器中所存儲(chǔ)的校驗(yàn)節(jié)點(diǎn)信息和變量節(jié)點(diǎn)信息。 所述每一個(gè)本地存儲(chǔ)器中包括校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊和變量節(jié)點(diǎn)存儲(chǔ)塊,構(gòu)成乒乓緩沖
區(qū),任何時(shí)刻均只有一個(gè)存儲(chǔ)塊處于譯碼狀態(tài),另外一個(gè)存儲(chǔ)塊正在進(jìn)行下一周期活躍中
間變量集的調(diào)入操作。 與現(xiàn)有技術(shù)相比,本發(fā)明的優(yōu)點(diǎn)就在于 1、本發(fā)明采用改進(jìn)分層調(diào)度最小和算法,利用該算法大幅降低譯碼器功能單元的 組合邏輯面積,同時(shí)降低譯碼裝置的硬件實(shí)現(xiàn)復(fù)雜度; 2、本發(fā)明利用多級(jí)顯式存儲(chǔ)系統(tǒng)優(yōu)化LDPC譯碼裝置的數(shù)據(jù)組織方式,極大降低 譯碼裝置本地存儲(chǔ)器的面積開(kāi)銷(xiāo); 3、本發(fā)明根據(jù)不同碼率的編碼規(guī)則,采用模式可重構(gòu)存儲(chǔ)管理技術(shù)對(duì)譯碼校驗(yàn)節(jié) 點(diǎn)和信息節(jié)點(diǎn)的迭代中間量進(jìn)行背靠背式存儲(chǔ),進(jìn)一步降低本地存儲(chǔ)器的面積開(kāi)銷(xiāo);
4、本發(fā)明鑒于LDPC碼譯碼過(guò)程各并行功能單元的工作時(shí)序相同而數(shù)據(jù)集不同的 特點(diǎn),譯碼裝置采用單控制流多數(shù)據(jù)流(SCMD)結(jié)構(gòu),降低譯碼裝置的控制邏輯的復(fù)雜度和 開(kāi)銷(xiāo)。 5、本發(fā)明適用于結(jié)構(gòu)化LDPC碼的譯碼,特別適用于碼長(zhǎng)較長(zhǎng),碼率種類(lèi)繁多的 LDPC碼標(biāo)準(zhǔn)的譯碼,比如DVB-S2LDPC碼。該譯碼方法可在譯碼性能和復(fù)雜度之間取得較好 的折中,譯碼裝置具有譯碼結(jié)構(gòu)和功能單元實(shí)現(xiàn)簡(jiǎn)單、存儲(chǔ)面積和功能單元面積優(yōu)化等優(yōu) 點(diǎn)。


圖1是(12, 3, 6)規(guī)則LDPC碼的Tanner圖; 圖2是本發(fā)明用于LDPC碼譯碼方法的流程示意圖; 圖3是本發(fā)明中用于校驗(yàn)節(jié)點(diǎn)更新CFU的實(shí)現(xiàn)步驟之一的示意圖; 圖4是本發(fā)明中用于校驗(yàn)節(jié)點(diǎn)更新CFU的實(shí)現(xiàn)步驟之二的示意圖; 圖5是本發(fā)明中用于校驗(yàn)節(jié)點(diǎn)更新CFU的實(shí)現(xiàn)步驟之三的示意圖; 圖6是本發(fā)明譯碼裝置在顯式存儲(chǔ)SoC結(jié)構(gòu)中的位置關(guān)系示意圖; 圖7是本發(fā)明譯碼裝置的總體結(jié)構(gòu)框架結(jié)構(gòu)示意圖; 圖8是本發(fā)明用于并行度為P/N的LDPC碼譯碼處理單元的陣列結(jié)構(gòu)框架示意圖;
圖9是本發(fā)明針對(duì)360/4并行DVB-S2LDPC碼普通幀1/2碼率的存儲(chǔ)單元組織方 式示意圖; 圖10是本發(fā)明針對(duì)360/4并行DVB-S2 LDPC碼普通幀1/2碼率下活躍中間量集和 非活躍中間量集在兩級(jí)存儲(chǔ)器的組織方式示意圖,其中圖10(a)為變量節(jié)點(diǎn)的調(diào)度狀態(tài), 圖10(b)是和圖10(a)相對(duì)應(yīng)的校驗(yàn)中間量調(diào)度狀態(tài); 圖11是本發(fā)明應(yīng)用于DVB-S2標(biāo)準(zhǔn)普通幀1/2碼率下的誤碼性能示意圖。
-步詳細(xì)說(shuō)明,
具體實(shí)施例方式
以下將結(jié)合具體實(shí)施例和說(shuō)明書(shū)附圖對(duì)本發(fā)明做進(jìn)-
如圖2所示,為本發(fā)明的譯碼流程示意圖。
(1)、譯碼的初始化該初始化過(guò)程包括將接收到的對(duì)數(shù)似然比 LLR(log-likelihood ratio)按特定的存儲(chǔ)方式存儲(chǔ)到"RAM V"中、初始化"RAM C"的值為 0 、預(yù)先設(shè)定一個(gè)最大迭代次數(shù)。
X寸n = 1,2,…,N,
義 =義r,八2 = 0, m e M (n)
(2)、迭代過(guò)程啟動(dòng)迭代次數(shù)計(jì)數(shù)器Iter。 對(duì)每個(gè)校驗(yàn)節(jié)點(diǎn)m二 1,2,…,M,依次計(jì)算
(公式i) A=
'maxl
min |義
—A 0 (公式2)
W(附)(公式3)
HAl-"《,
(3)、輸出譯碼結(jié)果當(dāng)?shù)螖?shù)計(jì)數(shù)器Iter達(dá)到最大迭代數(shù)且完成最后一個(gè)校 驗(yàn)節(jié)點(diǎn)的譯碼操作時(shí),停止譯碼并輸出譯碼結(jié)果^ =(義 S0) 0:1 ,即將"RAM V"中所存儲(chǔ) 的An值的符號(hào)位作為譯碼結(jié)果輸出;否則,轉(zhuǎn)到步驟(2)繼續(xù)迭代。 在上述譯碼過(guò)程中,"RAM C"為校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊,用來(lái)保存校驗(yàn)節(jié)點(diǎn)的信息,該"校 驗(yàn)節(jié)點(diǎn)的信息"主要包含最小值、次小值以及最小值的位置。"RAM V"為變量節(jié)點(diǎn)存儲(chǔ)塊, 用來(lái)保存變量節(jié)點(diǎn)的信息。A n(°)是接收到的對(duì)數(shù)似然比LLR (log-likelihood ratio),、 是變量節(jié)點(diǎn)向校驗(yàn)節(jié)點(diǎn)傳遞的消息,A (k)是第k次迭代中校驗(yàn)節(jié)點(diǎn)向變量節(jié)點(diǎn)傳遞的消 息,P是一個(gè)非負(fù)的修正值,M(n)表示與變量節(jié)點(diǎn)Xn相連的變量節(jié)點(diǎn)集合,N(m)表示與校 驗(yàn)節(jié)點(diǎn)sm相連的變量節(jié)點(diǎn)集合,N(m) \n表示變量節(jié)點(diǎn)集合N(m)中去掉變量節(jié)點(diǎn)xn。
7
本發(fā)明在實(shí)施過(guò)程中的每次迭代譯碼共包含兩重循環(huán),外層循環(huán)依次對(duì)每個(gè)校驗(yàn) 節(jié)點(diǎn)進(jìn)行計(jì)算,當(dāng)所有的校驗(yàn)節(jié)點(diǎn)計(jì)算完畢時(shí),表示已完成一次迭代;內(nèi)層循環(huán)根據(jù)采用的 Of f set修正最小和譯碼算法,對(duì)與校驗(yàn)節(jié)點(diǎn)連接的變量節(jié)點(diǎn)依次進(jìn)行處理。
如圖3、圖4和圖5所示,為本發(fā)明中校驗(yàn)節(jié)點(diǎn)功能單元"CFU"的實(shí)現(xiàn)步驟示意 圖,其所對(duì)應(yīng)的是譯碼流程兩重循環(huán)中的內(nèi)層循環(huán)。該內(nèi)層循環(huán)根據(jù)采用的譯碼算法, 對(duì)與校驗(yàn)節(jié)點(diǎn)連接的變量節(jié)點(diǎn)進(jìn)行處理,其中又包括兩次循環(huán)——第一子循環(huán)和第二子 循環(huán)。第一子循環(huán)的目的是為了更新最小值和次小值,圖3對(duì)應(yīng)對(duì)第i組校驗(yàn)節(jié)點(diǎn)進(jìn)行 更新的第一子循環(huán)。它需要分別從"RAM V"和"RAM C"中讀取A。和A (k-",將它們相 減得到(、-Amn(k—"),將此結(jié)果的絕對(duì)值送去與新的最小值進(jìn)行比較,將符號(hào)位送去進(jìn) 行更新新的符號(hào)位集合NewSignSet,并將所有符號(hào)位進(jìn)行異或操作得到新的符號(hào)集異或 結(jié)果NewSignM。 IndexCounter表示正在處理的當(dāng)前校驗(yàn)節(jié)點(diǎn)所連接的變量節(jié)點(diǎn)索引計(jì) 數(shù)值,Shift表示桶形移位器的移位值,Address表示訪問(wèn)本地存儲(chǔ)器的訪問(wèn)地址。根據(jù) IndexCounter、 Shift和Address的值可以從校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"中讀取An ;由于
—八(^)l只有兩個(gè)值,在校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"中,只需存儲(chǔ)最小值OldMin,次 小值Sec01dMin和最小值索引值01dlndex以及(A n_ Amn(k—")的符號(hào)位集合OldSignSet。 根據(jù)IndexCounter和OldSignSet確定Amn(k—"的符號(hào)位,以及根據(jù)IndexCounter是否等 于01dlndex確定Amn(k-"的絕對(duì)值是最小值OldMin還是次小值Sec01dMin。當(dāng)對(duì)校驗(yàn)節(jié) 點(diǎn)所有相連的變量節(jié)點(diǎn)操作完之后,對(duì)新得到的最小值和次小值進(jìn)行修正。如圖4所示, 為完成對(duì)最小值和次小值的修正操作。第二子循環(huán)是為了讀取Ajk)和Amn(k-",并將它們 相減得到(A」k)-A」k-D),將此結(jié)果送去變量節(jié)點(diǎn)功能單元"VFU",在變量節(jié)點(diǎn)功能單元 "VFU"中執(zhí)行加法操作^ =A + A= — At",即完成了變量節(jié)點(diǎn)A n的更新,圖5對(duì)應(yīng)內(nèi)層 循環(huán)中的第二子循環(huán)。本次循環(huán)中,A (k-D的讀取方式與前一次循環(huán)中的讀取方式一樣, A (k)的讀取方式與A (k-"的讀取方式的讀取方式類(lèi)似,只是Ajk'最終的符號(hào)位還需 要由IndexCounter和NewSignSet確定的符號(hào)位與NewSignSet的值進(jìn)一步異或得到。第 二次循環(huán)完成之后,對(duì)校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"中的存儲(chǔ)單元進(jìn)行更新,將A (k-"更新為 A,(k),然后對(duì)下一個(gè)校驗(yàn)節(jié)點(diǎn)進(jìn)行譯碼操作。當(dāng)對(duì)所有校驗(yàn)節(jié)點(diǎn)都完成一次譯碼操作時(shí), 表示已完成一次迭代譯碼。變量節(jié)點(diǎn)功能單元"VFU"包括簡(jiǎn)單的加法操作,在此就不再通 過(guò)示意圖加以說(shuō)明。 上述譯碼流程中,采用的譯碼算法為"改進(jìn)的分層Offset最小和譯碼算法"(公 式2),它能更好平衡LDPC譯碼算法實(shí)現(xiàn)復(fù)雜度以及誤碼率BER。與一般的SPA譯碼算法不 同,本發(fā)明譯碼算法的每次迭代過(guò)程中,分層調(diào)度譯碼算法依次對(duì)每個(gè)校驗(yàn)節(jié)點(diǎn)進(jìn)行更新, 和校驗(yàn)節(jié)點(diǎn)相連的變量節(jié)點(diǎn)的更新可以使用本次迭代中已經(jīng)更新過(guò)的消息,加快了譯碼收 斂速度;其次,本發(fā)明所采用譯碼算法采用Offset修正最小和算法,使譯碼性能相對(duì)最小 和算法MSA有所提高;此外,與一般的LDPC譯碼算法不同的是,本發(fā)明中的譯碼算法不需要 在每次迭代完成后計(jì)算碼字的估計(jì)值&是否滿(mǎn)足校驗(yàn)方程^//7 =0 (H是校驗(yàn)矩陣),而在 達(dá)到一個(gè)預(yù)先設(shè)定的最大迭代次數(shù)之后直接輸出譯碼結(jié)果。 正是由于上述譯碼算法采用分層調(diào)度方式,每次迭代過(guò)程中對(duì)校驗(yàn)節(jié)點(diǎn)依次進(jìn)行 更新,因此改進(jìn)了消息傳遞的特性,加快了譯碼過(guò)程的收斂速度;同時(shí),上述"Offset最小和譯碼算法"可在計(jì)算復(fù)雜度和譯碼性能之間取得較好的折中,并且該算法不需要存儲(chǔ)接 收到的對(duì)數(shù)似然比,且校驗(yàn)節(jié)點(diǎn)存儲(chǔ)單元只需保存最小值、次小值的絕對(duì)值和符號(hào)位,以及 存儲(chǔ)每個(gè)校驗(yàn)節(jié)點(diǎn)所連接的變量節(jié)點(diǎn),降低了譯碼裝置的存儲(chǔ)需求。 如圖6所示,在應(yīng)用實(shí)例中,本發(fā)明譯碼裝置在顯式存儲(chǔ)結(jié)構(gòu)片上系統(tǒng)
SoC(System onChip)中的位置示意圖。本發(fā)明的LDPC譯碼裝置作為主設(shè)備通過(guò)互連接
口和SoC的其他組件相連。本發(fā)明采用DMA工作方式的互連接口為L(zhǎng)DPC譯碼裝置提供數(shù)
據(jù),以提供更好的實(shí)時(shí)性。結(jié)構(gòu)中應(yīng)包含分布式多體便簽式二級(jí)存儲(chǔ)器L2,二級(jí)存儲(chǔ)器L2
是SoC中除主存儲(chǔ)器和內(nèi)存之外的所有可訪問(wèn)存儲(chǔ)器,可提供大容量、高帶寬的存儲(chǔ)服務(wù)。
LDPC譯碼裝置和其他IP核通過(guò)核間互連網(wǎng)絡(luò)實(shí)現(xiàn)二級(jí)存儲(chǔ)器的共享訪問(wèn),互連網(wǎng)絡(luò)的實(shí)
現(xiàn)方式可根據(jù)各IP核帶寬的需求和實(shí)現(xiàn)復(fù)雜度確定。LDPC譯碼裝置所在的互連網(wǎng)絡(luò)片內(nèi)
總線,交叉開(kāi)關(guān)結(jié)構(gòu)或者片上網(wǎng)絡(luò)等,具體實(shí)現(xiàn)根據(jù)其他應(yīng)用的需求確定。 本發(fā)明適用于顯式存儲(chǔ)結(jié)構(gòu)的SoC,所謂顯式存儲(chǔ)結(jié)構(gòu)是和Cache存儲(chǔ)結(jié)構(gòu)相區(qū)
別的存儲(chǔ)結(jié)構(gòu),所有存儲(chǔ)單元都單獨(dú)編址,不存在對(duì)上層應(yīng)用透明的某個(gè)數(shù)據(jù)的多份拷貝,
不需要在各級(jí)存儲(chǔ)器之間維護(hù)數(shù)據(jù)的一致性協(xié)議。 一般地,該類(lèi)結(jié)構(gòu)的主設(shè)備(包括處理
器、具備訪存能力的IP核)通過(guò)DMA或者LD/ST指令訪問(wèn)各級(jí)存儲(chǔ)器。對(duì)二級(jí)存儲(chǔ)器的訪
問(wèn)一般采用DMA方式,該方式可以較小的代價(jià)完成大批量數(shù)據(jù)的搬移。 如圖7所示,本發(fā)明譯碼裝置為可應(yīng)用于面向通信的顯式存儲(chǔ)片上系統(tǒng)(SoC)中
的超低復(fù)雜度譯碼裝置,它包括碼率可重構(gòu)存儲(chǔ)管理控制器、譯碼控制器和處理陣列單元。
碼率可重構(gòu)存儲(chǔ)管理控制器包括一組針對(duì)不同碼率條件下的狀態(tài)機(jī),由譯碼控制器配置重
構(gòu),完成不同碼率條件下的二級(jí)存儲(chǔ)器和本地存儲(chǔ)器之間的數(shù)據(jù)加載。譯碼控制器包括表
征校驗(yàn)矩陣的地址序列存儲(chǔ)器和移位序列存儲(chǔ)器,校驗(yàn)矩陣更新通路負(fù)責(zé)寫(xiě)入不同碼率條
件下的地址信息和移位信息,將對(duì)應(yīng)的地址信息和移位信息寫(xiě)入到地址序列存儲(chǔ)器和移位
序列存儲(chǔ)器。地址序列存儲(chǔ)器存儲(chǔ)不同碼率條件下譯碼過(guò)程所需的地址信息,移位序列存
儲(chǔ)器存儲(chǔ)不同碼率條件下譯碼過(guò)程所需的桶型移位器控制信息,譯碼控制器用于通過(guò)單控
制流多數(shù)據(jù)流SCMD控制通路產(chǎn)生不同碼率條件下譯碼控制信號(hào),控制信號(hào)包括本地存儲(chǔ)
器的地址和讀寫(xiě)信號(hào)和桶形移位器的移位控制信號(hào)。處理陣列單元包括一組以上的功能單
元簇、功能單元數(shù)據(jù)交換網(wǎng)絡(luò)、一個(gè)以上的本地存儲(chǔ)器、模式可重構(gòu)存儲(chǔ)管理控制器以及校
驗(yàn)和變量中間量交換通路,功能單元簇包括校驗(yàn)節(jié)點(diǎn)功能單元、變量節(jié)點(diǎn)功能單元,校驗(yàn)節(jié)
點(diǎn)功能單元對(duì)應(yīng)Tanner圖中一組變量節(jié)點(diǎn),變量節(jié)點(diǎn)功能單元對(duì)應(yīng)Tanner圖中一組校驗(yàn)
節(jié)點(diǎn),校驗(yàn)(變量)節(jié)點(diǎn)通過(guò)互連網(wǎng)絡(luò)找到與之相連的變量(校驗(yàn))節(jié)點(diǎn)。功能單元數(shù)據(jù)
交換網(wǎng)絡(luò)包括一個(gè)多周期流水化桶形移位寄存器,功能單元簇通過(guò)功能單元數(shù)據(jù)交換網(wǎng)絡(luò)
與本地存儲(chǔ)器進(jìn)行數(shù)據(jù)交互,本地存儲(chǔ)器通過(guò)模式可重構(gòu)存儲(chǔ)管理控制器以及校驗(yàn)和變量
中間量交換通路與碼率可重構(gòu)存儲(chǔ)管理控制器相連。模式可重構(gòu)存儲(chǔ)管理控制器負(fù)責(zé)通過(guò)
校驗(yàn)和變量中間量交換通路產(chǎn)生不同碼率條件下配置本地存儲(chǔ)器中所存儲(chǔ)的校驗(yàn)節(jié)點(diǎn)信
息和變量節(jié)點(diǎn)信息。譯碼控制器根據(jù)譯碼算法的特點(diǎn)控制處理單元陣列工作的時(shí)序,模式
可重構(gòu)存儲(chǔ)管理控制器根據(jù)當(dāng)前的數(shù)據(jù)組織特點(diǎn)完成活躍數(shù)據(jù)集在本地存儲(chǔ)器的讀取和
存儲(chǔ)以及非活躍數(shù)據(jù)集到本地存儲(chǔ)器、活躍數(shù)據(jù)集譯碼周期結(jié)束后到二級(jí)存儲(chǔ)器的存儲(chǔ)每
一個(gè)本地存儲(chǔ)器中包括校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊和變量節(jié)點(diǎn)存儲(chǔ)塊,構(gòu)成乒乓緩沖區(qū),任何時(shí)刻均
只有一個(gè)存儲(chǔ)塊處于譯碼狀態(tài),另外一個(gè)存儲(chǔ)塊正在進(jìn)行下一周期活躍中間變量集的調(diào)入操作。本發(fā)明在支持多種碼率時(shí)并不需要在本地存儲(chǔ)器中存儲(chǔ)每種碼率下的校驗(yàn)矩陣,當(dāng) 需要改變碼率時(shí),提前從二級(jí)存儲(chǔ)器中調(diào)入新碼率的校驗(yàn)矩陣,采用乒乓方式加快碼率更 新的速度。 本發(fā)明提供的譯碼裝置能有效地將二級(jí)存儲(chǔ)器用于譯碼中間量存儲(chǔ),即采用活躍 中間量調(diào)度技術(shù)。具體實(shí)現(xiàn)時(shí),該裝置將譯碼迭代中間量,包括校驗(yàn)節(jié)點(diǎn)中間量和變量節(jié)點(diǎn) 中間量,劃分為活躍中間量集和非活躍中間量集,活躍中間量集存儲(chǔ)在譯碼裝置的本地存 儲(chǔ)器中用作當(dāng)前譯碼周期的對(duì)象,非活躍中間量集存儲(chǔ)在SoC各IP節(jié)點(diǎn)(包括譯碼裝置IP 節(jié)點(diǎn))共享的二級(jí)存儲(chǔ)器中等待譯碼裝置的調(diào)度。本發(fā)明譯碼裝置的本地存儲(chǔ)器采用乒乓 方式,下一譯碼周期將激活成活躍中間量集的非活躍中間量集的部分?jǐn)?shù)據(jù)將在當(dāng)前活躍中 間量集的譯碼周期中調(diào)度進(jìn)入本地存儲(chǔ)器。假設(shè)目標(biāo)LDPC碼的算法并行度為P,那么譯碼 裝置中將包含P/N個(gè)變量節(jié)點(diǎn)功能單元(Variable Function Unit, VFU)和P/N個(gè)校驗(yàn)節(jié) 點(diǎn)功能單元(CheckFunction Unit, CFU) ,N可根據(jù)面積開(kāi)銷(xiāo)和吞吐率的需求進(jìn)行調(diào)整,在本 發(fā)明中N被稱(chēng)為并行度縮減參數(shù)。當(dāng)N = 4時(shí),任何譯碼周期中只有1/4的變量節(jié)點(diǎn)和校 驗(yàn)節(jié)點(diǎn)作為活躍中間量集在本地存儲(chǔ)器中進(jìn)行譯碼,而其中3/4的變量節(jié)點(diǎn)和校驗(yàn)節(jié)點(diǎn)將 作為非活躍中間量集保存在二級(jí)存儲(chǔ)器中等待調(diào)度,任何一個(gè)譯碼周期只有占中間量總量 的1/4的非活躍中間量進(jìn)行數(shù)據(jù)調(diào)入操作等待譯碼,也就是說(shuō)所有的中間量將被劃分成4 份,按照時(shí)分復(fù)用的方式進(jìn)入譯碼裝置進(jìn)行譯碼。采用P/N并行方式的譯碼裝置在SoC結(jié) 構(gòu)中本地存儲(chǔ)器的面積開(kāi)銷(xiāo)將是P并行方式的2/N(采用了乒乓方式),同時(shí)該譯碼裝置的 吞吐率同樣將是P并行方式下的1/N。 本發(fā)明的譯碼裝置中,變量節(jié)點(diǎn)中間量和校驗(yàn)節(jié)點(diǎn)中間量的存儲(chǔ)單元組織方 式采用一種"背靠背存儲(chǔ)技術(shù)",支持多種碼率條件下降低存儲(chǔ)需求。由于每種碼率下 校驗(yàn)節(jié)點(diǎn)的度可能會(huì)不相同,且每個(gè)校驗(yàn)節(jié)點(diǎn)需要存儲(chǔ)每條邊的符號(hào)位,最小值對(duì)應(yīng)的 下標(biāo)以及最小值和次小值的絕對(duì)值,所以每個(gè)校驗(yàn)節(jié)點(diǎn)Amn(k)所對(duì)應(yīng)的存儲(chǔ)單元數(shù)為 (《+「l0g2《"|+22),其中d。是校驗(yàn)節(jié)點(diǎn)的度,Q是量化實(shí)現(xiàn)時(shí)最小值和次小值的存儲(chǔ)位寬。 碼長(zhǎng)相同但碼率不同的LDPC碼,對(duì)于存儲(chǔ)器的位寬和存儲(chǔ)器的深度需求不同,如果采用直 接存儲(chǔ)的方式,存儲(chǔ)器的位寬和深度均需按照最大值設(shè)計(jì),增加了譯碼器的存儲(chǔ)開(kāi)銷(xiāo),本發(fā) 明利用碼率可重構(gòu)的背靠背存儲(chǔ)技術(shù),在某些碼率下當(dāng)d。較小時(shí),將兩個(gè)或多個(gè)A (k)的 值占用校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊的一行,在對(duì)校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊的Amn(k)進(jìn)行讀操作或?qū)懖僮鲿r(shí),由碼 率可重構(gòu)存儲(chǔ)管理控制器控制并通過(guò)簡(jiǎn)單的地址產(chǎn)生邏輯完成數(shù)據(jù)的讀取和存儲(chǔ),以保證 讀操作或?qū)懖僮鞯恼_性。該方案降低了譯碼器的存儲(chǔ)面積,提高了存儲(chǔ)單元的利用率。
結(jié)構(gòu)化LDPC碼存在譯碼并行度參數(shù),比如DVB-S2標(biāo)準(zhǔn)(ETSI EN 302 307 VI. 1.1)中LDPC碼的并行度為360。根據(jù)本發(fā)明所提供的算法以及結(jié)構(gòu)化LDPC碼存在的 并行度,結(jié)合DVB-S2標(biāo)準(zhǔn)中碼長(zhǎng)為64800bit的LDPC碼,自頂向下解釋本發(fā)明優(yōu)化實(shí)現(xiàn)的 譯碼裝置,方法同樣適用于其他結(jié)構(gòu)化LDPC碼,任何采用本發(fā)明所提出的思想優(yōu)化結(jié)構(gòu)化 LDPC碼譯碼裝置的方法都屬本發(fā)明的保護(hù)范圍。 如圖8所示,為適用于DVB-S2以及其他結(jié)構(gòu)化LDPC碼的處理單元陣列結(jié)構(gòu),不同 LDPC碼之間的主要區(qū)別在于功能單元的數(shù)量。圖8包含L個(gè)變量節(jié)點(diǎn)功能單元"VFU"和L 個(gè)校驗(yàn)節(jié)點(diǎn)功能單元"CFU",其中L = P/N,P為該LDPC碼的算法并行度,N為并行度縮減參 數(shù)。對(duì)于DVB-S2 LDPC碼,算法并行度為360,最多可包含360組功能單元,即P二 360,N =
10l,采用活躍中間量調(diào)度技術(shù)進(jìn)行譯碼時(shí),N可取2K,其中K為1,2,...。當(dāng)K為1時(shí),由于 采用了雙緩沖的方式,本地存儲(chǔ)器面積沒(méi)有任何降低,同時(shí)由于本地存儲(chǔ)器和二級(jí)存儲(chǔ)器 之間的數(shù)據(jù)交換,增加了二級(jí)存儲(chǔ)器的帶寬壓力。當(dāng)K為2時(shí),可減少一半本地存儲(chǔ)器的面 積,同時(shí)增加一定數(shù)量的二級(jí)存儲(chǔ)器的訪問(wèn)壓力,譯碼裝置的吞吐率將下降為原來(lái)的1/4,K 為其他數(shù)值時(shí)類(lèi)似。 變量節(jié)點(diǎn)存儲(chǔ)塊"RAM V"存儲(chǔ)解調(diào)之后的對(duì)數(shù)似然比LLR(Log Likelihood Ratio)和迭代過(guò)程中變量節(jié)點(diǎn)操作的中間結(jié)果,校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"存儲(chǔ)迭代過(guò)程中 校驗(yàn)節(jié)點(diǎn)操作的中間量,變量節(jié)點(diǎn)存儲(chǔ)塊"RAM V"和校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"中數(shù)據(jù)的存 儲(chǔ)方式是由LDPC碼得編碼規(guī)律得到,以便校驗(yàn)節(jié)點(diǎn)能通過(guò)互連網(wǎng)絡(luò)找到與之相連的變量 節(jié)點(diǎn)。相鄰的功能單元之間可以直接相連,不相鄰的功能單元之間可以通過(guò)多周期流水化 桶形移位器交換信息;校驗(yàn)節(jié)點(diǎn)通過(guò)桶形移位器找到與之相連的變量節(jié)點(diǎn),桶形移位器的 移位值Shift、地址值A(chǔ)ddress由譯碼控制器產(chǎn)生。采用活躍中間量技術(shù)進(jìn)行譯碼優(yōu)化時(shí), 每組功能單元對(duì)應(yīng)的校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊"RAM C"和變量節(jié)點(diǎn)存儲(chǔ)塊"RAM V"都包含兩個(gè)存儲(chǔ) 體,構(gòu)成乒乓緩沖區(qū),任何時(shí)刻只有一個(gè)存儲(chǔ)體處于譯碼狀態(tài),另外一個(gè)存儲(chǔ)體正在進(jìn)行下 一周期活躍中間變量集的調(diào)入操作。 以下將仍以DVB-S2標(biāo)準(zhǔn)中的LDPC碼為例,說(shuō)明如何采用"背靠背存儲(chǔ)技術(shù)"以及 "活躍中間量調(diào)度技術(shù)",降低本地存儲(chǔ)器的存儲(chǔ)容量需求,以及兩種技術(shù)條件下的譯碼裝 置本地存儲(chǔ)的組織方式。 DVB-S2標(biāo)準(zhǔn)中的LDPC碼包含普通幀和短幀兩種幀模式,兩種幀下碼長(zhǎng)分別為 64800和16200比特,并支持1/4、 l/3、2/5、 l/2、3/5、2/3、3/4、4/5、5/6、8/9、9/10共11種碼 率。根據(jù)標(biāo)準(zhǔn)中的編碼算法可知,DVB-S2標(biāo)準(zhǔn)中的LDPC碼具有并行度為360的特點(diǎn),本發(fā) 明在介紹背靠背技術(shù)和活躍中間量調(diào)度技術(shù)時(shí),假設(shè)譯碼裝置采用360/4的并行方案。在 該并行方式下,譯碼中間量被等分成4分,任何時(shí)刻只有1/4的中間量處于本地存儲(chǔ)器進(jìn)行 譯碼,即活躍中間量占總的中間量的1/4。將LDPC碼的N個(gè)變量節(jié)點(diǎn)分成K個(gè)信息節(jié)點(diǎn)和 (N-K)個(gè)奇偶節(jié)點(diǎn)兩類(lèi),并將信息節(jié)點(diǎn)分成90組,每組包含的K/90個(gè)信息節(jié)點(diǎn)映射到VFUi 上;將奇偶節(jié)點(diǎn)也分成90組,每組包含扭q個(gè)奇偶節(jié)點(diǎn),它們也映射到VFUi上。因此,每個(gè) VFU包含一組信息節(jié)點(diǎn)和一組奇偶節(jié)點(diǎn)。將校驗(yàn)節(jié)點(diǎn)也分成90組,每組包含扭q個(gè)校驗(yàn)節(jié) 點(diǎn),q是一個(gè)與碼率相關(guān)的常數(shù)。這樣分組之后,每組校驗(yàn)節(jié)點(diǎn)通過(guò)移位值Shift和地址信 號(hào)值A(chǔ)ddress就可以找到一組相對(duì)應(yīng)的信息節(jié)點(diǎn)。經(jīng)過(guò)實(shí)驗(yàn),采用本發(fā)明提出的算法進(jìn)行 DVB-S2LDPC碼的譯碼,RAM V中的數(shù)據(jù)量化方式為8bit, RAM C中最小值和次小值的量化方 式為5+lbit。如果采用直接的存儲(chǔ)方式,那么由于DVB-S2LDPC碼普通幀中,校驗(yàn)節(jié)點(diǎn)的度 最大為30,每個(gè)單個(gè)RAM C的寬度必須為5 (最小值絕對(duì)值)+5 (次小值絕對(duì)值)+5 (最小 值位置)+30(各值符號(hào))=45,如不采用活躍中間量存儲(chǔ),則單個(gè)RAM (]的深度為90*4 = 360。 對(duì)于DVB-S2標(biāo)準(zhǔn)中LDPC碼,其校驗(yàn)節(jié)點(diǎn)的度和RAM C的深度是負(fù)相關(guān)的,因此本 發(fā)明采用"背靠背"技術(shù)完成存儲(chǔ)優(yōu)化。所謂"背靠背"技術(shù)是和順序按節(jié)點(diǎn)存儲(chǔ)相區(qū)別的 針對(duì)RAM C的存儲(chǔ)技術(shù)。傳統(tǒng)實(shí)現(xiàn)RAM C的存儲(chǔ)分配時(shí),任何碼率條件下,校驗(yàn)節(jié)點(diǎn)的信息 將獨(dú)占RAM C中的某一行,而不管該行的利用率。而背靠背存儲(chǔ)技術(shù)是一種利用率敏感的 存儲(chǔ)技術(shù),如果某種條件下校驗(yàn)節(jié)點(diǎn)的度足夠小,比如DVB-S2LDPC碼中的度為7的情況,一行中可以存儲(chǔ)兩個(gè)或兩個(gè)以上的校驗(yàn)節(jié)點(diǎn)時(shí),則將原先相繼存儲(chǔ)的兩個(gè)節(jié)點(diǎn)存儲(chǔ)在同一 RAM C行中,而具體選擇哪一行采用操作則由譯碼控制器確定。以DVB-S2 LDPC碼的普通幀 為例,當(dāng)碼率為1/4, 1/3, 2/5, 1/2時(shí),RAM C的每一行存儲(chǔ)兩個(gè)校驗(yàn)節(jié)點(diǎn)的信息;當(dāng)碼率為 3/5,2/3,3/4,4/5,5/6,8/9,9/10時(shí),RAM C的每一行存儲(chǔ)一個(gè)校驗(yàn)節(jié)點(diǎn)存儲(chǔ)單元。采用該 技術(shù)后,可將RAM C的深度減小到46*4。 如圖9所示,為譯碼器在普通幀1/2碼率下(q = 90, K = 32400)第i個(gè)存儲(chǔ)塊 RAM Vi和RAM &的存儲(chǔ)方式(沒(méi)有采用活躍中間量技術(shù),因此所有中間量保存在本地存儲(chǔ) 器中)。RAMVi中包含信息節(jié)點(diǎn)的存儲(chǔ)和奇偶節(jié)點(diǎn)的存儲(chǔ)兩部分。圖中的數(shù)字表示該位置 存儲(chǔ)的信息對(duì)應(yīng)于校驗(yàn)節(jié)點(diǎn)或者信息節(jié)點(diǎn)的序列號(hào)。 如圖10所示,為給出了 1/2碼率條件下DVB-S2 LDPC碼譯碼過(guò)程中,采取1/4活 躍中間量調(diào)度技術(shù)后的存儲(chǔ)組織示意圖,其中圖10(a)為變量節(jié)點(diǎn)的調(diào)度狀態(tài),圖10(b)是 和圖10(a)相對(duì)應(yīng)的校驗(yàn)中間量調(diào)度狀態(tài)。圖中顯示中間量的第一部分正在譯碼狀態(tài),而 中間量的第2部分正在調(diào)入本地存儲(chǔ)器。值得注意的是,在第2部分調(diào)入本地存儲(chǔ)器之前, 必須先將本地存儲(chǔ)器中存儲(chǔ)的前一個(gè)譯碼周期完成譯碼的中間量的第4部分寫(xiě)回二級(jí)存 儲(chǔ)器,該部分沒(méi)有顯示在圖中。 圖11是采用本發(fā)明提供的譯碼方法和譯碼裝置,將本發(fā)明應(yīng)用于DVB-S2標(biāo)準(zhǔn)中 普通幀1/2碼率下,最大迭代次數(shù)為15時(shí)的誤碼性能。隨著信噪比Eb/No的提高,誤碼率 BER呈現(xiàn)下降趨勢(shì),誤碼率在10-7時(shí)出現(xiàn)一個(gè)誤碼平臺(tái),能滿(mǎn)足DVB-S2標(biāo)準(zhǔn)的應(yīng)用需求。
以上所述僅是本發(fā)明的一種實(shí)施方式,本發(fā)明的保護(hù)范圍并不僅局限于上述實(shí)施 例,凡屬于本發(fā)明思路下的技術(shù)方案均屬于本發(fā)明的保護(hù)范圍。應(yīng)當(dāng)指出,對(duì)于本技術(shù)領(lǐng)域 的普通技術(shù)人員來(lái)說(shuō),在不脫離本發(fā)明原理前提下的若干改進(jìn)和潤(rùn)飾,這些改進(jìn)和潤(rùn)飾也 應(yīng)視為本發(fā)明的保護(hù)范圍。
權(quán)利要求
一種用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法,其特征在于步驟為(1)、譯碼的初始化該初始化過(guò)程包括將接收到的對(duì)數(shù)似然比LLR按特定的存儲(chǔ)方式存儲(chǔ)到變量節(jié)點(diǎn)存儲(chǔ)塊中、初始化校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊的值為0、預(yù)先設(shè)定一個(gè)最大迭代次數(shù);對(duì)n=1,2,…,N, <mrow><msub> <mi>&lambda;</mi> <mi>n</mi></msub><mo>=</mo><msubsup> <mi>&lambda;</mi> <mi>n</mi> <mrow><mo>(</mo><mn>0</mn><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow> <mrow><msubsup> <mi>&Lambda;</mi> <mi>mn</mi> <mrow><mo>(</mo><mn>0</mn><mo>)</mo> </mrow></msubsup><mo>=</mo><mn>0</mn><mo>,</mo> </mrow>m∈M(n)(公式1)(2)、迭代過(guò)程啟動(dòng)迭代次數(shù)計(jì)數(shù)器Iter;即對(duì)每個(gè)校驗(yàn)節(jié)點(diǎn)m=1,2,…,M,依次計(jì)算 <mrow><msubsup> <mi>&Lambda;</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mo>=</mo><mrow> <mo>(</mo> <munder><mi>&Pi;</mi><mrow> <msup><mi>n</mi><mo>&prime;</mo> </msup> <mo>&Element;</mo> <mi>N</mi> <mrow><mo>(</mo><mi>m</mi><mo>)</mo> </mrow> <mo>\</mo> <mi>n</mi></mrow> </munder> <mi>sign</mi> <mrow><mo>(</mo><msub> <mi>&lambda;</mi> <mi>n</mi></msub><mo>-</mo><msubsup> <mi>&Lambda;</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow></msubsup><mo>)</mo> </mrow> <mo>)</mo></mrow><mo>&CenterDot;</mo><mi>max</mi><mrow> <mo>(</mo> <munder><mi>min</mi><mrow> <msup><mi>n</mi><mo>&prime;</mo> </msup> <mo>&Element;</mo> <mi>N</mi> <mrow><mo>(</mo><mi>m</mi><mo>)</mo> </mrow> <mo>\</mo> <mi>n</mi></mrow> </munder> <mo>|</mo> <msub><mi>&lambda;</mi><mi>n</mi> </msub> <mo>-</mo> <msubsup><mi>&Lambda;</mi><mi>mn</mi><mrow> <mo>(</mo> <mi>k</mi> <mo>-</mo> <mn>1</mn> <mo>)</mo></mrow> </msubsup> <mo>|</mo> <mo>-</mo> <mi>&beta;</mi> <mo>,</mo> <mn>0</mn> <mo>)</mo></mrow> </mrow>(公式2) <mrow><msub> <mi>&lambda;</mi> <mi>n</mi></msub><mo>=</mo><msub> <mi>&lambda;</mi> <mi>n</mi></msub><mo>-</mo><msubsup> <mi>&Lambda;</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>-</mo><mn>1</mn><mo>)</mo> </mrow></msubsup><mo>+</mo><msubsup> <mi>&Lambda;</mi> <mi>mn</mi> <mrow><mo>(</mo><mi>k</mi><mo>)</mo> </mrow></msubsup><mo>,</mo> </mrow>n∈N(m)(公式3)(3)、輸出譯碼結(jié)果當(dāng)?shù)螖?shù)計(jì)數(shù)器Iter達(dá)到最大迭代數(shù)且完成最后一個(gè)校驗(yàn)節(jié)點(diǎn)的譯碼操作時(shí),停止譯碼并輸出譯碼結(jié)果即將變量節(jié)點(diǎn)存儲(chǔ)塊中所存儲(chǔ)的λn值的符號(hào)位作為譯碼結(jié)果輸出;否則,轉(zhuǎn)到步驟(2)繼續(xù)迭代;在上述譯碼過(guò)程中,λn(0)是接收到的對(duì)數(shù)似然比LLR,λn是變量節(jié)點(diǎn)向校驗(yàn)節(jié)點(diǎn)傳遞的消息,Λmn(k)是第k次迭代中校驗(yàn)節(jié)點(diǎn)向變量節(jié)點(diǎn)傳遞的消息,β是一個(gè)非負(fù)的修正值,M(n)表示與變量節(jié)點(diǎn)xn相連的變量節(jié)點(diǎn)集合,N(m)表示與校驗(yàn)節(jié)點(diǎn)sm相連的變量節(jié)點(diǎn)集合,N(m)\n表示變量節(jié)點(diǎn)集合N(m)中去掉變量節(jié)點(diǎn)xn。FSA00000013950400015.tif
2. 根據(jù)權(quán)利要求1所述的用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法,其特征在于所述步驟(2)的迭代過(guò)程包括外層循環(huán)和內(nèi)層循環(huán),所述外層循環(huán)依次對(duì)每個(gè)校驗(yàn)節(jié)點(diǎn)進(jìn)行計(jì)算,當(dāng)所有的校驗(yàn)節(jié)點(diǎn)計(jì)算完畢時(shí),表示已完成一次迭代;所述內(nèi)層循環(huán)采用Offset修正最小和譯碼算法,對(duì)與校驗(yàn)節(jié)點(diǎn)連接的變量節(jié)點(diǎn)依次進(jìn)行處理。
3. 根據(jù)權(quán)利要求2所述的用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法,其特征在于所述內(nèi)層循環(huán)中包括第一子循環(huán)和第二子循環(huán),所述第一次子循環(huán)分別從變量節(jié)點(diǎn)存儲(chǔ)塊和校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中讀取、和Amn(k-",將它們相減得到(An-Amn(k-"),將此結(jié)果的絕對(duì)值送去與新的最小值進(jìn)行比較,將符號(hào)位送去進(jìn)行更新新的符號(hào)位集合NewSignSet,并將所有符號(hào)位進(jìn)行異或操作得到新的符號(hào)集異或結(jié)果NewSignM ;IndexCo皿ter表示正在處理的當(dāng)前校驗(yàn)節(jié)點(diǎn)所連接的變量節(jié)點(diǎn)索引計(jì)數(shù)值,Shift表示桶形移位器的移位值,Address表示訪問(wèn)本地存儲(chǔ)器的訪問(wèn)地址;根據(jù)IndexCo皿ter、 Shift和Address的值可以從校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中讀取An ;由于 ,^^\"|入-AtDl只有兩個(gè)值,在校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中,只需存儲(chǔ)最小值OldMin,次小值SecOldMin和最小值索引值Oldlndex以及(A n-Amn(k-")的符號(hào)位集合OldSignSet ;根據(jù)IndexCounter和OldSignSet確定Amn(k—"的符號(hào)位,以及根據(jù)IndexCounter是否等于Oldlndex確定Amn(k-"的絕對(duì)值是最小值OldMin還是次小值SecOldMin ;當(dāng)對(duì)校驗(yàn)節(jié)點(diǎn)所有相連的變量節(jié)點(diǎn)操作完之后,對(duì)新得到的最小值和次小值進(jìn)行修正;所述第二子循環(huán)為分別讀取Ajk)和Amn(k-",并將它們相減得到(Aj)-A,(k—D),將此結(jié)果送去變量節(jié)點(diǎn)功能單元,在變量節(jié)點(diǎn)功能單元中執(zhí)行加法操作^=義 +八2-At",即完成了變量節(jié)點(diǎn)入n的更新;所述第二子循環(huán)完成之后,對(duì)校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊中的存儲(chǔ)單元進(jìn)行更新,將A -"更新為Ajk),然后對(duì)下一個(gè)校驗(yàn)節(jié)點(diǎn)進(jìn)行譯碼操作;當(dāng)對(duì)所有校驗(yàn)節(jié)點(diǎn)都完成一次譯碼操作時(shí),表示已完成一次迭代譯碼。
4. 一種用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼裝置,其特征在于包括 碼率可重構(gòu)存儲(chǔ)管理控制器,包括一組針對(duì)不同碼率條件下的狀態(tài)機(jī),由譯碼控制器配置重構(gòu),完成不同碼率條件下的二級(jí)存儲(chǔ)器和本地存儲(chǔ)器之間的數(shù)據(jù)加載;譯碼控制器,包括表征校驗(yàn)矩陣的地址序列存儲(chǔ)器和移位序列存儲(chǔ)器,所述地址序列 存儲(chǔ)器存儲(chǔ)不同碼率條件下譯碼過(guò)程所需的地址信息,所述移位序列存儲(chǔ)器存儲(chǔ)不同碼率 條件下譯碼過(guò)程所需的桶型移位器控制信息,所述譯碼控制器用于通過(guò)單控制流多數(shù)據(jù)流 SCMD控制通路產(chǎn)生不同碼率條件下譯碼控制信號(hào),所述控制信號(hào)包括本地存儲(chǔ)器的地址和 讀寫(xiě)信號(hào)和桶形移位器的移位控制信號(hào);處理陣列單元,包括一組以上的功能單元簇、功能單元數(shù)據(jù)交換網(wǎng)絡(luò)、一個(gè)以上的本地 存儲(chǔ)器、模式可重構(gòu)存儲(chǔ)管理控制器以及校驗(yàn)和變量中間量交換通路,所述功能單元簇包 括校驗(yàn)節(jié)點(diǎn)功能單元和變量節(jié)點(diǎn)功能單元,校驗(yàn)節(jié)點(diǎn)功能單元對(duì)應(yīng)一組變量節(jié)點(diǎn),變量節(jié) 點(diǎn)功能單元對(duì)應(yīng)一組校驗(yàn)節(jié)點(diǎn),所述功能單元數(shù)據(jù)交換網(wǎng)絡(luò)包括一個(gè)多周期流水化桶形移 位寄存器,所述功能單元簇通過(guò)功能單元數(shù)據(jù)交換網(wǎng)絡(luò)與本地存儲(chǔ)器進(jìn)行數(shù)據(jù)交互,所述 本地存儲(chǔ)器通過(guò)模式可重構(gòu)存儲(chǔ)管理控制器以及校驗(yàn)和變量中間量交換通路與碼率可重 構(gòu)存儲(chǔ)管理控制器相連,所述模式可重構(gòu)存儲(chǔ)管理控制器負(fù)責(zé)通過(guò)校驗(yàn)和變量中間量交換 通路產(chǎn)生不同碼率條件下配置本地存儲(chǔ)器中所存儲(chǔ)的校驗(yàn)節(jié)點(diǎn)信息和變量節(jié)點(diǎn)信息。
5. 根據(jù)權(quán)利要求4所述的用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼裝置,其特征在 于所述每一個(gè)本地存儲(chǔ)器中包括校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊和變量節(jié)點(diǎn)存儲(chǔ)塊,構(gòu)成乒乓緩沖區(qū),任 何時(shí)刻均只有一個(gè)存儲(chǔ)塊處于譯碼狀態(tài),另外一個(gè)存儲(chǔ)塊正在進(jìn)行下一周期活躍中間變量 集的調(diào)入操作。
全文摘要
一種用于顯式存儲(chǔ)片上系統(tǒng)的結(jié)構(gòu)化LDPC碼譯碼方法及裝置,其步驟為(1)譯碼的初始化該初始化過(guò)程包括將接收到的對(duì)數(shù)似然比LLR按特定的存儲(chǔ)方式存儲(chǔ)到變量節(jié)點(diǎn)存儲(chǔ)塊中、初始化校驗(yàn)節(jié)點(diǎn)存儲(chǔ)塊的值為0、預(yù)先設(shè)定一個(gè)最大迭代次數(shù);(2)迭代過(guò)程啟動(dòng)迭代次數(shù)計(jì)數(shù)器Iter,進(jìn)行迭代操作;(3)輸出譯碼結(jié)果當(dāng)?shù)螖?shù)計(jì)數(shù)器Iter達(dá)到最大迭代數(shù)且完成最后一個(gè)校驗(yàn)節(jié)點(diǎn)的譯碼操作時(shí),停止譯碼并輸出譯碼結(jié)果;否則,轉(zhuǎn)到步驟(2)繼續(xù)迭代。該譯碼裝置包括碼率可重構(gòu)存儲(chǔ)管理控制器、譯碼控制器和處理陣列單元。本發(fā)明具有結(jié)構(gòu)簡(jiǎn)單緊湊、成本低廉、操作方便、能夠降低硬件復(fù)雜度、可支持多種碼率等優(yōu)點(diǎn)。
文檔編號(hào)H04M13/00GK101777921SQ20101010221
公開(kāi)日2010年7月14日 申請(qǐng)日期2010年1月28日 優(yōu)先權(quán)日2010年1月28日
發(fā)明者劉冬培, 劉衡竹, 周理, 張波濤, 陳書(shū)明, 陳躍躍 申請(qǐng)人:中國(guó)人民解放軍國(guó)防科學(xué)技術(shù)大學(xué)
網(wǎng)友詢(xún)問(wèn)留言 已有0條留言
  • 還沒(méi)有人留言評(píng)論。精彩留言會(huì)獲得點(diǎn)贊!
1
怀柔区| 北宁市| 海丰县| 江安县| 盈江县| 永昌县| 开平市| 昂仁县| 新乡市| 夏津县| 阳原县| 巴塘县| 黄龙县| 万源市| 高阳县| 彰化县| 嘉义市| 仪陇县| 肃北| 镇雄县| 五原县| 临洮县| 土默特左旗| 板桥市| 绥棱县| 娄底市| 锡林浩特市| 河津市| 荣成市| 安顺市| 双辽市| 衡水市| 崇左市| 临桂县| 临夏县| 当涂县| 桃江县| 和平县| 漳州市| 长岭县| 蚌埠市|