计算机系统结构课后习题问题详解老师划过重点得Word下载.docx
- 文档编号:20983607
- 上传时间:2023-01-26
- 格式:DOCX
- 页数:16
- 大小:258.53KB
计算机系统结构课后习题问题详解老师划过重点得Word下载.docx
《计算机系统结构课后习题问题详解老师划过重点得Word下载.docx》由会员分享,可在线阅读,更多相关《计算机系统结构课后习题问题详解老师划过重点得Word下载.docx(16页珍藏版)》请在冰豆网上搜索。
向后(前)兼容:
按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后(前)投入市场的计算机。
兼容机:
由不同公司厂家生产的具有相同系统结构的计算机。
模拟:
用软件的方法在一台现有的计算机(称为宿主机)上实现另一台计算机(称为虚拟机)的指令系统。
仿真:
用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。
并行性:
计算机系统在同一时刻或者同一时间间隔进行多种运算或操作。
只要在时间上相互重叠,就存在并行性。
它包括同时性与并发性两种含义。
时间重叠:
在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:
在并行性概念中引入空间因素,以数量取胜。
通过重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:
这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
耦合度:
反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。
紧密耦合系统:
又称直接耦合系统。
在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。
松散耦合系统:
又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。
计算机之间的相互作用是在文件或数据集一级上进行。
异构型多处理机系统:
由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。
同构型多处理机系统:
由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
1.3计算机系统结构的Flynn分类法是按什么来分类的?
共分为哪几类?
答:
Flynn分类法是按照指令流和数据流的多倍性进行分类。
把计算机系统的结构分为:
(1)单指令流单数据流SISD
(2)单指令流多数据流SIMD
(3)多指令流单数据流MISD
(4)多指令流多数据流MIMD
1.4计算机系统设计中经常使用的4个定量原理是什么?
并说出它们的含义。
(1)以经常性事件为重点。
在计算机系统的设计中,对经常发生的情况,赋予它优先的处理权和资源使用权,以得到更多的总体上的改进。
(2)Amdahl定律。
加快某部件执行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
(3)CPU性能公式。
执行一个程序所需的CPU时间=IC×
CPI×
时钟周期时间。
(4)程序的局部性原理。
程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。
1.7将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
解由题可知:
可改进比例=40%=0.4部件加速比=10
根据Amdahl定律可知:
采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。
第2章指令集结构的分类
2.1解释下列术语
堆栈型机器:
CPU中存储操作数的单元是堆栈的机器。
累加器型机器:
CPU中存储操作数的单元是累加器的机器。
通用寄存器型机器:
CPU中存储操作数的单元是通用寄存器的机器。
CISC:
复杂指令集计算机
RISC:
精简指令集计算机
寻址方式:
指令系统中如何形成所要访问的数据的地址。
一般来说,寻址方式可以指明指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。
数据表示:
硬件结构能够识别、指令系统可以直接调用的那些数据结构。
2.2区别不同指令集结构的主要因素是什么?
根据这个主要因素可将指令集结构分为哪3类?
区别不同指令集结构的主要因素是CPU中用来存储操作数的存储单元。
据此可将指令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.3常见的3种通用寄存器型指令集结构的优缺点有哪些?
指令系统结构类型
优点
缺点
寄存器-寄存器型
(0,3)
指令字长固定,指令结构简洁,是一种简单的代码生成模型,各种指令的执行时钟周期数相近。
与指令中含存储器操作数的指令系统结构相比,指令条数多,目标代码不够紧凑,因而程序占用的空间比较大。
寄存器-存储器型
(1,2)
可以在ALU指令中直接对存储器操作数进行引用,而不必先用load指令进行加载。
容易对指令进行编码,目标代码比较紧凑。
由于有一个操作数的容将被破坏,所以指令中的两个操作数不对称。
在一条指令中同时对寄存器操作数和存储器操作数进行编码,有可能限制指令所能够表示的寄存器个数。
指令的执行时钟周期数因操作数的来源(寄存器或存储器)不同而差别比较大。
存储器-存储器型
(2,2)或(3,3)
目标代码最紧凑,不需要设置寄存器来保存变量。
指令字长变化很大,特别是3操作数指令。
而且每条指令完成的工作也差别很大。
对存储器的频繁访问会使存储器成为瓶颈。
这种类型的指令系统现在已不用了。
2.4指令集应满足哪几个基本要求?
对指令集的基本要:
完整性、规整性、高效率和兼容性。
完整性是指在一个有限可用的存储空间,对于任何可解的问题,编制计算程序时,指令集所提供的指令足够使用。
规整性主要包括对称性和均匀性。
对称性是指所有与指令集有关的存储单元的使用、操作码的设置等都是对称的。
均匀性是指对于各种不同的操作数类型、字长、操作种类和数据存储单元,指令的设置都要同等对待。
高效率是指指令的执行速度快、使用频度高。
2.5指令集结构设计所涉及的容有哪些?
(1)指令集功能设计:
主要有RISC和CISC两种技术发展方向;
(2)寻址方式的设计:
设置寻址方式可以通过对基准程序进行测试统计,察看各种寻址方式的使用频率,根据适用频率设置必要的寻址方式。
(3)操作数表示和操作数类型:
主要的操作数类型和操作数表示的选择有:
浮点数据类型、整型数据类型、字符型、十进制数据类型等等。
(4)寻址方式的表示:
可以将寻址方式编码于操作码中,也可以将寻址方式作为一个单独的域来表示。
(5)指令集格式的设计:
有变长编码格式、固定长度编码格式和混合型编码格式3种。
2.6简述CISC指令集结构功能设计的主要目标。
从当前的计算机技术观点来看,CISC指令集结构的计算机有什么缺点?
主要目标是增强指令功能,把越来越多的功能交由硬件来实现,并且指令的数量也是越来越多。
缺点:
(1)CISC结构的指令集中,各种指令的使用频率相差悬殊。
(2)CISC结构指令的复杂性带来了计算机体系结构的复杂性,这不仅增加了研制时间和成本,而且还容易造成设计错误。
(3)CISC结构指令集的复杂性给VLSI设计增加了很大负担,不利于单片集成。
(4)CISC结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。
(5)在CISC结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构技术(如流水技术)来提高系统的性能。
2.7简述RISC指令集结构的设计原则。
答
(1)选取使用频率最高的指令,并补充一些最有用的指令;
(2)每条指令的功能应尽可能简单,并在一个机器周期完成;
(3)所有指令长度均相同;
(4)只有Load和Store操作指令才访问存储器,其它指令操作均在寄存器之间进行;
(5)以简单有效的方式支持高级语言。
2.8指令中表示操作数类型的方法有哪几种?
操作数类型有两种表示方法:
(1)操作数的类型由操作码的编码指定,这是最常见的一种方法;
(2)数据可以附上由硬件解释的标记,由这些标记指定操作数的类型,从而选择适当的运算。
2.9表示寻址方式的主要方法有哪些?
简述这些方法的优缺点。
表示寻址方式有两种常用的方法:
(1)将寻址方式编于操作码中,由操作码在描述指令的同时也描述了相应的寻址方式。
这种方式译码快,但操作码和寻址方式的结合不仅增加了指令的条数,导致了指令的多样性,而且增加了CPU对指令译码的难度。
(2)为每个操作数设置一个地址描述符,由该地址描述符表示相应操作数的寻址方式。
这种方式译码较慢,但操作码和寻址独立,易于指令扩展。
2.10通常有哪几种指令格式,请简述其适用围。
(1)变长编码格式。
如果系统结构设计者感兴趣的是程序的目标代码大小,而不是性能,就可以采用变长编码格式。
(2)固定长度编码格式。
如果感兴趣的是性能,而不是程序的目标代码大小,则可以选择固定长度编码格式。
(3)混合型编码格式。
需要兼顾降低目标代码长度和降低译码复杂度时,可以采用混合型编码格式。
2.11根据CPU性能公式简述RISC指令集结构计算机和CISC指令集结构计算机的性能特点。
CPU性能公式:
CPU时间=IC×
CPI×
T
其中,IC为目标程序被执行的指令条数,CPI为指令平均执行周期数,T是时钟周期的时间。
相同功能的CISC目标程序的指令条数ICCISC少于RISC的ICRISC,但是CISC的CPICISC和TCISC都大于RISC的CPIRISC和TRISC,因此,CISC目标程序的执行时间比RISC的更长。
第3章流水线技术
3.2指令的执行可采用顺序执行、重叠执行和流水线三种方式,它们的主要区别是什么?
各有何优缺点。
(1)指令的顺序执行是指指令与指令之间顺序串行。
即上一条指令全部执行完后,才能开始执行下一条指令。
优点:
控制简单,节省设备。
执行指令的速度慢,功能部件的利用率低。
(2)指令的重叠指令是在相邻的指令之间,让第k条指令与取第k+l条指令同时进行。
重叠执行不能加快单条指令的执行速度,但在硬件增加不多的情况下,可以加快相邻两条指令以及整段程序的执行速度。
与顺序方式相比,功能部件的利用率提高了,控制变复杂了。
(3)指令的流水执行是把一个指令的执行过程分解为若干个子过程,每个子过程由专门的功能部件来实现。
把多个处理过程在时间上错开,依次通过各功能段,每个子过程与其它的子过程并行进行。
依靠提高吞吐率来提高系统性能。
流水线中各段的时间应尽可能相等
3.3简述先行控制的基本思想。
先行控制技术是把缓冲技术和预处理技术相结合。
缓冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,用以平滑它们的工作。
预处理技术是指预取指令、对指令进行加工以及预取操作数等。
采用先行控制方式的处理机部设置多个缓冲站,用于平滑主存、指令分析部件、运算器三者之间的工作。
这样不仅使它们都能独立地工作,充分忙碌而不用相互等待,而且使指令分析部件和运算器分别能快速地取得指令和操作数,大幅度地提高指令的执行速度和部件的效率。
这些缓冲站都按先进先出的方式工作,而且都是由一组若干个能快速访问的存储单元和相关的控制逻辑组成。
采用先行控制技术可以实现多条指令的重叠解释执行。
3.4设一条指令的执行过程分成取指令、分析指令和执行指令三个阶段,每个阶段所需的时间分别为△t、△t和2△t。
分别求出下列各种情况下,连续执行N条指令所需的时间。
(1)顺序执行方式;
(2)只有“取指令”与“执行指令”重叠;
(3)“取指令”、“分析指令”与“执行指令”重叠。
解:
(1)每条指令的执行时间为:
△t+△t+2△t=4△t
连续执行N条指令所需的时间为:
4N△t
(2)连续执行N条指令所需的时间为:
4△t+3(N-1)△t=(3N+1)△t
(3)连续执行N条指令所需的时间为:
4△t+2(N-1)△t=(2N+2)△t
3.5简述流水线技术的特点。
流水技术有以下特点:
(1)流水线把一个处理过程分解为若干个子过程,每个子过程由一个专门的功能部件来实现。
因此,流水线实际上是把一个大的处理功能部件分解为多个独立的功能部件,并依靠它们的并行工作来提高吞吐率。
(2)流水线中各段的时间应尽可能相等,否则将引起流水线堵塞和断流。
(3)流水线每一个功能部件的前面都要有一个缓冲寄存器,称为流水寄存器。
(4)流水技术适合于大量重复的时序过程,只有在输入端不断地提供任务,才能充分发挥流水线的效率。
(5)流水线需要有通过时间和排空时间。
在这两个时间段中,流水线都不是满负荷工作。
3.6解决流水线瓶颈问题有哪两种常用方法?
细分瓶颈段与重复设置瓶颈段
3.7减少流水线分支延迟的静态方法有哪些?
(1)预测分支失败:
沿失败的分支继续处理指令,就好象什么都没发生似的。
当确定分支是失败时,说明预测正确,流水线正常流动;
当确定分支是成功时,流水线就把在分支指令之后取出的指令转化为空操作,并按分支目标地址重新取指令执行。
(2)预测分支成功:
当流水线ID段检测到分支指令后,一旦计算出了分支目标地址,就开始从该目标地址取指令执行。
(3)延迟分支:
主要思想是从逻辑上“延长”分支指令的执行时间。
把延迟分支看成是由原来的分支指令和若干个延迟槽构成。
不管分支是否成功,都要按顺序执行延迟槽中的指令。
3种方法的共同特点:
它们对分支的处理方法在程序的执行过程中始终是不变的。
它们要么总是预测分支成功,要么总是预测分支失败。
3.8简述延迟分支方法中的三种调度策略的优缺点。
调度策略
对调度的要求
对流水线性能改善的影响
从前调度
分支必须不依赖于被调度的指令
总是可以有效提高流水线性能
从目标处调度
如果分支转移失败,必须保证被调度的指令对程序的执行没有影响,可能需要复制被调度指令
分支转移成功时,可以提高流水线性能。
但由于复制指令,可能加大程序空间
从失败处调度
如果分支转移成功,必须保证被调度的指令对程序的执行没有影响
分支转移失败时,可以提高流水线性能
3.9列举出下面循环中的所有相关,包括输出相关、反相关、真相关。
for(i=2;
i<
100;
i=i+1)
a[i]=b[i]+a[i];
/*s1*/
c[i+1]=a[i]+d[i];
/*s2*/
a[i-1]=2*b[i];
/*s3*/
b[i+1]=2*b[i];
/*s4*/
展开循环两次:
a[i]=b[i]+a[i];
/*s1*/
c[i+1]=a[i]+d[i];
/*s2*/
a[i-1]=2*b[i];
/*s3*/
b[i+1]=2*b[i];
/*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];
/*s3‘*/
b[i+2]=2*b[i+1];
/*s4‘*/
输出相关:
无
反相关:
真相关:
S1&
S2
由于循环引入的相关:
S4&
S4’(真相关)、S1’&
S4(真相关)、S3’&
S4(真相关)、S1&
S3’(输出相关、反相关)、S2&
S3’(反相关)。
3.12有一指令流水线如下所示
(1)求连续输入10条指令,该流水线的实际吞吐率和效率;
(2)该流水线的“瓶颈”在哪一段?
请采取两种不同的措施消除此“瓶颈”。
对于你所给出的两种新的流水线,连续输入10条指令时,其实际吞吐率和效率各是多少?
(1)
(2)瓶颈在3、4段。
⏹变成八级流水线(细分)
⏹重复设置部件
3.14有一条静态多功能流水线由5段组成,加法用1、3、4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段的时间均为△t,而且流水线的输出可以直接返回输入端或
暂存于相应的流水寄存器中。
现要在该流水线上计算,画出其时空图,并计算其吞吐率、加速比和效率。
首先,应选择适合于流水线工作的算法。
对于本题,应先计算A1+B1、A2+B2、A3+B3和A4+B4;
再计算(A1+B1)×
(A2+B2)和(A3+B3)×
(A4+B4);
然后求总的结果。
其次,画出完成该计算的时空图,如图所示,图中阴影部分表示该段在工作。
由图可见,它在18个△t时间中,给出了7个结果。
所以吞吐率为:
如果不用流水线,由于一次求积需3△t,一次求和需5△t,则产生上述7个结果共需(4×
5+3×
3)△t=29△t。
所以加速比为:
该流水线的效率可由阴影区的面积和5个段总时空区的面积的比值求得:
3.15动态多功能流水线由6个功能段组成,如下图:
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、S6组成加法流水线,各个功能段时间均为50ns,假设该流水线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄存器,若以最快的方式用该流水计算:
(1)画出时空图;
(2)计算实际的吞吐率、加速比和效率。
机器一共要做10次乘法,4次加法。
第5章存储层次
5.2简述“Cache—主存”层次与“主存—辅存”层次的区别。
存储层次
比较项目
“Cache—主存”层次
“主存—辅存”层次
目的
为了弥补主存速度的不足
为了弥补主存容量的不足
存储管理的实现
全部由专用硬件实现
主要由软件实现
访问速度的比值
(第一级比第二级)
几比一
几万比一
典型的块(页)大小
几十个字节
几百到几千个字节
CPU对第二级的访问方式
可直接访问
均通过第一级
不命中时CPU是否切换
不切换
切换到其它进程
5.3地址映象方法有哪几种?
它们各有什么优缺点?
(1)全相联映象。
实现查找的机制复杂,代价高,速度慢。
Cache空间的利用率较高,块冲突概率较低,因而Cache的失效率也低。
(2)直接映象。
实现查找的机制简单,速度快。
Cache空间的利用率较低,块冲突概率较高,因而Cache的失效率也高。
(3)组相联映象。
组相联是直接映象和全相联的一种折衷。
5.4降低Cache失效率有哪几种方法?
简述其基本思想。
常用的降低Cache失效率的方法有下面几种:
(1)增加Cache块大小。
增加块大小利用了程序的空间局部性。
(2)增加Cache的容量。
(3)提高相联度,降低冲突失效。
(4)伪相联Cache,降低冲突失效。
当对伪相联Cache进行访问时,首先是按与直接映象相同的方式进行访问。
如果命中,则从相应的块中取出所访问的数据,送给CPU,访问结束。
如果不命中,就将索引字段的最高位取反,然后按照新索引去寻找“伪相联组”中的对应块。
如果这一块的标识匹配,则称发生了“伪命中”。
否则,就访问下一级存储器。
(5)硬件预取技术。
在处理器提出访问请求前预取指令和数据。
(6)由编译器控制的预取,硬件预取的替代方法,在编译时加入预取的指令,在数据被用到之前发出预取请求。
(7)编译器优化,通过对软件的优化来降低失效率。
(8)“牺牲”Cache。
在Cache和其下一级存储器的数据通路之间增设一个全相联的小Cache,存放因冲突而被替换出去的那些块。
每当发生不命中时,在访问下一级存储器之前,先检查“牺牲”Cache中是否含有所需的块。
如果有,就将该块与Cache中某个块做交换,把所需的块从“牺牲”Cache调入Cache。
5.5简述减小Cache失效开销的几种方法。
让读失效优先于写、写缓冲合并、请求字处理技术、非阻塞Cache或非锁定Cache技术、采用二级Cache。
5.6通过编译器对程序优化来改进Cache性能的方法有哪几种?
(1)数组合并。
通过提高空间局部性来减少失效次数。
有些程序同时用相同的索引来访问若干个数组的同一维,这些访问可能会相互干扰,导致冲突失效,可以将这些相互独立的数组合并成一个复合数组,使得一个Cache块中能包含全部所需元素。
(2)外循环交换。
循环嵌套时,程序没有按数据在存储器中的顺序访问。
只要简单地交换外循环,就能使程序按数据在存储器中的存储顺序进行访问。
(3)循环融合。
有些程序含有几部分独立的程序段,它们用相同的循环访问同样的数组,对相同的数据作不同的运算。
通过将它们融合成一个单一循环,能使读入Cache的数据被替换出去之前得到反复的使用。
(4)分块。
通过改进时间局部性来减少失效。
分块不是对数组的整行或整列进行访问,而是对子矩阵或块进行操作。
5.7在“Cache—主存”层次中,主存的更新算法有哪两种?
它们各有什么特点?
(1)写直达法。
易于实现,而且下一级存储器中的数据总是最新的。
(2)写回法。
速度快,“写”操作能以Cache存储器的速度进行。
而且对于同一单元的多个写最后只需一次写回下一级存储器,有些“写”只到达Cache,不到达主存,因而所使用的存储器频带较低。
5.8组相联Cache的失效率比相同容量直接映象Cache的失效率低。
由此能否得出结论:
采用组相联一定能带来性能上的提高?
为什么?
不一定。
因为组相联命中率的提高是以增加命中时间为代价的,组相联需要增加多路选择开关。
5.9写出三级Cache的平均访问时间的公式。
平均访存时间=命中时间+失效率×
失效开销
只有第I层失效时才会访问第I+1。
设三级Cache的命中
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机系统 结构 课后 习题 问题 详解 老师 划过 重点