第3章TMS320C54x的硬件結(jié)構(gòu)1_第1頁
第3章TMS320C54x的硬件結(jié)構(gòu)1_第2頁
第3章TMS320C54x的硬件結(jié)構(gòu)1_第3頁
第3章TMS320C54x的硬件結(jié)構(gòu)1_第4頁
第3章TMS320C54x的硬件結(jié)構(gòu)1_第5頁
已閱讀5頁,還剩151頁未讀, 繼續(xù)免費(fèi)閱讀

下載本文檔

版權(quán)說明:本文檔由用戶提供并上傳,收益歸屬內(nèi)容提供方,若內(nèi)容存在侵權(quán),請(qǐng)進(jìn)行舉報(bào)或認(rèn)領(lǐng)

文檔簡(jiǎn)介

13.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性3.2總線結(jié)構(gòu)3.3中央處理單元(CPU)3.4存儲(chǔ)器3.5片內(nèi)外設(shè)3.6復(fù)位操作及省電方式3.7中斷3.8流水線3.9TMS320C54x系列DSP的引腳及說明3.10本章小結(jié) 第3章TMS320C54x的硬件結(jié)構(gòu)第3章TMS320C54x的硬件結(jié)構(gòu)下一頁返回上一頁退出首頁2內(nèi)容簡(jiǎn)介TMS320C54x(簡(jiǎn)稱C54x)系列DSP是TI公司推出的低功耗、高性能的16位定點(diǎn)數(shù)字信號(hào)處理器,具有很好的操作靈活性和很高的運(yùn)行速度。由于TMS320C54x使用CPU的并行運(yùn)行、特殊硬件邏輯、特定的指令系統(tǒng)和多總線技術(shù)等來提高運(yùn)算速度,并使用高級(jí)的IC硬件設(shè)計(jì)技術(shù)來提高處理器工作速度及降低功耗,使其具有功耗小、高度并行等優(yōu)點(diǎn),可以滿足眾多領(lǐng)域?qū)崟r(shí)處理的要求。本章詳細(xì)介紹TMS320C54x的硬件結(jié)構(gòu),主要包括總線結(jié)構(gòu)、中央處理單元、存儲(chǔ)器、片內(nèi)外設(shè)、復(fù)位電路、中斷和流水線、引腳功能。第3章TMS320C54x的硬件結(jié)構(gòu)下一頁返回上一頁退出首頁33.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性TI公司推出的同一代TMS320系列DSP產(chǎn)品的CPU結(jié)構(gòu)是相同的,只是在片內(nèi)存儲(chǔ)器和片內(nèi)外圍設(shè)備的配置上不一定相同。TMS320C54x系列DSP處理器產(chǎn)品雖然很多,但其體系結(jié)構(gòu)基本上是相同的,特別是處理器內(nèi)部CPU結(jié)構(gòu)是完全相同的,不同處理器只是在時(shí)鐘頻率、工作電壓、片內(nèi)存儲(chǔ)器容量大小、外圍設(shè)備和接口電路的設(shè)計(jì)上會(huì)有所不同。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.1TMS320C54x的內(nèi)部結(jié)構(gòu)下一頁返回上一頁退出首頁43.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性第3章TMS320C54x的硬件結(jié)構(gòu)圖3-1TMS320C54xDSP的內(nèi)部組成框圖5圖3-2TMS320C54xDSP的內(nèi)部硬件結(jié)構(gòu)圖63.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性TMS320C54x內(nèi)部結(jié)構(gòu)基本上可以分為3大部分:CPU:包括算術(shù)邏輯運(yùn)算單元、乘法器、累加器、移位寄存器、各種專用用途的寄存器、地址生成器及內(nèi)部總線。片內(nèi)存儲(chǔ)器系統(tǒng):包括片內(nèi)的程序ROM、片內(nèi)單訪問的數(shù)據(jù)RAM和雙訪問的數(shù)據(jù)RAM、外部存儲(chǔ)器接口。片內(nèi)外設(shè)與專用硬件電路:包括片內(nèi)定時(shí)器、各種類型的串口、主機(jī)接口、片內(nèi)鎖相環(huán)(PLL)時(shí)鐘發(fā)生器及各種控制電路。此外,在DSP處理器中還包含有仿真功能及其IEEE1149.1標(biāo)準(zhǔn)接口(JTAG),用于處理器開發(fā)應(yīng)用時(shí)的仿真。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.1TMS320C54x的內(nèi)部結(jié)構(gòu)73.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性1.CPU部分先進(jìn)的多總線結(jié)構(gòu)(1條程序總線、3條數(shù)據(jù)總線和4條對(duì)應(yīng)的地址總線)。40位算術(shù)邏輯運(yùn)算單元(ALU),包括1個(gè)40位桶形移位寄存器和2個(gè)獨(dú)立的40位累加器。17位×17位并行乘法器與40位專用加法器相連,用于非流水線式單周期乘法/累加(MAC)運(yùn)算。比較、選擇、存儲(chǔ)單元(CSSU),用于加法、比較、選擇運(yùn)算。指數(shù)編碼器,是一個(gè)支持單周期指令EXP的專用硬件,可以在單個(gè)周期內(nèi)計(jì)算40位累加器中數(shù)值的指數(shù)。雙地址生成器,包括8個(gè)輔助寄存器和2個(gè)輔助寄存器算術(shù)運(yùn)算單元(ARAU)。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.2TMS320C54x的主要特性83.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性2.存儲(chǔ)器16位192K字的可尋址存儲(chǔ)空間(64K字的程序存儲(chǔ)空間、64K字的數(shù)據(jù)存儲(chǔ)空間和64K字的I/O空間),此外,C549、VC5402、VC5409、VC5410和VC5416等帶有擴(kuò)展程序存儲(chǔ)器,程序存儲(chǔ)空間最大可擴(kuò)展至8M字。片內(nèi)ROM,可配置為程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器。片內(nèi)RAM有兩種類型,即片內(nèi)雙訪問RAM(DARAM)和片內(nèi)單訪問RAM(SARAM)。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.2TMS320C54x的主要特性93.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性3.片內(nèi)外設(shè)軟件可編程等待狀態(tài)發(fā)生器。可編程分區(qū)切換邏輯電路。帶有內(nèi)部振蕩器或用外部時(shí)鐘源的片內(nèi)鎖相環(huán)時(shí)鐘發(fā)生器。支持全雙工操作的串行口,可進(jìn)行8位或16位串行通信。片內(nèi)的串行口根據(jù)型號(hào)不同可分為4種:?jiǎn)瓮ǖ劳酱锌冢⊿P)、帶緩沖器單通道同步串行口(BSP)、并行帶緩沖器多通道同步串行口(McBSP)、時(shí)分多通道帶緩沖器串行口(TMD)。處理器不同串行口配置也不盡相同??膳c主機(jī)直接連接的8位或16位并行主機(jī)接口(HPI)。16位可編程定時(shí)器。6通道直接存儲(chǔ)器訪問(DMA)控制器。外部總線關(guān)斷控制,以斷開外部的數(shù)據(jù)總線、地址總線和控制信號(hào)。數(shù)據(jù)總線具有總線保持特性。

