《電子技術應用》
您所在的位置:首頁 > 嵌入式技術 > 業界動態 > 基于TMS320C6000系列DSP的維特比譯碼程序優化設計

基于TMS320C6000系列DSP的維特比譯碼程序優化設計

2008-09-19
作者:張 丹 曹志剛

??? 摘? 要: 在軟件無線電技術中,經常采用DSP芯片實現信道解碼,但維特比譯碼算法在DSP上的運行速度限制了DSP譯碼在高速實時系統中的應用。針對TMS320C6000系列DSP的特點,提出了一種優化的譯碼程序設計方案。利用DSP的并行運算能力,極大地縮短了譯碼器" title="譯碼器">譯碼器中“加比選”單元的運算時間。優化后的程序比優化前的程序在譯碼速度上提高了約4倍。當在167MHz的TMS320C6701上運行的時候,對(2,1,7)卷積碼的譯碼速度可以達到870kbps。?

????關鍵詞: 數字信號處理器? 維特比譯碼器? 軟件無線電

?

??? 卷積碼因為其編碼器簡單、編碼增益高以及具有很強的糾正隨機錯誤的能力,在通信系統中得到了廣泛的應用。基于最大似然準則的維特比算法(VA)是在加性高斯白噪聲(AWGN)信道下性能最佳的卷積碼譯碼算法,也是常用的一種算法[1~2]。?

??? 一般來說,實現軟判決維特比譯碼可以有三種方案供選擇:專用集成電路(ASIC)芯片、可編程邏輯陣列(FPGA)芯片以及數字信號處理器(DSP)芯片。參考文獻[3]對這三種方案的優劣做了詳細的比較。使用DSP芯片實現譯碼是最為靈活的一種方案,但速度也是最慢的,因為整個譯碼過程都是由軟件來實現的。?

??? 在近年來興起的軟件無線電技術中,要求采用可編程能力強的的器件(DSP、CPU等)代替專用的數字電路。對信道編解碼而言,這樣做的優點在于只需要在程序上加以少量改動,就可以適應不同的編碼速率以及各種通信系統所要求的不同的編解碼方法。然而速度的瓶頸限制了DSP譯碼在實時系統中的應用,因此提高DSP的譯碼速度對于軟件無線電有著重要的意義。本文的目的就是通過對譯碼程序結構優化,來提高DSP芯片執行VA算法的速度。?

1 維特比譯碼器

??? 首先,需要定義兩個將在本文中用到的術語[2]:

??? 輸入幀——每次輸入譯碼器的比特;?

??? 輸出幀——對應一個輸入幀,譯碼器輸出的比特。?

??? 圖1所示是卷積碼譯碼器(VA算法)的一種典型結構。?

?

?

??? 以(2,1,7)卷積碼為例(輸入幀含2比特,輸出幀為1比特),來說明譯碼器的三個主要部分。?

1.1 支路度量計算單元(BMG)?

??? 計算當前輸入幀對應的128條支路的路徑度量值,并將其存入支路度量存儲單元(BMM)。?

1.2 加比選單元(ACS)?

??? 將支路度量值與相連的前面的路徑度量值相加得到延伸后的新路徑的度量值;比較連接在同一個狀態上的兩條新路徑的度量值;選擇其中度量值較小的那條路徑(幸存路徑),并將它的度量值存儲到新路徑度量存儲器(SM)中,幸存路徑值(對應編碼狀態的輸入比特)存儲到路徑存儲器(PM)中。?

1.3 幸存路徑計算單元?

??? 找到64條幸存路徑中度量值最小的一個(最大似然路徑),通過回溯操作(Traceback)在PM中找出該路徑對應的所有輸入比特,依次輸出即為譯碼結果。?

??? 每輸出一幀,都對應著一次支路單元計算和64次ACS操作。ACS操作在總的運算時間里占了很大的比例。程序優化" title="程序優化">程序優化的主要工作就是設法減少每個ACS操作所需要的時鐘周期" title="時鐘周期">時鐘周期數。?

2 TMS320C6000 DSP芯片的特點?

