【计算机组成原理】中央处理器(二)—— 指令执行过程

一、指令周期

指令周期:CPU从主存中每取出并执行一条指令所需的全部时间。
指令周期常常用若干机器周期来表示,机器周期又叫CPU周期
一个机器周期又包含若干时钟周期(也称为节拍、T周期或CPU时钟周期,它是CPU操作的最基本单位)。

每个指令周期内机器周期数可以不等,每个机器周期内的节拍数也可以不等。

在这里插入图片描述

指令周期流程在这里插入图片描述

在这里插入图片描述

指令周期的数据流-取指周期

指令周期的数据流-间址周期

指令周期的数据流-执行周期

执行周期的任务是根据IR中的指令字的操作码和操作数通过ALU操作产生执行结果。

不同指令的执行周期操作不同,因此没有统一的数据流向。

指令周期的数据流-中断周期

一个指令周期通常要包括几个时间段(执行步骤),每个步骤完成指令的一部分功能,几个依次执行的步骤完成这条指令的全部功能。

在这里插入图片描述

方案1.单指令周期
对所有指令都选用相同的执行时间来完成 。
指令之间串行执行;指令周期取决于执行时间最
长的指令的执行时间。
对于那些本来可以在更短时间内完成的指令,要
使用这个较长的周期来完成,会降低整个系统的
运行速度。
方案2.多指令周期
对不同类型的指令选用不同的执行步骤来完成 。
指令之间串行执行;可选用不同个数的时钟周期
来完成不同指令的执行过程 。
需要更复杂的硬件设计。

方案3.流水线方案
在每一个时钟周期启动一条指令,尽量让多条指
令同时运行,但各自处在不同的执行步骤中 。
指令之间并行执行。

二、指令流水线

一条指令的执行过程可以分成多个阶段(或过程)。根据计算机的不同,具体的分法也不同。

在这里插入图片描述

取指:根据PC内容访问主存储器,取出一条指令送到IR中。
分析:对指令操作码进行译码,按照给定的寻址方式和地址字段中的内容形成操作数的有效地址 EA,并从有效地址 EA中取出操作数。
执行:根据操作码字段,完成指令规定的功能,即把运算结果写到通用寄存器或主存中。

传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。

设取指、分析、执行3个阶段的时间都相等,用t表示 ,按以下几种执行方式分析 n 条指令的执行时间:

在这里插入图片描述

流水线的表示方法

在这里插入图片描述

流水线的性能指标

  1. 吞吐率
    在这里插入图片描述
    当连续输入的任务 n → ∞ n→∞ n时,得最大吞吐率为 T P m a x = 1 / D △ t TPmax=1/D△t TPmax=1/Dt

  2. 加速比
    在这里插入图片描述

在这里插入图片描述
当连续输入的任务 n → ∞ n→∞ n时,最高效率为 E m a x = 1 E_{max}=1 Emax=1

指令流水线影响因素分类

流水线每一个功能段部件后面都要有一个缓冲
寄存器,或称为锁存器, 其作用是保存本流水段
的执行结果,提供给下一流水段使用。

在这里插入图片描述

影响流水线的因素

  1. 结构相关(资源冲突)
  2. 数据相关(数据冲突)
  3. 控制相关(控制冲突)

1. 结构相关(资源冲突)

由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。

在这里插入图片描述

解决办法:
1.后一相关指令暂停一周期
2.资源重复配置:数据存储器+指令存储器

2. 数据相关(数据冲突)

数据相关指在一个程序中,存在必须等前一条指令执行完才能执行后一条指令的情况,则这两条指令即为数据相关。

在这里插入图片描述

解决办法:

  1. 把遇到数据相关的指令及其后续指令都暂停一至几个时钟周期,直到数据相关问题消失后再继续执行。可分为硬件阻塞(stall)和软件插 入“NOP”两种方法。
  2. 数据旁路技术
  3. 编译优化:通过编译器调 整指令顺序来解决数据相关。

3. 控制相关(控制冲突)

当流水线遇到转移指令和其他改变PC值的指令而造成断流时,会引起控制相关。

在这里插入图片描述

解决办法:
1.尽早判别转移是否发生,尽早生成转移目标地址
2.预取转移成功和不成功两个控制流方向上的目标指令
3.加快和提前形成条件码
4.提高转移方向的猜准率

在这里插入图片描述

流水线的分类

1.部件功能级、处理机级和处理机间级流水线

根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。

部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶
差、对阶、尾数相加以及结果规格化等4个子过程。

处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5 个子过程。

处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放
在与下一个处理机所共享的存储器中。
2.单功能流水线和多功能流水线
按流水线可以完成的功能,流水线可分为单功能流水线和多功能流水线。

单功能流水线指只能实现一种固定的专门功能的流水线;

多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
3.动态流水线和静态流水线
按同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。

静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。

动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样
对提高流水线的效率很有好处,但会使流水线控制变得很复杂。

4.线性流水线和非线性流水线
按流水线的各个功能段之间是否有反馈信号,流水线可分为线性流水线与非线性流水线。

线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。

非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线
适合进行线性递归的运算。

流水线的多发技术

  1. 超标量技术

在这里插入图片描述
每个时钟周期内可 并发多条独立指令
不能调整 指令的 执行顺序
要配置多个功能部件
通过编译优化技术,把可并行执行的指令搭配起来

  1. 超流水技术

在这里插入图片描述

在 一个时钟周期 内 再分段 ( 3 段)
不能调整 指令的 执行顺序
在一个时钟周期内 一个功能部件使用多次( 3 次)
靠编译程序解决优化问题

  1. 超长指令字

在这里插入图片描述

由 编译程序挖掘 出指令间 潜在 的 并行性, 将 多条 能 并行操作 的指令组合成 一条
具有 多个操作码字段 的 超长指令字(可达几百位)
采用 多个处理部件

在这里插入图片描述

五段式指令流水线

在这里插入图片描述
只有上一条指令进入ID段后,下一条指令才能开始IF段,否则会覆盖IF段锁存器的内容

常见的五类指令:
• 运算类指令、LOAD指令、STORE指令、条件转移指令、无条件转移指令

运算类指令的执行过程

在这里插入图片描述

LOAD 指令的执行过程

在这里插入图片描述

STORE指令的执行过程

在这里插入图片描述

条件转移指令的执行过程

在这里插入图片描述

无条件转移指令的执行过程

在这里插入图片描述

例题

在这里插入图片描述

  • 2
    点赞
  • 17
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

何为xl

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值