9 计算机组成原理第五章 中央处理器 指令流水线

文章目录

      • 1 指令流水线基本概念性能指标
        • 1.1 指令流水的定义
            • 1.1.1 指令分法
            • 1.1.2 指令执行时间
        • 1.2 流水线的表示方法
        • 1.3 流水线的性能指标
      • 2 指令流水线影响因素分类
        • 2.1 机器周期的设置
        • 2.2 影响流水线的因素
            • 2.2.1 数据相关(数据冲突)三种类型
            • 2.2.2 流水线影响因素小结
        • 2.3 流水线的分类
        • 2.4 流水线的多发技术
        • 2.5 指令流水线小结

1 指令流水线基本概念性能指标

1.1 指令流水的定义

1.1.1 指令分法

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

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

以上分法特点是:每个阶段用到的硬件不一样。

1.1.2 指令执行时间

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

  1. 顺序执行方式
    总耗时 T=nx3t=3nt

在这里插入图片描述
传统冯·诺依曼机采用顺序执行方式,又称串行执行方式。

优点:控制简单,硬件代价小。
缺点:执行指令的速度较慢,在任何时刻,处理机中只有一条指令在执行,各功能部件的利用率很低。

  1. 一次重叠执行方式
    总耗时T=3t+(n-1)×2t=(1+2n)t 只有第一条指令3t,后面n-1条每隔2t

在这里插入图片描述

优点:程序的执行时间缩短了1/3,各功能部件的利用率明显提高。
缺点:需要付出硬件上较大开销的代价,控制过程也比顺序执行复杂了。

  1. 二次重叠执行方式
    总耗时T=3t+(n-1)×t=(2+n)t 只有第一条指令3t,后面n-1条每隔t

在这里插入图片描述

与顺序执行方式相比,指令的执行时间缩短近2/3。这是一种理想的指令执行方式,在正常情况下,处理机中同时有3条指令在执行。

注:也可以把每条指令的执行过程分成4个或5个阶段,分成5个阶段是比较常见的做法。

1.2 流水线的表示方法

  1. 指令执行过程图

在这里插入图片描述

主要用于分析指令执行过程以及影响流水线的因素
  1. 时空图

在这里插入图片描述
不同的阶段占用不同的资源,有几个阶段,纵坐标就有几个位置

主要用于分析流水线的性能

1.3 流水线的性能指标

(1)吞吐率
(2)加速比
(3)效率

  1. 吞吐率
  • 吞吐率是指在单位时间内流水线所完成的任务数量,或是输出结果的数量。
  • 设任务数为n;处理完成n个任务所用的时间为Tk
  • 则计算流水线吞吐率(TP)的最基本的公式为TP=n/Tk

理想情况下,流水线的时空图如下:

理想情况:

各阶段花费时间相同
每个阶段结束后能立即进入下一阶段在这里插入图片描述
一条指令的执行分为k个阶段,每个阶段耗时Δt,一般取Δt=一个时钟周期

Tk=(k+n-1)Δt
第一条指令kΔt时间结束,其余n-1条指令每隔Δt时间执行
流水线的实际吞吐率为TP=n /(k+n-1)Δt

当连续输入的任务n→oo时,得最大吞吐率为TPmax=1/Δt

在这里插入图片描述

  • 第一条指令执行的时间→装入时间
  • 最后一条指令从输入到执行完成的时间→排空时间
  • 装入时间和排空时间中间的那块时间,流水线是最理想的状态,每一个时刻,每个功能部件都被占用,并且可以保证每隔Δt时间就有一个任务被提交
  1. 加速比
  • 加速比表示完成同样一批任务,不使用流水线所用的时间与使用流水线所用的时间之比。

设 To 表示不使用流水线时的执行时间,即顺序执行所用的时间;
Tk 表示使用流水线时的执行时间
则计算流水线加速比(S)的基本公式为S=To / Tk

单独完成一个任务耗时为kΔt,则顺序完成n个任务耗时To=nkΔt

Tk=(k+n-1)Δt
实际加速比为S=knΔt/(k+n-1)Δt =kn/ k+n-1

当连续输入的任务n→oo时,最大加速比为Smax=k。
表示一个充分流动的流水线,它的工作能力是原来不使用流水线的k倍

  1. 效率
  • 流水线的设备利用率称为流水线的效率。
  • 在时空图上,流水线的效率定义为完成n个任务占用的时空区有效面积与n个任务所用的时间与k个流水段所围成的时空区总面积之比。