第3章TMS320C54x的硬件結(jié)構(gòu)3.1.2TMS320C54x的主要特性103.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性4.指令系統(tǒng)單指令重復(fù)和塊指令重復(fù)操作指令。用于程序和數(shù)據(jù)管理的塊存儲(chǔ)器傳送指令。32位長(zhǎng)操作數(shù)指令。同時(shí)讀入2個(gè)或3個(gè)操作數(shù)的指令??梢圆⑿写鎯?chǔ)和并行加載的算術(shù)指令。條件存儲(chǔ)指令。從中斷快速返回指令。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.2TMS320C54x的主要特性113.1TMS320C54x的內(nèi)部結(jié)構(gòu)和主要特性5.電源

具有多種節(jié)電模式,可用IDLE1、IDLE2和IDLE3指令來控制處理器功耗,使CPU工作在省電方式??煽刂脐P(guān)斷時(shí)鐘輸出信號(hào)CLKOUT。6.片內(nèi)仿真接口具有符合IEEE1149.1標(biāo)準(zhǔn)的片內(nèi)仿真接口(JTAG),可與主機(jī)相連,用于系統(tǒng)處理器的開發(fā)與應(yīng)用。7.速度

單周期定點(diǎn)指令的執(zhí)行時(shí)間為25/20/12.5/10/8.3/7.5/6.25ns,相應(yīng)的CPU運(yùn)行速度為40/50/80/100/120/133/160MIPS。第3章TMS320C54x的硬件結(jié)構(gòu)3.1.2TMS320C54x的主要特性123.2總線結(jié)構(gòu)TMS320C54x的結(jié)構(gòu)是以8條16位總線為核心的,即1條程序總線(PB)、3條數(shù)據(jù)總線(CB、DB和EB)和4條地址總線(PAB、CAB、DAB和EAB),這些總線形成了支持高速指令執(zhí)行的硬件基礎(chǔ)。8條16位總線的功能如下:(1)1條程序總線(PB)程序總線(PB)傳送由程序存儲(chǔ)器取出的指令操作代碼和立即操作數(shù)。PB既可以將程序空間的操作數(shù)據(jù)(如系數(shù)表)送至數(shù)據(jù)空間的目標(biāo)地址中,以執(zhí)行數(shù)據(jù)移動(dòng),也可以將程序空間的操作數(shù)據(jù)傳送到乘法器和加法器中,以便執(zhí)行乘法/累加操作。此種功能,連同雙操作數(shù)的特性,支持在一個(gè)周期內(nèi)執(zhí)行3操作數(shù)指令(如FIRS指令)。第3章TMS320C54x的硬件結(jié)構(gòu)下一頁返回上一頁退出首頁13Smem16位單數(shù)據(jù)存儲(chǔ)器操作數(shù)。從DB數(shù)據(jù)總線上讀出Xmem在雙操作數(shù)指令和一些單操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù)。從DB數(shù)據(jù)總線上讀出Ymem在雙操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù)。從CB總線上讀出dmad16位立即數(shù)表示的數(shù)據(jù)存儲(chǔ)器地址(0~65,535)pmad16位立即數(shù)表示的程序存儲(chǔ)器地址(0~65,535),它包括器件的擴(kuò)展存儲(chǔ)器地址MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作數(shù)與程序存儲(chǔ)器值相乘后加到累加器并延遲23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作數(shù)與程序存儲(chǔ)器值相乘后加到累加器23FIRSXmem,Ymem,pmadB=B+A*pmadA=(Xmem+Ymem)<<16系數(shù)對(duì)稱FIR濾波器23例:例:說明:143.2總線結(jié)構(gòu)(2)3條數(shù)據(jù)總線(CB、DB和EB)3條數(shù)據(jù)總線(CB、DB和EB)將內(nèi)部各單元(如CPU,數(shù)據(jù)地址生成電路,程序地址生成電路,片內(nèi)外圍設(shè)備以及數(shù)據(jù)存儲(chǔ)器)連接在一起。其中,CB和DB用來傳送從數(shù)據(jù)存儲(chǔ)器讀出的數(shù)據(jù);EB用來傳送寫入存儲(chǔ)器的數(shù)據(jù)。第3章TMS320C54x的硬件結(jié)構(gòu)其中,CB和DB用來傳送32位數(shù)據(jù);CB傳送hw為32位數(shù)據(jù)的高16位;DB傳送lw為32位數(shù)據(jù)的低16位153.2總線結(jié)構(gòu)(3)4條地址總線(PAB、CAB、DAB和EAB)4條地址總線(PAB、CAB、DAB和EAB)用于傳送執(zhí)行指令所需要的地址。TMS320C54x可以利用兩個(gè)輔助寄存器算術(shù)運(yùn)算單元(ARAU0和ARAU1),在每個(gè)周期產(chǎn)生兩個(gè)數(shù)據(jù)存儲(chǔ)器的地址。TMS320C54x“還有”一條訪問片內(nèi)外設(shè)的片內(nèi)雙向總線。這條雙向總線通過CPU接口內(nèi)的總線交換器與DB和EB相連。利用這條雙向總線的訪問過程需要2個(gè)或更多個(gè)周期來讀/寫,具體時(shí)間取決于外圍電路的結(jié)構(gòu)。由此可見,DSP處理系統(tǒng)中應(yīng)當(dāng)盡量避免器件內(nèi)外大量數(shù)據(jù)交換,以保證系統(tǒng)高速特性。第3章TMS320C54x的硬件結(jié)構(gòu)16表3-2各種讀/寫方式用到的總線第3章TMS320C54x的硬件結(jié)構(gòu)讀/寫方式地址總線程序總線數(shù)據(jù)總線PABCABDABEABPBCBDBEB程序讀程序?qū)憜螖?shù)據(jù)讀雙數(shù)據(jù)讀32位長(zhǎng)數(shù)據(jù)讀(hw)(lw)(hw)(lw)單數(shù)據(jù)寫數(shù)據(jù)讀/數(shù)據(jù)寫雙數(shù)據(jù)讀/系數(shù)讀外設(shè)讀外設(shè)寫注:hw為32位數(shù)據(jù)的高16位;lw為32位數(shù)據(jù)的低16位。173.2總線結(jié)構(gòu)TMS320C54x總線結(jié)構(gòu)的特點(diǎn):①8條16位總線,并行工作,能在一個(gè)機(jī)器周期內(nèi)完成3次讀操作和1次寫操作(4條總線有各自的地址總線)。②支持?jǐn)?shù)據(jù)在程序空間和數(shù)據(jù)空間傳送(改進(jìn)的哈佛結(jié)構(gòu))。③支持片內(nèi)、外設(shè)的雙向通信。④支持功能很強(qiáng)的算術(shù)邏輯與位操作運(yùn)算。第3章TMS320C54x的硬件結(jié)構(gòu)183.3中央處理單元(CPU)中央處理單元(CPU)是DSP的核心部件,它的性能直接關(guān)系到DSP器件的性能。CPU的基本組成如下:40位算術(shù)邏輯運(yùn)算單元(ALU)2個(gè)40位累加器1個(gè)40位桶形移位寄存器乘法器/加法器單元(MAC)比較、選擇和存儲(chǔ)單元(CSSU)指數(shù)編碼器CPU狀態(tài)和控制寄存器兩個(gè)地址發(fā)生器第3章TMS320C54x的硬件結(jié)構(gòu)下一頁返回上一頁退出首頁19算術(shù)邏輯運(yùn)算單元(ALU)可以實(shí)現(xiàn)加/減法運(yùn)算、邏輯運(yùn)算等大部分算術(shù)和邏輯功能,且大多數(shù)的算術(shù)邏輯運(yùn)算指令都是“單周期指令”。除存儲(chǔ)操作指令(ADDM、ANDM、ORM和XORM)外,ALU的運(yùn)算結(jié)果通常都被傳送到目的累加器(累加器A和B)。第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)20第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)圖3-3ALU功能框圖21ALU有X和Y兩個(gè)輸入端

