Skip to content

计算机组成原理基础

1. 冯诺依曼结构

冯诺依曼结构是现代计算机的经典架构模型,由约翰·冯·诺依曼在1945年提出。其核心思想是将程序和数据统一存储在存储器中,由控制器、运算器、存储器、输入设备和输出设备五大部分组成。

1.1 主要特点

  • 存储程序概念:指令和数据存储在同一存储器中,按地址访问
  • 顺序控制:程序按顺序执行,由程序计数器控制
  • 以运算器为中心:数据流和控制流分明
  • 二进制表示:所有信息都用二进制表示

1.2 五大组成部分

  1. 控制器(Control Unit):负责指令的译码和执行控制
  2. 运算器(Arithmetic Logic Unit):执行算术和逻辑运算
  3. 存储器(Memory):存储程序和数据
  4. 输入设备(Input Device):将外部信息输入计算机
  5. 输出设备(Output Device):将计算机处理结果输出

冯诺依曼结构示意图

2. Flynn 分类

Flynn 分类是对计算机体系结构并行性的一种经典划分方法,由 Michael Flynn 在1966年提出。该分类依据指令流和数据流的数量,将计算机分为四类:

2.1 分类标准

  • 指令流(Instruction Stream):机器执行的指令序列
  • 数据流(Data Stream):由指令流调用的数据序列

2.2 四种类型

SISD(Single Instruction, Single Data)

  • 特点:单指令流单数据流
  • 代表:传统串行计算机
  • 应用:个人计算机、工作站

SIMD(Single Instruction, Multiple Data)

  • 特点:单指令流多数据流
  • 代表:向量机、GPU、SIMD指令集
  • 应用:科学计算、图像处理

MISD(Multiple Instruction, Single Data)

  • 特点:多指令流单数据流
  • 代表:极少见,理论模型
  • 应用:容错系统

MIMD(Multiple Instruction, Multiple Data)

  • 特点:多指令流多数据流
  • 代表:多核处理器、多处理器系统
  • 应用:服务器、超级计算机

Flynn 分类结构图

3. IEEE 754 浮点数格式

IEEE 754 是现代计算机浮点数表示的国际标准,由电气和电子工程师协会(IEEE)制定。该标准定义了浮点数的存储格式、运算规则和异常处理。

3.1 单精度浮点数(float, 32位)

结构组成

  • 符号位(S):1位,0表示正数,1表示负数
  • 指数位(E):8位,带偏移量127
  • 尾数位(M):23位,隐含前导1

数值表示公式

(-1)^S × 1.M × 2^(E-127)

特殊情况

  • 零值:指数和尾数全为0
  • 无穷大:指数全为1,尾数全为0
  • NaN:指数全为1,尾数非零

IEEE 754 单精度浮点数结构

3.2 双精度浮点数(double, 64位)

结构组成

  • 符号位(S):1位
  • 指数位(E):11位,带偏移量1023
  • 尾数位(M):52位,隐含前导1

数值表示公式

(-1)^S × 1.M × 2^(E-1023)

3.3 浮点数运算特点

  • 精度有限:无法精确表示所有实数
  • 舍入误差:运算结果需要舍入到最近的可表示值
  • 溢出和下溢:超出表示范围时产生特殊值

4. 计算机性能指标

4.1 基本性能指标

  • 时钟频率:CPU主频,单位Hz
  • 指令执行时间:执行一条指令所需的时间
  • CPI(Cycles Per Instruction):每条指令的平均时钟周期数
  • MIPS(Million Instructions Per Second):每秒百万条指令数

4.2 性能计算公式

CPU时间 = 指令数 × CPI × 时钟周期时间
MIPS = 指令数 / (执行时间 × 10^6)

5. 存储器层次结构

5.1 层次结构特点

  • 容量递减:从外到内容量逐渐减小
  • 速度递增:从外到内访问速度逐渐提高
  • 成本递增:从外到内单位成本逐渐提高

5.2 典型层次

  1. 寄存器:最快,容量最小
  2. 高速缓存(Cache):L1、L2、L3缓存
  3. 主存储器(RAM):内存
  4. 辅助存储器:硬盘、SSD

存储器层次结构图

6. 指令系统

6.1 指令格式

指令通常包含以下字段:

  • 操作码(Opcode):指定操作类型
  • 源操作数地址:操作数的地址
  • 目标操作数地址:结果存储地址
  • 寻址方式:操作数寻址方法

6.2 寻址方式

  • 立即寻址:操作数直接包含在指令中
  • 直接寻址:操作数地址直接给出
  • 间接寻址:操作数地址存储在指定位置
  • 寄存器寻址:操作数在寄存器中
  • 变址寻址:基址+偏移量

7. 总结

计算机组成原理是理解计算机系统的基础,涉及硬件结构、指令系统、存储管理等多个方面。掌握这些基本概念对于深入理解计算机系统的工作原理具有重要意义。


参考资料