【【计算机组成原理】中央处理器(二)—— 指令执行过程
【【计算机组成原理】中央处理器(二)—— 指令执行过程
- 指令周期
- 指令周期的数据流-取指周期
- 指令周期的数据流-间址周期
- 指令周期的数据流-执行周期
- 指令周期的数据流-中断周期
- 指令流水线
- 流水线的表示方法
- 流水线的性能指标
- 指令流水线影响因素分类
- 1. 结构相关(资源冲突)
- 2. 数据相关(数据冲突)
- 3. 控制相关(控制冲突)
- 流水线的分类
- 五段式指令流水线
- 运算类指令的执行过程
- LOAD 指令的执行过程
- STORE指令的执行过程
- 条件转移指令的执行过程
- 无条件转移指令的执行过程
- 例题
指令周期
指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期。
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。
每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。
指令周期流程
指令周期的数据流-取指周期
指令周期的数据流-间址周期
指令周期的数据流-执行周期
执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。
不同指令的执行周期操作不同,因此没有统一的数据流向。
指令周期的数据流-中断周期
一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。
方案1.单指令周期
对所有指令都选用相同的执行时间来完成 。
指令之间串行执行;指令周期取决于执行时间最
长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要
使用这个较长的周期来完成,会降低整个系统的
运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成 。
指令之间串行执行;可选用不同个数的时钟周期
来完成不同指令的执行过程 。
需要更复杂的硬件设计。
方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指
令同时运行,但各自处在不同的执行步骤中 。
指令之间并行执行。
指令流水线
一条指令的执行过程可以分成多个阶段(或过程)。根据计算机的不同,具体的分法也不同。
取指:根据PC内容访问主存储器,取出一条指令送到IR中。
分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址 EA,并从有效地址 EA中取出操作数。
执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。
设取指、分析、执行3个阶段的时间都相等,用t表示 ,按以下几种执行方式分析 n 条指令的执行时间:
流水线的表示方法
流水线的性能指标
-
吞吐率
当连续输入的任务 n → ∞ n→∞ n→∞时,得最大吞吐率为 T P m a x = 1 / D △ t TPmax=1/D△t TPmax=1/D△t。 -
加速比
当连续输入的任务
n
→
∞
n→∞
n→∞时,最高效率为
E
m
a
x
=
1
E_{max}=1
Emax=1。
指令流水线影响因素分类
流水线每一个功能段部件后面都要有一个缓冲
寄存器,或称为锁存器, 其作用是保存本流水段
的执行结果,提供给下一流水段使用。
影响流水线的因素
- 结构相关(资源冲突)
- 数据相关(数据冲突)
- 控制相关(控制冲突)
1. 结构相关(资源冲突)
由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
解决办法:
1.后一相关指令暂停一周期
2.资源重复配置:数据存储器+指令存储器
2. 数据相关(数据冲突)
数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。
解决办法:
- 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插 入“NOP”两种方法。
数据旁路技术
。- 编译优化:通过编译器调 整指令顺序来解决数据相关。
3. 控制相关(控制冲突)
当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。
解决办法:
1.尽早判别转移是否发生,尽早生成转移目标地址
2.预取转移成功和不成功两个控制流方向上的目标指令
3.加快和提前形成条件码
4.提高转移方向的猜准率
流水线的分类
1.部件功能级、处理机级和处理机间级流水线
根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。
部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶
差、对阶、尾数相加以及结果规格化等4个子过程。
处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5 个子过程。
处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放
在与下一个处理机所共享的存储器中。
2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。
单功能流水线指只能实现一种固定的专门功能的流水线;
多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
3.动态流水线和静态流水线
按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。
静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样
对提高流水线的效率很有好处,但会使流水线控制变得很复杂。
4.线性流水线和非线性流水线
按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。
线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线
适合进行线性递归的运算。
流水线的多发技术
- 超标量技术
每个时钟周期内可 并发多条独立指令
不能调整 指令的 执行顺序
要配置多个功能部件
通过编译优化技术,把可并行执行的指令搭配起来
- 超流水技术
在 一个时钟周期 内 再分段 ( 3 段)
不能调整 指令的 执行顺序
在一个时钟周期内 一个功能部件使用多次( 3 次)
靠编译程序解决优化问题
- 超长指令字
由 编译程序挖掘 出指令间 潜在 的 并行性, 将 多条 能 并行操作 的指令组合成 一条
具有 多个操作码字段 的 超长指令字(可达几百位)
采用 多个处理部件
五段式指令流水线
只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容
常见的五类指令:
• 运算类指令、LOAD指令、STORE指令、条件转移指令、无条件转移指令