TMS320C54x是目前普遍使用的定點DSP芯片。它的特點是功耗很低(在100MIPS時為60mW),可用于數字蜂窩通信、個人通信系統、尋呼機、個人數字助理(PDA)、ATM(異步傳輸模式)交換機、數字無線通信、調制解調器等領域。圖1表示了C54x的發展過程及應用領域。
圖1 TMS320C5000性能發展狀況及應用領域
TMS320系列的同一代芯片具有相同的CPU結構,但根據市場的不同需要,形成新的存儲器與外設的不同組合,產生了多種派生器件。
TMS320C54x關鍵特性
圖2是C54x功能結構圖,它的主要性能如下:
圖2 TMS320C54x功能結構框圖
⒈ CPU
先進的多總線結構:一組程序總線(PAB、PB),三組數據總線(CAB、CB,DAB、DB,EAB、EB)
40位的數學邏輯單元(ALU):包括40位的桶形移位寄存器和兩個獨立的40位累加器
17 17位并行乘法器和40位專用加法器,單周期完成乘法/累加(MAC)
適于Viterbi運算的比較、選擇、存儲單元(CSSU)
指數編碼器,可在單周期內計算(40位)累加器中數值的指數
兩個地址產生器,包括八個輔助寄存器和兩個的算術單元
⒉ 存儲器
可尋址存儲空間達192K字(程序、數據及I/O各64 64bit),C548還可擴展程序存儲器(8兆字)
典型C5400芯片存儲器
⒊ 片內外設
軟件可編程等待狀態產生器
可編程的塊交換
片內鎖相環時鐘產生器
禁止外部總線的控制機制
⒋ 指令集
重復單條指令與重復指令塊
&nbs
p; 存儲器塊移動指令
32位數運算指令
可同時讀取2或3個操作數的指令
具有并行保存和并行加載的算術指令
條件保存指令
⒌ 功耗控制
IDLE1、IDLE2和IDLE3指令可控制其進入降功耗模式
可控制是否輸出CLKOUT信號
⒍ IEEE標準的1149.1邊界掃描邏輯接口
TMS320C54x結構概述
''C54x由中央處理器CPU、存儲器和片內外設組成,采用哈佛結構,有獨立的程序空間、數據空間和I/O空間。圖3是''C54x的內部硬件框圖。
對所有的''C54x器件來說,圖中下半部所示的中央處理單元(CPU)是通用的。
總線結構
一組程序總線(PAB、PB)和三組數據總線CAB、CB,DAB、DB,EAB、EB)將內部各部件聯系起來。
圖3 TMS320C54x內部硬件框圖
PB- 程序總線,傳送程序代碼或存在程序空間的數據;
CB、DB、EB- 數據總線,連接CPU、數據地址產生邏輯、程序地址產生邏輯、片內外設及存儲器等各部件;
CB和DB- 傳送從存儲器讀出的數據,即“讀”操作使用的數據總線;
EB-傳送向存儲器寫入的數據,即"寫"操作使用的數據總線;
PAB、CAB、DAB、EAB- 各對應的地址總線;
圖4 ALU功能框圖
中央處理單元(CPU)
ALU:算術邏輯運算單元
主要由40位ALU和兩個40位累加器(ACCA和ACCB)組成,如圖4所示。
&
nbsp; ALU和兩個累加器用來完成40位二進制補碼的算術運算,也能完成布爾運算。當狀態寄存儲器ST1的C16位置1時,可做兩個16位ALU,同時完成兩個16位運算。
輸入:
16位立即數;
來自數據存儲器的16位數;
來自暫存器T的16位數;
來自數據存儲器讀出的兩個16位數;
來自數據存儲器讀出的一個32位數;
來自累加器(A和B)的40位數;
圖5 桶形移位器功能框圖
輸出:ALU的40位輸出被送往累加器A或B。
圖6 乘/加模塊功能方框圖
桶形移位器:將輸入數據左移0~31位或右移0~16位,經常用作數字定標、位提取、擴展算術和溢出保護等操作。 輸入40位:來自累加器或經DB、CB的 數據存儲器;
輸出40位:連到ALU或經EB連到數據存儲器;
所移位數由指令中移位字段、ST1的ASM字段或T寄存器指定移位位數決定。
圖7 比較、選擇與保存單元(CSSU)功能框圖
乘/加模塊:由乘法器、加法器、輸入數據的符號控制邏輯、小數控制邏輯、零檢測、舍入、溢出/飽和邏輯和16位暫存寄存器T等組成。乘法器和ALU在一個指令周期內共同完成(17 17補碼)乘/加(40位)運算,且可并行地作ALU運算,這些功能可用來做Euclidean距離及LMS濾波等復雜運算。乘/加模塊功能方框圖如圖6所示。
比較、選擇與保存單元(CSSU):可以完成累加器的高位字和低位字之間的最大值比較(CMPS指令)。另一功能是利用優化的片內硬件資源完成數據通信、模式識別等領域中經常用到的Viterbi蝶形運算。
&
nbsp;
圖8 指數編碼器
指數編碼器:用于支持單周期指令EXP的專用硬件,如圖8所示。
累加器中數值的指數值,以二進制補碼形式(-8~31)存放于暫存器T中;
CPU狀態和控制寄存器:
''C54x共有3個16位狀態和控制寄存器(PMST、ST0、ST1)它們都是存儲器映象寄存器,可以方便地寫入數據、或由數據存儲器對它們加載。
內部存儲器
·''C54x的存儲器分為三個可獨立選擇的空間:程序空間、數據空間和I/O空間;
·''C54x的片內存儲器包括ROM和RAM,其中RAM又可分為SARAM和DARAM:SARAM為單尋址寄存儲器,DARAM為雙尋址寄存儲器(一周期內可以訪問兩次)。
ROM一般配置成程序存儲空間,用于存放要執行的指令、系數表等固定操作數。也可以部分地安排到數據存儲空間,由PMST的狀態位 和DROM決定;RAM 一般安排到數據存儲空間,存放執行指令所要用的數據。但也可以安排到程序空間,由PMST的狀態位OVLY決定。不同''C54x系列內部存儲器配置各不相同。
''C54x的尋址方式
TMS320C54x的指令可能含有1個存儲器操作數(指令說明中用Smem表示),也可能有2個存儲器操作數(指令說明中用Xmem、Ymem表示),分別稱為單存儲器操作數和雙存儲器操作數。單存儲器操作數有7種尋址方式,它們是:
立即尋址: 操作數(常數)含在指令中;
絕對尋址: 指令中含有操作數的16位地址;
累加器尋址: 操作數地址在累加器中(A);
直接尋址: 指令中含有操作數地址的低7 位;
間接尋址: 操作數的地址在輔助寄存器中,支持倒位序尋址、循環尋址等功能;
存儲器映像的寄存器尋址:
訪問存儲器映像寄存器,
又不影響DP或SP;
堆棧尋址: 訪問堆棧;
雙存儲器操作數支持一些特殊指令:
如MAC、FIR等復雜指令。
''C54x的六級指令流水線
&nb
sp; ''C54x CPU的指令流水線有六級,每個周期有六條指令在工作,它們處于整個執行過程的不同階段,如圖9所示。
圖9 流水線不同工作階段操作內容
流水線的工作全部為單字指令連續執行時(理想情況)如圖10 所示。
圖10 流水線正常工作時做業情況