口口 (a)一维线性阵列 (b)二维矩形阵列 (c)二维六边形阵列 (d)二叉树状阵列 (e)三角形阵列 图94脉动阵列机结构形式
图9.4 脉动阵列机结构形式
2脉动阵列机举例 对图92所示二维阵列结构进行改造,即可得到如图95所示,可 进行3×3矩阵乘法运算的变形脉动阵列机。设有3×3矩阵厢和B: boo bor be B=bo bu b aan aa 6.o b.1 b C=A·B o C1l C12 其中c=ab 0≤2,0≤2
cij = ∑aik·bkj k= 0 2 其中 ,0≤i≤2,0≤j≤2。 A = a00 a01 a02 a10 a11 a12 a20 a21 a22 B = b00 b01 b02 b10 b11 b12 b20 b21 b22 C = A·B = c00 c01 c02 c10 c11 c12 c20 c21 c22 则 2.脉动阵列机举例 对图9.2所示二维阵列结构进行改造,即可得到如图9.5 所示,可 进行3×3矩阵乘法运算的变形脉动阵列机。设有3×3矩阵A和B:
C12C1 Is C20 b12b210 n bo2 b1 b20--M---M is I7 I6 0 b01 b10 0 p=m×n+q 01a02 00 0 a10a11 0 az I3 (a) pe (b)阵列结构图 图9.53×3矩阵乘法运算脉动阵列机工作示意图
图9.5 3×3矩阵乘法运算脉动阵列机工作示意图
为了能够进行两个3×3矩阵的乘法运算,每一个处理单元PE应包含 个乘法器和加法器,以完成内积和加法运算。在每一个时钟周期,可接收三 个方向输入的数据,即水平方向由左向右,竖直方向由下向上,左下角沿45° 方向到右上角;同时,可将结果传送到三个对应的输出端。即m←m,← 这样,在~时钟周期参加运算的矩阵元素开始输入脉动阵列机; 时刻,运算结果开始输出,即在45方向上同时输出2、q1、0、ci0、o, 时刻输出a2、C1、G1,时刻输出a2。可以看出,仅需要8个时钟周期就 完成了3×3矩阵的乘法运算,而在单处理机采用循环运算,则至少需要27个 时钟周期,速度提高了近24倍。 通过对图9.5的结构分析可以看出,若要对丌矩阵进行乘法运算,则 需要3m2-3n+1个处理单元P构成脉动阵列机;而且,仅需要31个时钟周期 就可以完成全部运算。运算所需要的时间仅以近似于3r的线性关系在增加 尤其是n大时,采用脉动阵列机进行运算,效果更明显。如果矩阵很大,可 用软件拆分为若干小矩阵分别运算,然后求出整体结果
为了能够进行两个3×3矩阵的乘法运算,每一个处理单元PE应包含一 个乘法器和加法器,以完成内积和加法运算。在每一个时钟周期,可接收三 个方向输入的数据,即水平方向由左向右,竖直方向由下向上,左下角沿45° 方向到右上角;同时,可将结果传送到三个对应的输出端。即m′←m,n′←n, p←m×n+q。 这样,在t1~t3时钟周期参加运算的矩阵元素开始输入脉动阵列机;t6 时刻,运算结果开始输出,即在45°方向上同时输出c02、c01、c00、c10、c20, t7时刻输出c12、c11、c21,t8时刻输出c22。可以看出,仅需要8个时钟周期就 完成了3×3矩阵的乘法运算,而在单处理机采用循环运算,则至少需要27个 时钟周期,速度提高了近2.4倍。 通过对图9.5的结构分析可以看出,若要对n×n矩阵进行乘法运算,则 需要3n2-3n+1个处理单元PE构成脉动阵列机;而且,仅需要3n-1个时钟周期 就可以完成全部运算。运算所需要的时间仅以近似于3n的线性关系在增加。 尤其是n较大时,采用脉动阵列机进行运算,效果更明显。如果矩阵很大,可 用软件拆分为若干小矩阵分别运算,然后求出整体结果
3脉动阵列机结构的特点 对于上述脉动阵列机可归纳出以下特点。 (1)脉动阵列机的结构与具体的算法紧密相关 (2)结构简单规整,模块化结构明显 (3)数据流和控制流简单规整,易于设计 (4)各处理单元同时工作,具有很强的系统并行性 脉动阵列机是针对某一种或者某些具体的问题而提出来的,因 此与算法紧密相联,且由若干个功能相同、结构简单的处理单元构成, 采用模块化结构,可扩展性好;通信线路简单规整,易于设计,有利 于提高ⅥSI的集成度;各处理单元同时工作,并行性很强
3.脉动阵列机结构的特点 对于上述脉动阵列机可归纳出以下特点。 (1)脉动阵列机的结构与具体的算法紧密相关 (2)结构简单规整,模块化结构明显 (3)数据流和控制流简单规整,易于设计 (4)各处理单元同时工作,具有很强的系统并行性 脉动阵列机是针对某一种或者某些具体的问题而提出来的,因 此与算法紧密相联,且由若干个功能相同、结构简单的处理单元构成, 采用模块化结构,可扩展性好;通信线路简单规整,易于设计,有利 于提高VLSI的集成度;各处理单元同时工作,并行性很强