第 1 章 名词库

这一页是复习主入口。 目标是把第 1 章的名词收全,并把每个词的边界和适用范围钉死。

每条最多四行:是(定义)/不是(划掉最常见的误解)/易混(成对的对手)/范围(该结论在什么条件下才成立)。

本章的名词有一半会在后面六章原样再出现(MAR、MDR、PC、IR、CPI、体系结构/组成……),它们在这里只给定义,机制在各自的章。

建设进度:✅ *1.1 计算机发展历程 ✅ 1.2 计算机系统层次结构 ✅ 1.3 计算机的性能指标 (全章完整)


*1.1.1 计算机硬件的发展

四代计算机

  • 是:按主要逻辑器件划分——电子管 / 晶体管 / 中小规模集成电路 / 大规模、超大规模集成电路。
  • 不是:不按操作系统或语言的发展划分,那些只是伴随特征。
  • 范围:教材化分代,不是精确年代切割。

ENIAC

  • 是:1946 年,世界上第一台电子数字计算机。
  • 不是:不是存储程序计算机(用开关和插线设置程序);不是冯·诺依曼设计的,他是顾问。
  • 范围:本章最容易被设成陷阱的一条。

存储程序

  • 是:把程序像数据一样事先存入主存,机器按地址自动逐条执行。
  • 提出者:冯·诺依曼(EDVAC 方案)。
  • 易混:↔ ENIAC。存储程序在 ENIAC 之后。

摩尔定律

  • 是:集成电路上可容纳的晶体管数目约每 18 个月翻一番。
  • 不是:不是物理定律;对象不是主频、不是性能。
  • 范围:晶体管翻倍不等于程序快一倍——多出的晶体管去做了 Cache、流水线、多核,提高的是吞吐率不是延迟。

*1.1.2 计算机软件的发展

机器语言

  • 是:二进制代码,硬件可直接执行。
  • 范围:三级语言中唯一不需要翻译的;它就是 ISA 的编码。

汇编语言

  • 是:用助记符书写的语言,与机器语言基本一一对应。
  • 不是:不可跨平台移植——与 ISA 绑定。
  • 范围:汇编语法属于汇编器的约定,不属于 ISA(Intel 语法与 AT&T 语法机器码相同)。

高级语言

  • 是:C、Java 等,需编译或解释。
  • 范围:可移植性来自重新翻译,不是”到处直接跑”。

汇编程序(汇编器)

  • 是:把汇编语言翻译成机器语言的工具。
  • 不是:不是”用汇编语言写的程序”——这是中文术语的歧义,考题很爱用。
  • 归类:系统软件。

编译程序

  • 是:把高级语言一次性全部翻译成目标程序。
  • 范围:生成目标程序,可反复执行不必再译。
  • 归类:系统软件(常被误归应用软件)。

解释程序

  • 是:翻译一句执行一句,不生成完整目标程序。
  • 易混:↔ 编译程序。判据是”生不生成目标程序”。
  • 范围:慢的原因是循环体被执行 次就被翻译 次。

软硬件逻辑等价

  • 是:同一功能既可做成电路,也可写成程序。
  • 不是:性能、成本、灵活性都不等价。
  • 范围:全书第一条隐线「功能往硬件里搬」出现四次——2.2.1 运算电路、4.4 CISC、5.4.2 硬布线、7.3.3 DMA。

1.2.1 计算机系统的组成

主机

  • 是:CPU + 主存储器。
  • 不是:不含辅存(磁盘、SSD),不含任何外设。
  • 判据:CPU 能不能直接按地址访问、直接取指执行。
  • 范围:本章第一失分点。

CPU

  • 是:运算器 + 控制器。
  • 不是:不含主存。

外部设备

  • 是:输入设备 + 输出设备 + 辅助存储器。
  • 范围:辅存在第 1、7 章是外设,在第 3 章是存储器——同一东西的两个视角。

裸机

  • 是:不装任何软件的计算机。
  • 范围:说明”计算机系统 = 硬件 + 软件”里的等号不是凑数。

