DSP课件第三章程序控制和中断管理

DSP课件第三章程序控制和中断管理

ID:38555689

大小:396.00 KB

页数:48页

时间:2019-06-14

DSP课件第三章程序控制和中断管理_第1页
DSP课件第三章程序控制和中断管理_第2页
DSP课件第三章程序控制和中断管理_第3页
DSP课件第三章程序控制和中断管理_第4页
DSP课件第三章程序控制和中断管理_第5页
资源描述:

《DSP课件第三章程序控制和中断管理》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库

1、第3章 程序控制和中断管理在执行当前指令的同时,程序流要求处理器生成下一条指令的程序地址,预定程序的路线。程序地址的产生见下图:3.1程序地址的产生程序地址产生框图程序地址产生逻辑使用的硬件器件功能程序计数器(PC)对内部和外部程序存储器寻址程序地址寄存器(PAR)驱动程序地址总线,提供程序的读、写地址堆栈保存返回地址微堆栈(MATACK)保存返回地址重复计数器(RPTC)与重复指令(RPT)一起,用来确定RPT后的一条指令重复执行的次数。程序地址产生源操作程序地址来源顺序操作程序计数器PC(程序地址+1)空周期

2、程序地址寄存器PAR(程序地址+1)从子程序返回堆栈栈顶(TOS)从表传送或块传送返回微堆栈(MSTACK)转移到或调用指令中指定的地址转移到或调用累加器低半部分指定的地址转移到中断服务程序转移或调用指令,即利用程序读总线(PRDB)的方式获取程序地址。累加器的低半部分,即利用数据读总线(DRDB)的方式获取程序地址中断矢量单元,即利用程序读总线(PRDB)的方式获取程序地址。3.1.1程序计数器程序地址产生逻辑使用16位程序计数器(PC)对内部和外部程序存储器寻址,PC中存放将被执行的下一条指令的地址。通过程序

3、地址总线(PAB),从程序存储器该地址处取出指令并装入指令寄存器,当装载入指令寄存器时,PC中保存下一个地址。装入PC中的地址将累加器低16位加载到PC。利用BACC(转移到累加器中的地址)或CALA(调用累加器指令单元的子程序)指令可实现计算转移操作加载到PC的地址顺序执行若当前指令字是一个字,则将PC+1加载到PC若当前指令字是两个字,则将PC+2加载到PC转移转移指令后的长立即数直接加载到PC子程序调用和返回调用指令:将PC中的下一条指令的地址压入堆栈,然后将调用的指令后的长立即数加载到PC返回指令:将返回

4、地址从堆栈中弹回PC软件或硬件中断将相应的中断矢量地址装入PC。在该矢量单元,通常有一条转移指令,又将相应的中断服务程序的地址加载到PC计算转移代码操作3.1.2堆栈16位宽、8级深的硬件堆栈。当调用子程序或发生中断时,程序地址产生逻辑用其保存返回地址。当CPU进入子程序或中断服务程序时,返回地址自动装入该堆栈的栈顶,这一操作不需附加周期。当子程序或中断服务程序完成时,返回指令将返回地址从栈顶传送到程序计数器。当不需要用8级返回地址时,该堆栈也可用来保存子程序或中断服务程序的有关数据或用于其他目的。访问堆栈的指令

5、:PUSH(压入)和POP(弹出)PUSH:把累加器的低16位拷贝到栈顶POP:把栈顶值拷贝到累加器低16位PSHD和POPD当子程序或中断嵌套超过8级时,利用此指令在数据存储区中建立一个堆栈。PSHD把数据存储器中的值压入栈顶,POPD将栈顶值弹出到数据存储器。3.1.3微堆栈微堆栈只有1级深、16位宽,没有可以使用微堆栈保存信息的指令,只有程序地址产生逻辑才能够使用微堆栈。程序地址产生逻辑在执行BLDD、BLPD、MAC、TBLR及TBLW指令时,用微堆栈保存返回地址。执行这些指令时,首先把PC+1的地址送到

6、微堆栈保存,然后用PC存放第一个操作数的地址,用辅助寄存器算术单元ARAU产生第二个操作数的地址,当这些指令重复执行时,PC可使第一个操作数的地址自动增量,ARAU使第二个操作数的地址改变,到所重复的指令完成时再将微堆栈弹回到程序地址产生逻辑。3.1.4流水线操作指令流水线包括执行时发生的一系列总线操作。LF240x的流水线有4个独立的阶段:取指令、指令译码、取操作数和执行指令。4个操作阶段是独立的,在任意的指定周期内,1~4个不同的指令都被激活,每一条被激活的指令都处于不同的完成阶段。4级流水线的操作流水线操作

7、一般是不可见的,但下列情况例外:(1)紧跟在修改全局存储器分配寄存器(GREG)后的单字、单周期指令使用先前的全局映射。(2)在流水线操作的执行阶段,NORM指令修改ARP,并使用当前辅助寄存器,如果随后的两个指令要改变当前辅助寄存器的内容或ARP,则它们将在流水线的译码阶段进行,这将导致NORM指令使用错误的辅助寄存器值,并导致随后的指令使用错误的ARP值。所以在NORM后不要安排改变当前辅助寄存器和ARP内容的指令。转移、调用和返回改变指令流的顺序,转到新的地址单元去执行指令。转移仅使控制转换到新的地址单元;

8、调用要将返回地址保存到硬件堆栈的栈顶;返回指令将堆栈中的返回地址弹到程序计数器。3.2转移、调用和返回3.2.1无条件指令无条件转移执行无条件转移时,将指定的程序存储器的地址加载到PC上,并从该地址开始执行程序。加载到PC的地址可以来自转移指令的第二个操作数,也可能是累加器的低16位。无条件转移指令有B(转移)和BACC(转移到累加器指定的地址)。无条件调用执行无条件调用

当前文档最多预览五页,下载文档查看全文

此文档下载收益归作者所有

当前文档最多预览五页,下载文档查看全文
温馨提示:
1. 部分包含数学公式或PPT动画的文件,查看预览时可能会显示错乱或异常,文件下载后无此问题,请放心下载。
2. 本文档由用户上传,版权归属用户,天天文库负责整理代发布。如果您对本文档版权有争议请及时联系客服。
3. 下载前请仔细阅读文档内容,确认文档内容符合您的需求后进行下载,若出现内容与标题不符可向本站投诉处理。
4. 下载文档时可能由于网络波动等原因无法下载或下载错误,付费完成后未能成功下载的用户请联系客服处理。