在这里插入图片描述
在这里插入图片描述
效率转化为:顺序完成n个任务耗时To=nkΔt/k倍使用流水线的时间

  • 效率=红/蓝 表示使用的设备占所有总设备的比率
    总=长TkX宽k

当连续输入的任务n→oo时,最高效率为Emax=1。

2 指令流水线影响因素分类

2.1 机器周期的设置

在这里插入图片描述
为方便流水线的设计,将每个阶段的耗时取成一样,以最长耗时为准。
即此处应将机器周期设置为100ns。

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

在这里插入图片描述
设置锁存器的目的:设计流水线时,在这条指令处于当前阶段时,另一条指令是在用下一阶段的资源,如果这条指令这一阶段数据提前流入下一阶段,会破坏当前指令的指令

2.2 影响流水线的因素

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

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

由于多条指令在同一时刻争用同一资源而形成的冲突称为结构相关。
在这里插入图片描述

解决办法:

  1. 后一相关指令暂停一周期
  2. 资源重复配置:数据存储器+指令存储器
  1. 数据相关(数据冲突)

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

解决办法:

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

数据相关(数据冲突)例题

假设某指令流水线采用“按序发射(即不能把后面的指令移到前面执行,如果发生冲突,只能等待),按序完成”方式,没有采用转发技术(也叫数据旁路技术)处理数据相关,并且同一寄存器的读和写操作不能在同一个时钟周期内进行。若高级语言程序中某赋值语句为x=a+b,x、ab均为int型变量,它们的存储单元地址分别表示为[x]、[a][b]。该语句对应的指令序列及其在指令流中的执行过程如下图所示。
在这里插入图片描述

I1 I2 I3 I4指令表示含义:
在这里插入图片描述
解答:I3与I1和I2存在数据相关,I4和I3存在数据相关

说明:对于相关的指令而言,只有等到相关的数据写回之后,才可以开始这条指令的译码,取指有序进行,取指结束发现相关,是译码阶段被延迟

2.2.1 数据相关(数据冲突)三种类型

数据的基本操作:读(R)、写(W)
冲突的基本类型:RAW(A代表after,倒过来念,写后读)、WAR(读后写)、WAW(写后写)
在这里插入图片描述

注:“按序发射,按序完成”时,只可能出现RAW相关。

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

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

解决办法:

  1. 尽早判别转移是否发生,尽早生成转移目标地址
  2. 预取转移成功和不成功两个控制流方向上的目标指令
  3. 加快和提前形成条件码
  4. 提高转移方向的猜准率
2.2.2 流水线影响因素小结

在这里插入图片描述

2.3 流水线的分类

  1. 部件功能级、处理机级和处理机间级流水线
  • 根据流水线使用的级别的不同,流水线可分为部件功能级流水线、处理机级流水线和处理机间流水线。
  • 部件功能级流水就是将复杂的算术逻辑运算组成流水线工作方式。例如,可将浮点加法操作分成求阶差、对阶、尾数相加以及结果规格化等4个子过程。
  • 处理机级流水是把一条指令解释过程分成多个子过程,如前面提到的取指、译码、执行、访存及写回5个子过程。
  • 处理机间流水是一种宏流水,其中每一个处理机完成某一专门任务,各个处理机所得到的结果需存放在与下一个处理机所共享的存储器中。
  1. 单功能流水线和多功能流水线
  • 按流水线可以完成的功能、流水线可分为单功能流水线和多功能流水线。
  • 单功能流水线指只能实现一种固定的专门功能的流水线;
  • 多功能流水线指通过各段间的不同连接方式可以同时或不同时地实现多种功能的流水线。
  1. 动态流水线和静态流水线
  • 同一时间内各段之间的连接方式,流水线可分为静态流水线和动态流水线。
  • 静态流水线指在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
  • 动态流水线指在同一时间内,当某些段正在实现某种运算时,另一些段却正在进行另一种运算。这样对提高流水线的效率很有好处,但会使流水线控制变得很复杂。

4.线性流水线和非线性流水线

  • 按流水线的各个功能段之间是否有反馈信号,流永线可分为线性流水线与非线性流水线。
  • 线性流水线中,从输入到输出,每个功能段只允许经过一次,不存在反馈回路。
  • 非线性流水线存在反馈回路,从输入到输出过程中,某些功能段将数次通过流水线,这种流水线适合进行线性递归的运算。