固件

  • 是:固化在 ROM 中的程序(如 BIOS)。
  • 不是:不是硬件,本质是软件;也不是不可修改(EEPROM / Flash 可刷)。
  • 范围:功能上是软件,形态上接近硬件;微程序控制器的控制存储器也是固件形态。

1.2.2 计算机硬件

冯·诺依曼结构

  • 是:五大部件 + 指令数据同存 + 二进制 + 指令由操作码和地址码组成 + 存储程序 + 以运算器为中心。
  • 范围:最后一条已过时,现代计算机以存储器为中心——其直接产物就是 7.3.3 的 DMA。

存储元 / 存储单元 / 存储体

  • 是:存 1 位 / 有一个地址 / 全部单元的集合。
  • 范围:三层包含关系,不能混用。

MAR(地址寄存器)

  • 是:存放本次访问的主存地址。
  • 位数:存储单元个数 地址线根数。
  • 范围:逻辑属主存,物理在 CPU 内;考的是位数不是位置。

MDR(数据寄存器)

  • 是:存放本次读出或写入的数据。
  • 位数: 存储字长 数据线根数。

主存容量

  • 公式:位数位数。

ACC / MQ / X

  • 是:累加器 / 乘商寄存器 / 操作数寄存器。
  • 范围:乘法时 ACC 存积高位、MQ 存乘数→积低位;除法时 ACC 存被除数→余数、MQ 存商。

PSW(程序状态字寄存器)

  • 是:存放 OF、SF、ZF、CF 等标志位。
  • 范围:跨章出现三次——2.2.3 判溢出、4.3.2 条件转移、5.5.3 中断隐指令保存它。

PC(程序计数器)

  • 是:存放下一条指令的地址,具有自动加 1 功能。
  • 位数:与 MAR 相同(由存储单元个数决定)。
  • 范围:取指开始时是本条地址,取指后 +1 变成下一条——两种说法都对,看时刻。“自动加 1”是机器能自动运行的全部来源。

IR(指令寄存器)

  • 是:存放当前正在执行的指令。
  • 位数:指令字长(不是存储字长)。
  • 不是:不存指令地址。

以存储器为中心

  • 是:I/O 数据可直接与主存交换,不必经运算器中转。
  • 范围:其实现就是 DMA(7.3.3)。

1.2.3 计算机软件

源程序 / 目标程序

  • 是:用汇编或高级语言写的 / 翻译成机器语言后的。
  • 不是:“源程序一定是高级语言写的”是错的。

系统软件

  • 是:管理和维护计算机本身的软件——OS、编译/汇编/解释程序、DBMS、网络软件、诊断程序。
  • 易混:用 DBMS 开发出来的图书管理系统是应用软件。
  • 判据:服务机器还是服务业务。

1.2.4 计算机系统的层次结构

多级层次结构 M0~M4

  • 是:微程序机器 / 传统机器 / 操作系统机器 / 汇编语言机器 / 高级语言机器。
  • 范围:M0、M1 是实际机器(硬件或固件实现);M2~M4 是虚拟机器(软件实现)。

虚拟机器

  • 是:由软件实现的层,其语言必须先被翻译。
  • 不是:与 VMware / KVM 那种虚拟机无关。

微程序机器级 M0

  • 是:用微指令编程的一级。
  • 不是:不是所有计算机都有——硬布线控制器没有可辨认的微程序层。

计算机体系结构

  • 是:机器语言程序员可见的系统属性——指令系统、数据类型、寻址方式、可见寄存器、I/O 机制、中断机构、机器字长。
  • 判据:看得见 = 体系结构。

计算机组成

  • 是:体系结构的实现方式,对程序员透明——数据通路宽度、控制信号、流水线级数、Cache 组织、乘法电路、硬布线还是微程序。
  • 范围:同一 ISA 可有多种组成,性能可以差很多。

