指令周期

基本概念

冯诺依曼机,即存储程序式计算机,在程序运行前需要把程序和数据放入内存

执行程序流程:

  1. 把程序首地址送入PC

  2. 从内存cache中取指,执行,并形成下一条指令的地址

  3. 自动执行直到程序的最后一条指令

也就是“取指-执行”的循环

指令周期是指“取指令、分析指令并执行指令所需的总时间

由于各种指令功能不同,所以各种指令的周期长度可能不同

三个周期:

  • 时钟周期,处理操作的基本单位,也称为节拍脉冲或T周期

  • CPU周期,也称机器周期,指从内存中读取一个指令字的最短时间,通常包含若干个时钟周期

  • 指令周期通常包含若干个CPU周期

指令周期

RR型指令举例 - MOV指令的指令周期

不同的CPU结构会影响指令周期

本例中使用的CPU模型如下

5-4

MOV的指令周期如下:

5-2

MOV指令是RR型指令,只有取指需要访存,所以只要两个CPU周期即可。一个CPU周期取指(回忆-CPU周期是从内存取出一个指令字的最短时间),另一个周期执行。执行不需要访存,寄存器之间的操作非常迅速,所以会在一个CPU周期内完成。而指令周期的最小单位是CPU周期,所以MOV需要两个完整的CPU周期

取指周期图示:

5-4

取指阶段:

  1. 根据PC从内存中取出指令

  2. 指令译码或测试(逻辑电路而非时序电路,不花费时间)

  3. PC+1

对应的操作:

  • PC -> ABUS(I)

  • IBUS ->IR

  • PC + 1

RS型指令举例 - LAD指令的指令周期

LAD指令为RS型指令,需要三个CPU周期

5-3
  1. 所有指令的取指阶段都是一样的,取指花费一个CPU周期

  2. 把指令中的地址字段交给地址寄存器AR。此过程不访存,花费不到一个CPU周期,但是数据通过DBUS到达AR,占用了总线,所以按照一个CPU周期计算

  3. 从内存中取出数据到DR(回忆-DR为数据缓冲寄存器,几乎一切数据都要经过DR再到目的地),通过DBUS,需要一个完整的CPU周期

  4. DR把数据交给通用寄存器R0,不访存,不使用总线,花费不到一个CPU周期,可以和上面的操作一起完成

各指令的指令周期小结

判断一个过程是否占用一整个CPU周期,判断依据1:有没有访存,因为每次访存会消耗一个CPU周期;判断依据2:有没有多个操作占用同一条总线。如果有则把两个操作放置到两个CPU周期中。无总线冲突且不访存的操作可以和前面的访存操作合并在一个CPU周期中

取指操作中在把指令放入指令寄存器/指令译码器之后要等待下一个CPU周期来执行指令

用方框图语言表示的指令周期

  • 方框:按CPU周期(方框内内容——数据通路操作或控制操作)

  • 菱形框:判别或测试

  • 流线:表示指令的运行顺序

  • ~:公操作

如下图为例: 第一个方框为取值周期,需要一个CPU周期。菱形框译码,判别是下面五个指令中的哪个。其中LAD和STO指令为RS型指令,需要两个CPU周期进行执行。

双总线结构机器的数据通路图:

有A、B总线,通过微操作信号(如 𝑃𝐶𝑖,𝐼𝑅𝑖,𝐼𝑅0 等),中间的部件与总线相连形成数据通路,微操作信号为高电平表示该部件与对应总线相连(如𝐼𝑅𝑖为1表示IR部件和A总线互通),最右边的G的电平为1表示AB总线相连。

指令执行过程的微操作信号(每个方框右边)如下:

时序产生器

如何识别二进制码是指令还是数据?如果是取指阶段读出的那就是指令,如果是执行阶段读出的那就是数据。被送往指令寄存器的是指令,被送往运算器的是数据

时序信号产生器的组成

  • 时钟源

  • 环形脉冲发生器

  • 节拍脉冲和读写时序的译码

  • 启停控制逻辑

结构框图:

5-8

输出信号:

5-9

启停控制逻辑的控制方式

  • 同步控制方式

任何情况下各指令执行时所需的机器周期数和时钟周期数固定不变

  • 异步控制方式

每条指令或操作按需占用时间。需要使用应答机制。没有时间上的浪费,但是控制复杂

  • 联合控制方式

结合以上两种控制方式。大部分操作序列安排在固定的机器周期中。个别的难以确定的操作则以执行部件的“应答”信号作为操作的结束

Last updated

Was this helpful?