来自并行处理的SIMD称为数组处理。图中显示了阵列处理器。处理元件的二维网格传输来自中央控制处理器的指令流。在发送每条指令时,所有元素都会同时执行它。每个处理元素都连接到它的四个最近邻居,以进行数据交换。可以在行和列上都提供末端附近的连接,但未在图中显示。
考虑特定的计算以了解SIMD体系结构的功能是有启发性的。处理元素的网格可用于解决二维问题。例如,如果网格的每个元素代表空间中的一个点,则该阵列可用于计算传导平面内部的点处的温度。
假设平面的边缘保持在特定温度下。在由处理元件表示的离散点处的适当的解如下。外边缘在指定温度下初始化。所有内部点都是以一些任意值开头的,不一定相等。然后在每个元素中并行执行迭代。每次迭代都涉及通过平均四个最邻近点的当前值来计算一个点的温度更好的估计值。当序数估计值比某个预定的小差异更接近时,过程停止。
阵列处理器执行此类计算所需的容量非常简单。每个元素必须能够在图中所示的路径上与其每个邻居交换值。每个处理元素都有一些寄存器和一些本地存储器来存储数据。它还有一个寄存器,称为网络寄存器,用于促进邻居之间值的移动。中央处理器可以广播一条指令来移动整个网络中的值,记录上移,下移,左移或右移的步骤。
每个处理元件还具有ALU,以执行由控制处理器发送的算术指令。使用这些功能,可以重复发送指令序列以实现迭代循环。控制处理器必须能够确定处理的每个要素已将其自身的温度分量发展到所需的精度。为此,每个元素将内部状态位设置为1来指示这种情况。网格互连包括一项功能,该功能允许控制器检测到在迭代结束时已设置所有状态位。
阵列处理器是高度专业的机器。它们非常适合可以以矩阵或矢量格式表示的数字问题。它们在加速通用计算方面不是很有用。