计算机组成原理 · 2027 考研计算机 408

第 1 章 计算机系统概述

目标院校:四川大学 / 电子科技大学 | 建议用时:概念 2 小时 + 例题练习 2 小时

本章地位:组成原理的开篇,直接考分以概念选择题为主(约 2~4 分),但性能指标计算是全卷必考的送分点——主频、CPI、MIPS、CPU 执行时间的「三公式互推」几乎每隔一两年就出一道小计算。真题最爱考三类:① 层次结构与透明性(最易错的概念题);② 冯·诺依曼机的特点辨析(主机、CPU 的范围界定);③ 性能指标计算与比较。本章把这三件事一次讲透,所有计算都代入具体数值逐步演算。

1.1 计算机系统层次结构

定义计算机系统 = 硬件 + 软件。硬件是看得见摸得着的物理装置(芯片、总线、存储器、外设)的总称;软件是程序、数据及文档的集合。软件又分两类:
  1. 系统软件:管理整个计算机系统、贴近硬件的软件——操作系统、语言处理程序(编译 / 汇编 / 解释)、数据库管理系统、标准库程序;
  2. 应用软件:为解决用户的特定问题而编制——购物 App、办公软件、自己写的考研刷题程序。
软硬件逻辑等价从原理上讲,任何一个操作既可以由硬件实现,也可以由软件实现,二者在逻辑功能上等价,只是速度与成本不同:硬件实现快、贵、不灵活;软件实现慢、廉价、易修改。例如乘法运算,早期机器用软件子程序模拟,现代 CPU 直接设乘法部件。固件是介于两者之间的形态——把软件(微程序)固化在 ROM 中实现,兼具硬件的速度与软件的灵活。
易错① 编译程序、汇编程序、解释程序、数据库管理系统都属系统软件,不要因「微软 Access 像应用」就把 DBMS 判成应用软件;
② 软件与硬件在逻辑功能上等价,不等于「物理上相同」——判断题中「软硬件完全相同」「可以互相替换所以性能一样」都是错的;
③ 没有配置任何软件的计算机称为裸机,裸机之上第一层软件是操作系统。
练习 1

判断下列说法的正误:(1) 数据库管理系统属于应用软件;(2) 编译程序属于系统软件;(3) 固件就是硬件,与软件无关。

查看答案

(1) 错:DBMS 管理整个系统的共享数据资源,贴近硬件层,属系统软件;用 DBMS 开发出的「学生成绩管理系统」才是应用软件。

(2) 对:语言处理程序(编译 / 汇编 / 解释)是典型的系统软件。

(3) 错:固件是固化在 ROM 中的微程序,本质是「装进硬件外壳的软件」,是软硬件逻辑等价的桥梁形态。

1.1.1 高级语言如何变成机器语言:编译与解释

翻译方式高级语言源程序必须翻译成机器语言才能被执行,翻译方式分两类:编译——先将整个源程序一次性翻译成目标程序,再执行目标程序;解释——边翻译边执行,逐句翻译、翻译一句执行一句,不生成目标程序。
对比项编译方式解释方式
翻译单位整个源程序一次性翻译逐句翻译、译一句执行一句
是否生成目标程序生成完整目标程序,可反复运行不生成目标程序
执行速度快(翻译一次即可反复执行)慢(每次运行都要重新翻译)
灵活性与可移植性换平台须重新编译便于移植与调试
代表语言C、C++Python;Java 先编译为字节码,再由 JVM 解释执行
一句话记忆C 语言「先翻译后执行」走编译;Java「先编译成字节码(.class),再由虚拟机解释」两者结合;Python、JavaScript 边译边执行属解释。判题关键词:生成 / 不生成目标程序、执行快慢、跨平台。
例 1 高频考点 编译与解释辨析

下列关于编译与解释的叙述中,错误的是( )
A. 编译程序将高级语言源程序翻译为目标程序 B. 解释程序不生成目标程序 C. Java 程序先被编译为字节码,再由虚拟机解释执行 D. 同一程序解释方式的执行速度通常快于编译方式

查看解答

D。逐项分析:

A 对:编译的核心特征就是产出完整的目标程序;B 对:解释程序逐句「翻译 + 执行」,不留下目标程序;C 对:Java 是「编译 + 解释」结合的典型。

