在计算中,MISD(多指令、单数据)是一种并行计算体系结构,在该体系架构中多个功能单元对同一数据流执行不同的操作。流水线结构就属于这种类型,尽管纯粹主义者可能会说,流水线中的每个阶段处理后的数据是不同的。以任务复制的方式冗余执行相同指令以检测和屏蔽错误的容错可以被认为属于这种类型。这种体系结构的应用远不如MIMD和SIMD常见,因为后两者通常更适合常见的数据并行技术。具体来说,它们允许更好地拓展和使用计算资源。然而,MISD在计算方面的一个突出例子是航天飞机飞行控制计算机[1]。
由H. T. Kung 和 Charles E. Leiserson首先描述的脉动阵列(<波前处理器)是MISD架构的一个例子。在典型的脉动阵列中,并行输入数据流经由硬连线处理器节点组成的网络,类似于人脑,该网络将输入数据组合、处理、合并或分类成一个导出结果。
脉动阵列通常是硬连线的,用于特定操作,例如“乘法和累加”,以执行大规模并行积分、卷积、相关、矩阵乘法或数据排序任务。脉动阵列通常由原始计算节点的大型单片网络组成,这些节点可以为特定应用进行硬连线或软件配置。节点通常是固定且相同的,而互连是可编程的。相比之下,更通用的波前处理器采用复杂且可单独编程的节点,这些节点可以是单片的,也可以不是单片的,这取决于阵列大小和设计参数。因为数据通过脉动阵列的波形传播类似于人体循环系统的脉搏,脉动这个名称是从医学术语中创造出来的。
脉动阵列的一个主要优点是所有操作数数据和部分结果都包含在(通过)处理器阵列中。不需要像标准顺序机器那样在每次操作期间访问外部总线、主存储器或内部高速缓存。Amdahl定理规定的并行性能的顺序限制也不适用于同样的情况,因为数据依赖关系是由可编程节点互连隐式处理的。
因此,脉动阵列非常擅长人工智能、图像处理、模式识别、计算机视觉和其他动物大脑特别擅长的任务。波前处理器通常也可以通过在硬件中实现自配置神经网络来很好地进行机器学习。
虽然脉动阵列被正式归类为MISD,但它们的分类有些问题。因为输入通常是独立值的向量,所以脉动阵列肯定不是SISD。因为这些输入值被合并和组合到结果中,并且不像在SIMD矢量处理单元中那样保持它们的独立性,所以脉动阵列不能归类为SIMD。因此,该阵列也不能归类为MIMD,因为MIMD可以被视为一个更小的SISD和SIMD机器的集合。
最后,因为数据群在从一个节点到另一个节点通过阵列时会发生变换,所以多个节点不会对同一数据进行操作,因此将脉动阵列分类为MISD是不恰当的。脉动阵列不应被视为MISD的另一个原因与将其从SISD类别中排除的原因相同:输入数据通常是一个向量而不是单个数据值,尽管有人可能会认为任何给定的输入向量都是单个数据集。
尽管如此,在关于并行计算的教科书和工程课程中,脉动阵列仍然经常作为MISD体系结构的经典例子提供。如果阵列从外部看是原子的,它可能应该被分类为SFMuDMeR=单函数、多数据、合并结果。[2][3][4][5]
^Spector, A.; Gifford, D. (September 1984). "The space shuttle primary computer system". Communications of the ACM. 27 (9): 872–900. doi:10.1145/358234.358246..
^Michael J. Flynn, Kevin W. Rudd. Parallel Architectures. CRC Press, 1996..
^Quinn, Michael J. Parallel Programming in C with MPI and OpenMP. Boston: McGraw Hill, 2004..
^Ibaroudene, Djaffer. "Parallel Processing, EG6370G: Chapter 1, Motivation and History." St Mary's University, San Antonio, TX. Spring 2008..
^Null, Linda; Lobur, Julia (2006). The Essentials of Computer Organization and Architecture. 468: Jones and Bartlett..
暂无