计算机体系结构第三章答案.docx
- 文档编号:10975845
- 上传时间:2023-02-24
- 格式:DOCX
- 页数:21
- 大小:358.71KB
计算机体系结构第三章答案.docx
《计算机体系结构第三章答案.docx》由会员分享,可在线阅读,更多相关《计算机体系结构第三章答案.docx(21页珍藏版)》请在冰豆网上搜索。
计算机体系结构第三章答案
第三章答案
三、流水线技术(80空)
1、对阶 尾数相加
2、求阶差 规格化
3、时间 流水线的各段
4、尽量相等 流水线的瓶颈
5、通过时间 大量重复的时序 输入端能连续地提供任务
6、静态 动态
7、部件级 处理机级
8、标量流水处理机 向量流水处理机
9、线性流水线 非线性流水线
10、执行/有效地址计算周期 存储器访问/分支完成周期
11、译码 读寄存器
12、ALUoutput←AopB 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.2DLX的基本流水线
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 MIPSR4000流水线计算机
3.5 向量处理机
23、水平(横向)处理方式:
在向量处理机中,向量指令对数据分量的处理方式是按行的方式从左至右横向地进行。
24、垂直(纵向)处理方式:
在向量处理机中,向量指令对数据分量的处理方式是按列的方式至上而下纵向地进行。
25、分组(纵横)处理方式:
在向量处理机中,向量指令对数据分量的处理方式是把向量分成长度为某个固定值的若干组,组内按纵向方式处理,依次处理各组。
3.1流水线的基本概念
1、流水技术的特点有哪些?
答:
(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”;每个子过程由专用的功能段实现;2分
(2)各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,会造成流水线的“堵塞”和“断流”;2分
(3)流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;1分
(4)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。
1分
3.2DLX的基本流水线
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←AopB 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:
由指令类型控制
如果是分支指令,则NPCALU 否则AALU
如果是ALU指令,则BALU 否则:
立即数/位移量ALU
(3)WB段MUX:
由指令类型控制(Load/ALU)
写回Reg的值来自于LMD(Load指令)或ALUOutput(ALU指令)
3.3 流水线中的相关
1、试简要说明流水线中几种相关类型。
答:
流水线中的相关是指相邻或相近的两条指令因存在某种关联,后一条指令不能在原指定的时钟周期开始执行。
(1)结构相关:
当硬件资源满足不了同时重叠执行的指令的要求,而发生资源冲突时,就发生了结构相关。
(2)数据相关:
当一条指令需要用到前面某条指令的结果,从而不能重叠执行时,就发生了数据相关。
(3)控制相关:
当流水线遇到分支指令和其他能够改变PC值的指令时,就会发生控制相关。
2、常见的导致结构相关的原因有哪些?
为什么流水线设计者有时允许结构相关存在?
答:
常见的导致结构相关的原因有以下两种:
(1)功能部件不是全流水;
(2)重复设置的资源的份数不够。
流水线设计者有时允许结构相关存在的原因:
(1)有的结构并不经常发生,而为了避免结构相关需要增加大量的硬件开销;结构相关存在可降低硬件成本;
(2)可以减少部件的延迟。
可设计出比完全流水化功能单元具有更短延迟时间的非流水化和不完全流水化的功能单元。
3、请分析下列指令序列的数据相关情况,可采取哪些技术来保证指令正确执行,或减小流水线性能损失?
ADDR1,R2,R3
SUBR4,R1,R5
ANDR6,R1,R7
ORR8,R1,R9
XORR10,R1,R11
答:
第一条指令和紧邻的三条指令产生数据相关,最后一条指令和前面的指令不产生数据相关。
第①条和第②③条产生写后读的数据相关,可使用定向技术消除数据相关,
第①条和第④条产生写后读的数据相关,可使用寄存器技术消除数据相关。
4、DLX流水线中,定向技术的主要思想是什么?
如何实现?
答:
定向技术的实现:
在某一个功能单元的输入端和与某一个功能单元输出端具有数据通路的流水寄存器之间通过多路器建立通路。
当定向硬件检测到前面某条指令的结果寄存器就是当前指令的源寄存器时,控制逻辑会开通前面那条指令的结果目前所在的位置(某个流水寄存器)到当前指令所需的位置(某个功能单元的输入端)的通路。
5、有的数据相关可通过编译器调度方法来消除暂停。
请为下列表达式生成没有暂停的DLX代码序列。
假设载入延迟为1个时钟周期。
a=b-c;
d=e-f
答:
调度前后的代码序列如下:
调度前代码
调度后代码
LWRb,b
LWRc,c
ADDRa,Rb,Rc
SWa,Ra
LWRe,e
LwRf,f
SUBRd,Re,Rf
SWd,Rd
LWRb,b
LWRc,c
LWRe,e
ADDRa,Rb,Rc
SWa,Ra
LwRf,f
SUBRd,Re,Rf
SWd,Rd
6、减少流水线处理分支指令时的暂停时钟周期数的技术途径是什么?
其流水线数据通路应如何改进?
答:
在流水线中尽早判断分支转移是否成功;转移成功时,尽早计算出转移目标地址。
两者应同时采用,缺一不可。
(1)
(1)把“=0?
”测试移至ID段;
(2)在ID段增设一个加法器,这样可以把分支开销减少一拍。
7、为了在延迟槽中填入有效指令,一般可采用哪三种方法?
比较它们的优缺点。
答:
为了在延迟槽中填入有效指令,一般可采用以下三种方法:
1)将转移指令前的那条指令调度到延迟槽中。
2)将转移目标处的那条指令调度到延迟槽中。
3)将转移不发生时该执行的那条指令调度到延迟槽中。
相比之下:
这三种方法中,第一种方法的效果最好,总能使性能获得改善。
但当转移指令中所用到的条件判别与转移指令前的那条指令相关时,就只能使用方法二或方法三。
方法二仅当转移发生时才会改进性能,且由于要将该指令复制,造成存储空间占用的增加,此方法适于转移发生概率较高的场合,如循环程序段。
使用方法三仅当转移不发生时才会改进性能。
此外,方法二各方法三都要求:
当转移按另一方向前进时,执行调入延迟槽中指令不会破坏程序的正确执行。
8、降低流水线分支损失的方法有哪些?
答:
(1)在流水线中尽早判断出分支转移是否成功;
尽早计算出分支转移成功时的PC值(即分支的目标地址) 2分
(2)“冻结”或“排空”流水线的方法 1分
(3)预测分支失败 1分
(4)预测分支成功 1分
(5)延迟分支 1分
3.4 MIPSR4000流水线计算机
1、MIPSR4000整型流水线结构是怎样的?
3.5 向量处理机
1、三种向量处理方式,对向量处理机的结构要求有何不同?
答:
1.水平处理方式:
若向量长度为N,则水平处理方式相当于执行N次循环。
若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。
2.垂直处理方式:
将整个向量按相同的运算处理完毕之后,再去执行其他运算。
适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。
3.分组处理方式:
把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为
,适合流水处理。
可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。
2、什么是向量处理链接技术?
答:
向量处理链接技术是从流水线的“定向”概念发展而来的。
当两条指令出现“写后读”相关时,若它们不存在功能部件冲突和向量寄存器(源或目的)冲突,就有可能把它们所用的功能部件头尾相接,形成一个链接流水线,进行流水处理。
为了在向量处理机中实现向量链接机制必须恰当地设定所需要的向理功能部件和操作数寄存器;否则,链接操作就不得不挂起直到所需要的资源变为可用为止。
3、向量处理链接技术有哪些技术要求?
答:
除了要保证无向量寄存器使用冲突和无向量功能部件使用冲突的条件之外,还有诸如链接时机等其他一些要求,主要有:
(1)在进行链接的时候,只有在前一条向量指令的第一个结果元素送入结果向量寄存器的那一个时钟周期才可以进行链接,若错过该时刻就不能进行链接。
(2)只有当前一条向量指令全部执行完毕,释放相应的向量寄存器资源后才能执行后面的向量指令。
(3)当一条向量指令的两个源操作数分别是两条先行向量指令的结果寄存器时,要求先行的两条向量指令产生运算结果的时间必须相等,即要求有关向量功能部件的延迟时间相等。
(4)只有所有可以链接执行的向量指令的向量长度相等时,它们之间才能链接执行,否则它们之间也不能链接执行。
4、什么是分段向量处理技术?
答:
当向量的长度大于向量寄存器的长度时,把长向量分成固定长度的段,然后循环分段处理,一次循环只处理一个向量段。
这种长向量循环分段处理的程序结构称为向量循环,这种分段向量处理技术也称为分段开采。
将长向量循环分段处理是由系统硬件和软件控制完成的,对程序员透明。
1、假设一条指令的解释分为取指、分析与执行三个阶段,每个阶段所需时间为t取指、t分析、t执行。
(1)写出用下列几种方式执行100条指令所需的时间的通式:
1)顺序方式;
2)仅"执行k"、与"取指k+1"重叠;
3)仅"执行K"、"分析k+1"和"取指k+2"重叠。
(2)当t取指=t分析=2,t执行=3以及t取指=t分析=4,t执行=2时,用上述通式计算所需时间。
解:
(1)以下是各方式执行100条指令所需时间的通式:
1)顺序方式:
100
t=∑{t取指i+t分析i+t执行i}
i=1
=100{t取指i+t分析i+t执行i}
2)“执行i”与“取指k”重叠:
100
t=t取指1+∑t分析i
i=1
100
+∑[max{t执行i-1,t取指i}]
i=2
+t执行100
3)仅“执行k”、“分析K+1”与“取指K+2”重叠:
t=t取指1+[max{t分析1,t取指2}]
100
+∑[max{t执行i-2,t分析i-1,t取指i}]
i=3
+max{t分析100,t执行99}
+t执行100
(2)当T取指=T分析=2,T执行=3时,用上述通式计算所需时间
1)T=100(2+2+3)=700
2)T=2+2×100+3×99+3=502
3)T=2+2+3×97+3+3=301
当T取指=T执行=4,T分析=2时,用上述通式计算所需时间为:
1)T=100(4+2+4)=1000
2)T=4+2×100+4×99+4=604
3)T=4+4+4×97+4+4=404
2、一个流水线由四段组成,其中每当流经第三段时,总要在该段循环一次才能流到第四段。
如果每段经过一次的时间都是△t,问:
当在流水线的输入端每△t时间输入任务时,该流水线会发生什么情况?
此流水线的实际吞吐率为多少?
如果每2△t输入一个任务,连续处理10个任务的实际吞吐率和效率是多少?
当每段时间不变时,如何提高该流水线的吞吐率?
仍连续处理10个任务时,其吞吐率提高多少?
解:
(1)会发生流水线阻塞情况。
(2)
(3)重复设置部件
吞吐率提高倍数=
=1.64
3、有一条流水线如下所示。
求连续输入10条指令,该流水线的实际吞吐率和效率;
该流水线的瓶颈在哪一段?
请采取三种不同的措施消除此“瓶颈”。
对于你所给出的新流水线,计算连续输入10条指令时,其实际吞吐率和效率。
解:
(1)
(2)瓶颈在3、4段。
●变成八级流水线(细分)
●变成两级流水线(合并)
●重复设置部件
4-4
4、如果流水线有m段,各段的处理时间分别是ti(i=1,2,…,m),现在有n个任务需要完成,且每个任务均需流水线各段实现,请计算:
流水线完成这n个任务所需要的时间;
和非流水线实现相比,这n个任务流水实现的加速比是多少?
加速比的峰值是多少?
解:
(1)
(2)
5、一台非流水处理器A的工作时钟频率为25MHz,它的平均CPI为4,处理器B是A的改进型,它有一条5段的线性指令流水线。
由于锁定电路延迟及时钟扭斜效应,它的工作时钟频率仅为20MHz。
问:
(1)若在A和B两个处理器上执行含有100条指令的程序,则处理器B对A的加速比为多少?
(2)在执行上述程序时,计算A、B处理器各自的MIPS速率为多少?
解:
(1)Ta=100*4/2.5E7=1.6E-5秒
Tb=((5+100-1)×4/5)/2E7=4.16E-6秒
∴Sp=Ta/tb=3.85
(2)MIPSa=100/1.6E-5=6.25MIPS
MIPSb=100/4.16E-6=24.04MIPS
6、一个由4段构成的双输入端的流水浮点加法器,每一段的延迟为10ns,输出可直接返回到输入端或把结果暂存到相应缓冲寄存器中。
现若要将10个浮点数相加,问最少需用多少时间,要求画出相应的流水线工作的时空图。
解:
根据题意,画出相应流水线时空图:
所需最少时间:
Tmin=17*10ns=170ns
7、若有一静态多功能流水线分为6段,如图所示,其中乘法流水线由1、2、3、6段组成,加法流水线由1、4、5、6段组成,通过每段所需时间如图所示。
使用流水线时,要等某种功能(如加法)操作都处理完毕后才能转换成另种功能(如乘法)。
若要计算:
A×B=(a1+b1)×(a2+b2)×(a3+b3),问:
(1)在上述流水方式下,完成A×B需要多少时间?
画出时空图并计算此流水线的使用效率和吞吐率。
(2)与顺序运算方式相比,加速比为多少?
解:
根据题意,画出的时空图为:
(1)T=26τ
吞吐率:
Tp=5/26τ
效率:
E=(2*17)/(26*6)=21.79%
(2)加速比:
Sp=Tl/Tk=(6τ*3+8τ*2)/26τ=1.31
8、在如下图所示的静态流水线上计算
,流水线的输出可以直接返回输入端或暂存于相应于的流水线寄存器中,试计算其吞吐率,加速比,效率。
解:
该题解题步骤为:
(1)确定适合于流水处理的计算过程。
(2)画时空图
(3)计算性能
(1)确定适合于流水处理的计算过程为:
(2)根据所确定的计算过程,画出时空图
(3)根据时空图和流水线性能公式,计算性能
故:
吞吐率TP=7/(20△t)
加速比S=(34△t)/(20△t)=1.7
效率E=(4×4+3×6)/(8×20)=0.21
9、假设各种分支所占指令数地百分比如下表所示:
条件分支
20%(其中60%是成功的)
跳转和调用
5%
现有一深度为4地流水线(流水线有4段),无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能被解析出来。
第一个流水段是完全独立于指令类型的,即所有的指令都必须经过第一个流水段的处理。
请问在没有任何结构相关地情况下,该流水线相对于存在上述结构相关情况下地加速比是多少?
解:
在不存在结构相关时,每条指令的平均执行时间是1个时钟周期,而存在上述条件相关的情况下,并假设条件分支预测成功,那么无条件分支和成功的条件分支的等待时间都是1,而不成功地条件分支等待时间是2个周期;所以加速比就等于存在相关的每条指令的平均执行时间和不存在相关的每条指令的执行时间1的比值:
每条指令的平均等待时间:
所以:
11、CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出了相应功能部件的时间),如果向量寄存器和功能部件之间数据传输需要1拍,试求此链接流水线的通过时间是多少拍?
如果向量长度为64,则需要多少拍才能得到全部结果。
V0←存储器 (从存储器中取数:
7拍)
V2←V0+V1 (向量加:
3拍)
V2←V2 4拍) V5←V3∧V4 (向量逻辑乘: 2拍) 解: 通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就是各功能流水线由空到满的时间,具体过程如下图所示。 要得到全部结果,在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量执行完毕。 12、向量处理机有16个向量寄存器,其中V0~V5中分别存放有向量A、B、C、D、E、F,向量长度均为12,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。 采用类似CRAY-1的链接技术,先计算(A+B)*C,在流水线不停留的情况下,接着计算(D+E)*F。 (1)求此链接流水线的通过时间为多少拍? (设寄存器入、出各需1拍) (2)假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此处理部件地实际吞吐率为多少MFLOPS? 解: (1)我们在这里假设A+B的中间结果放在V6中,(A+B)*C地最后结果放在V7中,D+E地中间结果放在V8中,(D+E)*F的最后结果放在V9中。 具体实现参考下图: 通过时间应该为前者((A+B)*C)通过的时间: T通过=(1+2+1)+(1+3+1)=9(拍) (2)在做完(A+B)*C之后,作(C+D)*E就不需要通过时间了。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机体系结构 第三 答案
![提示](https://static.bdocx.com/images/bang_tan.gif)