计算机组成原理-多处理器系统的基本概念(SISD SIMD MISD MIMD)

发布时间:2023年12月28日

总览

先看这个

在这里插入图片描述

再往下看

在这里插入图片描述

SISD

并发就是;先执行一下该指令序列,再执行一下另外一个指令序列
并行就是:两个指令序列同时进行
在某个时间段内只能处理一个进程或者一个线程的指令序列,各个进程或者线程的指令序列只能并发的执行,不能并行的执行
在这里插入图片描述

单指令流是指同一时间段内只能处理一个时间序列
单数据流指的是每条指令只能处理一到两个数据
在这里插入图片描述
在这里插入图片描述

SIMD

由于此时每个ALU处理的地址不同,所以地址寄存器也不同
在这里插入图片描述
相当于一条指令同时给多个ALU同时执行,相当于执行多次该条指令或者说控制信号给多个ALU,多个ALU执行相同的操作
在各自局部存储器,该局部存储器最后合起来就是总的要控制的那块存储区域
此时一条指令可以并行处理多个数据(同时处理多个数据)

对应到例子就是像素处理,每个ALU处理部分像素
或者对所有数组元素做相同的处理,每个ALU对应的局部存储为数组的某个元素,所以每个ALU处理数组的某个元素
在这里插入图片描述

MISD

现实不存在,因为比较愚蠢的做法,此时的多条指令对数据的效果都是相同的。不可能说多条指令对数据的处理是不同的,或者说是指令序列,那么此时并行,依赖性全无。比如某个指令可能需要执行前一个指令执行的结果。但此时是同时执行原数据。显然不合理。
因此既然多条指令并行处理一个数据,效果也相同,为啥不一个执行就好了嘛
在这里插入图片描述

MIMD

有多个处理器,可以执行多个不同的指令序列,也可以执行多个相同的指令序列(此时就是并行处理多个数据流)

在这里插入图片描述
多处理器系统
多个处理器共享LLC,各个处理器还有更高级的Cache给自己用,
在这里插入图片描述
多计算机系统
消息传递可以说网络传递
同时执行不同指令序列流,而且每台处理的数据流也是不一样的,因为可以给要处理的数据到不同存储器,此时给的数据可以不一样
在这里插入图片描述
在这里插入图片描述

向量处理器

在这里插入图片描述
此时一个向量寄存器存储一个n维的向量
当两个n维的向量相加时,向量处理器只需要一次add指令,因为向量寄存器存储的是向量,所以它的相加单位是n维向量
而当普通处理器处理时需要n次add指令,因为每次的相加单位是一个数据
所以可以认为向量寄存器是数据并行,或者同时一条指令对多个数据处理
多端口,支持同时读
在这里插入图片描述

共享内存多处理器和多核处理器

核就是 处理器
共享内存多处理器和多核处理器就是一个玩意
在这里插入图片描述

文章来源:https://blog.csdn.net/llovewuzhengzi/article/details/135210054
本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。