计算机体系结构题库 下载本文

1.名词解释(每个3分,共15分)

多级层次结构----按照计算机语言从低级到高级的次序,把计算机系统按功能划分成多级层次结构,每一层以一种不同的语言为特征。这些层次依次为微程序机器级、传统机器语言机器级、操作系统机器级、汇编语言机器级、高级语言机器级、应用语言机器级等。

解释----对于高一级机器上的程序中的每一条语句或指令,都是转去执行低一级机器上的一段等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,直到解释执行完整个程序。

翻译----先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,然后再在这低一级机器上运行,实现程序的功能。

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

Amdahl定律----当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,受限于该部件的执行时间占总执行时间的百分比。

模拟----用软件的方法在一台现有的计算机(称为宿主机host)上实现另一台计算机(称为虚拟机)的指令系统。

仿真----用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。

指令系统的完整性----在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令系统所提供的指令足够使用。

指令系统的规整性----没有或尽可能减少例外的情况和特殊的应用,所有运算都能对称,均匀地在存储器单元或寄存器单元之间进行。

静态流水线----指在同一时间内,多功能流水线中的各段只能按同一种功能的连接方式工作的流水线。当流水线要切换到另一种功能时,必须等前面的任务都流出流水线之后,才能改变连接。

动态流水线----指在同一时间内,多功能流水线中的各段可以按照不同的方式连接,同时执行多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。 计算机系统结构-----传统机器程序员所看到的计算机属性,即概念性结构与功能特性。 程序的局部性原理-----程序执行时所访问的存储器地址不是随机分布的,而是相对地簇聚。包括时间局部性和空间局部性。

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

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

并行性-----计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。只要在时间上相互重叠,就存在并行性。它包括同时性与并发性两种含义。

寻址方式-----指令系统中如何形成所要访问的数据的地址。一般来说,寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。 数据表示-----硬件结构能够识别、指令系统可以直接调用的那些数据结构。 结构冲突-----因硬件资源满足不了指令重叠执行的要求而发生的冲突。

数据冲突------当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。

顺序流水线------流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。 乱序流水线------流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,允许后进入流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。

可靠性-----指系统从某个初始参考点开始一直连续提供服务的能力,它通常用平均无故障时间来衡量。

可用性-----指系统正常工作的时间在连续两次正常服务间隔时间中所占的比率。

2选择题(每个2分 ,共14分)

1.对汇编语言程序员不透明的是() A.程序计算器 B.主存地址寄存器 2.直接执行微指令的是() A.汇编程序 B.编译程序 A.采用统一的高级语言 C.模拟

C.条件码寄存器 D.指令寄存器

D.微指令程序

C.硬件

3.不同系列的机器之间,实现可移植性的途径不包括()

B.采用统一的汇编语言 D.仿真

4.从计算机系统结构来看,机器语言程序员看到的机器属性是() A.计算机软件所要完成的功能 B.计算机硬件的全部组成 C.编程要用到的硬件组织 D.计算机各部件的硬件实现 5.不需要编址的数据存储空间是() A.CPU中的通用寄存器 B.主存储器 C.I/O接口中的寄存器 D.堆栈 6.信息按整数边界存储的主要优点是() A.访存速度快 C.指令字的规整化

B.节约主存单元 D.指令的优化

7.操作码优化的主要目的是() A.缩短指令字长 B.减少程序总位数 C.增加指令字表示的信息 D.A、B和C 8.平均码长最短的编码是() A.定长编码 C.扩展编码

B.哈夫曼编码

D.需要根据编码使用的频度计算平均码长后确定

B.动态流水线是多功能流水线

D.动态流水线只能是单功能流水线

9.以下说法不正确的是()

A.线性流水线是单功能流水线 C.静态流水线是多功能流水线

10.与线性流水线最大吞吐率有关的是() A.各个功能段的执行时间 B.最快的那一段的执行时间 C.最慢的那一段的执行时间 D.最后功能段的执行时间 11.程序员编写程序时,使用的访存地址是() A.主存地址 B.逻辑地址 12.虚拟存储器主要是为了() A.扩大存储系统的容量

