时分型矩阵计算器的制作方法

文档序号:6480778阅读:249来源:国知局
专利名称:时分型矩阵计算器的制作方法
技术领域
本发明涉及时分型矩阵计算器,尤其涉及通过依次选择矩阵元和对所选矩阵元进行相乘和相加运算,相乘两个矩阵的矩阵计算器。本发明是基于2001年2月5日提出的韩国专利申请第2001-5334号的,把这个专利申请列在这里以供参考。
背景技术
一般来说,在象图像信号处理那样的领域中,往往需要将矩阵相乘。为了进行矩阵的相乘运算,矩阵计算器利用数个乘法器和数个加法器获得相乘运算结果的数学表达式。
图1是传统矩阵计算器的方块图,具体显示了对两个3×3方阵进行相乘运算的矩阵计算器。图2显示了图1所示的每个模块的详细结构。
当第一矩阵是X矩阵,和第二矩阵是Y矩阵,X矩阵是X1X2X3X4X5X6X7X8X9,]]>和Y矩阵是Y1Y2Y3Y4Y5Y6Y7Y8Y9]]>时,X和Y矩阵的乘积是Z1Z2Z3Z4Z5Z6Z7Z8Z9=X1X2X3X4X5X6X7X8X9Y1Y2Y3Y4Y5Y6Y7Y8Y9=]]>X1Y1+X2Y4+X3Y7X1Y2+X2Y5+X3Y8X1Y3+X2Y6+X3Y9X4Y1+X5Y4+X6Y7X4Y2+X5Y5+X6Y8X4Y3+X5Y6+X6Y9X7Y1+X8Y4+X9Y7X7Y2+X8Y5+X9Y8X7Y3+X8Y6+X9Y9]]>。
如图1所示,处理上述运算的传统矩阵计算器包括三个模块10、20和30。把X1、X2、X3输入给第一模块10,把X4、X5、X6输入给第二模块20和把X7、X8、X9输入给第三模块30。并且,把Y1至Y9输入给模块10、20和30的每一个。
如图2所示,第一模块10包括分别把Y1至Y9输入给它的九(9)个乘法器11、存储来自乘法器11的输出的九(9)个D触发器13(三(3)组三(3)个为一组的D触发器-上部三个触发器、中部三个触发器和下部三个触发器)、和分别把来自九(9)个D触发器13的三个的输出输入给它的三(3)个加法器15。把X1输入给上部三个乘法器11,把X2输入给中部三个乘法器11,和把X3输入给下部三个乘法器11。把来自各个乘法器11的输出存储在D触发器13中,然后输入到加法器15。加法器15相加输入值,并且分别输出结果Z1、Z2、Z3。
第二和第三模块20和30的结构与图2所示的第一模块10的结构相同。也就是说,第二模块20输出Z4、Z5、Z6,和第三模块30输出Z7、Z8、Z9。
但是,传统矩阵计算器的缺点在于,由于它需要数个乘法器11和加法器15,因此电路体积宠大。也就是说,模块10、20、30总共需要二十七(27)个乘法器11,同时,模块10、20、30总共需要十八(18)个加法器15(因为加法器15相加三个输入,每个加法器15实际上由二个加法器组成,其中的每一个相加两个输入)。

发明内容
本发明就是为了克服上述现有技术的问题而作出的。因此,本发明的目的是提供一种通过依次计算相乘结果矩阵的矩阵元,能够减小加法器个数和电路尺寸的矩阵计算器。
上述目的是通过根据本发明对第一矩阵和第二矩阵进行相乘运算的矩阵计算器实现的,该矩阵计算器包括把第一和第二矩阵的矩阵元输入给它的矩阵元选择部分,该矩阵元选择部分不但用于依次选择输入矩阵元的每一个,输入矩阵元将构成相乘结果矩阵的每个矩阵元的每个子元的被乘数,而且用于依次输出所选矩阵元;计算部分,用于通过依次相加来自矩阵元选择部分的输出的乘积,依次计算相乘结果矩阵的每个矩阵元;存储部分,用于存储来自计算部分的输出;和控制信号生成部分,用于生成控制计算部分和存储部分操作定时的控制信号。
矩阵元选择部分包括把第一和第二矩阵的各个矩阵元并行地输入给它的多路复用器;和控制模块,用于生成选择来自多路复用器的输出的选择信号。计算部分包括乘法器,用于相乘来自多路复用器的输出;第一存储器,用于临时存储来自乘法器的输出;第二存储器;和加法器,用于将存储在第一存储器中的值与存储在第二存储器中的值相加,并且把相加运算的结果值输入到第二存储器。
控制信号生成部分包括数个触发器,用于生成把从控制时钟输出的信号分别延迟预定时钟脉冲个数的信号,然后把生成的信号输入到计算部分和存储部分。存储部分包括数个寄存器,用于依次存储来自计算部分的输出。
根据本发明,通过依次选择、相乘和相加两个被乘矩阵的矩阵元,依次计算出组成相乘结果矩阵的子元的和的矩阵元。因此,矩阵计算器可以用一个加法器、一个乘法器、和用于控制该加法器和该乘法器的一个控制电路构成,从而使电路尺寸变小。


