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芯片存儲器 ⒊ 片內外設 軟件可編程等待狀態產生器 可編程的塊交換 片內鎖相環時鐘產生器 禁止外部總線的控制機制 ⒋ 指令集 重復單條指令與重復指令塊 存儲器塊移動指令 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所示。 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蝶形運算。 圖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的六級指令流水線 'C54x CPU的指令流水線有六級,每個周期有六條指令在工作,它們處于整個執行過程的不同階段,如圖9所示。 圖9 流水線不同工作階段操作內容 流水線的工作全部為單字指令連續執行時(理想情況)如圖10 所示。 圖10 流水線正常工作時做業情況 第二部分:TMS320C54xx性能介紹(二) TMS320C55是TI公司最新推出的定點DSP芯片系列,它比'C54x的性能有很大提高,而且功耗大大降低,是目前TI公司推出的功率最小的DSP芯片,適用于便攜式超低功率場合。 TMS320C55x主要特點: 圖1是'C55x的功能結構圖,它的主要特點如下: 圖1 TMS320C55x功能結構框圖 超低功耗設計: 在硬件結構中采用雙MAC,有4個40bit的累加器,因而在一個周期內可完成更多的任務。 有更多的"自動并行"指令。為發揮附加的硬件功能,有的指令隱含或裝有并行化的能力;另一些指令通過'C55x DSP核的最佳匯編器和C編譯器自動安排成并行運行。 用戶可自行編程達到并行操作,以便充分利用'C55x DSP芯片的性能。 附加新的指令,擴展硬件處理能力。例如雙16位的算術運算、雙MAC、條件移位、條件加或減、比例并選擇極值、偶或奇對稱的FIR濾波、并行移位和存儲、寄存器比較或交換等一系列新的指令。 先進的高級功率管理能力。其一是自動斷電能力,'C55x DSP核連續的對內存、外設和核心功能單元進行監視,自動的對不工作單元斷電;其二是用戶可以自己配置IDLE休閑域,'C55x有64種休閑方式,通過改變休閑域寄存器對應的狀態位就可以改變對應部件電源的通斷。 通過增加硬件和操作的并行性,極大的提高了處理器的處理能力。 可變指令長度增加代碼密度:指令長度為8/16/24/40/48 bit,選擇不同長度可使編碼密度達到最佳和有效地利用總線;指令預取由16 bit增加到32 bit;片上指令緩存單元自動的不包裝指令,以便最有效地利用每一周期。 附加總線和擴充地址增加數據流量:'C55x有一組程序總線,3組讀總線,2組寫總線,每組總線中的地址線有24 bit,因而極大的擴充了尋址能力。 外部存儲器接口性能比'C54x有很大提高:采用雙字寬(32 bit)及高速低價格同步存儲器,使存儲器操作與CPU操作具有相同的速率。同時有自動斷電功能,電源只在使用時接通。 指令高速緩存減少外部存儲器訪問:'C55x是第一個采用指令高速緩存的器件,允許幾條指令同時加載到高速緩存器中,CPU不必對每條指令都去訪問存儲器,并且在時鐘速率下利用指令,增加速度,降低功耗。 改進的控制代碼,改善了控制代碼的密度:'C55x 增加了幾個控制代碼的附件,包括新的指令緩存單元、數據存儲器和ALU。對條件執行的兩種可能性都有準備,使得一旦條件出現,DSP立即響應。 高級仿真縮短調試周期:代碼與'C54x兼容,維護消費者的軟件投資。 TMS320C55x結構概述 'C55x結構主要由下列各部分組成: 圖2 指令緩沖單元(1單元)框圖 一個32×16-bit 指令緩沖隊列:緩沖可變長度指令和實現塊重復操作。 兩個17-bit×17-bit MAC:在單周期內實現雙MAC操作。 一個40-bit ALU:執行高精度算術和邏輯運算。 一個40-bit 桶形移位寄存器:可以把40-bit結果左移31 位或右移32位。 一個16-bit ALU:和主ALU并行執行簡單算術運算。 圖3 程序流單元(P單元)框圖 四個40-bit 累加器:保持計算結果和減少所需存儲器數量。 十二條獨立總線:并行地對不同操作單元同時提供處理指令和操作數。 圖4 地址數據流單元(A單元框圖) 指令緩沖單元功能 它對應用程序的指令進行緩存和解碼,包含了解釋'C55x可變長度指令的解碼邏輯。指令緩存單元使各種計算單元的任務流量維持一個常數, 以便增加DSP的效率。(見圖2) 程序流單元功能 當程序執行時,這個單元用來保存執行點的軌跡。此單元包括使循環有效的硬件以及用于預測轉移、條件執行、流水線保護的專用硬件。當程序的控制發生變化時,例如轉移和調用子程序時,這個硬件能使處理器所需周期數減少,從而可提高處理效率。(見圖3) 地址數據流單元功能 在程序執行期間,這個單元提供數據訪問的地址指針。此單元可以使'C55x 實現有效的尋址模式。管理五條數據總線的專用硬件用來保持各個計算單元有恒定的數據流。由于有一個通用的ALU作簡單的算術運算,使得地址數據流單元可進一步增加'C55x 結構的指令并行性。(見圖4) 數據計算單元功能 這個單元是CPU的心臟,完成對被處理數據的算術運算。它包括兩個MAC(乘法累加器)、主ALU(40-bit)、4個40-bit的累加寄存器,其附加的功能部件有桶形移位寄存器、舍入與飽和控制以及有效完成Viterbi計算的專用硬件。由此單元給出的指令的并行性是'C55x處理效率高低的關鍵。(見圖5) TMS320C54x和TMS320C55x性能比較 |