跳转至

第 1 章 计算机系统概述

依据:袁春风《计算机组成原理》(2016 年版)第 1 章及配套自考大纲。下文编号指大纲“考核内容与考核要求”;教材算例为学习辅助,不是真题。

复习导航:大纲要求与笔记位置

大纲条目 层次 位置 学完应能做到
1 硬件的基本组成 领会 第 1 节 说明冯·诺依曼结构的工作方式,列出五大部件及其功能
2 软件概述 识记、领会 第 2 节 给出软件、系统软件、应用软件、语言处理程序的定义,区分各类软件的功能
3 系统的层次结构 领会 第 3 节 说明软硬件的相互关系与层次化结构,指出各类用户所处位置
4 程序开发与执行过程 识记、领会 第 4 节 解释翻译、链接、装入过程,区分 PC/IR/GPR/ALU/标志寄存器
5 性能评价 领会、简单应用 第 5 节 说明影响性能的因素,计算 CPU 时间与性能比

第 1、3 节属领会,要求能解释而非仅复述。第 2、4 节的术语属识记,需准确命名;第 5 节则要求完成简单计算。

本章学习目标

本章介绍计算机的基本部件,以及程序如何由这些部件配合执行。理解各概念在执行过程中的作用,比单独记名称更有帮助。

可沿“一段 C 源程序如何变为机器指令并执行”复习,将五大部件、软硬件层次和 CPU 时间公式联系起来。

1 硬件的基本组成(1,领会)

冯·诺依曼结构的核心是存储程序:指令和数据均以二进制保存在存储器中,机器按指令控制执行。经典结构包括运算器、控制器、存储器、输入设备和输出设备五部分。

仅凭位串外观无法判断它是指令还是数据。同一二进制模式的含义取决于所处位置和解释方式,例如作为指令送入 IR 译码,或作为操作数参与 ALU 运算。

部件 作用 需要分清的概念
运算器 算术、逻辑、移位等运算 ALU 是核心运算部件,寄存器暂存操作数及结果
控制器 取指、译码、发出控制信号 决定何时传什么、执行什么操作
主存 存放正在运行的程序与数据 按地址访问;不是 CPU 内部寄存器
输入/输出设备 与外部交换信息 通常经 I/O 接口连接系统
总线与互连 在部件间传递信息 地址、数据、控制信息的职能不同

现代计算机以存储器为中心组织数据交换,主存、CPU 与 I/O 通过互连结构传递数据。CPU 由运算器和控制器组成。辅存(外存)容量大、断电后可保留数据,用于长期存储;程序需要装入主存后,CPU 才能执行。

2 软件概述(2,识记、领会)

软件不只是代码,还包括相关数据与文档。系统软件负责管理资源、为应用搭台,操作系统、语言处理系统、数据库管理系统、工具软件都算;应用软件则直接解决用户的具体问题。

  • 操作系统管处理器、存储器、设备和文件,并对外提供服务接口。
  • 编译程序把高级语言源程序翻成目标代码;汇编程序把汇编语言翻成机器代码。
  • 解释程序按源程序或中间表示逐步解释执行,不先生成一个完整的独立机器程序。

高级语言的一条语句常对应多条机器指令。汇编指令与机器指令的对应关系比较直接,但伪指令可能展开成多条机器指令。

3 系统的层次结构(3,领会)

同一程序可以从不同抽象层次描述:应用与算法说明要解决的问题,高级语言描述处理步骤,汇编和机器指令规定具体操作;硬件部分则进一步区分 ISA、微体系结构与逻辑电路。各层通过接口衔接,上层不必了解全部实现细节。操作系统通过系统调用等机制,在 ISA 之上提供运行环境。

指令集体系结构(ISA)是软件与硬件之间的接口约定,规定程序可见的指令、寄存器、数据类型和寻址方式等。微体系结构则说明如何实现这些约定,例如是否采用流水线、如何组织数据通路。同一套 ISA 可以有多种实现,性能也可能不同。

一些功能既可由硬件实现,也可由软件完成。例如,乘法既可作为硬件指令,也可用软件子程序实现,需要权衡速度、成本与灵活性。应用程序员主要使用语言和库,系统程序员还需了解操作系统与 ISA,硬件设计者则侧重数据通路和逻辑电路。本课重点连接机器级程序与硬件实现。