??? TMS320C6000系列DSP是基于TMS320C6000平臺的32位浮點DSP處理器[4]。它包含兩個子系列:用于定點計算的TMS320C62x系列和用于浮點計算的TMS320C67x系列。TMS320C6000系列CPU結構如圖2所示。時鐘頻率最高可達到250MHz。該系列DSP包含兩個通用的寄存器組" title="寄存器組">寄存器組A和B,每組有16個32位的寄存器。芯片內含8個運算功能單元:兩個乘法器(.M1和.M2);六個算術邏輯單元(.L1 .L2 .S1 .S2 .D1 .D2)。所有單元都能獨立并行操作。以TM320C6701為例,它的工作頻率最高為167MHz,最快速度可達8×167=1336MIPS。

?

?

??? 實際上,要實現這個速度存在很多瓶頸,主要有下面幾種限制:?

??? (1)功能模塊的限制? 8個功能模塊能夠執行的指令不盡相同。在實際程序中,由于程序流程的限制,指令的位置不能隨便調換,因此不可能在每一個時鐘周期都讓8個模塊同時工作。程序優化的主要手段就是要提高指令的并行程度,即平均每一周期內同時執行的指令數。?

??? (2)交叉路徑(Cross Path)的限制? 每一個功能模塊都只能對其所屬的寄存器組中的寄存器進行直接操作。例如.L1只能將結果直接寫入寄存器組A。如果要對另一個寄存器組執行讀或寫操作,需要用到“交叉路徑”,而整個CPU中只有兩條交叉路徑。也就是說,一個周期內至多能同時容納兩個相反方向的交叉讀寫。?

??? (3)多周期指令的限制? LD命令的功能是將數據從存儲器讀到寄存器中,由.D模塊執行。但執行LD命令后必須等待4個周期才能得到需要的數據。類似這樣的需要多個周期才能完成的命令(例如跳轉指令B)都成為提高指令并行處理程度的障礙。?

??? (4)對長數據操作的限制? C6000指令集只能以8比特、16比特、32比特或者40比特為單位對數據進行操作。?

3 VA在DSP上的優化實現?

??? ACS操作是整個VA算法中運算量最大的部分。在通常的程序設計中,使用一種對稱的蝶形運算實現ACS操作,每次可以完成兩個ACS操作[5]。因此優化的核心任務就是減少每個蝶形運算所消耗的運算周期數。?

??? 蝶形運算的原理請參見圖3。對前一級的兩個相鄰狀態2i和2i+1,一共有四條支路。計算出四條支路與接收信號的歐氏距離,與兩個前一級狀態2i和2i+1中存儲的以前路徑的度量值相加得到四條路徑A1、A2、B1、B2的度量值。然后在對應的兩個當前狀態i和i+32下兩兩比較,每個當前狀態都留下度量值較小的一條路徑(幸存路徑),同時將當前狀態的度量值以及與幸存路徑對應的輸入比特存入相應的位置,準備下一級計算。?

?

?

??? 每個蝶形運算包括:三次加載" title="加載">加載數據操作(load),因為可以證明一個蝶形中的四條支路的度量具有相同的絕對值,所以每次只需要加載一個由BMU預先計算的結果;四次加法操作;兩次比較操作;比較之后的四次存儲操作。其中,四次加法操作可以在一個周期內同時完成;狀態i和i+32的幸存路徑則是獨立計算和存儲的。

??? 針對前面提到的提高并行處理程度的幾個障礙,可以用以下的方法分別加以解決:?

??? (1)解決功能模塊的限制? 可以用不同的命令相互替代。例如賦值操作MV只能用.L、.S和.D功能模塊完成,如果這些模塊都被其它的并行指令占用,可以用乘1的方法實現賦值,而乘法指令MPY是用.M單元實現的。類似地,也可以用加零或減零的指令代替MV指令。?

??? (2)解決交叉路徑的限制?? 需要依靠寄存器的分配和倒換,讓同一指令涉及到的寄存器盡量處在同一個寄存器組中,減少需要用到交叉路徑的機會。?

??? (3)解決多周期指令的限制? 加載數據的結果需要在4個周期以后才能得到。為了有效地利用等待的這段時間,在程序設計中把加載數據的指令放在前面的蝶形運算中執行,當進入本次蝶形運算時,就能立即使用加載的新數據。同樣,本次蝶形運算也要執行為下一個蝶形運算加載數據的指令。B指令(跳轉指令)的問題可以用類似的方法來處理。?

