计算机系统结构复习资料课件.docx
《计算机系统结构复习资料课件.docx》由会员分享,可在线阅读,更多相关《计算机系统结构复习资料课件.docx(32页珍藏版)》请在冰豆网上搜索。
![计算机系统结构复习资料课件.docx](https://file1.bdocx.com/fileroot1/2023-2/11/69acb1ac-c289-4a98-8f4f-a775b8ab4411/69acb1ac-c289-4a98-8f4f-a775b8ab44111.gif)
计算机系统结构复习资料课件
1.6某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执
行数量和平均时钟周期数如下:
指令类型指令执行数量平均时钟周期数
整数450001
数据传送750002
浮点80004
分支15002
求该计算机的有效CPI、MIPS和程序执行时间。
解:
(1)CPI=(45000×1+75000×2+8000×4+1500×2)/129500=1.776
(2)MIPS速率=f/CPI=400/1.776=225.225MIPS
(3)程序执行时间=(45000×1+75000×2+8000×4+1500×2)/
400=575s
1.7将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间
仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能
提高多少?
解由题可知:
可改进比例=40%=0.4部件加速比=10
根据Amdahl定律可知:
系统加速比
1
1
0.4
0.4
10
1.5625
采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。
1.8计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比1=30;部件加速比2=20;部件加速比3=10
(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进
比例为多少时,系统加速比才可以达到10?
(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改
进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
解:
(1)在多个部件可改进情况下,Amdahl定理的扩展:
S
n
(1
F
i
1
)
F
i
S
i
已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
10
1
1(-0.30.3)0.3/300.3/20/10)
F3(F
3
得F3=0.36,即部件3的可改进比例为36%。
(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:
(0.3+0.3+0.2)T=0.8T,不可改进部分的执行时间为0.2T。
已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部
件改进后的执行时间为:
0.3T0.3T0.2T'
Tn0.045T
302010
改进后整个系统的执行时间为:
Tn=0.045T+0.2T=0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
0.2T
0.245T
0.82
1.9假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据如下表所示:
操作类型
程序中的数量
(百万条指令)
改进前的执行时
间
(周期)
改进后的执行时
间
(周期)
操作11021
操作2302015
操作335103
操作41541
(1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多少?
(3)4类操作均改进后,整个程序的加速比是多少?
解:
根据Amdahl定律
Sn
(1
1
Fe)
Fe
Se
可得
操作类型
各类操作的指令
条数在程序中所
占的比例Fi
各类操作的加
速比Si
各类操作单独改
进后,程序获得的
加速比
操作111.1%21.06
操作233.3%1.331.09
操作338.9%3.331.37
操作416.7%41.14
4类操作均改进后,整个程序的加速比
S
n
(1
1
F
i
)
F
i
S
i
2.16
[例1-1]某一计算机用于商业外贸的事务处理,有大量的字符串处理操作。
由
于这种商务处理很普遍,有较大的市场,故而设计人员决定在下一代计算机的
CPU中加入字符串操作的功能。
经测试应用软件调查发现,字符串操作的使用占
整个程序运行时间的50%。
而增加此功能如用软件(如微程序)实现,则快5倍,
增加CPU成本1/5倍;如果用硬件实现,则快100倍,CPU成本增加到5倍。
问
设计人员提出增加此功能是否恰当?
如恰当则此功能应该用软件实现还是用硬
件实现?
设CPU成本占整机成本的1/3。
解:
首先来计算机器在两种情况下提高的性能和成本性能比。
设:
S为CPU未增加字符串功能时的CPU平均速度,Told为此时运行程序的
时间,Tnew为增加字符串功能后程序运行的时间,则
从上面的计算分析看到增加字符串操作功能提高了整机的性能,两种方
法均提高性能,且程度相近。
但用硬件实现时成本性能比增加了0.18倍,而用
软件实现时成本性能比却下降了0.36倍。
3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。
for(i=2;i<100;i=i+1)
a[i]=b[i]+a[i];/*s1*/
c[i+1]=a[i]+d[i];/*s2*/
a[i-1]=2*b[i];/*s3*/
b[i+1]=2*b[i];/*s4*/
解:
展开循环两次:
a[i]=b[i]+a[i];/*s1*/
c[i+1]=a[i]+d[i];/*s2*/
a[i-1]=2*b[i];/*s3*/
b[i+1]=2*b[i];/*s4*/
a[i+1]=b[i+1]+a[i+1];/*s1’*/
c[i+2]=a[i+1]+d[i+1];/*s2‘*/
a[i]=2*b[i+1];/*s3‘*/
b[i+2]=2*b[i+1];/*s4‘*/
输出相关:
无
反相关:
无
真相关:
S1&S2
由于循环引入的相关:
S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真
相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。
3.12有一指令流水线如下所示
入1234出
50ns50ns100ns200ns
(1)求连续输入10条指令,该流水线的实际吞吐率和效率;
(2)该流水线的“瓶颈”在哪一段?
请采取两种不同的措施消除此“瓶
颈”。
对于你所给出的两种新的流水线,连续输入10条指令时,其实
际吞吐率和效率各是多少?
解:
(1)
m
Tt(n1)tmax
pipelinei
i1
(5050100200)9200
2200(ns)
TP
n
T
pipeline
1
220
(ns
1
)
m
ETP
i
1
m
t
i
TP
400
4
5
11
45.45%
(2)瓶颈在3、4段。
变成八级流水线(细分)
è
123_13_24_14_4
50ns50ns50ns50ns50ns50ns
m
Tt(n1)tmax
pipelinei
i1
508950
850(ns)
TP
n
T
pipeline
1
(ns
85
1
)
m
ETP
i
1
m
ti
TP
400
8
10
17
58.82%
重复设置部件
段
4_4
48
4_3
37
4_2
2610
4_1
159
3_2
246810
3_1
13579
2
12345678910
1
12345678910时间
850ns
TP
n
T
pipeline
1
(ns
85
1
)
E
400
10
850
8
10
17
58.82%
3.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环
一次,然后才能流到第4段。
如果每段经过一次所需要的时间都是,问:
t
(1)当在流水线的输入端连续地每时间输入任务时,该流水线会发生
t
什么情况?
(2)此流水线的最大吞吐率为多少?
如果每输入一个任务,连续处理
2t
10个任务时的实际吞吐率和效率是多少?
(3)当每段时间不变时,如何提高该流水线的吞吐率?
仍连续处理10个
任务时,其吞吐率提高多少?
解:
(1)会发生流水线阻塞情况。
第1个任
务
S1S2S3S3S4
第2个任
务
S1S2
stal
l
S3S3S4
第3个任
务
S1
stal
l
S2
stal
l
S3S3S4
第4个任
务
S1
stal
l
S2
stal
l
S3S3S4
(2)
段
4
12345678910
3
1122334455667788991010
2
1
12345678910
12345678910
时间
t23
TP
max
1
2
t
T
pipeline
23t
Tp
n
T
pipeline
10
23
t
ETP
5t
4
50
92
54.35%
(3)重复设置部件
Δt
3_1
12
4
ΔtΔt
3_2
Δt
Δt
段
4
12345678910
3_2
224466881010
3_1
1133557799
2
12345678910
1
12345678910时间
14t
TP
n
T
pipeline
10
14
5
t7
t
吞吐率提高倍数=
5
7
10
23
t
t
=1.64
3.14有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用
1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输
出可以直接返回输入端或
4
暂存于相应的流水寄存器中。
现要在该流水线上计算(AiB),画出其时
ii1
空图,并计算其吞吐率、加速比和效率。
加法
2△t△t△t
12345
△t△t
乘法
解:
首先,应选择适合于流水线工作的算法。
对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1)×(A2+B2)和(A3+B3)×(A4+B4);然后求总的结果。
其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。
ABCDA×BC×DA×B×C×D段
5
A=A1+B1
4
B=A2+B2
3
2
C=A3+B3
D=A4+B4
1
012345678910111213141516
输
入A1
A2A3A4AC
A×B
1718
时间
B1B2B3B4BD
C×D
由图可见,它在18个△t时间中,给出了7个结果。
所以吞吐率为:
TP
7
18
t
如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7
个结果共需(4×5+3×3)△t=29△t。
所以加速比为:
29t
S1.61
18t
该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:
E
4
5
5
3
18
3
0.322
3.15动态多功能流水线由6个功能段组成,如下图:
加法
S1S2S3S4S5S6
乘法
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,
各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而
5
且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:
x
iyz
ii
i1
(1)画出时空图;
(2)计算实际的吞吐率、加速比和效率。
解:
机器一共要做10次乘法,4次加法。
3.16在MIPS流水线上运行如下代码序列:
LOOP:
LWR1,0(R2)
DADDIUR1,R1,#1
SWR1,0(R2)
DADDIUR2,R2,#4
DSUBR4,R3,R2
BNEZR4,LOOP
其中:
R3的初值是R2+396。
假设:
在整个代码序列的运行过程中,所有的存储
器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可
以通过寄存器文件“定向”。
问:
(1)在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列
执行的流水线时空图。
假设采用排空流水线的策略处理分支指令,且
所有的存储器访问都命中Cache,那么执行上述循环需要多少个时钟周
期?
(2)假设该流水线有正常的定向路径,请画出该指令序列执行的流水线
时空图。
假设采用预测分支失败的策略处理分支指令,且所有的存储
器访问都命中Cache,那么执行上述循环需要多少个时钟周期?
(3)假设该流水线有正常的定向路径和一个单周期延迟分支,请对该循
环中的指令进行调度,你可以重新组织指令的顺序,也可以修改指令
的操作数,但是注意不能增加指令的条数。
请画出该指令序列执行的
流水线时空图,并计算执行上述循环所需要的时钟周期数。
解:
寄存器读写可以定向,无其他旁路硬件支持。
排空流水线。
指令12345678910111213141516171819202122
LWIFIDEXMWB
DADDIUIFSSIDEXMWB
SWIFSSIDEXMWB
DADDIUIFIDEXMWB
DSUBIFSSIDEXMWB
BNEZIFSSIDEXMWB
LWIFSSIFIDEXMWB
第i次迭代(i=0..98)开始周期:
1+(i×17)
总的时钟周期数:
(98×17)+18=1684
有正常定向路径,预测分支失败。
指令12345678910111131415
LWIFIDEXMWB
DADDIUIFIDSEXMWB
SWIFSIDEXMWB
DADDIUIFIDEXMWB
DSUBIFIDEXMWB
BNEZIFIDEXMWB
LWIFmissmissIFIDEXMWB
第i次迭代(i=0..98)开始周期:
1+(i×10)
总的时钟周期数:
(98×10)+11=991
有正常定向路径。
单周期延迟分支。
LOOP:
LWR1,0(R2)
DADDIUR,2R2,#4
DADDIUR1,R1,#1
DSUBR4,R3,R2
BNEZR4,LOOP
SWR1,-4(R2)
第i次迭代(i=0..98)开始周期:
1+(i×6)
总的时钟周期数:
(98×6)+10=598
指令1234567891011
LWIFIDEXMWB
DADDIUIFIDEXMWB
DADDIUIFIDEXMWB
DSUBIFIDEXMWB
BNEZIFIDEXMWB
SWIFIDEXMWB
LWIFIDEXMWB
3.17假设各种分支指令数占所有指令数的百分比如下:
条件分支20%(其中的60%是分支成功的)
跳转和调用5%
现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析
出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。
第一个流水段
是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。
请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的
加速比是多少?
解:
没有控制相关时流水线的平均CPI=1
存在控制相关时:
由于无条件分支在第二个时钟周期结束时就被解析出来,
而条件分支
要到第3个时钟周期结束时才能被解析出来。
所以:
(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,
对无条件分支,有一个额外的stall:
CPI=1+20%*2+5%*1=1.45
加速比S=CPI/1=1.45
(2)若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的
stall,对无条件分支和成功的条件分支,有一个额外的stall1:
CPI=1+20%*(60%*1+40%*2)+5%*1=1.33
加速比S=CPI/1=1.33
(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的
stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地
址已经由PC值给出,不必等待,所以无延迟:
CPI=1+20%*(60%*2+40%*0)+5%*1=1.29
加速比S=CPI/1=1.29
3.18在CRAY-1机器上,按照链接方式执行下述4条向量指令(括号中给出
了相应功能部件的执行时间),如果向量寄存器和功能部件之间的数据传送需要
1拍,试求此链接流水线的通过时间是多少拍?
如果向量长度为64,则需多少拍
才能得到全部结果?
V0←存储器(从存储器中取数:
7拍)
V2←V0+V1(向量加:
3拍)
V3←V24拍)
V5←V3∧V4(向量逻辑乘:
2拍)
解:
通过时间就是每条向量指令的第一个操作数执行完毕需要的时间,也就
是各功能流水线由空到满的时间,具体过程如下图所示。
要得到全部结果,
在流水线充满之后,向量中后继操作数继续以流水方式执行,直到整组向量
执行完毕。
访存
存储器
V0V1V2V3V4V5
向量加左移
向量逻
辑乘
A3
T=(111
通过7113412123
+)+(++)+(++)+(++)=(拍)
T
总共
T通过641236386
+(-)=+=(拍)
3.19某向量处理机有16个向量寄存器,其中V0~V5中分别放有向量A、B、
C、D、E、F,向量长度均为8,向量各元素均为浮点数;处理部件采用两条单功
能流水线,加法功能部件时间为2拍,乘法功能部件时间为3拍。
采用类似于
CARY-1的链接技术,先计算(A+B)*C,在流水线不停流的情况下,接着计算(D+E)
*F。
(1)求此链接流水线的通过时间?
(设寄存器入、出各需1拍)
(2)假如每拍时间为50ns,完成这些计算并把结果存进相应寄存器,此
处理部件的实际吞吐率为多少MFLOP?
S
解:
(1)我们在这里假设A+B的中间结果放在V6中,(A+B)×C地最后结
果放在V7中,D+E地中间结果放在V8中,(D+E)×F的最后结果放在V9
中。
具体实现参考下图:
V0AV1BV6V2CV7
向量加向量乘
V3DV4EV8V5FV9
通过时间应该为前者((A+B)×C)通过的时间:
T通过=(1+2+1)+(1+3+1)=9(拍)
(2)在做完(A+B)×C之后,作(C+D)×E就不需要通过时间了。
V6←A+B
V7←V6×C
V8←D+E
V9←V8×F
TT通过+(8-1)824(拍)1200(ns)
TP
32
T
26.67MFLOP
S
5.8组相联Cache的失效率比相同容量直接映象Cache的失效率低。
由此能
否得出结论:
采用组相联一定能带来性能上的提高?
为什么?
答:
不一定。
因为组相联命中率的提高是以增加命中时间为代价的,组相联
需要增加多路选择开关。
5.9写出三级Cache的平均访问时间的公式。
解:
平均访存时间=命中时间+失效率×失效开销
只有第I层失效时才会访问第I+1。
设三级