这一章,与大家一起讨论四种上古神器(包括:重定时、展开、折叠和脉动)的最后一件:脉动阵列。说起来这项技术还是咱们“龙的子孙”发明的,来自卡内基梅隆大学(现在哈佛?)的孔祥重教授。
不过在正式讲解脉动阵列之前,有必要给大家打个预防针:脉动阵列在所讨论的四件神器中应该是最费脑筋的一件,要想真正理解并掌握脉动阵列,不仅需要良好的立体几何思维,也需要超人的细心,同时还需要一点点创造性思维。这种难啃的东西,很多人会放弃,但如果你深入进去,你肯定着迷。
这里所讨论的脉动阵列只能说是入门,很多学者正努力扩展传统的脉动阵列理论,以拓宽脉动阵列的应用领域。对这方面感兴趣的同学可以google 看文献深入学习,这里我们的目的就是讲解最简单的脉动阵列设计技术,带领大家入门,至于登堂入室那是你自己的事情咯!
脉动阵列到底是什么呢?如幻灯片1给出的一维脉动阵列(线形)和二维脉动阵列(矩形),它们与主处理器的关系就像是“心脏和脉络”的关系,脉动阵列不断的接收从处理器泵出的待处理数据,然后从另一边将处理后的结果 传回处理器。
较为正规的定义:多个相同的处理单元(简称PE)按一定互联规则组成的网络,称为脉动阵列。脉动阵列可以是一维线形、二维三角形、二维矩形、二维六边形、二维二叉树型、三
维长方体形等等。
脉动阵列(这种PE网络)的
特点是:
1. 每一个节点,也就是PE,也称为胞元,都是相同的。
2. 每个PE只与其相邻的PE进行通信,也就是说PE之间的通信具有局部性,而且通信是
规则的。可想而知如果通信不是局部的而且不规则,那么网络中各PE的连接关系将会
很错乱,硬件上进行布局布线也会遇到困难。
3. 每个PE都有其局部的存储器,也就是PE的某些边带有延时,延时在硬件上对于寄存
器。这说明脉动阵列数据储存具有局部性,同时这也是流水运行的必要条件。
由于脉动阵列的以上特点,造成PE之间的高度流水化、规则化,因此系统吞吐率非常大且易于VLSI的实现。流水化意味着吞吐率大,规则化则意味着版图流片成功率大。
以上所说的脉动阵列特点是一种理想的特点,工程上为了扩大脉动阵列的用途,会引入一些
弛豫,比如允许使用邻近(靠近但不是相邻)互联,使用数据广播操作,以及在系统中使用不同的胞元,尤其是边界上的胞元往往和网络内部胞元不太一样。
幻灯片2给出了脉动阵列的keywords,大家可以在看完这一章,看懂这一章之后好好来品味这些keywords所代表的含义。
虽然还没开始脉动设计技术的讨论,但是通过前面的铺垫,大家应该知道这么一点:脉动阵列是高度流水化和规则化的多处理器网络(注意,处理器/胞元/PE 为同一个东西,均指脉动阵列的一个处理单元)。
既然脉动阵列是高度规则的,那么脉动阵列所完成的
功能是不是也应该是规则的呢?
这是脉动入门的第一道坎,一定要记住:不是任意的算法都可以用脉动阵列来实现,只有规则的迭代算法,才能用投影技术设计出脉动结构。问题又来了,
怎么判断一个迭代算法是不是规则的?FIR是规则迭代吗?矩阵乘法是不是规则迭代?其他等等…….
判断一个迭代算法是否规则,首先画出该算法的依赖图(DG),关于DG是什么,在 第一章、敲门砖——入门的准备 的内容有讲到,这里我们假设迭代算法的DG是已知,只讨论
如何根据规则DG设计出脉动结构。比如三阶FIR滤波器和2x2矩阵乘法的DG如下图1和图2所示,
jx0x1x2x3x4w2w1w00图 1
1234i
三阶FIR依赖图,y(n)=w0*x(n)+w1*x(n-1)+w2*x(n-2)
c12b22c11b21a12b12c22c21a22jki0b11a110图 2
0a2102x2矩阵乘法C=AxB
请大家根据第一章中对DG的解说来验证这两个DG,并总结出一些根据规则迭代公式画出DG的做法;这两个DG也正是课本上例子。
规则DG的判据:
如果依赖图的任一节点沿某
个方向的边存在,则称依赖图是规则的;通俗的说,依赖图的所有节点具有相同形式的边。
T
例如图1的每个节点都可以看成具有三条边,一条从左向右[1,0]的权值边,一条从下到上[0,1]T的输入边,一条斜向右下角[1,-1]T的输出边。图2的每个节点也有三条边,分别是[1,0,0]T
TT
方向的输入b,[0,1,1]方向的输入a 和 [0,0,1]方向的输出“c”。说起来,这个判据也不是绝对的严格,大家体会体会吧,也许等你大致弄明白脉动的设计方法之后,你会理解现在所说的这些话。这里值得注意的是,我们用[0,0,1]之类的符号表示方向,比如在图二中,清楚的标出了坐标系i-j-k,那么[0,0,1]T就表示向上的一个方向,又比如在图一中是以i-j构成坐标系,那么[1,-1]就表示斜向右下角的方向。
幻灯片3给出脉动阵列的设计步骤,大家可以“先死记硬背”着。接下来的内容将以3阶FIR和2x2矩阵相乘为例,详细讨论如何来导出课本上所列出的各个设计结果。
T
T
题外话:我自己在学习这一章的时候,看到这里一直是晕晕乎乎的状态,根本不解脉动阵列是什么东西。但是在例子的学习中,突然开窍了,也明白了所有前面这些内容的意思,所以在以下例子的讨论中,大家一定要咬紧牙关,不论你是在和我一起学习,还是你在自学,只要你开动脑筋开足马力去研究这些课本上这些例子,肯定能开窍。
例一、3阶FIR滤波器的脉动阵列设计,DG如图1所示。
脉动阵列设计的方法有很多,比如代数法、参数法、变换法和 投影法等等。我们所讨论是投影法,也是最直观的一种方法。在立体几何中,所谓的投影是什么?
百度搜索“77cn”或“免费范文网”即可找到本站免费阅读全部范文。收藏本站方便下次阅读,免费范文网,提供经典小说综合文库【SoCVista】7.脉动阵列在线全文阅读。
相关推荐: