一种新型“一间隔并行”高效矩阵乘法器的利记博彩app

文档序号:6389458阅读:180来源:国知局
专利名称:一种新型“一间隔并行”高效矩阵乘法器的利记博彩app
技术领域
本发明属于电子技术领域,具体涉及一种“一间隔并行”结构的高效矩阵乘法器。
背景技术
并发运算(Concurrent)是现代计算机体系设计中非常重要的方面,它主要是指大量的计算在同时段进行,是并行运算的一种特殊形式。在DSP设计,计算机体系结构实现等方面都有十分广泛的应用。
一般我们采用处理器阵列的方式来实现并发运算,具体是通过有规则排列的VLSI芯片,实现向量和矩阵的运算,进而实现各种实际的并发运算[4]。
在各种排列规则中,矩阵乘法器的实现是最为重要的,各种向量都可以看成是特殊的矩阵。因此,设计高效和快速的矩阵乘法器,就成为了并发运算系统设计的核心问题。
矩阵乘法器的基本单元是乘法运算单元(如图1所示),再加上三个数据寄存器RA,RB和RC。其中A是乘数,B是被乘数,C是乘积。单元的输入和输出关系为 阵列连接方式主要有三种线性连接,正交连接和六角形连接(如图2)。通过这些连接,可以实现向量和矩阵运算,以及线性方程组的求解。这里所讨论的主要是六角形连接。
两个矩阵相乘,在数学上可以将它们分别展开,然后求解。即[A]·[B]=[C]。。。(1)a11a12···a1na21a22···a2n···an1an2···ann·b11b12···b1nb21b22···b2n···bn1bn2···bnn=c11c12···c1nc21c22···c2n···cn1cn2···cnn---(2)]]>一般矩阵是稀疏矩阵,而稀疏矩阵一般可以压缩成带状矩阵,这样就可以大大节省乘法累加器的数目。如果矩阵A和B是带状矩阵,其带宽分别为WA和WB,那么矩阵C也是带状矩阵,其带宽为WC=WA+WB-1[1,2,3]
将带状矩阵展开,可以得到具体的乘法器输入输出关系
最基本的Kung-Leiserson矩阵乘法器[4,5,6]使用六角矩阵,WA=WB=4,所以该矩阵是4×4矩阵,输出矩阵C的带宽为7。数据按照节拍送入,输出矩阵C由六角矩阵的上方送出(如图3)。
该矩阵乘法器通过乘数阵列,被乘数阵列和输出阵列的同步脉动,从而实现了矩阵相乘的功能。
该矩阵乘法器有很大的缺点,就是单元利用率太低,仅为三分之一,即每一个节拍运算的时候,16个单元中仅5个单元或6个单元在运算,其它的单元为空操作。
n阶矩阵相乘所需要的时间节拍为3n+min(WA,WB),其中min(WA,WB)是头尾未充分利用的时间节拍。如果n>>WA,WB,则时间节拍近似为3n。
对于大规模并发运算来说,这样的结构太浪费资源了。因此许多研究者设计了新结构的高效矩阵乘法器,比如Huang-Abraham乘法器和带有容错处理功能的CHAN-Wey乘法器[1],但这些乘法器的利用率和稳定程度并不高,本发明在最基本的Kung-Leiserson矩阵乘法器的基础上,设计出了更好的结构,从而提高了矩阵相乘的效率和运算的稳定程度。
参考文献[1]S.-W.Chan and C.-L.Wey,The design of concurrent error diagnosable systolicarrays for band matrix multiplications,IEEE Trans.Computer-Aided Design.,vol.7,pp.21-37,Jan.1988. J.M.RABAEY,Chapter 7Designing Arithmetic Building Blocks,in Digital IntegeratedCircuits(a design perspective).Prentice-Hall International,Inc.,pp 383-433,1999. X.M.Li,and Z.R.Jiang,Chapter 5System of Linear Equations Parallel Solution,inParallel Algorithms.Hunan,ChinaHunan Science and Technology Press,pp 247-301,1991. H.T.Kung,Why systolic architecture?,IEEE Computer,vol.15,No 1,pp.37-45,Jan.1982. H.T.Kung,and C.E.Leiserson,Algorithms for VLSI processor arrays,in Introduction to VLSISystems,by C.A.Mead and L.A.Conway.Reading,MAAddison-Wesley,1980. K.H.Huang and J.A.Abraham,Efficient parallel algorithms for processor arrays,inProc.IEEE ICPP,pp.271-279,1982.

