计算机体系结构课后习题原版答案 - 张晨曦著(1)

更新时间:2024-06-07 06:42:01 阅读量: 综合文库 文档下载

说明:文章内容仅供预览,部分内容可能不全。下载后的文档,内容与下面显示的完全一致。下载之前请确认下面内容是否您想要的,是否完整无缺。

第1章 计算机系统结构的基本概念

1.1 解释下列术语

计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。

在计算机技术中,把这种本来存在的事物或属性,但从某种角度看又好像不存在的概念称为透明性。

系列机:由同一厂家生产的具有相同系统结构、但具有不同组成和实现的一系列不同型号的计算机。

软件兼容:一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算机上运行。差别只是执行时间的不同。

向上(下)兼容:按某档计算机编制的程序,不加修改就能运行于比它高(低)档的计算机。

向后(前)兼容:按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后(前)投入市场的计算机。

兼容机:由不同公司厂家生产的具有相同系统结构的计算机。

同构型多处理机系统:由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。

1.2 试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。

答:如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、微组装技术、线路设计等属于计算机实现。 计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种体系结构可以有多种组成。一种组成可以有多种实现。

1.4 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。

答:(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl

定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU性能公式。执行一个程序所需的CPU时间 = IC ×CPI ×时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。

1.5 分别从执行程序的角度和处理数据的角度来看,计算机系统中并行性等级从低到高可分为哪几级?

答:从处理数据的角度来看,并行性等级从低到高可分为:

(1)字串位串:每次只对一个字的一位进行处理。这是最基本的串行处理方式,不存在并行性;

(2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。已开始出现并行性;

(3)字并位串:同时对许多字的同一位(称为位片)进行处理。这种方式具有较高的并行性;

(4)全并行:同时对许多字的全部位或部分位进行处理。这是最高一级的并行。

从执行程序的角度来看,并行性等级从低到高可分为: (1)指令内部并行:单条指令中各微操作之间的并行; (2)指令级并行:并行执行两条或两条以上的指令;

(3)线程级并行:并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位;

(4)任务级或过程级并行:并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元;

(5)作业或程序级并行:并行执行两个或两个以上的作业或程序。 1.7 将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?

解 由题可知: 可改进比例 = 40% = 0.4 部件加速比 = 10

根据Amdahl定律可知:

系统加速比?1?1?0.4??0.410?1.5625

采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。

第2章 指令集结构的分类

2.1 解释下列术语

堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。 累加器型机器:CPU 中存储操作数的单元是累加器的机器。 通用寄存器型机器:CPU 中存储操作数的单元是通用寄存器的机器。 2.2 指令集结构设计所涉及的内容有哪些?

答: (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向; (2) 寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式3种。

2.3 简述CISC指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?

答:主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。

缺点: (1) CISC结构的指令集中,各种指令的使用频率相差悬殊。(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。 (5) 在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。

2.4 简述RISC指令集结构的设计原则。

答(1) 选取使用频率最高的指令,并补充一些最有用的指令;(2)每条指令的功能应尽可能简单,并在一个机器周期内完成;(3)所有指令长度均相同;(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行; (5) 以简单有效的方式支持高级语言。

2.5 表示寻址方式的主要方法有哪些?简述这些方法的优缺点。

答:表示寻址方式有两种常用的方法:(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。这种方式译码较慢,但操作码和寻址独立,易于指令扩展。

第3章 流水线技术

3.1解释下列术语

数据相关:考虑两条指令i和j,i在j的前面,如果下述条件之一成立,则称指令j与指令i数据相关:

(1)指令j使用指令i产生的结果;

(2)指令j与指令k数据相关,而指令k又与指令i数据相关。

名相关:如果两条指令使用了相同的名,但是它们之间并没有数据流动,则称这两条指令存在名相关。

控制相关:是指由分支指令引起的相关。它需要根据分支指令的执行结果来确定后面该执行哪个分支上的指令。

反相关:考虑两条指令i和j,i在j的前面,如果指令j所写的名与指令i所读的名相同,则称指令i和j发生了反相关。

输出相关:考虑两条指令i和j,i在j的前面,如果指令j和指令i所写的名相同,则称指令i和j发生了输出相关。

定向:用来解决写后读冲突的。在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。

3.3 简述先行控制的基本思想。

答:先行控制技术是把缓冲技术和预处理技术相结合。缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。预处理技术是指预取指令、对指令进行加工以及预取操作数等。

采用先行控制方式的处理机内部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。

采用先行控制技术可以实现多条指令的重叠解释执行。 3.6 解决流水线瓶颈问题有哪两种常用方法? 答:细分瓶颈段与重复设置瓶颈段

3.7 减少流水线分支延迟的静态方法有哪些?

答:(1)预测分支失败:沿失败的分支继续处理指令,就好象什么都没发生似的。当确定分支是失败时,说明预测正确,流水线正常流动;当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。

(2)预测分支成功:当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。

(3)延迟分支:主要思想是从逻辑上“延长”分支指令的执行时间。把延迟分支看成是由原来的分支指令和若干个延迟槽构成。不管分支是否成功,都要按顺序执行延迟槽中的指令。

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。

3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。

for (i=2; i<100; i=i+1)

a[i]=b[i]+a[i] ;/* s1 */ c[i+1]=a[i]+d[i] a[i-1]=2*b[i]

; /* s2 */ ; /* s3 */

b[i+1]=2*b[i] ;/* s4 */

解:展开循环两次:

a[i] = b[i] + a[i] c[i+1] = a[i] + d[i] a[i-1] = 2 * b[i] b[i+1] = 2 * b[i]

; /* s1 */ ; /* s2 */ ; /* s3 */ ; /* s4 */

a[i+1] = b[i+1] + a[i+1] ; /* s1? */ c[i+2] = a[i+1] + d[i+1] ; /* s2 ?*/ a[i] = 2 * b[i+1] b[i+2] = 2 * b[i+1]

输出相关:无 反相关:无 真相关:S1&S2

由于循环引入的相关:S4&S4’(真相关)、S1’&S4(真相关)、S3’&S4(真相关)、S1&S3’(输出相关、反相关)、S2&S3’(反相关)。

3.10 简述三种向量处理方式,它们对向量处理机的结构要求有何不同? 答 (1)横向处理方式:若向量长度为N,则水平处理方式相当于执行N次循环。若使用流水线,在每次循环中可能出现数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向处理方式:将整个向量按相同的运算处理完毕之后,再去执行其他运算。适合对向量进行流水处理,向量运算指令的源/目向量都放在存储器内,使得流水线运算部件的输入、输出端直接与存储器相联,构成M-M型的运算流水线。 (3)纵横处理方式:把长度为N的向量分为若干组,每组长度为n,组内按纵向方式处理,依次处理各组,组数为「N/n」,适合流水处理。可设长度为n的向量寄存器,使每组向量运算的源/目向量都在向量寄存器中,流水线的运算部件输入、输出端与向量寄存器相联,构成R-R型运算流水线。

3.12 有一指令流水线如下所示

入 1 2 3 4 出 50ns 50ns 100ns 200ns ; /* s3 ?*/ ; /* s4 ?*/

(1) 求连续输入10条指令,该流水线的实际吞吐率和效率;

(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措施消除此“瓶颈”。

对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少? 解:(1)

Tpipeline???ti?(n?1)?tmaxi?1m?(50?50?100?200)?9?200 ?2200(ns)TP?nTpipeline?1(ns?1)

2204005??45.45% 411E?TP???ti?1mim?TP?(2)瓶颈在3、4段。 ? 变成八级流水线(细分)

è?150ns250ns3_150ns3_250ns4_150ns4_450ns3?

Tpipeline???ti?(n?1)?tmaxi?1m?50?8?9?50?850(ns)TP?nTpipelinem

?185(ns?1)

E?TP???tii?1m?TP?40010??58.82% 817? 重复设置部件

TP?nTpipeline?185(ns?1)

E?400?10850?8?10?58.82%

17段 4_4 4_3 4_2 4_1 3_2 3_1 2 211432 768 109 8 57 6 3 4 1 109 5 时间 2 3 4 5 6 7 8 9 10 1 1 2 3 4 5 6 7 8 9 10 850ns

3.14 能流水线法用1、3、1、2、5

1 2 3-2 3-1 4-1 4-2 4-3 4-4 有一条静态多功由5段组成,加4、5段,乘法用段,第3段的时

间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或

(A?B)?暂存于相应的流水寄存器中。现要在该流水线上计算 ,画出其时

iii?14 1 △t 加法 2△t △t △t 2 △t 3 乘法 4 5 空图,并计算其吞吐率、加速比和效率。

解:首先,应选择适合于流水线工作的算法。对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;再计算(A1+B1) ×(A2+B2)和(A3+B3) ×(A4+B4);然后求总的结果。

段 5 4 3 2 1 A B C D A×B C×D A×B×C×D A=A1+B1 B=A2+B2 C=A3+B3 D=A4+B4 输0 1 2 3 入4 5 6 7 8 9 A1 A2 A3 A4 B1 B2 B3 B4 10 11 12 13 14 15 16 17 18 A×B A C B D C×D 时间 其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

由图可见,它在18个△t时间中,给出了7个结果。所以吞吐率为:

TP?7 18?t如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×5+3×3)△t =29△t。所以加速比为:

2 9 ? t

S?18?t?1.61该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得: 4 ? 5 ? 3 ? 3 ? 0 .3 22 E ?

3.15 动态多功能流水线由6个功能段组成,如下图:

S1 S2 S3 乘法 加法 S4 S5 S6 5?18

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,

各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:?xiyizi

i?15(1) 画出时空图;

(2) 计算实际的吞吐率、加速比和效率。

解:机器一共要做10次乘法,4次加法。 3.16 在MIPS流水线上运行如下代码序列:

LOOP: LW R1,0(R2) DADDIU R1,R1,#1 SW R1, 0(R2) DADDIU R2,R2,#4 DSUB R4,R3,R2 BNEZ R4,LOOP

其中:R3的初值是R2+396。假设:在整个代码序列的运行过程中,所有的存储器访问都是命中的,并且在一个时钟周期中对同一个寄存器的读操作和写操作可以通过寄存器文件“定向”。问:

(1) 在没有任何其它定向(或旁路)硬件的支持下,请画出该指令序列

执行的流水线时空图。假设采用排空流水线的策略处理分支指令,且

外开销。

平均访存时间伪相联=命中时间1路+(失效率1路-失效率2路)×1

+失效率2路×失效开销1路

将题设中的数据带入计算,得到:

平均访存时间2Kb=1+(0.098-0.076)*1+(0.076 *50 ) =4.822 平均访存时间128Kb=1+(0.010-0.007)*1+(0.007 *50 ) =1.353 显然是128KB的伪相联Cache要快一些。

第6章输入输出系统

6.1 解释以下术语

RAID:廉价磁盘冗余阵列或独立磁盘冗余阵列。

通道:专门负责整个计算机系统输入/输出工作的专用处理机,能执行有限的一组输入输出指令。

通道流量:指一个通道在数据传送期间,单位时间内能够传送的数据量。

6.2 假设一台计算机的I/O处理时间占10%,当其CPU性能改进为原来的100倍,而I/O性能仅改进为原来的2倍时,系统总体性能会有什么样的变化?

解:加速比?1?16.94

10%/2?90%/1006.3 RAID有哪些分级?各有何特点?

答:(1)RAID0。亦称数据分块,即把数据分布在多个盘上,实际上是非冗余阵列,无冗余信息。(2)RAID1。亦称镜像盘,使用双备份磁盘。每当数据写入一个磁盘时,将该数据也写到另一个冗余盘,这样形成信息的两份复制品。如果一个磁盘失效,系统可以到镜像盘中获得所需要的信息。镜像是最昂贵的解决方法。特点是系统可靠性很高,但效率很低。(3)RAID2。位交叉式海明编码阵列。即数据以位或字节交叉的方式存于各盘,采用海明编码。原理上比较优越,但冗余信息的开销太大,因此未被广泛应用。(4)RAID3。位交叉奇偶校验盘阵列,是单盘容错并行传输的阵列。即数据以位或字节交叉的方式存于各盘,冗余的奇偶校验信息存储在一台专用盘上。(5)RAID4。专用奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的奇偶校验信息存在一台专用盘上。(6)RAID5。块交叉分布式奇偶校验盘阵列,是旋转奇偶校验独立

存取的阵列。即数据以块交叉的方式存于各盘,但无专用的校验盘,而是把冗余的奇偶校验信息均匀地分布在所有磁盘上。(7)RAID6。双维奇偶校验独立存取盘阵列。即数据以块(块大小可变)交叉的方式存于各盘,冗余的检、纠错信息均匀地分布在所有磁盘上。并且,每次写入数据都要访问一个数据盘和两个校验盘,可容忍双盘出错。

6.7 试比较三种通道的优缺点及适用场合。

答:(1)字节多路通道。一种简单的共享通道,主要为多台低速或中速的外围设备服务。(2)数组多路通道。适于为高速设备服务。(3)选择通道。为多台高速外围设备(如磁盘存储器等)服务的。

6.8 一个字节多路通道连接有6台设备,它们的数据传输率如下表所示。

设备名称 数据传输速率(B/ms) D1 D2 D3 D4 D5 D6 50 50 40 25 25 10 (1) 计算该通道的实际工作流量。

(2) 若通道的最大流量等于实际工作流量,求通道的工作周期Ts+TD。 解:(1)通道实际流量为

fbyte??fi?50?50?40?25?25?10?200B/ms

i?16(2)由于通道的最大流量等于实际工作流量,即有

fmax?byte?1?200B/ms

TS?TD可得,通道的工作周期Ts+TD = 5μs。

第7章 互连网络

7.1 解释以下术语

互连网络:一种由开关元件按照一定的拓扑结构和控制方式构成的网络,用来实现计算机系统中结点之间的相互连接。在拓扑上,互连网络是输入结点到输出结点之间的一组互连或映象。

7.3 设E为交换函数,S为均匀洗牌函数,B为蝶式函数,PM2I为移数函数,函数的自变量是十进制数表示的处理机编号。现有32台处理机,其编号为0,1,2,?,31。

(1)分别计算下列互连函数

E2(12) S(8) B(9) PM2I+3(28) E0(S(4)) S(E0(18))

(2)用E0和S构成均匀洗牌交换网(每步只能使用E0和S一次),网络直径是多少?从5号处理机发送数据到7号处理机,最短路径要经过几步?请列出经过的处理机编号。

(3)采用移数网络构成互连网,网络直径是多少?结点度是多少?与2号处理机距离最远的是几号处理机?

解:(1)共有32个处理机,表示处理机号的二进制地址应为5位。

E2(12)=E2(01100)=01000(8) S(8)=S(01000)=10000(16) B(9)=B(01001)=11000(24) PM2I+3(28)=28+23 mod32 =4

E0(S(4))=E0(S(00100))=01001(9)

S(E0(18))=S(E0(10010))=S(10011)=00111(7)

(2)2n个结点的均匀洗牌交换网的网络直径为2n-1,32个结点的均匀洗牌交换网的网络直径为9。

从5号处理机发送数据到7号处理机,最短路径要经过6步:

00101→00100→01000→01001→10010→10011→00111

(3)网络直径是3,结点度是9,与2号处理机距离最远的是13、15、21、23号处理机。

第8章 多处理机

8.1 解释以下术语

分布式共享多处理机:它的共享存储器分布在各台处理机中,每台处理机都带有自己的本地存储器,组成一个“处理机-存储器”单元。但是这些分布在各台处理机中的实际存储器又合在一起统一编址, 在逻辑上组成一个共享存储器。这

些处理机存储器单元通过互连网络连接在一起 ,每台处理机除了能访问本地存储器外,还能通过互连网络直接访问在其他处理机存储器单元中的 “远程存储器”。

多Cache一致性:多处理机中,当共享数据进入Cache,就可能出现多个处理器的Cache中都有同一存储器块的副本,要保证多个副本数据是一致的。 目录协议:用一种专用的存储器所记录的数据结构。它记录着可以进入Cache的每个数据块的访问状态、该块在各个处理器的共享状态以及是否修改过等信息。

8.2 一个具有32台处理机的系统,对远程存储器访问时间是2000ns。除了通信以外,假设计算中的访问均命中局部存储器。当发出一个远程请求时,本地处理机挂起。处理机的时钟周期时间是10ns,假设指令基本的CPI为1.0(设所有访存均命中Cache)。对于下述两种情况:

(1) 没有远程访问;

(2) 0.5%的指令需要远程访问。 试问前者比后者快多少?

解:已知远程访问率 p = 0.5%,远程访问时间 t = 2000ns,时钟周期 T = 10ns 远程访问开销 C = t/T = 2000ns/10ns = 200(时钟周期数) 有 0.5%远程访问的机器的实际 CPI2 为: CPI2 = CPI1 + p×C = 1.0 + 0.5%×200 = 2.0 只有局部访问的机器的基本 CPI1 = 1.0 CPI2/ CPI1 = 2.0/1.0 = 2(倍)

因此,没有远程访问状态下的机器速度是有0.5% 远程访问的机器速度的2 倍。

8.3 什么是多处理机的一致性?给出解决一致性的监听协议和目录协议的工作原理。

答:(1) 对多个处理器维护一致性的协议称为Cache一致性协议。 (2)目录协议的工作原理:采用一个集中的数据结构——目录。对于存储器中的每一个可以调入Cache的数据块,在目录中设置一条目录项,用于记录该块的状态以及哪些Cache中有副本等相关信息。目录协议根据该项目中的信息以

及当前要进行的访问操作,依次对相应的Cache发送控制消息,并完成对目录项信息的修改。此外,还要向请求处理器发送响应信息。

(3)监听协议的工作原理:每个Cache除了包含物理存储器中块的数据拷贝之外,也保存着各个块的共享状态信息。Cache通常连在共享存储器的总线上,当某个Cache需要访问存储器时,它会把请求放到总线上广播出去,其他各个Cache控制器通过监听总线来判断它们是否有总线上请求的数据块。如果有,就进行相应的操作。

第9章 机群

9.1 解释下列术语

机群:是一种价格低廉、易于构建、可扩放性极强的并行计算机系统。它由多台同构或异构的独立计算机通过高性能网络或局域网互连在一起,协同完成特定的并行计算任务。从用户的角度来看,机群就是一个单一、集中的计算资源。

本文来源:https://www.bwwdw.com/article/jx26.html

Top