C.物理地址

D.有效地址

B.提高存储系统的速度

D.便于程序的访存操作

C.扩大存储系统的容量和提高存储系统的速度 13.与全相联映像相比,组相联映像的优点是()

A.目录表小 B.块冲突概率低 C.命中率高 D.主存利用率高 14.按cache地址映像的块冲突概率从高到低的顺序是() A.全相联映像、直接映像、组相联映像 B.组相联映像、全相联映像、直接映像 C.直接映像、组相联映像、全相联映像

D.全相联映像、组相联映像、直接映像

15.以下说法不正确的是() A.线性流水线是单功能流水线 B.动态流水线是多功能流水线 C.静态流水线是多功能流水线 D.动态流水线只能是单功能流水线 16.在MIPS的指令流水线中,可能发生的冲突有()

A.同一条指令的读操作与写操作之间的写后读冲突。

B.先流入的指令的写操作与后流入的指令的读操作之间的写后读冲突 C.后流入的指令的写操作与先流入的指令的读操作之间的读后写冲突 D.两条指令的写操作之间的写后写冲突

17.对于采用组相联映像、LRU替换算法的cache存储器来说,不影响cache命中率的是() A.增加cache中的块数 C.增大主存容量

B.增大组的大小 D.增大块的大小

18.下列说法不正确的是()

A.单体多字存储器能提高存储器频宽

B.多体存储器低位交叉编址能提高存储器频宽 C.多体存储器高位交叉编址便于扩大存储器容量

D.多体存储器高位交叉编址能提高存储器频宽

19.输入输出数据不经过CPU内部寄存器的输入输出方式是() A.程序控制输入输出方式 B.中断输入输出方式

C.直接存储器访问方式 D.上述3种方式

20.在配置有通道的计算机系统中,用户程序需要输入输出时,引起的中断是() A.访管中断 B.I/O中断 C.程序性中断 D.外部中断

21.当计算机系统通过执行通道程序完成输入输出工作时,执行通道程序的是() A.CPU B.通道 C.CPU和通道 D.指定的外设 22.磁盘存储器适合于连接到() A.字节多路通道或选择通道 C.选择通道或数组多路通道

B.字节多路通道或数组多路通道 D.任意一种通道

23.在由多个通道组成的I/O系统中,I/O系统的最大流量是() A.各通道最大流量的最大值 B.各通道最大流量之和 C.各通道实际流量的最大值 D.各通道实际流量之和

3.填空题(每空1分,共15分)

1.常见的计算机系统结构分类法有3种:Flynn分类法、冯氏分类法、Handler分类法。 2.程序的局部性包含程序的 时间 局部性和程序的 空间 局部性。

3.从多级层次结构出发,计算机系统可以有 由上往下设计、由下往上设计、从中间开始设计 3种不同的设计方法。

4.广义来说,并行性即包含 同时 性,又包含 并发 性。

5.CPU中用来存储操作数的存储单元主要有 堆栈、累加器和寄存器。

6.指令系统编码格式有 变长编码格式、固定长度编码格式和混合型编码格式。 7.流水线冲突有 结构冲突、数据冲突和控制冲突 3种类型。

8.按照指令读访问和写访问的先后顺序,可以将数据冲突分为 写后读冲突、写后写冲突和读后写冲突 3中类型。

9.消除流水线瓶颈的方法有 细分瓶颈段 和 重复设置瓶颈段 两种。 10.相关有3种类型: 数据相关 、 名相关 和 控制相关 。 11.指令之间的名相关有 反相关 和 输出相关 两种。

12.存储层次的性能参数有 存储容量、平均每位价格、命中率、平均访问时间 4个。 13.存储层次要解决的4个问题是 映像规则、查找方法、替换算法、写策略 。

14.按照产生不命中的原因不同,可以把不命中分为 强制性不命中 、 容量不命中 和 冲突不命中 3类。 15.在相同的器件条件下,如果要提高主存的带宽,可以采用 单体多字存储器 和 多体交叉存储器 两种并行存储器结构。

