TMS320C6000系列DSP指令系统

上传人:飞*** 文档编号:2151827 上传时间:2017-07-20 格式:PPT 页数:78 大小:2.80MB
返回 下载 相关 举报
TMS320C6000系列DSP指令系统_第1页
第1页 / 共78页
TMS320C6000系列DSP指令系统_第2页
第2页 / 共78页
TMS320C6000系列DSP指令系统_第3页
第3页 / 共78页
TMS320C6000系列DSP指令系统_第4页
第4页 / 共78页
TMS320C6000系列DSP指令系统_第5页
第5页 / 共78页
点击查看更多>>
资源描述

《TMS320C6000系列DSP指令系统》由会员分享,可在线阅读,更多相关《TMS320C6000系列DSP指令系统(78页珍藏版)》请在金锄头文库上搜索。

1、第3章 TMS320C6000系列DSP指令系统,TMS320C6000系列DSP指令集,流水线,汇编伪指令,3.1 TMS320C6000系列DSP指令集,1指令和功能单元之间的映射TMS320C6000汇编语言的每一条指令只能在特定的功能单元执行,从而形成了指令与功能单元之间的映射关系。表3-1为TMS320C62x/C67x/C64x指令映射到功能单元。2延迟时隙TMS320C62x的所有指令都适用于TMS320C67x,但是有一些特定的指令仅对TMS320C67x适用。这些指令中包括双精度浮点类型加法减法乘法比较以及32位的整数乘法等。它们的功能单元等待时间大于1,即占用功能单元的CP

2、U周期数大于1。例如,ADDDP指令的功能单元等待时间为2,在第i和i+1周期读取操作数,因此只能在第i+2周期开始执行下一条指令,而非i+1周期。因为ADDDP指令的延迟时隙为6,所以其结果只能在第i+7周期读取。表3-2和表3-3为TMS320C62x和TMS320C67x的各种指令的延迟时隙和功能单元等待时间。,3.1 TMS320C6000系列DSP指令集,3并行操作CPU运行时总是一次取8条指令,组成一个取指包。取指包的基本格式如图3-1所示。取指包由256位边界定位,3.1 TMS320C6000系列DSP指令集,(1)取指包完全串行P位模式,如图3-2所示。,此模式下的执行顺序如

3、表3-4所示。,3.1 TMS320C6000系列DSP指令集,(2)取指包完全并行P位模式,如图3-3所示。,此模式下的执行顺序如表3-5所示。,3.1 TMS320C6000系列DSP指令集,(3)取指包部分串行P位模式,如图3-4所示。,此模式的执行结果如表3-6所示。,3.1 TMS320C6000系列DSP指令集,此例指令包的指令如下:instruction Ainstruction Binstruction C| instruction D| instruction Einstruction F| instruction G| instruction H,3.1 TMS320C60

4、00系列DSP指令集,4条件操作creg的编码在指令操作码中如表3-7所示。,3.1 TMS320C6000系列DSP指令集,5资源限制(1)使用相同功能单元指令的限制下面的执行包是无效的:ADD .S1 A0, A1, A2 | SHR .S1 A3, 15, A4 ;.S1被两条指令同时使用下面的执行包是有效的:ADD .L1 A0, A1, A2 | SHR .S1 A3, 15, A4 ;使用两个不同功能单元(2)使用交叉通路的限制下面的执行指令包是无效的:ADD.L1X A0,B1,A1 | MPY.M1X A4,B4,A5 ;1同时被两条指令使用下面的执行指令包是有效的:ADD.L

5、1X A0,B1,A1 | MPY.M2X B4,A4,B2 ;使用了1和2两条通路,3.1 TMS320C6000系列DSP指令集,(3)数据读/写的限制使用相同的寄存器组作为目的地址/源地址的两条读/写指令不能被安排在同一个执行指令包中。同时,数据读写使用的地址寄存器必须与所使用的功能单元处于同一个数据通路。下面执行指令包无效:LDW.D1 *A0,A1 | LDW.D2 *A2,B2 ;.D2必须用B组的寄存器作为地址指针下面的执行指令包有效:LDW.D1 *A0,A1 | LDW.D2 *B0,B2 ;寄存器所在组正确,3.1 TMS320C6000系列DSP指令集,将数据读入(或者存

6、储自)相同寄存器组的两条读(或者写)指令,将数据读入到和存储自相同寄存器组的两条读和写指令不能安排在同一个执行指令包中。下面的执行指令包无效:LDW.D1 *A4,A5 | STW.D2 A6,*B4 ;读入到/存储自同一寄存器组下面的执行指令包有效:LDW.D1 *A4,B5 | STW.D2 A6,*B4 ;读入到/存储自不同寄存器组,3.1 TMS320C6000系列DSP指令集,(4)使用长定点型(40位)数据的限制.S和.L单元共用一套为长定点型的源操作数准备的读寄存器通路和为长定点型的结果准备的写寄存器通路,所以每一个执行包只能允许每一寄存器组处理一个长定点类型数据。下面的执行指令

7、包无效:ADD.L1 A5:A4,A1,A3:A2 | SHL.S1 A8,A9,A7:A6 ;两个长数据写入同一组下面的执行指令包有效:ADD.L1 A5:A4,A1,A3:A2 | SHL.S2 B8,B9,B7:B6 ;每一组一个长整型数据,3.1 TMS320C6000系列DSP指令集,因为.S和.L单元的一个长数据读通路与数据存储通路共用,所以涉及到同一.S或者.L单元的长数据读和存储操作不能安排在同一个执行包中。下面的执行指令包无效:ADD .L1 A5:A4,A1,A3:A2 | STW .D1 A8,*A9 ;长数据读操作与存储操作冲突下面的执行指令包有效:ADD.L1 A4,