D 错:解释方式每次运行都要重新逐句翻译,开销重复发生,通常慢于编译方式——「解释快于编译」是反话,命题人最爱这么设错。

1.1.2 五级层次结构与透明性

层次结构(自上而下)从程序设计者角度看,计算机系统是一个多层结构:
  1. 第 5 级·高级语言机器——用编译 / 解释程序支撑,面向用户;
  2. 第 4 级·汇编语言机器——用汇编程序支撑;
  3. 第 3 级·操作系统机器——用广义指令(系统调用)支撑;
  4. 第 2 级·传统机器——机器语言指令集,硬件直接实现;
  5. 第 1 级·微程序机器——由微指令解释机器指令,硬件实现。
下两层(微程序机器、传统机器)由硬件 / 固件实现,称物理机;上三层由软件实现,称虚拟机。软硬件的分界线并不固定——逻辑等价原理允许把功能在层次间上下移。
透明性在某一层观察者看来「不存在」、其无法感知也不必知道的事物,称为对该层透明(transparent)。
· 对微程序设计师:必须看清传统机器的一切,指令系统对它不透明;
· 对机器语言(汇编)程序员:微程序、数据通路、时序电路、运算器内部结构——透明;通用寄存器、程序状态字 PSW、指令系统——不透明(他要用指令直接操作它们);
· 对高级语言程序员:除上述全部外,寄存器、中断、机器字长细节、I/O 接口——统统透明(C = a + b 根本不让他关心用哪个寄存器)。
一句话记忆「透明 = 看不见」。层次越高,透明的越多;判断题第一步先问「对谁透明」——参照物一换,答案立刻翻转。
易错① 透明 ≠ 不存在:微程序对汇编程序员透明,但它实实在在在机器里运行;
② 「对某层透明」说的是该层程序员观察不到,不是「机器里没有」;
③ 常考反问:指令系统对微程序设计师透明吗?——不透明,微程序的任务就是解释每一条机器指令。
例 2 高频考点 透明性判别

对汇编语言程序员透明的是( )
A. 程序状态字寄存器 PSW B. 通用寄存器组 C. 微程序控制器 D. 变址寄存器

查看解答

C。逐项分析:

A 不透明:PSW 中的条件码(进位、溢出、零标志)是汇编转移指令 JC / JZ 的依据,汇编程序员必须能感知;

B 不透明:MOV AX, BX 直接使用通用寄存器,程序员可见;D 同理,变址寻址要用变址寄存器,可见;

C 透明:微程序藏在第 1 级,机器指令如何被微指令解释,汇编程序员既看不见也无法干预。

套路总结:凡是「能用指令直接点名操作」的(寄存器、PSW、寻址方式)都不透明;凡是「机器自己悄悄干」的(微程序、数据通路、时序、Cache 对汇编层以下)都透明。

1.2 冯·诺依曼结构与工作原理 高频考点

1.2.1 存储程序思想与五大部件

存储程序将程序(指令序列)和数据事先以二进制形式存入主存储器,机器启动后按地址自动、连续地取出指令并执行——这是冯·诺依曼体系最根本的特征,机器因此才能「自动地」工作。1945 年冯·诺依曼提出该思想,1946 年的 ENIAC 是首台通用电子计算机(早期靠人工插线编排程序,尚未完全体现存储程序)。
冯·诺依曼机的组成与特点硬件由五大部件组成:运算器、控制器、存储器、输入设备、输出设备。核心特点:
  1. 由上述五大部件组成,以运算器为中心(输入输出经运算器完成,现已成为性能瓶颈);
  2. 指令和数据以同等地位存放于存储器内,均可按地址访问;
  3. 指令和数据均用二进制表示;
  4. 指令由操作码(干什么)和地址码(对谁干)组成;
  5. 指令在存储器中按顺序存放,通常顺序执行,特定条件下根据运算结果改变执行顺序(转移指令);
  6. 早期机器数值用定点表示(浮点机后出现)。
