基于TMS320C6000系列DSP的維特比譯碼程序優(yōu)化設(shè)計(jì)
發(fā)布時(shí)間:2007/4/23 0:00:00 訪問次數(shù):477
北京清華大學(xué)電子工程系數(shù)字通信與微波國家重點(diǎn)實(shí)驗(yàn)室(100084)
張 丹 曹志剛
卷積碼因?yàn)槠渚幋a器簡單、編碼增益高以及具有很強(qiáng)的糾正隨機(jī)錯誤的能力,在通信系統(tǒng)中得到了廣泛的應(yīng)用;谧畲笏迫粶(zhǔn)則的維特比算法(VA)是在加性高斯白噪聲(AWGN)信道下性能最佳的卷積碼譯碼算法,也是常用的一種算法。
一般來說,實(shí)現(xiàn)軟判決維特比譯碼可以有三種方案供選擇:專用集成電路(ASIC)芯片、可編程邏輯陣列(FPGA)芯片以及數(shù)字信號處理器(DSP)芯片。參考文獻(xiàn)[3]對這三種方案的優(yōu)劣做了詳細(xì)的比較。使用DSP芯片實(shí)現(xiàn)譯碼是最為靈活的一種方案,但速度也是最慢的,因?yàn)檎麄譯碼過程都是由軟件來實(shí)現(xiàn)的。
在近年來興起的軟件無線電技術(shù)中,要求采用可編程能力強(qiáng)的的器件(DSP、CPU等)代替專用的數(shù)字電路。對信道編解碼而言,這樣做的優(yōu)點(diǎn)在于只需要在程序上加以少量改動,就可以適應(yīng)不同的編碼速率以及各種通信系統(tǒng)所要求的不同的編解碼方法。然而速度的瓶頸限制了DSP譯碼在實(shí)時(shí)系統(tǒng)中的應(yīng)用,因此提高DSP的譯碼速度對于軟件無線電有著重要的意義。本文的目的就是通過對譯碼程序結(jié)構(gòu)優(yōu)化,來提高DSP芯片執(zhí)行VA算法的速度。
1維特比譯碼器
首先,需要定義兩個將在本文中用到的術(shù)語:
輸入幀--每次輸入譯碼器的比特;
輸出幀--對應(yīng)一個輸入幀,譯碼器輸出的比特。
圖1所示是卷積碼譯碼器(VA算法)的一種典型結(jié)構(gòu)。
以(2,1,7)卷積碼為例(輸入幀含2比特,輸出幀為1比特),來說明譯碼器的三個主要部分。
1.1支路度量計(jì)算單元(BMG)
計(jì)算當(dāng)前輸入幀對應(yīng)的128條支路的路徑度量值,并將其存人支路度量存儲單元(BMM)。
1.2加比選單元(ACS)
將支路度量值與相連的前面的路徑度量值相加得到延伸后的新路徑的度量值;比較連接在同一個狀態(tài)上的兩條新路徑的度量值;選擇其中度量值較小的那條路徑(幸存路徑),并將它的度量值存儲到新路徑度量存儲器(SM)中,幸存路徑值(對應(yīng)編碼狀態(tài)的輸入比特)存儲到路徑存儲器(PM)中。
.3幸存路徑計(jì)算單元
找到64條幸存路徑中度量值最小的一個(最大似然路徑),通過回溯操作(Traceback)在PM中找出該路徑對應(yīng)的所有輸入比特,依次輸出即為譯碼結(jié)果。
每輸出一幀,都對應(yīng)著一次支路單元計(jì)算和64次ACS操作。ACS操作在總的運(yùn)算時(shí)間里占了很大的比例。程序優(yōu)化的主要工作就是設(shè)法減少每個ACS操作所需要的時(shí)鐘周期數(shù)。
2 TMS320C6000 DSP芯片的特點(diǎn)
TMS320C6000系列DSP是基于TMS320C6000平臺的32位浮點(diǎn)DSP處理器。它包含兩個子系列:用于定點(diǎn)計(jì)算的TMS320C62x系列和用于浮點(diǎn)計(jì)算的TMS320C67x系列TMS320C6000系列CPU結(jié)構(gòu)如圖2所示。時(shí)鐘頻率最高可達(dá)到250MHz。該系列DSP包含兩個通用的寄存器組A和B,每組有16個32位的寄存器。芯片內(nèi)含8個運(yùn)算功能單元:兩個乘法器(.M1和.M2);六個算術(shù)邏輯單元(.L1.L2.S1.S2.D1.D2)。所有單元都能獨(dú)立并行操作。以TM320C6701為例,它的工作頻率最高為167MHz,最快速度可達(dá)8×167=1336MIPS。
實(shí)際上,要實(shí)現(xiàn)這個速度存在很多瓶頸,主要有下面幾種限制:
(1)功能模塊的限制 8個功能模塊能夠執(zhí)行的指令不盡相同。在實(shí)際程序中,由于程序流程的限制,指令的位置不能隨便調(diào)換,因此不可能在每一個時(shí)鐘周期都讓8個模塊同時(shí)工作。程序優(yōu)化的主要手段就是要提高指令的并行程度,即平均每一周期內(nèi)同時(shí)執(zhí)行的指令數(shù)。
(2)交叉路徑(Cross Path)的限制 每一個功能模塊都只能對其所屬的寄存器組中的寄存器進(jìn)行直接操作。例如.L1只能將結(jié)果直接寫入寄存器組A。如果要對另一個寄存器組執(zhí)行讀或?qū)懖僮,需要用?交叉路徑",而整個CPU中只有兩條交叉路徑。也就是說,一個周期內(nèi)至多能同時(shí)容納兩個相反方向的交叉讀寫。
(3)多周期指令的限制 LD命令的功能是將數(shù)據(jù)從存儲器讀到寄存器中,由.D模塊執(zhí)行。但執(zhí)行LD命令后必須等待4個周期才能得到需要的數(shù)據(jù)。類似這樣的需要多個周期才能完成的命令(例如跳轉(zhuǎn)指令B)都成為提高指令并行處理程度的障礙。
(4)對長數(shù)據(jù)操作的限制 C6000指令集只能以8比特、16比特、32比特或者40比特為單位對數(shù)據(jù)進(jìn)行操作。
北京清華大學(xué)電子工程系數(shù)字通信與微波國家重點(diǎn)實(shí)驗(yàn)室(100084)
張 丹 曹志剛
卷積碼因?yàn)槠渚幋a器簡單、編碼增益高以及具有很強(qiáng)的糾正隨機(jī)錯誤的能力,在通信系統(tǒng)中得到了廣泛的應(yīng)用;谧畲笏迫粶(zhǔn)則的維特比算法(VA)是在加性高斯白噪聲(AWGN)信道下性能最佳的卷積碼譯碼算法,也是常用的一種算法。
一般來說,實(shí)現(xiàn)軟判決維特比譯碼可以有三種方案供選擇:專用集成電路(ASIC)芯片、可編程邏輯陣列(FPGA)芯片以及數(shù)字信號處理器(DSP)芯片。參考文獻(xiàn)[3]對這三種方案的優(yōu)劣做了詳細(xì)的比較。使用DSP芯片實(shí)現(xiàn)譯碼是最為靈活的一種方案,但速度也是最慢的,因?yàn)檎麄譯碼過程都是由軟件來實(shí)現(xiàn)的。
在近年來興起的軟件無線電技術(shù)中,要求采用可編程能力強(qiáng)的的器件(DSP、CPU等)代替專用的數(shù)字電路。對信道編解碼而言,這樣做的優(yōu)點(diǎn)在于只需要在程序上加以少量改動,就可以適應(yīng)不同的編碼速率以及各種通信系統(tǒng)所要求的不同的編解碼方法。然而速度的瓶頸限制了DSP譯碼在實(shí)時(shí)系統(tǒng)中的應(yīng)用,因此提高DSP的譯碼速度對于軟件無線電有著重要的意義。本文的目的就是通過對譯碼程序結(jié)構(gòu)優(yōu)化,來提高DSP芯片執(zhí)行VA算法的速度。
1維特比譯碼器
首先,需要定義兩個將在本文中用到的術(shù)語:
輸入幀--每次輸入譯碼器的比特;
輸出幀--對應(yīng)一個輸入幀,譯碼器輸出的比特。
圖1所示是卷積碼譯碼器(VA算法)的一種典型結(jié)構(gòu)。
以(2,1,7)卷積碼為例(輸入幀含2比特,輸出幀為1比特),來說明譯碼器的三個主要部分。
1.1支路度量計(jì)算單元(BMG)
計(jì)算當(dāng)前輸入幀對應(yīng)的128條支路的路徑度量值,并將其存人支路度量存儲單元(BMM)。
1.2加比選單元(ACS)
將支路度量值與相連的前面的路徑度量值相加得到延伸后的新路徑的度量值;比較連接在同一個狀態(tài)上的兩條新路徑的度量值;選擇其中度量值較小的那條路徑(幸存路徑),并將它的度量值存儲到新路徑度量存儲器(SM)中,幸存路徑值(對應(yīng)編碼狀態(tài)的輸入比特)存儲到路徑存儲器(PM)中。
.3幸存路徑計(jì)算單元
找到64條幸存路徑中度量值最小的一個(最大似然路徑),通過回溯操作(Traceback)在PM中找出該路徑對應(yīng)的所有輸入比特,依次輸出即為譯碼結(jié)果。
每輸出一幀,都對應(yīng)著一次支路單元計(jì)算和64次ACS操作。ACS操作在總的運(yùn)算時(shí)間里占了很大的比例。程序優(yōu)化的主要工作就是設(shè)法減少每個ACS操作所需要的時(shí)鐘周期數(shù)。
2 TMS320C6000 DSP芯片的特點(diǎn)
TMS320C6000系列DSP是基于TMS320C6000平臺的32位浮點(diǎn)DSP處理器。它包含兩個子系列:用于定點(diǎn)計(jì)算的TMS320C62x系列和用于浮點(diǎn)計(jì)算的TMS320C67x系列TMS320C6000系列CPU結(jié)構(gòu)如圖2所示。時(shí)鐘頻率最高可達(dá)到250MHz。該系列DSP包含兩個通用的寄存器組A和B,每組有16個32位的寄存器。芯片內(nèi)含8個運(yùn)算功能單元:兩個乘法器(.M1和.M2);六個算術(shù)邏輯單元(.L1.L2.S1.S2.D1.D2)。所有單元都能獨(dú)立并行操作。以TM320C6701為例,它的工作頻率最高為167MHz,最快速度可達(dá)8×167=1336MIPS。
實(shí)際上,要實(shí)現(xiàn)這個速度存在很多瓶頸,主要有下面幾種限制:
(1)功能模塊的限制 8個功能模塊能夠執(zhí)行的指令不盡相同。在實(shí)際程序中,由于程序流程的限制,指令的位置不能隨便調(diào)換,因此不可能在每一個時(shí)鐘周期都讓8個模塊同時(shí)工作。程序優(yōu)化的主要手段就是要提高指令的并行程度,即平均每一周期內(nèi)同時(shí)執(zhí)行的指令數(shù)。
(2)交叉路徑(Cross Path)的限制 每一個功能模塊都只能對其所屬的寄存器組中的寄存器進(jìn)行直接操作。例如.L1只能將結(jié)果直接寫入寄存器組A。如果要對另一個寄存器組執(zhí)行讀或?qū)懖僮,需要用?交叉路徑",而整個CPU中只有兩條交叉路徑。也就是說,一個周期內(nèi)至多能同時(shí)容納兩個相反方向的交叉讀寫。
(3)多周期指令的限制 LD命令的功能是將數(shù)據(jù)從存儲器讀到寄存器中,由.D模塊執(zhí)行。但執(zhí)行LD命令后必須等待4個周期才能得到需要的數(shù)據(jù)。類似這樣的需要多個周期才能完成的命令(例如跳轉(zhuǎn)指令B)都成為提高指令并行處理程度的障礙。
(4)對長數(shù)據(jù)操作的限制 C6000指令集只能以8比特、16比特、32比特或者40比特為單位對數(shù)據(jù)進(jìn)行操作。
熱門點(diǎn)擊
- 基于UC3846的新型開關(guān)電源的設(shè)計(jì)
- ISD4004語音芯片在語音報(bào)站器中的應(yīng)用
- PT2262/PT2272編解碼IC在視頻切
- 基于AD8108的寬頻帶低串?dāng)_視頻切換矩陣的
- 嵌入式微處理器MCF5249及其應(yīng)用
- μPD3575DCCD圖像傳感器的原理及應(yīng)用
- 語音處理芯片AC48105在低速語音編碼設(shè)備
- 基于FM1715的TypeB卡閱讀器設(shè)計(jì)
- 飛行器全靜壓檢測系統(tǒng)的設(shè)計(jì)與實(shí)現(xiàn)
- 簡化電動機(jī)運(yùn)動的光電定位控制電路
推薦技術(shù)資料
- 按鈕與燈的互動實(shí)例
- 現(xiàn)在趕快去看看這個目錄卞有什么。FGA15N120AN... [詳細(xì)]
- PCB嵌入式功率芯片封裝工作原理
- 莫仕儲能連接器技術(shù)結(jié)構(gòu)應(yīng)用詳情
- 新款 Snapdragon X
- Intel 18A(1.8nm
- 業(yè)界首款STM32配套無線物聯(lián)網(wǎng)模塊
- 2025年全球半導(dǎo)體產(chǎn)業(yè)十大熱門看點(diǎn)
- 多媒體協(xié)處理器SM501在嵌入式系統(tǒng)中的應(yīng)用
- 基于IEEE802.11b的EPA溫度變送器
- QUICCEngine新引擎推動IP網(wǎng)絡(luò)革新
- SoC面世八年后的產(chǎn)業(yè)機(jī)遇
- MPC8xx系列處理器的嵌入式系統(tǒng)電源設(shè)計(jì)
- dsPIC及其在交流變頻調(diào)速中的應(yīng)用研究