一种用于LU分解的脉动阵列结构的实现方法与流程

文档序号:19156056发布日期:2019-11-16 00:47阅读:来源:国知局

技术特征:

1.一种用于lu分解的脉动阵列结构的实现方法,该脉动阵列结构用于对n×n的输入矩阵a进行分解,其特征在于,所述的实现方法包括以下步骤:

s1、根据输入矩阵a的最大可能维数确定脉动阵列的维数及总体结构,总体结构包括阵列1模块、阵列2模块和状态控制器模块,其中,所述的阵列1模块用于计算上三角矩阵u,所述的阵列2模块用于计算下三角矩阵l,所述的状态控制器模块用于控制阵列1模块和阵列2模块的中间数据交换;

s2、设计阵列1模块,当输入矩阵a是n×n维,则阵列1模块是一个n行n列的三角阵列,即第n列的处理单元比第n-1列在第n-1行处少一个,n=1,2…,n,其中第1列处理单元为延时单元,记为pe1,其输入为输出为第2列至第n列处理单元pe为乘加处理单元,记为pe2,其输入为输出为对于pe1,其输入为矩阵的各行数据,第1行pe1输出接第2列pe2的第2行至第n行输出接第2列pe2对应行数的对于第n列pe2,其输入由阵列2模块的输出数据提供,第n行第n列的pe2输出接第n+1列各pe2的第n+1行至第n行的第n列的pe2输出接第n+1列对应行的pe2的以此类推直至第n行第n列,其中第n行第n列的pe1和pe2的即为计算得出的上三角矩阵u;

s3、设计阵列2模块,当输入矩阵a是n×n维,则阵列2模块是一个n行1列的条形阵列,其处理单元为除法器,记为pe3,每个pe3的输入参数由状态控制器模块控制阵列1模块的中间数据输入,各行输出接对应行各列pe2的

s4、设计状态控制器模块,状态控制器模块根据阵列1模块中各列pe1和pe2的输出状态控制下一列pe工作与否,同时将阵列1模块的中间数据选择输入到阵列2模块的输入端口。

2.根据权利要求1所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s2、设计阵列1模块的过程如下:

s21、设计阵列1模块的输入输出端口;

s22、设计阵列1模块的pe1;

s23、设计阵列1模块的pe2。

3.根据权利要求2所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s21中,每个阵列1模块有n个输入端口,每个输入端口有1个输入参数xin,n个输出端口,每个输出端口有1个输出参数xout,每个输入输出端口对应矩阵各行,其实现过程如下:

当输入使能信号线置高后的第二个时钟开始,第一个时钟每个xin对应输入a11、a21、...、an1,第二个时钟每个xin对应输入a12、a22、...、an2,以此类推,直至整个矩阵输入完成;

从数据开始输入开始,第一个时钟第1个xout输出u11,第二个时钟第1、2个xout输出u12、u21,第三个时钟第1、2、3个xout输出u13、u22、u31,以此类推,直至整个上三角矩阵u输出完成。

4.根据权利要求2所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s22中,阵列1模块的pe1将输入参数映射为输出参数其实现过程如下:

先判断输入使能信号是否有效,若有效,则每个时序若无效,则

5.根据权利要求2所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s23中,阵列1模块的pe2将输入参数映射为输出参数并定义内部寄存器cv和c,其实现过程如下:

在工作使能信号上升沿时:

下降沿时:

根据cv的状态在每个时钟上升沿进行不同的运算:

6.根据权利要求1所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s3、设计阵列2模块的过程如下:

s31、设计阵列2模块的输入输出端口;

s32、设计阵列2模块的pe3。

7.根据权利要求6所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s31中,每个阵列2模块有n个输入端口,每个输入端口有2个输入参数n个输出端口,每个输出端口有1个输出参数其实现过程如下:

在阵列1模块数据输入的第1个时钟,输入第1列pe1的输入第1行的pe1的在第3个时钟,输入第2列pe2的输入第2行的pe2的以此类推,直至第n行第n列输入完成;

输出为pe2所需的对应的c值,在第2、4、6...个时钟输入进pe2的同时即为所求下三角矩阵l。

8.根据权利要求6所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s32中,阵列2模块的pe3根据输入参数映射为输出参数其实现过程如下:

对于输入参数

9.根据权利要求1所述的一种用于lu分解的脉动阵列结构的实现方法,其特征在于,所述的步骤s4、设计状态控制器模块的过程如下:

判断工作使能是否有效,若有效,进入状态1,若无效,初始化为0,初始化为1,阵列1模块的各列处理单元的工作使能初始化为无效;

进入状态1,使能第1列处理单元,即pe1;

进入状态2,阵列2模块各分别输入第1列各行处理单元pe1的输入第1列第1行处理单元pe1的

进入状态3,使能第2列处理单元,即pe2;

进入状态4,阵列2模块各分别输入第2列各行处理单元pe2的如阵列2模块的第2行输入阵列1模块第2列第2行处理单元pe2的第1行无输入则默认为0;输入第2列第2行处理单元pe2的

进入状态5,使能第3列处理单元,即pe2;

进入状态6,阵列2模块各分别输入第3列各行处理单元pe2的如阵列2模块的第3行输入阵列1模块第3列第3行处理单元pe2的第1、2行无输入则默认为0;输入第3列第3行处理单元pe2的

以此类推,直至第n列第n行处理完成,回到初始状态,等待工作使能信号。


技术总结
本发明公开了一种用于LU分解的脉动阵列结构的实现方法,该脉动阵列结构,包括计算上三角矩阵的运算单元阵列、计算下三角矩阵的运算单元阵列、控制数据输入的状态控制器模块。相较于已有的运算结构,本发明具有以下创新:(1)矩阵数据按行并行输入,无需规划输入顺序。(2)将除法器从阵列处理单元中单独提取出来,减少除法器的数量,提高资源利用率。(3)将脉动阵列部分并行化,在保持高度流水性的同时减少运算所需的时钟周期数。(4)本发明设计的高维脉动阵列结构可兼容较低维的矩阵LU分解,可实现不同维数矩阵共用同一结构,避免重新设计结构。本发明可以应用于信号处理、数值分析、人工智能等领域矩阵分解问题的硬件实现。

技术研发人员:易清明;陈嘉文;符清杆
受保护的技术使用者:暨南大学
技术研发日:2019.07.30
技术公布日:2019.11.15
当前第2页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1