控制器(指挥) 输入设备 存储器 运算器(加工数据) 输出设备 指令 + 数据同等存放 数据 数据流 指令流 控制命令 指令流:存储器流向控制器的指令序列 | 数据流:源自存储器、流经运算器、流回存储器的数据序列 CPU = 运算器 + 控制器  主机 = CPU + 主存 (输入 / 输出设备与外存均属外围设备) 实线 = 数据流(灰) 虚线 = 指令流与控制命令(红,由控制器发出)
图 1-1 冯·诺依曼结构框图:以运算器为中心的五大部件——控制器发命令(红虚线),指令流进控制器,数据流过运算器
现代机器的两处改进① 瓶颈在「以运算器为中心」——I/O 都挤过运算器。现代机器改为以存储器为中心(I/O 与主存直接交换,运算器专心算);② 各部件挂上总线(分数据、地址、控制三类信号线),结构规整、易于扩展。冯·诺依曼机的「存储程序」本质始终未变。
易错(高频)① 主机 = CPU + 主存,外存(硬盘、固态盘)不算主机,它与输入输出设备同属「外围设备」;
② CPU = 运算器 + 控制器,不含存储器;
③ 原始冯·诺依曼机以运算器为中心,现代机器以存储器为中心——判断题把两个时代说反是常见陷阱;
④ 指令和数据「同等地位存放」且形式都是二进制,机器靠取值的阶段(指令周期)区分它们,而不是靠编码长相(见例 3)。
例 3 真题风格 指令与数据如何区分

冯·诺依曼计算机中,指令和数据均以二进制形式存放在存储器中,CPU 区分它们的依据是( )
A. 指令操作码的译码结果 B. 指令周期的不同阶段 C. 存放它们的存储单元类型 D. 二进制位串的长短

查看解答

B。逐项分析:

A 错:译码发生在取出之后,且取出的若本身是数据,谈不上译码——因果倒置;

B 对:取指阶段从存储器取出的二进制位串被当作指令送往 IR(指令寄存器);执行阶段取出的才被当作数据送运算器。同一串 0/1,阶段不同身份不同;

C 错:指令和数据混存于同一主存,单元无类型之分;D 错:两者位数可以完全相同。

练习 2 易错

判断下列说法的正误:(1) 主机由 CPU、主存和磁盘构成;(2) 冯·诺依曼机以存储器为中心;(3) 存储程序是指把指令和数据预先存入存储器,机器按地址自动逐条取出并执行。

查看答案

(1) 错:主机 = CPU + 主存;磁盘是外存,属外围设备,不在主机之列。

(2) 错:原始冯·诺依曼机以运算器为中心;现代机器才改为以存储器为中心。题目若限定「现代机器」则对,默认语境(冯·诺依曼机)则错。

(3) 对:这正是「存储程序」的标准表述——先存后取、按地址访问、自动连续执行,缺一不可。

1.2.2 工作过程:取指 → 分析 → 执行

指令执行循环机器通电后周而复始地执行三步:取指令(按 PC 内容经 MAR 访存,取出指令送 IR,PC 自动加 1 形成下一条指令地址)→ 分析指令(控制器对 IR 中的操作码译码,识别要做什么)→ 执行指令(发微操作命令,完成运算或访存)——直到遇到停机指令。程序执行的自动性、连续性正来源于此循环。
取指令PC→MAR→主存→MDR→IR 分析指令操作码译码识别操作类型 执行指令发微操作命令完成运算/访存 PC 已自动 +1,转取下一条指令(遇停机指令则结束)
图 1-2 指令执行循环:取指令 → 分析(译码)→ 执行,循环往复直至停机——「存储程序」得以自动连续执行的具体机制
例 4 冯·诺依曼机特点辨析

下列关于冯·诺依曼计算机的叙述中,错误的是( )
A. 指令和数据以同等地位存放于存储器,均可按地址访问 B. 指令由操作码和地址码组成 C. 指令只能按存放顺序执行,无法改变执行顺序 D. 机器以运算器为中心,输入输出设备与存储器间的数据传送大多经运算器

查看解答

C。逐项分析:

A 对、B 对:都是冯·诺依曼机的标准特点;D 对:这正是「以运算器为中心」的含义,也是现代机器改用「存储器为中心 + 总线」的原因。

