1、计算机体系结构第1章 计算机系统结构的基本概念1. 什么是计算机系统的多级层次结构?(红体是老师画的重点)从计算机语言的角度,把计算机系统按功能划分成以下多级层次结构:5. 对于通用寄存器型机器来说,机器语言程序设计者所看到的计算机的属性主要有哪些?(1) 数据表示 (2) 寻址规则(3) 寄存器定义(4) 指令集(5) 中断系统(6) 机器工作状态的定义和切换(7) 存储系统(8) 信息保护(9) I/O结构11. 存储程序计算机在系统结构上的主要特点是什么?(1)以运算器为中心。(2)采用存储程序原理。程序和数据放在同一存储器中,并且没有对两者加以区分。(3)存储器是按地址访问的、线性编址
2、的空间。(4)控制流由指令流产生。(5)指令由操作码和地址码组成。操作码指明本指令的操作类型,地址码指明操作数和操作结果的地址。(6)数据以二进制编码表示,采用二进制运算。16. 用户CPU时间由哪三个因素决定?用户CPU时间 = CPI IC / 时钟频率其中,CPI:指令时钟数IC:程序执行过程中所处理的指令数。21. 计算机系统结构设计和分析中最经常使用的三条基本原则是什么? (1)大概率事件优先原则:对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果。(2)Amdahl定律:加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(
3、3)程序的局部性原理:程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。23. 从执行程序的角度看,并行性等级从低到高可分为哪几级?从执行程序的角度看,并行性等级从低到高可分为:(1)指令内部并行:单条指令中各微操作之间的并行。(2)指令级并行(Instruction Level Parallelism,ILP):并行执行两条或两条以上的指令。(3)线程级并行(Thread Level Parallelism,TLP):并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位。(4)任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元
4、。(5)作业或程序级并行:并行执行两个或两个以上的作业或程序。24. 从处理数据的角度,并行性等级从低到高可以分为哪几级?从处理数据的角度,并行性等级从低到高可以分为:(1)字串位串:同时只对一个字的一位进行处理。(2)字串位并:同时对一个字的全部位进行处理。(3)字并位串:同时对许多字的同一位(称位片)进行处理。(4)全并行:同时对许多字的全部或部分位进行处理。25.Flynn分类法把计算机系统的结构分为哪4类?(1) 单指令流单数据流(SISD,Single Instruction stream Single Data stream)。(2) 单指令流多数据流(SIMD,Single In
5、struction stream Multiple Data stream)。(3) 多指令流单数据流(MISD,Multiple Instruction stream Single Data stream)。(4) 多指令流多数据流(MIMD,Multiple Instruction stream Multiple Data stream)。26.常见的计算机系统结构分类法有哪两种?分类的依据是什么?Flynn分类法:按照指令流和数据流的多倍性进行分类。冯氏分类法:用系统的最大并行度对计算机进行分类。第2章 计算机指令集结构设计1. 通常可按哪5个因素对计算机指令集结构进行分类?(1) 在C
6、PU中操作数的存储方法。(2) 指令中显式表示的操作数个数。 (3) 操作数的寻址方式。 (4) 指令集所提供的操作类型。 (5) 操作数的类型和大小。3. 根据CPU内部存储单元类型,可将指令集结构分为哪几类?堆栈型指令集结构、累加器型指令集结构、通用寄存器型指令集结构。4. 堆栈型指令集结构、累加器型指令集结构和通用寄存器型指令集结构分别有什么优缺点?指令集结构类型优点缺点堆栈型是一种表示计算的简单模型;指令短小不能随机访问堆栈,从而很难生成有效代码。同时,由于堆栈是瓶颈,所以很难被高效地实现累加器型减少了机器的内部状态;指令短小由于累加器是唯一的暂存器,这种机器的存储器通信开销最大寄存器
7、型易于生成高效的目标代码所有操作数均需命名,且要显式表示,因而指令比较长6. 通用寄存器型指令集结构可细分为哪三类?寄存器寄存器型。寄存器存储器型。存储器存储器型。8. 从当前的计算机技术观点来看,CISC结构有什么缺点?(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。(2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。(5)在CISC结构的指令系统中,由于各条指
8、令的功能不均衡性,不利于采用先进的计算机系统结构技术来提高系统的性能。10. RISC的设计原则是什么?(1)选取使用频率最高的指令,并补充一些最有用的指令。(2)每条指令的功能应尽可能简单,并在一个机器周期内完成。(3)所有指令长度均相同。(4)只有load和store操作指令才访问存储器,其它指令操作均在寄存器之间进行。 (5)以简单、有效的方式支持高级语言。12. 计算机指令集结构设计所涉及的内容有哪些?(1) 指令集功能设计:主要有RISC和CISC两种技术发展方向。 (2) 寻址方式的设计。(3) 操作数表示和操作数类型。(4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将
9、寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式三种。18. 在指令集格式的设计时,通常可选择哪几种指令格式?(1) 变长编码格式。这种编码方式可以有效减少程序的目标代码大小。(2) 定长编码格式。这种编码方式可以降低译码的复杂度,提高译码的性能。 (3) 混合型编码格式。兼顾降低目标代码长度和降低译码复杂度。第3章 流水线技术1. 流水技术有哪些特点?(1)流水过程由多个相联系的子过程组成,每个过程称为流水线的“级”或“段”。(2)每个子过程由专用的功能段实现。(3)各个功能段所需时间应尽量相等。(4)流水线需要有“通过时间”,在此
10、之后流水过程才进入稳定工作状态,每一个时钟周期(拍)流出一个结果。(5)流水技术适合于大量重复的时序过程,只有在输入端能连续地提供任务,流水线的效率才能充分发挥。2. 按照流水线所完成的功能来分,流水线可分为哪两类?(1)单功能流水线:只能完成一种固定功能的流水线。(2)多功能流水线:流水线的各段可以进行不同的连接,从而使流水线在不同的时间,或者在同一时间完成不同的功能3. 按照同一时间内各段之间的连接方式来分,流水线可分为哪两类? (1)静态流水线:在同一时间内,流水线的各段只能按同一种功能的连接方式工作。(2)动态流水线:在同一时间内,当某些段正在实现某种运算时,另一些段却在实现另一种运算
11、。7. 在5段流水线中,一条指令的执行需要几个时钟周期?它们分别是什么?一条指令的执行需要5个时钟周期。它们分别是:取指令周期(IF)、指令译码/读寄存器周期(ID)、执行/有效地址计算周期(EX)、存储器/分支完成周期(MEM)、写回周期(WB)。9. 消除流水线的瓶颈段有哪些方法?(1) 细分瓶颈段;(2) 重复设置瓶颈段。10. 评价流水线的性能指标是什么?(1) 吞吐率:指在单位时间内流水线所完成的任务数或输出结果的数量。(2) 流水线的加速比:指m段流水线的速度与等功能的非流水线的速度之比。(3) 效率:指流水线的设备利用率11. 什么叫相关?流水线中有哪几种相关? 相关是指两条指令
12、之间存在某种依赖关系。确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义。相关有3种类型,分别是数据相关(也称真数据相关)、名相关、控制相关。12. 什么叫名相关?名相关有哪两种?如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。指令j与指令i之间的名相关有以下两种:(1)反相关。如果指令j写的名与指令i读的名相同,则称指令i和j发生了反相关。反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的。(2)输出相关。如果指令j和指令i写相同的名,则称指令i和j发生了输出相关。输出相关指令的执行顺序是不能颠倒的,以保证最后的结果是指令j
13、写进去的。13. 流水线冲突有哪几种?流水线冲突有以下3种类型:(1)结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。(2)数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。(3)控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。17.流水线中所有数据冲突都可以通过定向技术消除,而不需要暂停吗?试举例说明。流水线中有需要暂停的数据冲突。例如,在下列指令序列中,需要在LW指令之后插入一个暂停周期,然后再用定向技术消除相关。LDR1,0(R2)DADDR4,R1,R5ANDR6,R1,R7XORR8,R1,R9第4章 指令级并行1.简述指令
14、动态调度的优点。(1) 能够处理一些编译时情况不明的相关(比如涉及存储器访问的相关),并简化了编译器。(2) 能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行。当然,动态调度的这些优点是以硬件复杂性的显著增加为代价的。第5章 存储层次4. 在存储层次中应解决哪四个问题? (1)映像规则:当把一个块调入高一层存储器时,可以放到哪些位置上。 (2)查找算法:当所要访问的块在高一层存储器中时,如何找到该块。 (3)替换算法:当发生失效时,应替换哪一块。 (4)写策略:当进行写访问时,应进行哪些操作5. 地址映像方法有哪几种?它们各有什么优缺点? (1)全相联映像。实
15、现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映像。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映像。组相联是直接映像和全相联的一种折中8. 替换算法有哪几种?它们各有什么优缺点?(1)随机法:简单、易于用硬件实现,但这种方法没有考虑Cache块过去被使用的情况,反映不了程序的局部性,所以其失效率比LRU的高。(2)先进先出法:容易实现。它虽然利用了同一组中各块进入Cache的顺序这一“历史”信息,但还是不能正确地反映程序的局部性。(3)最近最少使用法LRU
16、:失效率最低。但是LRU比较复杂,硬件实现比较困难。9. 写策略主要有哪两种?它们各有什么优点? (1) 写直达法:易于实现,而且下一级存储器中的数据总是最新的。(2) 写回法:速度快,写操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。17. 降低Cache失效率有哪些方法? 增加Cache块大小、提高相联度、增加Cache的容量、Victim Cache、伪相联Cache、硬件预取技术、由编译器控制的预取、编译器优化。18. 减少Cache失效开销有哪些方法?(1) 让读失效优先于写
17、。 (2) 写缓冲合并。(3) 请求字处理技术。 (4) 非阻塞Cache或非锁定Cache技术。(5) 采用二级Cache。第6章 输入/输出系统12. 通道分为哪三种类型?它们分别适合为哪种外围设备服务?(1)字节多路通道:一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道:适于为高速设备服务。(3)选择通道:为多台高速外围设备服务。其他的:系统结构 P3 程序员所看到的计算机的属性,即概念性结构与功能特性。透明性P3在计算机技术中,对本来存在的事物或属性,但从某种角度看又好象不存在的概念称为透明性。系统加速比 P7对系统中的某些部件进行改进,改进后的系统性能与改进
18、前的系统性能之比。Amdahl定律P7加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。程序的局部性原理P10程序在执行时所访问地址的分布不是随机的,而是相对地簇聚;这种簇聚包括指令和数据两部分。向上兼容 向下兼容P18按某档计算机编制的程序,不加修改的就能运行于比它高(低)档的计算机。时间重叠P22多个处理过程在时间上相互错开,轮流使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。资源重复P2通过重复设置资源,尤其是硬件资源,大幅度提高计算机系统的性能。2紧密耦合P23机间物理连接的频带较高,它们往往通过总线或高速开关实现互连,可以共享主存。输入输出方式(没找
19、)程序控制(程序等待、程序中断)、DMA、通道、I/O处理机响应时间(没找)从事件开始到结束之间的时间,也称为执行时间。即计算机完成某一任务所花费的全部时间,包括访问磁盘、访问存储器、输入/输出、操作系统开销等。核心测试(没找)由从真实程序中提取的较短但很关键的代码构成。习题1.8 和1.9操作数类型面向应用、面向软件系统所处理的各种数据结构。流水线技术将一个重复的时序过程分解成为若干个子过程,而每一个子过程都可有效地在其专用功能段上与其他子过程同时执行。缓冲技术在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。动态流水线 P57在同一时间内,当某些段正在实现某种运算时,另一些
20、段却在实现另一种运算。静态流水线P57吞吐率在单位时间内流水线所完成的任务数或输出结果的数量。相关指两条指令之间存在某种依赖关系。确定程序中指令之间存在什么样的相关,对于充分发挥流水线的效率有重要的意义。数据相关对于两条指令i(在前)和j(在后),如果下述条件之一成立,则称指令j与指令i数据相关: (1)指令j使用指令i产生的结果;(2)指令j与指令k数据相关,而指令k又与指令i数据相关。名指指令所访问的寄存器或存储器单元的名称。名相关如果两条指令使用相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。反相关如果指令j(在后)写的名与指令i(在前)读的名相同,则称指令i和j发生了反
21、相关。反相关指令之间的执行顺序是必须严格遵守的,以保证i读的值是正确的。输出相关如果指令j(在后)和指令i(在前)写相同的名,则称指令i和j发生了输出相关。输出控制相关由分支指令引起的相关。它需要根据分支指令的执行结果来确定后续指令是否执行。相关指令的执行顺序是不能颠倒的,以保证最后的结果是指令j写进去的。结构冲突因硬件资源满足不了指令重叠执行的要求而发生的冲突。数据冲突当相关的指令靠得足够近时,它们在流水线中的重叠执行或者重新排序会改变指令读/写操作数的顺序,使之不同于它们非流水实现时的顺序,则发生了数据冲突。控制冲突流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。写后读冲突(RAW
22、)考虑流水线中的两条指令i 和j,且i在j之前进入流水线中,j的执行要用到i的计算结果,当它们在流水线中重叠执行时,j可能在i写入其计算结果之前就先行对保存该结果的寄存器进行读操作,从而得到错误的值。习题3.14,3.15,3.17保持异常行为无论怎么改变指令的执行顺序,都不能改变程序中异常的发生情况。即原来程序中是怎么发生的,改变执行顺序后还是怎么发生。动态调度方法在流水线中出现相关时,通过硬件重新安排指令的执行顺序,来调整相关指令实际执行时的关系,减少处理器空转。精确异常当执行指令i导致发生异常时,处理机的现场跟严格按程序顺序执行时指令i的现场相同。动态分支预测技术在程序运行时,根据分支指
23、令过去的表现来预测其将来的行为。如果分支行为发生了变化,预测结果也跟着改变。动态分支预测技术的目的有两个:预测分支是否成功和尽快找到分支目标地址(或指令),从而避免因控制相关而造成流水线停顿。1.6 某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:指令类型指令执行数量平均时钟周期数整数450001数据传送750002浮点80004分支15002求该计算机的有效CPI、MIPS和程序执行时间。解:(1)CPI (4500017500028000415002) / 1295001.776(2)MIPS速率f/ CPI 400/1.776 225.225
24、MIPS(3)程序执行时间= (4500017500028000415002)400=575s1.7 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?解 由题可知: 可改进比例 = 40% = 0.4 部件加速比 = 10根据Amdahl定律可知:采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。1.8 计算机系统中有三个部件可以改进,这三个部件的部件加速比为:部件加速比1=30; 部件加速比2=20; 部件加速比3=10(1) 如果部件1和部件2的可改进比例均为30%,那么当部件
25、3的可改进比例为多少时,系统加速比才可以达到10?(2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?解:(1)在多个部件可改进情况下,Amdahl定理的扩展:已知S130,S220,S310,Sn10,F10.3,F20.3,得:得F30.36,即部件3的可改进比例为36%。(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行时间为0.2T。已知3个部件改进后的加速比分别为S130,S220,S310,因此3个部件改进后的执行时间
26、为: 改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T那么系统中不可改进部分的执行时间在总执行时间中占的比例是:1.9 假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示:操作类型程序中的数量(百万条指令)改进前的执行时间(周期)改进后的执行时间(周期)操作11021操作2302015操作335103操作41541(1)改进后,各类操作的加速比分别是多少?(2)各类操作单独改进后,程序获得的加速比分别是多少?(3)4类操作均改进后,整个程序的加速比是多少?解:根据Amdahl定律可得操作类型各类操作的指令条数在程序中所占的比例Fi各
27、类操作的加速比Si各类操作单独改进后,程序获得的加速比操作111.1%21.06操作233.3%1.331.09操作338.9%3.331.37操作416.7%41.144类操作均改进后,整个程序的加速比:3.14 有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2t,其余各段的时间均为t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。现要在该流水线上计算 ,画出其时空图,并计算其吞吐率、加速比和效率。解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1B1、A2B2、A3B3和A4B4;再计算(A1B1) (A2B2)和(
28、A3B3) (A4B4);然后求总的结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。由图可见,它在18个t时间中,给出了7个结果。所以吞吐率为: 如果不用流水线,由于一次求积需3t,一次求和需5t,则产生上述7个结果共需(45+33)t =29t。所以加速比为: 该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 3.15 动态多功能流水线由6个功能段组成,如下图:其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方
29、式用该流水计算: (1) 画出时空图;(2) 计算实际的吞吐率、加速比和效率。解:机器一共要做10次乘法,4次加法。3.17 假设各种分支指令数占所有指令数的百分比如下:条件分支20%(其中的60%是分支成功的)跳转和调用5%现有一条段数为4的流水线,无条件分支在第二个时钟周期结束时就被解析出来,而条件分支要到第三个时钟周期结束时才能够被解析出来。第一个流水段是完全独立于指令类型的,即所有类型的指令都必须经过第一个流水段的处理。请问在没有任何控制相关的情况下,该流水线相对于存在上述控制相关情况下的加速比是多少?解:没有控制相关时流水线的平均CPI1存在控制相关时:由于无条件分支在第二个时钟周期
30、结束时就被解析出来,而条件分支要到第3个时钟周期结束时才能被解析出来。所以:(1)若使用排空流水线的策略,则对于条件分支,有两个额外的stall,对无条件分支,有一个额外的stall:CPI = 1+20%*2+5%*1 = 1.45 加速比S=CPI/1 = 1.45(2) 若使用预测分支成功策略,则对于不成功的条件分支,有两个额外的stall,对无条件分支和成功的条件分支,有一个额外的stall 1:CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33 加速比S=CPI/1 = 1.33(3)若使用预测分支失败策略,则对于成功的条件分支,有两个额外的stall;对无条件分支,有一个额外的stall;对不成功的条件分支,其目标地址已经由PC 值给出,不必等待,所以无延迟:CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29 加速比S=CPI/1 = 1.29
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1