计算机系统结构考试计算题Word下载.docx

上传人:b****6 文档编号:17219285 上传时间:2022-11-29 格式:DOCX 页数:15 大小:360.89KB
下载 相关 举报
计算机系统结构考试计算题Word下载.docx_第1页
第1页 / 共15页
计算机系统结构考试计算题Word下载.docx_第2页
第2页 / 共15页
计算机系统结构考试计算题Word下载.docx_第3页
第3页 / 共15页
计算机系统结构考试计算题Word下载.docx_第4页
第4页 / 共15页
计算机系统结构考试计算题Word下载.docx_第5页
第5页 / 共15页
点击查看更多>>
下载资源
资源描述

计算机系统结构考试计算题Word下载.docx

《计算机系统结构考试计算题Word下载.docx》由会员分享,可在线阅读,更多相关《计算机系统结构考试计算题Word下载.docx(15页珍藏版)》请在冰豆网上搜索。

计算机系统结构考试计算题Word下载.docx

(3)重复设置部件

吞吐率提高倍数=

=1、64

3、14有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或

暂存于相应的流水寄存器中。

现要在该流水线上计算,画出其时空图,并计算其吞吐率、加速比与效率。

首先,应选择适合于流水线工作的算法。

对于本题,应先计算A1+B1、A2+B2、A3+B3与A4+B4;

再计算(A1+B1)×

(A2+B2)与(A3+B3)×

(A4+B4);

然后求总的结果。

其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

由图可见,它在18个△t时间中,给出了7个结果。

所以吞吐率为:

如果不用流水线,由于一次求积需3△t,一次求与需5△t,则产生上述7个结果共需(4×

5+3×

3)△t=29△t。

所以加速比为:

该流水线的效率可由阴影区的面积与5个段总时空区的面积的比值求得:

3、15动态多功能流水线由6个功能段组成,如下图:

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

(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)假设该流水线有正常的定向路径与一个单周期延迟分支,请对该循环中的指令进行调度,您可以重新组织指令的顺序,也可以修改指令的操作数,但就是注意不能增加指令的条数。

请画出该指令序列执行的流水线时空图,并计算执行上述循环所需要的时钟周期数。

寄存器读写可以定向,无其她旁路硬件支持。

排空流水线。

第i次迭代(i=0、、98)开始周期:

1+(i×

17)

总的时钟周期数:

(98×

17)+18=1684

有正常定向路径,预测分支失败。

10)

10)+11=991

有正常定向路径。

单周期延迟分支。

LWR1,0(R2)

DADDIUR2,R2,#4

DADDIUR1,R1,#1

DSUBR4,R3,R2

BNEZR4,LOOP

SWR1,-4(R2)

第i次迭代(i=0、、98)开始周期:

1+(i×

6)

6)+10=598

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

5、10假设对指令Cache的访问占全部访问的75%;

而对数据Cache的访问占全部访问的25%。

Cache的命中时间为1个时钟周期,失效开销为50个时钟周期,在混合Cache中一次load或store操作访问Cache的命中时间都要增加一个时钟周期,32KB的指令Cache的失效率为0、39%,32KB的数据Cache的失效率为4、82%,64KB的混合Cache的失效率为1、35%。

又假设采用写直达策略,且有一个写缓冲器,并且忽略写缓冲器引起的等待。

试问指令Cache与数据Cache容量均为32KB的分离Cache与容量为64KB的混合Cache相比,哪种Cache的失效率更低?

两种情况下平均访存时间各就是多少?

(1)根据题意,约75%的访存为取指令。

因此,分离Cache的总体失效率为:

(75%×

0、15%)+(25%×

3、77%)=1、055%;

容量为128KB的混合Cache的失效率略低一些,只有0、95%。

(2)平均访存时间公式可以分为指令访问与数据访问两部分:

平均访存时间=指令所占的百分比×

(读命中时间+读失效率×

失效开销)+数据所占的百分比×

(数据命中时间+数据失效率×

失效开销)

所以,两种结构的平均访存时间分别为:

分离Cache的平均访存时间=75%×

(1+0、15%×

50)+25%×

(1+3、77%×

50)

=(75%×

1、075)+(25%×

2、885)=1、5275

混合Cache的平均访存时间=75%×