ALU輸入:X端:DB0~15,移位寄存器Y端:CB0~15,A,B,TALU輸出:A,B

(40位)ALU能起兩個(gè)16-bitALUs的作用,且在狀態(tài)寄存器ST1中的C16位置1時(shí),可同時(shí)完成兩個(gè)16-bit運(yùn)算.第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)1.ALU的輸入/輸出?16位輸入;40位輸出22算術(shù)邏輯運(yùn)算單元(ALU)的符號(hào)擴(kuò)展:40位數(shù)據(jù),若為低16位,則根據(jù)ST1的SXM的符號(hào)擴(kuò)展方式處理,當(dāng)SXM=0,高24位(39-16)用0填充,當(dāng)SXM=1,高24位填充為數(shù)據(jù)的符號(hào)邏輯,即符號(hào)擴(kuò)展;若為高16位,數(shù)據(jù)位(31-16)存數(shù)據(jù),低位(15-0)填充為0,控制位(39-32)按照SXM邏輯實(shí)現(xiàn)符號(hào)擴(kuò)展。40位數(shù)據(jù)格式:第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)2.ALU的符號(hào)擴(kuò)展23數(shù)據(jù)溢出處理方式:ALU的飽和邏輯可以將結(jié)果保存為最大值(或最小值)完成溢出處理。當(dāng)ST1的OVM置1時(shí),該項(xiàng)功能使能。當(dāng)ALU或者乘法器后面的運(yùn)算發(fā)生溢出時(shí),首先將ST0中的OVA(或者OVB)置1,然后根據(jù)ST1的OVM做飽和處理:

當(dāng)OVM=0時(shí),不做任何處理,將結(jié)果直接裝入累加器;當(dāng)OVM=1時(shí),根據(jù)溢出方向,若是正溢出,將32位最大正數(shù)007FFFFFFFH裝入累加器,若是負(fù)溢出,將32位最小負(fù)數(shù)FF80000000H裝入累加器。第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)3.ALU的溢出處理24數(shù)據(jù)溢出后處理方式:溢出發(fā)生后,ST0的OVA(OVB)被置1。只有執(zhí)行復(fù)位、溢出條件轉(zhuǎn)移指令、位操作指令才能復(fù)位。例如:RSBXOVM;OVM復(fù)位(0)SSBXOVM;OVM置位(1)其次:可通過SAT指令對(duì)累加器做飽和處理,而不必考慮OVM的值。如SATA;或者SATB能直接對(duì)累加器結(jié)果做飽和處理。第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)25[例3-1]設(shè)(AR2)=0060h,(AR3)=0070h,數(shù)據(jù)存儲(chǔ)器(0060h)=A678h,(0070h)=7234h,分析指令“ADD*AR2,*AR3,A”的執(zhí)行情況:ADD*AR2,*AR3,A;將AR2和AR3各自指向的數(shù)據(jù)存儲(chǔ)器單元內(nèi)容左移16位后相加,結(jié)果放到累加器A中,執(zhí)行情況如下表所示第3章TMS320C54x的硬件結(jié)構(gòu)3.3.1算術(shù)邏輯運(yùn)算單元(ALU)3.3中央處理單元(CPU)SXM=0(無符號(hào)數(shù)相加)SXM=1(有符號(hào)數(shù)相加)ALU的X輸入端(經(jīng)過DB取自0060h)00A6780000hFFA6780000hALU的Y輸入端(經(jīng)過CB取自0070h)0072340000h0072340000h指令執(zhí)行后的結(jié)果AOVM=00118AC0000h0018AC0000hOVM=1007FFFFFFFh0018AC0000h指令執(zhí)行后的標(biāo)志位狀態(tài)C1(有進(jìn)位)1(有進(jìn)位)OVA1(有溢出)0(無溢出)26A,B基本結(jié)構(gòu):A,B均為40位說明:保護(hù)位,防止迭代運(yùn)算產(chǎn)生的溢出,有符號(hào)運(yùn)算時(shí)為擴(kuò)展符號(hào)位AL,AH,AG,BL,BH,BG都是存儲(chǔ)器映射寄存器,地址為0008H~000DHA與B的區(qū)別:A的32~16位可以作為乘法器的一個(gè)輸入,而B不能累加器A和B用于存儲(chǔ)ALU或乘法器/加法器單元輸出的數(shù)據(jù)。

累加器也能輸出數(shù)據(jù)到ALU或乘法器/加法器中。第3章TMS320C54x的硬件結(jié)構(gòu)3.3.2累加器3.3中央處理單元(CPU)272.累加器[例3-2]累加器A=FF01234567h,執(zhí)行帶移位的STH和STL指令后,求暫存器T和A的內(nèi)容。(帶移位的累加器操作)STHA,8,T;A的內(nèi)容左移8位后,AH存入T,T=2345h,A=FF01234567hSTHA,-8,T;A的內(nèi)容右移8位后,AH存入T,T=FF01h,A=FF01234567hSTLA,8,T;A的內(nèi)容左移8位后,AL存入T,T=6700h,A=FF01234567hSTLA,-8,T;A的內(nèi)容右移8位后,AL存入T,T=2345h,A=FF01234567h第3章TMS320C54x的硬件結(jié)構(gòu)3.3.2累加器3.3中央處理單元(CPU)*移位操作是在移位寄存器中完成的,操作完成后累加器的內(nèi)容并不改變。283.3.3桶形移位器桶形移位器能把輸入的數(shù)據(jù)進(jìn)行0到31位的左移和0到16位的右移。第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)293.3.3桶形移位器桶形移位寄存器的輸入可以為:①DB,取得16位輸入數(shù)據(jù);②DB和CB,取得32位輸入數(shù)據(jù);③40位累加器A或B。桶形移位寄存器的輸出連到:①ALU的一個(gè)輸入端,②經(jīng)過MSW/LSW(最高有效字/最低有效字)寫選擇單元至EB總線。第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)1.桶形移位器的輸入輸出303.3.3桶形移位器1)測(cè)試控制標(biāo)志位TC的形成及使用:①位于ST0的第12位;②TC受測(cè)試指令的影響,測(cè)試指令一般和條件轉(zhuǎn)移指令相結(jié)合,實(shí)現(xiàn)程序轉(zhuǎn)移、或者用于檢測(cè)數(shù)據(jù)的正負(fù)、數(shù)據(jù)的位狀態(tài)等;BITXmen,BITC;BITC指定測(cè)試位,從最高位向右數(shù)的第BITC位(即15-BITC),將Xmen存儲(chǔ)單元的測(cè)試位的值復(fù)制到ST0的TC位;BITFXmen,#lk;Xmen與立即數(shù)相與,如果結(jié)果為0,TC清零,否則TC置1;BITTSmen;測(cè)試位由T寄存器的3-0位決定,然后將Smen的15-T(3-0)的值復(fù)制到TC;第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)2.桶形移位器的移位控制313.3.3桶形移位器CMPMXmen,#lk;Xmen與立即數(shù)相比較,如果相等,TC置1,否則TC置清0;;CMPRCC,ARx;ARx與AR0的值比較,比較條件由CC給出,如果條件滿足,TC置1,否則清0第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)條件CC作用EQ00測(cè)試Arx值是否等于AR0LT01測(cè)試Arx值是否小于AR0GT10測(cè)試Arx值是否大于AR0NEG11測(cè)試Arx值是否不等于AR0323.3.3桶形移位器測(cè)試控制標(biāo)志位TC:SFTCsrc;累加器條件測(cè)試移位;src為累加器A或者B;