C 错:指令通常顺序存放、顺序执行,但允许根据运算结果改变执行顺序(转移 / 跳转指令)——「只能顺序执行」把话说过头了;程序能有分支、循环、函数调用正依赖这一点。

1.3 计算机性能指标 必考计算

1.3.1 机器字长、数据通路宽度与主存容量

三个「宽度」
  1. 机器字长:CPU 一次能处理的二进制数据的位数,通常与 CPU 内部通用寄存器的位数一致。字长越长,一次参加运算的数越多,精度越高、速度越快;
  2. 数据通路宽度:数据总线一次可并行传送的二进制位数,决定部件间一次「搬运」多少位;
  3. 存储字长:一个存储单元中存放的二进制代码的位数(由 MDR 的位数体现)。
三者可以互不相等:如内部字长 32 位、数据总线 64 位、存储字长 16 位的机器完全合法。
MAR / MDR 定容量主存由许多存储单元组成,每个单元一个地址。MAR(存储器地址寄存器)的位数反映可寻址的存储单元个数:\(n\) 位 MAR 对应 \[ N = 2^{n} \ \text{个单元} \] MDR(存储器数据寄存器)的位数 = 存储字长。于是主存容量 = 存储单元个数 × 存储字长。
例 5 方法 由 MAR / MDR 求主存容量

某计算机主存 MAR 为 16 位,MDR 为 32 位,求主存的存储单元个数与总容量。

查看解答

第一步,存储单元个数由 MAR 位数决定:

\[ N = 2^{16} = 65536\ \text{个单元}\quad(\checkmark:\ 2^{10}=1024,\ 2^{16}=1024\times64=65536) \]

第二步,存储字长由 MDR 位数决定:32 bit = 4 B。

第三步,总容量:

\[ 65536\times4\ \text{B} = 262144\ \text{B} = 256\ \text{KB}\quad(\checkmark:\ 262144/1024=256) \]

套路总结:MAR 管「有多少个房间」,MDR 管「每个房间多大」,二者相乘即容量;只给 MAR 位数时答案只能说单元数,不能默认字节编址。

易错① 机器字长 ≠ 数据通路宽度:前者是 CPU「算」的位数,后者是总线「搬」的位数;
② 机器字长 ≠ 存储字长:运算器一次算 32 位,不要求一个存储单元恰好 32 位;
③ 单元个数只看 MAR,与 MDR 无关——「MDR 16 位所以有 \(2^{16}\) 个单元」是典型错误。

1.3.2 运算速度:主频、CPI、MIPS 与 CPU 执行时间

基本指标
  1. 主频 \(f\):CPU 时钟脉冲的频率;时钟周期 \(= 1/f\),是 CPU 操作的最小时间单位(主频 2 GHz 对应 0.5 ns);
  2. CPI(Cycle Per Instruction):执行一条指令平均需要的时钟周期数;
  3. MIPS:每秒执行多少百万条指令;MFLOPS:每秒执行多少百万次浮点操作——只统计浮点运算,衡量科学计算能力;
  4. CPU 执行时间:一段程序真正占用的 CPU 时间,是衡量性能最可靠的尺度。
三公式互推(核心)设程序含 \(I\) 条指令,主频为 \(f\),则 \[ T_{\text{CPU}}=\frac{I\times\text{CPI}}{f}\qquad \text{MIPS}=\frac{I}{T_{\text{CPU}}\times10^{6}}=\frac{f}{\text{CPI}\times10^{6}}\qquad T_{\text{CPU}}=\frac{I}{\text{MIPS}\times10^{6}} \] 总时钟周期数 \(=I\times\text{CPI}\);已知任意两个量即可求第三个——选择题常给两个求第三个,先算总周期数是最稳的入手点。
例 6 必考题型 求执行时间与 MIPS

某 CPU 主频 2 GHz,运行一个含 \(10^{9}\) 条指令的程序,平均 CPI = 2。求时钟周期、程序的总时钟周期数、CPU 执行时间与 MIPS。

查看解答

① 时钟周期:

\[ T_{\text{clk}}=\frac{1}{f}=\frac{1}{2\times10^{9}}\ \text{s}=0.5\ \text{ns}\quad(\checkmark) \]

