dsp原理及应用教程-第四章 程序流程控制

上传人:aa****6 文档编号:50958020 上传时间:2018-08-11 格式:PPT 页数:46 大小:2.93MB
返回 下载 相关 举报
dsp原理及应用教程-第四章 程序流程控制_第1页
第1页 / 共46页
dsp原理及应用教程-第四章 程序流程控制_第2页
第2页 / 共46页
dsp原理及应用教程-第四章 程序流程控制_第3页
第3页 / 共46页
dsp原理及应用教程-第四章 程序流程控制_第4页
第4页 / 共46页
dsp原理及应用教程-第四章 程序流程控制_第5页
第5页 / 共46页
点击查看更多>>
资源描述

《dsp原理及应用教程-第四章 程序流程控制》由会员分享,可在线阅读,更多相关《dsp原理及应用教程-第四章 程序流程控制(46页珍藏版)》请在金锄头文库上搜索。

1、第四章第四章 程序流程控制程序流程控制程序流程:指的是指令的执行顺序。程序流程:指的是指令的执行顺序。C55xC55x中影响指令执行顺序的主要有:中影响指令执行顺序的主要有: 程序跳转程序跳转( (分支分支) ) 指令重复执行指令重复执行 条件执行条件执行 中断中断 程序调用程序调用程序的流程控制主要与指令缓冲单元程序的流程控制主要与指令缓冲单元(I (I单元单元) )和程序流程单和程序流程单元元(P(P单元单元) )有关。有关。第四章第四章 程序流程控制程序流程控制P P单元产生单元产生2424位的程序地址,并放到位的程序地址,并放到PABPAB总线上。总线上。I I单元的单元的IBQIBQ

2、从从3232位的程序总线读取位的程序总线读取3232比特的指令代码。比特的指令代码。译码器从译码器从IBQIBQ中读取中读取4848比特的指令进行译码,将指令和立即数比特的指令进行译码,将指令和立即数 分派到相应的单元执行。分派到相应的单元执行。第四章第四章 程序流程控制程序流程控制一、跳转一、跳转( (分支分支) )跳转:通过跳转指令改变跳转:通过跳转指令改变PCPC的值,使程序跳到指令指定的分支地的值,使程序跳到指令指定的分支地址执行。跳转指令可以是有条件的,也可以是无条件的。址执行。跳转指令可以是有条件的,也可以是无条件的。1 1、条件跳转、条件跳转判断条件判断条件condcond,如果

3、条件成立则将目标地址装入如果条件成立则将目标地址装入PCPC,完成跳转完成跳转。(1) BCC 14, (1) BCC 14, condcond ;4 4比特长相对比特长相对PCPC的无符号偏移的无符号偏移(2) BCC L8, (2) BCC L8, condcond ;8 8比特长相对比特长相对PCPC的有符号偏移的有符号偏移(3) BCC L16, (3) BCC L16, condcond ;1616比特长相对比特长相对PCPC的有符号偏移的有符号偏移(4) BCC P24, (4) BCC P24, condcond ;2424比特的绝对地址。比特的绝对地址。第四章第四章 程序流程控