當(dāng)src為0時(shí),TC清零;當(dāng)src不等于0時(shí),若src的31、30位相同,即符號(hào)位相同,

則累加器左移一位,TC清0;若該兩位不同,累加器不移位,TC

置1.

第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)331)由指令中SHIFT給出的移位值,-16~15,大于0時(shí)左移,小于0時(shí)右移;2)ST1的ASM值,共5位,-16~15;如ADDA,ASM,B;累加器A的值按照ASM移位,與累加器B的值相加,結(jié)果存于累加器B;3)來自暫存器T的最低6位,一般用在歸一化指令中,如NORMA;T中的最低6位為指數(shù),按指數(shù)完成A的移位,該值由EXP指令獲得。

第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)2)移位控制方式:立即數(shù);ASM;T的低6位;Tc3.3.3桶形移位器343.3.3桶形移位器移位指令及操作:ROLsrc;帶進(jìn)位循環(huán)左移一位;RORsrc;帶進(jìn)位循環(huán)右移一位;ROLTCsrc;帶進(jìn)位、測(cè)試位的循環(huán)左移一位

第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)SFTAsrc,SHIFT,dst;累加器算數(shù)移位SHIFT位,用于對(duì)有符號(hào)數(shù)的移位,其操作與標(biāo)志位SXM及OVM的值有關(guān),它會(huì)影響狀態(tài)位C及OVdst(若dst=src,則為OVsrc)。算術(shù)移位指令“SFTAsrc,SHIFT”的操作示意圖如圖所示。351)當(dāng)0<SHIFT≤15時(shí),將src的39~0位左移SHIFT位,低位添0;將最后一次移動(dòng)的位值送入狀態(tài)位C。2)當(dāng)-16≤SHIFT<0時(shí),將src的39~0位右移SHIFT位,將最后一次移動(dòng)的位值送入狀態(tài)位C;當(dāng)SXM=0時(shí),高位添0;當(dāng)SXM=1時(shí),將最高位(39位)的值添入移出的高位,即保持符號(hào)位。3.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)SFTLsrc,SHIFT,dst;累加器邏輯移位SHIFT位,它會(huì)影響狀態(tài)位C,操作示意圖如圖所示。361)當(dāng)0<SHIFT≤15時(shí),將src的31~0位左移SHIFT位,低位添0;將最后一次移動(dòng)的位值送入狀態(tài)位C,將src的39~32位清0。2)當(dāng)-16≤SHIFT<0時(shí),將src的39~0位右移SHIFT位,高位添0;將最后一次移動(dòng)的位值送入狀態(tài)位C;將src的39~32位清0。3)當(dāng)SHIFT=0時(shí),令C=0。移位指令及操作:3.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)373.3.3桶形移位器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)

SFTCsrc;累加器測(cè)試;src為累加器A或者B;當(dāng)src為0時(shí),TC清零;當(dāng)src不等于0時(shí),若src的31、30位相同,即符號(hào)位相同,則累加器左移一位,移出多余的符號(hào)位,TC清0;若該兩位不同,累加器不移位,TC置1.383.3.3桶形移位器[例3-3]對(duì)累加器A執(zhí)行不同的移位操作ADDA,-4,B;累加器A的值右移4位后加到累加器B中ADDA,ASM,B;累加器A的值按ASM指定的移位數(shù)移位后

加到累加器B中EXPA;將累加器A冗余符號(hào)位減8,存于T,獲得

其指數(shù)NORMA;按暫存器T中的數(shù)值(指數(shù))對(duì)累加器A進(jìn)

行歸一化第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)39乘法器/加法器(MAC)單元包括1個(gè)乘法器和1個(gè)專用加法器。乘法器/加法器單元具有強(qiáng)大的乘累加運(yùn)算功能,可以在一個(gè)流水線周期內(nèi)完成1次乘法運(yùn)算和1次加法運(yùn)算。TMS320C54xCPU中的MAC單元有一個(gè)17位×17位的硬件乘法器,并且附帶了一個(gè)40位的專用加法器,其功能框圖如圖3-6所示。其中硬件乘法器用來完成乘法運(yùn)算,專用加法器用來完成累加、取整、飽和等操作。乘法器/加法器單元由以下部分組成:乘法器,加法器,帶符號(hào)/無符號(hào)輸入控制,小數(shù)控制,零檢測(cè)器,舍入器(二進(jìn)制補(bǔ)碼),溢出/飽和邏輯和暫存器(TREG)。3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)40圖3-6乘法器/加法器單元功能框圖乘法器輸入:X:T,A,DB0~15Y:A,DB0~15,CB0~15,PB0~15乘法器輸出:加法器加法器輸入:X:乘法器Y:A,B加法器輸出:A,B,03.3.4乘法器/加法器單元41乘法運(yùn)算前數(shù)位擴(kuò)展:乘法運(yùn)算的輸入數(shù)據(jù)為16位,進(jìn)行17x17的乘法運(yùn)算時(shí)需要數(shù)位擴(kuò)展。如果是兩個(gè)符號(hào)數(shù),則在16位前增加一位符號(hào)位,若是非符號(hào)數(shù),則擴(kuò)展位填0.如果數(shù)據(jù)來自累加器A,則取A的高位字及符號(hào)位組成17位。乘法運(yùn)算后的符號(hào)處理:兩個(gè)17位的二進(jìn)制碼相乘會(huì)產(chǎn)生兩個(gè)符號(hào)位。則需要根據(jù)ST1的小數(shù)方式控制位FRCT的邏輯做處理。若FRCT=1,乘法結(jié)果自動(dòng)左移一位,消除多余符號(hào)位,若FRCT=0,保持結(jié)果不變。3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)42舍入操作:如果乘加指令末尾帶R,則需要做舍入操作,將215(8000h)加到計(jì)算結(jié)果,并將目的累加器的低16位清0.當(dāng)執(zhí)行LMS指令時(shí),為修正系數(shù)的量化誤差也進(jìn)行舍入操作。溢出/飽和處理:當(dāng)ST1的OVM=1,F(xiàn)RCT=1,處理器工作方式寄存器PMST的乘法飽和方式位SMUL=1時(shí),對(duì)乘法結(jié)果做飽和處理。當(dāng)SMUL=0時(shí),只對(duì)MAC、MAS的結(jié)果做飽和處理。