2.4 流水线的多发技术

  1. 超标量技术

在这里插入图片描述

每个时钟周期内可并发多条独立指令
要配置多个功能部件
不能调整指令的执行顺序

通过编译优化技术,把可并行执行的指令搭配起来

  1. 超流水技术

在这里插入图片描述

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

超流水技术特点:流水线速度是原来速度的3倍

  1. 超长指令字

在这里插入图片描述

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

2.5 指令流水线小结

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/482225.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

【赛迪智库】美国允许自动驾驶汽车取消方向盘对我国L4级自动驾驶的影响

来源:赛迪智库日前,美国国家公路交通安全管理局(NHTSA)发布了最终版的《无人驾驶汽车乘客保护规定》,其中对于由自动驾驶系统操作的车辆将不被要求配备传统方向盘等手动控制装置。新规有望促进美国L4级自动驾驶汽车商业…

10 计算机组成原理第六章 总线 总线的概念与分类 总线性能指标 总线仲裁 总线操作和定时 总线标准

文章目录1 总线的概念与分类1.1总线的定义1.2 总线的特点1.3 总线的特性1.4 总线的分类1.4.1 串行总线与并行总线1.4.2 按总线功能分类1.5 系统总线的结构1.6 总线概念与分类小结2 总线的性能指标2.1 性能指标分析2.2 总线性能指标小结3 总线仲裁3.1 总线仲裁的基本概念3.2 集中…

远程操控大脑?科学家成功利用近红外线控制老鼠的行为

GETTY IMAGES来源: IEEE电气电子工程师近日,科学家首次发明了一种非侵入性的方法来控制大脑回路——大脑中的神经元群,它们共同执行一项特定任务,成功完成了让实验室动物从远处自由移动。这项将近红外光射入大脑的新技术&#xff…

3 计算机组成原理第三章 存储系统 主存简单模型及寻址 半导体寄存器 存储器分类 主存与CPU连接 双口RAM和多模块寄存器

文章目录1 主存简单模型及寻址的概念1.1 主存储器1.1.1 存储器芯片的基本结构1.1.2 寻址2 半导体存储器2.1 半导体随机存取存储器2.1.1 DRAM的刷新2.1.2 SRAM的读周期2.1.3 SRAM的写周期2.1.4 RAM-易失性存储器2.2 ROM2.2.1 ROM分类2.2.2 半导体随机存储器小结3 存储器分类3.1 …

GPT-4 即将亮相?聊聊目前已知的一切

来源:AI 前线作者:Alberto RomeroGPT-3 首度亮相于大约两年之前的 2020 年 5 月,当时正值 GPT-2 发布的一年之后。而 GPT-2 距离最初 GPT 研究论文的发表也是相隔一年。如果这种周期性趋势继续保持不变,那 GPT-4 肯定也快跟大家见…

全职加入清华,丘成桐:为祖国、为全球数学界培养数学人才

王希勤校长为丘先生颁发聘书(照片来源:清华大学)来源:数据实战派4 月 20 日,清华大学宣布,“菲尔兹奖”首位华人得主丘成桐从哈佛大学退休,受聘清华大学讲席教授,将全职任教清华。清…

11 计算机组成原理第七章 输入/输出系统 I/O系统基本概念 外部设备

文章目录1 I/O系统基本概念1.1 I/O系统演变过程1.2 I/O系统基本组成1.3 I/O方式简介1.4 I/O系统基本概念小结2 外部设备1-输入设备 输出设备2.1 外部设备2.2 输入设备2.3 输出设备2.3.1 显示器2.3.2 打印机2.4 输出设备小结3 外部设备2-外存储器3.1 外存储器3.2 磁盘存储器3.2.…

重庆大学刘礼:因果学习与应用

来源:AI科技评论作者:刘礼编辑:维克多因果学习作为人工智能领域研究热点之一,其研究进展与成果也引发了众多关注。4月9日,在AI TIME青年科学家——AI 2000学者专场论坛上,重庆大学大数据与软件学院教授刘礼…

12 计算机组成原理第七章 输入/输出系统 中断系统