4 程序开发与执行过程(4,识记、领会)

C 程序通常经过以下阶段后执行:

  1. 预处理:展开头文件与宏,将 .c 转为 .i。
  2. 编译:将预处理后的程序翻译成 .s 汇编代码。
  3. 汇编:将汇编代码转为 .o 可重定位目标文件。
  4. 链接:合并目标文件与所需库,解析符号引用,生成可执行文件。
  5. 装入:将程序映射到运行时地址空间,准备执行。

源文件是保存字符编码的文本,可执行文件则包含机器指令、数据与装入信息。CPU 不能直接执行 .c 源文件,需要先完成翻译和装入。程序装入后,由以下部件配合完成取指与执行。

名称 保存或完成的内容
PC,程序计数器 指令地址;顺序执行时按指令长度更新,转移时装入目标地址
IR,指令寄存器 当前取出的指令
GPR,通用寄存器 操作数、中间结果、地址等
ALU 进行算术与逻辑运算
标志寄存器 零、符号、溢出、进位等状态信息,具体依 ISA 而定
MAR / MDR 存储器地址 / 与存储器交换的数据,第 4 章展开

一条指令的处理可概括为取指、译码、取操作数、执行、写回结果和更新 PC,各类指令需要的具体步骤不同。例如,分支指令主要改变 PC,存数指令主要将数据写入主存。时钟协调动作时序,控制信号决定各部件何时执行相应操作。

拿“把主存某单元的内容加到寄存器”举例:先得把这条指令本身取出来,再算出操作数地址、把数据读进来,最后相加写回。这里访存了两次,目的完全不同——头一次取的是指令,第二次取的是数据。初学者常把这两次访问混成一件事。

5 性能评价(5,领会、简单应用)

响应时间是从提交任务到获得结果的时间;吞吐率是单位时间内完成的任务数。前者关注单个任务等多久,后者关注系统能处理多少任务。比较性能前,应统一工作负载和评价口径。

设指令数为 IC,平均每条指令周期数为 CPI,时钟频率为 \(f\),时钟周期为 \(T\),则 \(T=1/f\),CPU 时间为:

\[T_{CPU}=IC\times CPI\times T=\frac{IC\times CPI}{f}\]

不同指令类别的占比为 pᵢ 时,平均 CPI 为 Σ(pᵢ×CPIᵢ)。CPU 时间不等于总运行时间,后者还要计入 I/O 等待等开销。

算例:程序执行 \(10^9\) 条指令,平均 CPI 为 1.5,主频为 \(3\ \text{GHz}\),CPU 时间为 \(10^9\times1.5/(3\times10^9)=0.5\ \text{s}\)。

若程序 A 用时 \(0.5\ \text{s}\)、程序 B 用时 \(0.8\ \text{s}\),则 A 相对 B 的加速比为 \(0.8/0.5=1.6\)。

加权平均算例(自编,题型同 202504 计算 27,数据自拟,不是真题):某程序在 2 GHz 机器上共 14 条指令,A 类 6 条(CPI=1)、B 类 2 条(CPI=3)、C 类 3 条(CPI=4)、D 类 3 条(CPI=2)。

(1)这段程序的加权平均 CPI 是多少?(2)执行时间是多少?

解:先按类别计算总周期数:\(6\times1+2\times3+3\times4+3\times2=30\) 个周期。因此,加权平均 CPI 为 \(30/14\approx2.14\),执行时间为 \(30\times(1/2\ \text{GHz})=15\ \text{ns}\)。代入 \(\text{IC}\times\text{CPI}/f\) 验算,也得到约 \(15\ \text{ns}\)。

计算时依次求平均 CPI、总周期数,再除以主频得到时间。202504 计算第 27 题比较 S1、S2 两种编译结果,最后也是比较执行时间。

在相同统计口径下,\(\text{MIPS}=\text{IC}/(\text{执行秒数}\times10^6)\),也可写为 \(f/(\text{CPI}\times10^6)\)。MFLOPS 表示每秒百万次浮点运算。

