计算机系统结构作业答案第三章张晨曦.docx
3.1 -3.3为术语说明等解答题。3.4 设一条指令的执行过程分为取指令,分析指令与执行指令3个阶段,每个阶段所需时间分别为T, T, 2T,分别求出下列各种状况下,连续执行N条指令所需的时间。(1) 依次执行方式(2) 只有“取指令”与“执行指令”重叠(3) “取指令”,“分析指令”与“执行指令”重叠解:(1) 4NT(2) (3N+1) T(3) 2(N+1) T3.6 解决流水线瓶颈问题有哪两种常用方法?解:(1) 细分瓶颈段将瓶颈段细分为若干个子瓶颈段(2) 重复设置瓶颈段重复设置瓶颈段,使之并行工作,以此错开处理任务3.9 列举下面循环中的全部相关,包括输出相关,反相关,真数据相关。for(i = 2; i < 100; i=i+1)ai = bi + ai;-(1)ci+1 = ai + di;-(2)ai-1 = 2*bi;-(3)bi+1 = 2*bi;-(4)解:输出相关:第k次循环时(1)与第k+1轮时(3)反相关:第k次循环时(1)与(2)与第k-1轮时(3)真数据相关:每次循环(1)与(2),第k次循环(4)与k+1次循环(1),(3),(4)3.12 有一指令流水线如下所示入1234出 50ns 50ns 100ns 200ns(1) 求连续如入10条指令的状况下,该流水线的实际吞吐率与效率(2) 该流水线的“瓶颈”在哪一段?请采纳两种不同的措施消退此“瓶颈”。对于你所给出的两种新的流水线连续输入10条指令时,其实际吞吐率与效率各是多少?解:(1)(m表示流水线级数,n 表示任务数)(2)瓶颈在 3, 4段。方法一:变成八级流水线(细分)11.7e8方法二:变成两级流水线(合并)方法三:将段 1, 2 合并为一段,段 4 细化流水为两段方法四:重复设置部件,设置 2个部件 3,4个部件 4,与第一种方法结果相同3.14 有一条静态多功能流水线由5段组成,加法用1, 3, 4, 5段,乘法用1, 2, 5段,第3段时间为2t,其余各段时间均为t,而且流水线的输出可以干脆返回输入端或暂存于相应的流水寄存器中,现要在该流水线上计算,画出其时空图,并计算其吞吐率, 急速比与效率。解:(1).任务划分如下:F = ( A1 + B1 )·( A2 + B2 )·( A3 + B3 )·( A4 + B4 )(5) (6) (7)时空图如下:空间S51234567S41234S311223344S2567S11234567时间18t(2) Tk = 18t,TP = 7/18t,S = 29/18=1.611,E = 29/(18*5)=29/9032.2%3.15 一动态多功能流水线由6个功能段组成,如下图(图4):图4 其中:S1, S4, S5, S6组成乘法流水线,S1, S2, S3, S6组成加法流水线,每个功能段时间均为50ns。假定该流水线的输出结果可以干脆返回流水线输入端,而且设置有足够的缓冲寄存器。若根据最快的方式用该流水线计算。 请画出其处理过程的时空图。 计算其实际吞吐率,加速比与效率。解:(1).任务划分如下:F = X1·Y1·Z1 + X2·Y2·Z2 + X3·Y3·Z3 + X4·Y4·Z4 + X5·Y5·Z5时空图如下:空间S61234567891011121314S512345678910S412345678910S311121314S211121314S11234567891011121314时间22t(2).Tk = 22t,TP = 7/11t=7/(11*50ns)=12.727e6,S = 28/11=2.555,E = 14/33=42.42%3.18, 在Cray 1机上,按链接方式执行下面4条向量指令(括号中给出相应功能部件时间),假如向量寄存器与功能部件之间的数据传输须要1拍,试求此链接流水线的流过时间为多少拍?假如向量长度为64,则须要多少拍能得到全部结果。 V0存储器 (存储器取数:7拍)V2V0+V1 (向量加:3拍)V3V2<A3 (根据A3左移:4拍)V5V3V4 (向量逻辑乘:2拍)解答:四条指令每前后两条依次存在先写后读相关,故流水线经过时间为(1+7+1) + (1+3+1) + (1+4+1) + (1+2+1) = 24。假如向量长度为64,则需24 + (64-1) = 87拍能得到全部结果。3.19, 某机有16个向量寄存器,其中V0V5中分别放有向量A, B, C, D, E, F,向量长度均为8,向量各元素均为浮点数;处理部件采纳二个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。用类似Cray 1的链接技术,先计算(A+B)*C,在流水线不停流的状况下,接着计算(D+E)*F。(1) 求此链接流水线的流过时间为多少拍?(设寄存器入,出各需1拍)。(2) 假设每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此部件的实际的吞吐率是多少MFLOPS?解答:(1) (A+B)*C 可用以下2条指令完成:V0A+BV1V0*C流水线流过时间为(1+2+1) + (1+3+1) = 9拍(2) 实际吞吐率为第 4 页