VLSI数字信号处理系统——第七章脉动结构设计

Posted 夏风喃喃

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VLSI数字信号处理系统——第七章脉动结构设计相关的知识,希望对你有一定的参考价值。

VLSI数字信号处理系统——第七章脉动结构设计

作者:夏风喃喃
参考:
(1) VLSI数字信号处理系统:设计与实现 (美)Keshab K.Parhi/著
(2) socvista https://wenku.baidu.com/u/socvista?from=wenku

一. 引言

脉动阵列:多个相同的处理单元(简称PE)按一定互联规则组成的网络,称为脉动阵列。脉动阵列可以是一维线形、二维三角形、二维矩形、二维六边形、二维二叉树型、三维长方体形等等。

脉动阵列特点

  1. 每一个节点,也就是PE,也称为胞元,都是相同的。
  2. 每个PE只与其相邻的PE进行通信,也就是说PE之间的通信具有局部性,而且通信是规则的。如果通信不是局部的而且不规则,那么网络中各PE的连接关系将会很错乱,硬件上进行布局布线也会遇到困难。
  3. 每个PE都有其局部的存储器,也就是PE的某些边带有延时,延时在硬件上对应于寄存器。这说明脉动阵列数据储存具有局部性,同时这也是流水运行的必要条件。

由于脉动阵列的以上特点,造成PE之间的高度流水化、规则化,因此系统吞吐率非常大且易于VLSI的实现。工程上为了扩大脉动阵列的用途,会引入一些弛豫,比如允许使用邻近(靠近但不是相邻)互联,使用数据广播操作,以及在系统中使用不同的胞元,尤其是边界上的胞元往往和网络内部胞元不太一样。

二. 脉动阵列设计方法原理

规则迭代算法依赖图
不是任意的算法都可以用脉动阵列来实现,只有规则的迭代算法,画出该算法的依赖图(DG),才能用投影技术设计出脉动结构。如果依赖图的任一节点沿某个方向的边存在,则称依赖图是规则的,通俗的说,依赖图的所有节点具有相同形式的边。
在这里插入图片描述
设计方法步骤

  • 投影矢量 d T = [ d 1 d 2 ] d^T=[d_1\\quad d_2] dT=[d1d2]:位移为d或者d的倍数的两个节点由同一个处理器执行。
  • 处理器空间矢量 P T = [ p 1 p 2 ] P^T=[p_1\\quad p_2] PT=[p1p2]:任何标示为 I T = [ i j ] I^T=[i\\quad j] IT=[ij]的节点将被处理器以 P T I P^TI PTI处理。
  • 调度矢量 S T = [ s 1 s 2 ] S^T=[s_1\\quad s_2] ST=[s1s2]:任何标示为 I T = [ i j ] I^T=[i\\quad j] IT=[ij]的节点在时间 S T I S^TI STI执行。
  • 硬件利用率 H U E = 1 / ∣ S T d ∣ HUE=1/\\vert S^Td\\vert HUE=1/STd:同样的处理器执行两次任务间隔 ∣ S T d ∣ \\vert S^Td\\vert STd时间单位。
    一个问题可选择不同的投影、处理器空间矢量和调度矢量设计出很多脉动结构。这些矢量必须满足下面推导的可行性限制调条件
  • 处理器空间矢量 P P P和投影矢量 d d d必须正交, P T d = 0 P^Td=0 PTd=0
  • 如果节点A和B映射到同一个处理器,则它们不能在同一时间执行, S T d ≠ 0 S^Td≠0 STd=0
  • 边映射:如果依赖图中包含边 e e e,则在脉动阵列中引入一条延时为 S T e S^Te STe的边 P T e P^Te PTe

三. FIR脉动阵列

3.1 设计B1(输入广播,结果移动,权重保持)

在这里插入图片描述
把DG图所在的i-j空间投影到一维脉动阵列空间。一维脉动阵列是一个2维空间,一个维度是PE空间,另一个维度是时间;同理二维脉动阵列是一个3 维空间,其中两个维度形成PE平面网络,另外一个维度是时间。对一维脉动阵列,时间轴不能和PE轴平行;对二维脉动阵列,时间轴不能和PE平面平行,即可行性限制条件。

如图4,蓝色坐标轴P是PE轴,红色坐标轴S是时间轴,图中的水平蓝线和竖直红线清楚的显示了节点(黄色)是如何投影到PE轴和时间轴的,这种投影的物理意义是:所有在同一条竖直红线上的节点在同一个周期被调度执行;所有在同一条水平蓝线上的节点在同一个处理单元被执行

