《CxDSP的CPU与指令系统实用.pptx》由会员分享,可在线阅读,更多相关《CxDSP的CPU与指令系统实用.pptx(33页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、2023/2/211 仿真逻辑单元的主要功能是监视和控制CPU以及其他外设的工作情况,并实现对设备的测试和调试功能。CPU的信号主要包括4种:存储器接口信号 时钟和控制信号 复位和中断信号 仿真信号第1页/共33页2023/2/212F281x DSP的的CPU 单元结构框图单元结构框图第2页/共33页2023/2/213 C28x的CPU主要由总线、CPU寄存器、程序地址发生器和控制逻辑、地址寄存器算术单元(ARAU)、算术逻辑单元(ALU)、乘法器和移位器等逻辑部件组成,还包括指令队列和指令译码单元、中断处理逻辑等。ALU为32位的运算逻辑单元,主要执行算术运算和布尔运算。在运算之前,AL
2、U从寄存器、数据存储器或程序控制逻辑单元接收数据,然后进行运算,最后把结果存入寄存器或数据存储器中。32位的乘法器,可执行3232位的补码乘法,并产生64位的结果。乘法器采用32位乘数寄存器(XT,)、32位乘积寄存器(P)和32位累加器(ACC)。CPU的移位器实现对操作数的移位操作。第3页/共33页2023/2/214Fast program execution out of both RAM and Flash memoryl100-120 MIPS with Flash Acceleration Technologyl150 MIPS out of RAM for time-criti
3、cal code Control Peripherals Memory Sub-SystemEvent ManagersUltra-Fast 12-bit ADCl12.5 MSPS throughputlDual sample&holds enable simultaneous samplinglAuto Sequencer,up to 16 conversions w/o CPUControl PortsMultiple standard communication ports provide simple interfaces to other componentsCommunicati
4、ons Portsl150MIPS performancelSingle cycle 32 x32-bit MAC(or dual 16 x16 MAC)lVery Fast Interrupt ResponselSingle cycle read-modified-writelF24x/LF240 x Source Code Compatible High-Performance CPU(C28xTM DSP Core)Memory Bus 128Kw Flash+2Kw OTP4Kw Boot ROM18Kw RAMCode securityXINTF32-bitRegister File
5、Real-TimeJTAG32-bitTimers(3)150 MIPs C28xTM 32-bit DSP32x32-bitMultiplierR M WAtomicALU Interrupt ManagementEvent Mgr AEvent Mgr B12-Bit ADCWatchdogGPIOMcBSPCAN 2.0BSCI-UART ASCI-UART BSPIPeripheral BusTMS320F2812/TMS320F2810Most Powerful-Most Integrated Dual Function Digital Signal Controller第4页/共3
6、3页2023/2/215lFast&flexible interrupt management significantly reduce interrupt latencylSingle-cycle 32-bit multiplier makes computationally intensive control algorithms more efficient C28xTM DSP CorelThree 32-bit timers support multiple control loops/time bases.lSingle cycle read-modified-write in a
7、ny memory location and 32-bit registers improve control algorithm efficiencylReal-time JTAG debug shortens development cycleC28xTM 32-bit DSPInterrupt Management32-bitRegister FileReal-TimeJTAG32-bitTimers(3)32x32 bitMultiplierR M WAtomicALU Most C/C+Efficient 32-bit DSP CorelCode compatible with th
8、e TMS320C24x DSP family第5页/共33页2023/2/2162812 DSP 总线结构多组总线并行机制。程序读、数据读、数据写三种情况。内部地址总线,三组 Address Bus:程序读地址总线PAB(Program Address Bus)(0:21)22根,4 MW。数据读地址总线DRAB(Data Read Address Bus)(0:31)32位。数据写地址总线DWAB(Data Write Address Bus)(0:31)。内部数据总线:三组 Data Bus:程序读数据总线PRDB(Program Read Data Bus)(0:31)。数据读数据总线
9、DRDB(0:31)。数据/程序写数据总线DWDB(0:31)数据写入DM和PM。外部16位数据总线Data(0:15)/19位地址总线Address(0:18)为单一形式。第6页/共33页2023/2/217 多总线的结构使C28x能够实现流水线的指令执行机制。采用流水线机制可以大大加快指令执行速度,实现指令的执行在单机器周期内完成。C28x采用了8级流水线。(1)取指令阶段1:指令地址通过22位总线PAB送往程序存储器。(2)取指令阶段2:通过32位总线PRDB读程序存储器,放入指令队列。(3)译码阶段1:CPU硬件识别取指队列中指令的边界,并测定下一条待执行指令的长度。(4)译码阶段2:
10、CPU硬件从取指队列中取回指令,并将该指令放入指令寄存器,译码。(5)读阶段1:从存储器中读取数据时,把地址送到相应的地址总线上。(6)读阶段2:硬件通过数据总线取回读阶段1所寻址的存储器内的数据。(7)执行阶段:CPU执行乘法、移位和ALU操作,包括算术和逻辑操作。(8)写阶段:需要时,将指令执行的结果写回存储器。第7页/共33页2023/2/2182.CPU的寄存器 累加器(ACC、AH、AL)乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL)数据页指针寄存器(DP)堆栈指针(SP)辅助寄存器(XAR0XAR7、AR0AR7)程序计数器(PC)返回PC指针寄存器(RPC)中断控制寄
11、存器(IFR、IER、DBGIER)状态寄存器(ST0,STl)第8页/共33页2023/2/219C28x DSP的CPU寄存器 第9页/共33页2023/2/2110累加器可以单独存取的结构(1)累加器(ACC、AH、AL)第10页/共33页2023/2/2111乘数寄存器XT的分半单独存取结构 P寄存器的分半单独存取结构(2)乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL)第11页/共33页2023/2/2112(3)数据页指针寄存器(DP)在直接寻址方式中,操作数的地址由两部分组成:一个页地址(Data Page)和一个页内的偏移量。C28x的数据存储器每64个字构成一个数据
12、页(6位的偏移量),这样,4MW的数据存储器共有65536个数据页,用065535进行标号。在直接寻址方式下,当前的页地址存放于16位的数据页指针寄存器(DP)中,可以通过给DP赋新值可改变数据页号。当CPU工作在C2xLP源兼容模式时,使用一个7位的偏移量,并忽略DP寄存器的最低位。第12页/共33页2023/2/2113数据存储器的数据页(C28x,6位偏移量)第13页/共33页2023/2/2114(4)堆栈指针(SP)堆栈指针(SP)允许在数据存储器中使用软件堆栈。堆栈指针为16位,可以对数据空间的低64K字(数据存储器0000HFFFFH)进行寻址。第14页/共33页2023/2/2
13、115(5)辅助寄存器(XAR0XAR7、AR0AR7)XAR0XAR7寄存器 第15页/共33页2023/2/2116(6)程序计数器(PC)C28x的程序计数器(PC)是一个22位的寄存器,存放当前CPU正在操作指令的地址。(7)返回PC指针寄存器(RPC)(8)中断控制寄存器(IFR、IER、DBGIER)有两对长调用指令:LC和LRET,LCR和LRETR。LCR和LRETR执行效率更高,只有LCR和LRETR指令使用RPC。当使用LCR指令时,当前RPC的值被压入堆栈。返回地址将被装载到RPC寄存器中,而22位的函数入口地址将被装载到PC计数器,从而使流程转入函数体中运行。调用结束通
14、过LRETR指令返回时,存放在RPC内的返回地址装载到PC中,而压入堆栈中的RPC的值从堆栈中装载到RPC内。第16页/共33页2023/2/2117(9)状态寄存器(ST0,STl)C28x CPU有两个重要的状态寄存器:ST0和ST1,其中包含着不同的标志位和控制位。ST0包含指令操作所使用或影响的控制或标志位,如溢出、进位、符号扩展等。ST1则主要包含一些特殊的控制位,如处理器的兼容模式选择、寻址模式配置等。第17页/共33页2023/2/2118状态寄存器ST0 OVC/OVCU:溢出计数器。PM:乘积移位模式位。V:溢出标志。N:负标志位。Z:零标志。C:进位位。TC:测试/控制标志
15、。OVM:溢出模式位。SXM:符号扩展模式位。第18页/共33页2023/2/2119状态寄存器ST1 ARP:辅助寄存器指针。XF:XF状态位。该位用于控制输出引脚XF的状态。M0M1MAP:存储器M0和M1映射模式位。OBJMODE:目标兼容模式位。用来在C27x目标模式(=0)和C28x目标模式(=1)之间进行选择。AMODE:寻址模式位。在C28x寻址模式(AMODE=0)和C2xLP寻址模式(AMODE=1)之间进行选择。第19页/共33页2023/2/2120IDLESTAT:空闲状态位。EALLOW:仿真允许访问使能位。为1,允许访问。C28x的仿真寄存器和其他受保护的外设寄存器
16、,当用户要对其进行访问时需要将EALLOW位置1。LOOP:循环指令状态位。SPA:队栈指针定位(Stack Pointer Alignment)位。VMAP:向量映像(Vector Map)位。DBGM:调试使能屏蔽位。INTM:中断全局屏蔽位。为0,中断使能。该位可以全局使能和禁止所有的CPU的可屏蔽中断,即为可屏蔽中断的“总开关”。第20页/共33页2023/2/21213.2 寻址方式 3.2.1 寻址方式概述 C28x CPU四种基本寻址方式:直接寻址、堆栈寻址、间接寻址和寄存器寻址 还有数据/程序/IO空间立即寻址方式或程序空间间接寻址方式。1.寻址方式分类 第21页/共33页20
17、23/2/21222.寻址方式选择位(AMODE)C28x的多数指令操作码用8位字段来表示指令使用的寻址方式和所选寻址方式的相关信息。这8位操作码信息受CPU的状态寄存器ST1其中的寻址方式选择位(AMODE)的影响。同一指令,AMODE的取值不同,指令操作码中对应寻址的8位操作码不同。AMODE=0.复位默认方式,C28x的C/C+编译器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容,数据页指针偏移量为6位(C2xLP中为7位)。AMODE=1.这种方式与C2xLP CPU的寻址方式完全兼容,数据页指针偏移量为7位。第22页/共33页2023/2/2123汇编器/编译器对AMO
18、DE位的跟踪 C/C+编译器是假定寻址方式设定在AMODE=0。汇编器可以按照命令行操作指定默认状态为AMODE=0或AMODE=1。-v28 ;假设AMODE=0(C28x寻址方式)-v28-m20;假设AMODE=1(C2xLP兼容寻址方式)汇编器还允许文件中嵌套指令改变寻址方式。.c28_amode;告知汇编器后缀代码为AMODE=0(C28x寻址方式).lp_amode;告知汇编器后缀代码为AMODE=1(C2xLP兼容寻址方式)第23页/共33页2023/2/21243.2.2 直接寻址方式 直接寻址方式操作数的22位物理地址被分成两部分,16位的数据页指针(DP)寄存器作为固定的页
19、指针,指令中提供6位或7位的偏移量,这些偏移量与DP中的值一起确定操作数的地址。第24页/共33页2023/2/21253.2.3 堆栈寻址方式 堆栈寻址方式操作数在堆栈中,操作数物理地址由堆栈指针SP给出。C28x的软件堆栈从存储器的低地址变化到高地址,堆栈指针总是指向下一个位置。在指令中提供6位的偏移量,表明数据入栈或出栈时,栈指针增加和减小值。第25页/共33页2023/2/21263.2.4 间接寻址方式 间接寻址方式,操作数物理地址存放在32位寄存器XAR0XAR7中。在C28x的间接寻址中所用的寄存器直接出现在指令中。在C2xLP的间接寻址中,由3位的辅助寄存器指针(ARP)选择指
20、令使用哪个辅助寄存器作为间接寻址寄存器。第26页/共33页2023/2/21273.2.5 寄存器寻址方式 寄存器寻址方式操作数在寄存器中。寄存器寻址方式可分为32位和16位寻址方式。第27页/共33页2023/2/21283.2.6 数据/程序/IO空间立即寻址方式 数据/程序/IO空间立即寻址方式有4种语法:*(0:16bit)、*(PA)、0:pma和*(pma)。第28页/共33页2023/2/21293.2.7 程序空间间接寻址方式 程序空间间接寻址方式的访问程序空间有3种语法:*AL、*XAR7和*XAR7+。3.2.8 字节寻址方式与32位操作数的定位 字节寻址方式 32位操作数
21、的定位 第29页/共33页2023/2/21303.3 C28x DSP指令系统 C28x DSP指令系统一览表见教材。(1)XARn寄存器(XAR0XAR7)操作(2)DP寄存器操作(3)SP寄存器操作(4)AX寄存器操作(AH,AL)(5)16位ACC累加器操作(6)32位ACC累加器操作(7)64位ACC:P寄存器操作(8)P或XT寄存器操作(P,PH,PL,XT,T,TL)(9)1616位乘法操作 第30页/共33页2023/2/2131(10)3232位乘法操作(11)直接存储器操作(12)I/O空间操作(13)程序空间操作(14)跳转/调用/返回操作 (15)中断寄存器操作(16)状态位清零(17)其他操作 第31页/共33页2023/2/2132思考题与习题1.简述C28x DSP CPU的组成。2.C28x的CPU有哪些寄存器?3.简述C28x DSP的总线结构。4.辅助寄存器有哪些?其作用是什么?5.状态寄存器ST0,ST1的作用是什么?6.C28x DSP有哪些寻址方式?7.直接寻址方式中,数据存储单元的地址是如何形成的?8.访问片内外设寄存器可以采用哪些寻址方式?9.C28x DSP 有哪些类型的指令?10.举例说明符号loc16和loc32在指令中的含义。第32页/共33页2023/2/2133感谢您的欣赏!第33页/共33页
限制150内