MIPS 受 ISA、指令功能和程序组成影响,不能单独代表所有任务的性能。使用基准程序比较时,应说明工作负载和测试条件。

CPU 时间公式中的 IC、CPI 和 T 受不同因素影响:算法决定工作量,语言和编译器影响指令条数与组成,ISA 规定指令功能,硬件组织影响 CPI 和时钟周期。

6 考核要求

本章共 5 条考核条目:第 1、3 条要求领会,第 2、4 条兼有识记与领会,第 5 条含简单应用。可沿“C 源程序 → 翻译与装入 → 五大部件配合执行 → CPU 时间计算”复习,重点理解存储程序思想、系统层次、ISA 的软硬件接口作用,以及 IC、CPI、T 的关系。

7 教材本章习题

题目取自教材第 1 章“习题”(共 10 题)。第 5、6、7、10 题的解答以附录“部分习题解答”为依据;第 6 题另按题干数据重算并说明差异。第 8、9 题为本笔记补充解答,附录未收;其余题目请对照教材自行完成。

7.1 概念与简答

1. 给出以下概念的解释说明。

中央处理器 CPU 算术逻辑单元 ALU

主存(内存) 辅助存储器(辅存)

系统软件 应用软件

机器语言 机器级语言

翻译程序 编译程序

操作系统 语言处理系统

应用程序员 系统程序员

透明 响应时间

数据通路 控制器 外设(I/O 设备) 设备控制器(I/O 模块) 高级语言 汇编语言 源程序 目标程序 解释程序 汇编程序 最终用户 系统管理员 指令 ISA 吞吐率 CPU 执行时间

时钟周期 时钟频率 CPI 基准程序 MIPS 峰值 MIPS MFLOPS PFLOPS

答案与解析

教材附录未收本题解答,请对照教材自行完成。

2. 简单回答下列问题。

(1)冯·诺依曼计算机由哪几部分组成?各部分的功能是什么?采用什么工作方式?

(2)冯·诺依曼结构的主要思想是什么?

(3)计算机系统层次结构如何划分?计算机系统的用户可分哪几类?每类用户工作在哪一层?

(4)程序与指令的关系是什么?一条指令的执行过程大致经过哪几个步骤?

(5)程序的 CPI 与哪些因素有关?

(6)为什么说性能指标 MIPS 不能很好地反映计算机的性能?

答案与解析

教材附录未收本题解答,请对照教材自行完成。

7.2 系统层次与程序执行

3. 假定你的朋友不太懂计算机,请用简单通俗的语言给你的朋友介绍计算机系统是如何工作的。

答案与解析

教材附录未收本题解答,请对照教材自行完成。

4. 你对计算机系统的哪些部分最熟悉,哪些部分最不熟悉?最想进一步了解细节的是哪些部分的内容?

答案与解析

教材附录未收本题解答,请对照教材自行完成。

7.3 性能计算

5. 若有两个基准测试程序 P1 和 P2 在机器 M1 和 M2 上运行,假定 M1 和 M2 的价格分别是 5 000 元和 8 000 元,下表给出了 P1 和 P2 在 M1 和 M2 上所花的时间和指令条数。

程序 M1 指令条数 M1 执行时间 M2 指令条数 M2 执行时间
P1 \(200 \times 10^{6}\) 1 000 ms \(150 \times 10^{6}\) 500 ms
P2 \(300 \times 10^{3}\) 3 ms \(420 \times 10^{3}\) 6 ms

请回答下列问题:

(1)对于 P1,哪台机器的速度快?快多少?对于 P2 呢?

(2)在 M1 上执行 P1 和 P2 的速度分别是多少 MIPS? 在 M2 上的执行速度又各是多少? 从执行速度来看,对于 P2,哪台机器的速度快? 快多少?

(3)假定 M1 和 M2 的时钟频率各是 800 MHz 和 1.2 GHz,则在 M1 和 M2 上执行 P1 时的平均时钟周期数 CPI 各是多少?

(4)如果某个用户需要大量使用程序 P1,并且该用户主要关心系统的响应时间而不是吞吐率,那么,该用户需要大批推进机器时,应该选择 M1 还是 M2?为什么?(提示:从性价比上考虑)