② 总时钟周期数:

\[ I\times\text{CPI}=10^{9}\times2=2\times10^{9}\ \text{个周期}\quad(\checkmark) \]

③ CPU 执行时间:

\[ T_{\text{CPU}}=\frac{2\times10^{9}}{2\times10^{9}}=1\ \text{s}\quad(\checkmark) \]

④ MIPS(每秒百万条指令):1 s 执行了 \(10^{9}\) 条,即 \(10^{9}/10^{6}=1000\) 百万条:

\[ \text{MIPS}=\frac{10^{9}}{1\times10^{6}}=1000\quad(\checkmark) \]

验算用第二公式:MIPS = f/(CPI×10⁶) = 2×10⁹/(2×10⁶) = 1000 ✓,两公式结果一致。

例 7 真题风格 主频高 ≠ 速度快

同一程序(\(10^{9}\) 条指令)分别在 A、B 两台机器上运行:A 机主频 2 GHz、CPI = 2;B 机主频 3 GHz、CPI = 4。哪台更快?

查看解答

A 机:

\[ T_{\text{A}}=\frac{10^{9}\times2}{2\times10^{9}}=1\ \text{s}\quad(\checkmark) \]

B 机:

\[ T_{\text{B}}=\frac{10^{9}\times4}{3\times10^{9}}\approx1.33\ \text{s}\quad(\checkmark:\ 4/3=1.333) \]

B 机主频高 50%,执行时间反而多约 33%——主频只是分母,CPI 在分子上等着。评价机器必须「主频 × CPI(× 指令数)」一起看。

练习 3

某 CPU 主频 1 GHz,程序含 \(2\times10^{8}\) 条浮点运算指令,每条浮点指令 CPI = 4,其余开销忽略。求程序执行时间与 MFLOPS。

查看答案

总周期数:\(2\times10^{8}\times4=8\times10^{8}\);执行时间:

\[ T=\frac{8\times10^{8}}{1\times10^{9}}=0.8\ \text{s}\quad(\checkmark) \]

每秒完成浮点操作 \(2\times10^{8}/0.8=2.5\times10^{8}\) 次,即 \(250\) 百万次:

\[ \text{MFLOPS}=\frac{2\times10^{8}}{0.8\times10^{6}}=250\quad(\checkmark) \]
练习 4 易错

判断:(1) 机器字长一定等于数据通路宽度;(2) 主频相同的两台机器运行同一程序必然一样快;(3) MIPS 大的机器对任何程序都快。

查看答案

(1) 错:机器字长是 CPU 一次能处理的位数,数据通路宽度是总线一次能传送的位数,二者可以不同。

(2) 错:由 \(T=I\times\text{CPI}/f\),主频相同还要 CPI 相同、指令数相同才同速(例 7 已给反例思想)。

(3) 错:MIPS 依赖指令集——精简指令集的 MIPS 偏高不代表单条指令干得多;跨指令系统比较应用基准程序测总执行时间。

科学地比性能基准程序(benchmark,如 SPEC 系列):一组公认的标准程序集,用其在不同机器上的总执行时间做相对比较,比单一 MIPS 可靠。另两个整体指标:吞吐率——单位时间内系统完成的任务量(面向「量」);响应时间——从提交请求到收到响应的时间(面向「快」)。提高主频、加宽流水线改善的是响应时间;多道程序、多核改善吞吐率更明显。
易错① 「主频高 = 性能好」不成立(例 7);「MIPS 高 = 万能快」也不成立(指令功能不对等);
② CPI 是平均概念:不同指令周期数不同,程序级 CPI 按各类指令的出现频度加权平均;
③ MFLOPS 只计浮点操作,不能反映整数 / 分支密集程序的性能;
④ 时钟周期与主频互为倒数,单位换算失误是计算题最大失分点:1 GHz = \(10^{9}\) Hz,1 ns = \(10^{-9}\) s。

1.4 发展历程与分类

器件换代是划分计算机「代」的依据,一代一句话记住即可:第一代电子管(体积大、机器语言编程)→ 第二代晶体管(高级语言、监控程序出现)→ 第三代中小规模集成电路(操作系统成形)→ 第四代大规模 / 超大规模集成电路(微处理器 PC 诞生,至今)。