將8000hX8000h飽和處理成7FFFFFFFh.3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)43乘加指令:兩個(gè)操作數(shù)相乘,乘法結(jié)果與目的累加器相加,最后結(jié)果存于目的累加器。如果只給出一個(gè)操作數(shù),那么另外一個(gè)操作數(shù)來自暫存器T。MACA的一個(gè)操作數(shù)來自累加器A的高位字,另一個(gè)來自Xmen或者T,乘法結(jié)果加于累加器B或者src,最后結(jié)果存于累加器B或者src.兩個(gè)操作數(shù)在指令中均能“看到”時(shí),Smen或者Xmen的值要存于暫存器T;當(dāng)指令末尾帶R時(shí),做舍入處理。另外,如果兩個(gè)操作數(shù)都給出,則Xmen要存于T.3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)44尋址指令中用到的縮寫符號(hào)及其含義縮寫符號(hào)含義Smem16位單數(shù)據(jù)存儲(chǔ)器操作數(shù)Xmem在雙操作數(shù)指令和一些單操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù)。從DB數(shù)據(jù)總線上讀出Ymem在雙操作數(shù)指令中使用的16位雙數(shù)據(jù)存儲(chǔ)器操作數(shù)。從CB總線上讀出dmad16位立即數(shù)表示的數(shù)據(jù)存儲(chǔ)器地址(0~65,535)pmad16位立即數(shù)表示的程序存儲(chǔ)器地址(0~65,535),它包括器件的擴(kuò)展存儲(chǔ)器地址PA16位立即數(shù)表示的I/O地址(0~65,535)src源累加器(A或B)dst目的累加器(A或B)1k16位長(zhǎng)立即數(shù)453.3.4乘法器/加法器單元-乘加/乘減指令第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)語法表達(dá)式說明字?jǐn)?shù)周期MACSmem,srcsrc=src+T*Smem操作數(shù)與T寄存器值相乘后加到累加器11MACXmem,Ymem,src[,dst]dst=src+Xmem*Ymem,T=Xmem兩個(gè)操作數(shù)相乘后加到累加器中11MAC#lk,src[,dst]dst=src+T*#lk長(zhǎng)立即數(shù)與T寄存器位相乘后加到累加器22MACSmem,#lk,src[,dst]dst=src+Smem*#lk,T=Smem長(zhǎng)立即數(shù)與操作數(shù)相乘后加到累加器22MACRSmem,srcsrc=rnd(src+T*Smem)操作數(shù)與T寄存器值相乘后加到累加器(帶舍入)11MACRXmem,Ymem,src[,dst]dst=rnd(src+Xmem*Ymem),T=Xmem兩個(gè)操作數(shù)相乘后加到累加器中(帶舍入)1146語法表達(dá)式說明字?jǐn)?shù)周期MACASmem[,B]B=B+Smem*A(32–16),T=Smem操作數(shù)與累加器A高位相乘后加到累加器B11MACAT,src[,dst]dst=src+T*A(32–16)T寄存器值與累加器A高位相乘11MACARSmem[,B]B=rnd(B+Smem*A(32–16)),T=SmemT寄存器值與累加器A高位相乘后加到累加器B中(帶舍入)11MACART,src[,dst]dst=rnd(src+T*A(32–16))T寄存器值與累加器A高位相乘后加到源累加器(帶舍入)11MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作數(shù)與程序存儲(chǔ)器值相乘后加到累加器并延遲23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作數(shù)與程序存儲(chǔ)器值相乘后加到累加器23MACSUXmem,Ymem,srcsrc=src+uns(Xmem)*Ymem,T=Xmem無符號(hào)數(shù)與有符號(hào)數(shù)相乘后加到累加器11MASSmem,srcsrc=src–T*Smem從累加器中減去操作數(shù)與T寄存器值的乘積11MASRSmem,srcsrc=rnd(src–T*Smem)從累加器中減去操作數(shù)與T寄存器值的乘積(帶舍入)11MASXmem,Ymem,src[,dst]dst=src–Xmem*Ymem,T=Xmem從源累加器中減去兩個(gè)操作數(shù)的乘積11MASRXmem,Ymem,src[,dst]dst=rnd(src–Xmem*Ymem),T=Xmem從源累加器中減去兩個(gè)操作數(shù)的乘積(帶舍入)11MASASmem[,B]B=B–Smem*A(32–16),T=Smem從累加器B中減去操作數(shù)與累加器A高位乘積11MASAT,src[,dst]dst=src–T*A(32–16)從源累加器中減去T寄存器值與累加器A高位乘積11MASART,src[,dst]dst=rnd(src–T*A(32–16))從源累加器中減去T寄存器值與累加器A高位乘積(帶舍入)11SQURASmem,srcsrc=src+Smem*Smem,T=Smem操作數(shù)平方并累加11SQURSSmem,srcsrc=src–Smem*Smem,T=Smem從累加器中減去操作數(shù)平方1147[例3-4]MAC指令和MACR指令的執(zhí)行情況分析MAC[R]*AR3,A;將AR3指向的存儲(chǔ)單元內(nèi)容與暫存器T的值相乘后與累加器A的值相加后送入A中3.3.4乘法器/加法器單元第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)48比較、選擇和存儲(chǔ)單元(CSSU)完成累加器的高位字和低位字之間的最大值比較,即選擇累加器中較大的字并存儲(chǔ)在數(shù)據(jù)存儲(chǔ)器中,影響狀態(tài)寄存器ST0中的測(cè)試/控制位和傳送寄存器(TRN)的值。其功能框圖如圖3-8所示。功能:多用于Viterbi型蝶形運(yùn)算,加、比較、選擇、存儲(chǔ)運(yùn)算。用途:多用于通信中均衡,解碼等Viterbi蝶型計(jì)算3.3.5比較、選擇和存儲(chǔ)單元(CSSU)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)49圖3-8比較、選擇和存儲(chǔ)單元

結(jié)構(gòu):比較單元COMP,TRN,TC用于記錄比較結(jié)果選擇單元:MSW/LSW存儲(chǔ)通過EB0~15完成(輸出)輸入為A,B,桶型移位寄存器3.3.5比較、選擇和存儲(chǔ)單元(CSSU)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)50[例3-5]CMPS指令的操作CMPSA,*AR1功能:對(duì)累加器A的高16位字(AH)和低16位字(AL)進(jìn)行比較,如果AH>AL,則AH→*AR1,TRN左移1位,0→TRN(0),0→TC;如果AH<AL,則AL→*AR1,TRN左移1位,1→TRN(0),1→TC。(PPT.30,31)

3.3.5比較、選擇和存儲(chǔ)單元(CSSU)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)51指數(shù)編碼器是用于支持單周期指令EXP的專用硬件。在EXP指令中,累加器中的指數(shù)值能以二進(jìn)制補(bǔ)碼的形式(-8~31)存儲(chǔ)在T寄存器中。指數(shù)值定義為前面的冗余位數(shù)減8的差值,即累加器中為消除非有效符號(hào)位所需移動(dòng)的位數(shù)。當(dāng)累加器中的值超過32位時(shí),指數(shù)為負(fù)值。功能:支持指令EXP和NORM完成規(guī)格化定點(diǎn)數(shù)操作。規(guī)格化定點(diǎn)數(shù)格式:T中存指數(shù),A中存尾數(shù)。3.3.6指數(shù)編碼器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)

