SISD/SIMD/MISD/MIMD

        1966年,Michael.J.Flynn提出按指令流和数据流的多倍性对计算机系统结构进行分类。

        ■指令流 是指机器执行的指令序列;

        ■数据流 是由指令流调用的数据序列,包括输入数据和中间结果;

        ■多倍性 是指在系统最受限制的部件上,同时处于同一执行阶段的指令或数据的最大数目。

Flynn分类法的局限

  ■分类的对象主要是控制驱动方式下的串行处理和并行处理计算机。对于非控制驱动方式的计算机,就不适合采用Flynn分类法;

  ■把两个不同等级的功能并列对待,通常,数据流受指令流控制从而造成MISD不存在;

  ■分类太粗,对流水线处理机的划分不明确,标量流水线为SISD,向量流水线为SIMD。

SISD(Single Instruction Single Data)

处理器串行执行指令;或者处理器内采用指令流水线,以时间重叠技术实现了一定程度上的指令并行执行;甚至于处理器是超标量处理器,内有几条指令流水线实现了更大程度上的指令并行执行。但它们都是以单一的指令流从存储器取指令,以单一的数据流从存储器取操作数和将结果写回存储器(一个单处理器指向一个单指令流,对保存在一个存储器中的数据程序进行操作)

SIMD(Single Instruction Mutiple Data)

        有单一的控制部件,但是有多个处理部件。计算机以一个控制单元从存储器取单一的指令流,一条指令同时作用到各个处理单元,控制各个处理单元对来自不同数据流的数据组进行操作(一个机器指令控制多个处理部件,步伐一致的同时执行;每个处理部件都有一个相关的数据处理空间,因此,每条指令由不同的处理部件在不同的数据集合上执行)。这种体系结构的典型代表是阵列处理机,一些学者认为将向量处理机也划入此类。

        SIMD在性能上有什么优势呢?以加法指令为例,单指令单数据(SISD)的CPU对加法指令译码后,执行部件先访问内存,取得第一个操作数;之后再一次访问内存,取得第二个操作数;随后才能进行求和运算。而在SIMD型CPU中,指令译码后几个执行部件同时访问内存,一次性获得所有操作数进行运算。这个特点使得SIMD处理器在数字信号、图像、多媒体信息等数据密集型任务的处理非常有效

        例如向量处理器(Vector Processor),是一种特殊的SIMD处理器,是一种实现了直接操作一维数组(向量)指令集的CPU。其一条指令(向量指令)可以完成一整个向量(数组)的输入,并同时处理这些连续且相似的数据项,向量处理器有用一个控制单元,但有多个执行单元,可以对向量的不同数据元素执行相同的操作。

MISD(Mutiple Instruction Single Data)

        多个处理单元,各配有相应的控制单元。各个处理单元接收不同的指令,多条指令同时在一份数据上进行操作(一系列数据被传送到一组处理器上,每个处理器执行不同的指令序列)。这种计算机体系结构是一种比较奇怪的组合,这已经被证明是不可能至少是不实际的,目前为止还不存在这种类型的计算机。

MIMD(Mutiple Instruction Mutiple Data)

        同时有多个处理单元,并且每个处理单元都配有相应的控制单元。各个处理单元可以接收不同的指令并对不同的数据流进行操作(一组处理器同时在不同的数据集上执行不同的指令序列)。大多数现代的并行计算机都属于这一类,多处理机系统和多计算机系统都是MIMD型的计算机。

        MIMD可以根据处理器的通信进一步细化:如果每个处理器都有一个专用的存储器,则每个处理部件都是一个独立的计算机。计算机间的通信或者借助于固定的路径,或者借助于某些网络设施,这类系统称为集群系统。如果处理器共享一个公用的存储器,每个处理器都访问保存在共享共享存储器中的程序和数据,处理器之间通过这个存储器进行相互通信,这类系统称为共享存储器多处理系统。而共享存储器多处理器系统可以根据“如何把程序分配给处理器”,分为主/从结构对称结构

1)主/从结构

        在主/从结构中,操作系统的内核的内核总是运行在某个特定的处理器上,其他处理器用于执行用于程序和操作系统的使用程序。主处理器负责调度进程或者线程,如果一个处于运行的进程或者线程需要使用系统的服务(如一次I/O调用),则它必须给主处理器发送请求,并等待服务的处理。

这种方式非常简单,一个处理器控制了所有存储器和I/O资源,因此可以简化冲突的解决方案。但是这种方式也有明星缺点:

1)主处理器的失败将导致整个系统失败。

2)由于主处理器必须负责所有进程的调度和管理,因此可能称为性能瓶颈。

2)对称结构(SMP)

        在对称多处理系统中,内核可以在任何处理器上执行,并且每个处理器可以从可用的进程或者线程池中进行各自的调度工作。内核也可以由多进程或者多线程构成,允许部分内核并行执行。

SMP方法增加了操作系统的复杂度,它必须确保二个处理器不会选择同一个进程,并且要确保队列不会丢失,因此需要解决同步问题。

  • 1
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

张帅峰_

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值