新一代數(shù)字信號(hào)處理器TMS320C55X
摘要:TMS320C55X是美國(guó)德州儀器公司生產(chǎn)的一種低功耗高性能數(shù)字信號(hào)處理器,它的每個(gè)MIPS功耗只需0.05mW,因而可使網(wǎng)絡(luò)音頻播放器在兩節(jié)AA電池作電源時(shí)工作200小時(shí)。文中介紹了TMS320C55X的主要特性,并詳細(xì)分析了TMS320C55X的CPU結(jié)構(gòu)。
本文引用地址:http://m.butianyuan.cn/article/242284.htm關(guān)鍵詞:數(shù)字信號(hào)處理器 低功耗 CPU結(jié)構(gòu) TMS320C55X
1 概述
TMS320C55X是德州儀器公司(TI)數(shù)字信號(hào)處理器產(chǎn)品TMS320CC5000系列中最新的一種。它極大地降低了功耗,每個(gè)MIPS只需要0.05mW,與目前市場(chǎng)上的主流產(chǎn)品TMS320C54X相比,TMS320C55X的功耗降低了6倍。由于TMS320C5000系列具有可編程、低功耗特性,全世界有70%的移動(dòng)電話使用了這個(gè)系列的元件,而TMS320C55X則通過其強(qiáng)大的電源管理功能使省電特性進(jìn)一步增強(qiáng)。例如,TMS320C55X可使網(wǎng)絡(luò)音頻播放器用兩節(jié)AA電池工作200個(gè)小時(shí),是目前播放器的10倍;而且它還可以支持所有的INTERNET音頻標(biāo)準(zhǔn)。芯片中的可編程內(nèi)核與現(xiàn)行主流TMS320C54X軟件相兼容。
TMS320C55X可廣泛應(yīng)用個(gè)人無線通信系統(tǒng),個(gè)人醫(yī)療設(shè)備(助聽器、內(nèi)耳植入器等)、數(shù)字相機(jī)、INTERNET音頻系統(tǒng)以及數(shù)字音樂隨射播放器等。
一般來說,TMS320C55X主要針對(duì)個(gè)人消費(fèi)及通信市場(chǎng),對(duì)執(zhí)行諸如語(yǔ)音解碼和碥碼調(diào)制解調(diào)、圖像壓縮及解壓、語(yǔ)音識(shí)別及語(yǔ)音合成等方面所用到的數(shù)字信號(hào)處理算法是十分有效的。
2 主要特性
TMS320C55X具有以下特性:
●1個(gè)32×16位的指令緩沖隊(duì)列;
●2個(gè)17×17位的乘積并累加單元(multiply-and-accumulate unit,MAC);
●1個(gè)40位的算術(shù)邏輯單元(ALU);
●1個(gè)40位的移位器(Shifter);
●1個(gè)16位算術(shù)邏輯單元(ALU);
●4個(gè)40位的累加器(accumulate);
●12組獨(dú)立總線。其中包括:3組數(shù)據(jù)讀總線、2組數(shù)據(jù)寫總線、5組數(shù)據(jù)地總線、1組等程序讀總線和1組程序?qū)懣偩€。
3 TMS320C55X的CPU結(jié)構(gòu)
TMS320C55X的中央處理單元(CPU)內(nèi)部結(jié)構(gòu)由四部分組成(如圖1)。它們分別是:指令緩沖單元,程序流程單元,地址數(shù)據(jù)流程單元,數(shù)據(jù)處理單元。下面對(duì)各個(gè)單元進(jìn)行簡(jiǎn)要地介紹。
3.1 TMS320C55X的總線結(jié)構(gòu)
TMS320C55X采用增強(qiáng)型哈佛結(jié)構(gòu),程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器具有各自的總線結(jié)構(gòu),在CPU內(nèi)部共有12組總線。下面對(duì)這12組總線分別進(jìn)行介紹:
●數(shù)據(jù)讀數(shù)據(jù)總線:
該總線共3組,分別是BB、CB和DB,每組均為16位。數(shù)據(jù)讀數(shù)據(jù)總線的功能是將16位的數(shù)據(jù)從數(shù)據(jù)空間或I/O空間送入CPU的功能單元(如MAC單元)。其中,BB總線只能把數(shù)據(jù)送入數(shù)據(jù)處理單元(D單元),它的主要功能是聯(lián)結(jié)存儲(chǔ)器和數(shù)據(jù)處理單元中的兩個(gè)乘積并累加單元(MAC)。TMS320C55X指令集中有一些專門的指令使編程人員能夠使用BB,CB和DB在同一時(shí)刻讀取3個(gè)操作數(shù)。CB和DB總線上的數(shù)據(jù)可以送入程序流程單元(P單元)、數(shù)據(jù)處理單元(D單元)和地址數(shù)據(jù)流程單元(A單元)。指令如果同時(shí)讀取兩個(gè)操作數(shù),則CB和DB同時(shí)被使用,而在只讀取一個(gè)操作數(shù)時(shí)僅使用DB總線。
●數(shù)據(jù)讀地址總線:
數(shù)據(jù)讀地睛總線亦有3組,分別是BAB、CAB和DAB,每組均為24位。這三組數(shù)據(jù)總線將24位地址送入存儲(chǔ)器接口單元(Memory Interface Unit),由存儲(chǔ)器接口單元先中CPU所需的數(shù)據(jù)。三組數(shù)據(jù)讀地址總線上的地址信息是由CPU中的地址數(shù)據(jù)流程單元(A單元)產(chǎn)生的。BAB總線上的數(shù)據(jù)為數(shù)據(jù)讀數(shù)據(jù)總線中的BB總線送入CPU的數(shù)據(jù)的地址。CAB總線上的數(shù)據(jù)數(shù)據(jù)讀數(shù)據(jù)總線CB總線送入CPU的數(shù)據(jù)的地址。而DAB總線上的數(shù)據(jù)是由數(shù)據(jù)讀數(shù)據(jù)總線DB總線或者是由DB和CB總線送入CPU的數(shù)據(jù)的地址。
●程序讀數(shù)據(jù)總線:
該總線是一組32位總線,功能是將4字節(jié)的程序代碼送入指令緩沖單元(I單元),并在指令緩沖單元中對(duì)指令進(jìn)行解碼。
●程序讀地址總線:
程序讀地址總線是一組24位總線。該總線上的數(shù)據(jù)是由PB總線傳磅到CPU的程序代碼的地址。
●數(shù)據(jù)寫數(shù)據(jù)總線:
該總線有兩組,分別為EB和FB,每一組總線為16位。數(shù)據(jù)寫數(shù)據(jù)總線的功能是將CPU內(nèi)部器件(如MAC單元)的數(shù)據(jù)寫入存儲(chǔ)器空間或I/O空間。
●數(shù)據(jù)寫地址總線:
該總線共兩組,分別是EAB和FAB,每組總線均為24位。數(shù)據(jù)寫地址總線上的數(shù)據(jù)是由數(shù)據(jù)寫數(shù)據(jù)總線送入CPU的數(shù)據(jù)的地址。
可以看出,TMS320C55X不僅程序空間和數(shù)據(jù)空間是不分開的,而且數(shù)據(jù)的讀和寫都有各自分開的地址總線,這種并行結(jié)構(gòu)允許CPU在一個(gè)周期內(nèi)進(jìn)行讀和寫,因而提高了CPU的處理速度。
3.2 指令緩沖單元
指令緩沖單元(I單元)的主要功能是將指令流從存儲(chǔ)器中取出并送入CPU。在每一個(gè)CPU周期,指令緩沖單元從32位的程序讀數(shù)據(jù)總線取出4個(gè)字節(jié)的程序代碼,同時(shí)將已經(jīng)接收并存入在指令緩沖隊(duì)列前端的最多6個(gè)字節(jié)程序代碼送入指令解碼控制器中進(jìn)行解碼(見圖2)。指令解碼控制器將解碼信息送入P單元(程序流程單元)、A單元(地址數(shù)據(jù)流程單元)和D單元(數(shù)據(jù)處理單元)。
在每一個(gè)流水線的預(yù)取階段,TMS320C55X的CPU從程序存儲(chǔ)器中取出32位的程序代碼并將其存放在指令緩沖隊(duì)列中。當(dāng)CPU準(zhǔn)備好對(duì)指令進(jìn)行解碼時(shí),從指令緩沖隊(duì)列中取出最多可有6個(gè)字節(jié)的代碼送入指令解碼控制器。指令緩沖隊(duì)列中最多可以存放64字節(jié)的代碼,這可以使CPU保持連續(xù)的程序流程,提高處理速度。在執(zhí)行位于指令緩沖隊(duì)列中的重復(fù)指令或循環(huán)指令代碼時(shí),CPU不僅處理速度快,而且功耗低,因?yàn)楸粓?zhí)行的代碼存放在指令緩沖隊(duì)列中時(shí),CPU執(zhí)行諸如loop的循環(huán)指令無需訪問存儲(chǔ)器,而訪問存儲(chǔ)器是需要消耗時(shí)間和能量的。在流水線的解碼階段,指令解碼器一次從指令緩沖隊(duì)列接受最多6個(gè)字節(jié)的程序代碼并對(duì)其進(jìn)行解碼。指令緩沖單元的操作并不是動(dòng)態(tài)的,也就是說:指令緩沖單元中的指令代碼是按其進(jìn)入指令緩沖隊(duì)列的順序依次被解碼。其優(yōu)點(diǎn)是程序執(zhí)行時(shí)間可以預(yù)先知道,這對(duì)實(shí)時(shí)嵌入式系統(tǒng)的設(shè)計(jì)是十分重要的。
TMS320C55X的指令組的編碼是可變長(zhǎng)的,指令長(zhǎng)度可從1個(gè)字節(jié)到6個(gè)字節(jié)。與所有指令的編碼長(zhǎng)度都相同的編碼方式不同,TMS320C55X指令中的一些簡(jiǎn)單指令編碼后的長(zhǎng)度要小于復(fù)雜指令編碼后的長(zhǎng)度。指令編碼后的長(zhǎng)度有8位、16位、24位、32位、40位和48位6種。這種編碼方式可以產(chǎn)生高密度的程序代碼,同時(shí)可以充分利用程序存儲(chǔ)空間。
3.3 程序流程單元
程序流程單元(P單元)用于控制指令執(zhí)行的次序、它內(nèi)部的程序地址發(fā)生器能產(chǎn)生從程序存儲(chǔ)器中取指令的地址。該單元還包括管理程序流水線的邏輯,4個(gè)狀態(tài)寄存器可以控制和監(jiān)視CPU的各個(gè)特性。 圖3所示為程序流程單元的框圖。
在程序流程單元中,程序地址發(fā)生器可以產(chǎn)生24位的地址。因?yàn)槌绦蛄鞒虇卧С肿止?jié)尋址方式,所以代碼存放在存儲(chǔ)器中無需進(jìn)行對(duì)齊操作。24位的地址總線使TMS320C55X的尋址空間達(dá)到16M字節(jié)。程序流程單元還控制著分支、調(diào)用、重復(fù)和中斷等。
程序流程單元為提高指令執(zhí)行效率進(jìn)行了優(yōu)化。舉例來說:其內(nèi)部的程序地址發(fā)生器完全獨(dú)立于CPU中的其它任何部分,這樣,條件分支的條件就能在流水線的早期進(jìn)行測(cè)試并計(jì)算出分支的目標(biāo)地址以減小分支延遲;這種并行性也使在流水線中執(zhí)行數(shù)據(jù)處理的同時(shí)處理程序控制指令。程序流程單元的另一個(gè)特點(diǎn)是具有一個(gè)分開的程序計(jì)數(shù)器,該程序計(jì)數(shù)器可以使子程序或中斷服務(wù)程序快速返回。
程序流程單元提供的循環(huán)(loop)功能包括重復(fù)執(zhí)行一個(gè)指令或一組指令。它還在硬件上支持條件重復(fù)。程序流程單元的主要優(yōu)點(diǎn)是其內(nèi)部具有一個(gè)專門的邏輯以保護(hù)流水線。除了對(duì)付控制冒險(xiǎn)(control hazards)程序流程單元還對(duì)讀后寫數(shù)據(jù)冒險(xiǎn)和寫后讀數(shù)據(jù)冒險(xiǎn)提供完全的保護(hù)。當(dāng)這些冒險(xiǎn)(hazard)出現(xiàn)在TMS320C55X的指令流中時(shí),流水線保護(hù)邏輯會(huì)自動(dòng)加入周期以保持操作順序并對(duì)程序進(jìn)行修正。
3.4 地址數(shù)據(jù)流程單元
地址數(shù)據(jù)流程單元(A單元)用于產(chǎn)生對(duì)數(shù)據(jù)空間進(jìn)行讀寫操作所需的地址。該單元包括所有產(chǎn)生兩組數(shù)據(jù)寫地址總線和三組數(shù)據(jù)讀地址線上的地址所需的邏輯單元和寄存器。此外,在地址數(shù)據(jù)流程單元中,還有一個(gè)16位的算術(shù)邏輯單元(ALU),圖4是地址數(shù)據(jù)流程的框圖。
在數(shù)據(jù)計(jì)算單元處理復(fù)雜操作時(shí),16位的算術(shù)邏輯單元(ALU)可以并行地進(jìn)行一些簡(jiǎn)單的運(yùn)算。它從指令緩沖單元接收立即數(shù),并與數(shù)據(jù)計(jì)算單元的寄存器、存儲(chǔ)器、地址數(shù)據(jù)流程單元和程序流程單元進(jìn)行雙向通信。在地址數(shù)據(jù)流程單元,該ALU可以控制4個(gè)通用的臨時(shí)寄存器和任何一個(gè)地址寄存器。4個(gè)通用的寄存器可以提高編譯時(shí)的效率并減少對(duì)存儲(chǔ)器的訪問。除了通用的算術(shù)邏輯單元,TMS320C55X的其它3個(gè)地址寄存器算術(shù)邏輯單元以對(duì)進(jìn)行間接尋址的9個(gè)寄存器進(jìn)行修改。這3個(gè)地址寄存器算術(shù)邏輯單元產(chǎn)生獨(dú)立的地址以作為三組數(shù)據(jù)讀總線的地址。這種并行結(jié)構(gòu)允許兩個(gè)16位的操作數(shù)和一個(gè)16位的系數(shù)在一個(gè)CPU周期內(nèi)同時(shí)讀入數(shù)據(jù)計(jì)算單元。另外,地址數(shù)據(jù)流程單元還包括一些支持在間接尋址指令中循環(huán)尋址方式的寄存器。
3.5 數(shù)據(jù)計(jì)算單元
數(shù)據(jù)計(jì)算單元(D單元)是TMS320C55X的CPU的重要部分,DSP應(yīng)用系統(tǒng)的大量數(shù)據(jù)在這個(gè)單元進(jìn)行處理。圖5是數(shù)據(jù)計(jì)算單元的框圖,從圖中可以看出,三組數(shù)據(jù)讀數(shù)據(jù)總線上的數(shù)據(jù)可用作兩個(gè)AMC器件的輸入右40位的算術(shù)邏輯單元的輸入。MAC器件運(yùn)算的結(jié)構(gòu)可以存放在4個(gè)40位的累加器中。數(shù)據(jù)計(jì)算單元的這種并行性將減少TMS320C55X在執(zhí)行信號(hào)處理算法時(shí)所需的周期數(shù)。TMS320C55X相對(duì)TMS320C54X的性能有很大的提高,其中關(guān)鍵的一些是TMS320C55X采用了并行的雙MAC結(jié)構(gòu),每一個(gè)MAC器件包括一個(gè)乘法器和一個(gè)專門的加法器,在單周期內(nèi),每一個(gè)MAC單元可以執(zhí)行17×17位的乘法運(yùn)算和一個(gè)40位的加法運(yùn)算。MAC單元的輸入是三組數(shù)據(jù)讀數(shù)據(jù)總線上的數(shù)據(jù),這三組數(shù)據(jù)一般是兩組數(shù)據(jù)流和一組常系數(shù)數(shù)據(jù)流。MAC運(yùn)算結(jié)果可以存放在數(shù)據(jù)計(jì)算單元的40位的累加器中。
數(shù)據(jù)計(jì)算單元包括一個(gè)40位的算術(shù)邏輯單元,這個(gè)算術(shù)邏輯單元是與MAC器件完全分開的。它能夠?qū)?0位累加器中的數(shù)據(jù)進(jìn)行算術(shù)或邏輯運(yùn)算。另外的一種工作方式是同時(shí)對(duì)兩組16位數(shù)據(jù)進(jìn)行算術(shù)運(yùn)算。該算術(shù)邏輯單元的輸入除了數(shù)據(jù)計(jì)算單元的累加器外,它還從指令緩沖單元接收立即數(shù),并且能夠與存儲(chǔ)器、地址數(shù)據(jù)流程單元的寄存器以及程序流程單元的寄存器進(jìn)行雙向通信。
數(shù)據(jù)計(jì)算單元中還有一個(gè)功能強(qiáng)大的移位器。移位器可將累加器中40位的數(shù)據(jù)向左最多移31位或向右移32位。它從指令緩沖單元接收立即數(shù)并可與程序流程單元和地址數(shù)據(jù)流程單元的寄存器進(jìn)行雙向通信。此外,移位器移位后的值可以作為算術(shù)邏輯單元的輸入以便進(jìn)一步處理。
數(shù)據(jù)計(jì)算單元將處理的結(jié)果通過兩組16位的數(shù)據(jù)寫總線寫入存儲(chǔ)器中。這兩組總線與地址數(shù)據(jù)流程單元的地址發(fā)生器結(jié)合在一起,使TMS320C55X可以在一個(gè)CPU周期內(nèi)完成兩個(gè)16位數(shù)據(jù)寫或一個(gè)32位數(shù)據(jù)寫的功能。這種方法可以提高數(shù)字信號(hào)處理器CPU的數(shù)據(jù)天吞吐量,因而對(duì)實(shí)時(shí)性要求高的場(chǎng)合是十分必要的。
4 結(jié)束語(yǔ)
TMS320C55X具有性能高,功耗低和完善的軟件開發(fā)支持等特點(diǎn),它的內(nèi)核與TI公司現(xiàn)有的DSP完全兼容,同時(shí),TI公司還提供集成的開發(fā)環(huán)境eXpress DSP實(shí)時(shí)軟件技術(shù),該技術(shù)包括所有必要的工上和軟件,支持新推出的TMS320C55X內(nèi)核,能使用戶較快地開發(fā)新的產(chǎn)品。
評(píng)論