透明

  • 是:某某看不见它、不需要知道它。
  • 不是:不是”清晰可见”——这是本章最反直觉的一个词。
  • 范围:必须说明”对谁”。Cache 对应用程序员透明;PC 对汇编程序员不透明;虚拟存储器对应用程序员透明、对系统程序员不透明。

ISA / ABI / API

  • 是:软件与硬件的契约 / 二进制与库和 OS 的契约 / 源代码与库的契约。
  • 范围:同一 CPU 上 Windows 与 Linux ISA 相同、ABI 不同——所以 .exe 跑不了,不是指令不认识,是调用约定对不上。

1.2.5 计算机系统的工作原理

从源程序到可执行文件

  • 是:预处理 → 编译 → 汇编 → 链接 → 装入。
  • 范围:链接归工具链,装入归操作系统——这是 CO 与 OS 的分界;ISA 在编译这一步第一次进场,汇编这一步只是查编码表。

链接

  • 是:符号解析 + 重定位。
  • 不是:不由操作系统完成。
  • 范围:链接器基本不看指令语义。

取指令

  • 是:;;;。
  • 范围:对所有指令都相同——这正是流水线能成立的前提。

PC+1 中的”1”

  • 是:一条指令的长度,不一定是 1 个字节。
  • 范围:按字节编址、指令 4 字节时实际是 PC+4。

指令的三阶段

  • 是:取指 → 分析(译码)→ 执行。
  • 范围:译码看的是操作码,地址码在取操作数时才用。

1.3.1 计算机的主要性能指标

机器字长

  • 是:CPU 一次能处理的二进制位数,通常等于通用寄存器位数。
  • 易混:↔ 存储字长(MDR 位数)↔ 指令字长(IR 位数)。三者互相独立。
  • 归类:体系结构(程序员可见)。

数据通路带宽

  • 是:数据总线一次能并行传送的位数。
  • 范围:可以小于机器字长。

主频 / 时钟周期

  • 是:每秒时钟周期数 / 一个节拍的长度,。
  • 范围:主频高不等于性能好——它只是 三个因子之一。

CPI

  • 是:执行一条指令平均所需的时钟周期数。
  • 范围:多类指令必须按动态条数加权,不能算术平均。

IPC

  • 是:每个时钟周期完成的指令数,。
  • 范围:超标量下可以大于 1。

IC(指令条数)

  • 是:程序运行时实际执行的机器指令条数。
  • 不是:不是程序里写了几条——循环体执行一万遍就算一万条。

CPU 执行时间

  • 公式:。
  • 范围:三个因子由不同的东西决定,且优化往往此消彼长——这是全书的核心张力。

MIPS

  • 是:每秒执行多少百万条指令,。
  • 不是:不能比较不同 ISA 的机器;MIPS 高不等于程序快。

FLOPS

  • 是:每秒浮点运算次数。
  • 范围:M/G/T/P/E 按十进制()解释,而容量单位按二进制()——这条不对齐是计算题失分点。

吞吐量 / 响应时间

  • 是:单位时间完成的任务数 / 一个任务从提交到完成的时间。
  • 范围:提高并行度通常只提高吞吐量,不缩短单次延迟。

基准程序(Benchmark)

  • 是:用一组有代表性的真实程序测性能。
  • 范围:只对测试覆盖的负载负责;归一化性能比用几何平均。

阿姆达尔定律

  • 公式:,上限 。
  • 范围: 是在原执行时间中的占比;多核情形取 。

1.3.2 几个专业术语

系列机

  • 是:体系结构相同、组成和实现不同的一系列计算机(如 x86 系列)。
  • 范围:它存在的意义是保护软件投资;正是 1.2.4 那条判据的直接后果。

兼容

  • 是:不同型号之间硬件、软件的通用性。
  • 范围:只有”新机器能跑旧程序”是必须做到的;旧机器跑新程序会触发非法指令异常。
  • 注意:“向上/向下/向前/向后”四个词在中文资料里用法冲突,考场上读题干的定义,不要背词。

