第 1 章 计算机系统结构的基本概念
1.1 解释下列术语
层次机构:按照计算机语言从低级到高级的次序, 把计算机系统按功能划分成多级层次结构,
每一层以一种不同的语言为特征。这些层次依次为:微程序机器级,传统机器语言机器级,
汇编语言机器级,高级语言机器级,应用语言机器级等。
虚拟机:用软件实现的机器。
翻译: 先用转换程序把高一级机器上的程序转换为低一级机器上等效的程序,
一级机器上运行,实现程序的功能。
然后再在这低
解释: 对于高一级机器上的程序中的每一条语句或指令,
等效程序。执行完后,再去高一级机器取下一条语句或指令,再进行解释执行,如此反复,
直到解释执行完整个程序。
都是转去执行低一级机器上的一段
计算机系统结构:传统机器程序员所看到的计算机属性,即概念性结构与功能特性。
在计算机技术中, 把这种本来存在的事物或属性, 但从某种角度看又好像不存在的概念称为
透明性。
计算机组成: 计算机系统结构的逻辑实现, 包含物理机器级中的数据流和控制流的组成以及
逻辑设计等。
计算机实现: 计算机组成的物理实现, 包括处理机、 主存等部件的物理结构, 器件的集成度
和速度,模块、插件、底板的划分与连接,信号传输,电源、冷却及整机装配技术等。
系统加速比:对系统中某部分进行改进时,改进后系统性能提高的倍数。
Amdahl 定律:当对一个系统中的某个部件进行改进后,所能获得的整个系统性能的提高,
受限于该部件的执行时间占总执行时间的百分比。
程序的局部性原理: 程序执行时所访问的存储器地址不是随机分布的,
括时间局部性和空间局部性。
而是相对地簇聚。 包
CPI:每条指令执行的平均时钟周期数。
测试程序套件: 由各种不同的真实应用程序构成的一组测试程序,
面的处理性能。
用来测试计算机在各个方
存储程序计算机:冯 ·诺依曼结构计算机。其基本点是指令驱动。程序预先存放在计算机存
储器中, 机器一旦启动, 就能按照程序指定的逻辑顺序执行这些程序,
述的处理工作。
自动完成由程序所描
系列机: 由同一厂家生产的具有相同系统结构、 但具有不同组成和实现的一系列不同型号的
计算机。
软件兼容: 一个软件可以不经修改或者只需少量修改就可以由一台计算机移植到另一台计算
机上运行。差别只是执行时间的不同。
向上(下) 兼容: 按某档计算机编制的程序, 不加修改就能运行于比它高 (低) 档的计算机。
向后(前) 兼容: 按某个时期投入市场的某种型号计算机编制的程序,
于在它之后(前)投入市场的计算机。
不加修改地就能运行
兼容机:由不同公司厂家生产的具有相同系统结构的计算机。
模拟: 用软件的方法在一台现有的计算机 (称为宿主机) 上实现另一台计算机 (称为虚拟机)
的指令系统。
仿真: 用一台现有计算机 (称为宿主机) 上的微程序去解释实现另一台计算机 (称为目标机)
的指令系统。
并行性: 计算机系统在同一时刻或者同一时间间隔内进行多种运算或操作。
互重叠,就存在并行性。它包括同时性与并发性两种含义。
只要在时间上相
时间重叠: 在并行性概念中引入时间因素, 让多个处理过程在时间上相互错开, 轮流重叠地
使用同一套硬件设备的各个部分,以加快硬件周转而赢得速度。
资源重复:在并行性概念中引入空间因素,以数量取胜。通过重复设置硬件资源,大幅度地
提高计算机系统的性能。
资源共享:这是一种软件方法,它使多个任务按一定时间顺序轮流使用同一套硬件设备。
耦合度:反映多机系统中各计算机之间物理连接的紧密程度和交互作用能力的强弱。
紧密耦合系统: 又称直接耦合系统。 在这种系统中, 计算机之间的物理连接的频带较高,
般是通过总线或高速开关互连,可以共享主存。
松散耦合系统: 又称间接耦合系统, 一般是通过通道或通信线路实现计算机之间的互连,
以共享外存设备(磁盘、磁带等) 。计算机之间的相互作用是在文件或数据集一级上进行。
一
可
异构型多处理机系统: 由多个不同类型、 至少担负不同功能的处理机组成, 它们按照作业要
求的顺序, 利用时间重叠原理, 依次对它们的多个任务进行加工, 各自完成规定的功能动作。
同构型多处理机系统: 由多个同类型或至少担负同等功能的处理机组成,
作业中能并行执行的多个任务。
它们同时处理同一
1.2 试用实例说明计算机系统结构、计算机组成与计算机实现之间的相互关系。
答:如在设计主存系统时, 确定主存容量、 编址方式、 寻址范围等属于计算机系统结构。
确定主存周期、 逻辑上是否采用并行主存、 逻辑设计等属于计算机组成。 选择存储芯片类型、
微组装技术、线路设计等属于计算机实现。
计算机组成是计算机系统结构的逻辑实现。计算机实现是计算机组成的物理实现。一种
体系结构可以有多种组成。一种组成可以有多种实现。
1.3 计算机系统结构的 Flynn 分类法是按什么来分类的?共分为哪几类?
答:Flynn 分类法是按照指令流和数据流的多倍性进行分类。
( 1) 单指令流单数据流 SISD
( 2) 单指令流多数据流 SIMD
( 3) 多指令流单数据流 MISD
( 4) 多指令流多数据流 MIMD
把计算机系统的结构分为:
1.4 计算机系统设计中经常使用的 4 个定量原理是什么?并说出它们的含义。
答:( 1)以经常性事件为重点。在计算机系统的设计中,对经常发生的情况,赋予它优
先的处理权和资源使用权,以得到更多的总体上的改进。
(3) CPU 性能公
行速度所获得的系统性能加速比,受限于该部件在系统中所占的重要性。
式。执行一个程序所需的 CPU 时间 = IC × CPI ×时钟周期时间。 (4)程序的局部性原理。
程序在执行时所访问地址的分布不是随机的,而是相对地簇聚。
( 2)Amdahl 定律。加快某部件执
1.5 分别从执行程序的角度和处理数据的角度来看,
计算机系统中并行性等级从低到高
可分为哪几级?
答:从处理数据的角度来看,并行性等级从低到高可分为:
( 1)字串位串:每次只对一个字的一位进行处理。这是最基本的串行处理方式,不存
在并行性;
( 2)字串位并:同时对一个字的全部位进行处理,不同字之间是串行的。已开始出现
并行性;
( 3)字并位串:同时对许多字的同一位(称为位片)进行处理。这种方式具有较高的
并行性;
( 4)全并行:同时对许多字的全部位或部分位进行处理。这是最高一级的并行。
从执行程序的角度来看,并行性等级从低到高可分为:
( 1)指令内部并行:单条指令中各微操作之间的并行;
( 2)指令级并行:并行执行两条或两条以上的指令;
( 3)线程级并行:并行执行两个或两个以上的线程,通常是以一个进程内派生的多个
线程为调度单位;
( 4)任务级或过程级并行: 并行执行两个或两个以上的过程或任务(程序段)
,以子程
序或进程为调度单元;
( 5)作业或程序级并行:并行执行两个或两个以上的作业或程序。
1.6 某台主频为 400MHz 的计算机执行标准测试程序, 程序中指令类型、 执行数量和平
均时钟周期数如下:
指令类型
整数
数据传送
指令执行数量
平均时钟周期数
45000
75000
1
2
浮点
分支
8000
1500
4
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=575s
1.7 将计算机系统中某一功能的处理速度加快
10 倍,但该功能的处理时间仅为整个系
统运行时间的 40%,则采用此增强功能方法后,能使整个系统的性能提高多少?
解 由题可知:
可改进比例 = 40% = 0.4
部件加速比 = 10
根据 Amdahl 定律可知:
系统加速比
1
1
4.0
4.0
10
.1
5625
采用此增强功能方法后,能使整个系统的性能提高到原来的
1.5625 倍。
1.8 计算机系统中有三个部件可以改进,这三个部件的部件加速比为:
部件加速比 1=30; 部件加速比 2=20; 部件加速比 3=10
(1) 如果部件 1 和部件 2 的可改进比例均为 30% ,那么当部件 3 的可改进比例为多
少时,系统加速比才可以达到
10?
(2) 如果三个部件的可改进比例分别为
30%、30%和 20%,三个部件同时改进, 那么
系统中不可加速部分的执行时间在总执行时间中占的比例是多少?
解:( 1)在多个部件可改进情况下, Amdahl 定理的扩展:
S
n
1(
1
F
i
)
F
S
i
i
已知 S1= 30, S2= 20, S3=10, Sn= 10, F1= 0.3, F2= 0.3,得:
10
-1
(
0.3
0.3
F
()
3
0.3
30/
0.3
20/
F
3
10/
)
1
得 F 3= 0.36,即部件 3 的可改进比例为 36%。
( 2)设系统改进前的执行时间为
T = 0.8T ,不可改进部分的执行时间为
T ,则 3 个部件改进前的执行时间为: ( 0.3+0.3+0.2 )
0.2T 。
已知 3 个部件改进后的加速比分别为 S1=30,S2= 20,S3= 10,因此 3 个部件改进后的
执行时间为:
'
T n
3.0
T
T
3.0
2.0
T
30
20
10
.0
045
T
改进后整个系统的执行时间为: Tn = 0.045T+0.2T = 0.245T
那么系统中不可改进部分的执行时间在总执行时间中占的比例是:
2.0
T
245.0
T
82.0
1.9 假设某应用程序中有 4 类操作,通过改进,各操作获得不同的性能提高。具体数据
如下表所示:
操作类型
程序中的数量
(百万条指令)
改进前的执行时间
改进后的执行时间
(周期)
(周期)
操作 1
操作 2
操作 3
操作 4
10
30
35
15
2
20
10
4
( 1)改进后,各类操作的加速比分别是多少?
( 2)各类操作单独改进后,程序获得的加速比分别是多少?
( 3) 4 类操作均改进后,整个程序的加速比是多少?
解:根据 Amdahl 定律
S n
1
1(
Fe
)
可
Fe
Se
1
15
3
1
操作类型
操作 1
操作 2
操作 3
操作 4
各类操作的指令条数在
程序中所占的比例 F i
各类操作的加速比 Si
各类操作单独改进后,
程序获得的加速比
11.1%
33.3%
38.9%
16.7%
2
1.33
3.33
4
1.06
1.09
1.37
1.14
4 类操作均改进后,整个程序的加速比:
S
n
1(
1
F
i
)
2.16
F
S
i
i
第 2 章 指令集结构的分类
2.1 解释下列术语
堆栈型机器: CPU 中存储操作数的单元是堆栈的机器。
累加器型机器: CPU 中存储操作数的单元是累加器的机器。
通用寄存器型机器: CPU 中存储操作数的单元是通用寄存器的机器。
CISC:复杂指令集计算机
RISC:精简指令集计算机
寻址方式: 指令系统中如何形成所要访问的数据的地址。
一般来说, 寻址方式可以指明
指令中的操作数是一个常数、一个寄存器操作数或者是一个存储器操作数。
数据表示:硬件结构能够识别、指令系统可以直接调用的那些数据结构。
2.2 区别不同指令集结构的主要因素是什么?根据这个主要因素可将指令集结构分为哪
3 类?
答:区别不同指令集结构的主要因素是
CPU中用来存储操作数的存储单元。 据此可将指
令系统结构分为堆栈结构、累加器结构和通用寄存器结构。
2.3 常见的 3 种通用寄存器型指令集结构的优缺点有哪些?
答:
指令系统结构类型
优 点
缺 点
指令字长固定,指令结构简
寄存器 -寄存器型
洁,是一种简单的代码生成
( 0, 3)
模型,各种指令的执行时钟
寄存器 -存储器型
( 1, 2)
周期数相近。
可以在 ALU 指令中直接对
存储器操作数进行引用,而
不必先用 load 指令进行加
载。容易对指令进行编码,
目标代码比较紧凑。
与指令中含存储器操作数的指令系统结构相比,
指令条数多, 目标代码不够紧凑, 因而程序占用
的空间比较大。
由于有一个操作数的内容将被破坏, 所以指令中
的两个操作数不对称。 在一条指令中同时对寄存
器操作数和存储器操作数进行编码, 有可能限制
指令所能够表示的寄存器个数。 指令的执行时钟
周期数因操作数的来源 (寄存器或存储器) 不同
而差别比较大。
指令字长变化很大, 特别是 3 操作数指令。 而且
存储器 -存储器型
目标代码最紧凑,不需要设
每条指令完成的工作也差别很大。 对存储器的频
( 2,2)或( 3, 3)
置寄存器来保存变量。
繁访问会使存储器成为瓶颈。 这种类型的指令系
统现在已不用了。
2.4 指令集应满足哪几个基本要求?
答:对指令集的基本要求是:完整性、规整性、高效率和兼容性。
完整性是指在一个有限可用的存储空间内,
对于任何可解的问题, 编制计算程序时, 指
令集所提供的指令足够使用。
规整性主要包括对称性和均匀性。 对称性是指所有与指令集有关的存储单元的使用、
操
作码的设置等都是对称的。 均匀性是指对于各种不同的操作数类型、
存储单元,指令的设置都要同等对待。
字长、 操作种类和数据
高效率是指指令的执行速度快、使用频度高。
2.5 指令集结构设计所涉及的内容有哪些?
答: (1) 指令集功能设计:主要有 RISC和 CISC 两种技术发展方向; (2) 寻址方式的
察看各种寻址方式的使用频率, 根
设计: 设置寻址方式可以通过对基准程序进行测试统计,
据适用频率设置必要的寻址方式。 (3) 操作数表示和操作数类型:主要的操作数类型和操
作数表示的选择有: 浮点数据类型、 整型数据类型、 字符型、 十进制数据类型等等。 (4) 寻
址方式的表示: 可以将寻址方式编码于操作码中, 也可以将寻址方式作为一个单独的域来表
示。 (5) 指令集格式的设计: 有变长编码格式、 固定长度编码格式和混合型编码格式
3 种。
2.6 简述 CISC 指令集结构功能设计的主要目标。 从当前的计算机技术观点来看, CISC
指令集结构的计算机有什么缺点?
答: 主要目标是增强指令功能, 把越来越多的功能交由硬件来实现,
并且指令的数量也
是越来越多。
缺点: (1) CISC 结构的指令集中,各种指令的使用频率相差悬殊。
的复杂性带来了计算机体系结构的复杂性,
设计错误。( 3) CISC 结构指令集的复杂性给 VLSI 设计增加了很大负担,不利于单片集成。
(2) CISC 结构指令
这不仅增加了研制时间和成本, 而且还容易造成
(4) CISC 结构的指令集中,许多复杂指令需要很复杂的操作,因而运行速度慢。
CISC 结构的指令集中,由于各条指令的功能不均衡性,不利于采用先进的计算机体系结构
技术(如流水技术)来提高系统的性能。
(5) 在
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 目标程序的指令条数 IC CISC 少于 RISC 的 IC RISC,但是 CISC 的 CPI CISC
和 T CISC 都大于 RISC 的 CPI RISC 和 TRISC,因此, CISC 目标程序的执行时间比 RISC 的更长。
3.1 解释下列术语
第 3 章 流水线技术
流水线: 将一个重复的时序过程, 分解成为若干个子过程, 而每一个子过程都可有效地在其
专用功能段上与其它子过程同时执行。
单功能流水线:指流水线的各段之间的连接固定不变、只能完成一种固定功能的流水线。
多功能流水线:指各段可以进行不同的连接,以实现不同的功能的流水线。
静态流水线: 指在同一时间内, 多功能流水线中的各段只能按同一种功能的连接方式工作的
流水线。 当流水线要切换到另一种功能时, 必须等前面的任务都流出流水线之后,
连接。
才能改变
动态流水线: 指在同一时间内, 多功能流水线中的各段可以按照不同的方式连接,
多种功能的流水线。它允许在某些段正在实现某种运算时,另一些段却在实现另一种运算。
同时执行
部件级流水线: 把处理机中的部件进行分段, 再把这些部件分段相互连接而成。 它使得运算
操作能够按流水方式进行。这种流水线也称为运算操作流水线。
处理机级流水线: 又称指令流水线。 它是把指令的执行过程按照流水方式进行处理,
条指令的执行过程分解为若干个子过程,每个子过程在独立的功能部件中执行。
即把一
处理机间流水线: 又称为宏流水线。 它是把多个处理机串行连接起来, 对同一数据流进行处
理,每个处理机完成整个任务中的一部分。
一个处理机的输入。
前一个处理机的输出结果存入存储器中,
作为后
线性流水线: 指各段串行连接、 没有反馈回路的流水线。 数据通过流水线中的各段时, 每一
个段最多只流过一次。
非线性流水线:指各段除了有串行的连接外,还有反馈回路的流水线。
顺序流水线:流水线输出端任务流出的顺序与输入端任务流入的顺序完全相同。
乱序流水线: 流水线输出端任务流出的顺序与输入端任务流入的顺序可以不同,
流水线的任务先完成。这种流水线又称为无序流水线、错序流水线、异步流水线。
允许后进入
吞吐率:在单位时间内流水线所完成的任务数量或输出结果的数量。
流水线的加速比: 使用顺序处理方式处理一批任务所用的时间与按流水处理方式处理同一批
任务所用的时间之比。
流水线的效率: 即流水线设备的利用率, 它是指流水线中的设备实际使用时间与整个运行时
间的比值。
数据相关 : 考虑两条指令 i 和 j, i 在 j 的前面,如果下述条件之一成立,则称指令
i 数据相关:
j 与指令
( 1)指令 j 使用指令 i 产生的结果;
( 2)指令 j 与指令 k 数据相关,而指令 k 又与指令 i 数据相关。
名相关: 如果两条指令使用了相同的名, 但是它们之间并没有数据流动, 则称这两条指令存
在名相关。