体系结构Review
一、简答题
1.试以系列机为例,说明计算机系统结构、计算机组成和计算机实现三者之间的关系。
计算机组成是计算机系统结构的逻辑实现;计算机实现是计算机组成的物理实现。
一种系统结构可以有多种组成;一种组成可以有多种实现。
同一系列机中各种型号的机器具有相同的系统结构,但采用不同的组成和实现技术,因而具有不同的性能和价格。
2.计算机系统结构设计和分析中最经常使用的四个定量原理是什么?
(1)大概率事件优先原则:对于大概率事件(最常见的事件),赋予它优先的处理权和资源使用权,以获得全局的最优结果
(2)Amdahl定律:加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
(3)CPU 性能公式。执行一个程序所需的CPU 时间 = IC ×CPI ×时钟周期时间。
(4)程序的局部性原理:程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。
3.根据Amdahl定律,系统加速比由哪两个因素决定?
系统加速比依赖于两个因素:
(1)可改进比例:可改进部分在原系统计算时间中所占的比例;
(2)不见加速比:可改进部分改进以后的性能提高。
4.简述指令动态调度的优点。
(1)能够处理一些编译时情况不明的相关(比如涉及存储器访问的相关),并简化了编译器;
(2)能够使本来是面向某一流水线优化编译的代码在其他的流水线(动态调度)上也能高效地执行。当然,动态调度的这些优点是以硬件复杂性的显著增加为代价的。
5.Tomasulo算法采用分布的保留站,具有什么特点?
(1)冲突检测和指令执行控制是分布的。每个功能部件的保留站中的信息决定了什么时候指令可以在该功能部件开始执行。
(2)计算结果通过CDB直接从产生它的保留站传送到所有需要它的功能部件,而不用经过寄存器。
6.动态分支预测技术的目的是什么?
预测分支是否成功和尽快找到分支目标地址(或指令),从而避免控制相关造成流水线停顿。
7.采用动态分支预测技术,需要解决哪两个关键问题?
(1)如何记录分支的历史信息;
(2)如何根据这些信息来预测分支的去向(甚至取到指令)。
8.BTB表格中的每一项至少有哪两个字段?
执行过的成功分支指令的地址;预测的分支目标地址。
9.简述猜测执行的基本思想
对分支指令的结果进行猜测,并假设这个猜测总是对的,然后按这个猜测结果继续取、流出和执行后续的指令。只是执行指令的结果不是写回到寄存器或存储器,而是放到一个称为Reorder Buffer的缓冲器中。等到相应的指令得到“确认”(即确实是应该执行的)后,才将结果写入寄存器或存储器。
10.基于硬件猜测执行结合了哪三种思想?
(1)动态分支预测。用来选择后续执行的指令。
(2)在控制相关的结果尚未出来之前,猜测地执行后续指令。
(3)用动态调度对基本块的各种组合进行跨基本块的调度。
11.流水线冲突有哪几种?
流水线冲突有以下3种类型:
(1)结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的冲突。
(2)数据冲突:当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
(3)控制冲突:流水线遇到分支指令和其他会改变PC值的指令所引起的冲突。
12.在存储器层次结构设计中,论述首先要解决的四个问题及其含义?
(1)块的放置策略:块如何放置在存储器层次中?
(2)块的替换策略:一次失效时,如何替换一个块?
(3)块的标识策略:一个块在存储器层次中如何找到它?
(4)写的策略:写的时候将会发生什么?
13.解决流水线结构冲突的方法有哪些?
(1)流水化功能单元;(2)资源重复;(3)暂停流水线。
14.造成Cache Misses的三类原因。
(1)强制缺失:指最初访问的block总是不在Cache中,必须从memory中取入Cache,故又称为第一次访问缺失。
(2)容量缺失:如果程序执行时,所需块由于容量不足不能全部调入Cache中,则当某些块被替换后,若又重新被访问就会发生缺页,也成为抖动现象。
(3)冲突缺失:因为有多个Blocks映射到同一块,其它的组或块有空闲位置。这是组相联和直接相联的副作用所致。
15.减少Cache失效开销有哪些方法?
(1)让读失效优先于写。
(2)写缓冲合并。
(3) 请求字处理技术。
(4)非阻塞Cache或非锁定Cache技术。
(5)采用二级Cache。
16.采用容量小且结构简单的Cache有什么好处?
(1)可以有效地提高Cache的访问速度。因为硬件越简单,速度就越快。小容量Cache可以实现快速标识检测,对减少命中时间有益。
(2)Cache足够小,可以与处理器做在同一芯片上,以避免因芯片外访问而增加时间开销。
(3)保持Cache结构简单可采用直接映像Cache。直接映像Cache的主要优点是可以让标识检测和数据传送重叠进行,这样可以有效地减少命中时间。
17.组相联Cache的失效率比相同容量直接映像Cache的失效率低。由此能否得出结论:采用组相联映像一定能带来性能上的提高?为什么?
不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
18.解释Victim cache的基本思想?
在Cache和它从下一级存储器调数据的通路之间设置一个全相联的小Cache,用于存放被替换出去的块,以备重用。这些被保存的替换块被称为Victim块,存放这些块的缓冲称为Victim cache。Victim cache对于减小冲突失效很有效,特别是对于小容量的直接映象数据Cache,作用尤其明显。
19.解释伪相联cache的工作原理?
在逻辑上把直接映象Cache的空间上下平分为两个区。对于任何一次访问,伪相联Cache先按直接映象Cache的方式去处理。若命中,则其访问过程与直接映象Cache的情况一样。若不命中,则再到另一区相应的位置去查找。若找到,则发生了伪命中,否则就只好访问下一级存储器。
20.在“Cache-主存”层次中,主存的更新算法有哪两种?它们各有什么特点?
(1)写直达法。易于实现,而且下一级存储器中的数据总是最新的。
(2)写回法。速度快,“写”操作能以Cache 存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。
21.组相联Cache的失效率比相同容量直接映象Cache的失效率低。由此能否得出结论:采用组相联一定能带来性能上的提高?为什么?
不一定。因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
22.影响多处理机并行处理的两个最大的挑战?
有限的并行度和较长的远程通信延时是多处理器的两个最大的挑战。 在软件中采用更好的并行算法来克服并行度低的问题。 降低远程通信延时则可通过体系结构实现,也可通过程序员实现。在硬件上缓存共享数据,或在软件上重新构造数据就能增加本地访问,因而也就减少了远程访问的频率。还可使用预取或多线程来减少延迟的影响。
23.简述RISC指令集结构的设计原则
(1)选取使用频率最高的指令,并补充一些最有用的指令; (2)每条指令的功能应尽可能简单,并在一个机器周期内完成; (3)所有指令长度均相同; (4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。
24.简述CISC指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?
主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。 缺点: (1)CISC结构的指令集中,各种指令的使用频率相差悬殊。 (2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。 (3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5)在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
25.根据CPU性能公式简述RISC指令集结构计算机和CISC指令集结构计算机的性能特点。
CPU性能公式:CPU时间=IC×CPI×T 其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。 相同功能的CISC目标程序的指令条数ICCISC 少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目标程序的执行时间比RISC的更长。
26.简述定向技术的思想
定向技术的思想是:在某条指令产生一个计算结果之前,其他指令并不真正需要该计算结果,如果将该计算结果产生的地方直接送到其他指令需要他的地方,那么就可以避免暂停。
27.简述分布式共享多处理机的优缺点
分布式存储器结构的优点:
(1)如果大多数的访问是针对本结点的局部存储器,则可降低对存储器和互连网络的带宽要求;
(2)对局部存储器的访问延迟低。
主要缺点:处理器之间的通信较为复杂,且各处理器之间访问延迟较大。
28.简述伪相联Cache的特点
伪相联Cache既能获得多路组相联Cache的低失效率,又能保持直接映像Cache的命中速度。采用这种方法时,在命中情况下,访问Cache的过程和直接映像Cache中的情况相同,而发生失效时,在访问下一级存储器之前会先检查Cache另一个位置,看是否匹配。
29.试说明名相关的两种类型
反相关:指令i先执行,指令j写的名是指令i读的名。反相关指令之间的执行顺序是必须保证的,反相关就是先读后写相关。
输出相关:指令j和指令i写相同的名。输出相关指令的指令顺序是不允许颠倒的。输出相关就是写后写相关。
30.什么是指令级并行性(ILP)?处理器如何利用指令级并行性来改善其性能的?
指令级并行性是指顺序程序中的许多指令是不相关的,这意味着可以不必按照指令在程序中的顺序来执行,依然能生成正确结果。 利用该特性,处理器就可不按顺序执行指令,而是按并行方式执行指令,从而减少了处理器执行程序所需要的时间。
31.你对Cache存储器的速度不满意,于是申请到一批有限的经费,为能发挥其最大经济效益,有人建议你再买一些同样速度的Cache片子以扩充其容量;而另有人建议你干脆去买更高速的Cache片子将现有的低速Cache片子全部换掉。你认为哪种建议可取?你如何做决定?为什么?
Cache本身的速度与容量都会影响Cache存储器的等效访问速度。如果对Cache存储器的等效访问速度不满意,需要改进的话,就要作具体分析,看看现在Cache存储器的等效访问速度是否已接近于Cache本身的速度。如果差得较远,说明Cache的命中率低,应从提高Cache命中率着手,包括调整组的大小、块的大小、替换算法以及增大Cache容量等。如果Cache存储器的等效访问速度已经非常接近于Cache本身的速度还不能满足需要,就应该更换更高速的Cache片子。
二、应用题
1.假定第一种改进措施使用了20%的时间,但提高了2倍的性能;假定第二种改进措施使用了70%的时间,但提高了1.3倍的性能。设旧执行时间为Told,问:使用哪一种改进措施能使执行时间减少最多?
解答:
应用Amdahl定律,针对第一种改进措施有:
新执行的时间=旧执行的时间*((1-0.2)+0.2/2) =0.9旧执行的时间
针对第二种改进措施有:新执行的时间=旧执行的时间*((1-0.7)+0.7/1.3) =0.9旧执行的时间=0.84旧执行的时间
因此使用了第二改进措施后性能提高较小,但它对使用改进措施后的总执行时间影响较大。
2.假定在运行某个程序时,某计算机将90%的时间用于处理某特定计算类型。某制造商进行修改后,使该计算类型的执行速度提高了10倍。问:
(1)当该程序原来的执行时间为100秒,该程序修改以后的执行时间是多少? (2)新旧系统之间的加速比是多少?
解答:
(1)增强比例=0.9,增强加速比=10,则由Amdahl定律的:
新执行的时间=旧执行的时间*((1-增强比例)+ 增强比例/增强加速比) =100*((1-0.9)+0.9/10) =19秒
(2)新旧系统之间的加速比是:加速比=原执行时间/现执行时间=100/19=5.3
3.某台机器的指令集原来进行存储器访问的指令只有Load/Store,其他指令只能在寄存器间操作。这台机器Load/Store指令的使用频率和时钟数如下:
| 操作 | 频率 | CPI |
|---|---|---|
| ALU | 43% | 1 |
| Loads | 21% | 2 |
| Stores | 12% | 2 |
| Branch | 24% | 2 |
现采用优化编译改善其性能,若编译可减少50%的ALU指令,但它不能减少Load、Store、Branch指令,忽略系统因素,并假设时钟周期是20ns(50MHz),问:优化编译后的MIPS和没有优化编译时的MIPS各为多少?MIPS的变化和执行时间的变化是否一致?
4.考察代码
L.D F6, 34(R2)
L.D F2, 45(R3)
MULT.D F0, F2, F4
SUB.D F8, F6, F2
DIV.D F10, F0, F6
ADD.D F6, F8, F2
假设L.D 可在 1 个时钟周期内完成,CDB需要1个时钟周期把结果送到目的。基于Tomasulo算法进行动态调度,请填写经过12个时钟周期时的保留站 和寄存器状态表: