admin 管理员组文章数量: 1086019
2024年12月31日发(作者:css选择器 菜鸟教程)
计算机系统结构__《张晨曦、王
志英》课后习题参考答案
第1章 计算机系统结构的基本概念
1.1 解释下列术语
层次机构:按照计算机语言从低级到高级的次序,把计算机系
统按功能划分成多级层次结构,每一层以一种不同的语言为特
征。这些层次依次为:微程序机器级,传统机器语言机器级,
汇编语言机器级,高级语言机器级,应用语言机器级等。
虚拟机:用软件实现的机器。
翻译:先用转换程序把高一级机器上的程序转换为低一级机器
上等效的程序,然后再在这低一级机器上运行,实现程序的功
能。
解释:对于高一级机器上的程序中的每一条语句或指令,都是
转去执行低一级机器上的一段等效程序。执行完后,再去高一
级机器取下一条语句或指令,再进行解释执行,如此反复,直
到解释执行完整个程序。
计算机系统结构:传统机器程序员所看到的计算机属性,即概
念性结构与功能特性。
在计算机技术中,把这种本来存在的事物或属性,但从某种角
度看又好像不存在的概念称为透明性。
计算机组成:计算机系统结构的逻辑实现,包含物理机器级中
的数据流和控制流的组成以及逻辑设计等。
计算机实现:计算机组成的物理实现,包括处理机、主存等部
件的物理结构,器件的集成度和速度,模块、插件、底板的划
分与连接,信号传输,电源、冷却及整机装配技术等。
系统加速比:对系统中某部分进行改进时,改进后系统性能提
高的倍数。
Amdahl定律:当对一个系统中的某个部件进行改进后,所能
获得的整个系统性能的提高,受限于该部件的执行时间占总执
行时间的百分比。
程序的局部性原理:程序执行时所访问的存储器地址不是随机
分布的,而是相对地簇聚。包括时间局部性和空间局部性。
CPI:每条指令执行的平均时钟周期数。
测试程序套件:由各种不同的真实应用程序构成的一组测试程
序,用来测试计算机在各个方面的处理性能。
3
存储程序计算机:冯·诺依曼结构计算机。其基本点是指令驱
动。程序预先存放在计算机存储器中,机器一旦启动,就能按
照程序指定的逻辑顺序执行这些程序,自动完成由程序所描述
的处理工作。
系列机:由同一厂家生产的具有相同系统结构、但具有不同组
成和实现的一系列不同型号的计算机。
软件兼容:一个软件可以不经修改或者只需少量修改就可以由
一台计算机移植到另一台计算机上运行。差别只是执行时间的
不同。
向上(下)兼容:按某档计算机编制的程序,不加修改就能运
行于比它高(低)档的计算机。
向后(前)兼容:按某个时期投入市场的某种型号计算机编制
的程序,不加修改地就能运行于在它之后(前)投入市场的计
算机。
兼容机:由不同公司厂家生产的具有相同系统结构的计算机。
模拟:用软件的方法在一台现有的计算机(称为宿主机)上实
现另一台计算机(称为虚拟机)的指令系统。
4
仿真:用一台现有计算机(称为宿主机)上的微程序去解释实
现另一台计算机(称为目标机)的指令系统。
并行性:计算机系统在同一时刻或者同一时间间隔内进行多种
运算或操作。只要在时间上相互重叠,就存在并行性。它包括
同时性与并发性两种含义。
时间重叠:在并行性概念中引入时间因素,让多个处理过程在
时间上相互错开,轮流重叠地使用同一套硬件设备的各个部
分,以加快硬件周转而赢得速度。
资源重复:在并行性概念中引入空间因素,以数量取胜。通过
重复设置硬件资源,大幅度地提高计算机系统的性能。
资源共享:这是一种软件方法,它使多个任务按一定时间顺序
轮流使用同一套硬件设备。
耦合度:反映多机系统中各计算机之间物理连接的紧密程度和
交互作用能力的强弱。
紧密耦合系统:又称直接耦合系统。在这种系统中,计算机之
间的物理连接的频带较高,一般是通过总线或高速开关互连,
5
可以共享主存。
松散耦合系统:又称间接耦合系统,一般是通过通道或通信线
路实现计算机之间的互连,可以共享外存设备(磁盘、磁带等)。
计算机之间的相互作用是在文件或数据集一级上进行。
异构型多处理机系统:由多个不同类型、至少担负不同功能的
处理机组成,它们按照作业要求的顺序,利用时间重叠原理,
依次对它们的多个任务进行加工,各自完成规定的功能动作。
同构型多处理机系统:由多个同类型或至少担负同等功能的处
理机组成,它们同时处理同一作业中能并行执行的多个任务。
1.2 试用实例说明计算机系统结构、计算机组成与计算机
实现之间的相互关系。
答:如在设计主存系统时,确定主存容量、编址方式、寻
址范围等属于计算机系统结构。确定主存周期、逻辑上是否采
用并行主存、逻辑设计等属于计算机组成。选择存储芯片类型、
微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。计算机实现是
计算机组成的物理实现。一种体系结构可以有多种组成。一种
组成可以有多种实现。
6
2) / 129500=1.776
(2)MIPS速率=f/ CPI =400/1.776 =225.225MIPS
(3)程序执行时间= (45000×1+75000×2+8000×4
+1500×2)/400=575s
1.7 将计算机系统中某一功能的处理速度加快10倍,但该
功能的处理时间仅为整个系统运行时间的40%,则采用此增强
功能方法后,能使整个系统的性能提高多少?
解 由题可知: 可改进比例 = 40% = 0.4 部件加速
比 = 10
根据Amdahl定律可知:
1
系统加速比1.5625
0.4
10.4
10
采用此增强功能方法后,能使整个系统的性能提高到原来的
1.5625倍。
1.8 计算机系统中有三个部件可以改进,这三个部件的部
件加速比为:
部件加速比
1
=30; 部件加速比
2
=20; 部件加
速比
3
=10
(1) 如果部件1和部件2的可改进比例均为30%,那
么当部件3的可改进比例为多少时,系统加速比才可以达到
10?
(2) 如果三个部件的可改进比例分别为30%、30%和
20%,三个部件同时改进,那么系统中不可加速部分的执行
时间在总执行时间中占的比例是多少?
解:(1)在多个部件可改进情况下,Amdahl定理的扩展:
1
S
n
F
i
(1
F
i
)
S
i
已知S
1
=30,S
2
=20,S
3
=10,S
n
=10,F
1
=0.3,F
2
=0.3,
得:
10
1
1(-0.30.3F
3
)(0.3/300.3/20F
3
/10)
得F
3
=0.36,即部件3的可改进比例为36%。
(2)设系统改进前的执行时间为T,则3个部件改进前
的执行时间为:(0.3+0.3+0.2)T = 0.8T,不可改进部分的执行
时间为0.2T。
已知3个部件改进后的加速比分别为S
1
=30,S
2
=20,S
3
=10,因此3个部件改进后的执行时间为:
0.3T0.3T0.2T
'
T
n
0.045T
302010
改进后整个系统的执行时间为:Tn = 0.045T+0.2T =
0.245T
那么系统中不可改进部分的执行时间在总执行时间中占
的比例是:
0.2T
0.82
0.245T
1.9 假设某应用程序中有4类操作,通过改进,各操作获
得不同的性能提高。具体数据如下表所示:
10
操作类型
操作1
操作2
操作3
操作4
程序中的数量
(百万条指令)
10
30
35
15
改进前的执行时间
(周期)
2
20
10
4
改进后的执行时间
(周期)
1
15
3
1
(1)改进后,各类操作的加速比分别是多少?
(2)各类操作单独改进后,程序获得的加速比分别是多
少?
(3)4类操作均改进后,整个程序的加速比是多少?
解:根据Amdahl定律
S
1
Fe
可得
n
(1Fe)
Se
操作类型
操作1
操作2
操作3
操作4
各类操作的指令条数在
程序中所占的比例F
i
11.1%
33.3%
38.9%
16.7%
各类操作的加速比S
i
2
1.33
3.33
4
各类操作单独改进后,
程序获得的加速比
1.06
1.09
1.37
1.14
4类操作均改进后,整个程序的加速比:
1
S
n
2.16
F
i
(1
F
i
)
S
i
第2章 指令集结构的分类
2.1 解释下列术语
堆栈型机器:CPU 中存储操作数的单元是堆栈的机器。
累加器型机器:CPU 中存储操作数的单元是累加器的机
器。
通用寄存器型机器:CPU 中存储操作数的单元是通用寄存
器的机器。
11
CISC:复杂指令集计算机
RISC:精简指令集计算机
寻址方式:指令系统中如何形成所要访问的数据的地址。
一般来说,寻址方式可以指明指令中的操作数是一个常数、一
个寄存器操作数或者是一个存储器操作数。
数据表示:硬件结构能够识别、指令系统可以直接调用的
那些数据结构。
2.2 区别不同指令集结构的主要因素是什么?根据这个
主要因素可将指令集结构分为哪3类?
答:区别不同指令集结构的主要因素是CPU中用来存储操
作数的存储单元。据此可将指令系统结构分为堆栈结构、累加
器结构和通用寄存器结构。
2.3 常见的3种通用寄存器型指令集结构的优缺点有哪
些?
答:
指令系统结构类型 优 点
指令字长固定,指令结构简
寄存器-寄存器型
(0,3)
洁,是一种简单的代码生成
模型,各种指令的执行时钟
周期数相近。
可以在ALU指令中直接对
寄存器-存储器型
(1,2)
存储器操作数进行引用,而
不必先用load指令进行加
载。容易对指令进行编码,
目标代码比较紧凑。
缺 点
与指令中含存储器操作数的指令系统结构相比,
指令条数多,目标代码不够紧凑,因而程序占用
的空间比较大。
由于有一个操作数的内容将被破坏,所以指令中
的两个操作数不对称。在一条指令中同时对寄存
器操作数和存储器操作数进行编码,有可能限制
指令所能够表示的寄存器个数。指令的执行时钟
周期数因操作数的来源(寄存器或存储器)不同
而差别比较大。
指令字长变化很大,特别是3操作数指令。而且
存储器-存储器型 目标代码最紧凑,不需要设每条指令完成的工作也差别很大。对存储器的频
繁访问会使存储器成为瓶颈。这种类型的指令系
统现在已不用了。
(2,2)或(3,3) 置寄存器来保存变量。
2.4 指令集应满足哪几个基本要求?
答:对指令集的基本要求是:完整性、规整性、高效率和兼
12
容性。
完整性是指在一个有限可用的存储空间内,对于任何可解
的问题,编制计算程序时,指令集所提供的指令足够使用。
规整性主要包括对称性和均匀性。对称性是指所有与指令
集有关的存储单元的使用、操作码的设置等都是对称的。均匀
性是指对于各种不同的操作数类型、字长、操作种类和数据存
储单元,指令的设置都要同等对待。
高效率是指指令的执行速度快、使用频度高。
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) 选取使用频率最高的指令,并补充一些最有用的
13
指令;(2)每条指令的功能应尽可能简单,并在一个机器周期
内完成;(3)所有指令长度均相同;(4)只有Load和Store
操作指令才访问存储器,其它指令操作均在寄存器之间进行;
(5) 以简单有效的方式支持高级语言。
2.8 指令中表示操作数类型的方法有哪几种?
答:操作数类型有两种表示方法:(1)操作数的类型由操
作码的编码指定,这是最常见的一种方法;(2)数据可以附上
由硬件解释的标记,由这些标记指定操作数的类型,从而选择
适当的运算。
2.9 表示寻址方式的主要方法有哪些?简述这些方法的
优缺点。
答:表示寻址方式有两种常用的方法:(1)将寻址方式编
于操作码中,由操作码在描述指令的同时也描述了相应的寻址
方式。这种方式译码快,但操作码和寻址方式的结合不仅增加
了指令的条数,导致了指令的多样性,而且增加了CPU对指令
译码的难度。(2)为每个操作数设置一个地址描述符,由该地
址描述符表示相应操作数的寻址方式。这种方式译码较慢,但
操作码和寻址独立,易于指令扩展。
2.10 通常有哪几种指令格式,请简述其适用范围。
答: (1) 变长编码格式。如果系统结构设计者感兴趣的是
程序的目标代码大小,而不是性能,就可以采用变长编码格式。
(2)固定长度编码格式。如果感兴趣的是性能,而不是程序
的目标代码大小,则可以选择固定长度编码格式。 (3) 混合
型编码格式。需要兼顾降低目标代码长度和降低译码复杂度
时,可以采用混合型编码格式。
2.11 根据CPU性能公式简述RISC指令集结构计算机和
14
CISC指令集结构计算机的性能特点。
答:CPU性能公式:CPU时间=IC×CPI×T
其中,IC为目标程序被执行的指令条数,CPI为指令平均
执行周期数,T是时钟周期的时间。
相同功能的CISC目标程序的指令条数IC
CISC
少于RISC
的IC
RISC
,但是CISC的CPI
CISC
和T
CISC
都大于RISC的CPI
RISC
和T
RISC
,因此,CISC目标程序的执行时间比RISC的更长。
3.1解释下列术语
流水线:将一个重复的时序过程,分解成为若干个子过程,而
每一个子过程都可有效地在其专用功能段上与其它子过程同
时执行。
单功能流水线:指流水线的各段之间的连接固定不变、只能完
成一种固定功能的流水线。
多功能流水线:指各段可以进行不同的连接,以实现不同的功
能的流水线。
静态流水线:指在同一时间内,多功能流水线中的各段只能按
同一种功能的连接方式工作的流水线。当流水线要切换到另一
种功能时,必须等前面的任务都流出流水线之后,才能改变连
接。
动态流水线:指在同一时间内,多功能流水线中的各段可以按
照不同的方式连接,同时执行多种功能的流水线。它允许在某
些段正在实现某种运算时,另一些段却在实现另一种运算。
部件级流水线:把处理机中的部件进行分段,再把这些部件分
段相互连接而成。它使得运算操作能够按流水方式进行。这种
流水线也称为运算操作流水线。
处理机级流水线:又称指令流水线。它是把指令的执行过程按
照流水方式进行处理,即把一条指令的执行过程分解为若干个
子过程,每个子过程在独立的功能部件中执行。
处理机间流水线:又称为宏流水线。它是把多个处理机串行连
接起来,对同一数据流进行处理,每个处理机完成整个任务中
的一部分。前一个处理机的输出结果存入存储器中,作为后一
个处理机的输入。
第3章 流水线技术
线性流水线:指各段串行连接、没有反馈回路的流水线。数据
15
通过流水线中的各段时,每一个段最多只流过一次。
非线性流水线:指各段除了有串行的连接外,还有反馈回路的
流水线。
顺序流水线:流水线输出端任务流出的顺序与输入端任务流入
的顺序完全相同。
乱序流水线:流水线输出端任务流出的顺序与输入端任务流入
的顺序可以不同,允许后进入流水线的任务先完成。这种流水
线又称为无序流水线、错序流水线、异步流水线。
吞吐率:在单位时间内流水线所完成的任务数量或输出结果的
数量。
流水线的加速比:使用顺序处理方式处理一批任务所用的时间
与按流水处理方式处理同一批任务所用的时间之比。
流水线的效率:即流水线设备的利用率,它是指流水线中的设
备实际使用时间与整个运行时间的比值。
数据相关:考虑两条指令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发生了输出相关。
换名技术:名相关的两条指令之间并没有数据的传送,只是使
用了相同的名。可以把其中一条指令所使用的名换成别的,以
此来消除名相关。
结构冲突:因硬件资源满足不了指令重叠执行的要求而发生的
16
冲突。
数据冲突:当指令在流水线中重叠执行时,因需要用到前面指
令的执行结果而发生的冲突。
控制冲突:流水线遇到分支指令或其它会改变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写入的。
链接技术:具有先写后读相关的两条指令,在不出现功能部件
冲突和V
i
冲突的情况下,可以把功能部件链接起来进行流水处
17
理,以达到加快执行的目的。
分段开采:当向量的长度大于向量寄存器的长度时,必须把长
向量分成长度固定的段,然后循环分段处理,每一次循环只处
理一个向量段。
半性能向量长度:向量处理机的性能为其最大性能
R
的一半时
所需的向量长度。
向量长度临界值:向量流水方式的处理速度优于标量串行方式
的处理速度时所需的向量长度的最小值。
3.2 指令的执行可采用顺序执行、重叠执行和流水线三种
方式,它们的主要区别是什么?各有何优缺点。
答:(1)指令的顺序执行是指指令与指令之间顺序串行。
即上一条指令全部执行完后,才能开始执行下一条指令。
优点:控制简单,节省设备。缺点:执行指令的速度慢,
功能部件的利用率低。
(2)指令的重叠指令是在相邻的指令之间,让第k条指
令与取第k+l条指令同时进行。重叠执行不能加快单条指令的
执行速度,但在硬件增加不多的情况下,可以加快相邻两条指
令以及整段程序的执行速度。与顺序方式相比,功能部件的利
用率提高了,控制变复杂了。
(3)指令的流水执行是把一个指令的执行过程分解为若
干个子过程,每个子过程由专门的功能部件来实现。把多个处
理过程在时间上错开,依次通过各功能段,每个子过程与其它
的子过程并行进行。依靠提高吞吐率来提高系统性能。流水线
中各段的时间应尽可能相等
3.3 简述先行控制的基本思想。
答:先行控制技术是把缓冲技术和预处理技术相结合。缓
冲技术是在工作速度不固定的两个功能部件之间设置缓冲器,
用以平滑它们的工作。预处理技术是指预取指令、对指令进行
加工以及预取操作数等。
采用先行控制方式的处理机内部设置多个缓冲站,用于平
滑主存、指令分析部件、运算器三者之间的工作。这样不仅使
18
它们都能独立地工作,充分忙碌而不用相互等待,而且使指令
分析部件和运算器分别能快速地取得指令和操作数,大幅度地
提高指令的执行速度和部件的效率。这些缓冲站都按先进先出
的方式工作,而且都是由一组若干个能快速访问的存储单元和
相关的控制逻辑组成。
采用先行控制技术可以实现多条指令的重叠解释执行。
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段检测到分支指令后,
一旦计算出了分支目标地址,就开始从该目标地址取指令执
行。
19
(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’(反相关)。
20
3.10 简述三种向量处理方式,它们对向量处理机的结构要
求有何不同?
答 (1)横向处理方式:若向量长度为N,则水平处理方式
相当于执行N次循环。若使用流水线,在每次循环中可能出现
数据相关和功能转换,不适合对向量进行流水处理。 (2)纵向
处理方式:将整个向量按相同的运算处理完毕之后,再去执行
其他运算。适合对向量进行流水处理,向量运算指令的源/目
向量都放在存储器内,使得流水线运算部件的输入、输出端直
接与存储器相联,构成M-M型的运算流水线。 (3)纵横处理方
式:把长度为N的向量分为若干组,每组长度为n,组内按纵
向方式处理,依次处理各组,组数为「N/n」,适合流水处理。
可设长度为n的向量寄存器,使每组向量运算的源/目向量都
在向量寄存器中,流水线的运算部件输入、输出端与向量寄存
器相联,构成R-R型运算流水线。
3.11 可采用哪些方法来提高向量处理机的性能?
答:可采用多种方法:
(1) 设置多个功能部件,使它们并行工作;
(2) 采用链接技术,加快一串向量指令的执行;
(3) 采用循环开采技术,加快循环的处理;
(4) 采用多处理机系统,进一步提高性能。
3.12 有一指令流水线如下所示
(1) 求连续输入10条指令,该流水线的实际吞吐率和效
率;
(2) 该流水线的“瓶颈”在哪一段?请采取两种不同的措
施消除此“瓶颈”。对于你所给出的两种新的流水线,连
续输入10条指令时,其实际吞吐率和效率各是多少?
解:(1)
21
入 1 2 3 4 出
50ns 50ns 100ns 200ns
m
T
pipeline
t
i
(n1)t
max
i1
(5050100200)9200
2200(ns)
TP
n
T
1
1
pipeline
220
(ns)
m
t
i
ETP
i1
400
m
TP
4
5
11
45.45%
(2)瓶颈在3、4段。
变成八级流水线(细分)
Èë
123_13_24_14_4
³ö
50ns50ns50ns
50ns
50ns50ns
4
m
pipeline
1
2
3
4
T
t
i
(n1)t
max
i1
508950
3
4
850(ns)
4
TP
n
T
1
pipeline
85
(ns
1
)
ETP
m
ti
i1
m
TP
40010
8
17
58.82%
重复设置部件
段
4_4
4
8
4_3
3
7
4_2
2
6
10
4_1
1
5
9
3_2
2
4
6
8
10
3_1
1
3
5
7
9
2
1
2
3
4
5
6
7
8
9
10
1
1
2
3
4
5
6
7
8
9
10
时间
850ns
22
TP
n
T
pipeline
1
85
(ns
1
)
58.82%E
40010
3.13有一个流水线由4段组成,其中每当流经第3段时,
总要在该段循环一次,然后才能流到第4段。如果每段经过一
次所需要的时间都是
t
,问:
(1) 当在流水线的输入端连续地每
t
时间输入任务时,该
流水线会发生什么情况?
(2) 此流水线的最大吞吐率为多少?如果每
2t
输入一个
任务,连续处理10个任务时的实际吞吐率和效率是多
少?
(3) 当每段时间不变时,如何提高该流水线的吞吐率?仍
连续处理10个任务时,其吞吐率提高多少?
解:(1)会发生流水线阻塞情况。
第1个任务
第2个任务
第3个任务
第4个任务
S1
S2
S1
S3
S2
S1
S3
stall
stall
S4
S3
S2
S1
S3
stall
stall
S4
S3
S2
S3
stall
S4
S3
S3
S4
8508
10
17
(2)
段
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
1
TP
max
T
pipeline
Tp
n
1
2t
23t
T
pipeline
10
23t
ETP
5t
50
54.35%
492
23
(3)重复设置部件
Δt
3_1
1
2
4
3_2
Δt
Δt
Δt
Δt
段
4
3_2
3_1
2
1
1
1
1
2
4
3
4
4
6
5
6
6
8
7
8
8
9
10
1
1
2
3
2
4
5
3
5
6
5
6
7
5
7
8
7
8
9
7
9
9
10
10
9
10
2
3
3
4
时间
210
14
t
TP
n
T
pipeline
10
14t
5
7t
7t
23t
吞吐率提高倍数=
5
10
=1.64
3.14 有一条静态多功能流水线由5段组成,加法用1、3、
4、5段,乘法用1、2、5段,第3段的时间为2△t,其余各段
的时间均为△t,而且流水线的输出可以直接返回输入端或
(AB
。
)
现要在该流水线上计暂存于相应的流水寄存
器中
算 ,画出其时空图,并计算其吞吐率、加速比
4
ii
i1
1
△t
加法
2△t △t
△t
2
△t
3
乘法
4 5
和效率。
解:首先,应选择适合于流水线工作的算法。对于本题,
应先计算A
1
+B
1
、A
2
+B
2
、A
3
+B
3
和A
4
+B
4
;再计算(A
1
+
B
1
) ×(A
2
+B
2
)和(A
3
+B
3
) ×(A
4
+B
4
);然后求总的结果。
24
其次,画出完成该计算的时空图,如图所示,图中阴影部分
段
5
4
3
2
1
A B C D
A×B
C×D
A×B×C×D
A=A
1
+B
1
B=A
2
+B
2
C=A
3
+B
3
D=A
4
+B
4
输
0 1 2 3
入
4 5 6 7 8
9
A
1
A
2
A
3
A
4
B
1
B
2
B
3
B
4
10 11 12 13 14 15 16 17
18
A×B
A C
B D
C×D
时间
表示该段在工作。
由图可见,它在18个△t时间中,给出了7个结果。所以
吞吐率为:
TP
18
7
t
如果不用流水线,由于一次求积需3△t,一次求和需5△t,
则产生上述7个结果共需(4×5+3×3)△t =29△t。所以加速比
为:
29t
S
1
1.
61
8t
该流水线的效率可由阴影区的面积和5个段总时空区的面
积的比值求得:
4533
E322
5
18
0.
3.15 动态多功能流水线由6个功能段组成,如下图:
S1
S2
S3
乘法
加法
S4 S5
S6
其中,S1、S4、S5、S6组成乘法流水线,S1、S2、S3、
S6组成加法流水线,各个功能段时间均为50ns,假设该流水
25
线的输出结果可以直接返回输入端,而且设置有足够的缓冲寄
存器,若以最快的方式用该流水计算:
xyz
iii
i1
5
(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) 在没有任何其它定向(或旁路)硬件的支持下,请画
出该指令序列执行的流水线时空图。假设采用排空流水
线的策略处理分支指令,且所有的存储器访问都命中
Cache,那么执行上述循环需要多少个时钟周期?
(2) 假设该流水线有正常的定向路径,请画出该指令序列
执行的流水线时空图。假设采用预测分支失败的策略处
理分支指令,且所有的存储器访问都命中Cache,那么
26
执行上述循环需要多少个时钟周期?
(3) 假设该流水线有正常的定向路径和一个单周期延迟
分支,请对该循环中的指令进行调度,你可以重新组织
指令的顺序,也可以修改指令的操作数,但是注意不能
增加指令的条数。请画出该指令序列执行的流水线时空
图,并计算执行上述循环所需要的时钟周期数。
解:
寄存器读写可以定向,无其他旁路硬件支持。排空流水线。
指令
LW
DADDIU
SW
DADDIU
DSUB
BNEZ
LW
1
IF
3456789122
IDEXMWB
IFSSIDEXMWB
IFSSIDEXMWB
IFIDEXMWB
IFSSIDEXMWB
IFSSIDEXMWB
IFSSIFIDEXMWB
2
第i次迭代(i=0..98)开始周期:1+(i×17)
总的时钟周期数:(98×17)+18=1684
有正常定向路径,预测分支失败。
指令
LW
DADDIU
SW
DADDIU
DSUB
BNEZ
LW
1
IFID
IF
23456
EXMWB
IDSEXM
IFSIDEX
IFID
IF
7
WB
M
EX
ID
IF
891
WB
M
EX
ID
IF
WB
MWB
EXMWB
missmissIFIDEXMWB
第i次迭代(i=0..98)开始周期:1+(i×10)
总的时钟周期数:(98×10)+11=991
有正常定向路径。单周期延迟分支。
LOOP: LW R1,0(R2)
DADDIU R2,R2,#4
DADDIU R1,R1,#1
DSUB R4,R3,R2
27
BNEZ R4,LOOP
SW R1,-4(R2)
第i次迭代(i =0..98)开始周期:1+(i ×6 )
总的时钟周期数:(98×6)+10=598
指令
LW
DADDIU
DADDIU
DSUB
BNEZ
SW
LW
1
IFID
IF
234
EXM
IDEX
IFID
IF
5
WB
M
EX
ID
IF
6
WB
M
EX
ID
IF
7891011
WB
M
EX
ID
IF
3.17 假设各种分支指令数占所有指令数的百分比如下:
条件分支
跳转和调用
20%(其中的60%是分支成功的)
5%
WB
MWB
EXMWB
IDEXMWB
现有一条段数为4的流水线,无条件分支在第二个时钟周
期结束时就被解析出来,而条件分支要到第三个时钟周期结束
时才能够被解析出来。第一个流水段是完全独立于指令类型
的,即所有类型的指令都必须经过第一个流水段的处理。请问
在没有任何控制相关的情况下,该流水线相对于存在上述控制
相关情况下的加速比是多少?
解:没有控制相关时流水线的平均CPI=1
存在控制相关时:由于无条件分支在第二个时钟周期结束
时就被解析出来,而条件分支
要到第3个时钟周期结束时才能被解析出来。所以:
(1)若使用排空流水线的策略,则对于条件分支,有两
个额外的stall,对无条件分支,有一个额外的stall:
CPI = 1+20%*2+5%*1 = 1.45
加速比S=CPI/1 = 1.45
(2) 若使用预测分支成功策略,则对于不成功的条件分
支,有两个额外的stall,对无条件分支和成功的条件分支,有
一个额外的stall 1:
CPI = 1+20%*(60%*1+40%*2) +5%*1 = 1.33
加速比S=CPI/1 = 1.33
(3)若使用预测分支失败策略,则对于成功的条件分支,
有两个额外的stall;对无条件分支,有一个额外的stall;对不
成功的条件分支,其目标地址已经由PC 值给出,不必等待,
所以无延迟:
CPI = 1+20%*(60%*2 + 40%*0) +5%*1 = 1.29
加速比S=CPI/1 = 1.29
28
3.18 在CRAY-1机器上,按照链接方式执行下述4条向量
指令(括号中给出了相应功能部件的执行时间),如果向量寄
存器和功能部件之间的数据传送需要1拍,试求此链接流水线
的通过时间是多少拍?如果向量长度为64,则需多少拍才能得
到全部结果?
V
0
←存储器 (从存储器中取数:7拍)
V
2
←V
0
+V
1
(向量加:3拍)
V
3
←V
2
版权声明:本文标题:计算机系统结构__《张晨曦、王志英》课后习题参考答案 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.roclinux.cn/p/1735669645a1682627.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论