1. 流水技术有哪些特点?
(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”。
(2)每个子过程由专用的功能段实现。
(3)各个功能段所需时间应尽量相等。
(4)流水线需要有“通过时间”,在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果。
(5)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。
2. 按照流水线所完成的功能来分,流水线可分为哪两类?
(1)单功能流水线:只能完成一种固定功能的流水线。
(2)多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
3. 按照同一时间内各段之间的连接方式来分,流水线可分为哪两类?
(1)静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作。
(2)动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
4. 按照流水的级别来分,流水线可分为哪三类?
(1)部件级流水线(运算操作流水线):把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。
(2)处理机级流水线(指令流水线):把解释指令的过程按照流水方式处理。
(3)处理机间流水线(宏流水线):由两个以上的处理机串行地对同一数据流进行处理,每个处理机完成一项任务。
5. 按照数据表示来分,流水线可分为哪两类?
(1)标量流水处理机:处理机不具有向量数据表示,仅对标量数据进行流水处理。
(2)向量流水处理机:处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
6. 按照流水线中是否有反馈回路来分,流水线可分为哪两类?
(1)线性流水线:流水线的各段串行连接,没有反馈回路。
(2)非线性流水线:流水线中除有串行连接的通路外,还有反馈回路。
7. 在5段流水线中,一条指令的执行需要几个时钟周期?它们分别是什么?
一条指令的执行需要5个时钟周期。它们分别是:取指令周期(IF)、指令译码/读寄存器周期(ID)、执行/有效地址计算周期(EX)、存储器/分支完成周期(MEM)、写回周期(WB)。
8.流水线寄存器的作用是什么?
把数据和控制信息从一个流水段传送到下一个流水段。
9. 消除流水线的瓶颈段有哪些方法?
(1) 细分瓶颈段;
(2) 重复设置瓶颈段。
10. 评价流水线的性能指标是什么?
(1) 吞吐率:指在单位时间内流水线所完成的任务数或输出结果的数量。
(2) 流水线的加速比:指m段流水线的速度与等功能的非流水线的速度之比。
(3) 效率:指流水线的设备利用率。
11. 什么叫相关?流水线中有哪几种相关?
相关是指两条指令之间存在某种依赖关系。确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义。
相关有3种类型,分别是数据相关(也称真数据相关)、名相关、控制相关。
12. 什么叫名相关?名相关有哪两种?
如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。
指令j与指令i之间的名相关有以下两种:
(1)反相关。如果指令j写的名与指令i读的名相同,则称指令i和j发生了反相关。反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的。
(2)输出相关。如果指令j和指令i写相同的名,则称指令i和j发生了输出相关。输出相关指令的执行顺序是不能颠倒的,以保证最后的结果是指令j写进去的。
13.流水线冲突有哪几种?
流水线冲突有以下3种类型:
(1)结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
(2)数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
(3)控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。
14. 解决流水线结构冲突的方法有哪些?
(1)流水化功能单元;(2)资源重复;(3)暂停流水线。
15. 为什么流水线设计者有时会允许结构冲突的存在?
主要有两个原因:一是为了减少硬件开销,二是为了减少功能单元的延迟。
16. 定向技术的主要思想是什么?
在发生数据冲突时,后面的指令并不是立即就要用到前一条指令的计算结果。如果能够将计算结果从其产生的地方直接送到需要它的地方,就可以避免暂停。当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会将前面那条指令的结果直接从其产生的地方定向到当前指令所需的位置。
17.流水线中所有数据冲突都可以通过定向技术消除,而不需要暂停吗?试举例说明。
流水线中有需要暂停的数据冲突。
例如,在下列指令序列中,需要在LW指令之后插入一个暂停周期,然后再用定向技术消除相关。
LD |
R1,0(R2) |
DADD |
R4,R1,R5 |
AND |
R6,R1,R7 |
XOR |
R8,R1,R9 |
18.根据指令对寄存器的读写顺序,可将数据冲突分为哪三种类型?
(1)写后读冲突
(2)写后写冲突
(3)读后写冲突
19.解决流水线数据冲突的方法有哪些?
(1)定向技术:在某条指令产生一个结果之前,其他指令并不真正需要该计算结果,如果将该计结果从其产生的地方直接送到其他指令需要它的地方,就可以避免暂停。
(2)暂停技术:设置一个“流水线互锁”的功能部件,一旦流水线互锁检测到数据相关,流水线暂停执行发生数据相关指令后续的所有指令,直到该数据相关解决为止。
(3)采用编译器调度。
(4)重新组织代码顺序。
20. 减少流水线处理分支指令时的暂停时钟周期数有哪两种途径?
(1) 在流水线中尽早判断出分支转移是否成功。
(2) 尽早计算出分支转移成功时的PC值(即分支的目标地址)。
21. 在MIPS基本流水线中可采用哪些静态方法降低分支损失?
(1) 修改硬件:在ID段增加一个加法器,将计算分支目标地址的操作移到ID段完成。
(2) 预测分支失败的方法。
(3) 延迟分支方法。
22.从编译技术的角度,降低流水线分支损失的方法有哪些?
(1) 预测分支失败的方法。
(2) 预测分支成功的方法。
(3) 延迟分支方法。
23. 预测分支失败方法的主要思想是什么?
当流水线译码到一条分支指令时,流水线继续取指令,并允许该分支指令后的指令继续在流水线中流动。当流水线确定分支转移成功与否以及分支的目标地址之后,如果分支转移成功,流水线必须将在分支指令之后取出的所有指令转化为空操作,并在分支的目标地址处重新取出有效的指令;如果分支转移失败,那么可以将分支指令看作是一条普通指令,流水线正常流动,无需将在分支指令之后取出的所有指令转化为空操作。
24. “延迟分支”方法的主要思想是什么?
其主要思想是从逻辑上“延长”分支指令的执行时间。设延迟长度为n的分支指令后面有n个分支延迟槽,选择n条有效和有用的指令放入分支延迟槽中,无论分支成功与否,流水线都会执行这些指令。处于分支延迟槽中的指令“掩盖”了流水线原来所必须插入的暂停周期。
25.为了在分支延迟槽中填入有效指令,一般采用哪三种方法?
从前调度、从目标处调度、从失败处调度
26. 调度分支延迟指令的三种常用方法的特点和局限性是什么?
调度策略 |
对调度的要求 |
对流水线性能改善的影响 |
从前调度 |
分支必须不依赖于被调度的指令 |
总是可以有效提高流水线性能 |
从目标处调度 |
如果分支转移失败,必须保证被调度的指令对程序的执行没有影响,可能需要复制被调度指令 |
分支转移成功时,可以提高流水线性能。但由于复制指令,可能加大程序空间 |
从失败处调度 |
如果分支转移成功,必须保证被调度的指令对程序的执行没有影响 |
分支转移失败时,可以提高流水线性能 |
27.有哪几种向量处理方式?它们对向量处理机的结构要求有何不同?
(1) 水平处理方式:不适合对向量进行流水处理。
(2) 垂直处理方式:适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成MM型的运算流水线。
(3) 分组处理方式:适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成RR型运算流水线。
28.什么是向量链接技术?
当两条向量指令出现“写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相接,形成一个链接流水线,进行流水处理。
29.衡量向量处理机性能的主要参数有哪些?
(1) 向量指令的处理时间。
(2) 峰值性能:向量长度为无穷大时,向量处理机的最高性能。
(3) 半性能向量长度:向量处理机的性能为其峰值性能一半时所需的向量长度。
(4) 向量长度临界值:对同一段程序代码而言,向量方式的处理速度优于标量串行方式处理速度时所需的最小向量长度。