- 1、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。。
- 2、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载。
- 3、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
- 4、该文档为VIP文档,如果想要下载,成为VIP会员后,下载免费。
- 5、成为VIP后,下载本文档将扣除1次下载权益。下载后,不支持退款、换文档。如有疑问请联系我们。
- 6、成为VIP后,您将拥有八大权益,权益包括:VIP文档下载权益、阅读免打扰、文档格式转换、高级专利检索、专属身份标志、高级客服、多端互通、版权登记。
- 7、VIP文档为合作方或网友上传,每下载1次, 网站将根据用户上传文档的质量评分、类型等,对文档贡献者给予高额补贴、流量扶持。如果你也想贡献VIP文档。上传文档
查看更多
“DSP技术”第2章内部资源介绍75323.ppt
小 测 验 1) DSP的基本特点 2)什么是哈佛结构 ?(并画出示意图) 3) DSP与单片机的主要区别 第2章: TMS320LF240x DSP内部资源介绍 重点: TMS320LF240x DSP CPU控制器的内部功能模块;存储器和I/O空间;系统配置和中断;程序控制工作原理 难点: ) DSP2407的中断系统 ( 2) DSP2407的存储器映射 ( 3) DSP2407锁相环的工作方式 ( 4) DSP2407数字I/O引脚的使用 R2的理解 2.4 程序控制 1、程序地址的产生 程序流要求处理器在执行当前指令的同时产生下一个程序地址 顺序或非顺序 LF240x器件程序地址产生逻辑使用下列硬件: 程序计数器 PC :16位PC取址时对内部或外部程序存储器进行寻址。 程序地址寄存器 PAR :驱动程序地址总线 PAB ,是16位总线,同时为读/写程序提供地址。 堆栈:程序地址产生逻辑包括一个16位宽、最多可保存8个返回地址的硬件堆栈,也可用于暂存数据。 微堆栈 MSTACK :有时程序地址产生逻辑使用这个16位宽、1级深的堆栈保存一返回地址。 重复计数器 RPTC :16位的RPTC与重复指令RPT一起,用来确定RPT后面的一条指令重复执行的次数。 2.4 程序控制 程序计数器 PC 程序地址产生逻辑利用16位的PC寻址内部和外部程序存储器。 PC含有要执行的下一条指令的地址。 经程序地址总线 PAB 从程序存储器中取出该地址中的指令,并将其装入指令寄存器。 指令寄存器装入后,PC内容为下一地址。 LF240x可以采用多种方法装载PC,从而适应顺序和非顺序的程序流。加载方法见表2.12 P47 。 2.4 程序控制 堆栈 LF240x具有16位宽度、8级深度的硬件堆栈。 在调用子程序或发生中断时,程序地址产生逻辑利用该堆栈保存返回地址。 当指令使CPU进入子程序或中断使其进入中断服务程序时,返回地址自动装入堆栈的栈顶,该操作不需附加周期。 当子程序或中断服务程序完成时,则返回地址从栈顶送到程序计数器。 当8级堆栈不用于保存地址时,在子程序或中断服务程序内,堆栈可用于保存上下文数据或其他存储用途。 2.4 程序控制 用户可使用的两组指令访问堆栈 PUSH 压入 和POP 弹出 :PUSH指令把累加器的低半部分copy到栈顶;POP指令将栈顶的数据copy到累加器低半部分。 PSHD和POPD:当子程序或中断嵌套超过8级时,可利用这些指令在数据存储区构建堆栈。PSHD将数据存储器中的值压入栈顶;POPD将栈顶的值弹到数据存储器。 每当一个数压入栈顶,堆栈中每级的内容都下移一级,栈底内容则丢失。因此,如果没有弹出而又连续压入多于8次,或压入的次数比弹出的次数多于8次时,就会丢失数据 堆栈溢出 图2.13 P48 。 弹出操作于压入操作相反,把堆栈中每一级的值都copy到较高的一级,连续7次弹出后的任何弹出操作产生的值都是初始栈底的值,图2.14 P49 。 2.4 程序控制 微堆栈 MSTACK 程序地址产生逻辑在执行某些指令前利用16位宽、1级深的MSTACK保存返回地址。 这些指令利用程序地址产生逻辑提供双操作数指令中的第2个地址,它们是:BLDD、BLPD、MAC、MACD、TBLR和TBLW。 重复执行时,利用PC使第一个操作数地址增1,并使用辅助寄存器算术单元产生第二个操作数地址。 使用时,返回地址被压入MSTACK;重复指令执行完后,MSTACK的值被弹出并送至程序地址产生逻辑。 MSTACK不可用于存储指令(不同于STACK)。 2.4 程序控制 2、流水线操作 指令流水线包括执行指令时发生的一系列总操作。 LF240x流水线具有4个独立阶段:取指令、指令译码、取操作数和执行指令。 这4个独立阶段在任意给定周期里,可能有1~4条不同的指令处于激活状态。 2.4 程序控制 对用户来说,除下列情况外,流水线基本上是不可见的 紧跟在修改全局存储器分配寄存器 GBEG 后的单字、单周期指令使用先前的全局映射数据存储器。 NORM指令修改辅助寄存器指针 ABP ,而且在流水线的执行阶段使用当前辅助寄存器。如果后面的两个指令字改变当前辅助寄存器或ARP的值,那么这些操作是在流水线的译码阶段进行的,使得NORM指令使用了错误的辅助寄存器,并使后续指令使用错误的ARP值。 2.4 程序控制 3、无条件转移、调用和返回 无条件转移 总是被执行,PC装入指定的程度地址且程序从该地址处开始执行。装入的地址来自于指令的第2个字或累加器的低16位。 在转移指令到达流水线的执行阶段时,下2条指令已被取回,且从流水线中清除不被执行,而从转移至的地址处继续执行。 无条件转移指令:B 转移 和
文档评论(0)