第1章 课后习题
1.从机器(汇编)语言程序员看,以下哪些是透明的? 指令地址寄存器;指令缓冲器;时标发生器;条件码寄存器;乘法器;主存地址寄存器;磁盘外设;先行进位链;移位器;通用寄存器;中断字寄存器。
2.下列哪些对系统程序员是透明的?哪些对应用程序员是透明的? 系列机各档不同的数据通路宽度;虚拟存储器;Cache存储器;程序状态字;\"启动I/O\"指令;\"执行\"指令;指令缓冲寄存器。
3.想在系列机中发展一种新型号机器,你认为下列哪些设想是可以考虑的,哪些则是不行的?为什么? (1) 新增加字符数据类型和若干条字符处理指令,以支持事务处理程序的编译。 (2) 为增强中断处理功能,将中断分析由原来的4级增加到5级,并重新调整中断响应的优先次序。 (3) 在CPU和主存之间增设Cache存贮器,以克服因主存访问速率过低而造成的系统性能瓶颈。 (4) 为解决计算误差较大,将机器中浮点数的下溢处理方法由原来的恒置\"1\"法,改为用只读存贮器存放下溢处理结果的查表舍入法。 (5) 为增加寻址灵活性和减少平均指令字长,将原来全部采用等长操作码的指令改成有3类不同码长的扩展操作码;并将源操作数寻址方式由原来的操作码指明改成增加一个如VAX-11那样的寻址方式位字段来指明。 (6) 将CPU与主存之间的数据通路宽度由16位扩到32位,以加快主机内部信息的传送。 (7) 为了减少使用公用总线的冲突,将单总线改为双总线。 (8) 把原来的0号通用寄存器改作为专用的堆栈指示器。
4.用一台40MHZ处理机执行标准测试程序,它含的混合指令数和相应所需的时钟周期数如下:
指令类型 整数运算 数据传送 浮点 控制传送
指令数 45000 32000 15000 8000
时钟周期数
1 2 2 2
求有效CPI、MIPS速率和程序的执行时间。
5.某工作站采用时钟频率f为15MHZ,处理速率为10MIPS的处理机来执行一个已知混合程序。假定每次存储器存取为1周期延迟,试问: (a) 此计算机的有效CPI是多少 (b) 假定将处理机的时钟频率f提高到30MHZ,但存储器子系统速率不变。这样,每次存储器存取需要两个时钟周期,如果30%指令每条只需要一次存储存取,而另外5%每条需要两次存储存取,还假定已知混合程序的指令数不变,并与原工作站兼容,试求改进后的处理机性能。
6.假设在一台40MHZ处理机上运行200,000条指令的目标代码,程序主要由四种指令组成。根据程序跟踪实验
结果,已知指令混合比和每种指令所需的指令数如下:
指令类型 算术和逻辑
高速缓存命中的加载/存储
转移
高速存储缺失的存储器访问
CPI 1 2 4 8
指令混合比
60% 18% 12% 10%
(a) 计算在单处理机上用上述跟踪数据运行程序的平均CPI。 (b) 根据(a)所得的CPI,计算相应的MIPS速率。
7.假定我们将某一执行部件改进后速度提高10倍。改进后被改进部件执行时间占系统总运行时间的50%。则改进后,获得的加速比Sp是多少?
8.上题中的部件在改进前的执行时间所占百分比为多少?
9.假定一台具有理想Cache(无Cache缺失)计算机的行为如下表所示。其中Cache的缺失率对指令来说为5%,对数据访问来说为10%,并且Cache缺失导致的缺失损失为40个时钟周期。求出当有Cache缺失时各种类型指令的CPI。
10.在例6中的理想Cache相对于实际Cache(有Cache缺失)的加速比为多少?
11.假定我们利用增加向量处理模块来提高计算机的运算速度。计算机处理向量的速度比其通常的运算要快20倍。我们将可用向量处理部分所花费的时间占总时间的百分比称为可向量化百分比。 (a) 求出加速比S和可向量化百分比F之间的关系式。 (b) 当要得到加速比为2时的可向量化百分比F为多少? (c) 为了获得在向量模式所得到的最大加速比的一半,可向量化百分比F为多少?
12.已知四个程序在三台计算机上的执行时间(s,秒)如下:
程 序 执行时间(s,秒)
计算机A
程序1 程序2 程序3 程序4
1 1000 500 100
计算机B 10 100 1000 800
计算机C 20 20 50 100
假设四个程序中每一个都有100,000,000条指令要执行,计算这三台计算机中每台机器上每个程序的MIPS速率。根据这些速率值,你能否得出有关三台计算机相对性能的明确结论?你能否找到一种将他们统计排序的方法,说明理由。
13.假定你是一个计算机设计者,对高级语言结构的使用研究表明,过程调用是最常用的操作之一。你已设想了一个优化的设计方案,它能减少过程调用和返回所需的取/存指令次数。为了进行验证,对未加优化和已优化的方案进行实验测试,假定所使用的是相同的优化编译器。实验测得的结果如下: (1) 未优化方案的时钟周期比优化的快5%; (2) 未优化方案中的取/存指令数占总指令数的30%;
(3) 优化方案中的取/存指令数比未优化的少1/3。对于其它指令,两种方案的动态执行数没有变化; (4) 所有指令,包括取/存,均只需1个时钟周期。
要求你定量的判断,哪一种设计方案计算机工作的速度更快?
14.假设高速缓存Cache工作速度为主存的5倍,且Cache被访问命中的概率为90%,则采用Cache后使整个存储系统获得多高的加速比Sp?
1、不透明的:指令地址寄存器;条件码寄存器;磁盘外设;通用寄存器;中断字寄存器。 透明的:指令缓冲器;时标发生器;乘法器;主存地址寄存器;先行进位链;移位器。
2、对系统程序员透明的:系列机各档不同的数据通路宽度;Cache存储器;指令缓冲寄存器。
对应用程序员透明的:系列机各档不同的数据通路宽度;虚拟存储器;Cache存储器;程序状态字;指令缓冲寄存器。
3、 (1) 可以。在旧型号机器上运行的目标软件能够直接运行于新型号机器上。
(2) 不行。中断由4级增加到5级,可以;但重新调整中断响应的优先次序,可能使中断服务程序不兼容 。
(3) 可以。只是提高了主存储器的速度。 (4) 可以。只是提高了浮点运算的精度。 (5) 不行。指令格式的改变,使目标软件不兼容。 (6) 可以。只是提高了数据传输的速度。 (7) 可以。减少总线冲突,提高数据传输速度。 (8) 不行。目标软件不兼容。
4、 解:
=1.55周期/指令
程序执行时间:
5、解: (a) CPIold = fold /(MIPS * 106)= 15×106 / (10 * 106 ) =1.5
(b) 如题所述,30%的指令需要一次存储存取,则这些指令在处理器提高时钟频率之后需要增加一个时钟周期;同样,另外5%的指令需要增加两个时钟周期。
CPInew= (改进前执行混合程序的所需时钟周期数 + 30%×1×指令数 + 5%×2×指令数) / 指令数 = 改进前有效CPI + 30%×1 + 5%×2= 1.5 + 0.3 + 0.1= 1.9
处理速率MIPS= fnew / (CPInew×106) = 30×106/(1.9×106) = 15.79 MIPS 假设混合程序的指令数为IC,
则有 6、解:
可见, 改进后工作站性能提高了.
(a)
(b)
7、解:假设系统在改进前后的执行时间分别为Tbefore和Tafter
由(1)式可得:
由题意:
(2)-(3)得:
由(4)、(5)可得
8、解: 由上式可解得:
(小结:由例4、例5两题可看出,执行部件在改造前后所占总执行时间的百分比是不同的,这一点值得大家注意。)
9、解: 由
可得:
(理想Cache ) (实际Cache)
类型 频率
ALU Load Store Branch
43% 21% 12% 24%
1 2 2 2
0 0 0 0
1 2 2 2
2 6 6 2
3 8 8 4
10、 解: 由例6可得:
由(1)(2):
(1)
(2)
11、
12、解:
所以每台计算机每个程序得MIPS速率如下表所示:
MIPS速率(百万条指令/秒)
程 序
计算机A
程序1 程序2 程序3 程序4
100 0.1 0.2 1
计算机B 10 1 0.1 0.125
计算机C
5 5 2 1
由上述MIPS速率可知,每个计算机对四个程序有不同的处理时间,而且大小顺序不同,所以不能得出明确结论。
可以采取平均的方法来比较各计算机的相对性能:
MIPS速率(百万条指令/秒) 程 序 计算机A 算术平均(AM) 25.3 计算机B 2.81 计算机C 3.25 几何平均(GM) 调和平均(HM)
1.19 0.25
0.59 0.20
2.66 2.1
如果按照算术平均AM比较性能,计算机A最快,计算机C最慢, 如果按照调和平均HM比较性能,结果恰好相反.
13、 由(1)可知, 未优化方案的时钟周期 t=0.95t>优化 由(2)(3)可以得到优化方案的指令条数
由(4)可知,两种方案的CPI都为1.
所以
所以,优化后的方案工作速度更快。
14、解: 我们首先对新的存储系统的性能做以下的假设:在Cache不命中的情况下,对Cache的访问不会额外损失时间,即:首先,决定Cache是否命中所用的时间可以忽略;其次,在从主存向Cache传输的同时,数据也被传输给使用部件(不需要再从Cache中读取)。这样,新的存储系统中,平均存取时间分为两个部分: