计算机系统结构期末试题总结 下载本文

内容发布更新时间 : 2024/11/5 2:03:52星期一 下面是文章的全部内容请认真阅读。

在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占20%;由于每个分支指令之前都需要有比较指令,因此比较指令也占20%。由于CPUA在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.25倍。哪一个CPU更快?如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,哪一个CPU更快呢? 9、答案内容:

解:我们不考虑所有系统问题,所以可用CPU性能公式。占用2个时钟周期的分支指令占总指令的20%,剩下的指令占用1个时钟周期。所以 CPIA = 0.2 ? 2 + 0.80 ? 1 = 1.2 1分 则CPU性能为:

总CPU时间A = IC ? 1.2 ? 时钟周期A 1分 根据假设,有:

时钟周期B = 1.25 ? 时钟周期A 1分

在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的80%,分支指令的比例为:

20%/80% = 25% 2分 这些分支指令占用2个时钟周期,而剩下的75%的指令占用1个时钟周期,因此: CPIB = 0.25 ? 2 + 0.75 ? 1 = 1.25 1分 因为CPUB不执行比较,故: ICB = 0.8 ? ICA 因此CPUB性能为:

总CPU时间B = ICB ? CPIB ? 时钟周期B = 0.8 ? ICA ? 1.25 ? (1.25 ? 时钟周期A) = 1.25 ? ICA ? 时钟周期A 2分 在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。

如果CPUA的时钟周期时间仅仅比CPUB快1.1倍,则 时钟周期B = 1.10 ? 时钟周期A CPUB的性能为:

总CPU时间B = ICB ? CPIB ? 时钟周期B = 0.8 ? ICA ? 1.25 ? (1.10 ? 时钟周期A) = 1.10 ? ICA ? 时钟周期A

因此CPUB由于执行更少指令条数,比CPUA运行更快。 2分 10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:584 2、题型:计算题 3、难度级别:2

4、知识点:一、计算机体系结构的基本概念 5、分值:10

6、所需时间:15分钟

7、试题关键字:CPU性能公式 8、试题内容:

对于一台400MHz计算机执行标准测试程序,程序中指令类型,执行数量和平均时钟周期数如下:

指令类型 指令执行数量 平均时钟周期数 整数 45000 1 数据传送 75000 2 浮点 8000 4 分支 1500 2 求该计算机的有效CPI、MIPS和程序执行时间。 9、答案内容:

解:CPI??(ICi?CPIi)/IC 1分

CPI?45000?1?75000?2?8000?4?1500?2?1.776 3分

129500f400?106MIPS速率???225.225MIPS 3分 66CPI?101.776?10 程序执行时间=(45000?1?75000?2?8000?4?1500?2)/400=575s 3

10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:585 2、题型:计算题 3、难度级别:2

4、知识点:一、计算机体系结构的基本概念 5、分值:10

6、所需时间:15分钟 7、试题关键字:CPI 8、试题内容:

假定要在一个时钟速率为40MHz的标量处理机上执行20万条目标代码指令的程序,该程序中含有4种主要类型指令,每种指令类型所占的比例及CPI数如图所示。要求计算:

(1)在单处理机上执行该程序的平均CPI.

(2)根据(1)所得到的CPI值,计算相应的MIPS速率。 指令类型 CPI 指令所占比例 ALU Branch指令 访存指令(Cache 不合中时) 9、答案内容: 1 4 8 60% 18% 12% 10% LOAD/STORE指令(Cache命中时) 4 解:CPI??(ICi?CPIi)/IC=CPIi ?ICi/IC=1 ?0.6+4 ?0.18+4 ?0.12+8

?0.1=2.24 5分

f40?106MIPS速率???17.86MIPS阶段 5分

CPI?1062.24?10610、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:586 2、题型:计算题 3、难度级别:3

4、知识点:一、计算机体系结构的基本概念 5、分值:10

6、所需时间:15分钟

7、试题关键字:Amdahl定律 8、试题内容:

计算机系统有三个部件可以改进,这三个部件的加速比如下:

