TI 公司在1982年成功推出其第一代 DSP 芯片 TMS32010及其系列產品TMS320十一、TMS320C10/C14/C15/C16/C17等,以後相繼推出了第二代DSP芯片TMS32020、TMS320C25/C26/C28,第三代DSP芯片TMS320C30/C31/C32,第四代DSP芯片TMS320C40/C44,第五代 DSP 芯片TMS320C5X/C54X,第二代DSP芯片的改進型TMS320C2XX,集多片DSP芯片於一體的高性能DSP芯片TMS320C8X以及目前速度最快的第六代DSP芯片TMS320C62X/C67X等。TI將經常使用的DSP芯片概括爲三大系列,即:TMS320C2000系列(包括TMS320C2X/C2XX)、TMS320C5000系列(包括TMS320C5X/C54X/C55X)、TMS320C6000系列(TMS320C62X/C67X)。現在,TI公司的一系列DSP產品已經成爲當今世界上最有影響的DSP芯片。TI公司也成爲世界上最大的 DSP 芯片供應商,其DSP市場份額佔全世界份額近 50%。同時在工控等高端應用市場,Freescale和ADI公司的DSP也大放光芒。 算法
自1982年TI推出第一個定點DSP芯片TMS32010以來,TI的定點DSP芯片已經經歷了TMS320C1X、TMS320C2X/C2XX、TMS320C5X 、TMS320C54X、TMS320C62X等幾代產品,產品的性能價格比不斷提升,應用愈來愈普遍。下面分別介紹這些芯片的主要特徵。編程
2.3.1.1 基本特色緩存
第一代TMS320系列DSP芯片包括:TMS32010、TMS32011、TMS320C10、 TMS320C15/E15和TMS320C17/E17。其中,TMS32010和TMS32011採用2.4mm的 NMOS 工藝,而其餘幾種則採用1.8mm CMOS工藝。這些芯片的典型工做頻率爲20MHz。TMS320第一代DSP芯片的主要特色以下:安全
指令週期:160ns/200ns/280ns數據結構
片內RAM:144字/256字(TMS320C15/E15/C17/E17)併發
片內ROM:1.5K字/4K字(TMS320C15/C17)異步
4K字片內程序EPROM(TMS320E15/E17)工具
4K字外部全速存儲器擴展性能
並行乘法器:乘積爲32位開發工具
桶形移位器:將數據從存儲器移到ALU
並行移位器
容許文本交換的4×12位堆棧
兩個間接尋址的輔助寄存器
雙通道串行口(TMS32011,TMS320C17/E17)
片內壓擴硬件(TMS32011,TMS320C17/E17)
協處理器接口(TMS320C17/E17)
器件封裝:40腳雙列直插(DIP)/44腳塑封(PLCC)
2.3.1.2 TMS320C10
TMS320 DSP芯片的第一代產品是基於TMS32010和它的CMOS版本TMS320C10的結構。TMS32010於1982年推出,是第一個可以達到 5 個MIPS的微處理器。
TMS32010採用改進的哈佛結構,即程序和數據空間相互獨立。程序存儲器可在片內(1.5K字)或片外(4K字)。片內數據RAM爲144字。有四個基本的算術單元:算術邏輯單元(ALU)、累加器(ACC)、乘法器和移位器。
(1) ALU:32位數據操做的通用算術邏輯單元。ALU可進行加、減和邏輯運算;
(2) ACC:累加器存儲ALU的輸出,也是ALU的一個輸入。它採用32位字長操做,分高16位和低16位兩部分。處理器提供高16位和低16位的專門指令:SACH(高16位)和SACL(低16位);
(3) 乘法器:16×16位並行乘法器由三個單元組成:T寄存器、P寄存器和乘法器陣列。T寄存器存儲被乘數,P寄存器存儲32位乘積。爲了使用乘法器,被乘數首先必須從數據RAM中裝入到T寄存器,可用LT、LTA和LTD指令。而後執行MPY(乘)或MPYK(乘當即數)指令。乘和累加器操做可用LTA、LTD和MPY、MPYK指令在兩個指令週期內完成;
(4) 移位器:有兩個移位器可用於數據移位。一個是桶形移位器,另外一個是並行移位器。桶形移位器又稱定標移位器。當數據存儲器的數據送入累加器或與累加器中的數據進行運算時,先經過這個移位器進行0~16位左移,而後再進行運算。並行移位器即輸出移位器,其做用是將累加器中的數據左移0、1或4位後再送入數據存儲器中,以實現小數運算或小數乘積的調整。
在TMS32010/C10基礎上又派生了多個處理器,它們可提供不一樣的處理器速度、存儲器擴展和各類I/O集成。
2.3.1.3 TMS320C1X的其餘芯片
1.TMS320C15/E15
TMS320C15/E15與TMS32010的代碼和管腳全兼容,提供256字的片內RAM和4K字的片內ROM(C15)或EPROM(E15)。TMS320C15的指令週期有200ns和160ns(TMS320C15-25)兩種。
2.TMS320C17/E17
TMS320C17/E17是一個專用的微處理器。它有4K字的片內程序ROM(C17)或EPROM(E17),一個全雙工串行通訊的雙通道串行口,片內硬件壓擴器(m律/A律),一個用於串行通訊的串行口定時器,及一個協處理器接口。協處理器接口能夠在處理器和4/8/16位微處理器之間提供直接接口。TMS320C17/E17與TMS32010目標代碼兼容,且可用相同的開發工具。該處理器是基於TMS320C10的CPU內核,外加片內的外設存儲器和I/O模塊。TMS320C17/E17可認爲是半定製的DSP芯片。表2.1 是TMS320第一代產品的比較表。
表2.1 TMS320第一代處理器
DSP芯片 |
指令週期 (ns) |
製造工藝 |
片內程序ROM(字) |
片內程序EPROM(字) |
片內數據RAM(字) |
片外程序(字) |
TMS32010 |
200 |
NMOS |
1.5K |
|
144 |
4K |
TMS32010-25 |
160 |
NMOS |
1.5K |
|
144 |
4K |
TMS32010-14 |
280 |
NMOS |
1.5K |
|
144 |
4K |
TMS32011 |
200 |
NMOS |
1.5K |
|
144 |
|
TMS320C10 |
200 |
CMOS |
1.5K |
|
144 |
4K |
TMS320C10-25 |
160 |
CMOS |
1.5K |
|
144 |
4K |
TMS320C15 |
200 |
CMOS |
4K |
|
256 |
4K |
TMS320C15-25 |
160 |
CMOS |
4K |
|
256 |
4K |
TMS320E15 |
200 |
CMOS |
|
4K |
256 |
4K |
TMS320C17 |
200 |
CMOS |
4K |
|
256 |
|
TMS320C17-25 |
160 |
CMOS |
4K |
|
256 |
|
TMS320E17 |
200 |
CMOS |
|
4K |
256 |
|
第二代TMS320 DSP芯片包括TMS32020、TMS320C25/E25、TMS320C26及TMS320C28。在這些芯片中,TMS32020是一個過渡的產品,其指令週期爲200ns,與TMS32010至關,而其硬件結構則與TMS320C25一致。在第二代DSP芯片中,TMS320C25是一個典型的表明,其餘芯片都是由TMS320C25派生出來的。其中TMS320E25將內部4K字的ROM改成EPROM;TMS320C26去掉了內部的4K字ROM,而將片內RAM增長到1.5K字;TMS320C28則將內部ROM增長到8K字。因爲TMS320C25的典型性,下面就討論TMS320C25的基本特徵和結構。
2.3.2.1 TMS320C25的基本特徵
指令週期: TMS320C25:100ns,TMS320C25-33:120ns,TMS320C25-50:80ns
片內掩膜ROM:4K 字
片內RAM:544字,分B0、B1和B2三塊
程序和數據空間均爲64K字
具備8級硬件堆棧、8個輔助寄存器
具備全靜態雙緩衝串行口,可與許多串行器件直接接口
與低速片外存儲器通訊的等待狀態插入
採用HOLD操做的DMA
FFT變換用的比特反轉尋址
擴展精度算術和自適應濾波支持
從外部存儲器全速執行的MAC/MACD指令
具備在多處理器之間進行同步的能力,支持多處理器共享存儲器
1.8μm CMOS工藝,68腳PGA或PLCC封裝
2.3.2.2 TMS320C25的結構
TMS320C25是第二代TMS320中與TMS32020管腳全兼容的CMOS版本,但指令執行速度是TMS32020的2倍,且增長了硬件和軟件資源。指令集是TMS32010和TMS32020的超集,在源代碼級與它們兼容。此外,在代碼級與TMS32020兼容,所以,TMS32020的程序可不用修改直接在TMS320C25上運行。
100ns的指令週期可提供較強的運算能力。因爲大部分指令在一個指令週期內執行,處理器在1秒內可執行1000萬條指令(10MIPS)。運算能力的增長主要得益於乘累加指令(MAC)和帶數據移位的乘累加指令(MACD)、具備專用算術單元的8個輔助寄存器、適合於自適應濾波和擴展精度運算的指令集支持、比特反轉尋址、快速的I/O支持等。
指令集中提供在兩個存儲空間中進行數據移動的指令。在外部,程序和數據存儲空間在同一總線上複用,從而使得在儘可能減小芯片引腳的狀況下最大程度地擴大兩個空間的地址範圍。在內部,TMS320C25結構經過保持程序和數據總線結構分離以使指令全速執行來得到最大的處理能力。
芯片內部的程序執行採用三級流水線形式。流水線對用戶來講是透明的。可是,在某些狀況下流水線可能被打斷(如跳轉指令),在這種狀況下,指令執行時間要考慮流水線必須清空和從新填充。兩塊大的片內RAM在系統設計時提供了很大的靈活性,其中一塊既可配置爲程序存儲器也可配置爲數據存儲器。片外64K字的數據空間可直接尋址,從而使DSP算法實現更爲方便。片內4K字的掩膜ROM可用來下降系統成本,若程序不超過4K字,可以使TMS320C25不用擴展片外程序存儲器。剩下的64K字程序空間在片外,大量的程序可在片外存儲器中全速運行。程序也可從片外慢速EPROM中裝入到片內高速RAM中全速運行。此外,還有硬件定時器、串行口和數據塊搬移功能。
下面介紹TMS320C25的存儲器分配、中央算術邏輯單元(CALU)、硬件乘法器、控制操做、串行口和I/O接口。
1.存儲器分配
TMS320C25具備4K字的片內程序ROM和544字的片內RAM。RAM分爲三塊:B0、B1、B2。其中,B0塊(256字)既可配置爲數據存儲器(用CNFD指令),也可配置爲程序存儲器(用CNFP指令)。其他288字(B1和B2塊)只能是數據存儲器。544字的片內RAM可以使C25能處理512字的數據陣列,如可進行256點複數FFT運算,且尚有32字用做中間結果的暫存。TMS320C25提供片外可直接尋址的程序和數據空間各64K字。
寄存器組包含8個輔助寄存器(AR0~AR7),它們可用做數據存儲器的間接尋址和暫存,從而增長芯片的靈活性和效率。這些寄存器既可用指令直接尋址,也可用3比特的輔助寄存器指針(ARP)間接尋址。輔助寄存器和ARP既可從數據存儲器裝數,也可裝入當即數。寄存器的內容也可存入數據存儲器中。輔助寄存器組與輔助寄存器算術單元(ARAU)相鏈接,用ARAU訪問信息表無需CALU參與地址操做,這樣可以讓CALU進行其餘操做。
2.中央算術邏輯單元
CALU包含一個16位的定標移位器(Scaling),一個16×16位的並行乘法器,一個32位的累加器和一個32位的算術邏輯單元(ALU)。移位器根據指令要求提供0到16位的數據左移。累加器和乘法器輸出端的移位器適合於數值的歸一化、比特提取、擴展精度算術和溢出保護。
典型的ALU指令實現包含如下三步:
(1) 數據在數據總線上從RAM中獲取;
(2) 數據移交給完成算術運算的定標移位器和ALU;
(3) 結果送回累加器。
32位累加器可分爲2個16位以進行數據存儲:SACH(高16位)和ACCL(低16位)。累加器有一個進位位可方便加法和減法的多精度運算。
3.硬件乘法器
TMS320C25具備一個16×16位的硬件乘法器,它能在一個指令週期內計算一個32位乘積。有兩個寄存器與乘法器相關:①16位暫存寄存器TR,用於保存乘法器的一個操做數;②32位乘積寄存器PR,用於保存乘積。
乘積寄存器的輸出可左移1位或4位,這對於實現小數算術運算或調整小數乘積頗有用。PR的輸出也可右移6位,這樣可連續執行128次乘/加而無溢出。無符號乘(MPYU)指令可方便擴展精度乘法。
4.I/O接口
I/O空間由16個輸入口和16個輸出口組成。這些口可提供全16位並行I/O接口。輸入(IN)和輸出(OUT)操做典型的是2個週期,但若用重複指令,可變成單週期指令。I/O器件映射到I/O地址空間,其方式與存儲器映射方式相同。與不一樣速度的存儲器或I/O器件接口採用READY線完成。
TMS320C25也支持外部程序/數據存儲器的DMA,其餘處理器經過置HOLD\ 爲低後可徹底控制TMS320C25的外部存儲器,使C25將其地址、數據和控制線呈高阻狀態。外部處理器和C25的通訊可經過中斷來完成。TMS320C25芯片提供兩種DMA方式,一種是加上HOLD後中止執行;另外一種是C25繼續執行,但執行是在片內ROM和RAM中進行,這可大大提升性能。
2.3.2.3 TMS320C25的軟件
TMS320C25的指令總共有133條,其中97條是單週期指令。在另外36條指令中,21條包括跳轉、調用、返回等,這些指令需從新裝入程序計數器,使執行流水線中斷。另外7條指令是雙字和長當即數指令。剩下的8條指令(IN,OUT,BLKD,BLKP,TBLR,TBLW,MAC,MACD)支持I/O操做、存儲器之間的數據交換或提供處理器內部額外的並行操做,並且這8條指令與重複計數器配合使用時可成爲單週期指令。這主要利用了處理器的並行機制,使得複雜的計算可用不多的幾條指令來完成。
因爲大多數指令用單16位字編碼,故可在一個週期內完成。存儲器尋址方式有三種:直接尋址、間接尋址和當即數尋址。直接尋址和間接尋址都用來訪問數據存儲器,當即數尋址利用由程序計數器肯定的存儲器內容。
使用直接尋址方式時,指令字的7位和9位數據存儲器頁指針(DP)構成16位的數據存儲器地址。其中,每頁長128字,共有512頁,故可尋址64K的數據空間。間接尋址藉助於8個輔助寄存器(AR0~AR7)。表2.2 列出了7種間接尋址方式。其中的比特反轉尋址可大大提升 FFT運算的I/O效率。其中,OP表示某種運算,NARP表示新的ARP。
表2.2 TMS320C25的尋址方式
尋址方式 |
操 做 |
OP A |
直接尋址 |
OP *(,NARP) |
間接尋址;AR不變 |
OP *+(,NARP) |
間接尋址;當前AR加1 |
OP *-(,NARP) |
間接尋址;當前AR減1 |
OP *0+(,NARP) |
間接尋址;AR0加到當前AR |
OP *0-(,NARP) |
間接尋址;當前AR減去AR0 |
OP *BR0+(,NARP) |
間接尋址;AR0加到AR() |
OP *BR0-(,NARP) |
間接尋址;當前AR減去AR0() |
TMS320C5X是TI公司的第五代產品,是繼TMS320C1X和TMS320C2X以後的第三代定點DSP處理器。它的核心中央處理器(CPU)以TMS320C25的核心CPU爲基礎,加強型結構大幅度地提升了總體性能。TMS320C5X工做速度是TMS320C25的2倍以上,對於TMS320C1X和TMS320C2X具備源代碼向上兼容特性。這種兼容性保留了過去開發的軟件,便於系統升級到更高性能的DSP系統。TMS320C5X系列有TMS320C50/C51/C52/C53等多種產品,它們的主要區別是片內RAM、ROM等資源的多少,如TMS320C50內部具備10K字RAM和2K字ROM,其中2K字ROM已經固化了引導程序;TMS320C51內部具備2K字RAM和8K字ROM;TMS320C52內部具備1K字RAM和4K字ROM,減小了一個串行口;TMS320C53內部則有4K字RAM和16K字ROM。芯片的其餘性能則是徹底相同的。下面以TMS320C50爲例介紹TMS320C5X DSP 芯片。
2.3.3.1 TMS320C50的基本特徵
TMS320C50的主要特色包括:
25/35/50ns的指令週期(20 ~ 40 MIPS)
224K×16位最大可尋址外部存儲空間(64K程序、64K數據、64K I/O、32K全局)
算術邏輯單元(ALU),32位累加器(ACC)以及32位加法器的緩衝器(ACCB)
並行邏輯單元(PLU)
結果具備32位的16×16位並行乘法器
單週期乘累加指令
具備一個專用算術單元的8個輔助寄存器,可用於間接尋址
8級硬件堆棧
0~16位數據左移和右移
兩個間接尋址的循環緩衝器,用於循環尋址
程序代碼的單指令重複和程序塊重複
全雙工同步串行口,用於完成TMS320C5X與其餘串行器件之間的直接通訊
時分多址訪問(TDM )串行口
內部定時器,可用軟件控制
64K 並行I/O 口,其中16個有存儲器映像
可軟件編程的等待狀態發生器
擴展保持操做,用於併發外部DMA
四級流水線操做,用於延遲跳轉、調用、返回指令
比特反轉尋址方式,用於FFT運算
JTAG掃描仿真接口(IEEE標準,P1149.1)
1.核心CPU
TMS320C5X CPU的加強功能在提升性能和通用性的同時,保持了對TMS320C1X和TMS320C2X源代碼的兼容性。硬件的改進包括:一個32位累加器緩衝器,附加定標能力,利用附加硬件功能的新指令。新的控制功能包括:獨立的並行邏輯單元(PLU)和一組文本交換寄存器。數據管理方面的改進包括:採用新的塊搬移指令和存儲器映像寄存器指令。TMS320C50有28個存儲器映像寄存器和16個存儲器映像的I/O口。
2.片內ROM
TMS320C50擁有2K×16位掩蔽ROM,內部固化了引導程序。該存儲器把程序從外部ROM/EPROM、串行口或並行I/O口引導至運行速度較快的SRAM中。這塊引導ROM可經過PMST狀態寄存器中的MP/MC\ 位從程序存儲空間去除。若是該ROM未選,則TMS320C50由片外存儲器啓動執行。
3.片內數據RAM
TMS320C50具備1056字的片內RAM,這塊RAM 可在每一個機器週期內訪問兩次(雙尋址RAM),只要兩次訪問不是「寫」操做。這塊存儲空間主要用於存儲數據,可是若是須要也可用於存儲程序和數據。其配置有兩種方式:全部的1056字都做爲數據存儲區,或者將其中的544字做爲數據存儲器,512字做爲程序存儲區。可經過狀態寄存器ST1中的CNF位選擇設置。
4.片內程序/數據RAM
TMS320C50還具備9K字的片內RAM。這一存儲區能夠由軟件設置映射到程序或數據存儲空間。程序從片外存儲器引導後,可裝入到該存儲區全速運行。
5.片內存儲器安全
TMS320C50能夠經過可屏蔽選擇來保護片內存儲器的內容。當相關比特置位時,外部沒法訪問片內存儲空間。
6.有地址映射的軟件等待狀態發生器
軟件等待狀態邏輯不須要任何外部硬件就能夠實現TMS320C50與速度較慢的片外存儲器和I/O設備接口。該電路系統擁有16個等待狀態發生器,其中可由用戶編程操做的有0,1,2,3和7狀態。
7.並行I/O口
TMS320C50共有64K I/O口,其中的16個可映射在數據存儲空間。這些口可由IN或OUT指令尋址。具備存儲器映像的I/O口可按存儲器的讀寫方式訪問。I/O口的訪問由IS\線選通。增長簡單的片外地址譯碼電路,就可實現TMS320C50的I/O口與外部I/O設備的簡單鏈接。
8.串行I/O口
TMS320C50有兩個高速串行口。串行口最快可按1/4機器週期(CLKOUT1)操做。一個是同步全雙工串行口,發送和接收都有緩衝,分別由可屏蔽外部中斷信號控制,數據可按照8或16位方式傳輸;另外一個串行口爲全雙工串口,可設置爲同步方式,也可設置爲時分多址(TDM)方式,TDM串行口通常用於多處理機系統。
9.16位硬件定時器
16位硬件定時器可由軟件進行控制,經過設置相應的狀態位,定時器可工做在中止、重啓動、復位或不工做等狀態。
10.用戶可屏蔽中斷
TMS320C50有4個外部中斷線。片內的中斷鎖存電路可實現異步中斷操做。此外,還有5個內部中斷:1個定時器中斷和4個串行口中斷。
11.JTAG掃描邏輯
JTAG掃描邏輯電路用於仿真和測試,採用JTAG可實如今線仿真。
2.3.3.2 TMS320C50的結構
TMS320C50採用了與TMS320C25相似的哈佛型總線結構,經過兩個獨立的數據總線和程序總線,最大限度地提升運算速度。指令支持在兩個存儲區之間的數據傳輸。
TMS320C50使用32位的ALU和累加器以實現2的補碼運算。ALU是一個通用的算術單元,它所使用的運算數據(16位)來自數據RAM或來自當即數指令,也能夠是乘積寄存器中32位的乘積結果。除此以外,ALU還能夠執行位操做。累加器保存ALU的輸出,也爲ALU提供下一個輸入。字長爲32位的累加器分爲高字節和低字節。指令提供對低字節和高字節的單獨存儲。32位的累加器緩衝器用於臨時快速地存儲累加器的內容。
除了ALU以外,並行邏輯單元(PLU)能夠在不影響累加器內容的狀況下對數據進行邏輯操做。PLU提供了高速控制器須要的位處理能力,並簡化了控制和狀態寄存器須要的置位、清零和測試操做。
乘法器以單指令週期完成16×16位的乘法,結果爲32位。乘法器由三部分組成,分別是乘法器陣列、PREG(乘積寄存器)、TREG0(臨時寄存器)。16位的TREG0存儲乘數,PREG保存32位的乘積結果。乘法器中的數值來自數據存儲器,當使用MAC/MACD/MADS/MADD指令時來自程序存儲器,或者來自乘當即數指令(MPY #)。片內快速乘法器對執行諸如卷積、相關和濾波等基本的DSP操做十分有效。
TMS320C50的定標移位器有一個16位的輸入來自數據總線,32位的輸出鏈接到ALU。定標移位器依照指令的編程使輸入數據產生0到16位的左移。移位量取決於指令或移位計數寄存器(TREG1)中的定義值。輸出的最低有效位(LSB)補零,最高有效位補0或符號擴展(取決於狀態寄存器ST1的符號擴展模式位SXM)。附加的移位能力使處理器能執行數值定標、二進制位提取、符號擴展運算和溢出防止等功能。
8級硬件堆棧用於在中斷及子程序調用時保存程序計數器的內容。中斷髮生時,重要寄存器(ACC、ACCB、ARCR、INDX、PMST、PREG、ST0、ST1和TREG)壓入堆棧,中斷返回時彈出,實現了無開銷的中斷文本切換。
TMS320C2XX是繼TMS320C2X和TMS320C5X以後出現的一種低價格、高性能定點DSP芯片,主要包括TMS320C20X、TMS320C24X兩個子系列。TMS320C2XX系列DSP芯片具備以下特色:
(1) 處理能力強。指令週期最短爲25ns,運算能力達40MIPS;
(2) 片內具備較大的閃爍存儲器。TMS320C2XX是最先使用閃爍存儲器的DSP芯片。閃爍存儲器具備比ROM靈活、比RAM便宜的特色。TMS320F206和TMS320F207片內具備32K字的閃爍存儲器和4.5K字的RAM。利用閃爍存儲器存儲程序,不只下降了成本,減少了體積,同時系統升級也比較方便;
(3) 功耗低。TMS320C2XX系列DSP芯片在5V工做時每一個MIPS消耗1.9mA,在3.3V工做時每一個MIPS消耗1.1mA。使用DSP核的省電模式可進一步下降功耗;
(4) 資源配置靈活。現有10多種具備不一樣資源配置的芯片。表2.3是TMS320C2XX系列DSP芯片比較表。
此外,TMS320C24X系列芯片爲數字控制系統的應用作了優化設計。
表2.3 TMS320C2XX系列芯片的資源配置
TMS320 C2XX |
指令週期 (ns) |
片內ROM (字) |
片內RAM (字) |
片內FLM (字) |
同步 串行口 |
異步 串行口 |
C203 |
25/35/50 |
|
544 |
|
1 |
1 |
C204 |
25/35/50 |
4K |
544 |
|
1 |
1 |
C205 |
25/35/50 |
|
4.5K |
|
1 |
1 |
F206 |
25/35/50 |
|
4.5K |
32K |
1 |
1 |
F207 |
25/35/50 |
|
4.5K |
32K |
2 |
1 |
C209 |
35/50 |
4K |
4.5K |
|
|
|
C240 |
50 |
16K |
544 |
|
1 |
1 |
F240 |
50 |
|
544 |
16K |
1 |
1 |
C241 |
50 |
8K |
544 |
|
1 |
1 |
F241 |
50 |
|
544 |
8K |
1 |
1 |
C242 |
50 |
4K |
544 |
|
1 |
1 |
F243 |
50 |
|
544 |
8K |
1 |
1 |
TMS320C54X是爲實現低功耗、高性能而專門設計的定點DSP芯片,其主要應用是無線通訊系統等。該芯片的內部結構與TMS320C5X不一樣,於是指令系統與TMS320C5X和TMS320C2X等是互不兼容的。
TMS320C54X的主要特色包括:
(1) 運算速度快。指令週期爲25/20/15/12.5/10ns,運算能力爲40/50/66/80/100 MIPS;
(2) 優化的CPU結構。內部有1個40位的算術邏輯單元,2個40位的累加器,2個40位加法器,1個17×17的乘法器和1個40位的桶形移位器。有4條內部總線和2個地址產生器。此外,內部還集成了維特比加速器,用於提升維特比編譯碼的速度。先進的DSP結構可高效地實現無線通訊系統中的各類功能,如用TMS320C54X實現全速率的GSM 需12.7 MIPS,實現半速率GSM 需26.2 MIPS,而實現全速率GSM 語音編碼器僅需2.3 MIPS,實現IS-54/136 VSELP語音編碼僅需12.8 MIPS;
(3) 低功耗方式。TMS320C54X能夠在3.3V或2.7V電壓下工做,三個低功耗方式(IDLE1、IDLE2和IDLE3)能夠節省DSP的功耗,TMS320C54X特別適合於無線移動設備。用TMS320C54X實現IS54/136 VSELP語音編碼僅需31.1mW,實現GSM 語音編碼器僅需5.6mW;
(4) 智能外設。除了標準的串行口和時分複用(TDM)串行口外,TMS320C54X還提供了自動緩衝串行口BSP(auto-Buffered Serial Port)和與外部處理器通訊的HPI(Host Port Interface)接口。BSP可提供2K字數據緩衝的讀寫能力,從而下降處理器的額外開銷,指令週期爲20ns時,BSP的最大數據吞吐量爲50M bit/s,即便在IDLE方式下,BSP也能夠全速工做。HPI能夠與外部標準的微處理器直接接口。
表2.4是TMS320C54X系列部分DSP芯片比較表。
表2.4 TMS320C54X的資源配置
TMS320C54X |
指令週期(ns) |
工做電壓(V) |
片內RAM(字) |
片內ROM(字) |
串行口 |
BSP |
HPI |
C541 |
20/25 |
5/3.3/3.0 |
5K |
28K |
2個標準口 |
|
|
C542 |
20/25 |
5/3.3/3.0 |
10K |
2K |
1個TDM口 |
1 |
1 |
C543 |
20/25 |
3.3/3.0 |
10K |
2K |
1個TDM口 |
1 |
|
C545 |
20/25 |
3.3/3.0 |
6K |
48K |
1個標準口 |
1 |
1 |
C546 |
20/25 |
3.3/3.0 |
6K |
48K |
1個標準口 |
1 |
|
C548 |
15/20/25 |
3.3/3.0 |
32K |
2K |
1個TDM口 |
2 |
1 |
LC/VC549 |
10/12.5/15 |
3.3/2.5 |
32K |
16K |
1個TDM口 |
2 |
1 |
VC5402 |
10 |
3.3/1.8 |
16K |
4K |
|
2 |
1 |
這是TI公司於1997年開發的一種新型定點DSP芯片。該芯片的內部結構與之前的DSP芯片不一樣,內部集成了多個功能單元,可同時執行8條指令,運算能力達1600MIPS。其主要特色有:
(1) 運行速度快。指令週期爲5ns,運算能力爲1600MIPS;
(2) 內部結構不一樣於通常DSP芯片。內部同時集成了2個乘法器和6個算術運算單元,且它們之間是高度正交的,使得在一個指令週期內最大能支持8條32bit的指令;
(3) 指令集不一樣。爲充分發揮其內部集成的各執行單元的獨立運行能力,TI公司使用了VelociTT 超長指令字(VLIW)結構。它在一條指令中組合了幾個執行單元,結合其獨特的內部結構,可在一個時鐘週期內並行執行幾個指令;
(4) 大容量的片內存儲器和大範圍的尋址能力。片內集成了512K字程序存儲器和512K字數據存儲器,並擁有32bit的外部存儲器界面;
(5) 智能外設。內部集成了 4個DMA接口,2個多通道緩存串口,2個32bit 計時器;
(6) 低廉的使用成本。在一個無線基站的應用中,每片TMS320C62X能同時完成30路的語音編解碼,每路成本爲3美圓,而之前的DSP系列最大隻能完成5路,每路的成本爲7美圓。
這種芯片適合於無線基站、無線PDA、組合Modem、GPS導航等須要大運算能力的應用場合。
TMS320C3X是TI的第三代產品,也是第一代浮點DSP芯片。TMS320C3X中目前具備TMS320C30、TMS320C31和TMS320C32三種。TMS320C31是TMS320C30的簡化和改進型,它在TMS320C30的基礎上去掉了通常用戶不經常使用的一些資源,下降了成本,是一個性能價格比較高的浮點處理器,在國內已獲得了較普遍的應用。TMS320C32是TMS320C31的進一步簡化和改進。表2.5示出了三種芯片的比較。
表2.5 三種TMS320C3X芯片的比較
特徵 |
TMS320C30 |
TMS320C31 |
TMS320C32 |
數據/程序總線 |
主總線STRB: 32位數據,24位地址 擴展總線IOSTRB: 32位數據,13位地址 |
STRB: 32位數據,24位地址 |
STRB0:8/16/32位 STRB1: 8/16/32位 IOSTRB:32位 |
內部RAM |
2K字 |
2K字 |
512字 |
串行I/O口 |
2個串行口 |
1個串行口 |
1個串行口 |
用戶程序、數據ROM |
4K字/16K字節 |
無 |
無 |
DMA控制器 |
單通道 |
單通道 |
雙通道 |
程序和數據 存儲器寬度 |
32位 |
32位 |
程序16/32位可選 數據8/16/32位可選 |
外部中斷觸發 |
電平觸發 |
電平觸發 |
電平/邊沿可選 |
中斷矢量表地址 |
固定 |
固定 |
用戶可重定位 |
程序引導 |
無 |
用戶可選 |
用戶可選 |
TMS320C30的指令週期爲50/60/74ns,TMS320C31的指令週期爲33/40/50/60/74ns,TMS320C32的指令週期則爲33/40/50ns。
2.4.1.1 TMS320C3X的硬件資源
TMS320C30的硬件資源至關豐富。其內部包含了2K×32位的快速RAM塊。分開的程序總線、數據總線和DMA總線使得取指、讀寫數據和DMA操做可並行進行,如CPU能夠在一個週期內完成下列操做: 在一個RAM塊中存取兩個數據值,進行一次外部取指,DMA裝入到另外一個RAM塊。64×32位的指令Cache用來存儲常用的代碼塊,這可大大減小片外訪問的次數,從而提升程序運行速度。因爲主總線的地址總線是24位,所以TMS320C30能夠訪問多達16M的32位字的存儲器空間,程序、數據和I/O空間都包含在TMS320C30這個16M字的空間中。
TMS320C30有一個40/32位的浮點/整數乘法器,這個乘法器能夠在單週期內完成24位整數和32位浮點值的乘法,爲了達到更高的性能,能夠採用並行指令在單週期內完成一次乘法和ALU操做。當乘法器進行浮點乘法時,輸入是32位單精度浮點值,而輸出則是40位的擴展精度浮點數。整數乘法時,輸入是24位,而輸出則是32位。
TMS320C30的整數/浮點算術邏輯運算單元ALU能夠進行單週期的32位整數、32位邏輯數和40位的浮點數操做,ALU的運算結果是32位整數或40位浮點數。內部的桶形移位器能夠在單週期內進行高達32位的左移或右移。內部總線CPU1/CPU2和REG1/REG2可從存儲器中取兩個操做數和從寄存器取兩個操做數,這就使得對四個操做數進行乘和加/減能夠在單週期內完成。
TMS320C30內有兩個輔助寄存器算術單元(ARAU0和ARAU1), 它們能夠在單週期內產生兩個地址。ARAU 的操做是和乘法器及ALU的操做並行進行的。ARAU支持多種尋址方式。
TMS320C30提供28個寄存器,這些寄存器能夠由乘法器和ALU操做,能夠用做通用的寄存器。可是,它們也有一些特殊的功能,如8個擴展精度的寄存器(R0~R7)可當累加器使用,特別適合用於存放擴展精度的浮點結果。8個輔助寄存器(AR0~AR7)支持一系列間接尋址方式,而且能夠用做通用的32位整數和邏輯寄存器。其餘寄存器提供一些系統功能,如尋址、堆棧管理、處理器狀態、中斷和塊重複等。
TMS320C30的外設是經過存儲器映射的寄存器對外設總線進行控制的,外設總線由32位數據總線和24位地址總線組成,容許與外設直接通訊。TMS320C30的外設包括兩個可支持8/16/24/32位數據交換的串行口和兩個32位定時器。串行口的時鐘能夠由內部產生也可由外部提供,串行口的引腳能夠配置爲通用的I/O引腳,特殊的握手方式可保證TMS320C30與串行口的同步。定時器是通用的32位定時器或事件計數器,具備兩種信號方式,可由內部或外部提供時鐘,每一個定時器對應有一個I/O引腳,可做爲定時器的輸入時鐘或輸出時鐘,也可配置爲通用的I/O引腳。
片內的DMA功能使得CPU與I/O操做可同時進行。DMA控制器能夠在存儲器的任何地址進行讀寫操做而不干擾CPU的操做,所以TMS320C30可與外部的慢速存儲器或外設接口而不下降CPU的吞吐量。
兩個通用的外部引腳(XF0,XF1)可由軟件設置爲輸入或輸出,這兩個引腳也用做TMS320C30的互鎖操做,用於多處理器之間的通訊。
除了主總線以外,TMS320C30還有一條擴展總線。擴展總線的數據線爲24位,地址線爲13位,其操做可與主總線操做同時進行,也可獨立於主總線。與主總線相比,擴展總線上的I/O口的讀寫週期爲2個H1週期,便是主總線的2倍。擴展總線一般用於I/O操做,如A/D、D/A等。
TMS320C30內部有4K字的ROM,在微計算機方式下,程序由內部開始運行。
TMS320C31是TMS320C30的簡化和改進型,它去掉了擴展總線、一個串行口和內部的4K字ROM,增長了程序的引導功能。當MCBL/MP\引腳爲高電平時,工做於微計算機自引導方式,在這種方式下,TMS320C31可從三個特定的地址裝入程序(BOOT1,BOOT2,BOOT3),也可從串行口裝入程序。與EPROM接口時,用戶可用軟件設定等待週期個數,固然也可用硬件來產生等待週期,可設定是按字節(8位)、半字(16位)或字(32位)裝入,應用靈活。從串行口裝入時,採用固定的32位突發方式。裝入方式設置是經過復位以後設置四個外部中斷之一來實現。
TMS320C32是TMS320C31的簡化和改進型。簡化主要是將內部的RAM由2K字減小爲512字,以下降成本。改進之處包括:外部存儲器寬度可變,中斷矢量表可重定位,外部中斷可由軟件選擇是電平觸發仍是邊沿觸發,DMA控制器增長了一個通道,此外,還增長了兩種節電運行方式。
TMS320C3X均提供HOLD功能和JTAG仿真功能。
2.4.1.2 TMS320C3X的軟件資源
1.豐富的指令系統
TMS320C3X的彙編語言指令集特別適合於數字信號處理。全部指令佔一個機器字長,大部分指令是單週器的。指令集共有113條指令,能夠分爲六類: 數據傳送類、二操做數算術/邏輯類、三操做數算術/邏輯類、程序控制類、互鎖操做類及並行操做類。12條數據傳送指令可從存儲器中讀一個字裝入寄存器,將一個字從寄存器中存入存儲器中及進行堆棧操做。二操做數指令有35條,提供整數、浮點、邏輯運算及多精度算術操做。17條三操做數指令能夠在一個指令週期內完成具備三個操做數的運算,其中兩個是源操做數,另外一個是目的操做數。程序控制指令共16條,它們影響程序的流向,其中有塊重複指令RPTB和單指令重複指令RPTS。除了有標準跳轉指令外,還有延遲跳轉指令,有些指令具備條件運算功能。5條互鎖操做指令主要用來進行多處理器之間的通訊。剩下的28條指令都是並行操做指令,每條並行指令由兩條指令用符號「||」鏈接,並行操做指令可以使「||」先後的兩條指令並行完成。須要注意的是,並非任意兩條指令均可構成並行指令。
2.靈活的程序控制
TMS320C3X提供至關靈活的程序流控制。軟件的程序控制包括重複、跳轉、調用、陷阱及返回等。
TMS320C3X重複方式能夠實現無開銷循環。塊重複指令RPTB可使一塊代碼重複執行指定的次數,而單指令重複指令RPTS使一條指令重複執行指定的次數,因爲RPTS取指次數只有一次,所以減小了總線衝突的機會。這裏須要特別注意的是,RPTS指令禁止中斷,而RPTB無此禁忌。所以在須要中斷的場合,建議採用RPTB指令代替RPTS指令。
TMS320C3X提供兩種類型的跳轉:標準跳轉和延遲跳轉。標準跳轉首先將流水線清空而後執行跳轉,這可保證程序計數器的正確管理,但卻使跳轉指令需4個週期才能執行完畢。延遲跳轉則相反,它並不將流水線清空,而是保證在程序跳轉以前執行它下面的3條指令,這樣使得跳轉指令自己僅需1個指令週期。固然有些指令(如CALL、RPTB等)不能出如今延遲跳轉指令下面的3條指令。延遲跳轉指令在它下面3條指令完成前禁止中斷。
互鎖操做可用來實現多個TMS320C3X之間的通訊。經過採用外部信號(XF0,XF1),互鎖操做指令提供強有力的同步機制,可用來實現忙等待循環、兩個TMS320C3X之間的同步(無需額外的硬件支撐)和多個計數器控制等。
3.流水線操做
流水線操做是TMS320C3X具備高性能的特性之一。5個功能單元控制TMS320C3X的操做:取指(F)、譯碼(D)、讀操做數(R)、執行(E)和DMA。流水線操做就是一個基本指令的取指、譯碼、讀操做數和執行的並行操做。流水線的結構如圖2.2所示。
週期 F D R E
m-3 W
m-2 X W
m-1 Y X W
m Z Y X W ←徹底重疊
m+1 Z Y X
m+2 Z Y
m+3 Z
注:W、X、Y、Z表明指令;F、D、R、E分別表明取指、譯碼、讀操做數和執行。
圖2.2 TMS320C3X的流水線結構
圖中在m週期,流水線徹底重疊,4個單元的操做同時進行。5個功能單元的優先級從高到低依次是E、R、D、F、DMA。當一條指令的處理已經準備好到流水線的下一級,但那一級尚未準備好接收新的輸入時,就出現所謂的流水線衝突。在這種狀況下,低優先級的單元處於等待狀態直到高優先級的單元完成它的當前操做。儘管DMA的優先級最低,但因爲DMA控制器具備本身的數據和地址總線,所以,經過合適的數據結構,DMA與CPU的衝突能夠減小甚至消除。
流水線衝突能夠分爲下列三大類:跳轉衝突、寄存器衝突和存儲器衝突。這三類衝突均可以採起相應的一些手段予以解決,如因爲標準跳轉引發的跳轉衝突能夠採用延遲跳轉的方法來克服。
4.尋址方式多樣
TMS320C3X支持5類尋址方式,在這些類中又可採用6種尋址類型。5類尋址方式是:①通用尋址方式;②三操做數尋址方式;③並行尋址方式;④長當即數尋址方式;⑤條件跳轉尋址方式。6種尋址類型是:①寄存器尋址;②直接尋址;③間接尋址;④短當即數尋址;⑤長當即數尋址;⑥相對尋址。此外,TMS320C30還有兩種數字信號處理中很是有用的尋址方式,一種是圓周尋址方式,主要用於卷積和相關等運算中存儲器循環緩衝;另外一種尋址方式是比特反轉尋址,主要用於FFT運算。
TMS320C4X系列浮點處理器是專門爲實現並行處理和知足其餘一些實時應用的需求而設計的。其主要性能包括275 MOPS的驚人速度和320Mbyte/s的吞吐量。
2.4.2.1 TMS320C40的主要特徵
(1) 具備6個用於處理器間高速通訊的通訊口。每一個口的最大數據吞吐量可達20Mbyte/s的異步傳輸速率。處理器之間可直接對通,應用方便、靈活;
(2) 6個DMA通道實現了I/O操做與CPU操做的並行化。每一個DMA通道都具有自初始化的能力,無需CPU來完成初始化的工做,從而最大限度地保證了CPU的性能,數據能夠在處理器內存映像的任意範圍內傳遞,具備高度的靈活性;
(3) CPU的處理能力達275 MOPS,數據吞吐量爲320Mbyte/s。因爲高度的並行化,TMS320C40 的CPU在每一個週期內能夠完成11次操做。指令週期的時間爲40ns和50ns。40/32位的單週期浮點/整數乘法爲大運算量的算法提供了高性能。單週期IEEE浮點格式轉換爲IEEE兼容的處理器提供了一個有效的界面。硬件支持除法和平方根倒數運算。具備字節和半字長控制的能力,以實現快速數據壓縮和解壓。源代碼與TMS320C3X兼容,可移植性好。支持線性、循環和比特反轉的尋址方式。單週期跳轉、調用和返回,以實現快速程序控制。0~31bit的單週期桶形循環左右移位;
(4) 兩條分開的外部數據、地址總線支持共享存儲器系統和高速數據速率、單週期傳輸。端口數據傳輸速率高達100Mbyte/s。16G字連續的程序/數據/外設地址空間爲系統設計帶來最大的靈活性。狀態管腳標明存儲器訪問類型,以在共享存儲器系統中實現快速、智能化的總線仲裁。分離的地址、數據和控制使能管腳可實現高速總線仲裁。4組存儲器控制信號支持硬件上不一樣速率的存儲器,使用者能夠靈活有效地利用各類高、低速率存儲器;
(5) 片內分析模塊支持高效的並行處理調試。爲程序、數據和DMA訪問提供了分離的斷點比較器,爲快速調試和開發提供了片內硬中斷的能力。爲硬件追蹤設置了非連續棧,可方便快速地調試、開發。具備事件計數器。爲標準系統鏈接留有JTAG界面;
(6) 片內程序高速緩衝存儲器(Cache)和雙向存取/單週期RAM提升了存儲器訪問的性能。片內存儲器包括:128字的指令高速緩衝存儲器;2K字的單週期雙向存取程序/數據RAM;ROM中的引導程序支持從8/16/32位中的任一種存儲器經過任一通訊端口裝入程序;
(7) 分開的內部程序、數據和DMA總線使程序和數據的I/O操做高度並行化,最大限度地保證了CPU的性能。
2.4.2.2 TMS320C40的結構
TMS320C40的高性能是經過其高精度、寬動態範圍的浮點處理單元,大容量的片內存儲器,高度的並行化,以及6個DMA協處理器通道體現出來的。
1.CPU
TMS320C40有一個基於寄存器的CPU,其組成部分以下:
(1) 浮點/整數乘法器
經過高度的並行化措施,TMS320C40能夠在一個40ns的指令週期內對32位的整型數或40位的浮點數完成一次乘法操做。若輸入爲40位的浮點數,則輸出也是40位的浮點數;若輸入爲32位的整型數,則乘積爲64位,輸出既能夠是32個高有效位,也能夠是32個低有效位。
(2) 算術邏輯單元(ALU)
ALU對32位的整型數、32位的邏輯數、40位的浮點數執行單週期操做,包括單週期的整型和浮點轉換。桶形移位寄存器用來完成單週期的32位左右移位。
內部總線CPU1/CPU2和REG1/REG2分別鏈接存儲器和內部寄存器,這樣就容許在單週期內對4個整型或浮點數並行進行加/減和乘法運算。
(3) 輔助寄存器運算單元(ARAU)
2個輔助寄存器運算單元(ARAU0和ARAU1)可在單週期內產生2個地址。ARAU與乘法器及ALU並行操做。它們支持帶有偏移的尋址、變址寄存器(IR0和IR1)尋址、循環尋址和比特反轉尋址。
(4) CPU主寄存器組
TMS320C40具備32個主寄存器,其中包括12個40位的擴展精度寄存器(R0~R11),8個32位的輔助寄存器(AR0~AR7),1個32位的數據頁指針(DP),32位變址寄存器(IR0和IR1),32位塊長寄存器(BK),32位的系統棧指針(SP),狀態寄存器(ST),DMA中斷容許寄存器(DIE),CPU內部中斷容許寄存器(IIE),I/O標誌寄存器,32位的重複計數器(RC)及32位的重複起始地址寄存器(RS)和重複終止地址寄存器(RE)。程序計數器(PC)是一個32位寄存器,裝有下一條要提取指令的地址。雖然PC不是CPU寄存器組的成員,但用修改程序流的指令可對它進行修改。
(5) CPU擴展寄存器組
擴展寄存器組包括2個特殊的指針寄存器:IVTP指向中斷矢量表,TVTP指向陷阱矢量表。
2.存儲器組織
TMS320C40總的存儲器空間可達4G×32位字。程序存儲器(片內RAM或ROM和外部存儲器)、定時器、通訊口和DMA通道等都包含在這一空間內。這樣就使得係數、表、程序代碼或數據既可存儲在RAM中,亦可存儲在ROM中,從而使存儲器的利用率達到最高,存儲器空間可按要求分配地址。
經過控制一個外部管腳(ROMEN),存儲器起始的1M字節的地址空間(0000 0000h到000F FFFFh)既能夠映射到局部地址總線的一部分,也能夠在使用裝入程序時指向片內ROM。
(1) RAM、ROM和高速緩衝存儲器
TMS320C40的片內包含2個4K字節(1K×32位)的RAM區。片內ROM區保留用做引導程序區。每個RAM和ROM區都支持單週期內兩次存取。分開的程序總線、數據總線和DMA總線,使得指令的讀取、數據的讀寫及DMA操做能夠並行進行。例如,在一個週期內CPU可在一個RAM塊上存取2個數據,執行一次外部指令的讀取,同時DMA可對另外一個RAM塊做直接存儲器存取。
一個128×32位的指令高速緩衝存儲器用來存儲常常重複的代碼段,從而大大地減小了必要的片外存取次數。這樣就使代碼能存儲在較慢的、價格較低的片外存儲器。外部總線還可被釋放,以供DMA、外部存儲器操做或系統中的其餘設備使用。
(2) 內部總線操做
TMS320C40的高性能在很大程度上歸功於其內部總線結構及由之帶來的並行性。分開的程序總線、數據總線和DMA總線使指令的讀取、數據的存取和DMA操做能夠並行進行。這些總線連結C40支持的全部物理空間。
程序計數器(PC)與32位的程序地址總線相連,指令寄存器(IR)與32位的程序數據總線相連,在每個機器週期內能夠讀取一個指令字。
32位的數據地址總線和32位的數據總線在每個機器週期中支持兩次數據的存儲器操做。數據總線經過CPU1和CPU2總線傳送數據到CPU。CPU1和CPU2總線在每一機器週期可傳送2個數據存儲器操做數到乘法器、ALU及寄存器組。在CPU內部還有2條寄存器總線REG1和REG2,它們在每一機器週期內,可從寄存器組傳送2個數據到乘法器。
DMA控制器由32位地址總線和32位數據總線支持。這些總線使DMA能與數據及程序總線並行地執行存儲器操做。
(3) 外部總線操做
TMS320C40具備2個外部接口:全局總線和局部總線。它們都包含1個32位的數據總線、1個31位的地址總線和2組控制信號。這些總線均可用來對外部程序/數據存儲器或I/O進行尋址。這些總線還有一個外部 信號,用於等待狀態的產生。可在軟件控制下插入附加的等待狀態。
(4) 外設
TMS320C40的外設是經過存儲器映射寄存器,由一專用的外設總線控制。這一外設總線能夠直接與外部設備進行通訊。TMS320C40的外設包括2個定時器和2個串行口。
(5) 直接存儲器訪問(DMA)
6個通道的片內DMA控制器能夠讀寫存儲器中的任意單元,而沒必要涉及CPU的操做。所以TMS320C40能夠與相對較慢的外部存儲器和外設接口而不下降CPU的處理能力。DMA控制器有本身的地址發生器、源地址和目的地址寄存器及傳輸計數器。專用的DMA地址和數據總線使CPU與DMA控制器之間的衝突降到了最低的程度。一個DMA操做包括對存儲器作一塊或單個字的存取操做。DMA協處理器的一個關鍵特性就是它的每個通道在進行一次數據傳輸以前都有自動從新初始化的功能。
總而言之,因爲有一個功能強大的CPU、大規模的存儲器以及有足夠寬的總線來支持其速度,TMS320C40是一個功能強大的DSP芯片。
3.CPU寄存器、存儲器和高速緩衝存儲器
CPU主寄存器組包括32個寄存器,用來存放乘法器和ALU的操做數。這個寄存器組包括輔助寄存器、擴展精度寄存器和變址寄存器等。這些寄存器支持尋址、浮點/整型操做、棧操做、處理器狀態記錄、塊重複、分支跳轉和中斷等功能。
CPU擴展寄存器組包括中斷矢量表指針(IVTP)和陷阱矢量表(TVTP)。
TMS320C40可以訪問的最大存儲器範圍爲4G個32位字(16G字節)的程序、數據和I/O空間。2個片內RAM塊均爲1K×32位。片內ROM塊包含有自引導程序,每塊都支持單週期內2次訪問操做。
1個128×32位的指令高速緩存能夠裝入指令代碼中重複率高的部分。高速緩存大大減小了片外操做的次數,這樣就容許將指令代碼存放在片外的低速、廉價的存儲器中而又不下降系統的性能。同時因爲高速緩存減小了總線上程序指令的讀取次數,使得在同一物理空間內進行的數據存取速度大大加快。CPU狀態寄存器中的3個比特控制着高速緩衝存儲器的清除、容許和凍結。
(1) CPU寄存器
TMS320C40提供了32個CPU主寄存器(不包括程序計數器PC)和2個擴展寄存器。
主寄存器均可以用做32位的通用寄存器,存放乘法器及ALU的操做數。除此以外,還有一些更適合於這些寄存器的特殊功能。例如12個擴展精度特別適用於存放擴展精度的浮點運算結果;8個輔助寄存器支持各類間接尋址方式;其他寄存器提供尋址、堆棧管理、處理器狀態、中斷和塊重複等系統功能。
(2) 存儲器分配
TMS320C40總的存儲器空間爲4G字。有兩種地址編排方式,其區別僅在前1M字以內,由外部引腳ROMEN的值控制:ROMEN=1時,0000 0000h~0000 0FFFh爲一個可訪問的片內ROM區(保留用做引導程序),0000 01FFh~000F FFFFh保留;ROMEN=0時,片內ROM不在C40的存儲器空間中,0000 0000h~000F FFFFh被映射到局部總線上。
(3) 指令高速緩衝存儲器(Cache)
128×32位的指令高速緩存不但減小了片外取指的次數,同時也將外部總線從程序取指中解脫出來,從而能夠被DMA或其餘系統部件所採用。
Cache能以徹底自動的方式工做而無需用戶的干預。它使用的是LRU(Least recently used,最近最少使用)算法。
4.數據格式與浮點操做
在TMS320C40的體系結構中,數據有3種基本類型:整型、無符號整型和浮點型。TMS320C40對有符號和無符號整型支持短格式和單精度格式,而對於浮點數則支持短格式、單精度和擴展精度3種格式。
浮點操做具備迅速、簡單、正確和精度高的特色。特別是TMS320C40能夠以整型運算的速度來執行浮點操做,同時還能夠避免整型運算中的溢出等問題。
5.尋址
TMS320C40有如下5種尋址類型:
(1) 寄存器尋址: 在一個CPU的寄存器中包含有操做數;
(2) 直接尋址:數據地址由數據頁指針(DP)的16個低有效位和指令字中的16個低有效比特組成;
(3) 間接尋址:間接尋址是經過一個輔助寄存器和變址寄存器的內容來操做在存儲器中的地址。地址運算是由輔助寄存器運算單元來完成的,而且是無符號的。(輔助寄存器和變址寄存器的全部32位都在間接尋址中用到);
(4) 當即尋址:操做數是指令字中的16個低有效位構成的1個16位的當即數;
(5) PC相對尋址:PC相對尋址用於分支轉移。它用指令字中的16或24個低有效比特來替換程序計數器(PC)的當前值。
TMS320C40的尋址方式包括:通用尋址方式、三操做數尋址方式、並行尋址方式、條件轉移尋址方式、圓周尋址方式和比特反轉尋址方式。
這是TI公司繼定點DSP芯片TMS320C62X系列後開發的一種新型浮點DSP芯片。該芯片的內部結構在TMS320C62X的基礎上加以改進,內部一樣集成了多個功能單元,可同時執行8條指令,其運算能力可達1G FLOPS。除了具備TMS320C62X系列的特色外,其主要特色還有:
(1) 運行速度快。指令週期爲6ns,峯值運算能力爲1336 MIPS,對於單精度運算可達1G FLOPS,對於雙精度運算可達250M FLOPS;
(2) 硬件支持IEEE格式的32 比特 單精度與64比特雙精度浮點操做;
(3) 集成了32×32 比特的乘法器,其結果可爲32或64比特;
(4) TMS320C67X的指令集在TMS320C62X的指令集基礎上增長了浮點執行能力,能夠看做是TMS320C62X指令集的超集。TMS320C62X指令能在TMS320C67X上運行,而無需任何改變。
與TMS320C62X系列芯片同樣,因爲其出色的運算能力、高效的指令集、智能外設、大容量的片內存儲器和大範圍的尋址能力,這個系列的芯片適合於對運算能力和存儲量有高要求的應用場合。
TI公司除了生產定點和浮點兩類DSP芯片以外,還推出了功能強大的多處理器DSP芯片TMS320C80。該芯片內部集成了5個微處理器,處理速度達到每秒20億次操做,與外部交換數據的速度爲每秒400Mbyte,特別適合於會議電視等多媒體應用。
1.TMS320C80結構
圖2.3所示爲TMS320C80的內部結構。
圖2.3 TMS320C80的內部結構
從圖中能夠看出,TMS320C80是一個多處理器芯片,它集4個可並行處理的高性能DSP芯片、1個RISC主處理器、1個傳輸控制器、1個視頻控制器和50K字節的SRAM等資源於一體,從而使其處理能力達到每秒20億次操做(2 BOPS)。該芯片可實時實現新一代的視頻壓縮和解壓縮,可普遍應用於會議電視、可視電話、高速電信、多媒體、圖像和視頻處理、二維和三維圖形加速、虛擬現實、保密、雷達和聲納處理等應用場合。
2.並行DSP芯片
TMS320C80上集成了4個高性能的DSP芯片,這4個DSP芯片既可獨立運行,也可並行工做。採用64位的指令字,以便於在單個週期內進行多個並行操做。每一個處理器具備專用的高速指令緩衝Cache和專用的數據RAM。
每一個DSP芯片具備4個主要的功能單元,即1個程序控制器(PFC)、1個數據單元和2個地址單元。PFC處理全部的指令執行,包括程序計數器增量、跳轉和中斷。3組無開銷循環控制器跟蹤循環計數和循環的起始及結束地址,而不增長額外的開銷。循環控制器在1個公共的循環結束地址內可支持多至3個嵌套的循環。
數據單元可以使單週期乘法和算術邏輯單元(ALU)數據通路操做並行執行。32位的ALU能夠分解爲2個16位ALU或4個8位ALU,以便於對低精度的數據進行更多的並行操做。ALU數據通路內獨特的擴展器單元可複製1個1比特值32次、2個1比特值16次或4個8比特數8次以填滿1個32位字。這些特徵對於減小圖像算法中的軟件開銷頗有幫助。
3.傳輸控制器
TMS320C80能夠每秒400M字節的速度與外部交換數據,這個性能主要依賴於片內的傳輸控制器。在這裏,傳輸控制器起智能DMA控制器的做用,進行對片外存儲器的訪問,使主處理器不增長任何負擔。傳輸控制器可對二維圖形進行線性和二維尋址,支持三維圖形緩衝。
直接存儲器接口提供了對多種存儲器的靈活操做,包括DRAM、SDRAM、VRAM和SRAM。此外,優先級任務管理器支持動態的總線寬度,可支持8至64位數據傳輸。靈活的總線寬度知足瞭如會議電視等的寬帶應用,而不需專用的接口。
4.RISC主處理器
RISC主處理器(MP)進行整個芯片的管理並協調與系統內其餘處理器的通訊。該處理器是一個32位的RISC處理器,內部具備一個 運 算能力爲100 MFLOPS 並符合IEEE-754標準的浮點單元(FPU),用以實現高效C語言和做爲操做系統的平臺。該處理器主要是適應高級語言並協調片內的多處理器資源,可在單週期內完成1個64位數據的訪問和1個32位取指。與基本的RISC設計相比,其獨特之處在於MP具備完整的浮點指令和一組特殊的矢量浮點指令,這些功能對於圖像處理和三維圖形來講都是必需的。此外,MP還具備31個32位的寄存器,爲整數和浮點操做提供了極大的便利。
5.存儲器Crossbar結構
TMS320C80的一個重要特徵是存儲器Crossbar結構。TMS320C80內部有50K字節的SRAM,這些存儲器被配置爲較小的存儲器塊以便於經過這個獨特的Crossbar開關結構實現多個並行的存儲器訪問。Crossbar開關還便於片內處理器共享板上RAM。在TMS320C80中,Crossbar在每一個時鐘週期內可進行5次取指和10次並行數據訪問,從而使傳輸速率達到每秒4.2G字節。硬件控制的優先級機制使得在同一個週期內僅有一個處理器訪問一個特定的RAM。存儲器Crossbar結構加強了系統的高速並行性能。
6.視頻控制器
視頻控制器具備2個可編程的幀定時器,可按水平或縱向格式同時捕獲和顯示圖像。幀定時器可用於任何捕獲/顯示的組合中,對不一樣速率的圖像捕獲可按異步或同步方式工做。因爲幀定時器是軟件可編程的,故可用做通用定時器。
在TMS320C80基礎上,TI公司還推出了簡化型的多處理器芯片TMS320C82,其內部包含2個處理器、44K字節的SRAM,性能爲每秒15億次操做,因爲省略了2個處理器和視頻控制器,其價格約爲TMS320C80的一半。表2.6所示爲二者的性能比較。
表2.6 TMS320C80/C82的主要性能比較
芯片 |
DSP數 |
RISC 主處理器 |
視頻 控制器 |
傳輸 控制器 |
指令週期 (ns) |
尋址空間 (字節) |
片內RAM (字節) |
處理能力(BOPS) |
時鐘 (MHz) |
C80 |
4 |
1 |
1 |
1 |
20,25 |
4G |
50K |
2 |
50,40 |
C82 |
2 |
1 |
0 |
1 |
20 |
4G |
44K |
1.2 |
50 |
美國AD公司在DSP芯片市場上也佔有必定的份額。與TI公司相比,AD公司的DSP芯片有本身的特色,如系統時鐘通常不經分頻直接使用,串行口帶有硬件壓擴,可從8位EPROM引導程序,可編程等待狀態發生器等。
AD公司的DSP芯片能夠分爲定點DSP芯片和浮點DSP芯片兩大類。ADSP21XX系列爲定點DSP芯片,ADSP21XXX系列爲浮點DSP芯片。目前,定點DSP芯片主要有ADSP2101/2103/2105,ASDP2111/2115,ADSP2161/2162/2163/2164/2165/2166以及ADSP2171/2173/2181等。浮點DSP芯片主要有ADSP21000/21020,ADSP21060/21062等。
AD公司的定點DSP芯片的程序字長爲24位,數據字長爲16位。運算速度較快,內部具備較爲豐富的硬件資源,通常具備2個串行口、1個內部定時器和3個以上的外部中斷源,此外還提供8位EPROM程序引導方式。具備一套高效的指令集,如無開銷循環、多功能指令、條件執行等。
ADSP2101的指令週期有80ns、60ns和50ns三種,內部有2K字的程序RAM和1K字的數據RAM。ADSP2103與ADSP2101相比,指令週期爲100ns,工做電壓爲3.3V。ADSP2105是ADSP2101的簡化,指令週期爲72ns,內部的程序RAM爲1K字,數據RAM爲512字,串行口減爲1個。
ADSP216X系列的指令週期爲50ns~100ns,與其餘定點芯片相比,具備較大的內部程序ROM,如ADSP2161/2163內部提供了8K的程序ROM,ADSP2162/2164內部提供4K程序ROM,工做電壓爲3.3V,這些芯片的內部數據RAM均爲512字。而ADSP2165/2166除了具備1K字的程序ROM外,還提供了12K字的程序RAM和4K字的數據RAM,其中,ADSP2166的工做電壓爲3.3V。
ADSP2171的指令週期爲30ns,速度達33.3MIPS,是AD公司DSP芯片中運算速度最快的定點芯片之一。內部具備2K字的程序RAM和2K字的數據RAM。ADSP2173的資源與ADSP2171相同,工做電壓爲3.3V。
目前ADSP的定點DSP芯片中,處理能力最強的當數ADSP2181。這種芯片具備如下幾個特色:
(1) 運算速度快。指令週期爲30ns,運算能力爲33.3MIPS;
(2) 片內空間大。內部的程序和數據RAM均爲16K字,共80K字節;
(3) 數據交換速度快。內部具備數據直接存儲傳輸接口(IDMA),便於其餘處理器高速存儲ADSP2181的片內RAM。爲了擴展數據存儲能力,設計了字節數據直接存儲傳輸接口(BDMA),最大能夠擴展到4M字節。2個串行口都具備自動數據緩衝功能,而且支持DMA傳輸;
(4) 支持8位EPROM和經過IDMA方式的程序引導;
(5) 若是採用基4 FFT作1024點複數FFT運算,運算時間僅爲1.07ms。
ADSP2181在一個處理器週期內能夠完成如下功能:
產生下一個程序地址
取下一個指令
進行1個或2個數據移動
更新1個或2個數據地址指針
進行1次數據運算
與此同時,還可從2個串行口發送或接收數據,經過IDMA或BDMA發送或接收數據以及內部定時器計數。
AD公司的浮點DSP芯片包括ADSP21020、21060和21062等,程序存儲器爲48位,數據存儲器爲40位,支持32位單精度和40位擴展精度的IEEE浮點格式,內部具備32×48位的程序Cache,有3~4個外部中斷源。
ADSP21060採用超級的哈佛結構,具備4條獨立的總線(2條數據總線、1條程序總線和1條I/O總線),內部集成了大容量的SRAM和專用I/O總線支持的外設,指令週期爲25ns,是一個高性能的浮點DSP芯片。其主要特色包括:
(1) 運算速度達40 MIPS和80 MFLOPS ,最高達120 MFLOPS。每條指令均在1個週期內完成;
(2) 片內具備4M位的SRAM,可靈活地進行配置,如配置爲128K字的數據存儲器(32位)和80K字的程序存儲器(48位)。可尋址4G字的外部存儲器;
(3) 具備取模和比特反轉的雙數據地址產生器;
(4) 10個DMA通道。6個點到點鏈接口,傳輸速率爲240Mbyte/s;
(5) 支持多處理器鏈接,提供與16/32位微處理器的接口。外部微處理器可直接讀寫內部RAM;
(6) 2個具備m/A律壓擴功能的同步串行口;
(7) 支持可編程等待狀態發生,可用8位EPROM或外部處理器引導程序;
(8) 1024點複數FFT的運算時間爲 0.46ms;
(9) 支持IEEE JTAG 1149.1 標準仿真接口。
AT&T是第一家推出高性能浮點DSP芯片的公司。AT&T公司的DSP芯片包括定點和浮點兩大類。定點DSP芯片中有表明性的主要包括DSP16、DSP16A、DSP16C、DSP1610和DSP1616等。浮點DSP芯片中比較有表明性的包括DSP32、DSP32C和DSP3210等。
AT&T定點DSP芯片的程序和數據字長均爲16位,有2個精度爲36位的累加器,1個深度爲15字的指令Cache,支持最多127次的無開銷循環。DSP16的指令週期爲55ns和75ns,累加器長度爲36位,片內有2K字的程序ROM和512字的數據RAM。DSP16A速度最快的版本爲25ns的指令週期,片內有12K字的程序ROM和2K字的數據RAM。DSP16C的指令週期爲38.5ns和76.9ns,片內存儲器資源與DSP16A相同,增長了片內的Codec,此外,還有1個4引腳的JTAG仿真口。DSP1610片內有512字的引導ROM和8K字的雙口RAM,支持硬件和軟件等待狀態。DSP1616片內有12K字的ROM和2K字的雙口RAM,支持軟件等待狀態。DSP1610和1616提供了仿真接口。
DSP32C是DSP32的加強型,是性能較優的一種浮點DSP芯片。其主要特色包括:
(1) 80/100 ns的指令週期;
(2) 地址和數據總線能夠在單個指令週期內訪問4次;
(3) 片內具備3個512字的RAM塊,或2個512字的RAM塊加1個4K字的ROM塊。能夠尋址4M字的外部存儲器;
(4) 具備串行和並行I/O接口。串行I/O採用雙緩衝,支持8/16/24/32位串行數據傳輸,外部微處理器能夠控制DSP32C的8/16位並行口;
(5) 採用專用的浮點格式,可在單週期內與IEEE-754浮點格式進行轉換;
(6) 具備4個40位精度的累加器和22個通用寄存器;
(7) 支持無開銷循環和硬件等待狀態。
DSP3210內部具備2個1K字的RAM塊和512字的引導ROM,外部尋址空間達4G字節,能夠用軟件編程產生等待狀態,具備串行口、定時器、DMA控制器和一個與Motorola和Intel微處理器兼容的32位總線接口。
Motorola公司的DSP芯片可分爲定點、浮點和專用三種。
定點DSP芯片以MC56000、MC56001、MC56002爲表明。程序和數據字長爲24位,有2個精度爲56位的累加器。DSP56001的指令週期爲60ns和74ns兩種。片內具備512字的程序RAM、512字的數據RAM和512字的數據ROM。三個分開的存儲器空間,每一個都可尋址64K字。片內32字的引導程序能夠從外部EPROM裝入程序。支持8位異步和8~24位同步串行I/O接口。並行接口可與外部微處理器接口,支持硬件和軟件等待狀態產生。MC56000是ROM型的DSP芯片,內部具備2K字的程序ROM。MC56002則是一個低功耗型芯片,能夠在2.0V~5.5V電壓範圍內工做。
浮點DSP芯片以MC96002爲表明,採用IEEE-754標準浮點格式,累加器精度達96位,可支持雙精度浮點數。該芯片的指令週期爲50/60/74ns。片內有3個32位地址總線和5個32位數據總線。內部具備1K字的程序RAM、1K字的數據RAM和1K字的數據ROM。64字的引導ROM能夠從外部8位EPROM引導程序。內部具備10個96位或30個32位基於寄存器的累加器。 支持無開銷循環、硬件和軟件等待狀態產生。具備三個獨立的存儲空間,每一個空間可尋址4G字。
MC56200是一種基於MC56001 DSP核,適合於自適應濾波的專用定點DSP芯片,指令週期爲97.5ns,程序字長和數據字長分別爲24位和16位。內部的程序和數據RAM均爲256字,累加器精度爲40位。MC56156則是一個在片內集成了過取樣å-D話帶Codec模數轉換器和鎖相環的DSP芯片,主要用於蜂窩電話等通訊應用,其指令週期爲33/50ns。
除了以上介紹的一些DSP芯片以外,還有一些公司的DSP芯片也較著名。例如NEC公司的mPD77C25、mPD77220定點DSP芯片和mPD77240浮點DSP芯片等。
本章首先介紹了DSP芯片的基本結構,比較詳細地介紹了TI公司的系列DSP芯片的基本特徵,並簡要介紹了AD等公司的DSP芯片。瞭解DSP芯片的結構和特徵是採用DSP芯片設計DSP系統的基礎。須要特別指出的是,因爲DSP芯片的發展速度很快,用戶在選用DSP芯片時,必須根據市場行情選用生產廠家主推的產品。如TI公司目前比較流行的定點DSP芯片是TMS320C2XX、TMS320C54X、TMS320C62X等,即便是同一系列的DSP芯片,如TMS320C54X,該系列中的某些芯片也已過期,於是建議不要使用。