摘 要: title="TMS320C6416">TMS320C6416的硬件結(jié)構(gòu),介紹內(nèi)嵌的兩個(gè)譯碼協(xié)處理器,給出了其在WCDMA基站上行鏈路中的一個(gè)硬件應(yīng)用方案。
關(guān)鍵詞: 數(shù)字信號(hào)處理器 3G基站 Vterbi譯碼協(xié)處理器 Turbo譯碼協(xié)處理器
在第三代移動(dòng)通信系統(tǒng)WCDMA和CDMA2000中,為了能提供大容量和高質(zhì)量的語(yǔ)音、可變速率數(shù)據(jù)、圖像等業(yè)務(wù),無(wú)線(xiàn)空中接口的傳輸速率在室內(nèi)環(huán)境最高要達(dá)到2Mbit/s,在室外移動(dòng)環(huán)境最高要達(dá)到384kbit/s。因此需要無(wú)線(xiàn)基站提供強(qiáng)大的處理能力。TI公司新推出的TMS320C6416是目前處理能力最強(qiáng)大的處理器(DSP),它的主頻高達(dá)600MHz,專(zhuān)門(mén)用于設(shè)計(jì)高性能的3G無(wú)線(xiàn)基站。本文僅就TMS320C6416的硬件結(jié)構(gòu)及其在3G基站上行鏈路基帶處理中的應(yīng)用做一介紹。
1 TMS320C6416硬件結(jié)構(gòu)
TMS320C6416的硬件結(jié)構(gòu)如圖1所示。內(nèi)部包括一個(gè)DSP內(nèi)核、一級(jí)數(shù)據(jù)Cache 、一級(jí)程序Cache、二級(jí)存儲(chǔ)器、增強(qiáng)型DMA控制器 (EDMA)、Vterbi譯碼協(xié)處理器(VCP)、Turbo譯碼協(xié)處理器(TCP);對(duì)外接口包括兩個(gè)外部存儲(chǔ)器接口(EMIFA和EMIFB)、主機(jī)接口(HPI)、PCI接口、UTOPIA接口、多通道緩沖串口(McBSP)。
DSP內(nèi)核采用超長(zhǎng)指令字(VLIW)體系結(jié)構(gòu),有8個(gè)功能單元、64個(gè)32bit通用寄存器。 一個(gè)時(shí)鐘周期同時(shí)執(zhí)行8條指令,運(yùn)算能力可達(dá)到4800MIPS(每秒百萬(wàn)條指令),支持8/16/32/64bit的數(shù)據(jù)類(lèi)型。兩個(gè)乘法累加單元一個(gè)時(shí)鐘周期可同時(shí)執(zhí)行4組16×16bit乘法或8組8×8bit乘法,每個(gè)功能單元在硬件上都增加了附加功能,增強(qiáng)了指令集的正交性。除此之外還增加了一些指令用以削減代碼長(zhǎng)度和增加寄存器的靈活性。TMS320C6416以后版本的主頻可升級(jí)到1.1GHz。
為使數(shù)據(jù)能保持對(duì)超快速DSP內(nèi)核的供給,TMS320C6416采用了兩級(jí)超高速緩存器,即16KByte的一級(jí)數(shù)據(jù)Cache、16KByte的一級(jí)程序Cache和1024KByte的數(shù)據(jù)和程序統(tǒng)一內(nèi)存。為了達(dá)到更大的擴(kuò)展,1024KByte內(nèi)存中的256KByte存儲(chǔ)空間可設(shè)置用作二級(jí)Cache。
在內(nèi)存和外設(shè)接口(EMIFA接口、EMIFB接口、HPI或PCI接口、McBSP串口、UTOPIA接口等)之間所有的數(shù)據(jù)傳輸都由EDMA來(lái)處理。TMS320C6416的EDMA共有64個(gè)通道,每個(gè)通道的優(yōu)先級(jí)都可編程設(shè)置,每個(gè)通道都對(duì)應(yīng)一個(gè)專(zhuān)用同步觸發(fā)事件,使得EDMA可以被外設(shè)來(lái)的中斷、外部硬件中斷、其它EDMA傳輸完成的中斷等事件觸發(fā),開(kāi)始進(jìn)行數(shù)據(jù)的搬移。EDMA完成一個(gè)完整的數(shù)據(jù)搬移后,可從通道傳輸參數(shù)記錄指定的鏈接地址處重新加載該通道傳輸參數(shù)。EDMA傳輸完成后,EDMA控制器可以產(chǎn)生一個(gè)到DSP內(nèi)核的中斷,也可以產(chǎn)生一個(gè)中斷觸發(fā)另一個(gè)EDMA通道開(kāi)始傳輸。
TMS320C6416的存儲(chǔ)器接口提供了到SDRAM、SBSRAM、異步器件如SRAM/ROM等存儲(chǔ)器的無(wú)縫接口,也可連接到外部I/O器件。存儲(chǔ)器接口有EMIFA和EMIFB,其中EMIFA接口有64bit寬的數(shù)據(jù)總線(xiàn),可連接64/32/16/8bit的器件;EMIFB接口有16bit寬的數(shù)據(jù)總線(xiàn),可連接16/8bit的器件。一般情況下,EMIFA接口連接外部存儲(chǔ)器(如SDRAM),EMIFB接口連接外部I/O器件(如FPGA)。
HPI是一個(gè)16/32bit寬的異步并行接口,外部主機(jī)通過(guò)它可直接訪(fǎng)問(wèn)DSP的地址空間,也可向DSP加載程序。HPI接口支持16bit寬的數(shù)據(jù)總線(xiàn)和32bit寬的數(shù)據(jù)總線(xiàn)兩種模式,兩者均工作在異步從方式。
在TMS320C6416中,增加了一個(gè)PCI接口,使得DSP很容易通過(guò)PCI接口無(wú)縫連接到一個(gè)具有PCI功能的外部主CPU上。PCI接口符合PCI2.2規(guī)范;具有PCI 主/從功能;支持32bit寬的地址和數(shù)據(jù)復(fù)用總線(xiàn);工作頻率最高為33MHz;外部主機(jī)可通過(guò)PCI接口訪(fǎng)問(wèn)DSP內(nèi)部所有地址空間,向DSP加載程序;DSP也可通過(guò)該接口訪(fǎng)問(wèn)外部PCI存儲(chǔ)空間。PCI接口和HPI接口共用相同的管腳,因此實(shí)際設(shè)計(jì)時(shí)兩者只能選一個(gè)。
在TMS320C6416中,還增加了一個(gè)UTOPIA 接口,它支持UTOPIA II規(guī)范,發(fā)送數(shù)據(jù)總線(xiàn)和接收數(shù)據(jù)總線(xiàn)均為8bit寬,工作頻率最高可達(dá)50MHz。UTOPIA接口作為ATM控制器的從方,在ATM層器件和物理層器件之間提供了一個(gè)標(biāo)準(zhǔn)的硬件接口。由于TMS320C6416內(nèi)部沒(méi)有專(zhuān)用的硬件模塊處理ATM適應(yīng)層功能,因此ATM適應(yīng)層功能應(yīng)該由DSP軟件來(lái)實(shí)現(xiàn)。
另外,TMS320C6416還有三個(gè)多通道緩沖串口(McBSP),工作頻率最高可達(dá)100MHz。其中McBSP1串口和UTOPIA接口復(fù)用,McBSP2串口和PCI的EEPROM接口復(fù)用,使用時(shí)要注意。
由于TMS320C6416采用了新型芯片制造工藝,I/O電壓為3.3V,內(nèi)核電壓僅為1.2V。當(dāng)時(shí)鐘頻率為600MHz時(shí),DSP的最大功耗小于1.6W。
2 Viterbi譯碼協(xié)處理器VCP
在WCDMA系統(tǒng)中,語(yǔ)音和低速信令傳輸采用卷積碼。卷積碼譯碼方法有門(mén)限譯碼、硬判決Viterbi譯碼和軟判決Viterbi譯碼。TMS320C6416中的VCP可進(jìn)行硬判決Viterbi譯碼或軟判決Viterbi譯碼。
VCP的輸入為DSP軟件根據(jù)待譯碼數(shù)據(jù)計(jì)算得到的分支度量。若為硬判決,每個(gè)輸出符號(hào)用1bit表示;若為軟判決,每個(gè)輸出符號(hào)用16bit表示,VCP也計(jì)算Vterbi譯碼的質(zhì)量指示Yamamoto 比特。VCP的可編程參數(shù)包括:約束長(zhǎng)度K(5、6、7、8、9)、編碼速率r(1/2、1/3、1/4)、編碼器生成多項(xiàng)式、編碼塊長(zhǎng)度F、是否使用滑窗及滑窗參數(shù)(可靠程度R、收斂長(zhǎng)度C)、硬判決還是軟判決、計(jì)算狀態(tài)矩陣的初始條件、質(zhì)量指示Yamamoto比特門(mén)限等。
VCP的內(nèi)部結(jié)構(gòu)如圖2所示。其中EDMA接口包含譯碼器輸入數(shù)據(jù)FIFO和輸出數(shù)據(jù)FIFO;存儲(chǔ)單元包含存儲(chǔ)譯碼器內(nèi)部狀態(tài)矩陣和判決的回溯路徑;運(yùn)算單元根據(jù)輸入分支度量進(jìn)行加、比較、選擇運(yùn)算和回溯;VCPINT為VCP譯碼完成后到DSP 內(nèi)核的中斷;VCPXEVT觸發(fā)EDMA通道29,搬移VCP的可編程配置參數(shù)或待譯碼數(shù)據(jù)的分支度量到VCP內(nèi)部寄存器或內(nèi)部輸入FIF0;VCPREVT觸發(fā)EDMA通道28,從VCP輸出FIFO搬移譯碼結(jié)果到DSP內(nèi)部或外部存儲(chǔ)區(qū)。
DSP協(xié)同VCP進(jìn)行譯碼處理的過(guò)程如下:
(1)DSP初始化輸入緩沖區(qū)。DSP根據(jù)待譯碼數(shù)據(jù)預(yù)先計(jì)算其分支度量(分支度量的計(jì)算見(jiàn)參考文獻(xiàn)[5]),并寫(xiě)入指定的緩沖區(qū)。
(2)DSP分配輸出緩沖區(qū),準(zhǔn)備存儲(chǔ)譯碼結(jié)果。
(3)準(zhǔn)備VCP的寄存器配置參數(shù)。這些參數(shù)首先準(zhǔn)備好放在DSP的內(nèi)存或外存,當(dāng)VCP啟動(dòng)時(shí)由EDMA寫(xiě)入VCP內(nèi)部寄存器。
(4)設(shè)置EDMA參數(shù)。設(shè)置EDMA通道29參數(shù),由VCPXEVT觸發(fā),搬移VCP配置參數(shù)到VCP內(nèi)部寄存器,搬移待譯碼數(shù)據(jù)的分支度量到VCP內(nèi)部輸入FIFO;設(shè)置EDMA通道28參數(shù),由VCPREVT觸發(fā),從VCP輸出FIFO搬移VCP譯碼結(jié)果到DSP指定的輸出緩沖區(qū)。
(5)使能EDMA。使能EDMA通道28和29,使其可以響應(yīng)VCPXEVT和VCPREVT同步觸發(fā)事件。
(6)啟動(dòng)VCP。DSP寫(xiě)“開(kāi)始”命令到VCP內(nèi)部的命令寄存器(VCPEXE),這會(huì)使VCP生成VCPXEVT事件,觸發(fā)EDMA通道29,搬移配置參數(shù)和待譯碼數(shù)據(jù)的分支度量到VCP。
(7)處理VCP譯碼結(jié)果。VCP譯碼完成后會(huì)觸發(fā)EDMA,由EMDA通道28搬移譯碼結(jié)果到DSP指定的輸出緩沖區(qū),還會(huì)產(chǎn)生到DSP內(nèi)核的中斷。DSP應(yīng)響應(yīng)這個(gè)中斷,對(duì)譯碼結(jié)果進(jìn)行處理。
VCP的工作頻率為150MHz,最大可處理558路7.95K ARM語(yǔ)音信道。對(duì)于3G ARM 12.2K語(yǔ)音信道,約束長(zhǎng)度為9,編碼速率為1/3,編碼數(shù)據(jù)塊長(zhǎng)度為81,當(dāng)信噪比SNR為1dB時(shí)譯碼結(jié)果的誤碼率BER為1.00E-02,當(dāng)信噪比SNR為3.25dB時(shí)譯碼結(jié)果的誤碼率BER為1.00E-05。
3 Turbo譯碼協(xié)處理器TCP
在WCDMA、CDMA2000系統(tǒng)中,數(shù)據(jù)傳輸采用Turbo碼。Turbo譯碼算法包括軟輸出Viterbi算法(SOVA)、最大后驗(yàn)概率算法(MAP)。TMS320C6416中的TCP中采用的是MAX*-LOG-MAP譯碼算法。
TCP執(zhí)行的譯碼算法是一種迭代MAP算法,原理框圖如圖3所示。第一個(gè)MAP譯碼器接收信息比特R0和校驗(yàn)比特R1,產(chǎn)生的軟輸出A1e進(jìn)行交織作為對(duì)先驗(yàn)概率的改進(jìn)估計(jì),輸入到第二個(gè)MAP譯碼器中。第二個(gè)MAP譯碼器還同時(shí)輸入接收信息序列的交織序列/R0和校驗(yàn)比特序列R2,譯碼產(chǎn)生的軟輸出A2e進(jìn)行解交織并作為第一個(gè)MAP譯碼器的先驗(yàn)概率,這樣反復(fù)進(jìn)行,成為迭代譯碼。經(jīng)過(guò)多次迭代后,對(duì)第二個(gè)MAP譯碼器的輸出結(jié)果A2進(jìn)行解交織和硬判決,作為T(mén)urbo譯碼器的譯碼結(jié)果。
TCP有兩種譯碼模式,當(dāng)編碼塊長(zhǎng)度小于等于5114時(shí),TCP完成MAP算法和整個(gè)迭代過(guò)程,直接輸出譯碼硬判決結(jié)果;當(dāng)編碼塊長(zhǎng)度大于5114(僅對(duì)CDMA2000而言)時(shí),TCP僅完成MAP算法,多次迭代、交織、解交織和硬判決由DSP軟件來(lái)完成。對(duì)WCDMA系統(tǒng)而言,編碼塊長(zhǎng)度小于等于5114,此時(shí)TCP完成整個(gè)譯碼過(guò)程。
待譯碼數(shù)據(jù)的系統(tǒng)信息位和校驗(yàn)位必須由DSP進(jìn)行8比特量化處理。8比特中第一位為符號(hào)位,接著四位是整數(shù)位,最后三位為小數(shù)位(具體計(jì)算見(jiàn)參考文獻(xiàn)[2])。量化后才能輸入到TCP進(jìn)行譯碼。TCP譯碼后每個(gè)輸出符號(hào)用1bit表示。TCP的可編程配置參數(shù)包括:編碼速率r(1/3、1/4)、編碼塊長(zhǎng)度F、譯碼模式選擇、最大迭代次數(shù)、停止迭代的信噪比(SNR)門(mén)限等。DSP輸入到TCP的數(shù)據(jù)還包括Turbo碼交織表。
TCP的結(jié)構(gòu)框圖和VCP的結(jié)構(gòu)框圖類(lèi)似,如圖4所示。輸入數(shù)據(jù)(待譯碼數(shù)據(jù)、配置參數(shù)、交織表)都由EDMA通道31輸入到TCP內(nèi),EDMA通道31由TCP發(fā)出的同步事件TCPXEVT觸發(fā);譯碼結(jié)果由EDMA通道30從TCP內(nèi)搬移到DSP指定的存儲(chǔ)區(qū),EDMA通道30由TCP發(fā)出的同步事件TCPREVT觸發(fā);TCP譯碼完成后也生成一個(gè)到DSP 內(nèi)核的中斷TCPINT。
DSP協(xié)同TCP進(jìn)行譯碼處理的過(guò)程和VCP類(lèi)似,具體過(guò)程如下:
(1)DSP初始化輸入緩沖區(qū)。DSP對(duì)待譯碼數(shù)據(jù)進(jìn)行8bit量化并寫(xiě)入指定緩沖區(qū),Turbo碼交織表也寫(xiě)入指定緩沖區(qū)。
(2)DSP分配輸出緩沖區(qū),準(zhǔn)備存儲(chǔ)譯碼結(jié)果。
(3)準(zhǔn)備TCP的寄存器配置參數(shù),TCP啟動(dòng)后由EDMA寫(xiě)入TCP內(nèi)部寄存器。
(4)設(shè)置EDMA參數(shù)。設(shè)置EDMA通道30、31參數(shù),由TCP的兩個(gè)同步事件觸發(fā),控制EDMA向TCP輸入數(shù)據(jù)和從TCP輸出譯碼結(jié)果。
(5)使能EDMA。使能EDMA通道30和31,使其可以響應(yīng)TCPXEVT和TCPREVT同步觸發(fā)事件。
(6)啟動(dòng)TCP。DSP寫(xiě)“開(kāi)始”命令到TCP內(nèi)部命令寄存器,這會(huì)使TCP生成TCPXEVT事件,觸發(fā)EDMA通道31,搬移待譯碼數(shù)據(jù)、交織表、寄存器配置參數(shù)到TCP。
(7)處理TCP譯碼結(jié)果。TCP譯碼完成后會(huì)觸發(fā)EDMA通道30輸出譯碼結(jié)果,還會(huì)產(chǎn)生到DSP內(nèi)核的中斷。DSP響應(yīng)這個(gè)中斷,對(duì)譯碼結(jié)果進(jìn)行處理。
TCP的工作頻率為300MHz,最大可處理29路384K數(shù)據(jù)信道;對(duì)編碼速率1/3、編碼塊長(zhǎng)度為3840的數(shù)據(jù)幀進(jìn)行6次迭代譯碼所需時(shí)間為0.3ms。對(duì)于編碼速率1/3、 編碼塊長(zhǎng)度為1400的數(shù)據(jù)幀進(jìn)行8次迭代譯碼,當(dāng)信噪比SNR為0.8dB時(shí)譯碼結(jié)果的誤碼率BER為1.00E-04,當(dāng)信噪比SNR為1.6dB時(shí)譯碼結(jié)果的誤碼率BER為5.00E-08。
4 TMS320C6416在 WCDMA基站上行鏈路基帶處理中的應(yīng)用
TMS320C6416在WCDMA基站上行鏈路基帶處理中的應(yīng)用方案如圖5所示。在該方案中,經(jīng)過(guò)射頻接收、A/D變換、中頻處理后的數(shù)據(jù)送到FPGA/ASIC,FPGA/ASIC完成碼片速率級(jí)處理如RAKE接收等;然后送到DSP,DSP(TMS320C6416)主要進(jìn)行符號(hào)速率級(jí)算法處理,如第二次解交織、物理信道合并、傳輸信道解復(fù)用、解速率匹配、合并無(wú)線(xiàn)幀、第一次解交織、Viterbi譯碼/Turbo譯碼、去CRC校驗(yàn)比特、FP幀組成等。外部主CPU完成信令面協(xié)議的處理,同時(shí)控制整個(gè)單板。
DSP的16bit寬的 EMIFB異步接口連接到FPGA/ASIC,用來(lái)控制FPGA/ASIC并讀取解調(diào)后的數(shù)據(jù);DSP的HPI接口連接到外部主CPU,外部主CPU通過(guò)HPI加載DSP程序,配置DSP所處理的信道參數(shù),向DSP下發(fā)信道的建立、刪除等命令;DSP的64bit 寬的EMIFA接口連接到一個(gè)外部SDRAM,用來(lái)緩存處理過(guò)程中的中間數(shù)據(jù);UTOPIA接口連接到接口電路,把FP幀轉(zhuǎn)換成ATM信元進(jìn)而送到RNC進(jìn)行上層業(yè)務(wù)處理。
在WCDMA系統(tǒng)中,移動(dòng)終端發(fā)出的信號(hào)通過(guò)空中接口到達(dá)無(wú)線(xiàn)基站。在基站中經(jīng)過(guò)射頻接收、中頻處理、RAKE接收,然后進(jìn)行信道解復(fù)用、解交織和Viterbi/Turbo譯碼處理。在沒(méi)有采用TMS320C6416的系統(tǒng)中,兩種譯碼可以由DSP軟件來(lái)實(shí)現(xiàn),但這會(huì)大大降低DSP處理其它業(yè)務(wù)的能力;譯碼也可以由外部FPGA/ASIC硬件實(shí)現(xiàn),但這會(huì)增加單板器件的密度和功耗。TMS320C6416除了具有比一般DSP更強(qiáng)大的處理能力外,內(nèi)部還集成了一個(gè)Viterbi譯碼協(xié)處理器和Turbo譯碼協(xié)處理器,提供的符號(hào)速率處理性能幾乎是TMS320C6203的十幾倍,因此TMS320C6416十分適合3G基站基帶符號(hào)速率級(jí)處理。
TMS320C6203現(xiàn)已用在大多數(shù)無(wú)線(xiàn)設(shè)備制造商的3G基站設(shè)計(jì)中。為了在低功耗和低成本下具有更大的通道密度,這些廠商需重新設(shè)計(jì)他們的設(shè)備。而TMS320C6416目標(biāo)代碼與TMS320C6203兼容,軟件移植方便,再加上TMS320C6416具有的強(qiáng)大處理能力和低功耗特性,目前已有很多無(wú)線(xiàn)設(shè)備制造商打算在3G基站設(shè)計(jì)中采用TMS320C6416。
參考文獻(xiàn)
1 TMS320C6000 Peripherals Reference Guide.Texas Instruments Incorporated, 2001
2 Using TMS320C6416 Coprocessors: Turbo Coprocessor.Texas Instruments Incorporated, 2001
3 Using TMS320C6416 Coprocessors:Viterbi Coprocessor.Texas Instruments Incorporated, 2001
4 Turbo Decoder Coprocessor User’s Guide.Texas Instruments Incorporated,2001
5 Viterbi Decoder Coprocessor User’s Guide.Texas Instruments Incorporated, 2001
6 Multiplexing and Channel Coding (FDD).3G TS 25 212 V3.10, 3GPP, 1999