当前位置: 代码迷 >> 综合 >> 中央处理器:指令的执行过程
  详细解决方案

中央处理器:指令的执行过程

热度:66   发布时间:2023-10-14 07:43:37.0

文章目录

    • 指令周期相关概念
    • 指令执行的方案
      • 单指令周期
      • 多指令周期
        • 小结:
      • 流水线方案

指令周期相关概念

CPU从主存中取出并执行一条指令所需要的时间称为指令周期
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作,该阶段所花费的时间称为机器周期(CPU周期)。指令周期常常用若干个机器周期数来表示。
一个完整的指令周期:取指周期、间址周期、执行周期、中断周期

指令执行的方案

用MIPS指令的执行说明(不懂也没关系,知道思想即可)
IF(取指)、ID(译码/取数)、EX(执行)、MEM(访存)、WB(写回)

单指令周期

  • 所有指令的执行周期固定为单一的时钟周期
  • 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
  • 时钟周期由最长的指令周期决定。(因为需要保证完成所有指令的功能。比方说采用R型指令的指令周期作为周期长度,那么LW指令将无法完成取数和存数的功能)
  • 哈佛体系结构:指令存储区和数据存储区分别保存指令和数据

如:R型指令:IF,ID,EX,WB
LW指令:IF,ID,EX,MEM,WB

由此可知,该执行方案会造成时间的损失。因为单周期的设计中,时钟周期对所有的指令等长。而时钟周期由最长的执行路径所决定,一般为取数指令。但是某些指令类型本可以在更短的时间内完成。
解决方案:

  • 采用可变的时钟周期(还是单时钟周期,但是不同类型的指令的时钟周期的长度不同)
    优点:采用可变的时钟周期,时间性能比单周期高
    缺点:但是控制比单周期要复杂和困难,得不偿失。
  • 改进的方案:使用多指令周期

多指令周期

  • 将一条指令的执行拆分成多个步骤,每一个步骤一个时钟周期,则指令的执行周期为多个时钟周期。不同指令的执行步骤不同,则包含的时钟周期数不同。
  • 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
    优点
  • 不同的指令的执行占用不同的时钟周期数
  • 一个功能单元可以在一条指令的执行过程中使用多次,只要不在一个时钟周期
    缺点
    需要添加多个寄存器用来保存个步骤执行的结果

小结:

单周期和多周期的比较:

  • 单周期下的功能部件不能重复使用;多周期可以重复使用
  • 单周期下的执行结果保存在寄存器和存储器中;多周期还需要添加临时的寄存器存放每个步骤的执行结果
  • 单周期的控制信号在指令的执行过程中不会发生改变;多周期的控制信号在指令的执行过程中(每一个周期之后)会发生改变

流水线方案

引言
之前的单周期和多周期处理器的指令执行都是串行方式。在串行方式下,CPU总是在执行完一条指令后才能取出下一条指令执行,没用利用部件的并行性。对此,指令的执行可以采用流水线的方式,将多条指令的执行相互重叠起来,以提高CPU执行指令的效率。