系统结构复习之流水线


书中叫标量处理机,下章叫向量处理机,主要区分在于处理的是一个数据还是一组数据。

重叠方式

顺序执行

指令执行过程:取指令、 分析 、执行。依次进行。

一次重叠

三个动作中有一个动作是重叠的,称一次重叠。程序的执行时间减少了近1/3

二次重叠

执行时间缩短了2/3.部件利用率有了进一步提高。
二次重叠方式其实就是流水线。

流水线

流水线基本概念(时间重叠)

时空图来描述流水线

横坐标,时间,计算机的周期
纵坐标,空间,物理上一共有几级流水线

时空图另一种表示

横坐标,还是时间
纵坐标,指的是指令
中间内容,表示这条指令处于的流水线的级别

MIPS五级流水线

取指、译码、执行、存储器访问、写回

流水线特点

  1. 功能部件 - 锁存器
  2. 独立工作的各子功能部件
  3. 各部件处理时间尽可能相等,争取最大工作频率
  4. 解决同步问题,保证以相同的速度处理
  5. 解决访存冲突,允许不同指令同时读,同时写。

流水线分类

按处理级别

分为操作流水线,指令流水线,宏流水线

指令流水线

处理的是指令,从取指到结果

操作级流水线

对指令操作,再进一步细分

宏流水线

通过不同机器完成细分的任务(不是指令了)。

按功能多少

单功能,只完成固定功能
多功能:配置下,可完成不同功能。

多功能,按同一时间内各段之间的连接方式

静态流水线:同一时间内,多功能只能按一种功能方式工作
动态流水线:同一时间内,可以处理多种功能。

流水线结构

线性流水线:不带反馈回路的流水线
非线性流水线:带反馈回路流水线。

控制方式

同步流水线:有共同的时钟,大部分流水线都是同步的。
异步流水线:如宏流水线

其他方式

按处理的数据类型

标量流水线和向量流水线

按任务从输出端的流出顺序

顺序流水线:指令流出顺序=指令流入顺序
乱序流水线:指令流出指令!=指令流入顺序

性能分析

吞吐率

单位时间内流水线完成的任务数或输出结果数量

加速比

完成一批任务,不用流水线比使用流水线执行时间之比

加速比不是越大越好,硬件上有锁存的保持等,需要付出一定的代价。

效率

流水线的设备利用率。

提高流水线效率方法

细分瓶颈段
重复设置重复段

流水线相关Hazard(冲突)

什么是相关?

由于相关的存在,使得指令流中的下一条指令不能在指定的时钟周期执行。

相关几种类型?

  • 结构Hazard:由于资源冲突,造成的相关。典型的就是存储不足
  • 数据Hazard:需要等前面指令执行完,才能执行下一个。
  • 控制Hazard:分支判断,才能执行

带来问题

导致 错误的执行结果
流水线可能出现停顿,从而降低流水线的效率和实际的加速比

约定

当一条指令被暂停时,在该指令的后面所有相关指令都要被暂停。

结构Hazard解决办法

  1. 设置相互独立的指令存储器和数据存储器。
  2. 插入暂停周期(流水线气泡)

数据Hazard

两条指令的关系

写后读(容易产生相关)、写后写、读后写、读后读

解决办法

定向技术(旁路技术bypass技术):加上一个多路选择器,数据不再从寄存器中来,而是从产生的地方直接送到其他指令需要它的地方。

控制Hazard

分支成功:PC值改变为分支转移的目标地址,在条件判定和转移地址计算完成后,才改变PC
分支失败:pc值保持正常递增

解决

最简单办法:冻结(等待)或排空

  1. 尽早判断并分支,可以先猜一个(50%正确率),只要不往下执行就可以
  2. 延迟槽技术,猜的内容就放到延迟槽里,可以从前调度(从判断前,取指令放到延迟槽,这样保证100%要执行),也可以目标处调度(如循环,返回地址处),也可从失败处调度(从判断else处PC,放到延迟槽)

指令级高度并行的超级处理机

一个周期执行多条指令

ILP,指令级并行

利用流水线来使指令重叠执行,以达到提高性能的目的。这种指令之间存在的潜在并行性称为指令级并行。可以硬件也可软件实现

超标量处理机 SuperScalar

有多条流水线,完全由硬件来实现,如下图:

超长指令字VLIW

多条指令拼成一条指令,靠编译器来实现。

超级流水线

更细的流水线划分,这样每个时钟周期能够 分时流出多条指令

  • 3
    点赞
  • 26
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

guangod

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

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

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

打赏作者

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

抵扣说明:

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

余额充值