1、第1章 计算机系统结构基础概念1.1 试用实例说明计算机系统结构、计算机组成和计算机实现之间相互关系。答:如在设计主存系统时,确定主存容量、编址方法、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采取并行主存、逻辑设计等属于计算机组成。选择存放芯片类型、微组装技术、线路设计等属于计算机实现。计算机组成是计算机系统结构逻辑实现。计算机实现是计算机组成物理实现。一个体系结构能够有多个组成。一个组成能够有多个实现。1.2 计算机系统设计中常常使用4个定量原理是什么?并说出它们含义。答:(1)以常常性事件为关键。在计算机系统设计中,对常常发生情况,给予它优先处理权和资源使用权,以得到更多总体上
2、改善。(2)Amdahl定律。加紧某部件实施速度所取得系统性能加速比,受限于该部件在系统中所占关键性。(3)CPU性能公式。实施一个程序所需CPU时间 = IC CPI 时钟周期时间。(4)程序局部性原理。程序在实施时所访问地址分布不是随机,而是相对地簇聚。1.3 计算机系统中有三个部件能够改善,这三个部件部件加速比为:部件加速比1=30; 部件加速比2=20; 部件加速比3=10(1) 假如部件1和部件2可改善百分比均为30%,那么当部件3可改善百分比为多少时,系统加速比才能够达成10?(2) 假如三个部件可改善百分比分别为30%、30%和20%,三个部件同时改善,那么系统中不可加速部分实施
3、时间在总实施时间中占百分比是多少?解:(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个部件改善后实施时间为: 改善后整个系统实施时间为:Tn = 0.045T+0.2T = 0.245T那么系统中不可改善部分实施时间在总实施时间中占百分比是:1.4 假设某应用程序中有4类操
4、作,经过改善,各操作取得不一样性能提升。具体数据以下表所表示:操作类型程序中数量(百万条指令)改善前实施时间(周期)改善后实施时间(周期)操作11021操作2302015操作335103操作41541(1)改善后,各类操作加速比分别是多少?(2)各类操作单独改善后,程序取得加速比分别是多少?(3)4类操作均改善后,整个程序加速比是多少?解:依据Amdahl定律可得操作类型各类操作指令条数在程序中所占百分比Fi各类操作加速比Si各类操作单独改善后,程序取得加速比操作111.1%21.06操作233.3%1.331.09操作338.9%3.331.37操作416.7%41.144类操作均改善后,整
5、个程序加速比:第2章 指令集结构分类2.1 区分不一样指令集结构关键原因是什么?依据这个关键原因可将指令集结构分为哪3类?答:区分不一样指令集结构关键原因是CPU中用来存放操作数存放单元。据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。2.2 简述CISC指令集结构功效设计关键目标。从目前计算机技术见解来看,CISC指令集结构计算机有什么缺点?答:关键目标是增强指令功效,把越来越多功效交由硬件来实现,而且指令数量也是越来越多。缺点: (1) CISC结构指令集中,多种指令使用频率相差悬殊。(2)CISC结构指令复杂性带来了计算机体系结构复杂性,这不仅增加了研制时间和成本,而且还轻
6、易造成设计错误。(3)CISC结构指令集复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构指令集中,很多复杂指令需要很复杂操作,所以运行速度慢。 (5) 在CISC结构指令集中,因为各条指令功效不均衡性,不利于采取优异计算机体系结构技术(如流水技术)来提升系统性能。2.3 简述RISC指令集结构设计标准。答(1) 选择使用频率最高指令,并补充部分最有用指令;(2)每条指令功效应尽可能简单,并在一个机器周期内完成;(3)全部指令长度均相同;(4)只有Load和Store操作指令才访问存放器,其它指令操作均在寄存器之间进行; (5) 以简单有效方法支持高级语言。第3章 流水线技
7、术3.1解释下列术语流水线:将一个反复时序过程,分解成为若干个子过程,而每一个子过程全部可有效地在其专用功效段上和其它子过程同时实施。3.2 指令实施可采取次序实施、重合实施和流水线三种方法,它们关键区分是什么?各有何优缺点。答:(1)指令次序实施是指指令和指令之间次序串行。即上一条指令全部实施完后,才能开始实施下一条指令。优点:控制简单,节省设备。缺点:实施指令速度慢,功效部件利用率低。(2)指令重合指令是在相邻指令之间,让第k条指令和取第k+l条指令同时进行。重合实施不能加紧单条指令实施速度,但在硬件增加不多情况下,能够加紧相邻两条指令和整段程序实施速度。和次序方法相比,功效部件利用率提升
8、了,控制变复杂了。(3)指令流水实施是把一个指令实施过程分解为若干个子过程,每个子过程由专门功效部件来实现。把多个处理过程在时间上错开,依次经过各功效段,每个子过程和其它子过程并行进行。依靠提升吞吐率来提升系统性能。流水线中各段时间应尽可能相等3.3 简述先行控制基础思想。答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定两个功效部件之间设置缓冲器,用以平滑它们工作。预处理技术是指预取指令、对指令进行加工和预取操作数等。采取先行控制方法处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间工作。这么不仅使它们全部能独立地工作,充足忙碌而不用相互等候,而且使
9、指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提升指令实施速度和部件效率。这些缓冲站全部按优异先出方法工作,而且全部是由一组若干个能快速访问存放单元和相关控制逻辑组成。采取先行控制技术能够实现多条指令重合解释实施。 3.4 设一条指令实施过程分成取指令、分析指令和实施指令三个阶段,每个阶段所需时间分别为t、t和2t 。分别求出下列多种情况下,连续实施N条指令所需时间。(1)次序实施方法;(2)只有“取指令”和“实施指令”重合;(3)“取指令”、“分析指令”和“实施指令”重合。解:(1)每条指令实施时间为:tt2t4t连续实施N条指令所需时间为:4Nt(2)连续实施N条指令所需时间为
10、:4t3(N-1)t(3N1)t(3)连续实施N条指令所需时间为:4t2(N-1)t(2N2)t3.7 降低流水线分支延迟静态方法有哪些?答:(1)估计分支失败:沿失败分支继续处理指令,就好象什么全部没发生似。当确定分支是失败时,说明估计正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令以后取出指令转化为空操作,并按分支目标地址重新取指令实施。(2)估计分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令实施。(3)延迟分支:关键思想是从逻辑上“延长”分支指令实施时间。把延迟分支看成是由原来分支指令和若干个延迟槽组成。不管分支是否成功,全部要
11、按次序实施延迟槽中指令。3种方法共同特点:它们对分支处理方法在程序实施过程中一直是不变。它们要么总是估计分支成功,要么总是估计分支失败。3.12 有一指令流水线以下所表示(1) 求连续输入10条指令,该流水线实际吞吐率和效率;(2) 该流水线“瓶颈”在哪一段?请采取两种不一样方法消除此“瓶颈”。对于你所给出两种新流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?解:(1)(2)瓶颈在3、4段。n 变成八级流水线(细分)n 反复设置部件123-13-24-14-24-34-43.13有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。假如每段经过一次所需
12、要时间全部是,问:(1) 当在流水线输入端连续地每时间输入任务时,该流水线会发生什么情况?(2) 此流水线最大吞吐率为多少?假如每输入一个任务,连续处理10个任务时实际吞吐率和效率是多少?(3) 当每段时间不变时,怎样提升该流水线吞吐率?仍连续处理10个任务时,其吞吐率提升多少?解:(1)会发生流水线阻塞情况。第1个任务S1S2S3S3S4第2个任务S1S2stallS3S3S4第3个任务S1stallS2stallS3S3S4第4个任务S1stallS2stallS3S3S4(2)(3)反复设置部件吞吐率提升倍数1.643.14 有一条静态多功效流水线由5段组成,加法用1、3、4、5段,乘法
13、用1、2、5段,第3段时间为2t,其它各段时间均为t,而且流水线输出能够直接返回输入端或暂存于对应流水寄存器中。现要在该流水线上计算 ,画出其时空图,并计算其吞吐率、加速比和效率。解:首先,应选择适合于流水线工作算法。对于本题,应先计算A1B1、A2B2、A3B3和A4B4;再计算(A1B1) (A2B2)和(A3B3) (A4B4);然后求总结果。其次,画出完成该计算时空图,图所表示,图中阴影部分表示该段在工作。由图可见,它在18个t时间中,给出了7个结果。所以吞吐率为: 假如不用流水线,因为一次求积需3t,一次求和需5t,则产生上述7个结果共需(45+33)t =29t。所以加速比为: 该
14、流水线效率可由阴影区面积和5个段总时空区面积比值求得: 3.15 动态多功效流水线由6个功效段组成,以下图:其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功效段时间均为50ns,假设该流水线输出结果能够直接返回输入端,而且设置有足够缓冲寄存器,若以最快方法用该流水计算:(1) 画出时空图;(2) 计算实际吞吐率、加速比和效率。解:机器一共要做10次乘法,4次加法。第4章 指令级并行4.1解释下列术语指令级并行:简称ILP。是指指令之间存在一个并行性,利用它,计算机能够并行实施两条或两条以上指令。指令调度:经过在编译时让编译器重新组织指令次序或经过硬件在实
15、施时调整指令次序来消除冲突。指令动态调度:是指在保持数据流和异常行为情况下,经过硬件对指令实施次序进行重新安排,以提升流水线利用率且降低停顿现象。是由硬件在程序实际运行时实施。指令静态调度:是指依靠编译器对代码进行静态调度,以降低相关和冲突。它不是在程序实施过程中、而是在编译期间进行代码调度和优化。4.2 简述Tomasulo算法基础思想。答:关键思想是: 统计和检测指令相关,操作数一旦就绪就立即实施,把发生RAW冲突可能性减小到最少; 经过寄存器换名来消除WAR冲突和WAW冲突。寄存器换名是经过保留站来实现,它保留等候流出和正在流出指令所需要操作数。基础思想:只要操作数有效,就将其取到保留站
16、,避免指令流出时才到寄存器中取数据,这就使得立即实施指令从对应保留站中取得操作数,而不是从寄存器中。指令实施结果也是直接送到等候数据其它保留站中去。所以,对于连续寄存器写,只有最终一个才真正更新寄存器中内容。一条指令流出时,存放操作数寄存器名被换成为对应于该寄存器保留站名称(编号)。4.4 假设有一条长流水线,仅仅对条件转移指令使用分支目标缓冲。假设分支估计错误开销为4个时钟周期,缓冲不命中开销为3个时钟周期。假设:命中率为90%,估计精度为90%,分支频率为15%,没有分支基础CPI为1。(1) 求程序实施CPI。(2) 相对于采取固定2个时钟周期延迟分支处理,哪种方法程序实施速度愈加快?解
17、:(1)程序实施CPI = 没有分支基础CPI(1) + 分支带来额外开销分支带来额外开销是指在分支指令中,缓冲命中但估计错误带来开销和缓冲没有命中带来开销之和。分支带来额外开销= 15% * (90%命中10%估计错误4 + 10没命中3)= 0.099所以,程序实施CPI 1 0.099 = 1.099(2)采取固定2 个时钟周期延迟分支处理CPI = 1 + 15%2 = 1.3由(1)(2)可知分支目标缓冲方法实施速度快。4.5 假设分支目标缓冲命中率为90%,程序中无条件转移指令百分比为5%,没有没有条件转移指令程序CPI值为1。假设分支目标缓冲中包含分支目标指令,许可无条件转移指令
18、进入分支目标缓冲,则程序CPI值为多少?解:设每条无条件转移指令延迟为x,则有:15%x1.1 x2当分支目标缓冲命中时,无条件转移指令延迟为0。所以 程序CPI 1 2 5% (1 90%) 1.01第5章 存放层次5.1解释下列术语多级存放层次:采取不一样技术实现存放器,处于离CPU不一样距离层次上,各存放器之间通常满足包容关系,即任何一层存放器中内容全部是其下一层(离CPU更远一层)存放器中内容子集。目标是达成离CPU最近存放器速度,最远存放器容量。全相联映象:主存中任一块能够被放置到Cache中任意一个地方。直接映象:主存中每一块只能被放置到Cache中唯一一个地方。组相联映象:主存中
19、每一块能够放置到Cache中唯一一组中任何一个地方(Cache分成若干组,每组由若干块组成)。替换算法:因为主存中块比Cache中块多,所以当要从主存中调一个块到Cache中时,会出现该块所映象到一组(或一个)Cache块已全部被占用情况。这时,需要被迫腾出其中某一块,以接纳新调入块。5.2 简述“Cache主存”层次和“主存辅存”层次区分。答: 存放层次比较项目“Cache主存”层次“主存辅存”层次目标为了填补主存速度不足为了填补主存容量不足存放管理实现全部由专用硬件实现关键由软件实现访问速度比值(第一级比第二级)几比一几万比一经典块(页)大小几十个字节几百到几千个字节CPU对第二级访问方法
20、可直接访问均经过第一级不命中时CPU是否切换不切换切换到其它进程5.3 地址映象方法有哪多个?它们各有什么优缺点?答:(1) 全相联映象。实现查找机制复杂,代价高,速度慢。Cache空间利用率较高,块冲突概率较低,所以Cache失效率也低。(2)直接映象。实现查找机制简单,速度快。Cache空间利用率较低,块冲突概率较高,所以Cache失效率也高。(3)组相联映象。组相联是直接映象和全相联一个折衷。5.7 在“Cache主存”层次中,主存更新算法有哪两种?它们各有什么特点?答:(1)写直达法。易于实现,而且下一级存放器中数据总是最新。(2)写回法。速度快,“写”操作能以Cache存放器速度进行
21、。而且对于同一单元多个写最终只需一次写回下一级存放器,有些“写”只抵达Cache,不抵达主存,所以所使用存放器频带较低。5.8 组相联Cache失效率比相同容量直接映象Cache失效率低。由此能否得出结论:采取组相联一定能带来性能上提升?为何?答:不一定。因为组相联命中率提升是以增加命中时间为代价,组相联需要增加多路选择开关。5.9 写出三级Cache平均访问时间公式。解:平均访存时间 命中时间失效率失效开销只有第I层失效时才会访问第I1。设三级Cache命中率分别为HL1、 Hl2、 HL3,失效率分别为Ml1、Ml2、ML3,第三级Cache失效开销为PL3。 平均访问时间TA HL1Ml
22、1Hl2Ml2(HL3ML3PL3)5.10 假设对指令Cache访问占全部访问75%;而对数据Cache访问占全部访问25%。Cache命中时间为1个时钟周期,失效开销为50 个时钟周期,在混合Cache中一次load或store操作访问Cache命中时间全部要增加一个时钟周期,32KB指令Cache失效率为0.39%,32KB数据Cache失效率为4.82%,64KB混合Cache失效率为1.35%。又假设采取写直达策略,且有一个写缓冲器,而且忽略写缓冲器引发等候。试问指令Cache和数据Cache容量均为32KB分离Cache和容量为64KB混合Cache相比,哪种Cache失效率更低?
23、两种情况下平均访存时间各是多少?解:(1)依据题意,约75%访存为取指令。所以,分离Cache总体失效率为:(75%0.15%)(25%3.77%)1.055%; 容量为128KB混合Cache失效率略低部分,只有0.95%。 (2)平均访存时间公式能够分为指令访问和数据访问两部分: 平均访存时间指令所占百分比(读命中时间读失效率失效开销) 数据所占百分比(数据命中时间数据失效率失效开销) 所以,两种结构平均访存时间分别为: 分离Cache平均访存时间75%(10.15%50)25%(13.77%50)(75%1.075)(25%2.885)1.5275 混合Cache平均访存时间75%(10
24、.95%50)25%(110.95%50)(75%1.475)(25%2.475)1.725所以,尽管分离Cache实际失效率比混合Cache高,但其平均访存时间反而较低。分离Cache提供了两个端口,消除了结构相关。第6章输入输出系统6.1 解释以下术语响应时间:从用户键入命令开始,到得到结果所花时间。通道:专门负责整个计算机系统输入/输出工作专用处理机,能实施有限一组输入输出指令。通道流量:指一个通道在数据传送期间,单位时间内能够传送数据量。虚拟DMA:它许可DMA设备直接使用虚拟地址,并在DMA传送过程中由硬件将虚拟地址转换为物理地址。异步I/O:许可进程在发出I/O请求后继续实施,直到
25、该进程真正访问这些数据而它们又还未就绪时,才被挂起。6.2 假设一台计算机I/O处理时间占10%,当其CPU性能改善为原来100倍,而I/O性能仅改善为原来2倍时,系统总体性能会有什么样改变?解:6.4 同时总线和异步总线各有什么优缺点?答:(1) 同时总线。同时总线上全部设备经过统一总线系统时钟进行同时。同时总线成本低,因为它不需要设备之间相互确定时序逻辑。不过其缺点是总线操作必需以相同速度运行。 (2) 异步总线。异步总线上设备之间没有统一系统时钟,设备自己内部定时。设备之间信息传送用总线发送器和接收器控制。异步总线轻易适应更广泛设备类型,扩充总线时不用担心时钟时序和时钟同时问题。但在传输
26、时,异步总线需要额外同时开销。6.5计算机系统字长32位,包含两个选择通道和一个多路通道,每个选择通道上连接了两台磁盘机和两台磁带机,多路通道上连接了了两台行式打印机,两台读卡机,10台终端,假定各设备传输率以下:磁盘机:800KBps磁带机:200KBps行打机:6.6KBps读卡机:1.2KBps终 端:1KBps计算该计算机系统最大I/O数据传输率。解:本题要求计算通道吞吐率,而且机器有一个多路通道,这就有两种可能:字节多路通道和数组多路通道。因为假如将多路通道组织成数组多路通道,某个时刻通道只能为一台设备传送数据,所以它传输率是全部设备传输率最大值,而假如将它组织成字节多路通道,该通道
27、最大传输率就是全部设备传输率之和。所以在本题中,从性能上考虑,应组织成字节多路通道形式。所以这类通道最大传输率为:(1)fBYTEfif打印机传输率2f读卡机传输率2f终端传输率1025.6KBps (i1.14)(2)两个选择通道连接设备相同,所以只要计算其中一个通道传输率既可。因为磁盘机传输率大于磁带机。所以这类通道传输率为: max800,200800KBps所以本系统最大数据传输率为: f系统280025.61625.6KBps。6.6 简述通道完成一次数据传输关键过程。答:(1)在用户程序中使用访管指令进入管理程序,由CPU经过管理程序组织一个通道程序,并开启通道。 (2) 通道处理
28、机实施CPU为它组织通道程序,完成指定数据I/O工作。 (3) 通道程序结束后向CPU发中止请求。CPU响应这个中止请求后,第二次进入操作系统,调用管理程序对I/O中止请求进行处理。6.7 试比较三种通道优缺点及适用场所。答:(1)字节多路通道。一个简单共享通道,关键为多台低速或中速外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多台高速外围设备(如磁盘存放器等)服务。6.8 一个字节多路通道连接有6台设备,它们数据传输率以下表所表示。设备名称D1D2D3D4D5D6数据传输速率(B/ms)505040252510(1) 计算该通道实际工作流量。(2) 若通道最大流量等
29、于实际工作流量,求通道工作周期Ts+TD。解:(1)通道实际流量为(2)因为通道最大流量等于实际工作流量,即有可得,通道工作周期Ts+TD = 5s。6.9 设某个字节多路通道设备选择时间Ts为9.8s,传送一个字节数据所需时间TD为0.2s。若某种低速外设每隔500s发出一次传送请求,那么,该通道最多可连接多少台这种外设? 解:字节多路通道最大流量为:字节多路通道实际流量为:其中,p为通道连接外设台数,fi为外设i数据传输速率。因为连接是一样外设,所以f1=f2=fp=f,故有fbyte=pf。通道流量匹配要求有:fmax-bytefbyte即有:;可得:已知Ts = 9.8s,TD = 0
30、.2s,1/f = 500s,可求出通道最多可连接设备台数为:6.10 在有Cache计算机系统中,进行I/O操作时,会产生哪些数据不一致问题?怎样克服?答:(1)存放器中可能不是CPU产生最新数据 ,所以I/O系统从存放器中取出来是陈旧数据。(2)I/O系统和存放器交换数据以后,在Cache中,被CPU使用可能就会是陈旧数据。第一个问题能够用写直达Cache处理。第二个问题操作系统能够确保I/O操作数据不在cache中。假如不能,就作废Cache中对应数据。6.11 假设在一个计算机系统中:(1) 每页为32KB,Cache块大小为128字节;(2) 对应新页地址不在Cache中,CPU不访
31、问新页中任何数据;(3) Cache中95%被替换块将再次被读取,并引发一次失效;(4) Cache使用写回方法,平均60%块被修改过;(5) I/O系统缓冲能够存放一个完整Cache块;(6) 访问或失效在全部Cache块中均匀分布;(7) 在CPU和I/O之间,没有其它访问Cache干扰;(8) 无I/O时,每100万个时钟周期内有18000次失效;(9) 失效开销是40个时钟周期。假如被替换块被修改过,则再加上30个周期用于写回主存;(10) 假设计算机平均每200万个周期处理一页。试分析I/O对于性能影响有多大?解:每个主存页有32K/128256块。因为是按块传输,所以I/O传输本身
32、并不引发Cache失效。不过它可能要替换Cache中有效块。假如这些被替换块中有60是被修改过,将需要(25660)304608个时钟周期将这些被修改过块写回主存。这些被替换出去块中,有95后继需要访问,从而产生95256244次失效,将再次发生替换。因为这次被替换244块中数据是从I/O直接写入Cache,所以全部块全部为被修改块,需要写回主存(因为CPU不会直接访问从I/O来新页中数据,所以它们不会立即从主存中调入Cache),需要时间是244(4030)17080个时钟周期。没有I/O时,每一页平均使用200万个时钟周期,Cache失效36000次,其中60被修改过,所需处理时间为:(3
33、600040)40(3600060)(4030)2088000(时钟周期)时钟I/O造成额外性能损失百分比为(460817080)(0002088000)0.53即大约产生0.53性能损失。第7章 互连网络7.1 解释以下术语线路交换:在线路交换中,源结点和目标结点之间物理通路在整个数据传送期间一直保持连接。分组交换:把信息分割成很多组(又称为包),将它们分别送入互连网络。这些数据包能够经过不一样路径传送,到目标结点后再拼合出原来数据,结点之间不存在固定连接物理通路。静态互连网络:各结点之间有固定连接通路、且在运行中不能改变网络。动态互连网络:由交换开关组成、可按运行程序要求动态地改变连接状态网络。第8章 多处理机8.1 解释以下术语集中式共享多处理机:也称为对称式共享存放器多处理SMP。它通常由几十个处理器组成,各处理器共享一个集中式物理存放器,这个主存相对于各处理器关系是对称,分布式共享多处理机:它共享存放器分布在各台处理机中,每台处理机全部带有自己当地存放器,组成一个“处理机-存放器”单元。不过这些分布在各台处理机中实际存放器又合在一起统一编址, 在逻辑上组成一个共享存放器。这些处理机存放器单元经过互连网络连接在一起 ,每台处理机除了能访问当地存放器外,还能经过互连网络直接访问在其它处理机存放器单元中 “远程存放器”。