张晨曦计算机系统结构课后习题Word文档格式.docx
《张晨曦计算机系统结构课后习题Word文档格式.docx》由会员分享,可在线阅读,更多相关《张晨曦计算机系统结构课后习题Word文档格式.docx(48页珍藏版)》请在冰豆网上搜索。
向后(前)兼容:
按某个时期投入市场的某种型号计算机编制的程序,不加修改地就能运行于在它之后(前)投入市场的计算机。
兼容机:
由不同公司厂家生产的具有相同系统结构的计算机。
模拟:
用软件的方法在一台现有的计算机(称为宿主机)上实现另一台计算机(称为虚拟机)的指令系统。
仿真:
用一台现有计算机(称为宿主机)上的微程序去解释实现另一台计算机(称为目标机)的指令系统。
并行性:
计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
只要在时间上相互重叠,就存在并行性。
它包括同时性与并发性两种含义。
时间重叠:
在并行性概念中引入时间因素,让多个处理过程在时间上相互错开,轮流重叠地使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:
在并行性概念中引入空间因素,以数量取胜。
通过重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:
这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
耦合度:
反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。
紧密耦合系统:
又称直接耦合系统。
在这种系统中,计算机之间的物理连接的频带较高,一般是通过总线或高速开关互连,可以共享主存。
松散耦合系统:
又称间接耦合系统,一般是通过通道或通信线路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。
计算机之间的相互作用是在文件或数据集一级上进行。
异构型多处理机系统:
由多个不同类型、至少担负不同功能的处理机组成,它们按照作业要求的顺序,利用时间重叠原理,依次对它们的多个任务进行加工,各自完成规定的功能动作。
同构型多处理机系统:
由多个同类型或至少担负同等功能的处理机组成,它们同时处理同一作业中能并行执行的多个任务。
1.2试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答:
如在设计主存系统时,确定主存容量、编址方式、寻址范围等属于计算机系统结构。
确定主存周期、逻辑上是否采用并行主存、逻辑设计等属于计算机组成。
选择存储芯片类型、微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。
计算机实现是计算机组成的物理实现。
一种体系结构可以有多种组成。
一种组成可以有多种实现。
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.5分别从执行程序的角度和处理数据的角度来看,计算机系统中并行性等级从低到高可分为哪几级?
从处理数据的角度来看,并行性等级从低到高可分为:
(1)字串位串:
每次只对一个字的一位进行处理。
这是最基本的串行处理方式,不存在并行性;
(2)字串位并:
同时对一个字的全部位进行处理,不同字之间是串行的。
已开始出现并行性;
(3)字并位串:
同时对许多字的同一位(称为位片)进行处理。
这种方式具有较高的并行性;
(4)全并行:
同时对许多字的全部位或部分位进行处理。
这是最高一级的并行。
从执行程序的角度来看,并行性等级从低到高可分为:
(1)指令内部并行:
单条指令中各微操作之间的并行;
(2)指令级并行:
并行执行两条或两条以上的指令;
(3)线程级并行:
并行执行两个或两个以上的线程,通常是以一个进程内派生的多个线程为调度单位;
(4)任务级或过程级并行:
并行执行两个或两个以上的过程或任务(程序段),以子程序或进程为调度单元;
(5)作业或程序级并行:
并行执行两个或两个以上的作业或程序。
1.6某台主频为400MHz的计算机执行标准测试程序,程序中指令类型、执行数量和平均时钟周期数如下:
指令类型
指令执行数量
平均时钟周期数
整数
45000
1
数据传送
75000
2
浮点
8000
4
分支
1500
求该计算机的有效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×
2)/400=575s
1.7将计算机系统中某一功能的处理速度加快10倍,但该功能的处理时间仅为整个系统运行时间的40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
解由题可知:
可改进比例=40%=0.4部件加速比=10
根据Amdahl定律可知:
采用此增强功能方法后,能使整个系统的性能提高到原来的1.5625倍。
1.8计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比1=30;
部件加速比2=20;
部件加速比3=10
(1)如果部件1和部件2的可改进比例均为30%,那么当部件3的可改进比例为多少时,系统加速比才可以达到10?
(2)如果三个部件的可改进比例分别为30%、30%和20%,三个部件同时改进,那么系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
(1)在多个部件可改进情况下,Amdahl定理的扩展:
已知S1=30,S2=20,S3=10,Sn=10,F1=0.3,F2=0.3,得:
得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.045T+0.2T=0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
1.9假设某应用程序中有4类操作,通过改进,各操作获得不同的性能提高。
具体数据如下表所示:
操作类型
程序中的数量
(百万条指令)
改进前的执行时间
(周期)
改进后的执行时间
操作1
10
操作2
30
20
15
操作3
35
3
操作4
(1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多少?
(3)4类操作均改进后,整个程序的加速比是多少?
根据Amdahl定律
可得
各类操作的指令条数在程序中所占的比例Fi
各类操作的加速比Si
各类操作单独改进后,程序获得的加速比
11.1%
1.06
33.3%
1.33
1.09
38.9%
3.33
1.37
16.7%
1.14
4类操作均改进后,整个程序的加速比:
第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.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发生了输出相关。
换名技术:
名相关的两条指令之间并没有数据的传送,只是使用了相同的名。
可以把其中一条指令所使用的名换成别的,以此来消除名相关。
结构冲突:
因硬件资源满足不了指令重叠执行的要求而发生的冲突。
数据冲突:
当指令在流水线中重叠执行时,因需要用到前面指令的执行结果而发生的冲突。
控制冲突:
流水线遇到分支指令或其它会改变PC值的指令所引起的冲突。
定向:
用来解决写后读冲突的。
在发生写后读相关的情况下,在计算结果尚未出来之前,后面等待使用该结果的指令并不见得是马上就要用该结果。
如果能够将该计算结果从其产生的地方直接送到其它指令需要它的地方,那么就可以避免停顿。
写后读冲突:
考虑两条指令i和j,且i在j之前进入流水线,指令j用到指令i的计算结果,而且在i将结果写入寄存器之前就去读该寄存器,因而得到的是旧值。
读后写冲突:
考虑两条指令i和j,且i在j之前进入流水线,指令j的目的寄存器和指令i的源操作数寄存器相同,而且j在i读取该寄存器之前就先对它进行了写操作,导致i读到的值是错误的。
写后写冲突:
考虑两条指令i和j,且i在j之前进入流水线,,指令j和指令i的结果单元(寄存器或存储器单元)相同,而且j在i写入之前就先对该单元进行了写入操作,从而导致写入顺序错误。
这时在结果单元中留下的是i写入的值,而不是j写入的。
链接技术:
具有先写后读相关的两条指令,在不出现功能部件冲突和Vi冲突的情况下,可以把功能部件链接起来进行流水处理,以达到加快执行的目的。
分段开采:
当向量的长度大于向量寄存器的长度时,必须把长向量分成长度固定的段,然后循环分段处理,每一次循环只处理一个向量段。
半性能向量长度:
向量处理机的性能为其最大性能
的一半时所需的向量长度。
向量长度临界值:
向量流水方式的处理速度优于标量串行方式的处理速度时所需的向量长度的最小值。
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)流水技术适