脉动算法也称“心动算法”,一类特殊的流水线算法。有三个基本属性:数据的流动有节奏、有规律;数据的流向可以多于一个方向;各段执行的运算基本一样,往一个脉动算法中,产生数据的进程和消耗数据的进程之间要求隐含的同步。
基本介绍
- 中文名:脉动算法
- 外文名:systolic algorithm
- 也称:心动算法,搏动算法
- 定义:流水线算法
- 提出时间:70年代末
- 套用学科:计算机原理
概述
脉动算法又称心动算法、搏动算法,是由H.T.Kung等人于70年代末首先提出来的。数据由主机不断地、有节奏地传送到处理机阵列中,数据在阵列中流动的同时,完成加工和处理任务,这恰似血液因心脏收缩而有节奏地流遍全身,在流动过程中完成其特定的生理功能。
脉动算法有下述特点:①处理机具有简单的和一致的功能(阵列边缘上的处理机可略有不同);②处理机间有规则的和近邻的连线(如线性、四角或六角连线);③数据有规律和有节奏地流动;④数据在流动中被处理(流水线处理)。脉动算法的相应计算结构称作脉动阵列。
脉动阵列
脉动阵列至今尚无严格的定义,一般说来,它有如下的特点:
1、具有按一维阵列或二维阵列规则配置的多个运算器,这些运算器具有简单而相同的功能。
2、运算器之间的数据流和控制流是规则和局域的。
3、主计算机与阵列之间的通信通过位于阵列边界的运算器来进行。
4、各运算器的控制通过整个区域的时钟同步地进行。
5、通过流水线处理和并行处理相结合,能正比于PE数提高处理速度(linear—rate pipelinability)。
不过,如果一定要让这些条件全部满足,所能处理的问题就会受到极大限制。因此,即使有几个条件不能满足,也还有称其为脉动阵列的。例如允许使用汇流排数据播放(broadcast)的半脉动阵列(semisystolic array)就是一例。