Skip to content

Flynn 分类法

指令流数据流的多倍性将计算机分为 4 类。

分类说明典型代表
SISD单指令流单数据流传统单处理器、冯·诺依曼机器
SIMD单指令流多数据流阵列处理机、并行处理机
MISD多指令流单数据流极少见(有文献将流水线归为此类)
MIMD多指令流多数据流多核计算机、多处理机、超级计算机

当前主流多核计算机属于 MIMD

指令系统 CISC 和 RISC

CISC vs RISC

image.png

对比CISC(复杂指令集)RISC(精简指令集)
指令数量
指令长度可变固定
实现方式微程序控制组合逻辑(硬件实现)
寻址方式多样
寄存器大量寄存器
执行时间差别大多数单周期

指令组成与执行

一条指令 = 操作码(决定操作类型)+ 地址码(操作数地址)。整条指令以二进制编码存放。

执行三阶段:取指令(PC→地址总线,从内存取)→ 分析指令(ID 解析操作码)→ 执行指令。

寻址方式

方式说明特点
顺序寻址一条接一条顺序执行下一条地址由 PC 给出
跳跃寻址下条地址由本条指令直接给出PC 内容相应改变

操作数寻址方式:

方式说明速度
立即寻址地址码直接包含操作数本身
直接寻址地址码是操作数的内存地址
间接寻址地址码指向存有操作数地址的单元
寄存器寻址操作数在寄存器中最快
基址寻址基址寄存器 + 形式地址 → 有效地址用于静态数据
变址寻址变址寄存器 + 形式地址 → 有效地址用于数组/动态数据

指令的流水处理

流水线原理

image.png

  • RISC中的流水线技术:超流水线(在每个机器周期内能完成一个甚至两个浮点操作,以时间换空间)、超标量(内装多条流水线同时执行多个处理,以空间换时间)、超长指令字 VLIW (同时执行多条指令,发挥软件作用)。

流水线时间计算

流水线核心公式:

指标公式
流水线周期各段中执行时间最长的段的时间
执行时间1条指令总执行时间 +(总指令条数 - 1)× 流水线周期
吞吐率指令条数 / 流水线执行时间
加速比不使用流水线执行时间 / 使用流水线执行时间
  • 流水线周期:指令分成不同执行段,其中执行时间最长的段为流水线周期。
  • 流水线执行时间:1条指令总执行时间+(总指令条数-1)* 流水线周期。
  • 单缓冲区和双缓冲区:此类题型不给出具体流水线执行阶段,需要考生自己区分出流水线阶段,一般来说,能够同时执行的阶段就是流水线的独立执行阶段:只能独立执行的阶段应该合并为流水线中的一个独立执行阶段。

例如有三个阶段即读入缓冲区+送入用户区+数据处理,在单缓冲区中,缓冲区和用户区都只有一个,一个盘块必须执行完前两个阶段,下一个盘块才能开始,因此前两个阶段应该合并,整个流水线为送入用户区+数据处理;

而在双缓冲区中,盘块可以交替读入缓冲区,但用户区只有一个,因为缓冲区阶段可以同时进行,流水线前两个阶段不能合并,就是读入缓冲区+送入用户区+数据处理三段。

划分出真正的流水线阶段后,套用流水线时间计算公式可以轻易得出答案。

  • 流水线吞吐率计算:吞吐率即单位时间内执行的指令条数。公式:指令条数/流水线执行时间。
  • 流水线的加速比计算:加速比即使用流水线后的效率提升度,即比不使用流水线快了多少倍,越高表明流水线效率越高,公式:不使用流水线执行时间/使用流水线执行时间。

指令流水线

将指令分成不同段,每段由不同部件并行处理。

RISC 流水线三种技术:

技术核心理念本质
超流水线细化流水、增加级数、提高主频时间换空间
超标量多条流水线同时执行多个处理空间换时间
超长指令字(VLIW)软件调度并行,简化硬件软件发挥主要作用

超线程技术(Hyper-Threading)

🎯 一句话结论:超线程让一个物理核心模拟两个逻辑核心,共享执行资源,提高 CPU 并行计算能力。

  • 一个物理核心配备两套寄存器组和中断逻辑,操作系统看到"两个核心"
  • 共享物理执行单元(ALU、Cache 等),并非真正的双核
  • 适合多线程负载,单线程密集型收益有限
  • 属于提高 CPU 并行计算能力的技术(区别于加密/压缩/缓存技术)