8、 A1, A3:A2 | STW.D1 A8,*A9 ;去掉长数据读操作,3.1 TMS320C6000系列DSP指令集,(5)寄存器读取的限制一个指令周期对同一寄存器读取操作不允许多于4次,条件寄存器不在此限制内。下面的代码序列无效:MPY .M1 A1,A1,A4 ;对寄存器A1进行5次读取操作| ADD .L1 A1,A1,A5| SUB .D1 A1,A2,A3MPY .M1 A1,A1,A4 ;对寄存器A1进行5次读取操作| ADD .L1 A1,A1,A5| SUB .D2x A1,B2,B3下面的代码序列有效:MPY .M1 A1,A1,A4 ;对寄存器A1仅进行4次读取操作|

9、A1 ADD .L1 A0,A1,A5| SUB .D1 A1,A2,A3,3.1 TMS320C6000系列DSP指令集,(6)寄存器写的限制在同一周期内两条指令不能同时写入到同一个寄存器中,因此对于同一目标的两条指令可以设置为并行执行。例如,MPY指令在第i周期发生,发生在第i+1周期的ADD不能写入到同一寄存器,因为这两条指令都在第i+1周期写入结果。如下代码顺序除非在MPY指令后发生跳转才有效,否则ADD指令是不会发生的。MPY .M1 A0,A1,A2ADD .L1 A4,A5,A2下面的代码有效:MPY .M1 A0,A1,A2| ADD .L1 A4,A5,A2,3.1 TMS3

10、20C6000系列DSP指令集,【例3.1】 汇编器对写冲突的检测能力。L1: ADD.L2 B5,B6,B7 ;可以检测, 冲突| SUB.S2 B8,B9,B7 L2: MPY.M2 B0,B1,B2 ;不能检测L3: ADD.L2 B3,B4,B2 L4: !B0 ADD.L2B5,B6,B7 ;能检测, 无冲突| B0 SUB.S2B8,B9,B7 L5: !B1 ADD.L2B5,B6,B7 ;不能检测| B0 SUB.S2 B8,B9,B7,3.1 TMS320C6000系列DSP指令集,6常用指令描述(1)ABS整型数饱和绝对值语法:ABS (.unit) src2,dst.un

11、it = .L1,.L2描述:将src2的绝对值放入dst。if (cond) abs(src2) dst else nop当src2是sint绝对值进行如下处理:如果 src20,则 src2 dst如果 src20 且 src2 -231,则 src2 dst如果 src2 = ,则 1 dst当src2是slong绝对值进行如下处理:如果 src20, 则 src2 dst如果 src20 且 src2 ,则 src2 dst如果 src2 = , 则 1 dst,3.1 TMS320C6000系列DSP指令集,指令类型:单周期指令延迟时隙:0例如:ABS .L1A1,A5指令前指令后一

12、个周期A18000 4E3Dh (2147463619)8000 4E3Dh (2147463619)A5XXXX XXXXh7FFF B1C3h (2147463619)例如:ABS .L1A1,A5指令前指令后一个周期A13FF6 0010h(1073086480)3FF6 0010h(1073086480)A5XXXX XXXXh3FF6 0010h(1073086480),3.1 TMS320C6000系列DSP指令集,(2)ADD(U)有符号/无符号整型饱和加语法:ADD (.unit) src1, src2,dst或ADDU (.L1 or .L2) src1,src2, dst或

13、ADD (.D1 or .D2) src2, src1, dst.unit = .L1, .L2, .S1, .S2.L1,.L2和.S1, .S2操作数描述:src2加到src1,将结果放入dst。if (cond) src1 + src2 dst else nop.D1,.D2操作数描述:src1加到src2,将结果放入dst。if (cond) src2 + src1 dst else nop,3.1 TMS320C6000系列DSP指令集,指令类型:单周期指令延迟时隙:0例如:ADD .L2X A1,B1,B2指令前指令后一个周期A10000 325Ah(12890)0000 325A

14、hB1 FFFF FF12h(-238)7FFF B1C3hB2XXXX XXXXh0000 316Ch(12652)例如:ADDU .L1 A1,A2,A5:A4指令前指令后一个周期A10000 325Ah(12890 ) 0000 325AhA2FFFF FF12h(4294967058) FFFF FF12hA5:A4XXXX XXXXh 0000 0001h 0000 316Ch(4294979948)例如:ADDU .L1 A1, A3:A2, A5:A4指令前指令后一个周期A10000 325Ah(12890 )0000 325AhA3:A20000 00FFh FFFF FF12

15、h(1099511627538)0000 00FFh FFFF FF12hA5:A40000 0000h 0000 0000h (0) 0000 0000h 0000 316Ch(12652) 32位无符号整型 40位无符号(长)整型,3.1 TMS320C6000系列DSP指令集,(3)ADDK 16位整型常量加语法:ADDK (.unit) cst,dst.unit = .S1 或 .S2描述:一个16位的有符号常量加到指定的dst寄存器,结果移入dst。if (cond)cst + dst dst else nop指令类型:单周期指令延迟时隙:0例如:ADDK .S1 15401,A1 指令前指令后一个周期A10021 37E1h(2176993)0021 740Ah(2192394),

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 研究报告 > 综合/其它

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号