圖3-10指數(shù)編碼器52[例3-6]累加器A的歸一化EXP A;A中冗余符號(hào)位的位數(shù)減去8,所得結(jié)果存入暫存器T中NORMA;對(duì)累加器進(jìn)行歸一化,按T中所存的數(shù)值對(duì)A進(jìn)行移位3.3.6指數(shù)編碼器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)53TMS320C54xCPU有3個(gè)狀態(tài)和控制寄存器:狀態(tài)寄存器0(ST0)狀態(tài)寄存器1(ST1)處理器工作方式狀態(tài)寄存器(PMST)ST0和ST1中包含各種工作條件和工作方式的狀態(tài);PMST中包含存儲(chǔ)器的設(shè)置狀態(tài)及其他控制信息。由于這些寄存器都是存儲(chǔ)器映射寄存器,所以都可以快速地存放到數(shù)據(jù)存儲(chǔ)器,或者由數(shù)據(jù)存儲(chǔ)器對(duì)它們加載,或者用于程序或者中斷服務(wù)程序保存和恢復(fù)處理器的狀態(tài)。3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)54雙16位運(yùn)算:ALU在單個(gè)指令周期內(nèi)進(jìn)行獨(dú)立的2次16位加法或者2次16位減法。狀態(tài)寄存器1(ST1)C16——雙16位/雙精度算術(shù)運(yùn)算方式控制位,用來決定ALU的運(yùn)算模式

C16=0,ALU進(jìn)行32位字長(zhǎng)運(yùn)算,雙精度運(yùn)算;

C16=1,ALU同時(shí)進(jìn)行2個(gè)相獨(dú)立的16位計(jì)算;第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)?

特定操作55BRAF——塊重復(fù)操作標(biāo)志位塊重復(fù)有效標(biāo)志,由其指示塊重復(fù)是否當(dāng)前有效;

BRAF=0時(shí)塊重復(fù)無效;當(dāng)塊重復(fù)計(jì)數(shù)器BRC減到小于零時(shí),BRAF清零;

BRAF=1塊重復(fù)有效;當(dāng)執(zhí)行RPTB指令時(shí),BRAF

自動(dòng)置位;狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)2.重復(fù)操作:56?重復(fù)操作及重復(fù)指令:重復(fù)指令可以使DSP重復(fù)執(zhí)行一條指令或者一段指令。1)RPTSmen;重復(fù)執(zhí)行下一條指令(Smen)+1次,2)RPT#K;重復(fù)執(zhí)行下一條指令K+1次,并將重復(fù)次數(shù)

放入循環(huán)次數(shù)計(jì)數(shù)器RC中;RPTB[D]pmand;塊重復(fù)指令,循環(huán)次數(shù)由塊循環(huán)計(jì)數(shù)器BRC決定,BRC在指令執(zhí)行前被賦初值,指令執(zhí)行時(shí),塊循環(huán)起始地址寄存器RSA按照PC+2(若帶擴(kuò)展名D,則用PC+4)裝載,循環(huán)結(jié)束地址寄存器REA用程序存儲(chǔ)器地址pmand裝載。RPTZdst,#lk;將目的累加器dst清零,然后重復(fù)執(zhí)行下一條指令lk+1次;第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)57?重復(fù)操作及重復(fù)指令:重復(fù)指令可以被終止,即通過將ST1的BRAF位清零來終止。

當(dāng)執(zhí)行PRTB[D]指令時(shí),BRAF被自動(dòng)置1.例:RPT#1111h;將下一條指令重復(fù)執(zhí)行1112h,即4370次;

并將1111h裝入RC。ST#0063h,BRC;塊循環(huán)次數(shù)計(jì)數(shù)器BRCRPTBend_block;第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)583.保持方式:狀態(tài)寄存器1(ST1)的D12,HM

選擇CPU的省電方式。

為降低功耗,當(dāng)HOLD信號(hào)為低電平時(shí),根據(jù)HM的邏輯,當(dāng)HM=1,處理器暫停內(nèi)部執(zhí)行,數(shù)據(jù)總線、控制總線、地址總線(三總線)進(jìn)入高阻狀態(tài),CPU暫停工作;當(dāng)HM=0時(shí),三總線處于高阻狀態(tài),但CPU任然繼續(xù)工作,從內(nèi)部程序存儲(chǔ)器繼續(xù)執(zhí)行,只是把外部接口置成高阻狀態(tài)。

第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器591.狀態(tài)寄存器0(ST0)ST0反映尋址要求和計(jì)算的中間運(yùn)行狀態(tài),地址:0006H3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)狀態(tài)寄存器ST0各位的定義:15-1312111098-0ARPTCCOVAOVBDPARP——輔助寄存器指針,方式選擇位,3位.指定用于兼容模式下間接尋址的輔助寄存器;當(dāng)DSP工作于標(biāo)準(zhǔn)模式(CMPT=0)時(shí),ARP必須保持為0;各位的功能描述:603.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)15-1312111098-0ARPTCCOVAOVBDPARP——與ST1的,CMPT相應(yīng),當(dāng)CMPT=1,DSP工作于兼容模式,可以修正ARP,用于指定間接尋址的輔助寄存器。61TC——測(cè)試/控制標(biāo)志位,存儲(chǔ)算術(shù)運(yùn)算單元ALU的測(cè)試位操作結(jié)果;

TC受BIT、BITF、BITT、CMPM、CMPR、CMPS和

SFTC指令的影響,TC的狀態(tài)決定了是否需要條件轉(zhuǎn)移、調(diào)用、執(zhí)行和執(zhí)行返回指令;(PPT.30,31)C——進(jìn)位位如果加法運(yùn)算的結(jié)果產(chǎn)生了進(jìn)位,則C=1;如果減法運(yùn)算未產(chǎn)生借位,則C=1;除了帶16位移位的ADD和SUB指令外,如果加法中沒有進(jìn)位或減法中產(chǎn)生借位,則在加法運(yùn)算之后C=0;移位運(yùn)算

也影響C(PPT.33)1.狀態(tài)寄存器0(ST0)3.3.7CPU狀態(tài)和控制寄存器第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)62OVA——累加器A的溢出標(biāo)志位;OVB——累加器B的溢出標(biāo)志位; 不論是ALU還是乘法器中的累加器,當(dāng)結(jié)果目的操作數(shù)使累加器A產(chǎn)生溢出時(shí),OVA=1;使累加器B產(chǎn)生溢出時(shí),OVB=1;清零:

執(zhí)行復(fù)位

RSBX指令,如RSBXOVA,復(fù)位;SSBX置位;

AOV\ANOV、BOV\BNOV作為條件,如BC[D]、CC[D]、RC[D]、XC指令后自動(dòng)清零

1.狀態(tài)寄存器0(ST0)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器63DP——數(shù)據(jù)存儲(chǔ)器頁指針,此9位與指令中的低7位一起形成16

位直接尋址方式下的數(shù)據(jù)存儲(chǔ)器地址;DP域可通過帶短立即數(shù)的LD指令或從數(shù)據(jù)存儲(chǔ)器中裝載;當(dāng)ST1中的尋址編譯方式位CPL=0時(shí)執(zhí)行此操作;

1.狀態(tài)寄存器0(ST0)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器64151413121110987654-0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMST1反映尋址要求,計(jì)算的初始狀態(tài)設(shè)置,I/O及中斷控制。地址:0007H2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器65BRAF——塊重復(fù)操作標(biāo)志位塊重復(fù)有效標(biāo)志,由其指示塊重復(fù)是否當(dāng)前有效;

BRAF=0時(shí)塊重復(fù)無效;BRAF=1塊重復(fù)有效;當(dāng)執(zhí)行RPTB指令時(shí),BRAF自動(dòng)置位;當(dāng)塊重復(fù)

計(jì)數(shù)器BRC減到小于零時(shí),BRAF清零。

