计算机组成原理

作者:姚博文 · 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]_