5.6 多处理器

5.6.1 计算机体系结构

一、单指令流单数据流(SISD)

  • 特性

    • 各指令只能并发,不能并行

    • 每条指令处理一两个数据

    • 不是数据级并行技术

  • 硬件组成

    • 一个处理器、一个主存储器

    • 实现指令流水线需要多个功能性部件,采用多模块交叉存储器

二、单指令流多数据流(SIMD)

  • 特性

    • 各指令只能并发,不能并行

    • 每条指令可以同时处理多个具有相同特征的数据,如for循环数组计算等

    • 数据级并行技术

  • 硬件组成

    • 一个控制部件(CU)

    • 多个执行单元(如ALU):不同执行单元同时执行一条指令,处理不同数据

    • 多个局部存储器

    • 一个主存储器

三、多指令流单数据流(MISD)

实际并不存在

四、多指令流多数据流(MIMD)

  • 特性

    • 指令可以并行

    • 线程级并行技术

  • 进一步分类

    • 多处理器系统

      • 各处理器之间可以访问同一个主存

      • 可以通过主存相互传递数据

      • 多个处理器、一个主存储器

    • 多计算机系统

      • 不能直接访问对方的主存

      • 通过消息传递来共享数据

五、向量处理器

  • 特性

    • 是SIMD的变种

    • 处理的数据为向量

    • 擅长向量计算、大型浮点运算等

  • 硬件组成

    • 多个处理单元、多组向量寄存器

    • 主存采用多端口同时读取的多模块交叉存储器

    • 需要大容量、集中式的主存储器

5.6.2 多核处理器

共享内存多处理器(SMP)

  • 所有核(处理器)共享一个主存

  • 可以通过指令直接访问对方的地址空间

UMANUMA

多处理器访问统一内存

优先给CPU分配最接近的内存

运算扩展性差

运算扩展性强

有cache一致性问题

5.6.3 硬件多线程

  • 处理器中存在多个IR、功能部件、寄存器组,则可以支持硬件多线程

  • 线程切换时不用再花费开销保存和恢复现场

细粒度线程粗粒度线程同时多线程(SMT)

指令发射

每个时钟周期轮流发射 不同线程的指令

连续发射同一线程的 指令

一个时钟周期内发送 多条指令

线程切换频率

一个时钟周期切换一次

仅在流水线阻塞时切换

线程切换代价

高,需要重载流水线

并行性

指令级并行 线程间不并行

指令级并行 线程间不并行

指令级并行 线程级并行

超线程就是SMT技术

最后更新于