发明内容
本发明提出了一种高效的矩阵乘法器,能够充分利用乘法单元,在同一时刻有尽可能多的单元并行运算。
本发明提出的“一间隔并行”矩阵乘法器,是通过对每层数据之间的间隔进行压缩(矩阵压缩),然后重新设计各个乘法单元的连接方式和数据的输入;并添加附加运算单元,以实现乘法器的正确功能。进而达到充分利用乘法器的并行流程,设计更高效率的乘法器的目的。
本发明提出的矩阵乘法器采用了以下处理方式矩阵压缩、先行处理和数据前移。
矩阵压缩最基本的Kung-Leiserson矩阵乘法器(图3)的输出矩阵C的排列是很有规律的,以c11,c22,.....cnn为中轴,其余各项分别在左右展开。每个相邻的cnn之间的距离是3个时间节拍;本发明提出的“一间隔并行”矩阵乘法器将输出矩阵相邻的cnn之间的节拍缩短,使得输出矩阵C变得比较密集,而同样能够实现乘法的功能。
先行处理将输出矩阵C压缩后,乘数矩阵A和被乘数矩阵B的排列也会变得密集,但是这些排列并不是简单的把原来的系数矩阵进行压缩,而是把原来需要在相乘时进行的计算先行处理,以系数表的方式存入到乘法器中,以达到加快乘法器速度,提高单元利用率的目的。
数据前移“矩阵压缩”和“先行处理”之后,对矩阵乘法器进行调整,为了避免出现乘数和被乘数错位的情况,将落后的那个乘数提前(如果落后的是被乘数,那么就将被乘数提前),而不是照着基本六角形连接的方式去排列(图4)。通过这些方法,可以提高乘法器的效率,实现稳定的乘法功能。
最基本的Kung-Leiserson矩阵乘法器,每个相邻的cnn之间的距离是3个时间节拍。本发明将时间间隔压缩为1个时间节拍,并通过“先行处理”和“数据前移”的方法,使得乘数,被乘数的输入与运算单元的节拍能够配合上。
为了使乘法器能够正常工作,本发明添加了两个附加运算单元(移位单元)(图5),其功能是将输入端送入的数据,在下一个时钟节拍的时候,送到输出端,从而满足乘法运算的功能,使得并行运算不会断链。该矩阵乘法器被命名为“一间隔并行高效矩阵乘法器”,具体的结构如图6所示。其具体节拍情况如下
1、第一拍结果数据矩阵C的部分数据出现在乘法矩阵下端;2、第二拍更多的结果数据矩阵C的数据出现在乘法矩阵下端,且第一拍中输入的矩阵C中的数据向上移动一个乘法单元。同时输入乘数和被乘数数据矩阵A和B的部分数据,该数据根据具体的连接方式同时出现在几个乘法单元的输入端。眥结果矩阵C的部分数据和相应的乘数及被乘数数据相遇,开始进行单个乘法单元的乘加运算;3、第三拍结果矩阵C的输入数据继续向上移动一个乘法单元,同时乘数矩阵A和被乘数矩阵B的数据分别向右下和左下移动一个乘法单元。有更多的乘法单元开始进行乘加运算。此时数据出现在移位单元输入端;4、第四拍数据矩阵A、B和C的数据继续按相应的方向移动,所有的乘法单元都开始了运算,单元利用率达到了最高。上一拍中出现在移位单元的数据,被完整地判定以输出端,参与相应乘法单元的运算;5、第五拍结构矩阵C的部分数据已经得到了结果,通过乘法矩阵的上方送出。其他的数据继续进行运算和移动;6、第六拍数据的运算和移动持续进行,直到结果矩阵C的所有数据都计算完为止。
从节拍图中可以看出,除去头尾未充分利用的时间节拍外,在每一个节拍运算时,16个乘法单元全都在运算,两个“移位单元”没有参与运算,因此单元利用率为16/18,约88.89%。采用这种结构,n阶矩阵相乘所需要的平均时间节拍为9n/8+min(WA,WB),其中min(WA,WB)是头尾未充分利用的时间节拍。如果n>>WA,WB,则时间节拍近似为9n/8=1.125n。
本发明原理的特点1、采用软件中并行处理的原理,实现了硬件的并行处理,以达到加快乘法器处理速度,提高效率的目的。
2、利用“矩阵压缩”,“先行处理”,“数据前移”和“附加移位单元”的思想,对并行化后的乘法器连接次序进行调整,以实现正确的乘法功能。
3、通过对矩阵数据的间隔进行压缩,能够实现接近90%左右的乘法单元利用率,而且稳定状态时的乘法单元利用率比较平稳。此外该乘法器电路连接比较复杂,“附加移位单元”会对芯片的集成化产生影响,适用于强调乘法器的利用率及其稳定度的场合。
本发明具有以下优点1、通过对矩阵数据的间隔进行压缩,使其从最基本的Kung-Leiserson矩阵乘法器的“三个时钟节拍间隔”减少为“一个时钟节拍间隔”,并通过调整乘法单元的连接方式和数据的输入,以及“附加移位单元”的方法,解决了并行运算断链的问题,从而实现了接近90%左右的乘法单元利用率,运算效率比最基本的Kung Leiserson乘法器1/3的利用率提高了166.67%。
2、由于实现了接近90%左右的乘法单元利用率,“一间隔并行”高效矩阵乘法器的乘法运算速度比最基本的Kung-Leiserson乘法器快了很多。
3、本发明能够较快地达到稳定工作状态(4个时钟节拍);而且稳定状态时乘法单元利用率恒定为90%左右,不会上下波动。


