若机器M的主频为1.5Ghz,在M上执行程序P的指令条数为5×105,P的平均CPI为1.2,则P在M上的指令执行速度和用户CPU时间分别为【 】。
A、0.8GIPS 、 0.4ms
B、0.8GIPS 、 0.4μs
C、1.25GIPS 、 0.4ms
D、1.25GIPS 、 0.4μs
计算机的指令执行速度可用每秒指令条数(IPS)来衡量:
每秒指令条数(IPS)=时钟频率(主频)÷平均指令周期数=1.5G÷1.2=1.25G;
用户CPU时间=指令条数×CPI÷时钟频率=5×105×1.2÷1.5G=0.4m.
(1G=109)
在字长为16位、32位、64位或128位的计算机中,字长为【 】位的计算机数据运算精度最高。
A、16
B、32
C、64
D、128
字长是计算机运算部件一次能同时处理的二进制数据的位数,字长越长数据的运算精度也就越高,计算机的处理能力就越强。
假定我们有一台计算机,如果所有的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 倍。
某台计算机只有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
某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的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.