Flynn 分类(按指令流 / 数据流)指令流是机器执行的指令序列,数据流是指令流调用的数据序列。按二者是单 / 多,分四类:
  1. SISD(单指令流单数据流):传统串行单处理器;
  2. SIMD(单指令流多数据流):一条指令同时处理一批数据——向量处理机、阵列处理器属此类(也是 GPU / 多媒体指令 MMX/SSE 的思想源头);
  3. MISD(多指令流单数据流):仅有定义,无实际机型;
  4. MIMD(多指令流多数据流):多核处理器、多机系统——各核执行各自的程序流。
一句话补充摩尔定律:集成电路芯片上集成的晶体管数目约每 18~24 个月翻一番(是经验规律,非物理定律)。多核:一个芯片集成多个核心提升并行吞吐;超线程:一个物理核心伪装成两个逻辑核心,填充流水线空隙——两者都不违背「存储程序」框架。

1.5 章末自测 真题风格

限时 40 分钟,先做后看答案。难度:★★ 基础 / ★★★ 强化 / ★★★★ 冲刺。计算题全部要求代入具体数值逐步演算并用第二种公式验算。

自测 1(选择 · ★★)

下列关于翻译程序的叙述中,正确的是( )
A. 编译程序和解释程序都生成目标程序 B. 解释程序边翻译边执行,不生成目标程序 C. 汇编程序将高级语言翻译成机器语言 D. C 语言程序在运行过程中被逐句解释

查看答案

B。A 错:解释不生成目标程序;C 错:汇编程序翻译的是汇编语言源程序;D 错:C 走编译路线,Python 才是逐句解释。

自测 2(选择 · ★★★ 高频考点)

下列各组中,对机器语言程序员全部透明的是( )
A. 指令系统、通用寄存器 B. 微程序、数据通路、时序产生逻辑 C. 程序状态字 PSW、变址寄存器 D. 中断向量、转移指令

查看答案

B。机器语言程序员能用指令点名的都不透明:指令系统(A)、PSW 与变址寄存器(C)、转移指令与中断(D)皆可见;只有藏在传统机器之下的微程序、数据通路、时序这些「硬件自己悄悄干」的事对他透明。

自测 3(选择 · ★★★)

下列关于冯·诺依曼计算机的叙述中,错误的是( )
A. 指令和数据同等存于存储器,按地址访问 B. 指令由操作码和地址码组成 C. 原始冯·诺依曼机以存储器为中心 D. 指令和数据都用二进制表示

查看答案

C。原始冯·诺依曼机以运算器为中心,I/O 经运算器进行;「以存储器为中心」是现代机器的改进。A、B、D 均为标准特点。

自测 4(选择 · ★★★)

取指令阶段结束时,取出的指令的二进制代码存放于( )
A. 程序计数器 PC B. 存储器地址寄存器 MAR C. 存储器数据寄存器 MDR D. 指令寄存器 IR

查看答案

D。取指路径:PC 给地址 → MAR → 主存读出 → MDR → 送入 IR 保存等待译码;PC 只存下一条指令的地址,MAR / MDR 是访存的中转寄存器。MDR 只是途中一站,阶段结束时指令已在 IR。

自测 5(选择 · ★★★)

按 Flynn 分类法,向量处理机属于( )
A. SISD B. SIMD C. MISD D. MIMD

查看答案

B。向量机用一条向量指令同时对一批数据(多数据流)并行加工,属 SIMD;MISD 无实际机型;多核处理器才属 MIMD。

自测 6(选择 · ★★★ 计算)

某机主存 MAR 为 24 位、MDR 为 64 位,其主存容量为( )
A. 16 MB B. 64 MB C. 128 MB D. 192 MB

查看答案

C。单元数 \(2^{24}=16\text{M}\) 个(\(\checkmark\):\(2^{20}=\)1M,\(2^{24}=16\times2^{20}\));每单元 64 bit = 8 B;容量 \(=16\text{M}\times8\text{B}=128\ \text{MB}\)(\(\checkmark\))。

自测 7(填空 · ★★★ 计算)

