第一章计算机体系机构的基本概念1.计算机系统结构包括数据表示、机器工作状态、信息保护,不包括主存速度。
计算机系统结构应该考虑的内容包括主存容量和编址方式,而主存采用MOS还是TTL器件、主存是采用多体交叉还是单体、主存频宽的确定等都不是计算机系统结构应该考虑的内容。
存储器采用单体单字,还是多体交叉并行存取,对系统结构设计是透明的。
又如在系列机内推出新机器,不能更改的是原有指令的寻址方式和操作码,而存储芯片的集成度、系统总线的组成、数据通路宽度是可以更改的。
系列机是指在一个厂家内生产的具有相同的体系结构,但具有不同的组成和实现的一系列不同型号的机器。
2. 计算机系统中提高并行性的技术途径有时间重叠、资源重复和资源共享三种。
在高性能单处理机的发展中,它的实现基础是流水线。
3. 软件和硬件在逻辑功能上是等效的,软件的功能可用硬件或固件完成,但性能、实现的难易程度不同。
4. Amdahl 定律:加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
5. 计算机组成是计算机系统结构的逻辑实现,计算机实现是计算机组成的物理实现。
6. 计算机系统多级层次结构由高到低,依次是应用语言机器级、高级语言机器级、汇编语言机器级、操作系统机器级、传统机器语言级和微程序机器级。
7. 某计算机系统采用浮点运算部件后,使浮点运算速度提高到原来的20倍,而系统运行某一程序的整体性能提高到原来的5倍,试计算该程序中浮点操作所占的比例。
系统加速比=1 / (1-可改进比例+可改进比例/部件加速比)5 = 1 / (1-可改进比例+可改进比例/ 20)可得可改进比例=84.2%8. 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据、如下所示。
(1)改进后,各类操作的加速比分别是多少?(2)各类操作单独改进后,程序获得的加速比分别是多少?(3)4类操作均改进后,整个程序的加速比是多少?多部件改进后的系统加速比=1 / (1-(11.1%+33.3%+38.9%+16.7%)+(11.1%/2+33.3%/1.33+38.9%/3.33+16.7%/4))=2.169. 将计算机系统中某一功能的处理速度加快20倍,但该功能的处理时间仅占整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少。
方法一:系统加速比=1 / (1-可改进比例+可改进比例/部件加速比)=1 / (1-.04+0.4/20)=1.613方法二:系统加速比= 改进前的时间/ 改进后的时间=T / ( 0.6*T+ 0.4*T/20)=1.61310. 计算机系统有3个部件可以改进,这三个部件的加速比如下:部件加速比S1=30,部件加速比S2=20,部件加速比S3=10,(1)如果部件1和部件2的可改进比例为30%,那么当部件3的可改进比例为多少时,系统的加速比才可以达到10;(2)如果三个部件的可改进比例分别为30%、30%、20%,3个部件同时改进,那么系统中不可改进部分的执行时间在总执行时间中占的比例是多少。
(1)求得X=0.36(2)假设改进前系统的执行时间为T,3个部件改进前的执行时间是(0.3+0.3+0.2)*T=0.8T,不可改进部分的执行时间是0.2T。
3个部件改进后的时间T2 = 0.3T/30+0.3T/20+0.2T/10 = 0.045T改进后整个系统的执行时间T总= 0.045T+0.2T = 0.245T0.2T / 0.245T = 0.82即系统中不可改进部分的执行时间在总执行时间中占的比例是0.82。
第二章计算机指令集结构设计1. 数据表示指的是机器硬件能识别和引用的数据类型。
2. 操作码优化的目的是缩短指令字长、减少程序总位数、增加指令字表示的信息。
3. 机器的运算类指令和运算器结构主要是看机器中应当有什么样的数据表示来确定。
4. RISC结构的设计原则:(1)选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;(5)以简单有效的方式支持高级语言。
第三章流水线技术1. 浮点加法指令让“求阶差”、“对阶”、“尾数加”和“规格化”流水,是属于部件级流水。
2. 在指令的流水解释过程中,MUL R1,R2和ADD R3,R1之间可能发生寄存器R1的写后读相关。
3. 流水线由若干个段或级组成,流水线有“通过时间”,“各段时间”应尽量相等,流水线的深度并不是越深越好。
4. 衡量流水线性能通常有三种主要指标,它们是吞吐率、加速比和效率。
5. DLX流水线寄存器的作用是把数据和控制信息从一个流水段传送到下一个流水段。
6. 指令的重叠执行,可以加快程序的解释,但不能加快指令的解释。
7. 流水线技术的特点:○1流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”;○2每个子过程由专用的功能段实现;○3各个功能段所需时间应尽量相等,否则,时间长的功能段将成为流水线的瓶颈,会造成流水线的“堵塞”和“断流”;○4流水线需要有“通过时间”(第一个任务流出结果所需的时间),在此之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果;○5流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。
8. 区分静态、动态流水线,单功能、多功能流水线。
9. 在MIPS/DLX的指令流水线中,可能发生的冲突只有前后指令的写后读冲突。
10. 流水线处理机中常见的三种相关是结构相关、数据相关和控制相关。
11. 减少流水线处理分支暂停时钟周期数的途径包括尽早判断分支转移是否成功、尽早计算出分支成功转移的PC值。
12. 编译器通过重新组织代码顺序消除暂停的技术被称为指令调度。
13. 标量流水机没有向量数据表示,只能依靠循环程序来处理向量和数组。
14. 有一条流水线如下所示。
(1) 求连续输入10条指令,该流水线的实际吞吐率和效率;(2) 该流水线的瓶颈在哪一段?请采取三种不同的措施消除此“瓶颈”。
对于你所给出的新流水线,计算连续输入10条指令时,其实际吞吐率和效率。
答:(1)(2) 瓶颈在3、4段。
变成八级流水线(细分)变成两级流水线(合并)重复设置部件15. 有一个流水线由四段组成,其中每当流经第三段时,总要在该段循环一次才能流到第四段。
如果每段经过一次的时间都是△t,问:(1) 当在流水线的输入端每△t时间输入任务时,该流水线会发生什么情况?(2) 此流水线的最大吞吐率为多少?如果每2△t输入一个任务,连续处理10个任务的实际吞吐率和效率是多少?(3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其吞吐率提高多少?答:(1) 会发生流水线阻塞情况。
(2)(3) 重复设置部件吞吐率提高倍数==1.6416. 假设我们考虑条件分支指令的两种不同设计方法如下:(1) CPUA:通过比较指令设置条件码,然后测试条件码进行分支;(2) CPUB:在分支指令中包括比较过程。
在两种CPU中,条件分支指令都占用2个时钟周期而所有其它指令占用1个时钟周期,对于CPUA,执行的指令中分支指令占30%;由于每个分支指令之前都需要有比较指令,因此比较指令也占30%。
由于CPUA在分支时不需要比较,因此假设它的时钟周期时间比CPUB快1.4倍。
哪一个CPU更快?如果CPUA的时钟周期时间仅仅是CPUB的1.15倍,哪一个CPU更快呢?解:我们不考虑所有系统问题,所以可以用CPU性能公式。
占用2个时钟周期的分支指令占总指令的30%,剩下的指令占用1个时钟周期。
所以CPIA = 0.3 ×2 + 0.70 × 1 = 1.3则CPU性能为:总CPU时间A = IC × 1.3 ×时钟周期A根据假设,有:时钟周期B = 1.4 ×时钟周期A在CPUB中没有独立的比较指令,所以CPUB的程序量为CPUA的70%,分支指令的比例为:30%/70% = 42.8%这些分支指令占用2个时钟周期,而剩下的57.2%的指令占用1个时钟周期,因此:CPIB = 0.428 ×2 + 0.572 × 1 = 1.428因为CPUB不执行比较,故:ICB = 0.7 ×ICA因此CPUB性能为:总CPU时间B = ICB ×CPIB ×时钟周期B= 0.7 ×ICA ×1.428 ×(1.4×时钟周期A)= 1.44 ×ICA ×时钟周期A在这些假设之下,尽管CPUB执行指令条数较少,CPUA因为有着更短的时钟周期,所以比CPUB快。
如果CPUA的时钟周期时间仅仅是CPUB的1.15倍,则时钟周期B = 1.15 ×时钟周期ACPUB的性能为:总CPU时间B = ICB ×CPIB ×时钟周期B= 0.7 ×ICA ×1.428 ×(1.15 ×时钟周期A)= 1.18 ×ICA ×时钟周期A因此CPUB由于执行更少指令条数,比CPUA运行更快。
17. 动态多功能流水线由6个功能段组成,如下图:其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为△t,假设该流水线的输出结果可以直接返回输入端,而且设置有足够地缓冲寄存器,若以最快的方式用该流水计算:(1) 画出时空图;(2) 计算实际的吞吐率、加速比和效率。
答:本题解题的关键是弄清楚机器一共要做10次乘法,4次加法,而且应进行适当的指令调度,以得到最大的吞吐率。
第五章存储层次1. 全相联映像、组相联映像、直接映像的优缺点是什么?(例如:块冲突概率直接映像的最高,全相联映像的最低,组相联映像的居于二者之中,和全相联映像相比,组相联映像所用的目录表较小……)2. 伪相联Cache中,确定另一块的一种简单的方法是将索引字段的最高位取反。
3. Victim Cache是一种能减少冲突失效次数而又不影响失效开销的方法。
4. 虚拟存储器常用的地址映像是全相联映像。
5. 大小为N的直接映像Cache的失效率约等于大小为N/2的两路组相联Cache的失效率。
6. 减小Cache失效开销的五种方法:○1.让读失效优先于写。
○2.子块放置技术。
○3.请求字处理技术。
○4.非阻塞Cache 技术。
○5.采用两级Cache。
7. 降低Cache失效率的方法:○1增加Cache块大小。