??? (4)解決對長數據操作的限制?? 在(2,1,7)卷積碼的VA譯碼器中,幸存路徑存儲在PM里。每一個輸入幀對應64個可能的狀態,會產生64比特的幸存路徑比較結果。但TMS320C6701不能直接對64比特長的數據進行讀寫操作,所以把PM分成兩個相同的32位數組PM0和PM1。前者用來存儲狀態0-31對應的幸存路徑;后者存儲狀態32-64對應的幸存路徑。PM0[i]和PM1[i]合在一起表示第i級網格的所有64條幸存路徑。當編碼約束長度更大時,也可以用同樣的辦法來分開存儲。例如(2,1,9)卷積碼的PM就可以分成8個32位的數組來存儲256個狀態的信息。回溯操作的時候,先確定路徑經過哪一個狀態,就可以從相應的某一個數組中讀出路徑值,只需要一次LD(加載)操作。?

??? 圖4給出了優化后的蝶形運算流程圖。每次循環需要4個時鐘周期,分別為圖中的E0-E3,對應著一次蝶形運算。除了一些關鍵的加比選運算之外,還需要一些輔助運算來實現循環以及寄存器的相互拷貝,平均下來每個時鐘周期可并行執行6條指令。?

?

?

4 優化的效果和推廣?

??? 譯碼器輸出一幀所需要的時鐘周期數為:?

??? TBMC+n·TButter+Ttb?

其中,TBMC、TButter和Ttb分別表示支路度量計算、蝶形運算以及回溯操作所需要的周期數,n表示每一輸出幀對應的蝶形運算的次數。?

??? 對于(2,1,7)卷積碼譯碼器,輸出一個幀需要32次蝶形運算,因此n=32。在回溯幸存路徑的時候,有兩種方案輸出譯碼結果:一種是輸入一幀碼序列,就輸出一幀譯碼結果;另一種是輸入N幀碼序列,然后輸出N幀譯碼結果。后一種方法輸出每一幀所需要的周期數可以減小為Ttb/N,但同時延時也增大為(N-1)TButter/TCPS,其中TCPS是DSP每秒運行的時鐘周期數,等于DSP的工作頻率。?

??? 如果使用TI公司定義的線性匯編語言[6]用圖1所示的結構來實現(2,1,7)譯碼,經過CCS2軟件編譯并自動進行-o1級優化以后,每譯出一個比特,大約需要1000個時鐘周期(TButter=22,n=32),時鐘為167MHz時譯碼速度不超過160kbps。?

??? 在經過本文所述方法優化以后的程序中,仍然是(2,1,7)卷積碼,TBMC=20,TButter=4,n=32;Ttb=700,選擇N=16,因此譯出一個比特的平均時間是128+20+(700/16)=192個時鐘周期。以TMS320C6701為例,它工作在167MHz,該程序的譯碼速率能達到大約870kbps,而延時僅為18μs。顯然,本文中的優化程序性能遠遠高于自動優化的效果。

??? 對于不同編碼約束長度的卷積碼,例如WCDMA中用到的(2,1,9)碼,蝶形運算單元的流程與(2,1,7)碼是完全相同的。不同的地方在于每一級的狀態數增加到了256個。因此只需要對程序中的存儲和回溯路徑的指令做一些改動就可以使用。?

??? 對于不同的DSP系統,因為在指令集、總線、寄存器等諸多方面存在差異,針對C6000系列的優化的匯編程序不能直接應用。但譯碼程序優化中遇到的問題也是大致相同的,優化的重點任務都是設法減少ACS的運算量,因此本文提出的程序流程的基本思想以及一些解決問題的技巧都可以繼續加以運用。?

參考文獻?

1 G. David Forney, Jr. The Viterbi algorithm. Proc.IEEE,?Mar.1973;61?

2 Peter Sweeney. Error Control Coding-From Theory to?Practice. John Wiley & Sons LTD, Chapter 2, 2002?

3 G.C. Ahlquist, M. Rice, and B. Nelson. Error Control??Coding in Software Radios: An FPGA Approach. IEEE?Personal Communications, Mag., Aug. 1999:35~39?