(5)如果另一个用户也需要购进大批机器,但该用户使用 P1 和 P2 一样多,主要关心的也是响应时间,那么,应该选择 M1 还是 M2?为什么?

答案与解析

参考答案: (1)P1 这一项,M1 花的执行时间是 M2 的两倍,故 M2 比 M1 快一倍。P2 反过来:M2 用时是 M1 的两倍,M1 比 M2 快一倍。

(2)M1 上 P1 的速度为 200 M / 1 s = 200 MIPS,P2 为 0.3 M / 0.003 s = 100 MIPS;M2 上 P1 为 150 M / 0.5 s = 300 MIPS,P2 为 0.42 M / 0.006 s = 70 MIPS。再看 P2 这一项:100/70 = 1.43,M1 比 M2 快 0.43 倍。

(3)在 M1 上执行 P1 时的平均时钟周期数 CPI 为 \(1 \times 800 \text{ MHz}/200 \text{ M}=4\);在 M2 上执行 P1 时的平均时钟周期数 CPI 为 \(0.5 \times 1.2 \text{ GHz}/150 \text{ M}=4\)。

(4)先定性价比怎么算。用户主要关心响应时间,性能就该取执行时间的倒数,于是性价比 \(R=1/(\text{执行时间}\times\text{价格})\)。R 越大越划算,等价于“执行时间 × 价格”越小越划算。代入 P1 的数据:M1 为 \(R_{1}=1/(1 \times 5000)\),M2 为 \(R_{2}=1/(0.5 \times 8000)\),算下来 \(R_{2}>R_{1}\)。M2 的性价比高,该买 M2。

(5)若“一样多”指 P1、P2 的执行次数相同,可比较每种程序各运行一次的总耗时。教材附录还列出算术平均与几何平均两种评价方式,结果如下:

综合方式 M1 M2 按性能/价格选择
总耗时 \(1000+3=1003\) ms \(500+6=506\) ms M2
算术平均 \(1003/2=501.5\) ms \(506/2=253\) ms M2
几何平均 \(\sqrt{1000\times3}\approx54.7\) ms \(\sqrt{500\times6}\approx54.7\) ms M1

前两种方式中,两台机器的执行时间乘价格分别为 \(1003\times5000=5\,015\,000\) 与 \(506\times8000=4\,048\,000\)(用平均时间时两者都除以 2),因此 M2 的性价比更高。几何平均方式中,两台机器的时间指标相同,价格较低的 M1 性价比更高。这是三种计算方式、两种选择结果。

这些指标回答的问题不同。总耗时或算术平均直接反映各运行相同次数时的时间成本;P1 耗时较长,对总耗时的影响也更大,这是该工作负载的实际权重。几何平均用于综合相对表现:M2 在 P1 上的加速比为 2,在 P2 上为 0.5,几何平均加速比为 \(\sqrt{2\times0.5}=1\)。它并不表示两台机器完成这组任务的总时间相同。

单位换算也不能混入评价方法:相加前必须将时间换成同一单位;统一从毫秒换成秒,不会改变算术平均或几何平均的排序。基准测试常先将各项结果归一化为无量纲比值,再求几何平均,不能据此宣称几何平均适合所有使用场景。

本题按附录保留不同评价方式;若按“每种程序运行次数相同、关心实际响应时间”解释题意,则应采用相应的总耗时或平均耗时,选择 M2。

6. 若机器 M1 和 M2 具有相同的指令集, 其时钟频率分别为 1 GHz 和 1.5 GHz。在指令集中有五种不同类型的指令 A–E。下表给出了在 M1 和 M2 上每类指令的平均时钟周期数 CPI。

机器 A B C D E
M1 1 2 2 3 4
M2 2 2 4 5 6

请回答下列问题:

(1)M1 和 M2 的峰值 MIPS 各是多少?

(2)假定某程序 P 的指令序列中,五类指令具有完全相同的指令条数,则程序 P 在 M1 和 M2 上运行时,哪台机器更快?快多少?在 M1 和 M2 上执行程序 P 时的平均时钟周期数 CPI 各是多少?

答案与解析

参考答案: (1)本题按给定指令类型的最小 CPI 计算峰值 MIPS,即假设程序全部由该类指令组成:\(\text{峰值 MIPS}=f/(\text{CPI}_{\min}\times10^6)\),其中 \(f\) 以 Hz 计。