脉动硬件电路构造
(1)可以看出图4所需的线形脉动网络包含3个PE,在硬件上可以先画出三个PE单元,如下图
在这里插入图片描述
(2)接下来,需要把DG中节点的边映射为各个PE之间的互联关系。对于 [ 1 , 0 ] T [1,0]^T [1,0]T方向的权值w边(水平向右),权值边连接相邻的两个水平节点,将该边投影到S上,跨越一个周期,将改变投影到P上,位于同一PE,这就表示,权值边在硬件上是同一个PE上延时一个周期的连线,如下图示
在这里插入图片描述
[ 0 , 1 ] T [0,1]^T [0,1]T方向的输入x边,投影到S没有跨度,投影到P是从低序号PE到高序号PE的边,反映到硬件上就是
在这里插入图片描述
最后,在看 [ 1 , − 1 ] T [1,-1]^T [1,1]T方向的输出y边,投影到S,跨越一个周期,投影到P,从高序号PE到相邻的低序号PE,反映到硬件上就是
在这里插入图片描述
(3)得出脉动结构图,结合DG中节点的具体内容,即可画出最终电路。图1节点的内容是一个乘法加法的级联单元,最终电路图如下示
在这里插入图片描述

3.2 设计B2(输入广播,权重移动,结果保持)

在这里插入图片描述
脉动硬件电路构造
(1)首先要用矢量来表示脉动空间的两个坐标轴P和S,这里令 S = [ 1 0 ] T S=[1\\quad 0]^T S=[10]T P = [ 1 1 ] T P=[1\\quad 1]^T P=[11]T,显然P和S不平行(叉积为0)。任一节点 [ i j ] T [i\\quad j]^T [ij]T在P轴和S轴的投影,就是点积,即 [ i j ] T [i\\quad j]^T [ij]T S ⋅ [ i j ] T S·[i\\quad j]^T S[ij]T周期被调度到 P ⋅ [ i j ] T P·[i\\quad j]^T P[ij]T处理器执行。

可以发现同一周期最多只有3 个节点被映射到P 轴的处理器执行,也就是说只需3个处理器便可以保证构造出功能正确的脉动阵列,画出三个PE单元,如下图
在这里插入图片描述
(2)在DG中存在三条边,分别是 [ 1 , 0 ] T [1,0]^T [1,0]T的权值w边、 [ 0 , 1 ] T [0,1]^T [0,1]T的输入x边以及 [ 1 , − 1 ] T [1,-1]^T [1,1]T的输出y边,如图5 的绿线所示。将 [ 1 , 0 ] T [1,0]^T [1,0]T的权值w边分别投影到S轴和P轴,有 S ⋅ [ 1 0 ] T = [ 1 0 ] T ⋅ [ 1 0 ] T = 1 S·[1\\quad 0]^T=[1\\quad 0]^T·[1\\quad 0]^T=1 S[10]T=[10]T[10]T=1 P ⋅ [ 1 0 ] T = [ 1 1 ] T ⋅ [ 1 0 ] T = 1 P·[1\\quad 0]^T=[1\\quad 1]^T·[1\\quad 0]^T=1 P[10]T=[11]T[10]T=1,也就是说权值脉动阵列中是有低序号PE 流向高序号PE且跨越一个周期。
在这里插入图片描述
接下来是 [ 0 , 1 ] T [0,1]^T [0,1]T的输入x边,分别投影到S轴和P轴,有 S ⋅ [ 0 1 ] T = [ 1 0 ] T ⋅ [ 0 1 ] T = 0 S·[0\\quad 1]^T=[1\\quad 0]^T·[0\\quad 1]^T=0 S[01]T=[10]T[01]T=0 P ⋅ [ 0 1 ] T = [ 1 1 ] T ⋅ [ 0 1 ] T = 1 P·[0\\quad 1]^T=[1\\quad 1]^T·[0\\quad 1]^T=1 P[01]T=[11]T[01]T=1,意味着输入x也是从低序号PE流向高序号PE,但没有时间上的延迟,也就是数据广播结构。
在这里插入图片描述
最后是 [ 1 , − 1 ] T [1,-1]^T [1,1]T的输出y边, 分别向S轴和P轴,有 S ⋅ [

以上是关于VLSI数字信号处理系统——第七章脉动结构设计的主要内容,如果未能解决你的问题,请参考以下文章

VLSI数字信号处理系统——第十章流水线结构的并行自适应递归滤波器

VLSI数字信号处理系统——第六章折叠

VLSI数字信号处理系统——第八章快速卷积

VLSI数字信号处理系统——第十五章数字强度缩减

VLSI数字信号处理系统——第十四章冗余运算

VLSI数字信号处理系统——第十三章位级运算架构