2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器66CPL——直接尋址編譯方式位,指定哪一個(gè)指針用于直接尋址;

CPL=0時(shí),用數(shù)據(jù)頁指針DP;

CPL=1時(shí),用堆棧指針SP;XF——外部標(biāo)志(XF)管腳狀態(tài),XF是通用的輸出管腳,

SSBX指令能夠置位XF,RSBX指令能夠復(fù)位XF;HM——保持方式位,CPU的省電方式之一。指示當(dāng)接到一個(gè)HOLD低電平信號(hào)時(shí)處理器是否繼續(xù)內(nèi)部指令的執(zhí)行;

HM=0,處理器從內(nèi)部程序存儲(chǔ)器繼續(xù)執(zhí)行,只是把外部接口置成高阻狀態(tài);

HM=1,處理器暫停內(nèi)部執(zhí)行;2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器67INTM——中斷方式位,用于屏蔽或打開全部中斷

INTM=0,開放所有可屏蔽中斷

INTM=1,關(guān)閉所有可屏蔽中斷

INTM不能通過存儲(chǔ)器寫操作來設(shè)置;

SSBX指令可置位INTM,RSBX指令清除INTM;0——保留位,未使用,此位總是等于0;OVM——溢出方式控制位,決定當(dāng)累加器溢出時(shí)重新裝入目的累加器的數(shù)值;

OVM=0,從ALU或乘法器的加法器中溢出的結(jié)果像正常情況一樣加到目的累加器中;

OVM=1,根據(jù)遇到的溢出值目的累加器被置成:或者最大的正值(007FFFFFFFh)或者最負(fù)的值

(FF80000000h)(PPT.23)2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器68SXM——符號(hào)位擴(kuò)展方式控制位,決定是否做符號(hào)擴(kuò)展

SXM=0,數(shù)據(jù)進(jìn)入ALU之前符號(hào)位禁止擴(kuò)展;

SXM=1,數(shù)據(jù)在被ALU使用之前進(jìn)行符號(hào)擴(kuò)展;SSBX指令和RSBX指令分別設(shè)置和復(fù)位SXM

(PPT.22)FRCT——小數(shù)方式位,指定乘法器的運(yùn)算模式當(dāng)FRCT=1時(shí),乘法器的輸出自動(dòng)左移1位,消除多余符號(hào)位。(PPT.41)2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器69C16——雙16位/雙精度算術(shù)運(yùn)算方式控制位,用來決定ALU的運(yùn)算模式

C16=0,ALU進(jìn)行32位字長(zhǎng)運(yùn)算,雙精度運(yùn)算;

C16=1,ALU同時(shí)進(jìn)行2個(gè)相獨(dú)立的16位計(jì)算;

?雙16位運(yùn)算:ALU在單個(gè)指令周期內(nèi)進(jìn)行獨(dú)立的2次16位加法或者2次16位減法。2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器70CMPT——修正方式位,CMPT決定ARP是否可以修正。CMPT=0在間接尋址單個(gè)數(shù)據(jù)存儲(chǔ)器操作數(shù)時(shí),不能修正ARP。當(dāng)DSP工作在這種方式。ARP必須置0CMPT=1在間接尋址單個(gè)數(shù)據(jù)存儲(chǔ)器操作數(shù)時(shí),可修正ARP,當(dāng)指令正在選擇輔助寄存器0(AR0)時(shí)除外ASM——累加器移位方式位

5位的ASM域指定了-15到16范圍內(nèi)的移位值并且被編碼為2的補(bǔ)碼;

2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器(PPT.25,38)71

可以使用SSBX和RSBX指令對(duì)ST0和ST1的“各個(gè)位”進(jìn)行置位(設(shè)置為1)或清零(設(shè)置為0)操作,例如符號(hào)擴(kuò)展模式可以使用SSBXSXM;設(shè)置為1

RSBXSXM;復(fù)位操作ARP、DP、ASM可以使用LD指令帶一個(gè)短立即操作數(shù)來裝載,ASM和DP還可以使用LD指令用數(shù)據(jù)存儲(chǔ)器的值來裝載;2.狀態(tài)寄存器1(ST1)第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器723.處理器模式狀態(tài)寄存器PMST15-76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSSTIPTR——中斷向量指針,指定中斷向量表的存放位置;

9位的IPTR指向128字的程序頁,在這128字程序頁保存著中斷向量。在引導(dǎo)裝載操作時(shí),可以重新把中斷向量映射到RAM區(qū)。在復(fù)位時(shí),這些位都設(shè)為

1;復(fù)位向量總是駐留在程序存儲(chǔ)器空間的FF80h地址處,RESET指令不影響此區(qū)域PMST主要設(shè)定并控制處理器的工作方式,反映處理器工作狀態(tài)。PMST中的數(shù)據(jù)決定了C54X芯片的存儲(chǔ)器配置情況,PMST寄存器通過存儲(chǔ)器尋址的寄存器指令裝載,如STM指令;第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器73MP/MC——微處理器/微計(jì)算機(jī)模式,決定片內(nèi)ROM是否可由程序存儲(chǔ)空間尋址;取決于管腳MP/MC上的電平,MP/MC=0,可尋址片內(nèi)程序存儲(chǔ)器(片內(nèi)ROM);MP/MC=1,不能尋址片內(nèi)程序存儲(chǔ)器(片內(nèi)ROM)。OVLY——片內(nèi)RAM占位位,使片內(nèi)雙重訪問RAM可以被映射到程序存儲(chǔ)區(qū);

OVLY=0,只能在數(shù)據(jù)空間但不能在程序空間尋址片內(nèi)RAM

OVLY=1,片內(nèi)RAM可以映射入程序空間和數(shù)據(jù)空間;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器74AVIS——地址可見位,決定內(nèi)部程序地址是否在地址管腳上可見,即AVIS控制能否從器件地址線管腳上觀察內(nèi)部地址線;

AVIS=0,外部程序地址線不隨內(nèi)部程序地址變化,控制和數(shù)據(jù)線不受影響,并且地址總線由總線上的最后地址驅(qū)動(dòng),此時(shí)內(nèi)部程序地址的變化不能通過器件的地址線管腳觀察;

AVIS=1,允許內(nèi)部程序地址出現(xiàn)在C54X管腳上,可用來跟蹤內(nèi)部程序地址;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器75DROM——數(shù)據(jù)ROM位,決定片內(nèi)ROM是否可映射到數(shù)據(jù)空間

DROM=0,片上ROM不映射入數(shù)據(jù)空間;

