DSP课件第3章 程序控制与中断管理.pptVIP

  1. 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
  2. 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  3. 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
  4. 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
  5. 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们
  6. 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
  7. 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
DSP课件第3章 程序控制与中断管理

第3章 程序控制和中断管理 3.1 程序地址的产生 在执行当前指令的同时,程序流要求处理器生成下一条指令的程序地址,预定程序的路线。 程序地址的产生见下图: 程序地址产生逻辑使用的硬件 程序地址产生源 1、程序计数器 程序地址产生逻辑使用16位程序计数器(PC)对内部和外部程序存储器寻址,PC中存放将被执行的下一条指令的地址。通过程序地址总线(PAB),从程序存储器该地址处取出指令并装入指令寄存器,当装载入指令寄存器时,PC中保存下一个地址。 装入PC中的地址 2、堆栈 16位宽、8级深的硬件堆栈。当调用子程序或发生中断时,程序地址产生逻辑用其保存返回地址。 当CPU进入子程序或中断服务程序时,返回地址自动装入该堆栈的栈顶,这一操作不需附加周期。 当子程序或中断服务程序完成时,返回指令将返回地址从栈顶传送到程序计数器。 当不需要用8级返回地址时,该堆栈也可用来保存子程序或中断服务程序的有关数据或用于其他目的。 访问堆栈的指令: PUSH(压入)和POP(弹出) PUSH:把累加器的低16位拷贝到栈顶 POP: 把栈顶值拷贝到累加器低16位 3、微堆栈 微堆栈只有1级深、16位宽,没有可以使用微堆栈保存信息的指令,只有程序地址产生逻辑才能够使用微堆栈。 程序地址产生逻辑在执行BLDD、BLPD、MAC、TBLR及TBLW指令时,用微堆栈保存返回地址。执行这些指令时,首先把PC+1的地址送到微堆栈保存,然后用PC存放第一个操作数的地址,用辅助寄存器算术单元ARAU产生第二个操作数的地址,当这些指令重复执行时,PC可使第一个操作数的地址自动增量,ARAU使第二个操作数的地址改变,到所重复的指令完成时再将微堆栈弹回到程序地址产生逻辑。 4、流水线操作 指令流水线包括执行时发生的一系列总线操作。LF240x的流水线有4个独立的阶段:取指令、指令译码、取操作数和执行指令。4个操作阶段是独立的,在任意的指定周期内,1~4个不同的指令都被激活,每一条被激活的指令都处于不同的完成阶段。 流水线操作一般是不可见的,但下列情况例外: (1)紧跟在修改全局存储器分配寄存器(GREG)后的单字、单周期指令使用先前的全局映射。 (2)在流水线操作的执行阶段,NORM指令修改ARP,并使用当前辅助寄存器,如果随后的两个指令要改变当前辅助寄存器的内容或ARP,则它们将在流水线的译码阶段进行,这将导致NORM指令使用错误的辅助寄存器值,并导致随后的指令使用错误的ARP值。所以在NORM后不要安排改变当前辅助寄存器和ARP内容的指令。 3.2 转移、调用和返回 1、无条件指令 无条件转移 执行无条件转移时,将指定的程序存储器的地址加载到PC上,并从该地址开始执行程序。加载到PC的地址可以来自转移指令的第二个操作数,也可能是累加器的低16位。 无条件转移指令有B(转移)和BACC(转移到累加器指定的地址)。 无条件调用 执行无条件调用时,将指定的程序存储器的地址加载到PC上,并从该地址开始执行程序。加载到PC的地址可以来自转移指令的第二个操作数,也可能是累加器的低16位。加载PC 之前将返回地址保存到堆栈。子程序或函数执行之后,返回指令将返回地址从堆栈加载到PC,从调用指令后的那条指令开始执行。 无条件转移指令有CALL 、CALA(调用累加器指定单元处的子程序)。 无条件返回 执行无条件返回指令(RET)时,将栈顶的值加载到PC,并从该地址继续执行程序。 2 、有条件指令 使用多个条件 条件的稳定性 条件指令必须能测试到状态位的最新值。直到流水线的执行阶段,即前一条指令执行后一个周期才能认为条件稳定。流水线控制器在条件稳定之前停止对条件指令后的任何指令译码。 条件指令的执行 条件转移(BCND、BANZ): 该指令使程序转移到程序存储器的任何地址,只有满足一个或多个由用户指定的条件时,才能实现转移。此时,PC装载转移指令的第2个字,并从该地址开始继续执行此指令。 无条件转移指令有BCND(条件转移)和BAND(若当前辅助寄存器不为0,则转移)。 条件调用(CC): 该指令可使程序根据处理数据的不同在多个子程序间进行选择,只有当用户指定的一个或多个特定条件满足时才能调用。此时,PC装载调用指令的第2个字,并将返回地址保存在堆栈中,然后执行子程序。 条件返回 返回指令(RET): 与调用或中断配合使用。调用或中断把返回指令保存到堆栈里,被调用的子程序或中断服务程序以返回指令结束,该指令将返回地址从堆栈弹到PC。 条件返回指令(RETC):

文档评论(0)

xcs88858 + 关注
实名认证
文档贡献者

该用户很懒,什么也没介绍

版权声明书
用户编号:8130065136000003

1亿VIP精品文档

相关文档