第3章C24xDSP的CPU与指令系统课件.ppt
- 【下载声明】
1. 本站全部试题类文档,若标题没写含答案,则无答案;标题注明含答案的文档,主观题也可能无答案。请谨慎下单,一旦售出,不予退换。
2. 本站全部PPT文档均不含视频和音频,PPT中出现的音频或视频标识(或文字)仅表示流程,实际无音频或视频文件。请谨慎下单,一旦售出,不予退换。
3. 本页资料《第3章C24xDSP的CPU与指令系统课件.ppt》由用户(晟晟文业)主动上传,其收益全归该用户。163文库仅提供信息存储空间,仅对该用户上传内容的表现方式做保护处理,对上传内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知163文库(点击联系客服),我们立即给予删除!
4. 请根据预览情况,自愿下载本文。本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
5. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007及以上版本和PDF阅读器,压缩文件请下载最新的WinRAR软件解压。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C24xDSP CPU 指令系统 课件
- 资源描述:
-
1、1第3章 C24x DSP的CPU与指令系统本章内容:本章内容:3.1 中央处理器中央处理器 3.2 寻址方式寻址方式 3.3 C24x DSP汇编指令汇编指令3.4 汇编语言命令与程序举例汇编语言命令与程序举例23.1 中央处理器中央处理器 3.1.1 CPU总体结构总体结构 240 x的的CPU主要由总线、主要由总线、CPU寄存器、程序地址发寄存器、程序地址发生器和控制逻辑、辅助寄存器算术单元生器和控制逻辑、辅助寄存器算术单元(ARAU)、中央算、中央算术逻辑单元术逻辑单元(CALU)、乘法器和移位器等逻辑部件组成。、乘法器和移位器等逻辑部件组成。1)总线。)总线。2)程序地址发生器和控制
2、逻辑。)程序地址发生器和控制逻辑。3)ARAU。产生指令操作数的地址并将其送往对应的。产生指令操作数的地址并将其送往对应的数据地址总线。数据地址总线。4)CALU。执行二进制补码的算术运算和布尔运算。执行二进制补码的算术运算和布尔运算。5)乘法器。可以执行)乘法器。可以执行1616位的补码乘法运算,并产位的补码乘法运算,并产生生32位结果。乘法器采用位结果。乘法器采用16位乘数寄存器位乘数寄存器(TREG)、32位位乘积寄存器乘积寄存器(PREG)和和32位累加器位累加器(ACC)。6)移位器。)移位器。CPU的移位器实现对操作数的移位操作。的移位器实现对操作数的移位操作。3240 x DSP
3、 CPU内内部结构功能框图部结构功能框图 43.1.2 总线结构总线结构多组总线多组总线并行机制并行机制程序读、数据读、数据写三种情况程序读、数据读、数据写三种情况 内部地址总线:三组内部地址总线:三组 Address Bus:A0Address Bus:A015(C24x)15(C24x)程序读地址总线程序读地址总线PAB(Program Address Bus)PAB(Program Address Bus)数据读地址总线数据读地址总线DRAB(Data Read Address Bus)DRAB(Data Read Address Bus)数据写地址总线数据写地址总线DWAB(Data
4、Write Address Bus)DWAB(Data Write Address Bus)内部数据总线:三组内部数据总线:三组 Data Bus:D0Data Bus:D0D15D15(C24x)(C24x)程序读数据总线程序读数据总线PRDBPRDB数据读数据总线数据读数据总线DRDBDRDB数据写数据总线数据写数据总线DWEB DWEB 数据写入数据存储器数据写入数据存储器(DM)(DM)和程序存储器和程序存储器(PM)(PM)外部外部Data/Address Data/Address 总线为单一形式总线为单一形式 5C2000 DSP 总线结构总线结构(24x)63.1.3 CPU内核
5、结构内核结构 CPU内核模块包括:输入定标移位器、内核模块包括:输入定标移位器、32位中央算位中央算术逻辑单元(术逻辑单元(CALU)、)、16位位16位乘法器、累加器和位乘法器、累加器和输出定标移位器等。输出定标移位器等。CPU内核框图内核框图71)输入定标移位器输入定标移位器(Input Scale,Shifter)该单元将来自程序该单元将来自程序/数据存储器的数据存储器的16位数据调整为位数据调整为32位位数据送到中央算术逻辑单元(数据送到中央算术逻辑单元(CALU)。因此,输入定标移。因此,输入定标移位器的位器的16位输入与数据总线相连,位输入与数据总线相连,32位输出与位输出与CAL
6、U单元单元相连。相连。输入定标移位器在算术定标及逻辑操作非常有用。输入定标移位器在算术定标及逻辑操作非常有用。输入定标移位器对输入数据进行输入定标移位器对输入数据进行0-15位左移。左移位左移。左移时,输出的最低有效位时,输出的最低有效位(LSB)为为0,最高有效位,最高有效位(MSB)根根据状态寄存器据状态寄存器ST1的的SXM位(符号扩展方式)的值来决位(符号扩展方式)的值来决定是否进行符号扩展。定是否进行符号扩展。当当SXM=1时,则高位进行符号扩展;当时,则高位进行符号扩展;当SXM=0时,时,则高位填则高位填0。移位的次数由包含在指令中的常量或临时寄存器移位的次数由包含在指令中的常量
7、或临时寄存器(TREG,T,Temporary Register)中的值来指定。中的值来指定。82)乘法器乘法器(Multiplier)1616位的硬件乘法器,单个机器周期内产生一个位的硬件乘法器,单个机器周期内产生一个32位的有符号或无符号乘积。位的有符号或无符号乘积。除了执行无符号乘法指令(除了执行无符号乘法指令(MPYU)外,所有的乘)外,所有的乘法指令均执行有符号的乘法操作,即相乘的两个数都作法指令均执行有符号的乘法操作,即相乘的两个数都作为二进制的补码数,而运算结果为一个为二进制的补码数,而运算结果为一个32位的二进制的位的二进制的补码数。补码数。乘法器接收的两个乘数,一个来自乘法器
8、接收的两个乘数,一个来自16位的临时寄存位的临时寄存器(器(T),另一个通过数据读总线(),另一个通过数据读总线(DRDB)取自数据存)取自数据存储器,或通过程序读总线(储器,或通过程序读总线(PRDB)取自程序存储器。)取自程序存储器。9 两个输入值相乘后,两个输入值相乘后,32位的乘积结果保存在位的乘积结果保存在32位的位的乘积寄存器(乘积寄存器(P,PREG,Product Register)中。)中。PREG的输出连接到乘积定标移位器的输出连接到乘积定标移位器(Product Scale,Shifter),通过乘积定标移位器,乘积结果可以从,通过乘积定标移位器,乘积结果可以从P传到传到
9、CALU或数据存储器。乘积定标移位器对乘积采用或数据存储器。乘积定标移位器对乘积采用4种乘种乘积移位方式。积移位方式。移位方式由状态寄存器移位方式由状态寄存器ST1的乘积移位方式位(的乘积移位方式位(PM,Product Mode)指定,对于执行乘法)指定,对于执行乘法/累加操作、进行小累加操作、进行小数运算或者进行小数乘积的调整都很有用。数运算或者进行小数乘积的调整都很有用。10乘积定标移位器的乘积移位方式乘积定标移位器的乘积移位方式PM 移位移位 作用和意义作用和意义00 无移位无移位 乘积送乘积送CALU或数据写总线,不移位或数据写总线,不移位01 左移左移1位位 移去二进制补码乘法产生
10、的额外符号移去二进制补码乘法产生的额外符号 位,产生位,产生Q31格式的乘积格式的乘积10 左移左移4位位 当与一个当与一个13位的常数相乘时,移去在位的常数相乘时,移去在1613位(常数)二进制补码产生的位(常数)二进制补码产生的额外的额外的4位符号位,产生位符号位,产生Q31格式的乘积格式的乘积11 右移右移6位位 对乘积结果定标,以使得运行对乘积结果定标,以使得运行128次的次的乘积累加而累加器不会溢出乘积累加而累加器不会溢出 注:注:Q31格式是一种二进制小数格式,表示有格式是一种二进制小数格式,表示有31位二进制小数位二进制小数113)中央算术逻辑单元)中央算术逻辑单元 中央算术逻辑
11、单元中央算术逻辑单元(CALU,Central ALU)实现大部分实现大部分算术和逻辑运算功能,大多数功能只需一个时钟周期,这算术和逻辑运算功能,大多数功能只需一个时钟周期,这些运算功能包括:些运算功能包括:16位加、位加、16位减、逻辑运算、位测试以位减、逻辑运算、位测试以及移位和循环功能。及移位和循环功能。由于由于CALU可以执行布尔运算,因此使得控制器具有可以执行布尔运算,因此使得控制器具有位操作功能。位操作功能。CALU的移位和循环在累加器中完成。的移位和循环在累加器中完成。CALU是一个独立的算术单元,它和辅助寄存器算术是一个独立的算术单元,它和辅助寄存器算术单元单元(ARAU)在程
12、序执行时,是完全不同的两个模块。在程序执行时,是完全不同的两个模块。12 一旦操作在一旦操作在CALU中被执行,运算结果会被传送中被执行,运算结果会被传送到累加器中,在累加器中再实现如移位等附加操作。到累加器中,在累加器中再实现如移位等附加操作。CALU有两个输入,一个由累加器提供,另一个有两个输入,一个由累加器提供,另一个由乘积寄存器(由乘积寄存器(P)或输入数据定标移位器的输出提)或输入数据定标移位器的输出提供。当供。当CALU执行完一次操作后将结果送至执行完一次操作后将结果送至32位累加位累加器,由累加器对其结果进行移位。累加器的输出送到器,由累加器对其结果进行移位。累加器的输出送到32
13、位输出数据定标移位器经过输出数据定标移位器,位输出数据定标移位器经过输出数据定标移位器,累加器的高、低累加器的高、低16位字可分别被移位或存入数据寄存位字可分别被移位或存入数据寄存器。器。13 CALU的溢出饱和方式可以由状态寄存器的溢出饱和方式可以由状态寄存器ST0的溢出的溢出模式(模式(OVM)位来使能或禁止。)位来使能或禁止。根据根据CALU和累加器的状态,和累加器的状态,CALU可执行各种分支可执行各种分支指令。这些指令可以根据这些状态位有意义的结合,有条指令。这些指令可以根据这些状态位有意义的结合,有条件地执行。为了溢出管理,这些条件包括件地执行。为了溢出管理,这些条件包括OV(根据
14、溢出跳根据溢出跳转转)和和EQ(根据累加器是否为根据累加器是否为0跳转跳转)等。另外,等。另外,BACC(跳(跳到累加器指定的地址)指令可以跳转到由累加器所指定的到累加器指定的地址)指令可以跳转到由累加器所指定的程序存储器地址;不影响累加器的位测试指令(程序存储器地址;不影响累加器的位测试指令(BIT和和BITT)允许对数据存储器中的一个指定位进行测试。)允许对数据存储器中的一个指定位进行测试。对绝大多数的指令,状态寄存器对绝大多数的指令,状态寄存器ST1的第的第10位符号扩位符号扩展位(展位(SXM)决定了在)决定了在CALU计算时是否使用符号扩展。计算时是否使用符号扩展。SXM=0,符号扩
15、展无效;,符号扩展无效;SXM=1,符号扩展有效。,符号扩展有效。144)累加器(累加器(ACC,32位位,高高16位位ACCH,低低16位位ACCL)当当CALU中的运算完成后,其结果就被送至累加器,中的运算完成后,其结果就被送至累加器,并在累加器中执行单一的移位或循环操作。并在累加器中执行单一的移位或循环操作。累加器的高位和低位字中的任意一个可以被送至输累加器的高位和低位字中的任意一个可以被送至输出数据定标移位器,在此定标移位后,再保存于数据存出数据定标移位器,在此定标移位后,再保存于数据存储器。与累加器有关的状态位和转移指令:储器。与累加器有关的状态位和转移指令:进位标志位进位标志位C
16、状态寄存器状态寄存器ST1的第的第9位。下述情况之一将影响进位位。下述情况之一将影响进位标志位标志位C。15加到累加器或从累加器减加到累加器或从累加器减 当当C=0,减结果产生借位时或加结果未产生进位时。,减结果产生借位时或加结果未产生进位时。当当C=1,加结果产生进位时或减结果未产生借位时。,加结果产生进位时或减结果未产生借位时。2)将累加器数值移将累加器数值移1位或循环移位或循环移1位位在左环移或循环左移的过程中,累加器的最高有效位在左环移或循环左移的过程中,累加器的最高有效位被送至被送至C位。在右环移或循环右移的过程中,累加器位。在右环移或循环右移的过程中,累加器的最低有效位被送至的最低
17、有效位被送至C位。位。16溢出方式标志位溢出方式标志位OVM状态寄存器状态寄存器ST0的第的第11位。位。OVM位决定位决定ACC如何反映如何反映算术运算的溢出。算术运算的溢出。OVM=1,ACC运算溢出,运算溢出,累加器被设定为下列两个累加器被设定为下列两个特定值之一:特定值之一:若正溢出,若正溢出,ACC中填最大正数中填最大正数:7FFF FFFFh 若负溢出,若负溢出,ACC中填最大负数中填最大负数:8000 0000hOVM=0,ACC中的结果正常溢出。中的结果正常溢出。17溢出标志位溢出标志位OV状态寄存器状态寄存器ST0的第的第12位,位,C=0,累加器未溢出;,累加器未溢出;C=
18、1,累加器溢出,且被锁存。,累加器溢出,且被锁存。测试测试/控制标志位控制标志位TCST1的第的第11位,根据被测位的值置位,根据被测位的值置1或清或清0。与累加器有关的转移指令大都取决于与累加器有关的转移指令大都取决于C、OV、TC的状态和累加器的值。的状态和累加器的值。185)输出定标移位器)输出定标移位器(Output Scale,Shifter)它存储指令中指定的位数,将累加器输出的内容它存储指令中指定的位数,将累加器输出的内容左移左移0-7位,然后将移位器的高位字或低位字存到数据位,然后将移位器的高位字或低位字存到数据存储器中(用存储器中(用SACH或或SACL指令,指令,Save
19、to)。在此过)。在此过程中,累加器的内容保持不变。程中,累加器的内容保持不变。193.1.4 状态寄存器状态寄存器(Status)ST0和和ST1 状态寄存器状态寄存器ST0和和ST1包含了包含了DSP运行时的各种状运行时的各种状态和控制位。内容可被读出并保存到数据存储器态和控制位。内容可被读出并保存到数据存储器(用用SST指令指令),或从数据存储器读出加载到,或从数据存储器读出加载到ST0和和ST1(用用LST指指令令,Load ST),用来在子程序调用或进入中断时实现,用来在子程序调用或进入中断时实现CPU各种状态的保存。各种状态的保存。可用指令对可用指令对ST0和和ST1中的各个位单独
20、置中的各个位单独置1或清或清0(SETC或或CLRC指令指令)。可对比可对比8086的的F寄存器,寄存器,8051的的PSW寄存器。寄存器。20状态寄存器状态寄存器ST0 ARP 当前辅助寄存器指针当前辅助寄存器指针 000-111,AR0-AR7 OV 溢出标志位溢出标志位,为,为1时,有溢出。时,有溢出。OVM 溢出模式位溢出模式位。OVM=1,溢出时,溢出时,A中为最大或最小值。中为最大或最小值。OVM=0,按正常溢出。,按正常溢出。INTM中断模式位中断模式位,可禁止可禁止(INTM=1)或使能可屏蔽中断或使能可屏蔽中断 DP 数据存储器页面指针数据存储器页面指针(Data Page)
21、9位,用于直接寻址地位,用于直接寻址地址的高址的高9位,与指令中的低位,与指令中的低7位共同形成位共同形成16位地址。位地址。Bit15-1312111098-0名称名称ARPOVOVM1INTMDP复位值复位值x0 x11x21状态寄存器状态寄存器ST1 ARB 辅助寄存器指针缓冲器辅助寄存器指针缓冲器,存放,存放ARP。CNF 片内片内DARAM B0配置位配置位。CNF=0,B0映射为数据存映射为数据存储器储器(DM);CNF=1,B0映射为程序存储器映射为程序存储器(PM)TC 测试标志位。测试标志位。SXM 符号扩展模式位。符号扩展模式位。SXM=1,允许符号扩展。允许符号扩展。C
22、进位位。进位位。XF,XF引脚状态位。引脚状态位。复位时,复位时,XF=1。PM,乘积移位模式位,乘积移位模式位,PM=00(没有移位,复位值没有移位,复位值),01(左左移移1位位),10(左移左移4位位),11(右移右移6位位)Bit15-1312111098-543-21-0名称名称ARBCNFTCSXMC 111XF11PM复位值复位值x0 x11100223.1.5 辅助寄存器算术单元辅助寄存器算术单元ARAU辅助寄存器算术单元辅助寄存器算术单元ARAU辅助寄存器辅助寄存器AR0-AR7:间接寻址间接寻址当前工作辅助寄存器当前工作辅助寄存器(由由ARP选择选择)AR+1,AR-1(*
23、+,*-)AR+-AR0(*0+,*0-)*BR0+-(反向进位)(反向进位)ARAU完全独立于中央完全独立于中央算术逻辑单元。主要功能算术逻辑单元。主要功能是在是在CALU操作的同时执行操作的同时执行8个辅助寄存器个辅助寄存器AR7-AR0中中的算术运算的算术运算,AR7-AR0提供提供了强大而灵活的间接寻址了强大而灵活的间接寻址能力。能力。23 利用利用ARAU中的中的16位地址可访问数据存储器位地址可访问数据存储器64K字字空间的任一单元。空间的任一单元。可通过指令向可通过指令向ST0的的ARP指针装入指针装入3位位(0-7)数据来选数据来选择某一辅助寄存器择某一辅助寄存器(AR0-7,
24、Auxiliary Register)。ARAU的的8个辅助寄存器提供了强大而灵活的间接个辅助寄存器提供了强大而灵活的间接寻址能力。利用辅助寄存器中的寻址能力。利用辅助寄存器中的16位地址可访问数据位地址可访问数据存储器存储器64K字空间的任一单元。字空间的任一单元。ARAU除可对数据存储器的寻址外,还可用作它用:除可对数据存储器的寻址外,还可用作它用:(1)通过通过CMPR比较指令,利用辅助寄存器支持条件比较指令,利用辅助寄存器支持条件转移、调用和返回;转移、调用和返回;(2)利用辅助寄存器作为暂存单元;利用辅助寄存器作为暂存单元;(3)利用辅助寄存器进行软件计数。根据需要将其加利用辅助寄存
展开阅读全文