4 TMS320C62x/C67x CPU and Instruction Set Reference?Guide. Texas Instruments Corporation, 1998?

5 Ahmad Khan, S., Saqib, M.M., Ahmed, S. Parallel??Viterbi Algorithm for a VLIW DSP. Acoustics, Speech,and?Signal Processing, 2000. ICASSP’00 Proceedings 2000.?IEEE International Conference on, 2000;6?

6 TMS320C6000 Optimizing C Complier User’s Guide.Texas Instruments Corporation, 1999

本站內容除特別聲明的原創文章之外,轉載內容只為傳遞更多信息,并不代表本網站贊同其觀點。轉載的所有的文章、圖片、音/視頻文件等資料的版權歸版權所有權人所有。本站采用的非本站原創文章及圖片等內容無法一一聯系確認版權者。如涉及作品內容、版權和其它問題,請及時通過電子郵件或電話通知我們,以便迅速采取適當措施,避免給雙方造成不必要的經濟損失。聯系電話:010-82306118;郵箱:aet@chinaaet.com。
热re99久久精品国产66热_欧美小视频在线观看_日韩成人激情影院_庆余年2免费日韩剧观看大牛_91久久久久久国产精品_国产原创欧美精品_美女999久久久精品视频_欧美大成色www永久网站婷_国产色婷婷国产综合在线理论片a_国产精品电影在线观看_日韩精品视频在线观看网址_97在线观看免费_性欧美亚洲xxxx乳在线观看_久久精品美女视频网站_777国产偷窥盗摄精品视频_在线日韩第一页
  • <strike id="ygamy"></strike>
  • 
    
      • <del id="ygamy"></del>
        <tfoot id="ygamy"></tfoot>
          <strike id="ygamy"></strike>
          国内精品伊人久久久久av影院| 久久久久国产一区二区三区四区| 国产精品免费观看在线| 久久久久久久一区| 国产精品电影观看| 亚洲欧洲日本一区二区三区| 日韩亚洲一区在线播放| 一区二区三区免费看| 亚洲影视在线播放| 久久蜜桃av一区精品变态类天堂| 欧美日韩精品是欧美日韩精品| 欧美美女福利视频| 91久久夜色精品国产网站| 欧美手机在线视频| 亚洲激情国产精品| 亚洲私人影院在线观看| 蘑菇福利视频一区播放| 一区二区三区免费在线观看| 女生裸体视频一区二区三区| 久久一区国产| 国产欧美一区二区精品性色| 一区二区三区四区精品| 欧美极品欧美精品欧美视频| 欧美四级剧情无删版影片| 午夜亚洲福利| 欧美电影免费观看高清完整版| 一区二区三区国产精华| 日韩午夜视频在线观看| 亚洲淫片在线视频| 一区二区在线不卡| 国产精品国产精品国产专区不蜜| 亚洲大片一区二区三区| 性色一区二区| 国产精品美女久久| 一本色道久久精品| 欧美第一黄色网| 欧美综合第一页| 亚洲免费视频中文字幕| 亚洲中字黄色| 黄色成人片子| 欧美伦理视频网站| 欧美理论电影网| 国产欧美一区二区三区视频| 欧美在线一二三四区| 久久gogo国模裸体人体| 欧美色欧美亚洲另类二区| 欧美日韩18| 亚洲国产精品精华液2区45| 亚洲精品资源美女情侣酒店| 国产精品一二三四| 亚洲人成精品久久久久| 欧美国产成人精品| 午夜精品一区二区三区在线视| 国产综合色在线| 久久精品欧美日韩精品| 99精品视频免费全部在线| 亚洲二区免费| 欧美精品日本| 国产精品久久夜| 国产日本欧美在线观看| 国产精品永久在线| 欧美日韩国产一区二区三区| 欧美午夜精品久久久久久超碰| 在线日韩av片| 欧美伊人精品成人久久综合97| 国产精品日韩电影| 国产精品一区二区三区观看| 久久国产一区二区三区| 一区二区高清视频| 欧美一区二区在线播放| 宅男噜噜噜66一区二区66| 欧美成人在线免费观看| 欧美激情中文字幕一区二区| 巨乳诱惑日韩免费av| 欧美成人精品一区二区三区| 欧美日韩中文| 亚洲欧美福利一区二区| 久久久精品国产99久久精品芒果| 国产亚洲精品久久久久久| 国内精品久久久久久久影视麻豆| 99re国产精品| 亚洲国产精品精华液2区45| 免费成人性网站| 国产亚洲精品久久飘花| 久久免费一区| 欧美搞黄网站| 午夜在线电影亚洲一区| 亚洲淫片在线视频| 欧美成在线观看| 欧美日韩一区二区三区免费| 欧美日韩在线不卡| 欧美一区二区私人影院日本| 正在播放亚洲一区| 免费在线视频一区| 亚洲性色视频| 亚洲免费观看在线视频| 亚洲视频中文| 狠狠色丁香婷婷综合久久片| 国内伊人久久久久久网站视频| 欧美日韩国产经典色站一区二区三区| 日韩亚洲综合在线| 欧美一级专区免费大片| 欧美日韩伦理在线| 欧美午夜精品理论片a级大开眼界| 日韩午夜激情电影| 久久久久久一区二区三区| 久久精品99国产精品日本| 欧美xart系列高清| 国产精品久久久| 亚洲精品四区| 欧美四级在线观看| 精品不卡视频| 国产毛片精品国产一区二区三区| 午夜欧美不卡精品aaaaa| 欧美日韩亚洲综合| 欧美人与禽猛交乱配视频| 国产精品日日做人人爱| 亚洲国产精品一区制服丝袜| 亚洲线精品一区二区三区八戒| 欧美高清自拍一区| 亚洲欧洲精品一区二区精品久久久| 国产精品久久久久影院亚瑟| 国产精品一区在线观看你懂的| 国产精品成人一区二区| 欧美日一区二区三区在线观看国产免| 99精品黄色片免费大全| 久久精品主播| 国产亚洲欧美一级| 国语精品中文字幕| 国产农村妇女毛片精品久久麻豆| 一本色道久久综合亚洲精品高清| 欧美剧在线观看| 亚洲国产婷婷| 亚洲视频在线二区| 国产精品老女人精品视频| 欧美日韩国产经典色站一区二区三区| 亚洲永久网站| 99riav国产精品| 亚洲精品视频一区| 在线观看欧美日韩| 夜夜嗨av一区二区三区中文字幕| 亚洲免费小视频| 久久久久.com| 欧美亚洲一区三区| 亚洲新中文字幕| 国产亚洲精品v| 一本在线高清不卡dvd| 亚洲一区二区免费视频| 先锋a资源在线看亚洲| 精品1区2区| 亚洲美女性视频| 亚洲国产精品专区久久| 一区二区不卡在线视频 午夜欧美不卡在| 亚洲高清色综合| 麻豆成人小视频| 国产精品男人爽免费视频1| 久久久久青草大香线综合精品| 国产亚洲成av人在线观看导航| 亚洲国产精品黑人久久久| 欧美在线精品一区| 欧美人成在线视频| 今天的高清视频免费播放成人| 欧美系列电影免费观看| 欧美精品在欧美一区二区少妇| 国产精品国产三级国产专播精品人| 欧美午夜剧场| 永久免费视频成人| 久久不射电影网| 亚洲欧美日韩在线| 欧美日韩亚洲综合在线| 一区二区三区在线视频免费观看| 国产亚洲精品美女| 99国产精品私拍| 欧美日韩成人精品| 久久精品国产99精品国产亚洲性色| 久久影视三级福利片| 国产日韩精品一区| 黑人巨大精品欧美黑白配亚洲| 国内精品视频在线播放| 欧美日韩和欧美的一区二区| 欧美日韩国产精品一区| 久久综合久久88| 国产一区二区你懂的| 一区二区不卡在线视频 午夜欧美不卡在| 久久精品国产亚洲一区二区三区| 国产日韩欧美不卡| 在线观看av不卡| 亚洲字幕一区二区| 国产日产欧美精品| 亚洲激情校园春色| 久久网站免费| 在线观看不卡| 亚洲欧美日韩精品久久| 亚洲经典自拍| 欧美区日韩区| 亚洲香蕉视频| 国产一区二区剧情av在线| 韩国精品主播一区二区在线观看| 欧美日韩情趣电影| 久久久久国产一区二区三区| 国产亚洲福利社区一区| 99精品国产高清一区二区| 一级日韩一区在线观看| 91久久在线观看| 亚洲色在线视频| 欧美在线视频播放| 欧美另类专区| 久久久久久国产精品mv| 玉米视频成人免费看| 妖精视频成人观看www| 久久久久久网站| 午夜精品国产精品大乳美女| 久久精品一区蜜桃臀影院| 黄色成人免费网站| 欧美激情欧美激情在线五月| 亚洲自拍都市欧美小说| 国产精品久久久亚洲一区| 国产精品麻豆欧美日韩ww| 久久九九久久九九| 国产精品日日摸夜夜摸av| 欧美精品在线免费观看| 久久精品国产亚洲高清剧情介绍| 久久综合狠狠综合久久激情| 亚洲一区影音先锋| 国产精品一区二区三区久久久| 欧美经典一区二区| 亚洲精品在线观看免费| 国产精品亚洲综合| 欧美日韩综合在线免费观看| 欧美日韩国产另类不卡| 亚洲综合色丁香婷婷六月图片| 国产精品久久久久婷婷| 性娇小13――14欧美| 国产精品区一区二区三| 亚洲砖区区免费| 亚洲欧美日韩天堂| 国产一区成人| 一本色道久久加勒比精品| 欧美午夜三级| 麻豆免费精品视频| 欧美日韩一区在线| 久久久精品2019中文字幕神马| 亚洲电影一级黄| 麻豆成人在线观看| 亚洲欧洲一区二区三区在线观看| 国产日韩欧美中文在线播放| 国产精品第一区| 国内久久精品| 欧美日韩1区2区| 小黄鸭精品密入口导航| 国产精品久久久久高潮| 国产精品video| 欧美日韩国内自拍| 亚洲主播在线| 欧美日韩亚洲一区二区三区在线观看| 99成人在线| 国产欧美另类| 欧美在线播放视频| 一区二区三区精品| 亚洲精品综合精品自拍| 亚洲国产精品t66y| 亚洲色图自拍| 国产免费成人在线视频| 亚洲黄色性网站| 久久久精品欧美丰满| 亚洲制服丝袜在线| 在线视频中文亚洲| 国产精品久久久久久久第一福利| 国产精品欧美一区二区三区奶水| 久久成人免费视频| 久久国产一区二区三区| 国产精品夜色7777狼人| 国内成人在线| 黑人巨大精品欧美一区二区小视频| 欧美日韩精品伦理作品在线免费观看| 欧美日韩一区在线播放| 亚洲综合久久久久| 久久只精品国产| 国产精品视频福利| 亚洲图色在线| 久久综合色天天久久综合图片| 欧美男人的天堂| 99国产精品视频免费观看| 一本久道久久综合中文字幕| 国产精品高潮呻吟视频| 老司机精品视频一区二区三区| 一区二区三区在线免费播放| 欧美三级在线播放| 国产日产欧产精品推荐色| 国产欧美1区2区3区| 欧美激情视频在线免费观看 欧美视频免费一| 国产一区香蕉久久| 亚洲电影在线播放| 91久久精品国产91性色| 欧美人与性禽动交情品| 欧美日韩欧美一区二区| 欧美成人官网二区| 亚洲高清一区二| 欧美精品亚洲| 国内精品一区二区| 欧美岛国激情| 国产情人节一区| 欧美交受高潮1| 欧美精品二区| 99精品黄色片免费大全| 羞羞漫画18久久大片| 亚洲国产高潮在线观看| 伊人色综合久久天天| 日韩一区二区免费看| 最新精品在线| 亚洲自拍都市欧美小说| 红桃av永久久久| 国产日韩三区| 狠狠做深爱婷婷久久综合一区| 狠狠综合久久av一区二区老牛| 亚洲国产cao| 欧美在线精品一区| 亚洲国产一区二区精品专区| 免费观看久久久4p| 欧美在线观看www| 欧美日韩国产欧| 久久激情婷婷| 亚洲第一页自拍| 欧美区一区二| 国内精品久久久久久久果冻传媒| 国产精品福利网站| 国产精品人成在线观看免费| 在线观看视频一区二区欧美日韩|