(1+0、95%×

(1+1+0、95%×

1、475)+(25%×

2、475)=1、725

因此,尽管分离Cache的实际失效率比混合Cache的高,但其平均访存时间反而较低。

分离Cache提供了两个端口,消除了结构相关。

5、11给定以下的假设,试计算直接映象Cache与两路组相联Cache的平均访问时间以及CPU的性能。

由计算结果能得出什么结论?

(1)理想Cache情况下的CPI为2、0,时钟周期为2ns,平均每条指令访存1、2次;

(2)两者Cache容量均为64KB,块大小都就是32字节;

(3)组相联Cache中的多路选择器使CPU的时钟周期增加了10%;

(4)这两种Cache的失效开销都就是80ns;

(5)命中时间为1个时钟周期;

(6)64KB直接映象Cache的失效率为1、4%,64KB两路组相联Cache的失效率为1、0%。

平均访问时间=命中时间+失效率×

失效开销

平均访问时间1-路=2、0+1、4%*80=3、12ns

平均访问时间2-路=2、0*(1+10%)+1、0%*80=3、0ns

两路组相联的平均访问时间比较低

CPUtime=(CPU执行+存储等待周期)*时钟周期

CPUtime=IC(CPI执行+总失效次数/指令总数*失效开销)*时钟周期

=IC((CPI执行*时钟周期)+(每条指令的访存次数*失效率*失效开销*时钟周期))

CPUtime1-way=IC(2、0*2+1、2*0、014*80)=5、344IC

CPUtime2-way=IC(2、2*2+1、2*0、01*80)=5、36IC

相对性能比:

5、36/5、344=1、003

直接映象cache的访问速度比两路组相联cache要快1、04倍,而两路组相联Cache的平均性能比直接映象cache要高1、003倍。

因此这里选择两路组相联。

5、12假设一台计算机具有以下特性:

(1)95%的访存在Cache中命中;

(2)块大小为两个字,且失效时整个块被调入;

(3)CPU发出访存请求的速率为109字/s;

(4)25%的访存为写访问;

(5)存储器的最大流量为109字/s(包括读与写);

(6)主存每次只能读或写一个字;

(7)在任何时候,Cache中有30%的块被修改过;

(8)写失效时,Cache采用按写分配法。

现欲给该计算机增添一台外设,为此首先想知道主存的频带已用了多少。

试对于以下两种情况计算主存频带的平均使用比例。

(1)写直达Cache;

(2)写回法Cache。

采用按写分配

(1)写直达cache访问命中,有两种情况:

读命中,不访问主存;

写命中,更新cache与主存,访问主存一次。

访问失效,有两种情况:

读失效,将主存中的块调入cache中,访问主存两次;

写失效,将要写的块调入cache,访问主存两次,再将修改的数据写入cache与主存,访问主存一次,共三次。

上述分析如下表所示。

访问命中

访问类型

频率

访存次数

Y

95%*75%=71、3%

95%*25%=23、8%

1

N

5%*75%=3、8%

2

5%*25%=1、3%

3

一次访存请求最后真正的平均访存次数=(71、3%*0)+(23、8%*1)+(3、8%*2)+(1、3%*3)=0、35

已用带宽=0、35×

109/109=35、0%

(2)写回法cache访问命中,有两种情况:

写命中,不访问主存。

采用写回法,只有当修改的cache块被换出时,才写入主存;

访问失效,有一个块将被换出,这也有两种情况:

如果被替换的块没有修改过,将主存中的块调入cache块中,访问主存两次;

如果被替换的块修改过,则首先将修改的块写入主存,需要访问主存两次;

然后将主存中的块调入cache块中,需要访问主存两次,共四次访问主存。

块为脏

95%*70%=66、5%

95%*30%=28、5%

5%*70%=3、5%

5%*30%=1、5%

4

一次访存请求最后真正的平均访存次数=66、5%*0+28、5%*0+3、5%*2+1、5%*4=0、13

已用带宽=0、13×

109/109=13%

5、13在伪相联中,假设在直接映象位置没有发现匹配,而在另一个位置才找到数据(伪命中)时,不对这两个位置的数据进行交换。

这时只需要1个额外的周期。

假设失效开销为50个时钟周期,2KB直接映象Cache的失效率为9、8%,2路组相联的失效率为7、6%;

128KB直接映象Cache的失效率为1、0%,2路组相联的失效率为0、7%。

(1)推导出平均访存时间的公式。

(2)利用

(1)中得到的公式,对于2KBCache与128KBCache,计算伪相联的平均访存时间。

不管作了何种改进,失效开销相同。

不管就是否交换内容,在同一“伪相联”组中的两块都就是用同一个索引得到的,因此失效率相同,即:

失效率伪相联=失效率2路。

伪相联cache的命中时间等于直接映象cache的命中时间加上伪相联查找过程中的命中时间*该命中所需的额外开销。

命中时间伪相联=命中时间1路+伪命中率伪相联×

交换或不交换内容,伪相联的命中率都就是由于在第一次失效时,将地址取反,再在第二次查找带来的。

因此伪命中率伪相联=命中率2路-命中率1路=(1-失效率2路)-(1-失效率1路)

=失效率1路-失效率2路。

交换内容需要增加伪相联的额外开销。

平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×

+失效率2路×

失效开销1路

将题设中的数据带入计算,得到:

平均访存时间2Kb=1+(0、098-0、076)*1+(0、076*50)=4、822

平均访存时间128Kb=1+(0、010-0、007)*1+(0、007*50)=1、353

显然就是128KB的伪相联Cache要快一些。

5、14假设采用理想存储器系统时的基本CPI就是1、5,主存延迟就是40个时钟周期;

传输速率为4字节/时钟周期,且Cache中50%的块就是修改过的。

每个块中有32字节,20%的指令就是数据传送指令。

并假设没有写缓存,在TLB失效的情况下需要20时钟周期,TLB不会降低Cache命中率。

CPU产生指令地址或Cache失效时产生的地址有0、2%没有在TLB中找到。

(1)在理想TLB情况下,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache与32KB直接映象统一Cache机器的实际CPI;

(2)在实际TLB情况下,用

(1)的结果,计算均采用写回法16KB直接映象统一Cache、16KB两路组相联统一Cache与32KB直接映象统一Cache机器的实际CPI;

其中假设16KB直接映象统一Cache、16KB两路组相联统一Cache与32KB直接映象统一Cache的失效率分别为2、9%、2、2%与2、0%;

25%的访存为写访问。

CPI=CPI执行+存储停顿周期数/指令数

存储停顿由下列原因引起:

●从主存中取指令

●load与store指令访问数据

●由TLB引起

(1)对于理想TLB,TLB失效开销为0。

而对于统一Cache,R指令=R数据

P指令=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为读失效,P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为写失效,且块就是干净的,

P数据=主存延迟+传输一个块需要使用的时间=40+32/4=48(拍)

若为写失效,且块就是脏的,

P数据=主存延迟+传输两个块需要使用的时间=40+64/4=56(拍)

CPI=1、5+[RP+(RP*20%)+0]

指令访存全就是读,而数据传输指令Load或Store指令,

f数据*P数据=读百分比*(f数据*P数据)+写百分比*(f数据*P干净数据*其对应的百分比

+f数据*P脏数据*其对应的百分比)

=20%*(75%×

48+25%*(50%*48+50%*(48+16)))=50(拍)

代入上述公式计算出结果为:

配置

失效率

CPI

16KB直接统一映象

0、029

4、4

16KB两路统一映象

0、022

3、4

32KB直接统一映象

0、020

3、2

(2)

将f数据(数据访问指令频率),Rt与Pt(分别就是TLB的失效率与失效开销),Rc与Pw(分别就是Cache的失效率与写回的频率)代入公式得:

TLB停顿/指令数={[1+f数据]*[Rc(1+Rw)]}RtPt

其中,1+f数据:

每条指令的访问内存次数;

Rc(1+Rw):

每次内存访问需要的TLB访问次数。

由条件得:

TLB停顿/指令数={[1+20%]*[Rc(1+25%)]}0、2%×

20

理想TLB的CPI

4、0

8、2一个具有32台处理机的系统,对远程存储器访问时间就是2000ns。

除了通信以外,假设计算中的访问均命中局部存储器。

当发出一个远程请求时,本地处理机挂起。

处理机的时钟周期时间就是10ns,假设指令基本的CPI为1、0(设所有访存均命中Cache)。

对于下述两种情况:

(1)没有远程访问;

(2)0、5%的指令需要远程访问。

试问前者比后者快多少?

已知远程访问率p=0、5%,远程访问时间t=2000ns,时钟周期T=10ns

远程访问开销C=t/T=2000ns/10ns=200(时钟周期数)

有0、5%远程访问的机器的实际CPI2为:

CPI2=CPI1+p×

C=1、0+0、5%×

200=2、0

只有局部访问的机器的基本CPI1=1、0

CPI2/CPI1=2、0/1、0=2(倍)

因此,没有远程访问状态下的机器速度就是有0、5%远程访问的机器速度的2倍。

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 初中教育 > 理化生

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1