5.6 多处理器
5.6.1 计算机体系结构
一、单指令流单数据流(SISD)
特性
各指令只能并发,不能并行
每条指令处理一两个数据
不是数据级并行技术
硬件组成
一个处理器、一个主存储器
实现指令流水线需要多个功能性部件,采用多模块交叉存储器
二、单指令流多数据流(SIMD)
特性
各指令只能并发,不能并行
每条指令可以同时处理多个具有相同特征的数据,如for循环数组计算等
是数据级并行技术
硬件组成
一个控制部件(CU)
多个执行单元(如ALU):不同执行单元同时执行一条指令,处理不同数据
多个局部存储器
一个主存储器
三、多指令流单数据流(MISD)
实际并不存在
四、多指令流多数据流(MIMD)
特性
指令可以并行
是线程级并行技术
进一步分类
多处理器系统
各处理器之间可以访问同一个主存
可以通过主存相互传递数据
多个处理器、一个主存储器
多计算机系统
不能直接访问对方的主存
通过消息传递来共享数据
五、向量处理器
特性
是SIMD的变种
处理的数据为向量
擅长向量计算、大型浮点运算等
硬件组成
多个处理单元、多组向量寄存器
主存采用多端口同时读取的多模块交叉存储器
需要大容量、集中式的主存储器
5.6.2 多核处理器
即共享内存多处理器(SMP)
所有核(处理器)共享一个主存
可以通过指令直接访问对方的地址空间
UMA
NUMA
多处理器访问统一内存
优先给CPU分配最接近的内存
运算扩展性差
运算扩展性强
有cache一致性问题
5.6.3 硬件多线程
处理器中存在多个IR、功能部件、寄存器组,则可以支持硬件多线程
线程切换时不用再花费开销保存和恢复现场
细粒度线程
粗粒度线程
同时多线程(SMT)
指令发射
每个时钟周期轮流发射 不同线程的指令
连续发射同一线程的 指令
一个时钟周期内发送 多条指令
线程切换频率
一个时钟周期切换一次
仅在流水线阻塞时切换
线程切换代价
低
高,需要重载流水线
并行性
指令级并行 线程间不并行
指令级并行 线程间不并行
指令级并行 线程级并行
超线程就是SMT技术
最后更新于