某 CPU 主频 3 GHz,程序含 \(6\times10^{9}\) 条指令,平均 CPI = 1.5。程序执行时间为 \(\underline{\hspace{1cm}}\) s,该机 MIPS 为 \(\underline{\hspace{1cm}}\)。

查看答案

总周期数 \(=6\times10^{9}\times1.5=9\times10^{9}\);

\[ T=\frac{9\times10^{9}}{3\times10^{9}}=3\ \text{s}\quad(\checkmark) \]

\[ \text{MIPS}=\frac{6\times10^{9}}{3\times10^{6}}=2000\quad(\checkmark) \]

验算:\(\text{MIPS}=f/(\text{CPI}\times10^{6})=3\times10^{9}/(1.5\times10^{6})=2000\) ✓。

自测 8(填空 · ★★★★ 计算)

某 CPU 主频 2 GHz,运行一段含 \(4\times10^{8}\) 条指令的程序耗时 0.3 s。该程序在此机上的平均 CPI 为 \(\underline{\hspace{1cm}}\)。

查看答案

0.3 s 内共含时钟周期数:

\[ 2\times10^{9}\times0.3=6\times10^{8}\ \text{个周期}\quad(\checkmark) \]

\[ \text{CPI}=\frac{6\times10^{8}}{4\times10^{8}}=1.5\quad(\checkmark) \]

套路总结:反求 CPI / 指令数 / 主频,都是先把 \(T\times f\) 换成「总周期数」这一桥梁量,再除 / 乘已知项。

自测 9(解答 · ★★★)

甲说「主频 4 GHz 的机器一定比 3 GHz 的快」,乙说「MIPS 高的机器一定好」。请分别指出两句话的问题,并说明科学比较两台机器性能应怎么做。

查看解答

两句话的问题:

① \(T_{\text{CPU}}=I\times\text{CPI}/f\):主频只出现在分母,若高主频机器的 CPI 更大(如采用更复杂的功能划分),执行时间反而更长(本章例 7:3 GHz 机器输给 2 GHz 机器),主频高 ≠ 快;

② MIPS 依赖指令系统:RISC 机器指令功能简单、条数多,MIPS 天然偏高,但不代表每个程序都快;不同指令集的 MIPS 不可直接比较。

科学做法:选取与实际工作负载相近的基准程序(如 SPEC),在两机上运行并比较总执行时间(响应时间);面向服务场景还要结合吞吐率综合评价。

1.6 本章考点总结

考点常考题型热度核心方法
层次结构与透明性选择题★★★★ 高频先问「对谁透明」;能用指令点名的(寄存器、PSW、指令系统)不透明;硬件自己干的(微程序、数据通路、时序)透明
编译与解释选择题★★★是否生成目标程序;解释慢但易移植;Java 先编译字节码再解释
冯·诺依曼特点选择题★★★★ 高频存储程序(最根本);以运算器为中心;指令 = 操作码 + 地址码;指令 / 数据按指令周期阶段区分;顺序存放、可转移
部件归属选择题 / 判断★★★★ 易错CPU = 运算器 + 控制器;主机 = CPU + 主存;外存与 I/O 属外围设备;指令流进控制器、数据流过运算器
MAR / MDR 求容量选择 / 填空★★★★单元数 \(=2^{\text{MAR 位数}}\);存储字长 = MDR 位数;容量 = 单元数 × 存储字长
三公式计算选择 / 填空★★★★★ 必考\(T=I\times\text{CPI}/f\);MIPS \(=f/(\text{CPI}\times10^{6})\);先算总周期数 \(I\times\text{CPI}\) 作桥梁,再互换求第三量
性能比较观念解答题★★★主频高 ≠ 快(CPI 在分子);跨指令集看基准程序(SPEC)总执行时间;吞吐率对量、响应时间对快
Flynn 分类选择题★★★向量机 / 阵列机 = SIMD;多核 = MIMD;MISD 无实际机型
下一步本章过关标准:例题全部独立重做;自测 9 题中至少 7 题正确;能一口气说清「主机 / CPU / 外设」的边界、三公式互推,并解释主频高为何不一定快。然后进入 第 2 章 数据的表示和运算——进位计数制、定点浮点与运算电路,是组成原理计算题的第一主战场。