DSP原理与应用CPU结构与指令集.pptx
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_1.gif)
![资源得分’ title=](/images/score_05.gif)
《DSP原理与应用CPU结构与指令集.pptx》由会员分享,可在线阅读,更多相关《DSP原理与应用CPU结构与指令集.pptx(128页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、DSP的一般结构2.1 CPU结构外外设设CPUCPU内部存储器内部存储器内部总线内部总线外外 部部存储器存储器数据寄存器处理单元片内存储器片外存储器存储器的层次第1页/共128页2.1.1 CPU结构框图程序取指程序取指指令分配指令分配指令译码指令译码程序执行机构程序执行机构程序总线程序总线数据总线数据总线第2页/共128页存储器映射(统一编址)描述描述起始地址起始地址终止地址终止地址单字节或四字节寻址单字节或四字节寻址内部ROM页0(256K Bytes)0 x0000 0000 0 x0003 FFFF 单字节或四字节内部ROM页1(128K Bytes)0 x0004 0000 0 x
2、0005 FFFF 单字节或四字节内部RAM页0(256K Bytes)0 x1000 0000 0 x1003 FFFF 单字节或四字节存储器和缓存控制寄存器0 x2000 0000 0 x2000 001F 单字节器件配置寄存器0 x4000 0000 0 x4000 0083 单字节PLL控制寄存器0 x4100 0000 0 x4100 015F 单字节定时器(RTI)控制寄存器0 x4200 0000 0 x4200 00A3 单字节通用主机接口(UHPI)寄存器0 x4300 0000 0 x4300 0043 单字节McASP0控制寄存器0 x4400 0000 0 x4400
3、02BF 单字节SPI0控制寄存器0 x4700 0000 0 x4700 007F 单字节I2C0控制寄存器0 x4900 0000 0 x4900 007F 单字节I2C1控制寄存器0 x4A00 0000 0 x4A00 007F 单字节McASP0 DMA端口(此范围内的任何地址)0 x5400 0000 0 x54FF FFFF 单字节dMAX控制寄存器 0 x6000 0000 0 x6000 008F 单字节dMAX0(HiMAX)事件入口表0 x6100 8000 0 x6100 807F 单字节或四字节dMAX0(HiMAX)传输入口表0 x6100 80A0 0 x6100
4、 81FF 单字节或四字节通过EMIF访问的外部SDRAM空间0 x8000 0000 0 x8FFF FFFF 单字节或四字节通过EMIF访问的外部异步器件/Flash空间0 x9000 0000 0 x9FFF FFFF 单字节或四字节EMIF控制寄存器0 xF000 0000 0 xF000 00BF 单字节第3页/共128页2.1.2 CPU数据通道2个通用寄存器组(A和B),包括32个寄存器8个功能单元(.L1、.L2、.S1、.S2、.M1、.M2、.D1、.D2)2个数据读取通路(LD1和LD2),每侧有2个32位读取总线2个数据存储通路(ST1和ST2),每侧有1个32位存储总
5、线2个寄存器组交叉通路(1x和2x)2个数据寻址通路(DA1和DA2)第4页/共128页1.通用寄存器组功能(1)存放数据,作为指令的源操作数和目的操作数。注意传送方向和数据字长(2)作为间接寻址的地址指针,寄存器A4A7和B4B7还能够以循环寻址方式工作(3)A1、A2、B0、B1和B2可用做条件寄存器第5页/共128页A1:A0A1:A0A3:A2A3:A2 A29:A28A29:A28A31:A30A31:A30odd odd eveneven:32328 8 40-bit Reg 40-bit RegB1:B0B1:B0B3:B2B3:B2 B29:B28B29:B28B31:B30B
6、31:B30odd odd eveneven:32328 8 40-bit Reg 40-bit Reg40位/64位寄存器对 All combinations of 40-bit registers are shown below:lThe registers must be from the same side.lThe first register must be even and the second odd.lThe registers must be consecutive.第6页/共128页2.功能单元 功能单元功能单元 定点操作定点操作 浮点操作浮点操作.L单元单元3240位算
7、术和比较操作位算术和比较操作32-位最左边位最左边1或或0的位数计数的位数计数32位和位和40位归一化操作位归一化操作32位逻辑操作位逻辑操作算术操作算术操作数据类型转换操作数据类型转换操作DP SPINT DP,INT SP.S单元单元 32位算术操作位算术操作3240位移位和位移位和32位位域操作位位域操作32位逻辑操作位逻辑操作转移转移常数产生常数产生寄存器与控制器数据传递寄存器与控制器数据传递(仅仅.S2)比较比较倒数和倒数平方根操作倒数和倒数平方根操作绝对值操作绝对值操作SPDP数据类型转换数据类型转换.M单元单元 16 16位乘法操作位乘法操作 3232乘法操作乘法操作浮点乘法操作
8、浮点乘法操作.D单元单元 32-位加,减,线性及循环寻址计算位加,减,线性及循环寻址计算带带5位常数偏移量的字读取与存储位常数偏移量的字读取与存储带带15位常数偏移量的字读取与存储位常数偏移量的字读取与存储(仅仅.D2)带带5位常数偏移量的双字读取位常数偏移量的双字读取第7页/共128页3.寄存器组交叉通路.L1、.S1、.D1和.M1可以直接读写寄存器组A.L2、.S2、.D2和.M2可以直接读写寄存器组B 1x交叉通路允许数据通道A的功能单元从寄存器组B读它的源操作数2x交叉通路允许数据通道B的功能单元从寄存器组A读它的源操作数第8页/共128页4.数据存储器及读取存储通路(Load指令)
9、寄存器组A的读入通路为LD1(2个32位)寄存器组B的读入通路为LD2(2个32位)LDDW指令一次可读取64位数据到A或B寄存器(Store指令)寄存器组A的写数据通路为ST1寄存器组B的写数据通路为ST2第9页/共128页5.数据地址通路数据地址通路DA1和DA2来自.D功能单元 数据通道以T1、T2表示 LDW .D1T2 *A03,B1D1产生地址,用LD2数据通道读入数据到B1寄存器第10页/共128页6.控制寄存器组缩写缩写 寄存器名寄存器名 描述描述AMR寻址模式寄存器寻址模式寄存器指定是否使用线性或循环寻址。如果是循环寻址,还包括循环寻址的尺指定是否使用线性或循环寻址。如果是循
10、环寻址,还包括循环寻址的尺寸寸CSR控制状态寄存器控制状态寄存器包括全局中断使能位,高速缓冲存储器控制位和其他各种控制和状态位包括全局中断使能位,高速缓冲存储器控制位和其他各种控制和状态位FADCR浮点加法配置寄存器浮点加法配置寄存器指定指定.L单元的溢出方式,舍入方式,记录单元的溢出方式,舍入方式,记录NaN及其他异常及其他异常FAUCR浮点辅助配置寄存器浮点辅助配置寄存器记录记录.S单元单元NaN及其他异常及其他异常FMCR浮点乘法配置寄存器浮点乘法配置寄存器指定指定.M单元的溢出方式,舍入方式,记录单元的溢出方式,舍入方式,记录NaN及其他异常及其他异常ICR中断清除寄存器中断清除寄存器
11、允许软件清除挂起的中断允许软件清除挂起的中断IER中断使能寄存器中断使能寄存器允许使能禁止个别中断允许使能禁止个别中断IFR中断标志寄存器中断标志寄存器显示中断状态显示中断状态IRP中断返回指针中断返回指针 保存从可屏蔽中断返回时的地址保存从可屏蔽中断返回时的地址ISR中断设置寄存器中断设置寄存器允许软件控制设置中断允许软件控制设置中断ISTP中断服务表指针中断服务表指针指向中断服务表的起始地址指向中断服务表的起始地址NRP不可能屏蔽中断返回指不可能屏蔽中断返回指针针保存从不可屏蔽中断返回时的地址保存从不可屏蔽中断返回时的地址PCE1程序计数器程序计数器保存处于流水线保存处于流水线E1节拍的取
12、指包地址节拍的取指包地址第11页/共128页6.控制寄存器组模式模式描述描述00线性寻址线性寻址(复位后默认值复位后默认值)01循环寻址使用循环寻址使用BK0字段字段10循环寻址使用循环寻址使用BK1字段字段11保留保留寻址模式寄存器(AMR)第12页/共128页控制状态寄存器(CSR)位位字段名字段名功能功能1510 PWRD 控制低功耗模式,该值读时总为零控制低功耗模式,该值读时总为零9 SAT 饱和位。任一功能单元执行一个饱和操作时被置饱和位。任一功能单元执行一个饱和操作时被置1,饱和位只能有,饱和位只能有MVC指令清零,指令清零,被功能单元饱和被功能单元饱和操作置位。当清除和置位在同一
13、周期内发生时,功能单元对它的置位优先。饱和位在饱和发生后一个操作置位。当清除和置位在同一周期内发生时,功能单元对它的置位优先。饱和位在饱和发生后一个周期被置位周期被置位8 EN 端结方式:端结方式:1=小端终结,小端终结,0=大端终结大端终结75 PCC PCC程序高速缓冲存储器控制模式程序高速缓冲存储器控制模式42 DCC 数据高速缓冲存储器控制模式数据高速缓冲存储器控制模式1 PGIE 当一个中断发生时,保存以前的全局中断使能位当一个中断发生时,保存以前的全局中断使能位GIE0 GIE 全局中断使能位,它控制除复位和不可屏蔽中断之外的所有可屏蔽中断使能:全局中断使能位,它控制除复位和不可屏
14、蔽中断之外的所有可屏蔽中断使能:GIE=1时,可屏蔽中断时,可屏蔽中断使能:使能:GIE=0时,可屏蔽中断禁止时,可屏蔽中断禁止6.控制寄存器组第13页/共128页2.2.1指令集概述1.指令和功能单元之间的映射 指令 功能单元乘法相关的指令都是在.M单元执行产生数据存储器地址的指令在.D功能单元算术逻辑运算大多在.L与.S单元执行 第14页/共128页2.延迟间隙延迟间隙在数量上等于从指令的源操作数被读取直到执行的结果可以被访问所需要的指令周期数。指令类型指令类型延迟间隙延迟间隙功能单元等待时间功能单元等待时间读周期读周期写周期写周期单周期单周期 0 1 i i 2周期周期 DP 1 1 i
15、 i,i+1 DP 比较比较1 2 i,i+1 1+1 4周期周期3 1 i i+3 INT到到DP转换转换4 1 i i+3,i+4 Load 4 1 i i,i+4MPYSP2DP 4 2 i i+3,i+4 ADDDP/SUBDP 6 2 i,i+1 i+5,i+6 MPYSPDP 6 3 i,i+1 i+5,i+6 MPYI 8 4 i,i+1,1+2,i+3 i+8 MPYID 9 4 i,i+1,1+2,i+3 i+8,i+9 MPYDP 9 4 i,i+1,1+2,i+3 i+8,i+9 第15页/共128页3.指令操作码映射图代码段代码段说明说明creg指定条件寄存器的代码指定
16、条件寄存器的代码z指定条件指定条件src,dst分别指定源及目的操作数代码分别指定源及目的操作数代码x指定源操作数指定源操作数2是否使用交叉通道是否使用交叉通道op指令操作代码指令操作代码s选择寄存器组选择寄存器组A或或B作为目的操作数作为目的操作数p指定是否并行执行指定是否并行执行第16页/共128页CPU运行时,总是一次取 8条指令,组成一个取指包 所有并行执行的指令组成一个执行包 周期/执行包指令1A2B3C D E4F G H4.并行操作第17页/共128页3位操作码字段creg指定条件寄存器1位字段z指定是零测试还是非零测试z=1,进行零测试,即条件寄存器的内容为0是真z=0,进行非
17、零测试,即条件寄存器的内容非0是真creg=0,z=0,则指令将无条件地执行 条件寄存器:A1、A2、B0、B1和B2 B0 ADD .L1 A1,A2,A3|!B0 ADD .L2 B1,B2,B3 以上2条指令是相互排斥 5.条件操作第18页/共128页6.寻址方式全部采用间接寻址所有寄存器都可以做线性寻址的地址指针循环寻址的地址指针:A4-A7,B4-B7由AMR控制地址修改方式:线件方式或循环方式循环寻址循环块的尺寸与BK0BK1内5位数值N的关系为块尺寸2(N+1)字节例如N的二进制数为10000,等于十进制16,则块尺寸2(16+1)131072字节第19页/共128页寻址方式寻址
18、方式不修改地址寄存器不修改地址寄存器先修改地址寄存器先修改地址寄存器后修改地址寄存器后修改地址寄存器寄存器间接寻址寄存器间接寻址*R*R *R*R *R 寄存器相对寻址寄存器相对寻址*Rucst5*Rucst5*Rucst5*Rucst5*R ucst5*R ucst5基地址基地址+变址变址*RoffseR*RoffseR*RoffseR*RoffseR*R offseR*R offseR带带15位常数偏移量位常数偏移量的寄存器相对寻址的寄存器相对寻址*+B14B15ucst156.寻址方式读取存储类指令访问数据存储器地址的汇编语法格式 ucst5-无符号二进制5位常数偏移量ucst15-无符
19、号二进制15位常数偏移量第20页/共128页Little-endian ordering,in which bytes are ordered from right to left,the most significant byte having the highest addressBig-endian ordering,in which bytes are ordered from left to right,the most significant byte having the lowest address大小端位由DSP的LENDIAN管脚设置终结方式(大小端位)第21页/共128页
20、BA 98 76 54h11,10,01,00BA 98 76 54h00,01,10,11终结方式(大小端位)第22页/共128页C6000DSP 汇编指令分类读取/存储类指令算术运算类指令逻辑与位操作类指令搬移类指令程序转移类指令空操作类指令浮点操作类指令第23页/共128页2.2.2 读取/存储类指令读取指令:LDBLDBULDHLDHULDWLDDW存储指令:STBSTHSTW单字节(Byte)、双字节(半字Half Word)和四字节(字Word)位数不同有符号/无符号(U),符号位的扩展不同地址偏移修正因子:LDB(U)LDH(U)LDW指令分别读入字节半字字,要乘以相应的比例因子
21、1、2、4第24页/共128页2.2.2 读取/存储类指令例2-1 线性寻址下的变址计算 LDW.D1 *+A41,A6此例为先修改地址,地址偏移量按14计算,计算结果如下所示:示例0201第25页/共128页2.2.2 读取/存储类指令例2-2 循环寻址方式下的地址计算 LDW.D1 *+A49,A1此处假设寻址模式寄存器AMR=0 x00030001,A4已被设定为循环寻址方式,块字节尺寸为24=16=10h(N=3)。因为是以字为单位读取,变址偏移量为94=36=24h。线件寻址时地址应为00000124h;循外寻址时,24h对低4位(第0-3位)地址10h取模,余数为4,故实际寻址地址
22、为00000104h。示例0202第26页/共128页2.2.3 算术运算类指令1.加减运算指令(1)ADD/ADDU/SUB/SUBU 操作数为整型(32位)或长整型(40位)的指令(2)ADD2/SUB2操作数为半字(16位)的指令,ADD2SUB2指令的特点是同时进行2个16位补码数的加减运算,高半字与低半字之间没有进借位,各自独立进行(3)SADD/SSUB带饱和的有符号数加减运算指令,操作数为32位或40位有符号数(4)ADDK与16位常数进行加法操作的指令(5)ADDABADDAHADDAWADDAD,SUBABSUBAHSUBAW按寻址方式的加减运算类指令第27页/共128页溢出
23、问题如果运算结果超出目的操作数字长所能表示的范围,造成运算结果的高位丢失,使保存的运算结果不正确,称为溢出。通常有3种办法解决溢出问题(1)用较长的字长来存放运算结果:1632可行,3240耗时(2)用带饱和的加减运算指令做补码数加减运算:保证符号不变,并且给出提示位(3)对整个系统乘一个小于1的比例因子:实际中最常用2.2.3 算术运算类指令第28页/共128页2.2.3 算术运算类指令例2-3 减法运算举例SSUB.L2 B1,B2,B3 SUB.L2 B1,B2,B3SUB.L2 B1,B2,B5:B4示例0203溢出了!符号位在这里无溢出!第29页/共128页2.2.3 算术运算类指令
24、例2-4 计算累加和的程序,用长型数存放和数,有8位保护位,示例0204Loop:LDW .D1 *A4+,A0 NOP 4 ADD .L1 A3:A2,A0,A3:A2 SUB .L2 B1,1,B1 B1 B.S1 Loop NOP 5 第30页/共128页2.2.3 算术运算类指令例2-5 按寻址方式的加法运算指令 ADDAH.D1 A4,A2,A4B2=16h 对8取余得6示例0205第31页/共128页2.2.3 算术运算类指令例2-6 按寻址方式的减法运算指令 SUBAB.D1 A5,A0,A5-41=-4h 对10h取余得C示例0205第32页/共128页2.2.3 算术运算类指
25、令2.乘法运算指令(1)适宜于整数乘法的指令 以MPY为首字母的22条指令(2)适宜于Q格式数相乘的3条指令 SMPYSMPYLHSMPYHL以1616位的硬件乘法器为基础,整数乘法的2个源操作数都是16位字长,目的操作数为32的寄存器,不存在溢出问题。第33页/共128页所谓定点格式,即约定机器中所有数据的小数点位置是固定不变的。在计算机中通常采用两种简单的约定:将小数点的位置固定在数据的最高位之前,或者是固定在最低位之后。一般常称前者为定点小数,后者为定点整数。Q格式:小数点位于第 n 位之右侧,称为Qn 格式 定点小数是纯小数,约定的小数点位置在符号位之后、有效数值部分最高位之前。若数据
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- DSP 原理 应用 CPU 结构 指令
![提示](https://www.taowenge.com/images/bang_tan.gif)
限制150内