M1 的五类 CPI 里最小的是 1(A 类),主频 1 GHz,故峰值 MIPS = 1 GHz / 1 = 1 000 MIPS;M2 的最小 CPI 是 2(A、B 两类都是 2),主频 1.5 GHz,故峰值 MIPS = 1.5 GHz / 2 = 750 MIPS。

(2)程序 P 里五类指令条数相同,各占 1/5,按条数加权平均:

M1 的 CPI 为 \((1+2+2+3+4)/5=12/5=2.4\),M2 的 CPI 为 \((2+2+4+5+6)/5=19/5=3.8\)。

CPI 少不等于跑得快,两台机器的主频不一样。要比快慢,得把 CPI 乘上时钟周期,落到“每条指令多少纳秒”这一个量纲上:单条指令时间 = CPI × T = CPI / f。

设程序 P 有 N 条指令,则 P 在 M1 上的执行时间为

\[2.4\times N\times\frac{1}{1\ \text{GHz}}=2.4N\ (\text{ns})\]

在 M2 上的执行时间为

\[3.8\times N\times\frac{1}{1.5\ \text{GHz}}=\frac{3.8}{1.5}N\approx2.533N\ (\text{ns})\]

2.4N < 2.533N,故 M1 执行 P 更快,每条指令平均快 \(2.533-2.4\approx\) 0.133 ns。换成比值是 2.533/2.4 ≈ 1.056,即快约 5.6%。

说明:教材附录在本题答案里代入的是 0.8 GHz 与 1.6 GHz,与题干写明的 1 GHz、1.5 GHz 不符(那组频率属于另一道题)。本文按题干的 1.0 / 1.5 GHz 重算,故结论与附录相反:附录得 M2 更快、每条快 0.625 ns,按题干参数则是 M1 更快、每条快约 0.133 ns。做题时以题干数据为准。

本题说明:比较同一指令条数的执行时间,需要同时考虑 CPI 与主频。保持 M2 的 CPI 为 3.8 时,令 \(3.8/f_2=2.4/(1\ \text{GHz})\),可得两机用时相等的临界主频 \(f_2\approx1.583\ \text{GHz}\);M2 达到该频率时追平,高于该频率时才更快。

7. 假设同一套指令集用不同的方法设计了两种机器 M1 和 M2。机器 M1 的时钟周期为 0.8 ns,机器 M2 的时钟周期为 1.2 ns。某个程序 P 在机器 M1 上运行时的 CPI 为 4,在 M2 上运行时的 CPI 为 2。对于程序 P 来说,哪台机器的执行速度更快?快多少?

答案与解析

参考答案: M1 和 M2 实现的是同一套指令集,程序 P 在两台机器上的指令条数相同,设为 \(N\) 条。P 在 M1 上的执行时间为 \(4 \times 0.8 \, \text{ns} \times N = 3.2 \, N \, (\text{ns})\),在 M2 上的执行时间为 \(2 \times 1.2 \, \text{ns} \times N = 2.4 \, N \, (\text{ns})\)。对比可知,对程序 P 来说 M2 执行更快,平均每条指令快 \(3.2 - 2.4 = 0.8 \, \text{ns}\)。

8. 假设某机器 M 的时钟频率为 4 GHz, 用户程序 P 在 M 上的指令条数为 \(8 \times 10^{9}\), 其 CPI 为 1.25, 则 P 在 M 上的执行时间是多少? 若在机器 M 上从程序 P 开始启动到执行结束所需的时间是 4 s, 则 P 占用的 CPU 时间的百分比是多少?

答案与解析

参考答案: (附录未收,按题干算得)执行时间 \(=\text{IC}\times\text{CPI}/f=8\times10^{9}\times1.25/(4\times10^{9})=2.5\) s;CPU 时间占比 \(=2.5/4=62.5\%\)。

9. 假定某编译器对某段高级语言程序编译生成两种不同的指令序列 S1 和 S2,在时钟频率为 500 MHz 的机器 M 上运行,目标指令序列中用到的指令类型有 A、B、C 和 D 四类。四类指令在 M 上的 CPI 和两个指令序列所用的各类指令条数如下表所示。

