SISD,SIMD,MISD,MIMD指令集

举例:

每个数大小为8字节(64位)

计算:
1+2
3+4
5+6
7+8 四对数的和
  • SISD,单指令单数据流
    计算机有一个计算单元,多个8字节(64位)寄存器;
    需要顺序执行,每次计算时每个寄存器只能容纳一个数;
    那么计算次数为:顺序执行4次;

  • SIMD,单指令多数据流

SIMD的同SISD的最大区别是寄存器的变大了,一次计算可以容纳更多的数据(空间换时间),SSE指令集的寄存器大小为128位,AVX2指令集的寄存器大小为256位,AVX512指令集的寄存器大小为512位

image.png

计算机有一个计算单元,多个32字节(256位,AVX2规格)寄存器;
每次计算时每个寄存器能容纳4个数字;
那么计算次数为:顺序执行4次;

  • MISD,多指令单数据流
    计算机有多个计算单元,多个8字节(64位)寄存器;
    可以并行执行,单每次计算时每个寄存器只能容纳一个数;
    那么计算次数为:并行执行4次;
  • MIMD,多指令多数据流

很多计算机都采用这种形式

计算机有多个计算单元,多个32字节(256位,AVX2规格)寄存器;
可以并行执行,每次计算时每个寄存器能容纳4个数字;;
那么计算次数为:不确定,但是耗时理论上更少;

什么是向量计算机?

一个命令一次性能计算多组数据的计算机就是向量计算机,即支持SIMD、MIMD就是向量计算机

参考

https://zhuanlan.zhihu.com/p/31271788
https://zhuanlan.zhihu.com/p/55327037

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容