部件加速比1=30; 部件加速比2=20; 部件加速比3=10;

(1) 如果部件1和部件2的可改进比例为30%,那么当部件3的可改进比例为多少时,系统的加速比才可以达到10?

(2) 如果三个部件的可改进比例为30%、30%和20%,三个部件同时改进后,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少? 9、答案内容:

解:在多个部件可改进情况下Amdahl定律的扩展:

?f?T?T(1?f)?e

eo??e?Se?S?1(1?fe)?feSe

S?1(1??fi)??iifiSi 2分

?1式中,fi为可加速部件i在未优化系统中所占的比例;Si是部件i的加速比。

?f?ffS??[1?(f1?f2?f3)]?1?2?3?S1S2S3??

?10.30.3f3??10??[1?(0.3?0.3?f3)]????302030??

f3?65?0.36180 4分

p?[1?(0.3?0.3?0.2)]T0.3T0.3T0.2T???0.2T3020100.2?0.30.30.2???0.23020100.2?0.60.91.212???6060606012??0.8214.7 4分

10、评分细则:10分/小题,评分细则分布在答案内容中。

----------------------------------------------------------------------

1、试题序号:587 2、题型:计算题 3、难度级别:3

4、知识点:二、计算机指令集结构设计 5、分值:10

6、所需时间:15分钟 7、试题关键字:

8、试题内容:指令集结构

对于下面的三个赋值语句:

A=B+C B=A+C D=A-B

试用堆栈型、累加器型和通用寄存器型指令集 (1)分别用汇编指令加以编写。

(2)为衡量存储器使用效率,假设对三种指令集均有:操作码占用一字节,存储器地址占用二字节,操作数占用四字节。计算三种代码序列自存储器取指所需总字节,取数或存数所需的总字节。哪一种结构需传送的总字节数最少? 9、答案内容:

答:(1)汇编指令编写如下: 5分 堆栈型 PUSH B PUSH C ADD TOP A PUSH C ADD TOP B PUSH A SUB POP D 取指: 存取数: 总计: 累加器型 LOAD B ADD C STORE A ADD C STORE B LOAD A SUB B STORE D 堆栈型 10+7*2=24 7*4=28 52字节 寄存器型 LOAD R1,B ADD R1,C STORE A,R1 LOAD R2,C ADD R2,R1 STORE B,R2 SUB R1,R2 STORE D,R1 (2)据上面的指令序列,计算得: 5分 累加器型 8+8*2=24 8*4=32 56字节 寄存器型 8+20*2=28 6*4=24 64字节

10、评分细则:10分/小题,评分细则分布在答案内容中。

---------------------------------------------------------------------

-

1、试题序号:588 2、题型:计算题 3、难度级别:3

4、知识点:二、计算机指令集结构设计 5、分值:10

6、所需时间:15分钟

7、试题关键字:DLX指令集结构 8、试题内容:

1、现有如下C语言源代码:

for (i=0;i<=100,i++) {A[i]=B[i]+C;} 其DLX实现代码如下:

ADDI R1,R0,#0

SW 2000(R0),R1 loop:

LW R1,2000(R0) MULT R2,R1,#4 ADDI R3,R2,#5000

LW R4, 0(R3) LW R5,1500(R0)

ADD R6,R4,R5

LW R1,2000(R0) MULT R2,R1,#4 ADDI R7,R2,#0 SW 0(R7),R6

LW R1,2000(R0) ADDI R1,R1,#1 SW 2000(R0),R1

LW R1,2000(,R0) ADDI R8,R1,# -101 BNEZ R8,loop

其中,A和B是两个32位整数的数组,C和i均是32位整数。假设所有数据的值及其地址均保存在存储器中,A和B的起始地址分别是0和5000。C和i的地址分别是 1500和2000。在循环的两次迭代之间不将任何数据保存在寄存器中。 求:(1)该程序段共执行了多少条指令。

(2)程序对存储器中的数据访问了多少次?

(3)DLX代码的大小(占用存储空间大小)是多少字节? 9、答案内容: