【计算机系统结构期末复习】第三章

系列文章

第一章
第二章



1. 选择题

(考概念)

1.1 解释下列术语

  • 流水线:将一个重复的时序过程,分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其它子过程同时执行。
  • 单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。
  • 多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。
    静态流水线:指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。
  • 动态流水线:指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。
  • 部件级流水线:把处理机中的部件进行分段,再把这些部件分段相互连接而成。它使得运算操作能够按流水方式进行。这种流水线也称为运算操作流水线。
  • 处理机级流水线:又称指令流水线。它是把指令的执行过程按照流水方式进行处理,即把一条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
  • 处理机间流水线:又称为宏流水线。它是把多个处理机串行连接起来,对同一数据流进行处理,每个处理机完成整个任务中的一部分。前一个处理机的输出结果存入存储器中,作为后一个处理机的输入。
  • 线性流水线:指各段串行连接、没有反馈回路的流水线。数据通过流水线中的各段时,每一个段最多只流过一次。
  • 非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。
  • 顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。
  • 乱序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。
  • 吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
  • 流水线的加速比:使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批任务所用的时间之比。
  • 流水线的效率:即流水线设备的利用率,它是指流水线中的设备实际使用时间与整个运行时间的比值。
  • 数据相关:考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:
    • 指令j使用指令i产生的结果;
    • 指令j与指令k数据相关,而指令k又与指令i数据相关。
  • 名相关:如果两条指令使用了相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。
  • 控制相关:是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。
  • 反相关:考虑两条指令i和j,i在j的前面,如果指令j所写的名与指令i所读的名相同,则称指令i和j发生了反相关。
  • 输出相关:考虑两条指令i和j,i在j的前面,如果指令j和指令i所写的名相同,则称指令i和j发生了输出相关。
  • 换名技术:名相关的两条指令之间并没有数据的传送,只是使用了相同的名。可以把其中一条指令所使用的名换成别的,以此来消除名相关。
  • 结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
  • 数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
  • 控制冲突:流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。
  • 定向:用来解决写后读冲突的。在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
  • 写后读冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。
  • 读后写冲突:考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。
  • 写后写冲突:考虑两条指令i和j,且i在j之前进入流水线,,指令j和指令i的结果单元(寄存器或存储器单元)相同,而且j在i写入之前就先对该单元进行了写入操作,从而导致写入顺序错误。这时在结果单元中留下的是i写入的值,而不是j写入的。
  • 链接技术:具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
  • 分段开采:当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
  • 半性能向量长度:向量处理机的性能为其最大性能的一半时所需的向量长度。
  • 向量长度临界值:向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。

1.2 流水线技术的特点

  • 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现
  • 流水线中各段时间应该尽可能相等。否则将引起流水线堵塞、断流,因为时间长的段将成为流水线的瓶颈
  • 流水线每一个功能部件的后面都要有一个缓冲寄存器(锁存器),称为流水线寄存器,其作用是在相邻的两段之间传送数据,以保证后面要用到的数据,并把各段的处理工作相互隔离。
  • 流水线技术适合于大量重复的时序过程
  • 流水线需要有通过时间(第一个任务从进入流水线到流出结果到时间段)和排空时间(最后一个任务进入流水线到流出结果的时间段)。经过通过时间后,流水线进入满载工作状态,整条流水线的效率才能够得到充分发挥。

在这里插入图片描述


1.3 解决流水线瓶颈问题的常用方法

  1. 细分瓶颈段
  2. 重复设置瓶颈段

2. 计算题

2.1 流水线的性能指标

2.1.1 吞吐率

在这里插入图片描述

在这里插入图片描述
区分实际吞吐率和最大吞吐率:

  • 流水线的实际吞吐率要小于最大吞吐率:它除了和每个段的时间有关,还与流水线的段数k,输入到流水线的任务等有关,只有当n远大于k时,二者才相等。
  • 流水线的最大吞吐率相当于流水线本身的属性,而流水线的实际吞吐率是一种动态的变化。

2.1.2 加速比

加速比 = 不使用流水线所用的时间/使用流水线所用的时间 (大于等于1)
在这里插入图片描述
在这里插入图片描述


2.1.3 效率

效率:流水线中的设备实际使用时间与整个运行时间的比值,即流水线利用率
从流水线的时空图看,是阴影部分的面积比上整个的面积
在这里插入图片描述
在这里插入图片描述


2.1.4 例题

例1

在这里插入图片描述
在这里插入图片描述

  • 静态流水线中,前一种功能的最后一条指令排空后,才能切换流水线

解:
先画出时空图
在这里插入图片描述

  • 先计算加法。分别计算出 A1+B1 、 A2+B2、 A3+B3 、 A4+B4 。得到的输出分别是 A 、B、C、D。所以总共会进行4次加法
  • 因为是静态流水线,所以在加法都执行完毕后才能执行乘法
  • 计算乘法的时候,为了避免相关性,先分别计算 A * B 和 C * D。然后再将这两个结果相乘。所以总共会进行3次乘法

再进行计算
在这里插入图片描述

  • 吞吐率 = (输出数) / (横坐标长度△t)
  • 加速比 = (阴影部分的格子数)/ (横坐标长度)
  • 效率 = (阴影部分的格子数)/ (所有格子数)

例2

在这里插入图片描述

在这里插入图片描述
解:
在这里插入图片描述

注意:

  • 和静态流水线不同,动态流水线中不用等前一个功能全部流出流水线再进行下一个功能
  • 但是要注意指令前后之间的相关性。比如这里的C+D不能提前,要等到D完全计算出之后才可以

例3

有一条静态多功能流水线出5段组成(如图3.45所示加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t ,其余各段的时间均△t,
而且流水线的输出端或暂存于相应的流水寄存器中。现要在该流水线上计算Πi=1-4(Ai+Bi),画出其时空图,并计算其吞吐率、加速比和效率
在这里插入图片描述

吞吐量:TP=7/18△t
加速比:S=(5*4+3*3)/18=29/18
效率:E=29/(5×18)=29/90


2.2 向量处理机

在这里插入图片描述


2.2.1 链接技术

在这里插入图片描述


2.2.2 例1

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述


2.2.3 例2

在CRAY-1计算机上按照链接方式执行下述4条间量指令(括号中给出了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要1拍,试求此链接流水线的通过时间是多少拍?如果向量长度为64,则需多少拍才能得到全部结果?
V0<- 存储器 (从存储器中取数:7拍)
V2<- V0+V1(向量加:3拍)
V3<- V2<A3(按(A3)左移:4拍)
V5<-V3 ∧V4(向量逻辑乘:2拍)

在这里插入图片描述

链接流水线的通过时间:(7+1)+(1+3+1)+(1+4+1)+(1+2+1)=23
如果向量长度是64需要23+(64-1)=86拍得到全部结果

3. 综合题

3.1 简述三种向量处理方式,它们对向量处理机的结构要求有何不同?

  1. 横向处理方式:若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。
  2. 纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。
  3. 纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。

3.2 可采用哪些方法来提高向量处理机的性能?

  1. 设置多个功能部件,使它们并行工作;
  2. 采用链接技术,加快一串向量指令的执行;
  3. 采用循环开采技术,加快循环的处理;
  4. 采用多处理机系统,进一步提高性能
  • 12
    点赞
  • 12
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

打赏作者

不怕娜

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

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

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

打赏作者

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

抵扣说明:

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

余额充值