计算机组成原理
作者:姚博文 · 2026-08-15
计算机组成原理学习笔记(考研复习大纲)
1\. 计算机系统概述
1.1 计算机的发展与分类
· **电子管时代**(1946—1957):第一台电子计算机 ENIAC。
· **晶体管时代**(1958—1964)。
· **中小规模集成电路时代**(1965—1971)。
· **大规模/超大规模集成电路时代**(1972 至今)。
· **分类**:按用途分为通用计算机与专用计算机;按性能分为巨型机、大型机、小型机、微型机、嵌入式计算机等。
1.2 计算机的组成
· **冯·诺依曼结构**:以**存储程序**和**程序控制**为核心思想。
· 计算机由**运算器、控制器、存储器、输入设备、输出设备**五大部件组成。
· 指令和数据以**二进制**形式存放在存储器中。
· 指令由**操作码和地址码**组成,按地址访问。
· **现代计算机**:以**存储器为中心**,CPU 内部细分为**运算器(ALU)**和**控制器(CU)**。
**易错点**:冯·诺依曼结构是**存储程序**思想,不是"程序存储"(两者含义不同,前者强调"程序事先存入存储器,运行时逐条取出执行")。
1.3 计算机的性能指标
· **主频**:CPU 时钟频率,单位 GHz。
· **CPU 时钟周期**:主频的倒数,是 CPU 最基本的时间单位。
· **CPI**(Cycles Per Instruction):执行一条指令所需的时钟周期数。
· **MIPS**(Million Instructions Per Second):每秒执行百万条指令。
· **FLOPS**:每秒浮点运算次数。
· **字长**:CPU 一次能处理的二进制位数。
· **存储容量**:$2^{地址线位数} \times 存储字长$。
**易错点**:CPU 执行时间 = 指令条数 × CPI × 时钟周期 = 指令条数 × CPI ÷ 主频。**MIPS 与主频不能直接等同**,还与 CPI 有关。
· * *
2\. 数据的表示与运算
2.1 数制与编码
· **进制转换**:十进制 ↔ 二进制 ↔ 八进制 ↔ 十六进制。
· **定点数**:小数点位置固定。
· 定点整数、定点小数。
· **浮点数**:$N = M \times r^E$(尾数 $M$、基数 $r$、阶码 $E$),类似科学计数法。
2.2 原码、反码、补码、移码
| 码制 | 正数 | 负数 | 补码转换 |
| --- | --- | --- | --- |
| 原码 | 符号位 0 + 数值 | 符号位 1 + 数值 | — |
| 反码 | 同原码 | 原码按位取反 | — |
| 补码 | 同原码 | 反码 + 1 | 正数不变,负数"取反加一" |
| 移码 | 补码符号位取反 | 补码符号位取反 | 常用于浮点数阶码 |
**易错点**:**补码的补码是原码**;补码能多表示一个负数(如 8 位补码范围 $-128 \sim +127$)。**0 的补码唯一**,0 的原码和反码各有两个。
2.2.1 补码的负数形式
负数补码的求法(两种等价途径):
· **方法一(取反加一)**:先写该数绝对值的原码,**按位取反**得到反码,再**末位加 1**。
· **方法二(自右向左找第一个 1)**:符号位写 1,数值位从右往左**遇到第一个 1 之前(含该 1)保持不变**,其余位取反。
::: example 例题
以 $n=8$ 位为例,求 $-13$ 的补码:
· 绝对值的原码:$00001101$
· 按位取反得反码:$11110010$
· 末位加 1 得补码:$11110011$
即 $[-13]_{补} = 11110011$(二进制),等价于 $-128 + 64 + 32 + 4 + 1 = -13$。
:::
**易错点**:负数补码的**符号位也参与取反加一运算**,不能只对数值位操作。
2.2.2 补码的原理
补码的核心思想是把**减法转化为加法**,从而让加减法共用一套加法电路。
· **模(Modulo)**:$n$ 位二进制数能表示的个数为 $2^n$,即模 $M = 2^n$。
· **同余**:在模 $M$ 下,$X$ 与 $X + M$ 等价。故有
$$
[X - Y]_{补} = [X]_{补} + [-Y]_{补} = [X]_