版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
13.1TMS320C54x的内部结构和主要特性3.2总线结构3.3中央处理单元(CPU)3.4存储器3.5本章小结 第3章TMS320C54x的硬件结构第3章TMS320C54x的硬件结构下一页返回上一页退出首页2内容简介TMS320C54x(简称C54x)系列DSP是TI公司推出的低功耗、高性能的16位定点数字信号处理器,具有很好的操作灵活性和很高的运行速度。由于TMS320C54x使用CPU的并行运行、特殊硬件逻辑、特定的指令系统和多总线技术等来提高运算速度,并使用高级的IC硬件设计技术来提高处理器工作速度及降低功耗,使其具有功耗小、高度并行等优点,可以满足众多领域实时处理的要求。本章详细介绍TMS320C54x的硬件结构,主要包括总线结构、中央处理单元、存储器、片内外设、复位电路、中断和流水线、引脚功能。第3章TMS320C54x的硬件结构下一页返回上一页退出首页33.1TMS320C54x的内部结构和主要特性TI公司推出的同一代TMS320系列DSP产品的CPU结构是相同的,只是在片内存储器和片内外围设备的配置上不一定相同。TMS320C54x系列DSP处理器产品虽然很多,但其体系结构基本上是相同的,特别是处理器内部CPU结构是完全相同的,不同处理器只是在时钟频率、工作电压、片内存储器容量大小、外围设备和接口电路的设计上会有所不同。第3章TMS320C54x的硬件结构3.1.1TMS320C54x的内部结构下一页返回上一页退出首页43.1TMS320C54x的内部结构和主要特性第3章TMS320C54x的硬件结构图3-1TMS320C54xDSP的内部组成框图5图3-2TMS320C54xDSP的内部硬件结构图63.1TMS320C54x的内部结构和主要特性TMS320C54x内部结构基本上可以分为3大部分:CPU:包括算术逻辑运算单元、乘法器、累加器、移位寄存器、各种专用用途的寄存器、地址生成器及内部总线。片内存储器系统:包括片内的程序ROM、片内单访问的数据RAM和双访问的数据RAM、外部存储器接口。片内外设与专用硬件电路:包括片内定时器、各种类型的串口、主机接口、片内锁相环(PLL)时钟发生器及各种控制电路。此外,在DSP处理器中还包含有仿真功能及其IEEE1149.1标准接口(JTAG),用于处理器开发应用时的仿真。第3章TMS320C54x的硬件结构3.1.1TMS320C54x的内部结构73.1TMS320C54x的内部结构和主要特性1.CPU部分先进的多总线结构(1条程序总线、3条数据总线和4条对应的地址总线)。40位算术逻辑运算单元(ALU),包括1个40位桶形移位寄存器和2个独立的40位累加器。17位×17位并行乘法器与40位专用加法器相连,用于非流水线式单周期乘法/累加(MAC)运算。比较、选择、存储单元(CSSU),用于加法、比较、选择运算。指数编码器,是一个支持单周期指令EXP的专用硬件,可以在单个周期内计算40位累加器中数值的指数。双地址生成器,包括8个辅助寄存器和2个辅助寄存器算术运算单元(ARAU)。第3章TMS320C54x的硬件结构3.1.2TMS320C54x的主要特性83.1TMS320C54x的内部结构和主要特性2.存储器16位192K字的可寻址存储空间(64K字的程序存储空间、64K字的数据存储空间和64K字的I/O空间),此外,C549、VC5402、VC5409、VC5410和VC5416等带有扩展程序存储器,程序存储空间最大可扩展至8M字。片内ROM,可配置为程序存储器和数据存储器。片内RAM有两种类型,即片内双访问RAM(DARAM)和片内单访问RAM(SARAM)。第3章TMS320C54x的硬件结构3.1.2TMS320C54x的主要特性93.1TMS320C54x的内部结构和主要特性3.片内外设软件可编程等待状态发生器。可编程分区切换逻辑电路。带有内部振荡器或用外部时钟源的片内锁相环时钟发生器。支持全双工操作的串行口,可进行8位或16位串行通信。片内的串行口根据型号不同可分为4种:单通道同步串行口(SP)、带缓冲器单通道同步串行口(BSP)、并行带缓冲器多通道同步串行口(McBSP)、时分多通道带缓冲器串行口(TMD)。处理器不同串行口配置也不尽相同。可与主机直接连接的8位或16位并行主机接口(HPI)。16位可编程定时器。6通道直接存储器访问(DMA)控制器。外部总线关断控制,以断开外部的数据总线、地址总线和控制信号。数据总线具有总线保持特性。
第3章TMS320C54x的硬件结构3.1.2TMS320C54x的主要特性103.1TMS320C54x的内部结构和主要特性4.指令系统单指令重复和块指令重复操作指令。用于程序和数据管理的块存储器传送指令。32位长操作数指令。同时读入2个或3个操作数的指令。可以并行存储和并行加载的算术指令。条件存储指令。从中断快速返回指令。第3章TMS320C54x的硬件结构3.1.2TMS320C54x的主要特性113.1TMS320C54x的内部结构和主要特性5.电源
具有多种节电模式,可用IDLE1、IDLE2和IDLE3指令来控制处理器功耗,使CPU工作在省电方式。可控制关断时钟输出信号CLKOUT。6.片内仿真接口具有符合IEEE1149.1标准的片内仿真接口(JTAG),可与主机相连,用于系统处理器的开发与应用。7.速度
单周期定点指令的执行时间为25/20/12.5/10/8.3/7.5/6.25ns,相应的CPU运行速度为40/50/80/100/120/133/160MIPS。第3章TMS320C54x的硬件结构3.1.2TMS320C54x的主要特性123.2总线结构TMS320C54x的结构是以8条16位总线为核心的,即1条程序总线(PB)、3条数据总线(CB、DB和EB)和4条地址总线(PAB、CAB、DAB和EAB),这些总线形成了支持高速指令执行的硬件基础。8条16位总线的功能如下:(1)1条程序总线(PB)程序总线(PB)传送由程序存储器取出的指令操作代码和立即操作数。来自程序空间的数据移动:PB既可以将程序空间的操作数据(如系数表)送至数据空间的目标地址中;也可以将程序空间的操作数据传送到乘法器和加法器中,以便执行乘法/累加操作。此种功能,连同双操作数的特性,支持在一个指令周期内执行3操作数指令(如FIRS指令)。第3章TMS320C54x的硬件结构下一页返回上一页退出首页13Smem16位单数据存储器操作数。从DB数据总线上读出Xmem在双操作数指令和一些单操作数指令中使用的16位双数据存储器操作数。从DB数据总线上读出Ymem在双操作数指令中使用的16位双数据存储器操作数。从CB总线上读出dmad16位立即数表示的数据存储器地址(0~65,535)pmad16位立即数表示的程序存储器地址(0~65,535),它包括器件的扩展存储器地址MACDSmem,pmad,srcsrc=src+Smem*pmad,T=Smem,(Smem+1)=Smem操作数与程序存储器值相乘后加到累加器并延迟23MACPSmem,pmad,srcsrc=src+Smem*pmad,T=Smem操作数与程序存储器值相乘后加到累加器23FIRSXmem,Ymem,pmadB=B+A*pmadA=(Xmem+Ymem)<<16系数对称FIR滤波器(3操作数指令)23例(了解):例(了解):说明:143.2总线结构(2)3条数据总线(CB、DB和EB)3条数据总线(CB、DB和EB)将内部各单元(如CPU,数据地址生成电路,程序地址生成电路,片内外围设备以及数据存储器)连接在一起。其中,CB和DB用来传送从数据存储器读出的数据;EB用来传送写入存储器的数据。第3章TMS320C54x的硬件结构其中,CB和DB用来传送32位长数据;CB传送hw为32位数据的高16位;DB传送lw为32位数据的低16位153.2总线结构(3)4条地址总线(PAB、CAB、DAB和EAB)4条地址总线(PAB、CAB、DAB和EAB)用于传送执行指令所需要的地址。TMS320C54x可以利用两个辅助寄存器算术运算单元(ARAU0和ARAU1),在每个周期产生两个数据存储器的地址。TMS320C54x“还有”一条访问片内外设的片内双向总线。这条双向总线通过CPU接口内的总线交换器与DB和EB相连。利用这条双向总线的访问过程需要2个或更多个周期来读/写,具体时间取决于外围电路的结构。由此可见,DSP处理系统中应当尽量避免器件内外大量数据交换,以保证系统高速特性。第3章TMS320C54x的硬件结构16表3-2各种读/写方式用到的总线第3章TMS320C54x的硬件结构读/写方式地址总线程序总线数据总线PABCABDABEABPBCBDBEB程序读程序写单数据读(D)双数据读(C,D)32位长数据读(CD)(hw)(lw)(hw)(lw)单数据写数据读/数据写双数据读/系数读外设读(D)外设写(E)注:hw为32位数据的高16位;lw为32位数据的低16位。★★★★★★★★★★★★★★★★★★★★★★★★★★★★★★173.2总线结构TMS320C54x总线结构的特点:①8条16位总线,并行工作,能在一个机器周期内完成3次读操作和1次写操作(4条总线有各自的地址总线)。②支持数据在程序空间和数据空间传送(改进的哈佛结构)。③支持片内、外设的双向通信。④支持功能很强的算术逻辑与位操作运算。第3章TMS320C54x的硬件结构183.3中央处理单元(CPU)中央处理单元(CPU)是DSP的核心部件,它的性能直接关系到DSP器件的性能。CPU的基本组成如下:40位算术逻辑运算单元(ALU)2个40位累加器1个40位桶形移位寄存器乘法器/加法器单元(MAC)比较、选择和存储单元(CSSU)指数编码器两个地址发生器CPU状态和控制寄存器(*)第3章TMS320C54x的硬件结构下一页返回上一页退出首页19算术逻辑运算单元(ALU)可以实现加/减法运算、逻辑运算等大部分算术和逻辑功能,且大多数的算术逻辑运算指令都是“单周期指令”。除存储操作指令(ADDM、ANDM、ORM和XORM)外,ALU的运算结果通常都被传送到目的累加器(累加器A和B)。第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)20第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)图3-3ALU功能框图21ALU有X和Y两个输入端
ALU输入:X端:DB0~15,移位寄存器Y端:CB0~15,A,B,TALU输出:A,B
(40位)第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)1.ALU的输入/输出?16位输入;40位输出?22算术逻辑运算单元(ALU)的符号扩展:40位数据组成。若为低16位,则根据ST1的SXM的符号扩展方式处理,当SXM=0,高24位(39-16)用0填充,当SXM=1,高24位填充为数据的符号逻辑,即符号扩展;若为高16位,数据位(31-16)存数据,低位(15-0)填充为0,控制位(39-32,8位)按照SXM逻辑实现符号扩展。40位数据格式:第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)2.ALU的符号扩展23151413121110987654-0BRAFCPLXFHMINTM0OVMC16FRCTCMPTASMST1反映寻址要求,计算的初始状态设置,I/O及中断控制。地址:0007H2).状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)1).状态寄存器0(ST0)15-1312111098-0ARPTCCOVAOVBDP3.3.1算术逻辑运算单元(ALU)2.ALU的符号扩展(总结)SXMST0反映寻址要求和计算的中间运行状态,地址:0006H24第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)AG(8)AH(16)AL(16)00DATA3.3.1算术逻辑运算单元(ALU)2.ALU的符号扩展(总结)AL=DATASXM=0SXM=1AH=DATASXM=0SXM=1AG(8)AH(16)AL(16)SignSignDATAAG(8)AH(16)AL(16)0DATA0AG(8)AH(16)AL(16)SignDATA025151413121110987654-0BRAFCPLXFHMINTM0C16FRCTCMPTASMST1反映寻址要求,计算的初始状态设置,I/O及中断控制。地址:0007H2).状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)1).状态寄存器0(ST0)15-1312111098-0ARPTCCDP3.3.1算术逻辑运算单元(ALU)3.ALU的饱和处理SXMST0反映寻址要求和计算的中间运行状态,地址:0006HOVAOVBOVM26数据溢出处理方式:ALU的饱和逻辑可以将结果保存为最大值(或最小值)完成溢出处理。当ST1的OVM置1时,该项功能使能。当ALU或者乘法器后面的运算发生溢出时,首先将ST0中的OVA(或者OVB)置1,然后根据ST1的OVM做饱和处理:
当OVM=0时,不做任何处理,将结果直接装入累加器;当OVM=1时,根据溢出方向,若是正溢出,将32位最大正数007FFFFFFFH装入累加器,若是负溢出,将32位最小负数FF80000000H装入累加器。第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)3.ALU的溢出处理(饱和处理)27数据溢出后处理方式:溢出发生后,ST0的OVA(OVB)被硬件置1。只有执行复位、溢出条件转移指令、位操作指令才能复位ST0的OVA(OVB)。例如:RSBXOVM;OVM复位(0)SSBXOVM;OVM置位(1)其次:可通过SAT指令对累加器做饱和处理,而不必考虑OVM的值。如SATA;或者SATB能直接对累加器结果做饱和处理。第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)28[例]设(AR2)=0060h,(AR3)=0070h,数据存储器(0060h)=A678h,(0070h)=7234h,分析指令“ADD*AR2,*AR3,A”的执行情况:ADD*AR2,*AR3,A;将AR2和AR3各自指向的数据存储器单元内容左移16位后相加,结果放到累加器A中,执行情况如下表所示第3章TMS320C54x的硬件结构3.3.1算术逻辑运算单元(ALU)3.3中央处理单元(CPU)SXM=0(无符号数相加)SXM=1(有符号数相加)ALU的X输入端(经过DB取自0060h)00A6780000hFFA6780000hALU的Y输入端(经过CB取自0070h)0072340000h0072340000h指令执行后的结果AOVM=00118AC0000h0018AC0000hOVM=1007FFFFFFFh0018AC0000h指令执行后的标志位状态C1(有进位)1(有进位)OVA1(有溢出)0(无溢出)29A,B基本结构:A,B均为40位说明:1)保护位,防止迭代运算产生的溢出,有符号运算时为扩展符号位2)AL,AH,AG,BL,BH,BG都是存储器映射寄存器,地址为0008H~000DH3)A与B的区别:A的32~16位可以作为17x17乘法器的一个输入,而B不能累加器A和B用于存储ALU或乘法器/加法器单元输出的数据。
累加器也能输出数据到ALU或乘法器/加法器中。(双向)第3章TMS320C54x的硬件结构3.3.2累加器(A,B,40位)3.3中央处理单元(CPU)30[例]累加器A=FF01234567h,执行带移位的STH和STL指令后,求暂存器T和A的内容。(带移位的累加器操作)
第3章TMS320C54x的硬件结构3.3.2累加器3.3中央处理单元(CPU)*4)针对累加器的移位操作是在移位寄存器中完成的,操作完成后累加器的内容并不改变;移出位补0*STHA,8,T;A的内容左移8位后,AH存入T,T=2345h,A=FF01234567hSTHA,-8,T;A的内容右移8位后,AH存入T,T=FF01h,A=FF01234567hSTLA,8,T;A的内容左移8位后,AL存入T,T=6700h,A=FF01234567hSTLA,-8,T;A的内容右移8位后,AL存入T,T=2345h,A=FF01234567h313.3.3桶形移位器桶形移位器可对输入的数据进行0到31位的左移和0到16位的右移。第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)323.3.3桶形移位器桶形移位寄存器的输入可以为:①DB,取得16位输入数据;②DB和CB,取得32位输入数据;③40位累加器A或B。桶形移位寄存器的输出连到:①ALU的一个输入端,②经过MSW/LSW(最高有效字/最低有效字)写选择单元至EB总线。第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)1.桶形移位器的输入输出333.3.3桶形移位器1)测试控制标志位TC的形成及使用:①位于ST0的第12位;第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)2.桶形移位器的移位控制(重点)状态寄存器0(ST0)15-1312111098-0ARPCOVAOVBDPST0反映寻址要求和计算的中间运行状态,地址:0006HTC343.3.3桶形移位器1)测试控制标志位TC的形成及使用:②TC受测试指令的影响,测试指令一般和条件转移指令相结合,实现程序转移、或者用于检测数据的正负、数据的位状态等;
BITXmen,BITC;BITC指定测试位,从最高位向右数的第BITC位(即15-BITC),将Xmen存储单元的测试位的值复制到ST0的TC位;BITFXmen,#lk;Xmen与立即数相与,如果结果为0,TC清零,否则TC置1(相与运算结果与TC逻辑相同);
BITTSmen;测试位由T寄存器的3-0位决定(相当于BITC值),然后将Smen的15-T(3-0)的值复制到TC;第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)2.桶形移位器的移位控制(重点)353.3.3桶形移位器
CMPMXmen,#lk;Xmen与立即数相比较,如果相等,TC置1,否则TC置清0;(类似于BITF,逻辑结果形成TC);
CMPRCC,ARx;ARx与AR0的值比较,比较条件由二位条件码CC给出,如果条件满足,TC置1,否则清0;CC也可由条件符号(表格第一列)给出。第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)条件CC(十进制)作用EQ000测试Arx值是否等于AR0;Arx=AR0LT011测试Arx值是否小于AR0;Arx<AR0GT102测试Arx值是否大于AR0;Arx>AR0NEG113测试Arx值是否不等于AR0;Arx≠AR036CMPSA,*AR1功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较,选择最大的字存储,并影响TRN,TC如果AH>AL,则AH→*AR1,TRN左移1位,0→TRN(0),0→TC;如果AH<AL,则AL→*AR1,TRN左移1位,1→TRN(0),1→TC。第3章TMS320C54x的硬件结构3.3.3桶形移位器3.3中央处理单元(CPU)373.3.3桶形移位器SFTCsrc;累加器条件测试移位;src为累加器A或者B;
当src为0时,TC清零;当src不等于0时:
若src的31、30位相同,即符号位相同,则累加器左移一位,TC清0;
若该两位不同,累加器不移位,TC置1.
第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)381)由指令中SHIFT给出的移位值,-16~15,大于0时左移,小于0时右移;例:ADDA,-4,B;累加器A的值右移4位,与累加器B的值相加,结果存于累加器B;2)ST1的ASM值,共5位,-16~15;例:ADDA,ASM,B;累加器A的值按照ASM移位,与累加器B的值相加,结果存于累加器B;3)来自暂存器T的最低6位,一般用在归一化指令中,例:NORMA;T中的最低6位为指数,按指数完成A的移位,该值由EXP指令获得。
第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)2)移位控制方式:立即数;ASM;T的低6位;TC3.3.3桶形移位器393.3.3桶形移位器[例3]对累加器A执行不同的移位操作ADDA,-4,B;累加器A的值右移4位后加到累加器B中ADDA,ASM,B;累加器A的值按ASM指定的移位数移位后
加到累加器B中EXPA;将累加器A冗余符号位减8,存于T,获得
其指数NORMA;按暂存器T中的数值(指数)对累加器A进
行归一化第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)403.3.3桶形移位器3)移位指令及操作:ROLsrc;带进位循环左移一位;RORsrc;带进位循环右移一位;
ROLTCsrc;带进位、测试位的循环左移一位(TC在右)
第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)总结:0~31位参与循环,保护位清零;仅移动一位SFTAsrc,SHIFT,dst;累加器算数移位SHIFT位,用于对有符号数的移位,其操作与标志位SXM及OVM的值有关,它会影响状态位C及OVdst(若dst=src,则为OVsrc)。411)当0<SHIFT≤15时,将src的39~0位左移SHIFT位,低位添0;将最后一次移动的位值送入状态位C。(左移不考虑符号扩展位SXM影响)2)当-16≤SHIFT<0时,将src的39~0位右移SHIFT位,将最后一次移动的位值送入状态位C;当SXM=0时,高位添0;当SXM=1时,将最高位(39位)的值添入移出的高位,即保持符号位。3.3.3桶形移位器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)总结:SXM=1时,符号保持,否则0~39添0移位;最后移出位进CSFTLsrc,SHIFT,dst;累加器逻辑移位SHIFT位,它会影响状态位C,操作示意图如图所示。421)当0<SHIFT≤15时,将src的31~0位左移SHIFT位,低位添0;将最后一次移动的位值送入状态位C,将src的39~32位清0。2)当-16≤SHIFT<0时,将src的31~0位右移SHIFT位,高位添0;将最后一次移动的位值送入状态位C;将src的39~32位清0。3)当SHIFT=0时,令C=0。3)移位指令及操作:3.3.3桶形移位器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)总结:0~31添0移位;保护位清零;最后移出位进C433.3.3桶形移位器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)
SFTCsrc;累加器测试移位置;src为累加器A或者B;(复习)
当src为0时,TC清零;当src不等于0时:
若src的31、30位相同,则累加器左移一位,TC清0;
若src的31、30位不同,累加器不移位,TC置1.说明:若src的31、30位相同,即符号位相同,则累加器左移一位,其目的是移出多余的符号位。44乘法器/加法器(MAC)单元包括1个乘法器和1个专用加法器。乘法器/加法器单元具有强大的乘累加运算功能,可以在一个流水线周期内完成1次乘法运算和1次加法运算。TMS320C54xCPU中的MAC单元有一个17位×17位的硬件乘法器,并且附带了一个40位的专用加法器,其功能框图如图3-6所示。其中硬件乘法器用来完成乘法运算,专用加法器用来完成累加、取整、饱和等操作。乘法器/加法器单元由以下部分组成:乘法器,加法器,带符号/无符号输入控制,小数控制,零检测器,舍入器(二进制补码),溢出/饱和逻辑和暂存器(TREG)。3.3.4乘法器/加法器单元第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)45图3-6乘法器/加法器单元功能框图乘法器输入:X:T,A,DB0~15Y:A,DB0~15,CB0~15,PB0~15乘法器输出:加法器加法器输入:X:乘法器Y:A,B加法器输出:A,B,03.3.4乘法器/加法器单元46乘法运算前数位扩展:乘法运算的输入数据为16位,进行17x17的乘法运算时需要数位扩展。如果是两个符号数,则在16位前增加一位符号位,若是非符号数,则扩展位填0.如果数据来自累加器A,则取A的高位字及符号位组成17位。乘法运算后的符号处理:两个17位的二进制码相乘会产生两个符号位。则需要根据ST1的小数方式控制位FRCT的逻辑做处理。若FRCT=1,乘法结果自动左移一位,消除多余符号位,若FRCT=0,保持结果不变。3.3.4乘法器/加法器单元第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)151413121110987654-0BRAFCPLXFHMINTM0OVMSMXC16FRCTCMPTASMST147舍入操作:如果乘加指令末尾带R,则需要做舍入操作,将215(8000h)加到计算结果,并将目的累加器的低16位清0.当执行LMS指令时,为修正系数的量化误差也进行舍入操作。溢出/饱和处理:当ST1的OVM=1,FRCT=1;处理器工作方式寄存器PMST的乘法饱和方式位SMUL=1时,对乘法结果做饱和处理。当SMUL=0时,只对MAC、MAS的结果做饱和处理。(三个控制逻辑使能)3.3.4乘法器/加法器单元第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)处理器模式状态寄存器(PMST)15-76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSST48寻址指令中用到的缩写符号及其含义缩写符号含义Smem16位单数据存储器操作数Xmem在双操作数指令和一些单操作数指令中使用的16位双数据存储器操作数。从DB数据总线上读出Ymem在双操作数指令中使用的16位双数据存储器操作数。从CB总线上读出dmad16位立即数表示的数据存储器地址(0~65,535)pmad16位立即数表示的程序存储器地址(0~65,535),它包括器件的扩展存储器地址PA16位立即数表示的I/O地址(0~65,535)src源累加器(A或B)dst目的累加器(A或B)1k16位长立即数乘加/乘减指令49乘加/乘减指令第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)语法表达式说明字数周期MACSmem,src操作数与T寄存器值相乘后加到累加器11MACXmem,Ymem,src[,dst]两个操作数相乘后加到累加器中11MAC#lk,src[,dst]长立即数与T寄存器位相乘后加到累加器22MACSmem,#lk,src[,dst]长立即数与操作数相乘后加到累加器22MACRSmem,src操作数与T寄存器值相乘后加到累加器(带舍入)11MACRXmem,Ymem,src[,dst]两个操作数相乘后加到累加器中(带舍入)11关注:乘法-加法-存储src=src+T*Smemdst=src+Xmem*#lk,T=Xmemdst=src+T*#lkdst=src+Smem*Ymen,T=Smemsrc=rnd(src+T*Smem)dst=rnd(src+Xmem*Ymem),T=Xmem50语法表达式说明字数周期MACASmem[,B]操作数与累加器A高位相乘后加到累加器B11MACAT,src[,dst]T寄存器值与累加器A高位相乘11MACARSmem[,B]T寄存器值与累加器A高位相乘后加到累加器B中(带舍入)11MACART,src[,dst]T寄存器值与累加器A高位相乘后加到源累加器(带舍入)11MACDSmem,pmad,src操作数与程序存储器值相乘后加到累加器并延迟23MACPSmem,pmad,src操作数与程序存储器值相乘后加到累加器23MACSUXmem,Ymem,src无符号数与有符号数相乘后加到累加器11MASSmem,src从累加器中减去操作数与T寄存器值的乘积11MASRSmem,src从累加器中减去操作数与T寄存器值的乘积(带舍入)11MASXmem,Ymem,src[,dst]从源累加器中减去两个操作数的乘积11MASRXmem,Ymem,src[,dst]从源累加器中减去两个操作数的乘积(带舍入)11MASASmem[,B]从累加器B中减去操作数与累加器A高位乘积11MASAT,src[,dst]从源累加器中减去T寄存器值与累加器A高位乘积11MASART,src[,dst]从源累加器中减去T寄存器值与累加器A高位乘积(带舍入)11SQURASmem,src操作数平方并累加11SQURSSmem,src从累加器中减去操作数平方11B=B+Smem*A(32–16),T=Smemdst=src+T*A(32–16)B=rnd(B+Smem*A(32–16)),T=Smemdst=rnd(src+T*A(32–16))src=src+Smem*pmad,T=Smem,(Smem+1)=Smemsrc=src+Smem*pmad,T=Smemsrc=src+uns(Xmem)*Ymem,T=Xmemsrc=src–T*Smemsrc=rnd(src–T*Smem)dst=src–Xmem*Ymem,T=Xmemdst=rnd(src–Xmem*Ymem),T=XmemB=B–Smem*A(32–16),T=Smemdst=src–T*A(32–16)dst=rnd(src–T*A(32–16))src=src+Smem*Smem,T=Smemsrc=src–Smem*Smem,T=Smem51乘加/乘减指令总结:两个操作数相乘,乘法结果与目的累加器相加(从其中减去),最后结果存于目的累加器。MACA的一个操作数来自累加器A的高位字,另一个来自Xmen(来自D总线)或者T寄存器;乘法结果加于累加器B或者src;最后结果存于累加器B或者src.两个操作数在指令中均“出现”时,来自与D总线的Smen或者Xmen的值运算结束后存于暂存器T;当指令末尾带R时,做舍入处理。如果只给出一个操作数,则另外一个操作数由T寄存器给出.3.3.4乘法器/加法器单元第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)52[例4]MAC指令和MACR指令的执行情况分析MAC[R]*AR3,A;将AR3指向的存储单元内容与暂存器T的值相乘后与累加器A的值相加后送入A中3.3.4乘法器/加法器单元第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)53比较、选择和存储单元(CSSU)完成累加器的高位字和低位字之间的最大值比较,即选择累加器中较大的字并存储在数据存储器中,影响状态寄存器ST0中的测试/控制位和传送寄存器(TRN)的值。功能:多用于Viterbi型蝶形运算,加、比较、选择、存储运算。用途:多用于通信中均衡,解码等Viterbi蝶型计算3.3.5比较、选择和存储单元(CSSU)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)54
比较、选择和存储单元结构1)比较单元:COMP,TRN,TC用于记录比较结果2)选择单元:MSW/LSW3)存储:通过EB0~15完成(输出)输入为A,B,桶型移位寄存器3.3.5比较、选择和存储单元(CSSU)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)55[例5]CMPS指令的操作CMPSA,*AR1功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较,选择最大的字存储,并影响TRN,TC如果AH>AL,则AH→*AR1,TRN左移1位,0→TRN(0),0→TC;如果AH<AL,则AL→*AR1,TRN左移1位,1→TRN(0),1→TC。(PPT.35,36;CMPx指令对TC的影响)
3.3.5比较、选择和存储单元(CSSU)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)56指数编码器是用于支持单周期指令EXP的专用硬件。在EXP指令中,累加器中的指数值能以二进制补码的形式(-8~31)存储在T寄存器中。指数值定义为前面的冗余符号位数减8的差值,即累加器中为消除非有效符号位所需移动的位数。功能:支持指令EXP和NORM完成规格化定点数操作。规格化定点数格式:T中存指数,A中存尾数。3.3.6指数编码器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)
图3-10指数编码器57[例6]累加器A的归一化EXP A;A中冗余符号位的位数减去8,所得结果存入暂存器T中NORMA;对累加器进行归一化,按T中所存的数值对A进行移位3.3.6指数编码器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)(PPT.37;桶形移位器)58TMS320C54xCPU有3个状态和控制寄存器(Status)状态寄存器0(ST0)状态寄存器1(ST1)处理器工作方式状态寄存器(PMST)ST0和ST1中包含各种工作条件和工作方式的状态;PMST中包含存储器的设置状态及其他控制信息。由于这些寄存器都是存储器映射寄存器,所以都可以快速地存放到数据存储器,或者由数据存储器对它们加载,或者用于程序或者中断服务程序保存和恢复处理器的状态。3.3.7CPU状态和控制寄存器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)591.状态寄存器0(ST0)ST0反映寻址要求和计算的中间运行状态,地址:0006H3.3.7CPU状态和控制寄存器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)状态寄存器ST0各位的定义:15-1312111098-0ARPTCCOVAOVBDPARP——辅助寄存器指针,方式选择位,3位.指定用于兼容模式下间接寻址的辅助寄存器;当DSP工作于标准模式(CMPT=0)时,ARP必须保持为0;各位的功能描述:603.3.7CPU状态和控制寄存器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)15-1312111098-0ARPTCCOVAOVBDPARP——与ST1的,CMPT相呼应。当CMPT=1,DSP工作于兼容模式,可以修正ARP,用于指定间接寻址的辅助寄存器。
当CMPT=0时,DSP工作于标准模式,ARP必须保持为0;1.状态寄存器0(ST0)61TC——测试/控制标志位,存储算术运算单元ALU的测试位操作结果;
TC受BIT、BITF、BITT、CMPM、CMPR、CMPS和
SFTC指令的影响,TC的状态决定了是否需要条件转移、调用、执行和执行返回指令;(PPT.34--37)C——进位位如果加法运算的结果产生了进位,则C=1;如果减法运算未产生借位,则C=1;除了带16位移位的ADD和SUB指令外,如果加法中没有进位或减法中产生借位,则在加法运算之后C=0;移位运算
也影响C(PPT.40--43)1.状态寄存器0(ST0)3.3.7CPU状态和控制寄存器第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)62OVA——累加器A的溢出标志位;OVB——累加器B的溢出标志位; 不论是ALU还是乘法器中的累加器,当结果目的操作数使累加器A产生溢出时,OVA=1;使累加器B产生溢出时,OVB=1;清零:
执行复位
RSBX指令,如RSBXOVA,复位;SSBX置位;
AOV\ANOV、BOV\BNOV作为条件,如BC[D]、CC[D]、RC[D]、XC指令后自动清零
SATA;或者SATB;对累加器直接饱和处理,不受OVM影响(PPT.25--27)
1.状态寄存器0(ST0)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器63DP——数据存储器页指针,此9位与指令中的低7位一起形成16
位直接寻址方式下的数据存储器地址;DP域可通过带短立即数的LD指令或从数据存储器中装载;
1.状态寄存器0(ST0)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器64151413121110987654-0BRAFCPLXFHMINTM0OVMSXMC16FRCTCMPTASMST1反映寻址要求,计算的初始状态设置,I/O及中断控制。地址:0007H2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器65BRAF——块重复操作标志位块重复有效标志,由其指示块重复是否当前有效;
BRAF=0时块重复无效;BRAF=1块重复有效;当执行RPTB指令时,BRAF自动置位;当块重复
计数器BRC减到小于零时,BRAF清零。
2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器66♦重复操作及重复指令(Repeat)重复指令可以使DSP重复执行一条指令或一段指令。语法表达式说明字数周期RPTSmemRepeatsingle,RC=Smem重复执行下一条指令(Smem)+1次11RPT#KRepeatsingle,RC=#K重复执行下一条指令K+1次11RPT#lkRepeatsingle,RC=#lk重复执行下一条指令lk+1次22RPTB[D]pmadRepeatblock,RSA=PC+2[4],REA=pmad,BRAF=1块重复指令24/2RPTZdst,#lkRepeatsingle,RC=#lk,dst=0重复执行下一条指令lk+1次,目的累加器清022第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)67RPT用于将紧随该指令之后的指令重复执行n+1次。循环次数n由数据存储器Smem、常数K或lk确定,并放入循环计数器RC中。RPTB[D]用于循环执行某个指令块,循环次数由块循环计数器BRC确定,BRC在指令执行之前被赋值。指令执行时,块循环开始地址寄存器RSA用PC+2(若使用D后缀时为PC+4)装载,循环结束地址寄存器REA用程序存储器地址pmad装载。单指令循环也可以看做是一种块循环。该指令可以被中断,也可以通过将BRAF位清零来终止块循环。RPTZ用于将dst清零,并重复执行下一条指令lk+1次,常数lk存放在循环计数器RC中。♦重复操作及重复指令(Repeat)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)68当执行RPTB[D]指令时,BRAF被自动置1.复指令可以被终止,即通过将ST1的BRAF位清零来终止。例:RPT#1111h;将1111h装入RC;将下一条指令重复执行1112h,即4370次;ST#0063h,BRC;块循环次数计数器BRC装载RPTBend_block;REA的内容为end_block地址
第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)♦重复操作及重复指令:69[例]重复指令示例ST#0063h,BRCRPTBend_block-1;利用ST和RPTB指令设置循环参数
指令执行前RPTB指令执行后PC1000PC1002BRC1234BRC0063RSA5678RSA1002REA9ABCREAend_blockRPTBD指令执行后PC1002BRC0063RSA1004REAend_block♦重复操作及重复指令(Repeat)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)70CPL——直接寻址编译方式位,指定哪一个指针用于直接寻址;
CPL=0时,用数据页指针DP;
CPL=1时,用堆栈指针SP;XF——外部标志(XF)管脚状态,XF是通用的输出管脚,
SSBX指令能够置位XF,RSBX指令能够复位XF;HM——保持方式位,CPU的省电方式之一。指示当接到一个HOLD引脚低电平信号时处理器是否继续内部指令执行;
HM=0,处理器从内部程序存储器继续执行,只是把外部接口置成高阻状态;
HM=1,处理器暂停内部执行;2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器71♦保持方式:状态寄存器1(ST1)的D12,HM用来选择CPU的省电方式。
为降低功耗,当HOLD引脚信号为低电平时,根据HM的逻辑决定CPU对内部指令的处理方式:
当HM=1,处理器暂停内部执行,数据总线、控制总线、地址总线(三总线)进入高阻状态,CPU暂停工作;
当HM=0时,三总线处于高阻状态,但CPU任然继续工作,从内部程序存储器继续执行,只是把外部接口置成高阻状态。
第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器72INTM——中断方式位,用于屏蔽或打开全部中断
INTM=0,开放所有可屏蔽中断
INTM=1,关闭所有可屏蔽中断
INTM不能通过存储器写操作来设置;
SSBX指令可置位INTM,RSBX指令清除INTM;0——保留位,未使用,此位总是等于0;OVM——溢出方式控制位,决定当累加器溢出时重新装入目的累加器的数值;
OVM=0,从ALU或乘法器的加法器中溢出的结果像正常情况一样加到目的累加器中;
OVM=1,根据遇到的溢出值目的累加器被置成:或者最大的正值(007FFFFFFFh)或者最负的值
(FF80000000h)(PPT.25--27)2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器73SXM——符号位扩展方式控制位,决定是否做符号扩展
SXM=0,数据进入ALU之前符号位禁止扩展;
SXM=1,数据在被ALU使用之前进行符号扩展;SSBX指令和RSBX指令分别设置和复位SXM
(PPT.22--24)FRCT——小数方式位,指定乘法器的运算模式当FRCT=1时,乘法器的输出自动左移1位,消除多余符号位。2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器(PPT.46)74C16——双16位/双精度算术运算方式控制位,用来决定ALU的运算模式
C16=0,ALU进行32位字长运算,双精度运算;
C16=1,ALU同时进行2个相独立的16位计算;
♦双16位运算:ALU在单个指令周期内进行独立的2次16位加法或者2次16位减法。2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器75CMPT—修正方式位,CMPT决定ST0的ARP是否可以修正。CMPT=0,处理器工作在标准模式,
在间接寻址单个数
据存储器操作数时,不能修正ARP。当DSP工作在这种
方式时,ST0的ARP必须置0;CMPT=1,处理器工作在兼容模式,
在间接寻址单个数
据存储器操作数时,可修正ARP,ARP的值选择当前辅
助寄存器(AR0除外)ASM——累加器移位方式位
5位的ASM域指定了-15到16范围内的移位值并且被编码为2的补码;
2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器(PPT.38)76
可以使用SSBX和RSBX指令对ST0和ST1的“各个位”进行置位(设置为1)或清零(设置为0)操作.例如符号扩展模式可以使用:SSBXSXM;设置为1
RSBXSXM;复位操作ARP、DP、ASM可以使用LD指令带一个短立即操作数来装载,ASM和DP还可以使用LD指令用数据存储器的值来装载;2.状态寄存器1(ST1)第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器773.处理器模式状态寄存器PMST(存储器内容之后学习)15-76543210IPTRMP/MCOVLYAVISDROMCLKOFFSMULSSTIPTR——中断向量指针,指定中断向量表的存放位置;
9位的IPTR指向128字的程序页,在这128字程序页保存着中断向量。在引导装载操作时,可以重新把中断向量映射到RAM区。在复位时,这些位都设为
1;复位向量总是驻留在程序存储器空间的FF80h地址处,RESET指令不影响此区域PMST主要设定并控制处理器的工作方式,反映处理器工作状态。PMST中的数据决定了C54X芯片的存储器配置情况,PMST寄存器通过存储器寻址的寄存器指令装载,如STM指令;第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器78MP/MC——微处理器/微计算机模式,决定片内ROM是否可由程序存储空间寻址;取决于管脚MP/MC上的电平,MP/MC=0,可寻址片内程序存储器(片内ROM);MP/MC=1,不能寻址片内程序存储器(片内ROM)。OVLY——片内RAM占位位,使片内双重访问RAM可以被映射到程序存储区;
OVLY=0,只能在数据空间但不能在程序空间寻址片内RAM
OVLY=1,片内RAM可以映射入程序空间和数据空间;3.处理器模式状态寄存器PMST第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器79AVIS——地址可见位,决定内部程序地址是否在地址管脚上可见,即AVIS控制能否从器件地址线管脚上观察内部地址线;
AVIS=0,外部程序地址线不随内部程序地址变化,控制和数据线不受影响,并且地址总线由总线上的最后地址驱动,此时内部程序地址的变化不能通过器件的地址线管脚观察;
AVIS=1,允许内部程序地址出现在C54X管脚上,可用来跟踪内部程序地址;3.处理器模式状态寄存器PMST第3章TMS320C54x的硬件结构3.3中央处理单元(CPU)3.3.7CPU状态和控制寄存器80DROM——数据ROM位,决定片内ROM是否可映射到数据空间
DROM=0,片上ROM不映射入数据空间;
DROM=1,一部分片上ROM映射入数据空间。CLKOFF—CLKOUT时钟输出关断位,决定时钟输出管脚是否有输出CLKOFF=1时,禁止CLKOUT输出并保持为高电平;SMUL——乘法饱和方式位,乘法运算时取整只有在OVM=1并且FRCT=1时SMUL才可用;当SMUL=1时,在MAC或MAS指令中进行累加运算之前将乘法运算结果取整;SST——存储饱和位,存储时取整,当SST=1时,累加器中的数据在存储到存储器之前允许取整,取整在移位操作之后完成;3.处理器模式状态寄存器PMST第3章TMS320C54x的硬件结构3.3中央处理单元
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 福建省南平市峻德中学高一数学理期末试卷含解析
- 2025年度基础设施建设材料采购合同约定3篇
- 实施“两化”融合发展战略提升现代物流产业发展-基层调研体会
- 2024年为规范公司管理制度
- 2024年铝锭供应商协议
- 2024版煤炭购销不可撤销居间协议
- 2024年人事年终工作总结范文(35篇)
- 2025年度定制刀具表面处理及打磨合同2篇
- 2024年人教新课标语文四年级教案篇
- 2024音响工程整体解决方案安装合同范本5篇
- 附表四计划开、竣工日期和施工进度网络图
- 2023服装跟单工作总结
- 儿童哮喘控制测试(C-ACT)
- 福建泉州惠安县2023-2024学年数学四年级第一学期期末质量跟踪监视试题含答案
- DL5168-2023年110KV-750KV架空输电线路施工质量检验及评定规程
- 门诊发生火灾应急预案演练建议5篇,门诊发生火灾的应急预案
- 医疗废物转运工作制度
- 新编建筑施工扣件式钢管脚手架安全技术规范
- 三年级下册小猿口算题1000道
- 《古兰》中文译文版
- 井下机电安装安全教育培训试题及答案
评论
0/150
提交评论