文章目录1 中断的基本概念2 中断请求的分类3 中断请求标记4 中断判优-实现5 中断处理过程5.1 中断处理过程-中断隐指令5.2 中断处理过程-硬件向量法5.3 中断处理过程-中断服务程序6 单重中断与多重中断6.1 单重中断与多重中断比较7 中断屏蔽技术中断屏蔽字例题8 中断系统小结1 …

神经形态计算的物理学

来源: 集智俱乐部作者:张晓雨编辑:邓一雪 摘要神经形态计算(neuromorphic computing)从脑科学汲取灵感来为信息处理创造节能硬件,并能适应高度复杂的任务。2020年发表在 Nature Reviews Physics 上的一篇文…

13 计算机组成原理第七章 输入/输出系统 I/O方式 I/O接口

文章目录1 I/O接口1.1 接口定义1.2 I/O接口的功能(以单总线为例)1.3 I/O接口的基本结构1.4 接口与端口1.5 I/O端口及其编址1.6 I/O接口的类型1.7 I/O接口小结2 I/O方式2.1 I/O方式1-程序查询方式2.1.1 程序查询方式流程图2.1.2 程序查询方式接口2.1.3 程…

参与全球人工智能创新链竞争

来源:社科院工业经济研究所作者:郭朝先,中国社会科学院工业经济研究所研究员、产业组织研究室主任、中国社会科学院大学教授、博士生导师、中国可持续发展研究会理事;方澳,中国社会科学院大学经济学院。本文首发《经济…

4 计算机组成原理第三章 存储系统 高速缓冲存储器 虚拟存储器

文章目录1 局部性原理性能分析2 Cache工作原理(简易版)3 地址映射4 替换算法4.1 替换算法(十进制)举例4.2 Cache工作原理(加强版)4.2.1写策略-命中4.2.2 写策略-未命中4.3 替换算法(二进制&…

CICC城市大脑专委会获批成立,欢迎参加专委会共同探索和研究

CICC 城市大脑专委会中国指挥与控制学会(CICC)是经国家民政部正式注册的我国指挥与控制科学技术领域的国家一级学会,是全国性科技社会组织;是中国科学技术协会的正式团体会员,接受中国科学技术协会的直接领导&#xff…

讲座文稿 | 人工智能与因果推理

来源:本文为中国人民大学明德讲坛第23期暨服务器艺术人工智能哲学第11期讲座文稿。主持人:朱锐 嘉宾:邱德钧、秦曾昌、Vincent Luizzi、袁园 主办:中国人民大学哲学与认知科学跨学科交叉平台、服务器艺术 协办:神经现…

顺序栈的介绍及实现

1 栈 从数据结构角度来讲,栈也是线性表,其操作是线性表操作的子集,属操作受限的线性表。 但从数据类型的角度看,它们是和线性表大不相同的重要抽象数据类型。 ◆ 栈是只准在一端进行插入和删除操作的线性表,该端称为栈…

内排序算法一览

文章目录1 插入排序2 希尔(shell)排序3 冒泡排序4 快速排序5 选择排序6 堆排序7 归并排序8 内排序代码一览运行结果常用排序算法时间复杂度和空间复杂度一览表排序:将一组杂乱无章的数据按一定的规律顺次排列起来,可以看作是线性表的一种操作…

Nature:神经元在大脑中的起点并不一定是它们的终点

来源:生物通虽然人体有30亿个DNA碱基和超过30万亿细胞,格里森和他的同事们发现只有几百DNA突变可能出现在头几个细胞分裂后的受精胚胎或在大脑的早期发展。通过在死者的大脑中跟踪这些突变,他们第一次能够重建人类大脑的发育。胎儿大脑的发育…

扎克伯格Meta元宇宙被质疑:年均烧百亿美元,货要等十年

来源:新智元公司内部业务混乱、公司外部观感酷似曾经的雅虎,这些与扎克伯格的元宇宙发力结合在一起,让Meta的新老员工都怨声载道。不少Meta的员工,现在都在抱怨老板的元宇宙项目顾头不顾腚、在公司内部徒增业务困扰但并无法带来收…

链栈的介绍与实现

文章目录1 链栈定义2 链栈基本操作3 链栈代码实现1 链栈定义 链栈:采用链式存储的栈称为链栈 在一个链栈中,栈底就是链表的最后一个结点,而栈顶总是链表的第一个结点。因此,新入栈的元素即为链表新的第一个结点,只要…