DSP器件及应用C的程序控制ppt课件.ppt_第1页
DSP器件及应用C的程序控制ppt课件.ppt_第2页
DSP器件及应用C的程序控制ppt课件.ppt_第3页
DSP器件及应用C的程序控制ppt课件.ppt_第4页
DSP器件及应用C的程序控制ppt课件.ppt_第5页
已阅读5页,还剩17页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

DSP器件及应用 第2章TMS320C2000DSP的硬件结构 2 4程序控制 C2000程序控制特点 C2000DSP的改进型哈佛结构和内部多总线的应用 使DSP具有并行操作的基础取指 译码 取操作数 执行的重叠流水线结构 使指令具有单周期执行时间的能力硬件乘法加法单元的有机组合 使单周期完成乘法和加法的指令成为可能主运算单元 中央算术逻辑单元CALU 以外的辅助寄存器算术单元ARAU 使DSP进行算术逻辑操作的同时 对源或目标操作数的地址能及时产生 C2000DSP的程序控制 程序控制内容包括程序地址的产生流水线顺序执行无条件及有条件的分支 调用 返回指令重复执行中断系统在高级的DSP器件中还包括指令块的重复 CACHE的使用控制 多处理器的协调等内容 2 4 1程序地址产生 当执行当前 现行 指令时 程序流要求CPU产生紧接着的后一指令的地址当顺序执行时 程序计数器PC 1当非顺序执行时 紧接着的后一指令的地址来源于指令操作字累加器低部分ACCL 分支或调用 堆栈 返回 微堆栈 块操作 向量表 中断 等 程序计数器PC PC新值总是等于下一指令所在地址当CPU顺序执行时 若当前指令字长为1个字 PC值 当前值 1 若当前指令字长为2个字则PC值 当前值 2分支 跳转 时 则将指令后的长立即数或累加器低半部分ACCL加载到PC子程序调用时 PC指向调用后的下条指令地址首先入栈 然后将指令后的长立即数或累加器低半部分ACCL加载到PC 返回时则将栈顶内容弹出到PC中断调用时 也是首先将刚执行完指令的下条指令地址入栈 然后把中断向量表的内容 中断向量 填入PC 堆栈STACK C2000DSP具有一个16位宽 8级深度的硬件堆栈 当调用子程序或发生中断时 程序地址产生逻辑利用该堆栈保存返回地址指令PUSH和POP实现栈顶的值与累加器低半部分ACCL之间相互传送指令PSHD和POPD实现栈顶的值与数据存储器单元之间相互传送当多于8级嵌套时 会发生堆栈溢出 为了解决这一问题 DSP提供了一个使用软堆栈的办法 利用PSHD和POPD指令将数据从数据存储器压入栈顶或从栈顶弹出数据到数据存储器 这数据存储器一般使用片内双访问存储器 常用B2块 0060h 007Fh 经堆栈软扩展后可适用于多级嵌套的复杂程序 堆栈STACK示意图 微堆栈MSTACK 在CPU执行块操作时 使用PC作为第一个操作数的地址增量用ARAU产生第2个操作数地址使用一个微堆栈 只有一级的堆栈 MSTACK来暂时保存 返回地址 下条指令对应的PC值 操作开始时 PC 1 或PC 2 MSPACK 首操作数地址 PC 块操作 结束 MSTACK PC 2 4 2 C2000DSP的流水线 4级流水线把一个指令分解成4个独立的阶段 取指令 Fetch 译码 Decode 取操作数 Operand 执行 Execute 4个阶段是独立的 可以重叠执行在任意的指定周期内 1 4条不同的指令均可有效 均被激活 每条被激活的指令均处于一个不同的操作阶段 对于指令流 指令的4个阶段在同一时间上的重叠 使指令的平均执行时间减少在无流水线时一条指令执行时间为4个周期 有流水线后 指令的平均执行时间 无流水线执行时间 流水线级数 4 4 1 等效于一条指令只须单周期执行的时间 流水线操作示意图 在分支 调用 中断等操作中会破坏流水线 而流水线的建立需4个周期才能完成 因此在这种情况下 指令的平均执行时间会加长 2 4 3 C2000DSP的非顺序执行 C2xxDSP的CPU有指令重复 分支 调用 返回 中断等非顺序执行方式 除指令重复不会破坏流水线 使流水线暂停 外 其他情况均会破坏流水线 分支 调用和返回 无条件分支 调用和返回带条件判断的分支 调用和返回指令 可测试 判断 的条件 EQ ACC 0累加器内容为0 NEQ ACC 0 累加器不为0 LT ACC0累加器内容大于0 GEQ ACC 0 累加器大于等于0 C C 1进位等于1 NC C 0 进位位等于0 可测试 判断 的条件 OV OV 1 ACC发生溢出 NOV OV 0 ACC不溢出 TC TC 1 测试控制位等于1 NTC TC 0 测试控制位等于0 BIO 0 引脚为低电平 应注意的是 TC和BIO是互斥的 这两个条件不能同时存在 条件分组 单指令重复 C2xxDSP设置了一种特殊的指令执行模式 重复执行某条指令由于指令重复执行时可采用间接寻址方式 操作数地址由ARAU确定 ARAU又在同时并行地进行算术运算 因此单指令重复执行实际上并不是对同一操作数的简单重复运算 处理 而是对不同操作数进行了某中运算 因此单指令重复意义十分重大 在乘加操作 块操作 等方面使用重复指令效果很好 单指令重复不破坏流水线 中断 C2xxDSP支持应中断和软中断方式 软中断由程序预先安排实现 无须硬件开销 但是按中断调用的方法去执行对应中断向量表 地址 处的程序 产生软件中断的指令有INTR 调用自定义软中断或调用可屏蔽硬中断硬中断则由片内外设或片外部件产生中断请求信号 受优先级和屏蔽逻辑以及中断控制系统的影响和控制 硬中断包括复位 非屏蔽 和可屏蔽中断 TINT RINT XINT TXRXINT 中断向量表 C2000器件将程序存储器地址为0000 003Fh的64个存储单元作为中断向量表该表为每个中断分配了两个地址单元 用以存放一条两个字的转移指令 IFR IMR ICR寄存器 使用中断时应遵循原则 1 由IRC 中断控制寄存器 IMR 中断屏蔽寄存器 ST0的INTM位决定是否允许中断和允许哪些中断 2 为了使用多

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论