4.解答题(每个5分,共10分)

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

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

计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种系统结构可以有多种组成。一种组成可以有多种实现。 2.计算机系统“由中间开始设计”,其“中间”指的是是么地方?这样设计的好处是什么? 答: “中间”指的是多级层次结构中的软硬件交界面,即传统机器级与操作系统机器级之间。

这样设计,能合理地进行软硬件的功能分配,优化软硬件设计,可为软件和应用提供更多更好的支持;软件和硬件并行设计可以缩短设计周期。 3.从当前的计算机技术观点来看,CICS结构有什么缺点?

答:(1)CISC结构的指令系统中,各种指令的使用频率相差悬殊。

(2)CISC结构指令系统的复杂性带来了计算机系统结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。

(3)CISC结构指令系统的复杂性给VLSI设计增加了很大负担,不利于单片集成。 (4)CISC结构的指令系统中,许多复杂指令需要很复杂的操作,因而运行速度慢。

(5)在CISC结构的指令系统中,由于各条指令的功能不均衡性,不利于采用先进的计算机系统结构技术(如流水技术)来提高系统的性能。 4.简述RISC结构的设计原则。

答:(1)选取使用频率最高的指令,并补充一些最有用的指令。 (2)每条指令的功能应尽可能简单,并在一个机器周期内完成。 (3)所有指令长度均相同;

(4)只有load和store操作指令才访问存储器,其他指令操作均在寄存器之间进行; (5)以简单有效的方式支持高级语言。

