计算机系统结构教程 第三章 流水线技术

一、重叠执行和先行控制

二、流水线的基本概念

1、通过时间和排空时间

(1)通过时间:第一个任务进入到流出的时间

(2)排空时间:最后一个任务进入到流出的时间

2、流水线的分类

(1)单功能和多功能流水线

--单功能流水线只能完成一种固定功能的流水线。

--多功能流水线的各段可以进行不同的连接,实现不同的功能。

(其中多功能流水线又可以分成静态和动态。静态流水线是指同一时间段内只能完成一种功能)

(而动态流水线在同一时间内可以执行多种功能)

(2)部件级、处理机级、处理机间流水线

(3)线性流水线和非线性流水线(按照是否存在反馈回路来分类)
--线性流水线:流水线的各段串行连接,没有反馈回路。

--非线性流水线:流水线中除了有串行的连接之外,还有反馈回路。

(4)顺序流水线和乱序流水线(按照任务的流入流出顺序)

三、流水线的性能指标

1、吞吐率:单位时间内流水线完成的任务数量或者输出结果的数量。

TP=n/Tk                       (其中n是任务数量,Tk是完成n个任务所需要的时间)

实际吞吐率Tk=n/((k+n-1)t)

2、各段时间不等的流水线

实际吞吐率:

最大吞吐率:

(1)解决流水线瓶颈的两种常用方法:

--重复设置瓶颈段

--细分瓶颈段

以上两种改进方法最后得到的吞吐率都是一样的,跟各段时间相等情况下一样

3、加速比:完成同样一批任务,不使用流水线和使用流水线的时间之比。

(1)流水线各段时间相等的情况下:

(2)各段时间不相等的情况下:

4、效率:设备的实际使用时间和运行时间之比

四、流水线的相关与冲突

1、数据相关的三种类型

(1)数据相关(真数据相关)

        后面的指令用到了前面的指令产生的结果。

L.D F0,0(R2)        //F0是数组元素
ADD.D F4,F0,F2      //用到了上一条指令产生的结果F0

(2)名相关

        两条指令即使使用了相同的寄存器名,但是他们之间没有数据流动。就是后面的指令没有用到前面指令的结果。因此,可以使用换名技术来消除反相关。

--反相关:指令J写的名与指令I读的名是一样的。

DIV.D F2,F8,F4
ADD.D F8,F0,F12

--输出相关:指令J和指令I写的名是一样的。

(3)控制相关:与分支指令相关。

2、流水线冲突

        流水线冲突一般有三种类型:

(1)结构冲突:硬件资源满足不了指令重叠执行的要求而发生的冲突。

        举一个简单的例子来说,就是有些计算机只有一个存储器(不是哈弗结构),假设前面有一条指令正在访存,比如load指令,而后面的指令开始执行需要从存储器里面取出,这时候就不得不暂停流水线了。这个停顿的周期就称之为“流水线气泡”。

注意:结构冲突不必完全消除,主要原因就是设置过多的硬件就会带来成本问题。

(2)数据冲突:后面的指令需要用到前面指令的执行结果而发生的冲突。

一般有定向和指令调度两种方法来解决数据冲突。定向就是把产生数据的部件再直接把数据送到需要数据的地方。

(3)控制冲突:流水线遇到分支指令或者其他会改变PC值的指令所引起的冲突。

  • 4
    点赞
  • 8
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值