/ 知识库     / 试卷库

考研2000年清华大学( )

假定我们有一台计算机,如果所有的Cache 访问都命中的话,它的CPI是2.0。唯一的数据访问指令是Store和Load,它们占指令总数的40%,不命中的损失是25个时钟周期,不命中率是2%。如果所有的指令访问Cache都命中的话,那么机器的速度是存在Cache不命中的多少倍?

设机器执行的总指令条数为100;所有存储器访问都在Cache命中时,所需时钟周期数为T1;在一般Cache 命中率下,执行上述指令的时钟周期为T2则:

T1=指令条数×平均CPI = 100×2.0 = 200

T2=∑指令条数×CPI

=指令总条数×平均CPI+Cache不命中指令条数×引起的延迟 = 100×2.0+100×40%×2%×25=220

则加速比 S = T2÷T1 = 1.1,则在Cache 全部命中情况下的机器速度是在Cache 有缺失情况下的 1.1 倍。

考研2000年清华大学( )

某台计算机只有Load/Store指令能对存储器进行读/写操作,其他指令只对寄存器进行操作。根据程序跟踪实验结果,已知每种指令所占比例及CPI为:

逻辑指令:CPI为1,占比43%

Load指令:CPI为2,占比21%

Store指令:CPI为2,占比12%

转移指令:CPI为2,占比24%

① 求上述情况下的平均CPI;

② 假设程序由M条指令组成。算术逻辑运算中25%的指令的两个操作数中的一个已在寄存器中,另一个必须在算术逻辑指令执行前用Load指令从存储器取到寄存器中。因此有人建议增加另一种算术逻辑指令,其特点是一个操作数取自寄存器,另一个操作数取自存储顺,即寄存器-存储器型,假设这种指令的CPI等于2,同时,转移指令的CPI变为3。求新指令系统的平均CPI。

① CPI平均 = ∑CPIi×Pi = 0.43×1+0.21×2+0.12×2+0.24×2 = 1.57

② 假设总的指令条数为100,则当加入新的算术逻辑指令后,各指令的条数为:

原逻辑运算指令:43×75%

新逻辑运算指令:43×25%

Load指令:21-43×25%

Store指令:12

转移指令:24

这样,总的指令条数变成89.25条,各指令的比例及CPI为:

原逻辑运算指令:CPI为1,占比43×75%/89.25

新逻辑运算指令:CPI为2,占比43×25%/89.25

Load指令:CPI为2,占比(21-43×25%)/89.25

Store指令:CPI为2,占比12/89.25

转移指令:CPI为3,占比24/89.25

由此可得新指令系统的平均CPI为:

CPI平均 = ∑CPIi×Pi = 0.361×1+0.370×2+0.269×3 = 1.908

考研1999年上海交通大学( )

某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行一个程序的整体性能提高到原来的5倍,试计算该程序中浮点操作所占用的比例。

设改进后的系统执行该程序中浮点操作的时间为T1,其他操作的时间为T2。

则原来计算该程序的时间为:20×T1+T2

改进后的系统执行该程序的时间为:T1+T2

所以有:20×T1+T2=5×(T1+T2)

化简得:T1:T2=4:15

所以,改进前该程序中浮点操作所占的比例为:

[5×(T1+T2)-T2]:5×(T1+T2)=80:95=16:19.

考研1997年清华大学( )

假定我们正在考虑两种条件转移指令的设计方法,这两种方法如下:

CPU A:先通过一条比较指令设置条件码A,再用一条分支指令检测条件码;

CPU B:比较操作包含在分支指令中。

在两种CPU中,条件转移指令都需要两个时钟周期,所有其他指令都需要一个时钟周期。在CPU A中,全部指令的20%是条件转移指令,因为每次条件转移都需要一次比较,所以比较指令约占所有指令的20%。如果CPU A的时钟频率是 CPU B的1.25倍,问哪一种CPU更快?如果CPU A的时钟频率只是CPU B的1.1倍,结果又是多少?

设ICA为CPU A的指令条数,则在CPU A中各类指令的条数为:

转移指令:0.20×ICA

比较指令:0.20×ICA

其他指令:0.60×ICA

在CPU B中各类指令的条数为:

转移指令:0.20×ICA

比较指令:0×ICA

其他指令:0.60×ICA

由于除转移指令为2周期,其余指令均为1周期,所以可知:

CPIA=0.20×2+0.20×1+0.60×1=1.2

CPUtimeA=ICA×1.2×ClockcycletimeA = 1.2×ICA×ClockcycletimeA

CPIB=0.20/(0.20+0.60)×2 +0.60/(0.2+0.60)×1=1.25

当CPU A的时钟频率是CPU B的1.25倍时,ClockcycletimeB = 1.25×ClockcycletimeA,则有:

CPUtimeB=ICB×CPIB×ClockcycletimeB

=0.8×ICA×1.25×(1.25×ClockcycletimeA)

=1.25×ICA×ClockcycletimeA

所以,此时CPU A 比CPU B执行更快。

当CPU A的时钟频率是CPU B的1.1倍时,ClockcycletimeB = 1.1×ClockcycletimeA,则有:

CPUtimeB=ICB×CPIB×ClockcycletimeB

=0.8×ICA×1.25×(1.1×ClockcycletimeA)

=1.1×ICA×ClockcycletimeA

所以,此时CPU B 比CPU A执行更快。

考研2000年清华大学( )

假设我们有一个需要运行100秒的标准程序,其中有90秒是CPU时间,剩下的是I/O占用的时间。如果在以后的5年中,CPU 速度每年可以提高 50%且 I/0时间保持不变,那么5年后我们的程序要耗费多少时间。

由题意知,程序当前的CPU时间为90秒,则I/O时间为:100 - 90 = 10秒,

由于I/O时间不变,所以,5年后I/O时间依然为10秒

5年后CPU时间为:90×1/(1+50%)5=11.85(秒)

所以,程序5年后的运行时间为:11.85 + 10 =21.85(秒)