DSP学习 3)时钟及系统控制.pptVIP

  • 9
  • 0
  • 约1.19万字
  • 约 42页
  • 2019-12-02 发布于湖北
  • 举报
一、时钟及系统控制 二、程序地址产生 三、转移、调用和返回 四、重复指令 通用定时器 配置CPU定时器 2、看门狗及其应用 看门狗模块框图 看门狗控制寄存器WDCR 使能/屏蔽看门狗模块 系统控制和状态寄存器SCSR 看门狗复位寄存器WDKEY 看门狗计数寄存器WDCNTR 初始化系统控制 ▲ 顺序操作:程序的地址来源于PC程序计数器(程序地址+1) ▲ 空(哑)周期:程序的地址来源于PAR (程序地址+1) ▲ 从子程序返回:程序的地址来源于栈顶(TOS) ▲ 从表传送或块传送返回:程序的地址来源于微堆栈(MSTACK) ▲ 转移到或调用指令中指定的地址:程序的地址来源于转移或调用指 令。即利用程序读总线(PRDB)的方式获取程序地址。 ▲ 转移到或调用累加器低半部分指定的地址:程序地址来源于累加 器的低半部分。即利用数据读总线(DRDB)的方式获取程序地址。 ▲ 转移到中断服务程序:程序地址来源于中断矢量单元。即利用程序读总 线 ( PRDB)的方式获取程序地址。 程序地址产生的情况 二、程序地址的产生 第2章 CPU内部结构与时钟系统 程序计数器 PC ▲ PC中存放将被执行的下一条指令的地址。 ▲ 有5种方式加载PC,从而适应连续和不连续的程序流程。 二、程序地址的产生 第2章 CPU内部结构与时钟系统 √ 顺序执行:若当前指令是一个字,则将PC+1加载到PC 若当前指令是两个字,则将PC+2加载到PC √分支(转移):转移指令后的长立即数直接加载到PC √子程序调用和返回 : 调用指令 —— 将PC中下一条指令的地址压入堆栈,然后将调用指令后的长 立即数直接加载到PC 返回指令 —— 将返回地址从堆栈中弹回PC √软件或硬件中断:将相应的中断矢量地址装入PC,在该矢量地址单元,通 常有一条转移指令,又将相应的中断服务程序的地址加载到PC √计算转移:将累加器低16位加载到PC 利用BACC或CALA指令可实现计算GOTO操作 程序计数器 PC 二、程序地址的产生 第2章 CPU内部结构与时钟系统 ▲ 16位宽、8级深 ▲ 当调用子程序或发生中断时,程序地址产生逻辑利用 该堆栈保存返回地址 ▲ 进入子程序或中断服务程序时,返回地址自动装入该 堆栈的栈顶;当子程序或中断服务程序完成时,返回 指令将返回地址从栈顶传送到程序计数器。 ▲ 访问堆栈的指令 √ PUSH和POP:针对累加器低16位操作。 √ PSHD和POPD:当子程序或中断嵌套超过8级时可利用这两条指令在 数据存储区中建立一个堆栈。 堆 栈 二、程序地址的产生 第2章 CPU内部结构与时钟系统 堆 栈 例 子 二、程序地址的产生 第2章 CPU内部结构与时钟系统 堆栈例子 二、程序地址的产生 第2章 CPU内部结构与时钟系统 ▲ 一级深、16位宽,操作不可见,即无指令,只有程序 地址产生逻辑才能够使用微堆栈。 ▲ 程序地址产生逻辑在执行BLDD、BLPD、MAC、MACD、 TBLR 和TBLW 这些串(块)操作指令时利用微堆栈保 存返回地址。 微 堆 栈 二、程序地址的产生 第2章 CPU内部结构与时钟系统 , 二、程序地址的产生 流 水 线 技 术 ▲ 下面给出了一个四级深流水线操作图。同时执行四条 指令,但每一条指令处于不同的阶段 单字、单周期指令4级流水线操作 第2章 CPU内部结构与时钟系统 二、程序地址的产生 流 水 线 技 术 对F2812每条指令都要经过8个独立的执行过程,这8个过程形成了指令流水线(instruction pipeline)。在每一个给定的时间内,有8条指令被激活,每一指令处在执行过程中的不同阶段。并不是所有的指令都会同时发生读写操作,但是流水线的保护机制能够按照需要去延迟指令,以确保根据程序控制顺序对同一位置进行读写操作。 第2章 CPU内部结构与时钟系统 ▲ 转移仅使控制转换到新的地址单元 ▲ 调用还要将返回地址保存到硬件堆栈的栈顶 ▲ 返回指令将堆栈中的返回地址弹到程序计数器(PC) —— 每个被调用的子程序或中断服务程序都以返回指令结束。 三、转移、调用和返回 无条件指令 ▲

您可能关注的文档

文档评论(0)

1亿VIP精品文档

相关文档