体系结构作业解题参考.docx
《体系结构作业解题参考.docx》由会员分享,可在线阅读,更多相关《体系结构作业解题参考.docx(15页珍藏版)》请在冰点文库上搜索。
体系结构作业解题参考
体系结构作业解题参考
第1章习题
6.某处理机时钟频率为f=30MHz,处理速度为20MIPS,用它来执行一个已知混合程序。
假定每次存储器访问延迟时间为1个时钟周期。
问:
⑴此处理机的有效CPI是多少?
⑵假定新处理机的时钟频率f提高到60MHz,但存储子系统速率不变。
这样,每次存储器访问需2个时钟周期。
如果30%的指令每条只需要1次访存,而另外5%指令每条需2次访存,且假定已知混合程序的指令数不变,并与原处理机兼容,请定量分析改进后的新处理机性能。
解:
⑴由
得
⑵设已知混合程序的总指令执行数为IC,则改进前程序执行所需的总时钟周期数NCO为
而改进后的混合程序的指令数不变,且每次访存需增加1个时钟周期,故改进后程序执行所需的总时钟周期数NCn为
所以,改进后,处理机的有效CPI为
故改进后的处理机速度为
第2章习题
6.一条线性流水线有4个流水段,每个流水段的延迟时间都为△t。
开始5个
△t,每间隔一个△t向流水线输入一个任务,然后停顿2个△t,如此重复。
⑴画出流水线的时空图。
⑵求流水线的实际吞吐率、加速比和效率。
解:
⑴时空图如下:
⑵设流入流水线的任务总数为n,若以5个任务为一组,则共可分为
组。
由于两组任务之间间隔2个时钟周期,所以完成n个任务的总时间为
所以有
,
,
。
7.用一条5个流水段的浮点加法流水线计算
。
每个流水段的延迟时间均相等,流水线的输出端与输入端之间有直接数据通路,而且设置有足够的缓冲寄存器。
要求用尽可能短的时间完成计算,画出流水线时空图,计算流水线的P、S、E值。
解:
流水线时空图如下
由时空图可知,完成全部计算共用了21△t,共执行了9次加法运算。
所以
,
,
。
10.在一台流水线处理机上执行下面程序。
每条指令都要经过“取指”、“译码”、“执行”、“写结果”4个流水段,每个流水段延迟时间都是5ns。
但在“执行”流水段LS部件和ALU部件只能其中一个工作,其中LS部件完成LOAD和STORE操作,ALU部件完成其它操作。
这两个操作部件的输出端和输入端有直接输出通路相互切换连接,且ALU部件产生的条件码也能直接送入控制器。
I1SUBR0,R0
I2LOADR1,#8
I3LOOP:
LOADR2,A(R1)
I4MULR2,R1
I5ADDR0,R2
I6DNER1LOOP
I7STORER0,M(X)
假定采用静态分支预测技术,每次都预测转移不成功。
要求:
⑴画出指令流水线的时空图。
⑵计算流水线的吞吐率和加速比,并分别计算译码部件和ALU部件的使用效率。
解:
⑴时空图如下:
⑵
,
,
,
。
第3章习题
7.第6题中假设所有运算型指令都在译码(ID)段读寄存器,在写结果(WB)段写寄存器,采用顺序发射顺序完成的调度策略。
⑴画出流水线执行指令序列的时空图。
⑵计算执行这个程序所用的时间。
I1LOADR0,M(A)
I2ADDR1,R0
I3LOADR2,M(B)
I4MULR3,R4
I5ANDR4,R5
I6ADDR2,R5
解:
⑴
⑵执行时间=10ns×11=110ns.
8.第6题中假设所有运算型指令都在译码(ID)段读寄存器,在写结果(WB)段写寄存器,采用顺序发射乱序完成的调度策略。
⑴画出流水线执行指令序列的时空图。
⑵计算执行这个程序所用的时间。
解:
⑴
⑵执行时间=10ns×10=100ns.
9.第6题中假设每个操作部件的输出端都有直接数据通路与输入端相连,采用顺序发射乱序完成的调度策略。
⑴画出流水线执行指令序列的时空图。
⑵计算执行这个程序所用的时间。
解:
⑴
⑵执行时间=10ns×8=80ns.
11.解:
两种静态指令调整方案的时空图如下:
第4章习题
3.解:
⑴向量链接图如下
⑵T=(1+7+1)+(1+3+1)+(1+4+1)+(1+2+1)+(64-1)=87(拍)。
⑶流过时间=1+7+1+1+3+1+1+4+1+1+2+1=24(拍)。
4.解:
⑴第1、2两条指令并行执行,然后与第3条指令链接,第4条指令顺序执行。
⑵T=[(1+6+1)+(1+7+1)+(32-1)]+[(1+6+1)+(32-1)]=87(拍)。
5.⑴V0←存储器
V1←V2+V3
V4←V5*V6
3条指令全并行执行,总时间为
T=(1+7+1)+(32-1)=40(拍)
⑵V2←V0*V1
V3←存储器
V4←V2+V3
第1、2条指令并行执行,第3条指令顺序执行。
总时间为
T=[(1+7+1)+(32-1)]+[(1+6+1)+(32-1)]=79(拍)
⑷V0←存储器
V1←1/V0
V3←V1+V2
V5←V3*V4
4条指令全部链接执行。
总时间为
T=(1+6+1)+(1+14+1)+(1+6+1)+(1+7+1)+(32-1)=72
⑸V0←存储器
V1←V2+V3
V4←V5*V6
S0←S1+S2
4条指令全部并行执行。
总时间为
T=(1+7+1)+(32-1)=40(拍)
⑹V3←存储器
V2←V0+V1
V3←V2*V1
V5←V3*V4
第1、2条指令并行执行,第3、4条指令均顺序执行。
总时间为
T=[(1+6+1)+(32-1)]+[(1+7+1)+(32-1)]+[(1+7+1)+(32-1)]=119
7.某机有16个向量寄存器,其中V0—V5分别放有A、B、C、D、E、F,向量长度均为32,向量各元素均为浮点数;处理部件采用两个单功能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。
采用链接技术,先计算
(A+B)*C,在流水线不停顿的情况下,接着计算(D+E)*F。
⑴设寄存器入/出各需1拍,此链接流水线的流过时间为多少拍?
⑵假设每拍为50ns,完成这些计算并把结果存入相应寄存器,此部件的实际吞吐率是多少MFLOPS?
解:
写出向量操作序列如下:
V6←V0+V1
V7←V6*V2
V8←V3+V4
V9←V8*V5
显然可将第1、2两条指令链接,第3、4两条指令链接;且第2组操作紧随第1组操作流入流水线,使流水线不停顿。
⑴流过时间=1+2+1+1+3+1=9(拍)。
⑵总时间T=[(1+2+1)+(1+3+1)+(64-1)]*50ns=3600ns,
完成的浮点运算总次数N=2*64=128,所以,该部件的实际吞吐率为
8.在某向量机上计算D=A*(B+C),设A、B、C均为长度为128的向量,并已存放在相应寄存器中,都利用浮点功能部件和链接技术。
该机向量寄存器长度为64。
⑴完成计算任务所需要的最短时间为多少拍?
⑵实际吞吐率是多少MFLOPS?
解:
本题的向量需要分两段处理,每段长度均为64。
设各向量存放的向量寄存器为:
A存于V0和V1,B存于V2和V3,C存于V4和V5,D存于V6和V7,且该机有足够的向量寄存器。
则完成计算所需的操作序列如下:
V8←V2+V4
V6←V0*V8
V8←V3+V5
V7←V1*V8
⑴显然可将第1、2两条指令链接,第3、4两条指令链接。
设加法功能部件时间为6拍,乘法功能部件时间为7拍,向量寄存器入/出各需1拍,则总时间为
T=[(1+6+1)+(1+7+1)+(64-1)]*2=160(拍)
⑵完成计算任务所做的浮点操作总次数为N=2*128=256。
设该机的时钟频率为f,则其实际吞吐率为
4.设E为交换函数,S为均匀洗牌函数,B为蝶式函数,PM2I为移数函数,函数的自变量是十进制数表示的处理机编号。
现有32台处理机,其编号为0,1,2,…,31.
⑴分别计算下列互连函数:
E2(12)S(8)B(9)PM2I+3(28)E0(S(4))S(E0(18))
⑵用E0和S构成均匀洗牌交换网(每步只能使用E0和S一次),网络直径是多少?
从5号处理机发送数据到7号处理机,最短路径要经过几步?
请列出经过的处理机编号。
⑶采用移数函数构成互连网,网络直径是多少?
结点度是多少?
与2号处理机距离最远的是几号处理机?
解:
⑴E2(12)=E2(01100)=(01000)2=8,
S(8)=S(01000)=(10000)2=16,
B(9)=B(01001)=(11000)2=24,
PM2I+3(28)=28+23mod32=4,
E0(S(4))=E0(S(00100))=E0(01000)=(01001)2=9,
S(E0(18))=S(E0(10010))=S(10011)=(00111)2=7.
⑵依题意,均匀洗牌交换网的互连函数设计为:
S(E0(X))。
S(E0(00000))=00010,S(E0(00001))=00000,
S(E0(00010))=00110,S(E0(00011))=00100,
S(E0(00100))=01010,S(E0(00101))=01000,
S(E0(00110))=01110,S(E0(00111))=01100,
S(E0(01000))=10010,S(E0(01001))=10000,
S(E0(01010))=10110,S(E0(01011))=10100,
S(E0(01100))=11010,S(E0(01101))=11000,
S(E0(01110))=11110,S(E0(01111))=11100,
S(E0(10000))=00011,S(E0(10001))=00001,
S(E0(10010))=00111,S(E0(10011))=00101,
S(E0(10100))=01011,S(E0(10101))=01001,
S(E0(10110))=01111,S(E0(10111))=01101,
S(E0(11000))=10011,S(E0(11001))=10001,
S(E0(11010))=10111,S(E0(11011))=10101,
S(E0(11100))=11011,S(E0(11101))=11001,
S(E0(11110))=11111,S(E0(11111))=11101。
以上互连关系用图形描述如下:
0→2→6→14→30→31→29→25→17→1
3→4→10→22→15→28→27→21→9→16
5→8→18→7→12→26→23→13→24→19
11→20
所以有:
网络直径=∞;从5号结点发送数据到7号结点,最短路径要经过3步,即5→8→18→7。
⑶采用移数函数构成互连网,结点间的互连关系是:
PM2+0:
(0123…293031)
PM2-0:
(31302928…210)
PM2+1:
(0246…2830)(1357…2931)
PM2-1:
(302826…420)(312927…531)
PM2+2:
(0481216202428)(1591317212529)
(26101418222630)(37111519232731)
PM2-2:
(2824201612840)(2925211713951)
(30262218141062)(31272319151173)
PM2+3:
(081624)(191725)(2101826)(3111927)
(3122028)(5132129)(6142230)(7152331)
PM2-3:
(241680)(251791)(2618102)(2719113)
(2820123)(2921135)(3022146)(3123157)
PM2±4:
(016)(117)(218)(319)(420)(521)(622)(723)
(824)(925)(1026)(1127)(1228)(1329)(1430)
(1531)
设有8个结点,结点之间的互连关系固定为(0,6)(1,7)(2,4)(3,5)。
⑴写出对应这种互连关系的互连函数的一般形式。
⑵如采用动态多级立方体网络实现这种结点之间的互连,画出网络结构图,并指出其控制方式和各级开关的状态。
解:
⑴互连函数的一般形式为
⑵采用2×2开关模块,网络结构图如下:
采用级控制方式,各级开关的状态为:
L2L1L0=110。