第6章 TMS320C54x基本结构_第1页
第6章 TMS320C54x基本结构_第2页
第6章 TMS320C54x基本结构_第3页
第6章 TMS320C54x基本结构_第4页
第6章 TMS320C54x基本结构_第5页
已阅读5页,还剩49页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

第六章TMS320C54x基本结构,6.1TMS320C54x结构简介6.2内部总线结构6.3中央处理单元(CPU)6.4存储器6.5小结,【重点难点】DSP芯片的总线结构及其作用DSP芯片中央处理单元(CPU)的组成及各部分的功能DSP芯片存储器结构和存储空间的组织与分配C5416的存储器映射寄存器,TMS320C54x结构简介,6.1TMS320C54x结构简介,一、内部总线结构:一组程序总线(PB)三组数据总线(CB、DB和EB)四组地址总线(PAB、CAB、DAB、EAB),二、CPU组成部分:一个40位的算术逻辑单元(ALU)乘法器加法器单元(MAC)两个40位的累加器(A和B)桶形移位器比较、选择和存储单元指数编码器CPU状态和控制寄存器,TMS320C54x结构简介,6.2总线结构,总线结构,1条程序总线(PB):用于从程序存储区提取指令和常数,其中存放在程序存储区的常数叫做立即数操作数。3条数据总线(CB、DB和EB):连接各个组成部分CB和DB传送从数据存储器读出的操作数;EB总线传送要写入到存储器中的数据;4条地址总线(PAB、CAB、DAB和EAB):传送执行指令所用的地址。,表6-1各种读/写方式用到的总线,总线结构,6.3中央处理单元(CPU),中央处理单元(CPU),6.3.1算术逻辑单元(ALU),1、ALU的输入ALU的X输入源1)桶形移位寄存器的输出。2)来自数据总线DB的数据存储器操作数。ALU的Y输入源1)累加器A中的数据。2)累加器B中的数据。3)来自数据总线CB的数据存储器操作数。4)T寄存器中的数据,2、ALU的输出ALU的输出为40位,被送往累加器A或B。,3、溢出处理若OVM=0,则对ALU的运算结果不作任何调整,直接送入累加器;若OVM=1,则对ALU的运行结果进行调整。当正向溢出时,将32位最大正数007FFFFFFFH装入累加器;当负向溢出时,将32位最小负数FF80000000H装入累加器。溢出发生后,状态寄存器ST0中与目标累加器相关的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令。,中央处理单元(CPU),饱和算法:当发生计算结果大于可表示的最大值或者小于可表示的最小值的时候,结果为这个最大值或者最小值。非饱和算法:如果结果溢出则直接去掉溢出位,剩下的就是结果。,中央处理单元(CPU),4、进位位进位位C的功能:用来指明是否有进位发生;用来支持扩展精度的算术运算;可作为分支、调用、返回和条件操作的执行条件。注意:进位位C不受装载累加器操作、逻辑操作、非算术运算和控制指令的影响;进位位的值通常可以用用指令(RSBX置0和SSBX置1)直接进行设置;硬件复位时,进位位置1。,中央处理单元(CPU),5、双16位算术运算在单个周期内进行两次16位加法或两次16位减法运算。,6、其他控制位TC测试/控制标志,位于ST0的12位;ZA/ZB累加器结果为0标志位。,中央处理单元(CPU),中央处理单元(CPU),6.3.2累加器(A/B),保护位:AG、BG3932,作为算术计算时的数据位余量,以防止迭代运算中的溢出。,高阶位:AH、BH3116;,低阶位:AL、BL150。,累加器A和累加器B的唯一差异在于累加器A的(1631)位可以用作乘累加单元的一个输入。,1、保存累加器的内容使用STH、SACCD和并行存储指令存储累加器内容:先将累加器内容移位,再将高16位存入存储器。右移存储:AG(BG)右移AH(BH),AH(BH)存入存储器;左移存储:AL(BL)左移AH(BH),AH(BH)存入存储器。使用STL指令存储累加器内容:先将累加器内容移位,再将低16位存入存储器。右移存储,AH(BH)右移AL(BL),AL(BL)存入存储器;左移存储,AL(BL)左移AH(BH),低位补0,AL(BL)存入存储器。,注意:移位操作是在存储累加器内容的过程中同时完成的;移位操作是在移位寄存器中完成的,累加器的内容保持不变。,中央处理单元(CPU),中央处理单元(CPU),例6-1:假设累加器AFF43211234h,执行带移位的STH和STL指令操作后,求数据存储单元TEMP和累加器A中的结果。STHA,8,TEMPSTHA,-8,TEMPSTLA,8,TEMPSTLA,-8,TEMP,;TEMP2112h;TEMPFF43h;TEMP3400h;TEMP2112hAFF43211234h,中央处理单元(CPU),例6-2:累加器A=FF01234567H,执行带移位的STH和STL指令后,求暂存器T和A的内容。,STHA,8,T;A的内容左移8位,AH存入T,01,23,45,67,00,2345,T=2345H,A=FF01234567H,STHA,-8,T;A的内容右移8位,AH存入T,45,23,01,FF,FF,FF01,T=FF01H,A=FF01234567H,STLA,8,T;A的内容左移8位,AL存入T,01,23,45,67,00,6700,T=6700H,A=FF01234567H,STLA,-8,T;A的内容右移8位,AL存入T,45,23,01,FF,FF,2345,T=2345H,A=FF01234567H,中央处理单元(CPU),2、累加器移位和循环移位累加器移位或循环移位的指令共有6条:SFTA算术移位。SFTL逻辑移位。SFTC条件移位。ROL累加器循环左移。ROR累加器循环右移。ROLTC累加器带TC位循环左移。,3、专用指令FIRS指令LMS指令SQDST指令,6.3.3桶形移位寄存器,中央处理单元(CPU),1、数的定标,2、数的转换,中央处理单元(CPU),1)浮点数与定点数之间的转换,浮点数(x)转换为定点数(xq):(6.3.1)定点数(xq)转换为浮点数(x):(6.3.2)浮点数(x)转换为定点数(xq):(6.3.3),2)定点二进制数转换为浮点十进制数(1)先求整型数,然后利用式(6.3.2)进行计算(2)根据Q值,确定小数点位置,然后进行计算,中央处理单元(CPU),1)组成框图,多路选择器MUX,MUX,MUX,MUX,符号控制SC,符号控制SC,符号控制SC,桶形移位器,桶形移位器(-1631),桶形移位器(-1631),桶形移位器(-1631),桶形移位器(-1631),写选择电路,写选择MSW/LSW,写选择MSW/LSW,写选择MSW/LSW,多路选择器MUX,用来选择输入数据。,符号控制SC,用于对输入数据进行符号位扩展。,桶形移位器,用来对输入的数据进行定标和移位。,写选择电路,用来选择最高有效字和最低有效字。,3、桶形移位寄存器,中央处理单元(CPU),2)桶形移位寄存器的输入,通过多路选择器MUX来选择输入信号。,取自DB数据总线的16位输入数据;,取自DB和CB扩展数据总线的32位输入数据;,来自累加器A或B的40位输入数据。,3)桶形移位寄存器的输出,输出至ALU的一个输入端;,经写MSW/LSW选择电路输出至EB总线。,中央处理单元(CPU),4)桶形移位寄存器的功能在ALU运算前,对来自数据存储器的操作数或者累加器的值进行定标。对累加器中的值进行算术或逻辑移位。对累加器中的值进行归一化处理。在累加器中的值存储到数据存储器之前进行定标。,5)桶形移位寄存器的操作(1)控制操作数的符号位扩展若操作数为有符号数,则当SXM=1时,完成符号位扩展;当SXM=0时,禁止符号位扩展。若操作数为无符号数,不执行符号位的扩展。,中央处理单元(CPU),(2)控制操作数的移位移位数都用2的补码表示,正值表示左移,负值表示右移。移位数的形式:5位立即数,取值范围:-1615;ST1中的ASM位,取值范围:-1615;暂存器T中的低6位数值,取值范围:-1631。例如:ADDA,-4,B;累加器A右移4位后加到累加器BADDA,ASM,B;累加器A中的值移位后与累加器B;的值相加,结果放在累加器BNORMA;按T寄存器中的数值对累加器A归一化,中央处理单元(CPU),6.3.4乘法器/加法器单元,1、乘法器1)三种乘法运算如果是两个有符号数相乘,则16位的乘数与被乘数先进行符号扩展,在最高位前添加l个符号位(其值由最高位决定),扩展为17位有符号数后再相乘;如果是无符号数乘以无符号数,则在两个操作数的最高位前面添加“0”,扩展为17位的操作数再相乘;如果是有符号数与无符号数相乘,有符号数在最高位前添加1个符号位(其值由最高位决定),无符号数在最高位前面添加“0”,然后两个操作数相乘。,中央处理单元(CPU),2)乘法器的输入XM输入:取自数据总线DB的数据存储器操作数;来自暂存器T的操作数;来自累加器A的3216位操作数。YM输入:来自数据总线DB的数据存储器操作数;来自数据总线CB的数据存储器操作数;来自程序总线PB的程序存储器操作数;来自累加器A的3216位操作数。3)乘法器的输出乘法器的输出经小数控制电路接至加法器的XA输入端。,中央处理单元(CPU),2、加法器1)加法器的输入XA输入:来自乘法器的输出。YA输入:来自累加器A的操作数;来自累加器B的操作数。2)加法器的输出:将运算结果送入累加器A或B。舍入算法:将目标累加器中的内容加上215,然后将累加器的低16位清零。,中央处理单元(CPU),1、CSSU单元主要功能:主要完成累加器的高阶位与低阶位之间最大值的比较,即选择累加器中较大的字,并存储在数据存储器中。2、工作过程:比较电路COMP将累加器A或B的高阶位与低阶位进行比较;比较结果分别送入状态转移寄存器TRN和状态寄存器ST0的状态位TC中,记录比较结果以便程序调试;比较结果输出至写选择电路,选择较大的数据;将选择的数据通过总线EB存入指定的存储单元。,6.3.5比较、选择和存储单元,中央处理单元(CPU),例:CMPS指令可以对累加器的高阶位和低阶位进行比较,并选择较大的数存放在指令所指定的存储单元中。指令格式:CMPSA,*AR1功能:对累加器A的高16位字(AH)和低16位字(AL)进行比较,若AHAL,则AH*AR1,TRN左移1位,0TRN(0),0TC;若AHAL,则AL*AR1,TRN左移1位,1TRN(0),1TC。,中央处理单元(CPU),6.3.6指数编码器,指数编码器是CPU的一个专用硬件,用于实现定点数到浮点数的转换时,求累加器中数据的指数值。功能:求累加器中数据的指数值,并以二进制补码的形式(-831)存放到T寄存器中指数值=冗余符号位数-8,中央处理单元(CPU),6.3.7CPU状态和控制寄存器,CPU状态和控制寄存器:状态寄存器0(ST0)状态寄存器1(ST1)工作方式状态寄存器(PMST)主要功能:ST0和ST1主要包含各种工作条件和工作方式的状态;PMST包含存储器的设置状态和其他控制信息。,操作:将它们快速地存放到数据存储器;由数据存储器对它们进行加载;用子程序或中断服务程序保存和恢复处理器的状态。,中央处理单元(CPU),1、状态寄存器0(ST0),ST0的结构:,ARP,ARP:辅助寄存器指针。用来选择使用单操作数间接寻址时的辅助寄存器AR0AR7。,TC,TC:测试/控制标志。用来保存ALU测试操作的结果。,C,C:进位标志位。用来保存ALU加减运算时所产生的进/借位。,OVA/B:累加器A/B的溢出标志。用来反映A/B是否产生溢出。,DP,DP:数据存储器页指针。用来与指令中提供的7位地址结合形成1个16位数据存储器的地址。,主要反映处理器的寻址要求和计算机的运行状态。,中央处理单元(CPU),2、状态寄存器1(ST1),主要反映处理器的寻址要求、计算初始状态的设置、I/O及中断的控制等。,BRAF:块重复操作标志位。用来指示当前是否在执行块重复操作。BRAF=0表示当前不进行重复块操作;BRAF=1表示当前正在进行块重复操作。,CPL:直接寻址编辑方式标志位;用来指示直接寻址选用何种指针。CPL=0选用数据页指针DP的直接寻址;CPL=1选用堆栈指针SP的直接寻址。,XF:外部XF引脚状态控制位。用来控制XF通用外部输出引脚的状态。执行SSBXXF=1XF通用输出引脚为1;执行RSBXXF=0XF通用输出引脚为0。,HM:保持方式位;响应HOLD信号时,指示CPU是否继续执行内部操作。HM=0CPU从内部程序存储器取指,继续执行内部操作。HM=1CPU停止内部操作。,INTM:中断方式控制位;用于屏蔽或开放所有可屏蔽中断。INTN=0开放全部可屏蔽中断;INTN=1禁止所有可屏蔽中断。,0:保留位,未被使用,总是读为0。,OVM:溢出方式控制位;用来确定累加器溢出时,对累加器的加载方式。OVM=0将运算的溢出结果直接加载到累加器中;OVM=1当正溢出时,将007FFFFFFFH加载累加器;当负溢出时,将FF80000000H加载累加器。,SXM:符号位扩展方式控制位;用来确定数据在运算之前是否需要符号位扩展。SXM=0数据进入ALU之前禁止符号位扩展;SXM=1数据进入ALU之前进行符号位扩展。,C16:双16位/双精度算术运算方式控制位;用来决定ALU的算术运算方式。C16=0ALU工作在双精度算术运算方式;C16=1ALU工作在双16位算术运算方式。,FRCT:小数方式控制位;用来确定乘法器的运算方式。FRCT=1乘法器的输出左移一位,消除多余的符号位。,CMPT:间接寻址辅助寄存器修正方式控制位;用来决定ARP是否进行修正。CMPT=0在进行间接寻址单操作数时,不修正ARP;CMPT=1在进行间接寻址单操作数时,修正ARP。,ASM:累加器移位方式控制位。为某些具有移位操作的指令设定一个从-1615范围内的移位值。,中央处理单元(CPU),3、工作方式状态寄存器PMST,主要设定和控制处理器的工作方式和存储器的配置,反映处理器的工作状态。,中断向量指针,CPU工作方式选择位,RAM重复占位标志,地址可见控制位,数据ROM映射选择位,时钟输出选择位,乘法饱和方式位,存储饱和位,PMST的结构:,中央处理单元(CPU),6.3.8地址生成单元,1、程序地址产生单元(PAGEN)用来取单条指令的PC(程序计数器)寄存器中的值是由程序地址产生单元(Program-addressGenerationLogic,PAGEN)加载的。2、数据地址产生单元(DACEN)用于产生数据地址的数据地址产生单元(Data-addressGenerationLogic,DAGEN)使用以下16位寄存器计算操作数的地址:辅助寄存器(AR0AR7)块大小寄存器(BK)堆栈指针(SP)。,存储器,6.4存储器,6.4.1DSP芯片的存储器,片内存储器外部扩展存储器,ROM,RAM,SARAM:1个机器周期内只能被访问1次,DARAM:1个机器周期内能被访问两次,Flash,存储器,表6-6部分C54xDSP片内存储器容量,存储器,存储器,6.4.2存储区的组织,一、程序空间主要功能:程序存储器主要用于存储程序指令和系数表。,微计算机模式:片内ROM映射到程序空间。复位后程序跳转至固定起始地址,再根据存放在片内的中断矢量表跳转至片内存放引导程序的地址,开始运行片内引导程序。,1、工作模式:若MPMC0,DSP芯片工作于微计算机模式;若MPMC1,DSP芯片工作于微处理器模式。,存储器,微处理器模式:片内ROM被禁止。复位后程序跳至固定起始地址,再根据存放在片外存储器的中断矢量表跳转至相应地址开始运行用户程序。2、OVLY位设置:片内RAM可以通过设置OVLY位来控制映射区域若OVLY=0,没有片内RAM映射到程序空间,这时片内RAM作为数据存储器使用;若OVLY=l,片内RAM同时被映射到程序区和数据区。,3、扩展程序存储空间,存储器,二、数据空间DSP芯片一般具有64K字的数据寻址空间。DROM比特位:若DROM=0,片内ROM不映射到数据空间;若DROM1,部分片内ROM映射到数据空间,并且当MPMC0时,片内ROM同时映射到数据空间和程序空间。每一次复位时,DSP都将DROM位清零。便笺本RAM块(暂存存储器):位于数据存储器的0060H007FH,包括32个字的DARAM,它用于变量的高速存储,有助于避免对大RAM块进行分段。,3、,存储器,三、I/O空间作用:用于对片外设备的访问,大小:共64K字(0000hFFFFh)HOLD模式当DSP芯片处于HOLD状态时,DSP芯片的外部总线处于高阻状态,此时外设可完全获取对DSP芯片外部资源的控制权。,表6-7TMS320VC5416ROM的内容,四、TMS320VC5416的存储资源,存储器,存储器,6.4.3C5416寄存器,1、CPU寄存器,表6-8C5416CPU存储器映像寄存器,存储器,2、外设寄存器,用于对外设器件进行控制和数据访问,驻留在地址0020H005FH,并且具有一个专用的外设总线结构。,表6-9C5416外设存储器映像寄存器,存储器,存储器,6.5小结,小结,小结,总线结构:一组程序总线(PB)三组数据总线(CB、DB和EB)四组地址总线(PAB、CAB、DAB、EAB),CPU:一个40位的算术逻辑单元(ALU)两个40位的累加器(A和B)桶形移位器乘法器加法器单元(MAC)比较、选择和存储单元指数编码器CPU状态和控制寄存器,从程序存储区提取指令和常数,CB和DB传送从数据存储器读出的操作数;EB总线传送要写入到存储器中的数据;,传送执行指令所用的地址,溢出处理若OVM=0,则对ALU的运算结果不作任何调整,直接送入累加器;若OVM=1,则对ALU的运行结果进行调整。当正向溢出时,将32位最大正数007FFFFFFFH装入累加器;当负向溢出时,将32位最小负数FF80000000H装入累加器。溢出发生后,状态寄存器ST0中与目标累加器相关的溢出标志位(OVA或OVB)置1,直到复位或执行溢出条件指令。,舍入算法:将目标累加器中的内容加上215,然后将累加器的低16位清零。饱和算法:当发生计算结果大于可表示的最大值或者小于可表示的最小值的时候,结果为这个最大值或者最小值。非饱和算法:如果结果溢出则直接去掉溢出位,剩下的就是结

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论