软件可移植性

  • 是:同一软件不加修改或稍加修改就能在不同硬件上运行。
  • 范围:三个层次——系列机(机器码通用)/重新编译(源码通用)/虚拟机(中间码通用)。高级语言的可移植性是第二种。

高频范围限定清单

每一条都是”说法 → 它在什么条件下才成立 / 为什么错”。考前扫这一张表。

常见说法范围限定
”主机 = CPU + 主存 + 硬盘”错。硬盘是外设
”CPU = 运算器 + 控制器 + 主存”错。主存不在 CPU 内
”ENIAC 采用存储程序方式”错。用插线设置程序
”ENIAC 由冯·诺依曼设计”错。他是顾问
”摩尔定律保证性能每 18 个月翻倍”错。对象是晶体管数
”摩尔定律是物理定律”错。是经验观察
”代际按操作系统的发展划分”错。按主要逻辑器件
”第三代用大规模集成电路”错。是中小规模
”机器语言程序需要编译才能执行”错。直接执行
”汇编语言可以跨平台移植”错。与 ISA 绑定
”汇编程序是用汇编语言写的程序”错。指的是汇编器这个工具
”解释程序会生成目标程序”错。不生成,这正是判据
”解释执行比编译执行快”错。循环体被反复翻译
”编译程序属于应用软件”错。系统软件
”源程序一定是高级语言写的”错。汇编写的也是源程序
”固件是硬件”错。本质是软件
”固件不可修改”错。EEPROM / Flash 可刷
”软硬件功能等价所以性能也等价”错。只是功能逻辑等价
”指令和数据地位同等所以 CPU 分不清”错。靠取指周期/取数周期区分
”现代计算机以运算器为中心”错。以存储器为中心
”MAR、MDR 属于 CPU”不准确。逻辑属主存、物理在 CPU;考位数不考位置
”IR 的位数等于存储字长”错。等于指令字长
”PC 的位数等于指令字长”错。等于 MAR 位数
”存储单元和存储元是一回事”错。存储元 1 位,存储单元有一个地址
”运算器只有 ALU”错。还有 ACC、MQ、X、PSW
”控制器负责搬运数据”错。只发控制信号
”所有计算机都有 M0 微程序机器级”错。硬布线控制器没有
”M2~M4 是实际机器”错。都是虚拟机器
”虚拟机器就是 VMware 那种”错。指由软件实现的层
”Cache 容量属于体系结构”错。属于组成,对程序员透明
”指令系统属于计算机组成”错。属于体系结构
”透明就是清楚可见”错。恰恰相反:看不见
”机器字长属于组成”错。体系结构
”同一 ISA 的两台机器性能相同”错。组成不同,性能可差很多
”同一 ISA 的二进制一定能互相运行”错。还要 ABI 相同
”存储程序意味着永远顺序执行”错。转移、调用、中断都改写 PC
”PC+1 中的 1 表示 1 个字节”错。表示一条指令的长度
”取指令阶段各条指令不同”错。完全相同,这是流水线的前提
”编译之后就可以执行了”错。还要汇编、链接、装入
”链接由操作系统完成”错。链接归工具链,装入才归 OS
”预处理阶段会用到 ISA”错。纯文本替换
”一条指令的执行必须访存”错。寄存器型指令执行阶段不访存
”主频越高性能越好”错。还要看 IC 和 CPI
”机器字长 = 存储字长”错。三个字长互相独立
”IC 是程序里写的指令条数”错。是动态执行条数
”各类指令的 CPI 直接取平均”错。必须按动态条数加权
”MIPS 可比较不同 ISA 的机器”错。一条指令做的事不同
”峰值 FLOPS 代表实际性能”错。是理论上限
”CPU 时间 = 墙钟时间”错。墙钟还含 I/O 与调度等待
”局部加速 k 倍整体就快 k 倍”错。阿姆达尔
”IPC 不可能大于 1”错。超标量可以
”系列机的组成必须相同”错。体系结构相同即可
”旧机器能运行新机器的程序”错。会触发非法指令异常
”高级语言程序的机器码可移植”错。源码可移植,机器码要重新生成

链接