DSP-第6讲-程序存储器寻址.pptVIP

  1. 1、本文档共39页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多

第6讲程序存储器寻址主要问题地址如何产生并加载到程序计数器(PC)影响加载到PC的值的程序控制操作分支转移调用与返回条件操作单条指令或块指令重复操作硬件复位中断§6.1程序存储器地址的产生DSP通过16位的程序地址总线(PAB)可以寻址64K字的程序空间。扩展的程序空间需要使用程序计数器扩展寄存器(XPC)定位页地址。地址:程序地址产生逻辑(PAGEN)生成,加载到PC,并且将PC中的地址加载到PAB用来访问存放在程序存储器中的指令,系数表,16位立即操作数或其他信息。通过PAB寻址的指令最后被加载到指令寄存器(IR)执行。§6.2程序计数器(PC)PC:是一个16位计数器,指向程序存储器中当前要执行的指令或者16位立即操作数或者程序存储区中的系数表。PC可以使用七种方式进行加载§6.2程序计数器(PC)加载XPC的方式流水线C54xDSP有一个6级深度的指令流水线流水线在转移指令到达流水线的执行阶段时,紧跟在该指令后的两条指令已经被读取。这两条指令根据转移是否延时或无延时而进行处理。(1)无延时:两条指令字在流水线中被清除,以便不被执行,然后继续在转移地址处执行。(2)带延时:紧跟在转移指令后的一个2字指令或者两个单字指令被执行。延时可以避免清除流水线,而要求额外的周期。§6.3分支转移分支转移会中断连续的指令流,影响在PC中产生和保存的程序地址。C54xDSP的分支转移操作有两种形式,即有条件分支转移和无条件分支转移,两者都可以带延时操作和不带延时操作。带延时操作的指令助记符后缀为D。无条件分支转移:在遇到时总要执行B[D]pmad:用该指令指定的地址加载PCBACC[D]src:用累加器的低16位指定的地址加载PC§6.3分支转移条件分支转移:所有条件都满足时,PC加载分支转移地址,并且在这个地址继续执行BC[D]:如果指令给定的条件完全满足,则用该指令指定的地址加载PCBANZ[D]:如果当前选择辅助寄存器不等于0,则用该指令指定的地址加载PC§6.3分支转移§6.3分支转移远分支转移:允许分支转移到扩展存储器FB[D]:分支转移到指令所指定的扩展存储器地址FBACC[D]:分支转移到累加器(A或B)所指定的扩展存储器地址§6.4调用当函数的子程序被调用时,紧跟在调用之后的下一条指令的地址保存在堆栈中,用于返回到调用程序并继续执行调用前的程序。C54xDSP可以执行无条件和条件调用,并且这两种类型可以带延时或无延时。无条件调用:在遇到时总要执行CALL[D]:将返回地址压入堆栈,并用该指令指定的地址加载PC。CALA[D]:将返回地址压入堆栈,用累加器(A或B)指定的地址加载PC。§6.4调用§6.4调用§6.4调用条件调用CC[D]:如果指令给定的条件完全满足,将返回地址压入堆栈,并用该指令指定的地址加载PC§6.4调用远调用:对扩展存储器的子程序或函数进行调用FCALL[D]:将XPC和PC压入堆栈中,并用该指令指定的地址加载PC和XPC。FCALA[D]:将XPC和PC压入堆栈中,用累加器的低23位指定的地址加载PC和XPC。§6.5返回返回指令可以使程序重新在被中断的连续指令处继续执行返回指令通过弹出堆栈值到程序计数器,重新开始执行调用或者中断发生处后面的指令C54xDSP可以执行无条件和条件返回,并且都可以带延时或无延时无条件返回RET[D]:将堆栈顶部的返回地址加载到PC。RETE[D]:将堆栈顶部的返回地址加载到PC,并使能可屏蔽中断。RETF[D]:将RTN寄存器中的返回地址加载到PC,并使能可屏蔽中断。§6.5返回§6.5返回条件返回RC[D]:如果指令给定的条件完全满足后,则将堆栈顶部的返回地址加载到PC§6.5返回远返回:从扩展存储器的子程序或函数返回FRET[D]:将堆栈中的返回地址弹出加载到XPC和PC,使程序在被中断的地方重新开始执行。FRETE[D]:将堆栈中的返回地址弹出加载到XPC和PC,并使能可屏蔽中断。分支、调用、返回指令总结B[D] pmadBACC[D] srcFB[D] extpmadFBACC[D] srcBC[D] pmad,cond[,cond[,cond]]BANZ[D] pmad,sindCALL[D] pmadCALA[D] srcFCALL[D] extpmadFCALA[D] srcCC[D] pmad,cond[,cond

文档评论(0)

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

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

1亿VIP精品文档

相关文档