A B C D
各指令的 CPI 1 2 3 4
S1 的指令条数 5 2 2 1
S2 的指令条数 1 1 1 5

请问:S1 和 S2 各有多少条指令?CPI 各为多少?所含的时钟周期数各为多少?执行时间各为多少?

答案与解析

参考答案: (附录未收,按题干算得)S1 共 \(5+2+2+1=10\) 条,周期数 \(5\times1+2\times2+2\times3+1\times4=19\),CPI \(=19/10=1.9\),执行时间 \(19/(500\ \text{MHz})=38\) ns;S2 共 \(1+1+1+5=8\) 条,周期数 \(1+2+3+5\times4=26\),CPI \(=26/8=3.25\),执行时间 \(26/(500\ \text{MHz})=52\) ns。S2 的 CPI 与执行时间都更大。

10. 假定机器 M 的时钟频率为 400 MHz, 某程序 P 在机器 M 上的执行时间为 12.000 s。对 P 优化时, 将其所有的乘 4 指令都换成了一条左移两位的指令, 得到优化后的程序 P'。已知在 M 上乘法指令的 CPI 为 102, 左移指令的 CPI 为 2, P' 的执行时间为 11.998 s, 则 P 中有多少条乘法指令替换成了左移指令被执行?

答案与解析

参考答案: 程序 P 比 P′ 多花 \(12.000 - 11.998 = 0.002\ \text{s}\),折合时钟周期数为 \(400\ \text{MHz} \times 0.002\ \text{s} = 0.8\ \text{M} = 800\,000\) 个。每把一条乘法指令(\(\text{CPI}=102\))换成左移指令(\(\text{CPI}=2\))能省下 \(102 - 2 = 100\) 个时钟周期,故被替换的乘法指令共有 \(800\,000 / 100 = 8\,000\) 条。

8 自编客观题(补充)

以下 15 题按 2024 年 10 月、2025 年 4 月两卷的客观题考点自编,用于检索式回忆;不是教材原题。

8.1 单项选择题

1. 冯·诺依曼结构区别于早期计算机的核心思想是

  • A. 以运算器为中心组织数据流

  • B. 用多总线提高并行度

  • C. 指令和数据都以二进制存进存储器,按地址访问并顺序执行

  • D. 用微程序代替硬连线控制器

答案与解析

参考答案: C。存储程序才是结构思想;A 是早期机器的组织方式,B、D 都属具体实现。

2. CPU 中保存当前正在执行的指令的部件是

  • A. PC

  • B. MAR

  • C. IR

  • D. 标志寄存器

答案与解析

参考答案: C。PC 存下一条取指地址,MAR 存访存地址,标志寄存器存状态位。

3. 应用程序员与系统程序员的分界通常在

  • A. 高级语言与库这一层

  • B. 逻辑门与触发器这一层

  • C. 编译器内部

  • D. ISA 与操作系统这一层

答案与解析

参考答案: D。应用程序员面向语言和库,系统程序员要懂操作系统与 ISA;B 是硬件设计者的位置。

4. 把汇编语言源程序翻译成可重定位目标文件的是

  • A. 编译程序

  • B. 汇编程序

  • C. 链接程序

  • D. 装入程序

答案与解析

参考答案: B。编译把高级语言变成汇编,链接把多个目标文件与库拼成可执行文件,装入负责映射进运行时地址空间。

5. 同一套 ISA 的两台机器性能可以差出很远,直接原因是

  • A. 微体系结构不同

  • B. 指令条数不同

  • C. 机器字长不同

  • D. 操作系统不同

答案与解析

参考答案: A。ISA 相同意味着指令、寄存器、寻址方式一致,差别出在流水线组织、数据通路与时钟周期这些实现层。

6. CPU 时间 = IC × CPI × T 中,CPI 主要由什么决定

  • A. 算法

  • B. 语言与编译器

  • C. 硬件组织与指令组成

  • D. 主频

答案与解析

参考答案: C。IC 受算法、语言、编译器与 ISA 影响;CPI 取决于指令组成及硬件执行代价,T 则取决于硬件定时。不能把 CPI 完全归因于硬件。

