文章目录
-
- 指令周期相关概念
- 指令执行的方案
-
- 单指令周期
- 多指令周期
-
- 小结:
- 流水线方案
指令周期相关概念
CPU从主存中取出并执行一条指令所需要的时间称为指令周期。
在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作,该阶段所花费的时间称为机器周期(CPU周期)。指令周期常常用若干个机器周期数来表示。
一个完整的指令周期:取指周期、间址周期、执行周期、中断周期
指令执行的方案
用MIPS指令的执行说明(不懂也没关系,知道思想即可)
IF(取指)、ID(译码/取数)、EX(执行)、MEM(访存)、WB(写回)
单指令周期
- 所有指令的执行周期固定为单一的时钟周期
- 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
- 时钟周期由最长的指令周期决定。(因为需要保证完成所有指令的功能。比方说采用R型指令的指令周期作为周期长度,那么LW指令将无法完成取数和存数的功能)
- 哈佛体系结构:指令存储区和数据存储区分别保存指令和数据
如:R型指令:IF,ID,EX,WB
LW指令:IF,ID,EX,MEM,WB
由此可知,该执行方案会造成时间的损失。因为单周期的设计中,时钟周期对所有的指令等长。而时钟周期由最长的执行路径所决定,一般为取数指令。但是某些指令类型本可以在更短的时间内完成。
解决方案:
- 采用可变的时钟周期(还是单时钟周期,但是不同类型的指令的时钟周期的长度不同)
优点:采用可变的时钟周期,时间性能比单周期高
缺点:但是控制比单周期要复杂和困难,得不偿失。 - 改进的方案:使用多指令周期
多指令周期
- 将一条指令的执行拆分成多个步骤,每一个步骤一个时钟周期,则指令的执行周期为多个时钟周期。不同指令的执行步骤不同,则包含的时钟周期数不同。
- 指令之间串行完成,即下一条指令只能在前一条指令结束之后启动。
优点 - 不同的指令的执行占用不同的时钟周期数
- 一个功能单元可以在一条指令的执行过程中使用多次,只要不在一个时钟周期
缺点
需要添加多个寄存器用来保存个步骤执行的结果
小结:
单周期和多周期的比较:
- 单周期下的功能部件不能重复使用;多周期可以重复使用
- 单周期下的执行结果保存在寄存器和存储器中;多周期还需要添加临时的寄存器存放每个步骤的执行结果
- 单周期的控制信号在指令的执行过程中不会发生改变;多周期的控制信号在指令的执行过程中(每一个周期之后)会发生改变
流水线方案
引言
之前的单周期和多周期处理器的指令执行都是串行方式。在串行方式下,CPU总是在执行完一条指令后才能取出下一条指令执行,没用利用部件的并行性。对此,指令的执行可以采用流水线的方式,将多条指令的执行相互重叠起来,以提高CPU执行指令的效率。