5. 计算机系统设计中经常使用的4个定量原理是什么?并说出它们的含义。 答:(1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。(2)Amdahl定律。加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。(3)CPU性能公式。执行一个程序所需的CPU时间 = IC ×CPI ×时钟周期时间。(4)程序的局部性原理。程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。 6.指令集应满足哪几个基本要求?

答:对指令集的基本要求是:完整性、规整性、高效率和兼容性。

完整性是指在一个有限可用的存储空间内,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。

规整性主要包括对称性和均匀性。对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。均匀性是指对于各种不同的操作数类型、字长、操作种类和数据

存储单元,指令的设置都要同等对待。

高效率是指指令的执行速度快、使用频度高。 7.指令集结构设计所涉及的内容有哪些? 答: (1) 指令集功能设计:主要有RISC和CISC两种技术发展方向; (2) 寻址方式的设计:设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型:主要的操作数类型和操作数表示的选择有:浮点数据类型、整型数据类型、字符型、十进制数据类型等等。 (4) 寻址方式的表示:可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。 (5) 指令集格式的设计:有变长编码格式、固定长度编码格式和混合型编码格式3种。 8.简述CISC指令集结构功能设计的主要目标。从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?

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

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

(1) 流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。

(2) 流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。

(3) 流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。

(4) 流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。

(5) 流水线需要有通过时间和排空时间。在这两个时间段中,流水线都不是满负荷工作。

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

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

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

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

3种方法的共同特点:它们对分支的处理方法在程序的执行过程中始终是不变的。它们要么总是预测分支成功,要么总是预测分支失败。 11.简述延迟分支方法中的三种调度策略的优缺点。 调度策略 对调度的要求 从前调度 分支必须不依赖于被调度的指令 对流水线性能改善的影响 总是可以有效提高流水线性能 从目标处调度 如果分支转移失败,必须保证被调度的指分支转移成功时,可以提高流水线令对程序的执行没有影响,可能需要复制性能。但由于复制指令,可能加大被调度指令 程序空间 从失败处调如果分支转移成功,必须保证被调度的指分支转移失败时,可以提高流水线度 令对程序的执行没有影响 性能

12.简述“Cache—主存”层次与“主存—辅存”层次的区别。 答: 存储层次 比较项目 目的 存储管理的实现 访问速度的比值 (第一级比第二级) 典型的块(页)大小 CPU对第二级的访问方式 不命中时CPU是否切换

13.地址映象方法有哪几种?它们各有什么优缺点?

答:(1) 全相联映象。实现查找的机制复杂,代价高,速度慢。Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。(2)直接映象。实现查找的机制简单,速度快。Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。(3)组相联映象。组相联是直接映象和全相联的一种折衷。

14.降低Cache失效率有哪几种方法?简述其基本思想。 答:常用的降低Cache失效率的方法有下面几种:

(1) 增加Cache块大小。增加块大小利用了程序的空间局部性。

(2) 增加Cache的容量。 (3) 提高相联度,降低冲突失效。

(4) 伪相联Cache,降低冲突失效。当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。如果这一块的标识匹配,则称发生了“伪命中”。否则,就访问下一级存储器。

(5) 硬件预取技术。在处理器提出访问请求前预取指令和数据。

(6) 由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。

(7) 编译器优化,通过对软件的优化来降低失效率。 (8) “牺牲”Cache。在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache 调入Cache。

15.在“Cache—主存”层次中,主存的更新算法有哪两种?它们各有什么特点? 答: (1)写直达法。易于实现,而且下一级存储器中的数据总是最新的。

(2)写回法。速度快,“写”操作能以Cache存储器的速度进行。而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使

“Cache—主存”层次 为了弥补主存速度的不足 全部由专用硬件实现 几比一 几十个字节 可直接访问 不切换 “主存—辅存”层次 为了弥补主存容量的不足 主要由软件实现 几万比一 几百到几千个字节 均通过第一级 切换到其它进程 用的存储器频带较低。

16.简述通道完成一次数据传输的主要过程。 答:(1)在用户程序中使用访管指令进入管理程序,由CPU通过管理程序组织一个通道程序,并启动通道。 (2) 通道处理机执行CPU为它组织的通道程序,完成指定的数据I/O工作。 (3) 通道程序结束后向CPU发中断请求。CPU响应这个中断请求后,第二次进入操作系统,调用管理程序对I/O中断请求进行处理。

综合性大题

1.假设处理机的时钟频率为40MHz,运行的测试程序共有200 000条指令,由4类指令组成。已知各类指令的CPI和各类指令条数的比例如下所示。

指令类型 算术逻辑运算指令 Cache命中的load/store指令 转移类指令 Cache不命中的load/store指令 解:CPI?CPI 1 2 4 8 指令条数比例 60% 18% 12% 10% 计算处理机运行该测试程序的CPI和速率(MIPS)。 ??CPI?ICiiIC??1?0.6?2?0.18?4?0.12?8?0.1?2.24

时钟频率40?106速率==MIPS=17.86MIPS 66CPI?102.24?10TCPU?IN?CPI?TC?2?10?2.24??10?11.2(ms)1405?6

2.某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下: 指令类型 指令执行数量 平均时钟周期数 整数 45000 1 数据传送 75000 2 浮点 8000 4 分支 1500 2 求该计算机的有效CPI、MIPS和程序执行时间。 解:(1)CPI =(45000×1+75000×2+8000×4+1500×2) / 129500=1.776

(2)MIPS速率=f/ CPI =400/1.776 =225.225MIPS

(3)程序执行时间= (45000×1+75000×2+8000×4+1500×2)/400=575us 3.用一台40MHz处理机执行标准测试程序,它含的混合指令数和相应所需的时钟周期数如下:

指令类型 整数运算 数据传送 浮点运算 指令执行条数 45000 32000 15000 平均时钟周期数 1 2 2 2 控制传送 8000 求有效CPI、MIPS速率和程序的执行时间。 解:依题意可知 IN=105条,n=4

CPI??(CPIi?i?14nIi)IN??(1?0.45?2?0.32?2?0.15?2?0.08)

i?1?1.55fC40?106MIPS???25.8 66CPI?101.55?10TCPU?IN?CPI?TC?10?1.55?1/40?10?3.875(ms)

5?6

4.设有两台机器A和B,对条件转移采用不同的方法。CPUA采用比较指令和条件转移指令处理方法,若条件转移指令占总执行指令数的20%,比较指令也占20%。CPUB采用比较和条件转移指令合一的方法,占执行指令数的20%。若规定两台机器执行条件转移指令需2T,其它指令需1T。CPUB的条件转移指令比CPUA慢25%,现比较CPUA合和CPUB哪个工作速度更快?

解: CPIA=0.2×2+0.8×1=1.2

CPUA时间=ICA×CPIA×TA=1.2TA×ICA

ICA是CPUA的指令条数,由于CPUB无比较指令,因此ICB=0.8ICA,若ICA=100,则ICB=80 ,而CPUB的条件转移指令仍是20条,所以占比例为20/80=0.25=25% CPIB=0.25×2+0.75×1=1.25

又因为CPUB的TB比CPUA的TA慢25%,所以TB=1.25TA CPUB=ICB×CPIB×TB=0.8ICA×1.25×1.25TA =1.25TA×ICA

可见,CPUA时间

5.若在整个测试程序的执行时间中,求浮点数平方根FPSQR的操作占10%,现有两种改进方案:

(1)采用FPSQR硬件,使其速度加快到10倍;

(2)使用所有浮点数指令FP速度加快到4倍,并设FP指令占整个程序执行时间的40%。 试比较两种方案的优劣。 解:(1)Fe=0.1,Se=10,则

Sn=10.1?1-0.1?+1010.4?1-0.4?+4?1.10

(2)Fe=0.4,Se=4,则

Sn=?1.43

比较结果得:方案(2)更优。

6.计算机系统中有三个部件可以改进,这三个部件的部件加速比为:

部件加速比1=30; 部件加速比2=20; 部件加速比3=10

(1) 如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?

(2) 如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?

解:(1)在多个部件可改进情况下,Amdahl定理的扩展:

Sn?(1?1?Fi)??FiSi

已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:

10?1

1(-0.3?0.3?F3)?(0.3/30?0.3/20?F3/10)得F3=0.36,即部件3的可改进比例为36%。

(2)设系统改进前的执行时间为T,则3个部件改进前的执行时间为:(0.3+0.3+0.2)

T = 0.8T,不可改进部分的执行时间为0.2T。

已知3个部件改进后的加速比分别为S1=30,S2=20,S3=10,因此3个部件改进后的执行时间为:

'Tn?0.3T0.3T0.2T???0.045T 302010 改进后整个系统的执行时间为:Tn = 0.045T+0.2T = 0.245T

那么系统中不可改进部分的执行时间在总执行时间中占的比例是:

0.2T?0.82

0.245T

7.假设浮点数指令FP指令的比例为30%,其中浮点数平方根FPSQR占全部指令的比例为4%,

FP操作的CPI为5,FPSQR操作的CPI为20,其他指令的平均CPI为1.25。现有两种改进方案,第一种是把FPSQR操作的是CPI减至3,第二种是把所有的FP操作的CPI减至3,试比较两种方案对系统性能的提高程度。

解:没有改进之前,每条指令的平均时钟周期CPI为:

IC??CPI???CPIi?i???5?30%???1.25?70%??2.38

IC?i?1?(1)采用第一种方案:FPSQR操作的CPI由CPIFPSQR=20减至CPIFPSQR=3,则整个系统的指令平均时钟周期数为:

CPI1=CPI-(CPIFPSQR-CPIFPSQR)×4%=2.38-(20-3) ×4%=1.7

'n''(2)采用第二种方案:所有FP操作的CPI由CPIFP=5减至CPIFP=3,则整个系统的指令平均时钟周期数为:

CPI2=CPI-(CPIFP-CPIFP)×30%=2.38-(5-3) ×30%=1.78

所以,从降低整个系统的指令平均时钟周期数的程度来看,第一种方案优于第二种方案。

'

8.假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。具体数据如下表所示: 程序中的数量 改进前的执行时间 改进后的执行时间 操作类型 (百万条指令) (周期) (周期) 操作1 10 2 1 操作2 30 20 15 操作3 35 10 3 操作4 15 4 1 (1)改进后,各类操作的加速比分别是多少? (2)各类操作单独改进后,程序获得的加速比分别是多少? (3)4类操作均改进后,整个程序的加速比是多少? 解:根据Amdahl定律Sn?(1、2) 操作类型 操作1 操作2 操作3 操作4

(3)4类操作均改进后,整个程序的加速比:

Sn?(1?11Fe(1?Fe)?Se可得

各类操作的指令条数在程序中所占的比例Fi 11.1% 33.3% 38.9% 16.7% 各类操作的加速比Si 2 1.33 3.33 4 各类操作单独改进后,程序获得的加速比 1.06 1.09 1.37 1.14 ?Fi)??FiSi?2.16

9. 若某机要求有:三地址指令4条,单地址指令192条,零地址指令16条。设指令字长为12位,每个地址码长3位。问能否以扩展操作码为其编码?

10.流水线由4个功能部件组成,每个功能部件的延迟时间为⊿t。当输入10个数据后,间歇5⊿t ,又输入10个数据,如此周期性地工作,求此时流水线的吞吐率,并画出其时空图。[[分析] 所谓输入10个数据后,间歇5⊿t,又输入10个数据的含义应当是以输入时间为基准,即从第10个数据输入时算起,隔5⊿t后又开始输入新的一轮数据。 [解答]按题意可得4个功能部件流水时的时空关系如下图所示

所以,按周期性工作时的流水线平均吞吐率为

11.有一个流水线由4段组成,其中每当流经第3段时,总要在该段循环一次,然后才能流到第4段。如果每段经过一次所需要的时间都是?t,问:

(1) 当在流水线的输入端连续地每?t时间输入任务时,该流水线会发生什么情况? (2) 此流水线的最大吞吐率为多少?如果每2?t输入一个任务,连续处理10个任务

时的实际吞吐率和效率是多少? (3) 当每段时间不变时,如何提高该流水线的吞吐率?仍连续处理10个任务时,其吞吐率提高多少? 解:(1)会发生流水线阻塞情况。 第1个任务 S1 S2 S3 S3 第2个任务 第3个任务 第4个任务

(2)

S1 Tp=10/(14⊿t)=5/(7⊿t)

S4 S3 S4 S3 S4 S2 stall S3 S3 S4 S1 stall S2 stall S3 S1 stall S2 stall S3 段 4 2 6 7 3 4 5 8 9 10 3 1 1 2 2 3 3 4 4 5 5 6 6 7 7 8 8 9 9 10 10 2 5 1 2 3 4 6 7 8 9 10 时间 1 1 2 3 4 5 6 7 8 9 10 23 ? t 112?tTpipeline?23?tTPmax?Tp?nTpipeline?1023?t

?E?TP?5?t?50?54.35I2(3)重复设置部件

Δt 3_1 1 2 4 3_2 Δt Δt Δt Δt

段 4 3_2 3_1 2 1 111 24 34 46 56 68 78 8 9 10 1 1 2 3 245 3 56 5 67 5 78 7 89 7 9 9 1010 9 10 23 34 时间 21014 ?t

TP?n?10?5

Tpipeline14??t7??t5107?t23?t吞吐率提高倍数==1.64

12.有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3

段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或 4(Ai?Bi),画出其时空图,并计暂存于相应的流水寄存器中。现要在该流水线上计算

i?1算其吞吐率、加速比和效率。

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个结果。所以吞吐率为:

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

29?tS??1.6118?t

该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:

4?5?3?3E??0.322 5?1813.有一条动态多功能流水线由5段组成(如图所示),加法用1、3、4、5段,乘法用1、2、5段,第2段的时间为2?t,其余各段的时间均为?t,而且流水线的输出可以直接返回输入端或暂存于相应的流水寄存器中。若在该流水线上计算加速比和效率。

??A?B?,试计算其吞吐率、

iii?14

解:首先,应选择适合流水线工作的算法。对应本题,应先计算A1?B1、A2?B2 、A3?B3和A4?B4;在计算?A1?B1???A2?B2???A3?B3???A4?B4?;然后求总的累加结果。其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。

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

TP?7 18?t如果不用流水线,由于一次求积需4?t,一次求和需4?t,则产生上述7个结果共需

?4?4?3?4??t?28?t。所以加速比为:

S?28?t?1.56 18?t该流水线的效率可由阴影区和5个段总时空区的比值求得:

E?

4?4?3?4?0.31

5?1813.动态多功能流水线由6个功能段组成,如下图:

S1 S2 S3 加法 S4 乘法 S5 S6

其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:

(1)画出时空图;

(2)计算实际的吞吐率、加速比和效率。 解:机器一共要做10次乘法,4次加法。

?xyzii?15ii

14.一条线性静态多功能流水线由6个功能段组成,加法操作使用其中的1、2、3、6功能段,

乘法操作使用其中的1、4、5、6功能段,每个功能段的延迟时间均相等。流水线的输入端与输出端之间有直接数据通路,而且设置有足够的缓冲寄存器。现在用这条流水线计算:

F??(Ai?Bi)

i?16画出流水线时空图,并计算流水线的实际吞吐率、加速比和效率。 解:流水线时空图如下:

整个计算过程需要22Δt,所以吞吐率为:

Tp?加速比为:

11 22?tS?效率为:

11?4?t?2

22?t11?4?t?33.33%

6?22?tE?

15.假设在3000次访存中,第一级cache不命中110次,第二级cache不命中55次。试问:在这种情况下,该cache系统的局部不命中率和全局不命中率各是多少?

解:第一级cache的不命中率(全局和局部)是110/3000,即3.67%; 第二级cache的局部不命中率是55/110,即50%,第二级cache的全局不命中率是55/3000,即1.83%。

16.在三级cache中,第一级cache、第二级cache和第三级cache的局部不命中率分别为4%、30%和50%。它们的全局不命中率各是多少?

解:第一级cache的全局不命中率=它的局部不命中率=4%

第二级cache的全局不命中率

=第一级cache的全局不命中率×第二级cache局部不命中率=4%×30%=1.2% 第三级cache的全局不命中率

=第一级cache的全局不命中率×第二级cache局部不命中率×第三级cache局部不命中率=4%×30%×50%=0.6%。

17.某计算机的指令字长为16位,设有单地址指令和两地址指令两类指令。若每个地址字段均为6位,且两地址指令有A条,问单地址指令最多可以有多少条? 解:根据题意,两地址指令格式为:

其中,4位操作码可表示16个(2)段操作码。两地址指令共有A条,占用了16个短码点中的A个,剩余的(16-A)个码点均可用作扩展标志。 单地址指令格式为:

即每一个扩展标志都可使用一个6位的地址字段(两地址指令中的地址码1)进行扩展,从而得到26个扩展操作码,所以,单地址指令最多可有(16-A)×26。

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

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

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

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

i?164

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

1?200B/ms

TS?TD

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

19.设通道在数据传送期中,选择设备需4.9μS,传送一个字节数据需0.lμS。

(1)其低速设备每隔250μS发出一个字节数据传送请求,问最多可接多少台这种设备? (2)若有A~E共5种高速设备,要求字节传送的间隔时间如下表所示,其时间单位为μS。若一次通信传送的字节数不少于1024个字节,问哪些设备可挂在此通道上?哪些则不能?

fmax?byte?设备 时间间隔(us) A B 0.1 C 0.11 D 0.2 E 0.3 0.13 解:(1)低速设备应接字节多路通道 n11n fmax?byte????fbyte?i?TS?TD4.9?0.1i?1250n =250/5=50台,所以,n≤50台,即最多可接50台这种设备 (2)根据题意,此通道为选择通道

fmax?select?1TTD?Sn?14.90.1?n

其中,n≥1024,应使fselect.i ≤fmax.select

由此可得出通道工作周期为:T≈0.1048(us)

所以,只有A、C、D、E可挂在此通道上,B则不行。

20.设某个字节多路通道的设备选择时间Ts为9.8μs,传送一个字节的数据所需的时间TD为0.2μs。若某种低速外设每隔500μs发出一次传送请求,那么,该通道最多可连接多少台这种外设?

解:字节多路通道的最大流量为:fmax?byte?字节多路通道的实际流量为:fbyte??fi

i?1p1

TS?TD其中,p为通道连接的外设台数,fi为外设i的数据传输速率。因为连接的是同样的外设,所以f1=f2=?=fp=f,故有fbyte=pf。

通道流量匹配的要求有:fmax-byte≥fbyte 即有:

11?pf;可得:p?

TS?TD(TS?TD)f已知Ts = 9.8μs,TD = 0.2μs,1/f = 500μs,可求出通道最多可连接的设备台数为:

500?s1p???50

(TS?TD)f(9.8?0.2)?s

21.某字节交叉多路通道连接6台设备,其数据传送速率如下表所示。 设备号 传送速率(B/ms) 二次请求的间隔时间(μS) 1 50 2 50 3 40 4 25 5 25 6 10 (1)在上表中填出设备相应二次请求传送字节的间隔时间。 (2)当所有设备同时要传送数据时,求其对通道要求的总流量fbyte

(3)让通道以极限流量fmax.byte=fbyte的工作周期工作,通道的工作周期(即TS+TD的时间间隔)是多少?

(4)让通道中所挂设备速率越高的数据传送请求被响应的优先级越高。画出6台设备同时发送请求到下次同时发送请求期间里,通道响应和处理完各设备请求时刻的示意图。哪个设备丢失了信息?提出一种不丢失信息的解决办法。 解:(1)

设备号 传送速率(B/ms) 二次请求的间隔时间(μS) (2) 总容量 fbyte?1 50 20 2 50 20 3 40 25 4 25 40 5 25 40 6 10 100 ?fi?16i?200B/ms

(3) 传送周期 TS+TD=1ms/200B=5μS

(4) 通道响应和处理完各设备请求时刻的示意图如下:

方法1:增加通道的最大流量,保证连接在通道上的所有设备的数据传送请求能够及时得到通道的响应

方法2:动态改变设备的优先级

方法3:增加一定数量的数据缓冲器,特别是对优先级比较低的设备

22.考虑某一两级Cache:第一级Cache为L1,第二级Cache为L2。

(1)假设在1000次访存中,L1的不命中是40次,L2的不命中是20次。求各种局部不命中率和全局不命中率。

(2)假设L2的命中时间是10个时钟周期,L2的不命中开销是100时钟周期,L1的命中时间是1个时钟周期,平均每条指令访存1.5次,不考虑写操作的影响。问:平均访存时间是多少?每条指令的平均停顿时间是多少个时钟周期? 解 (1)

第一级Cache的不命中率(全局和局部)是40/1000,即4%; 第二级Cache的局部不命中率是20/40,即50%; 第二级Cache的全局不命中率是20/1000,即2%。

(2)平均访存时间=命中时间L1+不命中率L1×(命中时间L2+ 不命中率L2×不命中开销L2) =1+4%×(10+50%×100)

=1+4%×60=3.4个时钟周期

由于平均每条指令访存1.5次,且每次访存的平均停顿时间为: 3.4-1.0=2.4

所以,条指令的平均停顿时间=2.4×1.5=3.6个时钟周期。 23.用一个和Alpha AXP类似的机器作为第一个例子。假设Cache不命中开销为50个时钟周期,当不考虑存储器停顿时,所有指令的执行时间都是2.0个时钟周期,访问Cache不命中率为2%,平均每条指令访存1.33次。试分析Cache对性能的影响。 解

CPU时间有cache=IC ×(CPIexecution+每条指令的平均访存次数

×不命中率×不命中开销)× 时钟周期时间

=IC ×(2.0+1.33×2 %×50)× 时钟周期时间 =IC × 3.33× 时钟周期时间 考虑Cache的不命中后,性能为:

CPU时间有cache=IC×(2.0+1.33×2 %×50)×时钟周期时间 =IC×3.33×时钟周期时间 实际CPI :3.33

3.33/2.0 = 1.67(倍) CPU时间也增加为原来的1.67倍。 但若不采用Cache,则:

CPI=2.0+50×1.33=68.5