《第3章C28xDSP的CPU与指令系统.ppt》由会员分享,可在线阅读,更多相关《第3章C28xDSP的CPU与指令系统.ppt(34页珍藏版)》请在三一办公上搜索。
1、2023/9/25,1,第3章 C28x DSP的CPU与指令系统,本章内容:3.1 中央处理器 3.2 寻址方式 3.3 C28x DSP指令系统,2023/9/25,2,3.1 中央处理器,C28x DSP的中央处理器(CPU)结构包括三个部分:CPU内核、仿真逻辑单元和CPU信号。,C28x CPU组成概念框图,1.CPU结构,2023/9/25,3,仿真逻辑单元的主要功能是监视和控制CPU以及其他外设的工作情况,并实现对设备的测试和调试功能。,CPU的信号主要包括4种:存储器接口信号 时钟和控制信号 复位和中断信号 仿真信号,2023/9/25,4,F281x DSP的CPU 单元结构
2、框图,2023/9/25,5,C28x的CPU主要由总线、CPU寄存器、程序地址发生器和控制逻辑、地址寄存器算术单元(ARAU)、算术逻辑单元(ALU)、乘法器和移位器等逻辑部件组成,还包括指令队列和指令译码单元、中断处理逻辑等。,ALU为32位的运算逻辑单元,主要执行算术运算和布尔运算。在运算之前,ALU从寄存器、数据存储器或程序控制逻辑单元接收数据,然后进行运算,最后把结果存入寄存器或数据存储器中。,32位的乘法器,可执行3232位的补码乘法,并产生64位的结果。乘法器采用32位乘数寄存器(XT,)、32位乘积寄存器(P)和32位累加器(ACC)。CPU的移位器实现对操作数的移位操作。,2
3、023/9/25,6,TMS320F2812/TMS320F2810Most Powerful-Most Integrated Dual Function Digital Signal Controller,2023/9/25,7,Fast&flexible interrupt management significantly reduce interrupt latency,Single-cycle 32-bit multiplier makes computationally intensive control algorithms more efficient,Three 32-bit
4、timers support multiple control loops/time bases.,Single cycle read-modified-write in any memory location and 32-bit registers improve control algorithm efficiency,Real-time JTAG debug shortens development cycle,Most C/C+Efficient 32-bit DSP Core,Code compatible with the TMS320C24x DSP family,2023/9
5、/25,8,2812 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)。数据读数据总线DRDB(0:31)。数据/程序写数据总线DWDB(0:31)数据写
6、入DM和PM。外部16位数据总线Data(0:15)/19位地址总线Address(0:18)为单一形式。,2023/9/25,9,多总线的结构使C28x能够实现流水线的指令执行机制。采用流水线机制可以大大加快指令执行速度,实现指令的执行在单机器周期内完成。C28x采用了8级流水线。,(1)取指令阶段1:指令地址通过22位总线PAB送往程序存储器。(2)取指令阶段2:通过32位总线PRDB读程序存储器,放入指令队列。(3)译码阶段1:CPU硬件识别取指队列中指令的边界,并测定下一条待执行指令的长度。(4)译码阶段2:CPU硬件从取指队列中取回指令,并将该指令放入指令寄存器,译码。(5)读阶段1
7、:从存储器中读取数据时,把地址送到相应的地址总线上。(6)读阶段2:硬件通过数据总线取回读阶段1所寻址的存储器内的数据。(7)执行阶段:CPU执行乘法、移位和ALU操作,包括算术和逻辑操作。(8)写阶段:需要时,将指令执行的结果写回存储器。,2023/9/25,10,2.CPU的寄存器,累加器(ACC、AH、AL)乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL)数据页指针寄存器(DP)堆栈指针(SP)辅助寄存器(XAR0XAR7、AR0AR7)程序计数器(PC)返回PC指针寄存器(RPC)中断控制寄存器(IFR、IER、DBGIER)状态寄存器(ST0,STl),2023/9/25,
8、11,C28x DSP的CPU寄存器,2023/9/25,12,累加器可以单独存取的结构,(1)累加器(ACC、AH、AL),2023/9/25,13,乘数寄存器XT的分半单独存取结构,P寄存器的分半单独存取结构,(2)乘数寄存器(XT、T、TL)和乘积寄存器(P、PH、PL),2023/9/25,14,(3)数据页指针寄存器(DP),在直接寻址方式中,操作数的地址由两部分组成:一个页地址(Data Page)和一个页内的偏移量。C28x的数据存储器每64个字构成一个数据页,这样,4MW的数据存储器共有65536个数据页,用065535进行标号。在直接寻址方式下,当前的页地址存放于16位的数据
9、页指针寄存器(DP)中,可以通过给DP赋新值可改变数据页号。当CPU工作在C2xLP源兼容模式时,使用一个7位的偏移量,并忽略DP寄存器的最低位。,2023/9/25,15,数据存储器的数据页,2023/9/25,16,(4)堆栈指针(SP),堆栈指针(SP)允许在数据存储器中使用软件堆栈。堆栈指针为16位,可以对数据空间的低64K字(数据存储器0000HFFFFH)进行寻址。,2023/9/25,17,(5)辅助寄存器(XAR0XAR7、AR0AR7),XAR0XAR7寄存器,2023/9/25,18,(6)程序计数器(PC),C28x的程序计数器(PC)是一个22位的寄存器,存放当前CPU
10、正在操作指令的地址。,(7)返回PC指针寄存器(RPC),(8)中断控制寄存器(IFR、IER、DBGIER),有两对长调用指令:LC和LRET,LCR和LRETR。LCR和LRETR执行效率更高,只有LCR和LRETR指令使用RPC。当使用LCR指令时,当前RPC的值被压入堆栈。返回地址将被装载到RPC寄存器中,而22位的函数入口地址将被装载到PC计数器,从而使流程转入函数体中运行。调用结束通过LRETR指令返回时,存放在RPC内的返回地址装载到PC中,而压入堆栈中的RPC的值从堆栈中装载到RPC内。,2023/9/25,19,(9)状态寄存器(ST0,STl),C28x CPU有两个重要的
11、状态寄存器:ST0和ST1,其中包含着不同的标志位和控制位。ST0包含指令操作所使用或影响的控制或标志位,如溢出、进位、符号扩展等。ST1则主要包含一些特殊的控制位,如处理器的兼容模式选择、寻址模式配置等。,2023/9/25,20,状态寄存器ST0,OVC/OVCU:溢出计数器。PM:乘积移位模式位。V:溢出标志。N:负标志位。,Z:零标志。C:进位位。TC:测试/控制标志。OVM:溢出模式位。SXM:符号扩展模式位。,2023/9/25,21,状态寄存器ST1,ARP:辅助寄存器指针。XF:XF状态位。该位用于控制输出引脚XF的状态。M0M1MAP:存储器M0和M1映射模式位。OBJMOD
12、E:目标兼容模式位。用来在C27x目标模式(=0)和C28x目标模式(=1)之间进行选择。AMODE:寻址模式位。在C28x寻址模式(AMODE=0)和C2xLP寻址模式(AMODE=1)之间进行选择。,2023/9/25,22,IDLESTAT:空闲状态位。EALLOW:仿真允许访问使能位。为1,允许访问。LOOP:循环指令状态位。SPA:队栈指针定位(Stack Pointer Alignment)位。VMAP:向量映像(Vector Map)位。DBGM:调试使能屏蔽位。INTM:中断全局屏蔽位。为0,中断使能。,2023/9/25,23,3.2 寻址方式,3.2.1 寻址方式概述,C2
13、8x CPU四种基本寻址方式:直接寻址、堆栈寻址、间接寻址和寄存器寻址,还有数据/程序/IO空间立即寻址方式或程序空间间接寻址方式。,1.寻址方式分类,2023/9/25,24,2.寻址方式选择位(AMODE),C28x的多数指令操作码用8位字段来表示指令使用的寻址方式和所选寻址方式的相关信息。这8位操作码信息受CPU的状态寄存器ST1其中的寻址方式选择位(AMODE)的影响。同一指令,AMODE的取值不同,指令操作码中对应寻址的8位操作码不同。,AMODE=0.复位默认方式,C28x的C/C+编译器使用的方式。这种方式与C2xLP CPU的寻址方式不完全兼容,数据页指针偏移量为6位(C2xL
14、P中为7位)。,AMODE=1.这种方式与C2xLP CPU的寻址方式完全兼容,数据页指针偏移量为7位。,2023/9/25,25,汇编器/编译器对AMODE位的跟踪 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兼容寻址方式),2
15、023/9/25,26,3.2.2 直接寻址方式,直接寻址方式操作数的22位物理地址被分成两部分,16位的数据页指针(DP)寄存器作为固定的页指针,指令中提供6位或7位的偏移量,这些偏移量与DP中的值一起确定操作数的地址。,2023/9/25,27,3.2.3 堆栈寻址方式,堆栈寻址方式操作数在堆栈中,操作数物理地址由堆栈指针SP给出。C28x的软件堆栈从存储器的低地址变化到高地址,堆栈指针总是指向下一个位置。在指令中提供6位的偏移量,表明数据入栈或出栈时,栈指针增加和减小值。,2023/9/25,28,3.2.4 间接寻址方式,间接寻址方式,操作数物理地址存放在32位寄存器XAR0XAR7中
16、。在C28x的间接寻址中所用的寄存器直接出现在指令中。在C2xLP的间接寻址中,由3位的辅助寄存器指针(ARP)选择指令使用哪个辅助寄存器作为间接寻址寄存器。,2023/9/25,29,3.2.5 寄存器寻址方式,寄存器寻址方式操作数在寄存器中。寄存器寻址方式可分为32位和16位寻址方式。,2023/9/25,30,3.2.6 数据/程序/IO空间立即寻址方式,数据/程序/IO空间立即寻址方式有4种语法:*(0:16bit)、*(PA)、0:pma和*(pma)。,2023/9/25,31,3.2.7 程序空间间接寻址方式,程序空间间接寻址方式的访问程序空间有3种语法:*AL、*XAR7和*X
17、AR7+。,3.2.8 字节寻址方式与32位操作数的定位,字节寻址方式,32位操作数的定位,2023/9/25,32,3.3 C28x DSP指令系统,C28x DSP指令系统一览表见教材。,XARn寄存器(XAR0XAR7)操作 DP寄存器操作 SP寄存器操作 AX寄存器操作(AH,AL)16位ACC累加器操作 32位ACC累加器操作 64位ACC:P寄存器操作 P或XT寄存器操作(P,PH,PL,XT,T,TL)1616位乘法操作,2023/9/25,33,3232位乘法操作 直接存储器操作 I/O空间操作 程序空间操作 跳转/调用/返回操作 中断寄存器操作 状态位清零 其他操作,2023/9/25,34,思考题与习题,简述C28x DSP CPU的组成。C28x的CPU有哪些寄存器?简述C28x DSP的总线结构。辅助寄存器有哪些?其作用是什么?状态寄存器ST0,ST1的作用是什么?C28x DSP有哪些寻址方式?直接寻址方式中,数据存储单元的地址是如何形成的?访问片内外设寄存器可以采用哪些寻址方式?C28x DSP 有哪些类型的指令?举例说明符号loc16和loc32在指令中的含义。,