前置知识: 计算机基础

计算机组成原理

00:00
7 min Intermediate 2026/6/14

计算机组成原理:指令系统、CPU数据通路、控制器设计、存储体系与I/O系统

1. 计算机系统层次结构

计算机系统从底向上分为多个层次:

应用软件层

系统软件层(操作系统、编译器)

指令集架构层(ISA)

微架构层(数据通路、控制器)

数字逻辑层(逻辑门、寄存器)

电路层(晶体管、连线)

指令集架构(ISA) 是软件和硬件之间的接口,定义了指令格式、寻址方式、寄存器组等。

2. 指令系统

2.1 指令格式

指令由操作码和操作数组成:

┌──────────┬──────────┬──────────┐
│ 操作码   │ 源操作数  │ 目标操作数 │
│ (opcode) │ (src)    │ (dst)    │
└──────────┴──────────┴──────────┘

指令字长分类

类型特点代表
定长指令所有指令长度相同RISC(MIPS、ARM)
变长指令指令长度可变CISC(x86)

2.2 寻址方式

寻址方式有效地址特点
立即寻址操作数在指令中最快,操作数范围有限
直接寻址简单,地址空间受限
间接寻址灵活,需两次访存
寄存器寻址最快,寄存器数量有限
寄存器间接灵活,一次访存
偏移寻址适合数组、结构体
相对寻址适合转移指令

2.3 RISC vs CISC

特性RISCCISC
指令数量少(<200)多(>300)
指令长度定长变长
寻址方式
执行周期1个周期多个周期
流水线易实现难实现
寄存器
代表MIPS、ARM、RISC-Vx86

3. CPU 数据通路

3.1 单周期数据通路

单周期处理器每条指令在一个时钟周期内完成:

PC → 指令存储器 → 译码 → 执行 → 数据存储器 → 写回

关键组件:

  • PC(程序计数器):存储下一条指令地址
  • 指令存储器:存放指令
  • 寄存器文件:32个通用寄存器
  • ALU:算术逻辑单元
  • 数据存储器:读写数据
  • 多路选择器:选择数据来源

时钟周期:取指 + 译码 + 执行 + 访存 + 写回中最慢路径的延迟。

3.2 多周期数据通路

将指令执行拆分为多个时钟周期:

阶段操作所需周期
IF取指令1
ID指令译码/读寄存器1
EX执行/计算地址1
MEM访问存储器0~2
WB写回寄存器0~1

优势:不同指令使用不同周期数,硬件资源可复用。

3.3 ALU 设计

ALU 支持的基本运算:

标志位

  • Z(Zero):结果为零
  • N(Negative):结果为负
  • C(Carry):进位
  • V(Overflow):溢出

4. 控制器设计

4.1 硬布线控制器

通过组合逻辑电路直接产生控制信号:

优点:速度快 缺点:设计复杂,不易修改和扩展

4.2 微程序控制器

将控制信号编码为微指令,存储在控制存储器中:

指令操作码 → 微地址形成部件 → 控制存储器 → 微指令 → 控制信号

微指令格式

  • 水平型:每位对应一个控制信号,并行度高
  • 垂直型:编码表示操作,指令短但需译码

优点:灵活,易于修改 缺点:速度较慢(需访问控制存储器)

5. 流水线技术

5.1 基本流水线

五级流水线:

IF → ID → EX → MEM → WB
     IF → ID → EX → MEM → WB
          IF → ID → EX → MEM → WB

理想情况下, 条指令执行时间:

其中 为流水线级数, 为时钟周期。

5.2 流水线冒险

数据冒险:后续指令需要前一条指令的结果。

解决方案:

  • 数据转发(Forwarding/Bypassing)
  • 插入气泡(Stall)
  • 指令重排序(编译器优化)

控制冒险:分支指令改变执行流。

解决方案:

  • 分支预测(静态/动态)
  • 延迟分支
  • 提前计算分支结果

结构冒险:多条指令同时访问同一硬件资源。

解决方案:

  • 哈佛架构(指令/数据分离)
  • 资源复制

5.3 分支预测

静态预测

  • 总是预测不跳转
  • 总是预测跳转
  • 据方向预测(向后跳则跳转)

动态预测

1-bit 预测器:记录上次分支结果

2-bit 预测器(饱和计数器):

强不跳转(00) → 弱不跳转(01) → 弱跳转(10) → 强跳转(11)

预测准确

6. 存储体系

6.1 存储层次结构

寄存器(~1ns, <1KB)

L1 Cache(~1ns, 32~64KB)

L2 Cache(~5ns, 256KB~1MB)

L3 Cache(~10ns, 2~64MB)

主存 DRAM(~50ns, 4~128GB)

SSD(~100μs, 256GB~4TB)

HDD(~10ms, 1~20TB)

6.2 Cache 映射方式

直接映射

全相联映射主存块可映射到任意 Cache

组相联映射

每组 路,称为 路组相联。

6.3 Cache 性能

命中

平均访问时间

替换策略:LRU、FIFO、Random、LFU

策略

  • 写直达(Write Through):同时写 Cache 和主存
  • 写回(Write Back):只写 Cache,替换时写回主存

7. I/O 系统

7.1 I/O 控制方式

方式CPU 参与数据传送
程序查询全程参与CPU 逐传送
中断方式启动后等待中断CPU 逐传送
DMA初始化和结束DMA 控制器传送
通道方式启动通道处理器传送

7.2 DMA 传送

DMA(直接存储器存取)允许 I/O 设备直接与主存交换数据:

DMA 与 CPU 可能争用总线解决方式:

  • 周期窃取(Cycle Stealing)
  • 交替访存
  • CPU 暂停模式

7.3 中断系统

中断处理流程

1. 中断请求 → 2. 中断判优 → 3. 中断响应
→ 4. 保存现场 → 5. 中断服务 → 6. 恢复现场 → 7. 中断返回

中断优先级通常:机器错误 > 访管 > 程序中断 > 外部中断 > I/O 中断

知识检测

学习进度

-- 已学文档
--% 知识覆盖率

学习推荐

专注模式