单指令单数据流 SISD 结构
传统的串行计算机结构,仅包含一个处理器和一个存储器,处理器在一段时间内仅执行一条指令,按指令流规定的顺序串行执行指令流中的若干条指令。
为了提高速度,有些 SISD 计算机采用流水线的方式,因此,SISD 处理器有时会设置多个功能部件,并且采用多模块交叉方式组织存储器。
单指令多数据流 SIMD 结构
一个指令流同时对多个数据流进行处理,一般称为数据级并行技术。
这种结构的计算机通常由一个指令控制部件、多个处理单元组成。每个处理单元虽然执行的都是同一条指令,但是每个单元都有自己的地址寄存器,每个单元就都有不同的数据地址。不同处理单元执行的同一条指令所处理的数据是不同的。
向量处理器:SIMD 的变体,是一种实现了直接操作一维数组指令集的 CPU。
多指令流单数据流 MISD 结构
同时执行多条指令,处理同一数据,实际上不存在这样的计算机。
多指令流多数据流 MIMD 结构
MIMD 是一种并行程度更高的线程级并行或线程级以上并行计算模式。
同时执行多条指令分别处理多个不同的数据,MIMD 分为多计算机系统和多处理器系统。
多计算机系统:多个独立的计算机。每个计算机不能直接访存。
多处理器系统是 共享存储多处理器 SMP 系统的简称,单个计算机,多个处理器,也称共享存储 MIMD。
多核处理器属于 MIMD
共享存储多处理器 SMP 系统
单一地址空间的多处理器有两种类型
- 统一存储访问多处理器 UMA
- 每个处理器对所有存储单元的访问时间大致相同,访问时间与哪个处理器提出访存请求及访问哪个字无关
- 非统一存储访问多处理器 NUMA
- 访存要求比其他快,具体取决于哪个处理器提出了访问请求以及访问哪个字