通过参照附图详细描述本发明的优选实施例,本发明的上述目的和特征将更加清楚,在附图中,图1是传统矩阵计算器的方块图;图2是更详细地显示图1所示的第一模块的结构的方块图;图3是显示根据本发明的矩阵计算器的方块图;图4是更详细地显示图3所示的矩阵元选择部分的方块图;图5是更详细地显示图3所示的控制信号生成部分的方块图;图6是更详细地显示图3所示的计算部分的方块图;和图7是更详细地显示图3所示的存储部分的方块图。
具体实施例方式
下面参照附图给出根据本发明优选实施例的详细描述。
首先,为了说明根据本发明的矩阵计算器的计算原理,下面描述将矩阵相乘的结果矩阵分解成各个矩阵元的的方法。
如上所述,作为X矩阵和Y矩阵相乘的结果矩阵的Z矩阵是Z1Z2Z3Z4Z5Z6Z7Z8Z9=X1X2X3X4X5X6X7X8X9Y1Y2Y3Y4Y5Y6Y7Y8Y9=]]>X1Y1+X2Y4+X3Y7X1Y2+X2Y5+X3Y8X1Y3+X2Y6+X3Y9X4Y1+X5Y4+X6Y7X4Y2+X5Y5+X6Y8X4Y3+X5Y6+X6Y9X7Y1+X8Y4+X9Y7X7Y2+X8Y5+X9Y8X7Y3+X8Y6+X9Y9]]>。
正如上面表达式所显示的,获得结果矩阵的各个矩阵元如下Z1=X1Y1+X2Y4+X3Y7Z2=X1Y2+X2Y5+X3Y8Z3=X1Y3+X2Y6+X3Y9Z4=X4Y1+X5Y4+X6Y7Z5=X4Y2+X5Y5+X6Y8Z6=X4Y3+X5Y6+X6Y9Z7=X7Y1+X8Y4+X8Y7Z8=X7Y2+X8Y5+X8Y8Z9=X7Y3+X8Y6+X8Y9正如上面表达式所显示的,结果矩阵的每个矩阵元(Z1至Z9)是三个子元的和(例如,矩阵元Z1是子元X1Y1、X2Y4、和X3Y7的和)。并且,每个子元是X矩阵的一个矩阵元和Y矩阵的一个矩阵元的乘积。考虑到这种情况,在本发明中,依次计算矩阵元Z1至Z9的子元,然后,通过累加子元计算矩阵元Z1至Z9。
图3是根据本发明的矩阵计算器的方块图。根据本发明的矩阵计算器包括把被乘数,即X和Y矩阵的矩阵元X1至X9和矩阵元Y1至Y9同时输入给它的矩阵元选择部分70,用于依次选择和输出必要的矩阵元;计算部分40,用于对矩阵元选择部分70选择的矩阵元进行某种运算;存储部分60,用于存储计算部分40的计算结果,和最后输出结果矩阵的矩阵元;和控制信号生成部分50,用于生成控制计算部分40和存储部分60的控制信号。
图4是更详细地显示图3所示的矩阵元选择部分70的结构的方块图。矩阵元选择部分70包括多路复用器73,用于从输入矩阵元中选择和输出两个矩阵元;和控制模块71,用于生成控制多路复用器73的选择操作的选择信号sel_l和sel_h。
把第一和第二矩阵(即X和Y矩阵)的所有矩阵元X1至X9和矩阵元Y1至Y9同时输入给多路复用器73。多路复用器73受控制模块71生成的选择信号sel_l和sel_h驱动,并且根据选择信号sel_l和sel_h从第一矩阵的矩阵元X1至X9中选择一个矩阵元和从第二矩阵的矩阵元Y1至Y9中选择一个矩阵元。选择信号sel_l和sel_h在来自时钟(未示出)的每个脉冲上发生改变,可以把时钟安装在控制模块71中,也可以单独配备时钟,以控制控制模块71的顺序操作。因此,多路复用器73在每个时钟脉冲上选择不同的矩阵元,并且输出所选的矩阵元。把来自多路复用器73的两个输出分别输入到D触发器76,D触发器76把多路复用器7 3的输出延迟一个时钟脉冲,然后输出它。
驱动多路复用器73的两个选择信号sel_h和sel_1由高选择信号sel_h和低选择信号sel_l组成。高选择信号sel_h是指示作为相乘结果矩阵的矩阵Z的矩阵元之一的信号。低选择信号sel_1是指示高选择信号sel_h所指示的矩阵元的子元之一的信号。例如,如果高选择信号sel_h是2,和低选择信号sel_l是3,那么,驱动多路复用器73输出Z2的第三个子元,即X3Y8,因此,矩阵元选择部分70选择和输出X3和Y8。
作为开始驱动控制模块71的开始信号,例如,可以使用每半帧图像信号生成一次的垂直同步信号(sync)生成的开始信号。当把开始信号输入到控制模块71时,高选择信号sel_h在第一时钟脉冲上递增一(1)(高选择信号的初始值是0),同时,低选择信号sel_l也递增一(1)(低选择信号的初始值也是0)。低选择信号sel_l每个时钟脉冲都递增一(1),于是,每个时钟脉冲依次选择和输出第一矩阵元Z1的每个子元。高选择信号sel_l每三个时钟脉冲递增一(1)。于是,当完成有关第一矩阵元Z1的三个子元X1Y1、X2Y4、X3Y7的依次输出时,高选择信号sel_l增加到指示第二矩阵元Z2的二(2)。随着上面处理不断重复,依次输出用在计算矩阵Z的矩阵元的子元过程中的、第一和第二矩阵的矩阵元。
同时,除了选择信号sel_h和sel_l之外,控制模块71还生成控制控制信号生成部分50的控制信号(flag,stop)。‘flag’信号在每次计算矩阵Z的一个矩阵元结束时为一个时钟脉冲生成‘高’脉冲,以便指示计算一个矩阵元已经完成。‘stop’信号在计算矩阵Z的九(9)个矩阵元结束时为一个时钟脉冲生成一个‘高’脉冲,以便指示计算矩阵Z已经完成。并且,把‘stop’信号反馈到控制模块71,以通过‘高’脉冲初始化控制模块71。把控制信号(flag,stop)和高选择信号sel_h输入到控制信号生成部分50。
图5是更详细地显示图3所示的控制信号生成部分50的结构的方块图。控制信号生成部分50包括第一延迟部分51,用于延迟高选择信号sel_h;第二延迟部分53,用于延迟‘flag’信号;和第三和第四延迟部分55和57,用于延迟‘stop’信号(图3至6中的参考字母‘d’表示延迟信号,和‘d’前面的数字表示延迟时钟脉冲的个数。例如,‘_3d’表示将信号延迟了三个时钟脉冲)。
第一延迟部分51包括三个D触发器和生成把高选择信号sel_h延迟了三个时钟脉冲的信号sel_h_3d。第二延迟部分53包括二个D触发器和生成把‘flag’信号延迟了二个时钟脉冲的信号flag_2d。第三延迟部分55包括三个D触发器和生成把‘stop’信号延迟了三个时钟脉冲的信号stop_3d。第四延迟部分57包括一个与第三延迟部分55串联的D触发器,和生成把来自第三延迟部分55的输出信号stop_3d延迟了一个时钟脉冲的信号stop_4d。
图6是更详细地显示图3所示的计算部分40的结构的方块图。计算部分40包括把来自矩阵元选择部分70的多路复用器73的两个输出输入给它乘法器41;第一存储器43,用于存储来自乘法器41的输出;与第一存储器相邻地安装着的第二存储器47;和加法器45,用于相加来自第一和第二存储器43和47的输出,并且把所得的和输入到第二存储器47。第一和第二存储器43和47包括D触发器DFF,存储一个时钟脉冲的输入值,并且输出它。
在来自控制信号生成部分50的输出信号当中,信号stop_3d输入到第一存储器43,并且,当信号stop_3d成为‘高’脉冲时,初始化第一存储器43(把存储在D触发器中的值复位成0)。并且,在从控制信号生成部分50输出的信号当中,信号flag_2d和stop_4d输入到第二存储器47,并且,当这两个信号之一成为‘高’脉冲时,初始化第二存储器47(把存储在D触发器中的值复位成0)。
图7是显示图3所示的存储部分60的结构的图形。存储部分60包括9×1寄存器。在来自控制信号生成部分50的输出当中,信号sel_h_3d和flag_2d输入到存储部分60,和存储部分60受作为输入的信号sel_h_3d和flag_2d控制。来自计算部分40的输出Z依次输入到存储部分60,并且在来自控制信号生成部分50的信号sel_h_3d和flag_2d的控制下,存储部分64每隔二个时钟脉冲就移位矩阵元Z1至Z9,存储结果,和在完成了存储之后并行地输出同一结果。
下面描述根据本发明的矩阵计算器的运算。
把第一和第二矩阵(即,X和Y矩阵)的各个矩阵元X1至X9和Y1至Y9同时输入到矩阵元选择部分70的多路复用器73。当把开始信号输入到控制时钟71时,控制时钟71把原来都设为‘零’的高选择信号和低选择信号sel_h和sel_l递增一。因此,选择了计算矩阵Z的第一矩阵元Z1的第一子元所需的矩阵元,和多路复用器73输出所选的矩阵元X1和Y1。
伴随着每个时钟脉冲,低选择信号sel_l都递增一,于是,多路复用器73依次输出构成第一矩阵元Z1的子元的被乘数的、矩阵X和Y的矩阵元。当输出了第一矩阵元Z1的三个子元时,高选择信号sel_h递增一,和低选择信号sel_l再次从值‘一’开始递增。结果是,在每个时钟脉冲中依次输出构成第二矩阵元Z2的子元的被乘数的、矩阵X和Y的矩阵元。如上所述,低选择信号sel_l的值每个时钟脉冲都递增一,并且从一到三重复变化,而高选择信号sel_h的值每隔二个时钟脉冲递增一,并且从一变化到九。因此,依次输出了计算矩阵Z所需的矩阵元。
每当完成矩阵Z的一个矩阵元的子元的输出时,‘flag’信号在一个时钟脉冲内生成‘高’脉冲,而每当完成矩阵Z的所有矩阵元Z1至Z9的计算时,‘stop’信号在一个时钟脉冲内生成‘高’脉冲。
把来自多路复用器73的输出依次输入到计算部分40的乘法器41,乘法器41相乘来自多路复用器73的输出,和依次计算矩阵Z的矩阵元Z1至Z9的子元X1Y1,......。把从乘法器41输出的子元存储在第一存储器43中。然后,通过加法器45把存储在第一存储器43中的值存储在第二存储器47中。这里,第二存储器47的初始值被设置成零。由于把来自第一存储器43的输出和来自本身的输出的和输入给第二存储器47,因此,乘法器41依次计算的子元的总和存储在第二存储器47中。
由于来自多路复用器73的输出通过D触发器76和第一存储器73输入到第二存储器47,因此,在从输出矩阵X和Y的矩阵元开始延迟了两个时钟脉冲之后,把乘法器4l计算的子元输入给第二存储器47。由于只有在完成了矩阵Z的一个矩阵元(例如,Z1)的所有子元(例如,X1Y1、X2Y4、X3Y7)的输出之后,‘flag’信号才生成‘高’信号,因此,在存储了三个子元之和的一个矩阵元之后,复位把flag’信号延迟了二个时钟脉冲的信号flag_2d。于是,每当完成矩阵Z的一个矩阵元的计算时,把存储在第二存储器47中的值复位成零,为计算下一个矩阵元作好准备,此时,在复位第二存储器47之前把存储在第二存储器74中的值输入到存储部分60。
当上面处理重复九次时,所有矩阵元Z1至Z9的值都被计算部分依次计算出来,在完成了计算之后,‘stop’信号变成‘高’脉冲。于是,在生成‘stop’信号时复位控制时钟71,并且,在延迟三个和四个时钟脉冲之后,分别把第一和第二存储器43和47复位成零。于是,实现了初始化,以便对矩阵的下一个输入进行相乘运算。
从计算部分40依次输出的矩阵元Z1至Z9的值输入到由9×1寄存器组成的存储部分60。把把高选择信号sel_h延迟三个时钟脉冲得到的信号sel_h_3d和把‘flag’信号延迟二个时钟脉冲得到的信号flag_2d输入给存储部分60。
信号flag_2d移位存储部分60中的每个寄存器的值。于是,随着计算部分40的第二存储器47的值被输入到存储部分60的寄存器的最前部,存储部分60中的每个寄存器的值同时被移位。并且,随着这种处理不断重复,存储在第二存储器47中的各个矩阵元的值被依次存储在寄存器中。
信号sel_h_3d输出存储在存储部分60的寄存器中的值。此时,当信号sel_h_3d成为1001(2),即9时,输出存储部分60的寄存器的值。于是,当所有依次输入的矩阵元Z1至Z9的值被存储在寄存器中时,并行地输出Z1至Z9的值。结果是,矩阵Z,即矩阵X和Y的相乘结果被计算出来。这里,高选择信号sel_h被延迟了三个时钟脉冲,和‘flag’信号被延迟二个时钟脉冲,以便使依次输入的矩阵元Z1至Z9的移位时间与矩阵元Z1至Z9的输出时间同步。
尽管图3至7示范性地显示了对两个3×3方阵进行相乘运算的矩阵计算器,但是,应该明白,本发明可以应用于其它类型矩阵的计算。例如,通过把到矩阵元选择部分70的多路复用器73的输入的个数设置成八(8),和调整适合于4×4矩阵相乘的、控制信号的延迟时钟脉冲个数,可以实现相乘4×4矩阵的矩阵计算器。借助于适当的应用和对延迟时钟脉冲个数作必要调整,也可以容易地实现计算非方阵的矩阵计算器。
根据本发明,通过依次输出和相加作为被乘数的各个矩阵元的子元,可以依次进行两个矩阵的相乘。于是,借助于由一个乘法器和一个加法器组成的计算部分,以及选择和控制输入到计算部分的值的控制电路,可以构造硬件简单和尺寸小的矩阵计算器。
虽然已经对本发明的优选实施例进行了描述,但本领域的普通技术人员应该明白,本发明不应该仅限于所述的优选实施例,而是在所附所限定的本发明的精神和范围中,可以进行各种各样的改变和改进。
权利要求
1.一种对第一矩阵和第二矩阵进行相乘运算的矩阵计算器,包括矩阵元选择部分,第一和第二矩阵的矩阵元将被输入其中,该矩阵元选择部分用于依次选择输入矩阵元的每一个,输入矩阵元将构成相乘结果矩阵的每个矩阵元的每个子元的被乘数,和用于依次输出所选所述矩阵元的每一个;计算部分,用于通过依次相加来自矩阵元选择部分的输出的乘积,依次计算相乘结果矩阵的所述每个矩阵元;存储部分,用于存储来自计算部分的输出;和控制信号生成部分,用于生成控制计算部分和存储部分操作定时的控制信号。
2.根据权利要求1所述的矩阵计算器,其中,矩阵元选择部分包括多路复用器,第一和第二矩阵的各个矩阵元将并行地被输入其中;和控制模块,用于生成选择来自多路复用器的输出的选择信号。
3.根据权利要求2所述的矩阵计算器,其中,计算部分包括乘法器,用于相乘来自多路复用器的输出;第一存储器,用于临时存储来自乘法器的输出;第二存储器;和加法器,用于将存储在第一存储器中的值与存储在第二存储器中的值相加,并且把相加运算的结果值输入到第二存储器。
4.根据权利要求3所述的矩阵计算器,其中,控制信号生成部分包括数个触发器,用于生成把从控制时钟输出的信号分别延迟预定个时钟脉冲的信号,然后把生成的信号输入到计算部分和存储部分。
5.根据权利要求4所述的矩阵计算器,其中,存储部分包括数个寄存器,用于依次存储来自计算部分的输出。
全文摘要
矩阵计算器计算两个矩阵的乘积。该矩阵计算器包括矩阵元选择部分,用于从将构成相乘结果矩阵的每个矩阵元的子元的、两个矩阵的矩阵元中选择矩阵元,和依次输出所选矩阵元;计算部分,用于相加来自矩阵元选择部分的输出的乘积,和依次输出结果矩阵的矩阵元;和控制信号生成部分,用于生成控制计算部分和存储部分操作定时的控制信号。由于两个矩阵的各个矩阵元被依次选来相乘和相加,因此,可以依次计算作为子元之和的、相乘结果矩阵的矩阵元。于是,由于矩阵计算器可以由一个加法器和一个乘法器,以及一个控制电路构成,因此,电路的尺寸缩小了。
文档编号G06F17/16GK1369777SQ0210352
公开日2002年9月18日 申请日期2002年2月5日 优先权日2001年2月5日
发明者张根植, 姜凤淳 申请人:三星电子株式会社
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1