DROM=1,一部分片上ROM映射入數(shù)據(jù)空間。CLKOFF—CLKOUT時(shí)鐘輸出關(guān)斷位,決定時(shí)鐘輸出管腳是否有輸出CLKOFF=1時(shí),禁止CLKOUT輸出并保持為高電平;SMUL——乘法飽和方式位,乘法運(yùn)算時(shí)取整只有在OVM=1并且FRCT=1時(shí)SMUL才可用;當(dāng)SMUL=1時(shí),在MAC或MAS指令中進(jìn)行累加運(yùn)算之前將乘法運(yùn)算結(jié)果取整;SST——存儲(chǔ)飽和位,存儲(chǔ)時(shí)取整,當(dāng)SST=1時(shí),累加器中的數(shù)據(jù)在存儲(chǔ)到存儲(chǔ)器之前允許取整,取整在移位操作之后完成;3.處理器模式狀態(tài)寄存器PMST第3章TMS320C54x的硬件結(jié)構(gòu)3.3中央處理單元(CPU)3.3.7CPU狀態(tài)和控制寄存器76TMS320C54x中有兩個(gè)地址發(fā)生器:程序地址發(fā)生器(PAGEN)和數(shù)據(jù)地址發(fā)生器(DAGEN),用來對(duì)程序存儲(chǔ)器和數(shù)據(jù)存儲(chǔ)器進(jìn)行尋址,產(chǎn)生所需的地址信息。3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構(gòu)3.4存儲(chǔ)器1.程序地址發(fā)生器1)程序地址發(fā)生器作用:負(fù)責(zé)產(chǎn)生合適的地址訪問程序存儲(chǔ)器。所生成的地址用來訪問指令、系數(shù)表、16位立即數(shù)或其他存儲(chǔ)在程序存儲(chǔ)器中的信息。程序地址發(fā)生器的組成如右圖所示。771.程序地址發(fā)生器2)PAGENB包括以下5個(gè)寄存器(1)程序計(jì)數(shù)器(PC)(2)重復(fù)計(jì)數(shù)器(RC)(3)塊重復(fù)計(jì)數(shù)器(BRC)(4)塊重復(fù)起地址寄存器(RSA)(5)塊重復(fù)結(jié)束地址寄存器(REA)3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構(gòu)3.4存儲(chǔ)器783).程序計(jì)數(shù)器PC的加載方式3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構(gòu)復(fù)位將FF80H裝入PC順序執(zhí)行將PC+1裝入PC;PC能自動(dòng)加1分支轉(zhuǎn)移將分支轉(zhuǎn)移指令提供的16位立即數(shù)裝入PC累加器分支轉(zhuǎn)移將累加器A或者B的低16位裝入PC塊重復(fù)若BRAF=1,塊重復(fù)有效。當(dāng)PC+1等于(REA)+1時(shí),將(RSA)裝入PC子程序調(diào)用將PC+1壓入堆棧,然后將緊跟調(diào)用指令后的16位立即數(shù)裝入PC;調(diào)用結(jié)束后用返回指令將堆棧中的數(shù)據(jù)恢復(fù)到PC累加器子程序調(diào)用將PC+1壓入堆棧,然后將累加器A或者B的低16位裝入PC,中斷將PC壓入堆棧,然后將中斷向量裝入PC;返回時(shí)將堆棧值恢復(fù)到PC3.4存儲(chǔ)器792.擴(kuò)展程序計(jì)數(shù)器XPC的加載方式(超過64K的程序范圍)3.4.1地址發(fā)生器第3章TMS320C54x的硬件結(jié)構(gòu)復(fù)位將FF80H裝入PC,將00H裝入XPC順序執(zhí)行將PC+1裝入PC,XPC不自動(dòng)加1遠(yuǎn)程分支轉(zhuǎn)移將分支轉(zhuǎn)移指令提供的16位立即數(shù)的15~0裝入PC,23~16裝XPC累加器遠(yuǎn)程分支轉(zhuǎn)移將累加器A或者B的低16位15~0裝入PC,23~16裝入XPC子程序遠(yuǎn)程調(diào)用將PC+1、XPC壓入堆棧,然后將緊跟調(diào)用指令后的16位立即數(shù)的15~0裝入PC,23~16裝入XPC;調(diào)用結(jié)束后用返回指令將堆棧中的第一個(gè)數(shù)據(jù)恢復(fù)到XPC,下一個(gè)數(shù)據(jù)恢復(fù)到PC累加器子程序遠(yuǎn)程調(diào)用將PC+1、XPC的值壓入堆棧,然后將累加器A或者B的低16位15~0裝入PC,23~16裝入XPC,返回同上。3.4存儲(chǔ)器80程序控制指令

1.分支轉(zhuǎn)移(跳轉(zhuǎn))指令分支轉(zhuǎn)移(跳轉(zhuǎn))指令可以改變程序指針PC的值,使程序從一個(gè)地址跳轉(zhuǎn)到另一個(gè)地址執(zhí)行。這種跳轉(zhuǎn)可以是無條件的跳轉(zhuǎn),也可以是有條件的跳轉(zhuǎn)。811.分支轉(zhuǎn)移(跳轉(zhuǎn))指令B[D]和BACC[D]為近程無條件轉(zhuǎn)移指令。B[D]用于將pmad指定的程序存儲(chǔ)器地址賦值給程序計(jì)數(shù)器PC,實(shí)現(xiàn)分支轉(zhuǎn)移。BACC[D]用于將src的低16位所確定的地址賦給PC。如果指令是延遲方式的(帶有D后綴),緊跟分支轉(zhuǎn)移語句之后的2條單字指令或者1條雙字指令被取出執(zhí)行,然后程序才跳轉(zhuǎn)到目的地址。注意,該指令不能被重復(fù)執(zhí)行。BANZ[D]和BC[D]為近程條件轉(zhuǎn)移指令,BANZ[D]為輔助寄存器不為零時(shí)的分支轉(zhuǎn)移,若當(dāng)前輔助寄存器ARx不為0,則程序指針轉(zhuǎn)移到指定pmad;否則PC指針加2。BC[D]指令在滿足特定條件時(shí),指令就轉(zhuǎn)移到pmad上;否則PC加2且緊接著該指令的兩個(gè)字繼續(xù)執(zhí)行。FB[D]和FBACC[D]為遠(yuǎn)程無條件轉(zhuǎn)移。FB[D]指令將extpmad的高7位(22~16)確定的頁碼賦值給程序計(jì)數(shù)擴(kuò)展寄存器XPC,將extpmad的低16位(15~0)賦值給PC,實(shí)現(xiàn)長(zhǎng)跳轉(zhuǎn)。FBACC[D]指令將src的高7位(22~16)賦值給XPC,將src的低16位(15~0)賦值給PC,實(shí)現(xiàn)長(zhǎng)跳轉(zhuǎn)。821.分支轉(zhuǎn)移(跳轉(zhuǎn))指令[例]分支轉(zhuǎn)移(跳轉(zhuǎn))指令示例 BC2000h,AGT;當(dāng)累加A的值大于0時(shí),將當(dāng)前程序直接跳轉(zhuǎn)到2000h處,否則PC加2

指令執(zhí)行前指令執(zhí)行前指令執(zhí)行前指令執(zhí)行后A0000000053A0000000053AFFFFFFFFFFAFFFFFFFFFFPC1000PC2000PC1000PC1002832.調(diào)用指令調(diào)用指令同樣可以改變程序指針PC的值,使程序從一個(gè)地址跳轉(zhuǎn)到另一個(gè)地址執(zhí)行。但與跳轉(zhuǎn)指令不同的是,DSP在執(zhí)行完被調(diào)用的程序段后要返回起跳處繼續(xù)執(zhí)行原來的程序。語法表達(dá)式說明字?jǐn)?shù)周期(非延遲/延遲)CALA[D]src–

–SP,PC+1[3]=TOS,PC=src(15–0)按累加器規(guī)定的地址調(diào)用子程序16/4CALL[D]pmad–

–SP,PC+2[4]=TOS,PC=pmad(15

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒有圖紙預(yù)覽就沒有圖紙。
  • 4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
  • 5. 人人文庫網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
  • 6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
  • 7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

最新文檔

評(píng)論

0/150

提交評(píng)論