[例题1.1] 假设将某一部件的处理速度加快到10倍,该部件的原处理时间仅为整个运行时间的40%,则采用加快措施后能使整个系统的性能提高多少?
[解答] 由题意可知:Fe=0.4, Se=10,根据Amdahl定律,加速比为:Sn=1/(0.6+0.4/10)=1.56
[例题1.2] 采用哪种实现技术来求浮点数平方根FPSQR的操作对系统的性能影响较大。假设FPSQR操作占整个测试程序执行时间的20%。一种实现方法是采用FPSQR硬件,使FPSQR操作的速度加快到10倍。另一种实现方法是使所有浮点数据指令的速度加快,使FP指令的速度加快到2倍,还假设FP指令占整个执行时间的50%。请比较这两种设计方案。
[解答] 分别计算出这两种设计方案所能得到的加速比:
[例题1.2]
[解答]
=(4*25%)+(1.33*75%)=2.0
方案1:CPI1=CPI原-2%*(CPI老1-CPI新1)=2.0-2%*(20-2)=1.64 方案2:CPI2=CPI原-25%*(CPI老2-CPI新2)=2.0-25%*(4-2)=1.5
方案2的加速比=CPU时间原/CPU时间2=IC*时钟周期*CPI原 / IC*时钟周期*CPI2=2/1.5=1.33
[习题1.17] 假设高速缓存Cache工作速度为主存的5倍,且Cache被访问命中的概率为90%,则采用Cache后,能使整个存储系统获得多高的加速比Sp? [解答] 我们首先对新的存储系统的性能做以下的假设:在Cache不命中的情况下,对Cache的访问不会额外损失时间,即:首先,决定Cache是否命中所用的时间可以忽略;其次,在从主存向Cache传输的同时,数据也被传输给使用部件(不需要再从Cache中读取)。这样,新的存储系统中,平均存取时间分为两个部分:
Tnew_average?Tmiss?Rmiss?Thit?Rhit?Tmain?Rmiss?TCache?Rhit
其中,R表示各种情况所占的比例。 根据加速比的计算公式,
Sp?
[习题1.19]
Told_averageTnew_average?Tmain1??3.57Tmain?Rmiss?TCache?Rhit1?0.1?5?0.9
[解答] CPI=∑CPIi×[Ii/Ic]=45000/10+(32000×2)/10+(15000×2)/105+(8000×2)/105=1.55
MIPS = (40 × 106)/(1.55 × 106) = 25.8MIPS Te = 105/(25.8 × 106) = 3.88ms
[习题1.20] 某工作站采用时钟频率为15MHz、处理速率为10MIPS的处理机来执行一个已知混合程序。假定每次存储器存取为1周期延迟、试问:(1)此计算机的有效CPI是多少? (2)假定将处理机的时钟提高到30MHz,但存储器子系统速率不变。这样,每次存储器存取需要两个时钟周期。如果30%指令每条只需要一次存储存取,而另外5%每条需要两次存储存取,还假定已知混合程序的指令数不变,并与原工作站兼容,试求改进后的处理机性能。 [解答](1)由MIPS = 时钟频率/(CPI×106), 则有:CPIA =时钟频率/(MIPS×106)= 1.5。 (2)当时钟频率为15MHZ时,假设不进行存储操作指令的CPI为x,则要进行一次存储操作指令的CPI为1+ x,要进行二次存储操作指令的CPI为2+ x,因此有: 1.5 = x×65% + (1+ x)×30% + (2+ x)×5% 解得x = 1.1
当时钟频率为30MHZ时,不进行存储操作指令的CPI不变为1.1,要进行一次存储操作指令的CPI为2+ x = 3.1,要进行二次存储操作指令的CPI为4+ x = 5.1,因此平均CPI为: CPIB = 1.1×65% + 3.1×30% + 5.1×5% = 1.9 所以 MIPSB = 时钟频率/(CPIB×106)=(30×106)/(1.9×106)= 15.8
[习题2.13] 一个处理机共有10条指令,各指令在程序中出现的概率如下表:指令信号 出现概率 Huffman编砝码 2/8扩展编砝码 3/7扩展编砝码 1 0.25 0.20 3 0.15 4 0.10 5 一个处理机共有10条指令,各指令在程序中出现的概率如下表:
指令信号 出现概率 Huffman编砝码 2/8扩展编砝码 3/7扩展编砝码 1 0.25 2 0.20 3 0.15 4 0.10 5 0.08 6 0.08 7 0.05 8 0.04 9 0.03 10 0.02
(1) 采用最优Huffman编码法(信息熵)计算这10条指令的操作码最短平均长度。
5
5
(2) 采用Huffman编码法编写这10条指令的操作码,并计算操作码的平均长度,计算与最优Huffman编码法(信息熵)相比的操作码信息冗余量。将得到的操作码编码和计算的结果填入上面的表中。
(3) 采用2/8扩展编码法编写这10条指令的操作码,并计算操作码的平均长度,计算与最优Huffman编码法相比的操作码信息冗余量。把得到的操作码编码和计算的结果填入上面的表中。
(4) 采用3/7扩展编码法编写这10条指令的操作码,并计算操作码的平均长度,计算与最优Huffman编码法相比的操作码信息冗余量。把得到的操作码编码和计算的结果填入上面的表中。 [解答]
[习题2.14]
一台模型机共有7条指令,各指令的使用频度分别是35%、25%、20%、10%、5%、3%、 2%,有8个通用数据寄存器,2个变址寄存器。
(1) 要求操作码的平均长度最短,请设计操作码的编码,并计算所设计操作码 的平均长度。
(2) 设计8位字长的寄存器-寄存器型指令3条,16位字长的寄存器-存储器型变址寻址方式指令4条,变址范围不小于正、负127。请设计指令格式,并给出各字段的长度和操作码的编码。 [解答]
[习题2.15]
某处理机的指令字长为16位,有双地址指令、单地址指令和零地址指令三类,并假设每个地址字段的长度均为6位。
(1) 如果双地址指令有15条,单地址指令和零地址指令的条数基本相同,问单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。
(2) 如果要求三类指令的比例大致为1:9:9,问双地址指令、单地址指令和零地址指令各有多少条?并且为这三类指令分配操作码。 [解答]