7. 某程序执行 2×10⁹ 条指令,平均 CPI=1.5,主频 3 GHz,其 CPU 时间为

  • A. 0.5 s

  • B. 1 s

  • C. 1.5 s

  • D. 3 s

答案与解析

参考答案: B。\(2\times10^{9}\times1.5/(3\times10^{9})=1\) s。

8. 跨 ISA 用 MIPS 比性能不可靠,主要因为

  • A. MIPS 只统计浮点运算

  • B. MIPS 与主频无关

  • C. 不同 ISA 一条指令完成的工作量不同

  • D. MIPS 无法由程序测得

答案与解析

参考答案: C。MIPS 是每秒百万条指令,指令功能不同则条数不可比;跨 ISA 通常改用基准程序的执行时间。

9. 基准程序的作用是

  • A. 测出主频的理论上限

  • B. 取代全部性能指标

  • C. 只用于比较存储容量

  • D. 用有代表性的工作负载比较系统,结论仍要说明负载与测试条件

答案与解析

参考答案: D。换一组负载或换测试条件,结论可能不同,所以口径必须一起报。

10. 关于解释程序,下列说法正确的是

  • A. 先把源程序整个翻译成独立的机器程序再运行

  • B. 按源程序或中间表示逐步解释执行

  • C. 与编译程序完全等价

  • D. 只能处理汇编语言

答案与解析

参考答案: B。A 描述的是编译程序;解释不生成完整的独立目标程序。

8.2 填空题

11. 冯·诺依曼计算机由运算器、控制器、存储器、输入设备和 ___ 五大部分组成。

答案与解析

参考答案: 输出设备

12. 连接软件与硬件的接口约定称为 ___,它规定指令、寄存器、数据类型和寻址方式。

答案与解析

参考答案: 指令集体系结构(ISA)

13. 本章 C 程序模型中,源程序经过预处理、编译、___ 和链接生成可执行文件,再由装入阶段准备执行。

答案与解析

参考答案: 汇编

14. 与响应时间相对、表示单位时间能完成多少任务的指标叫 ___。

答案与解析

参考答案: 吞吐率

15. 设 IC=2×10⁹ 条、CPI=1.5、主频 3 GHz,则 CPU 时间为 ___ s。

答案与解析

参考答案: 1

9 闭卷复习与跨章联系(补充)

一、闭卷自答(合上书逐题口述)

  1. 冯·诺依曼结构的工作方式是什么?五大部件各做什么?
  2. 系统软件与应用软件怎么分?编译、汇编、解释三种程序各把什么变成什么?
  3. 计算机系统分哪几层?ISA 与微体系结构各回答什么问题?
  4. 一段 C 程序从源文件到跑起来要过哪五步?每步的输入和输出是什么?
  5. PC、IR、GPR、标志寄存器各存什么?一条指令的执行大致经过哪几步?
  6. 写出 CPU 时间公式,说明 IC、CPI、T 各由什么决定;MIPS 为什么不能单独用来比性能?

二、本章易错

  1. 光看二进制位串分不出指令和数据,要看它被送进 IR 译码还是送进 ALU 运算(第 1 节)。
  2. 取指和取数是两次目的完全不同的主存访问,计算访存次数时不能合二为一(第 4 节)。
  3. 比快慢不能单看主频或单看 CPI,必须把 \(\text{IC} \times \text{CPI} \times T\) 三项乘全落到执行时间上(第 5 节)。

三、本章骨架

层次 内容 谁在这一层
应用与算法 要解决什么问题 最终用户
高级语言 按什么步骤做 应用程序员
汇编与机器指令 机器执行哪些操作 系统程序员
ISA 软件可见的接口约定 系统程序员
微体系结构 流水线、数据通路怎么实现 硬件设计者

四、跨章指路

  1. 第 2 章讨论机器如何编码和运算数据,第 3 章讨论指令如何表示操作、操作数与控制流。两章共同说明 ISA 的软件可见约定。
  2. 数据通路怎样实现这些指令,见第 4 章。
  3. 存储与 I/O 两个子系统的组织分别见第 5、6 章;CPU 时间公式贯穿全书,后面每章的性能计算都以它为骨架。