图1乘法运算单元图2阵列连接方式图3最基本的Kung-Leiserson矩阵乘法器图4数据前移图5附加运算单元(移位单元)示意6一间隔并行高效矩阵乘法器及其时间节拍图7两种乘法器结构在不同时间节拍下对应的单元利用率。
图中标号1为乘法单元,2为移位单元(附加运算单元)。
具体实施例方式
下面通过具体实例进一步说明本发明对图6所示的乘法器结构进行单时钟节拍测试,可以得到具体的数据流图。最基本的Kung-Leiserson矩阵乘法器的输入数据流是沿着斜线方向,依次出现在乘法单元的数据输入端的;而“一间隔并行”高效矩阵乘法器的输入数据是同时出现在下面的若干个选定的乘法单元和附加移位单元的数据输入端的(图6)。附加移位单元将输入数据暂存一个时间节拍,然后送入相邻的乘法运算单元,以保证并行运算能够正常进行。
通过与原有的结果进行比较,可以得到相应的效率和驱动表。从表中看出,“一间隔并行”高效矩阵乘法器的效率要比最基本的Kung-Leiserson结构1/3的利用率提高了166.67%,但同时驱动多个乘法单元的情况要比原来的Kung-Leiserson乘法器多。
表1不同时钟节拍的乘法单元利用数目

表2不同时钟节拍的乘法单元利用率

表3驱动乘法单元的数目

表4矩阵乘法器的总体性能比较

A.w1和w2是两个输入数据矩阵的带宽B.平均利用效率=每节拍平均运算乘法单元数目/运算乘法单元总数C.min(w1,w2)指乘法器达到稳定状态之前所经过的最小时钟节拍数目图7给出了“一间隔并行”高效矩阵乘法器在不同时间节拍下对应的单元利用率,并与最基本的Kung-Leiserson乘法器的相应单元利用率进行比较,可以看出平均单元利用率从约33%上升为约90%,并且乘法器能够较快地达到正常工作状态。
因此,该实例表明,采用本发明进行乘法运算,可以极大地提高乘法运算单元的利用率,加快乘法器的运算速度,且运算稳定度非常高。代价是电路的结构比较复杂,且“附加移位单元”会对芯片的集成化产生影响。因此该乘法器适用于强调乘法器的利用率及其稳定度,而不在意乘法器复杂性和成本的场合。
权利要求
1.一种矩阵乘法器,以基本的Kung-Leiserson矩阵乘法器的基础,其特征在于采用以下处理方式(1)矩阵压缩,将Kung-Leiserson矩阵乘法器输出矩阵C相邻的Cnn之间的节拍缩短为一个节拍;(2)先行处理,将输出矩阵C压缩后,对乘数矩阵A和被乘数矩阵B,把原来需要相乘时进行的计算先行处理,以系数表示的方式存入到乘法器中;(3)数据前移,将落后的那个乘数提前,使得乘数同时出现在下面几个乘法单元的输入端。
2.根据权利要求1所述的矩阵乘法器,其特征在于还添加两个附加运算单元,将输入端输送入的数据,在下一个时钟节拍的时候,送到输出端。
3.根据权利要求2所述的矩阵乘法器,其特征在于具体节拍情况如下(1)第一拍结果数据矩阵C的部分数据出现在乘法矩阵下端;(2)第二拍更多的结果数据矩阵C的数据出现在乘法矩阵下端,且第一拍中输入的矩阵C中的数据向上移动一个乘法单元;同时输入乘数和被乘数数据矩阵A和B的部分数据,该数据根据具体的连接方式同时出现在几个乘法单元的输入端;此结果矩阵C的部分数据和相应的乘数及被乘数数据相遇,开始进行单个乘法单元的乘加运算;(3)第三拍结果矩阵C的输入数据继续向上移动一个乘法单元,同时乘数矩阵A和被乘数矩阵B的数据分别向右下和左下移动一个乘法单元,有更多的乘法单元开始进行乘加运算,此时数据出现在移位单元输入端;(4)第四拍数据矩阵A、B和C的数据继续按相应的方向移动,所有的乘法单元都开始了运算,单元利用率达到了最高,上一拍中出现在移位单元的数据,被完整地判定以输出端,参与相应乘法单元的运算;(5)第五拍结构矩阵C的部分数据已经得到了结果,通过乘法矩阵的上方送出;其他的数据继续进行运算和移动;(6)第六拍数据的运算和移动持续进行,直到结果矩阵C的所有数据都计算完为止。
全文摘要
本发明为一种“一间隔并行”高效矩阵乘法器。它以基本的Kung-Leiserson矩阵乘法器为基础,对每层数据之间的间隔进行压缩,然后重新设计各个乘法单元的连接方式和数据输入,并添加附加两个运算单元(移位单元),以实现乘法器的正确功能,从而得到更高效率的乘法器,其乘法单元的利用率达到90%,其运算速度比Kung-Leiserson乘法器快得多。
文档编号G06F7/48GK1560726SQ20041001635
公开日2005年1月5日 申请日期2004年2月16日 优先权日2004年2月16日
发明者杨贇, 赵文庆, 杨 申请人:复旦大学
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1