4、制程序流程控制 在指令流水线的读(在指令流水线的读(R R)环节判断条件环节判断条件condcond; condcond条件可以是寄存器条件可以是寄存器ACxACx,ARxARx,TxTx与与0 0值的比较,也可以值的比较,也可以 是测试位是测试位TCxTCx以及进位标志以及进位标志CARRYCARRY的值。的值。 若条件为真,就把若条件为真,就把l4l4、L8L8、L16L16、P24P24指定的程序地址装入指定的程序地址装入PCPC 中,完成分支跳转。中,完成分支跳转。 跳转指令不能重复执行。跳转指令不能重复执行。举例:举例: 004055 BCC branch004055 BCC bra

5、nch, *AR0 != #0 *AR0 != #0 004056 004056 00F05A branch: . 00F05A branch: . 程序地址程序地址假设假设AR0AR0的值为的值为30003000,AR0AR0的值不等于的值不等于0 0 ,条件为真,跳转到,条件为真,跳转到 标号为标号为branchbranch处执行,这时处执行,这时PC=00F05APC=00F05A第四章第四章 程序流程控制程序流程控制2 2、无条件跳转、无条件跳转不需要满足任何条件,直接将目标地址装入不需要满足任何条件,直接将目标地址装入PCPC。(1) B (1) B ACxACx ;把把ACxACx

6、的低的低2424位的值装入到位的值装入到PCPC中中(2) B L7 (2) B L7 ;7 7比特长相对比特长相对PCPC的有符号偏移的有符号偏移(3) B L16 (3) B L16 ;1616比特长相对比特长相对PCPC的有符号偏移的有符号偏移(4) B P24 (4) B P24 ;2424比特的绝对地址比特的绝对地址举例:举例:MOV #1MOV #1,AC1AC1B branch B branch ; address: address: 004042: MOV #2, AC1004042: MOV #2, AC1 branch: branch: ; address: address

7、: 006047: MOV #0, AC1006047: MOV #0, AC1跳转前跳转前 PC 004042 PC 004042 AC1 00 0000 0001 AC1 00 0000 0001 跳转后跳转后PC 006047PC 006047AC1 00 0000 0000 AC1 00 0000 0000第四章第四章 程序流程控制程序流程控制二、指令重复二、指令重复指令重复:指重复执行一定次数的一条或者一段指令。包括无条指令重复:指重复执行一定次数的一条或者一段指令。包括无条件单指令重复,有条件单指令重复,块重复三种形式。件单指令重复,有条件单指令重复,块重复三种形式。1 1、无条件

8、单指令重复:、无条件单指令重复:(1) RPT #n(1) RPT #n; 将下一条指令重复执行将下一条指令重复执行n+1n+1次次(2) RPT CSR(2) RPT CSR; CSRCSR单重复寄存器,下一条指令重复单重复寄存器,下一条指令重复CSR+1CSR+1次次(3) RPTADD CSR, (3) RPTADD CSR, TAxTAx;下一条指令重复下一条指令重复CSR+1CSR+1次次后,后,TAxTAx +CSR- +CSR-CSRCSR(4) RPTADD CSR, k4 (4) RPTADD CSR, k4;下一条指令重复下一条指令重复CSR+1CSR+1次后,次后,CSR

9、+k4-CSRCSR+k4-CSR(5) RPTSUB CSR, k4 (5) RPTSUB CSR, k4;下一条指令重复下一条指令重复CSR+1CSR+1次后,次后,CSRCSRk4-CSRk4-CSR第四章第四章 程序流程控制程序流程控制举例:举例:RPTADD CSR, T1RPTADD CSR, T1MOV *AR0 MOV *AR0, T0 , T0 ;重复重复 CSR + 1CSR + 1次后,次后,T1T1的值加到的值加到CSRCSR中。中。2 2、有条件单重复指令、有条件单重复指令RPTCC k8RPTCC k8,condcond;当条件为真时,下一条指令重复当条件为真时,下

10、一条指令重复K8+1K8+1次次每次重复在流水线的执行每次重复在流水线的执行(X)(X)阶段检查阶段检查condcond定义的条件,当定义的条件,当条件不满足时,停止单指令重复。最大重复执行次数为条件不满足时,停止单指令重复。最大重复执行次数为28-28-1=2551=255举例:举例:RPTCC #7RPTCC #7, AC1 #0AC1 #0ADD #1 ADD #1,AC0 AC0 ;AC0=AC0+1AC0=AC0+1执行流水线分为执行流水线分为8 8个环节:个环节:F F/ /,D D, ADAD,AC1AC1,AC2AC2,R R,X X,WW第四章第四章 程序流程控制程序流程控制

11、以下指令不能用做单指令循环体:以下指令不能用做单指令循环体:B B ;跳转跳转 IDLE IDLE ;空闲指令空闲指令 RPTBLOCAL RPTBLOCAL ;块重复块重复RESET RESET ;软件复位软件复位 MOV RPTC, MOV RPTC, TAxTAx ;RPTCRPTC单指令重复计数器单指令重复计数器TRAP TRAP ;软件陷阱软件陷阱 MOV MOV dbldbl( (LmemLmem), RETA), RETARPTB RPTB ;块重复块重复 CALL CALL ;子程序调用子程序调用 RPT RPT ;单指令重复单指令重复 INTR INTR ;中断陷阱中断陷阱X

12、CC XCC ;条件执行条件执行 RET RET ;从子程序返回;从子程序返回第四章第四章 程序流程控制程序流程控制3 3、块重复:、块重复:同时重复多条指令。同时重复多条指令。块重复块重复( (块循环块循环) )的语法形式为:的语法形式为:(1) RPTBLOCAL label (1) RPTBLOCAL label (2) RPTB label (2) RPTB label执行步骤:执行步骤:(1) (1) 重复执行次数由块重复计数器重复执行次数由块重复计数器(BRC0(BRC0或或BRC1)BRC1)定义。定义。(2) (2) 由由RPTBRPTB或或RPTBLOCALRPTBLOCAL

13、定义块的开始地址,并放入到块重定义块的开始地址,并放入到块重复起始地址寄存器复起始地址寄存器(RSA)(RSA)中。中。(3) (3) 由由RPTBRPTB或或RPTBLOCALRPTBLOCAL后面的标号后面的标号(label)(label)定义块的结束地址定义块的结束地址 ,并放到块重复结束地址寄存器,并放到块重复结束地址寄存器(REA)(REA)中。中。第四章第四章 程序流程控制程序流程控制特点:特点: (1 1)由于)由于BRC0BRC0或或BRC1BRC1是是1616比特计数器,所以最大重复次数是比特计数器,所以最大重复次数是 64k64k,在初始化块重复计数器时,其值应为实际重复次数减在初始化块重复计数器时,其值应为实际重复次数减1 1。 (2 2)一个循环体内的最小执行周期为)一个循环体内的最小执行周期为2 2个机器周期。个机器周期。RPTBLOCALRPTBLOCAL和和RPTBRPTB区别区别 RPTBLOCALRPTBLOCAL被定义为被定义为指令缓冲队列指令缓冲队列(IBQ)(IBQ)的本地循环,即直接从的本地循环,即直接从 IBQIBQ中获取循环体指令,这样可以减少功率消耗,但是循环体指中获取循环体指令,这样可以减少功率消耗,但是循环体指 令的字数不能超过令的字数不能超过5656个字节。个字节。 当循环体指令超过当循

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

当前位置:首页 > 办公文档 > PPT模板库 > 教育/培训/课件

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