第三章答案
三、流水线技术(80空) 1、对阶 尾数相加 2、求阶差 规格化 3、时间 流水线的各段 4、尽量相等 流水线的瓶颈
5、通过时间 大量重复的时序 输入端能连续地提供任务 6、静态 动态
7、部件级 处理机级
8、标量流水处理机 向量流水处理机 9、线性流水线 非线性流水线
10、执行/有效地址计算周期 存储器访问/分支完成周期 11、译码 读寄存器
12、ALUoutput←A op B ALUoutput←NPC + Imm 13、分支 STORE指令 14、ALU指令 LOAD指令 15、单周期 多周期
16、重复设置指令执行功能部件 流水 17、吞吐率 等功能非流水线 18、通过时间 排空时间
19、流水线寄存器的延迟 时钟扭曲 20、数据相关 控制相关 21、结构相关 数据相关 22、结构 数据
23、硬件开销 功能单元的延迟 24、写后读 读后写 写后读 25、写后读 读后写
26、PC值改变为分支转移的目标地址 PC值保持正常(等于当前值加4) 27、目标地址 分支转移条件不成立 28、8 存储器 29、多功能线性 8
30、水平处理方式 垂直处理方式 31、纵向处理方式 纵横处理方式 32、存储器 向量寄存器
33、访问存储器的次数 对存储器带宽的要求
34、每秒执行多少指令(MIPS) 每秒取得多少个浮点运算结果(MFLOPS) 35、512 8
36、链接技术 向量循环或分段开采技术 37、源向量 结果向量
38、向量功能部件 标量寄存器 向量寄存器块 39、向量寄存器 向量功能部件
3.1 流水线的基本概念
1、流水线:将一个重复的时序过程,分解为若干个子过程,而每一个子过程都可有效地在
其专用功能段上与其他子过程同时执行。
2、单功能流水线:只能完成一种固定功能的流水线。
3、多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能。
4、静态流水线:同一时间内,流水线的各段只能按同一种功能的连接方式工作。
5、动态流水线:同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算。
6、部件级流水线:(运算操作流水线)把处理机的算术逻辑部件分段,以便为各种数据类型进行流水操作。
7、处理机级流水线:(指令流水线)把解释指令的过程按照流水方式处理。 8、线性流水线:指流水线的各段串行连接,没有反馈回路。
9、非线性流水线:指流水线中除有串行连接的通路外,还有反馈回路。
10、标量流水处理机:处理机不具有向量数据表示,仅对标量数据进行流水处理。 11、向量流水处理机:处理机具有向量数据表示,并通过向量指令对向量的各元素进行处理。
3.2 DLX 的基本流水线
12、固定字段译码:在DLX指令多周期实现中,由于DLX指令格式中操作码在固定位置,且都是6位编码,在指令执行的第二个时钟周期,指令译码和读寄存器并行进行,这种技术称为固定字段译码。
13、吞吐率:吞吐率是指单位时间内流水线所完成的任务数或输出结果的数量。
14、最大吞吐率:最大吞吐率是指流水线在连续流动达到稳定状态后所得到的吞吐率。 15、流水线效率:由于流水线有通过时间和排空时间,所以流水线的各段并不是一直满负荷地工作。效率是指流水线的设备利用率。
3.3流水线中的相关
16、结构相关:某些指令组合在流水线中重叠执行时,发生资源冲突,则称该流水线有结构相关。
17、数据相关:当指令在流水线中重叠执行时,流水线有可能改变指令读/写操作的顺序,使得读/写操作顺序不同于它们非流水实现时的顺序,将导致数据相关。
18、定向:将计算结果从其产生的地方直接送到其他指令需要它的地方,或所有需要它的功能单元,避免暂停。
19、Load互锁:由Load指令引起的RAW相关,当检测到相关后,控制部件必须在流水线中插入暂停周期,并使IF和ID段中的指令停止前进。
20、写后读相关:两条指令i,j,i在j前进入流水线,j执行要用到i的结果,但当其在流水线中重叠执行时,j可能在i写入其结果之前就先行对保存该结果的寄存器进行读操作,得到错误值。
21、读后写相关:两条指令i,j,i在j前进入流水线,j可能在i读某个寄存器之前对该寄存器进行写操作,导致i读出数据错误。
22、写后写相关:两条指令i,j,i在j前进入流水线,j、i的操作数一样,在流水线中重叠执行时,j可能在i写入其结果之前就先行对保存该结果的寄存器进行写操作,导致写错误。
3.4 MIPS R4000 流水线计算机 3.5 向量处理机
23、水平(横向)处理方式:在向量处理机中,向量指令对数据分量的处理方式是按行的方式从左至右横向地进行。
24、垂直(纵向)处理方式:在向量处理机中,向量指令对数据分量的处理方式是按列的方式至上而下纵向地进行。
25、分组(纵横)处理方式:在向量处理机中,向量指令对数据分量的处理方式是把向量分成长度为某个固定值的若干组,组内按纵向方式处理,依次处理各组。
3.1 流水线的基本概念
1、流水技术的特点有哪些?
答:(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段” ;
每个子过程由专用的功能段实现;2分
(2)各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,
会造成流水线的“堵塞”和“断流”;2分
(3)流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过
程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;1分
(4)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线
的效率才能充分发挥。1分
3.2 DLX 的基本流水线
1、在DLX指令的多周期实现中,一条DLX指令需4或5个时钟周期。请写出各时钟周期中文名称以及R-R类型ALU指令在每个时钟周期中所做的操作。 答:(1)取指令周期(IF) IR ← Mem[PC] NPC ← PC+4 1分
(2)指令译码/读寄存器周期(ID)A ← Regs[IR6 ..10] B ← Regs[IR11 ..15] Imm ← (IR16)16 ## IR16 ..31 1分
(3)执行/有效地址计算周期(EX) ALUOutput ← A op B 1分 (4)存储器访问/分支完成周期(MEM)LMD ← Mem[ALUOutput] 1分 (5)写回周期(WB) Regs[IR16 ..20] ← ALUOutput 2分
2、从CPI和CC的角度考虑,指令的实现有哪两种方案,各有何优缺点? 答:实现方案一:一条指令用多个时钟周期CPI>1
优点:有利于流水线实现指令的执行。 缺点:硬件冗余大
实现方案二:一条指令用一个长时钟周期 CPI =1 但CC2远大于多周期实现的CC1 优点:临时寄存器可省去
缺点:1、低效率 指令要执行的操作总量变化较大,不同指令实现所需要的时钟周期时间大不一样。
2、基于单周期实现提高程序执行速度需要重复设置指令执行功能部件,而基于多周期实现提高速度可采用流水技术。
3、DLX流水线中的多路选择器MUX有几个,分别在哪一流水段,如何选择输入(即多路器如何控制)? 答:
(1)IF段MUX 由Cond判断控制:下一条指令地址为增长后的PC(当前PC加4)或向前数第三条指令的ALUOutput的值,前提是那条指令为分支指令并且条件成立;
(2)EX段有两个MUX:由指令类型控制
如果是分支指令,则NPC ? ALU 否则A ? ALU
如果是ALU指令,则B ? ALU 否则:立即数/位移量? ALU (3)WB段MUX:由指令类型控制( Load/ALU)
写回Reg的值来自于LMD(Load指令)或ALUOutput(ALU指令)
3.3 流水线中的相关
1、试简要说明流水线中几种相关类型。 答:流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。
(1)结构相关:当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了结构相关。
(2)数据相关:当一条指令需要用到前面某条指令的结果,从而不能重叠执行时,就发生了数据相关。
(3)控制相关:当流水线遇到分支指令和其他能够改变PC值的指令时,就会发生控制相关。
2、常见的导致结构相关的原因有哪些?为什么流水线设计者有时允许结构相关存在?
答:常见的导致结构相关的原因有以下两种: (1)功能部件不是全流水;
(2)重复设置的资源的份数不够。
流水线设计者有时允许结构相关存在的原因:
(1)有的结构并不经常发生,而为了避免结构相关需要增加大量的硬件开销;结构相关存在可降低硬件成本;
(2)可以减少部件的延迟。可设计出比完全流水化功能单元具有更短延迟时间的非流水化和不完全流水化的功能单元。 3、请分析下列指令序列的数据相关情况,可采取哪些技术来保证指令正确执行,或减小流水线性能损失? ADD R1,R2,R3 SUB R4,R1,R5 AND R6,R1,R7 OR R8,R1,R9 XOR R10,R1,R11
答:第一条指令和紧邻的三条指令产生数据相关,最后一条指令和前面的指令不产生数据相
关。
第①条和第②③条产生写后读的数据相关,可使用定向技术消除数据相关, 第①条和第④条产生写后读的数据相关,可使用寄存器技术消除数据相关。
4、DLX流水线中,定向技术的主要思想是什么?如何实现? 答:定向技术的实现:在某一个功能单元的输入端和与某一个功能单元输出端具有数据通路的流水寄存器之间通过多路器建立通路。
当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会开通前面那条指令的结果目前所在的位置(某个流水寄存器)到当前指令所需的位置(某个功能单元的输入端)的通路。
5、有的数据相关可通过编译器调度方法来消除暂停。请为下列表达式生成没有暂停的DLX代码序列。假设载入延迟为1个时钟周期。 a=b-c; d=e-f
答:调度前后的代码序列如下: 调度前代码 调度后代码 LW Rb,b LW Rb,b LW Rc,c LW Rc,c ADD Ra,Rb,Rc LW Re,e SW a,Ra ADD Ra,Rb,Rc LW Re,e SW a,Ra Lw Rf,f SUB Rd,Re,Rf Lw Rf,f SW d,Rd SUB Rd,Re,Rf SW d,Rd 6、减少流水线处理分支指令时的暂停时钟周期数的技术途径是什么?其流水线数据通路应如何改进?
答:在流水线中尽早判断分支转移是否成功; 转移成功时,尽早计算出转移目标地址。两
者应同时采用,缺一不可。
(1) (1)把“=0?”测试移至ID段; (2) 在ID段增设一个加法器,这样可以把分支开销减少一拍。
7、为了在延迟槽中填入有效指令,一般可采用哪三种方法? 比较它们的优缺点。
答:为了在延迟槽中填入有效指令,一般可采用以下三种方法: 1)将转移指令前的那条指令调度到延迟槽中。 2)将转移目标处的那条指令调度到延迟槽中。
3)将转移不发生时该执行的那条指令调度到延迟槽中。
相比之下:这三种方法中,第一种方法的效果最好,总能使性能获得改善。但当转移指令中所用到的条件判别与转移指令前的那条指令相关时,就只能使用方法二或方法三。方法二仅当转移发生时才会改进性能,且由于要将该指令复制,造成存储空间占用的增加,此方法适于转移发生概率较高的场合,如循环程序段。使用方法三仅当转移不发生时才会改进性能。此外,方法二各方法三都要求:当转移按另一方向前进时,执行调入延迟槽中指令不会
相关推荐: