单指令单数据流 SISD 结构

传统的串行计算机结构,仅包含一个处理器和一个存储器,处理器在一段时间内仅执行一条指令,按指令流规定的顺序串行执行指令流中的若干条指令。

为了提高速度,有些 SISD 计算机采用流水线的方式,因此,SISD 处理器有时会设置多个功能部件,并且采用多模块交叉方式组织存储器。

单指令多数据流 SIMD 结构

一个指令流同时对多个数据流进行处理,一般称为数据级并行技术

这种结构的计算机通常由一个指令控制部件、多个处理单元组成。每个处理单元虽然执行的都是同一条指令,但是每个单元都有自己的地址寄存器,每个单元就都有不同的数据地址。不同处理单元执行的同一条指令所处理的数据是不同的。

向量处理器:SIMD 的变体,是一种实现了直接操作一维数组指令集的 CPU。

多指令流单数据流 MISD 结构

同时执行多条指令,处理同一数据,实际上不存在这样的计算机。

多指令流多数据流 MIMD 结构

MIMD 是一种并行程度更高的线程级并行或线程级以上并行计算模式。

同时执行多条指令分别处理多个不同的数据,MIMD 分为多计算机系统和多处理器系统。

多计算机系统:多个独立的计算机。每个计算机不能直接访存。

多处理器系统是 共享存储多处理器 SMP 系统的简称,单个计算机,多个处理器,也称共享存储 MIMD。

多核处理器属于 MIMD

共享存储多处理器 SMP 系统

单一地址空间的多处理器有两种类型

  • 统一存储访问多处理器 UMA
    • 每个处理器对所有存储单元的访问时间大致相同,访问时间与哪个处理器提出访存请求及访问哪个字无关
  • 非统一存储访问多处理器 NUMA
    • 访存要求比其他快,具体取决于哪个处理器提出了访问请求以及访问哪个字