Parallel processing 术语';指令流';和';数据流';在Flynn'的上下文中是指;什么是分类学?

Parallel processing 术语';指令流';和';数据流';在Flynn'的上下文中是指;什么是分类学?,parallel-processing,simd,cpu-architecture,pipelining,Parallel Processing,Simd,Cpu Architecture,Pipelining,我最初在试图弄清楚流水线/超标量CPU是SISD、SIMD、MISD还是MIMD时遇到了这个疑问。我后来从维基百科(SISD文章)上读到: “根据Michael J.Flynn的说法,SISD可以进行并行处理 特点:流水线处理器和超标量处理器是 大多数现代SISD计算机中的常见示例。” 同样来自维基百科(MISD文章): “管道架构属于这种[MISD]类型,尽管它是一个纯粹主义者 可以说,数据在处理后的每个阶段都是不同的 管道。” 那么,得出以下结论是否正确: 1) “单指令流”处理的要求是只有

我最初在试图弄清楚流水线/超标量CPU是SISD、SIMD、MISD还是MIMD时遇到了这个疑问。我后来从维基百科(SISD文章)上读到:

“根据Michael J.Flynn的说法,SISD可以进行并行处理 特点:流水线处理器和超标量处理器是 大多数现代SISD计算机中的常见示例。”

同样来自维基百科(MISD文章):

“管道架构属于这种[MISD]类型,尽管它是一个纯粹主义者 可以说,数据在处理后的每个阶段都是不同的 管道。”

那么,得出以下结论是否正确:

1) “单指令流”处理的要求是只有一个高级执行线程

2) 仅仅因为线程中的指令级并行被利用,它就不能被视为“多指令流”处理

“单一数据流”这个术语怎么样

有人能说出以下MIPS汇编代码的数据流是什么吗:

  addi $s1,$s0,4
  lw $t0,0($s0)
  add $s2,$s0,$s1

它是“单一数据流”吗?如果系统利用指令级并行性,这种情况会改变吗?

将流视为一个“stuff”数组。如果我们看的是SISD,那么就有单指令数组和单数据数组。从指令数组中选取一条指令,然后对数据数组进行操作。如果我们要使用SIMD,那么只有一个指令数组,但您可以得到多个数据数组。因此,仅通过查看您案例中提供的指令流,我们无法确定其是SISD还是SIMD。如果底层体系结构复制了管道,并且每个管道都有一个专用数据流(与我们的数据阵列相同),那么提供给该管道的指令将在该管道的专用数据流上运行。所有这些管道都具有复制的内容、寄存器等。 因此,
addi$si,$s0,4
将在每个管道中添加不同的值


当我们谈论ILP时,我们基本上是在单个线程中寻找并行性,这与SISD或SIMD正交,因为我们希望在这两种情况下都利用ILP。

这些指令,与程序的顺序相同,或者它们是动态顺序,还是取决于体系结构的某种顺序?您可以将指令数组视为线程。它们将按照线程中定义的顺序被发布。但是,在SISD或MIMD等情况下,您可以轻松地进行优化,如指令重新排序、分支预测等。在SIMD中,这有点困难,因为数据来自多个流。那么,数据数组是寄存器的集合吗?它可以是,也可以是内存的不同部分。您这样想是对的,然而,据我所知,我不知道任何工作架构配置完全像MISD。收缩阵列通常被称为MISD,但据我理解,它们类似于数据流机器,其中数据通过一系列处理节点流动,其中操作应用于每个节点的数据,我不能100%同意将它们归类为MISD,因为多个操作不会同时应用于数据项。所以在我看来,MISD只是作为并行架构矩阵的一个补充。