法律状态公告日
法律状态信息
法律状态
2017-05-03
未缴年费专利权终止 IPC(主分类):G06F7/44 授权公告日:20070411 终止日期:20160312 申请日:20030312
专利权的终止
2007-04-11
授权
授权
2004-12-01
实质审查的生效
实质审查的生效
2004-09-22
公开
公开
技术领域
本发明涉及数字电路中的乘法器,更具体地说,本发明涉及一种乘法器的重构运算方法及可重构乘法器
背景技术
乘法器是现代高性能微处理器和数字信号处理器DSP的通用功能部件。但是一般的乘法器部件只能完成一种乘法功能,如32位乘法器只能完成两个32位操作数的乘法运算,16位乘法器则只能完成两个16位操作数的乘法运算,8位乘法器则只能完成两个8位操作数的乘法运算。
发明内容
本发明的目的是克服现有技术的不足,使得一个乘法器可以进行不同位数的乘法,并且可同时进行多个乘法运算,从而提出一种乘法器的重构运算方法及可重构乘法器。
本发明的技术方案为:
一种乘法器的重构运算方法,包括以下步骤:
(1)指令寄存器读取乘法指令;所述乘法指令包括操作数,所述操作数包括2N位的被乘数部分和2N位的乘数部分;所述乘法指令还包括一个表明乘法运算个数2M的重构码,其中0≤M≤N;相应地,被乘数部分分为2M个2N-M位的被乘数,乘数部分分为2M个2N-M位的乘数;
(2)指令寄存器分别发送操作数中的被乘数部分和乘数部分到被乘数寄存器和乘数寄存器;
(3)由部分积暂存器分别对2M个乘法按照booth算法进行逻辑运算获得2M个乘法运算的部分积,并储存在部分积暂存器中;其中,所述的部分积暂存器为2N行2N+1列的位阵列,部分积暂存器根据重构码分为2M行2M列的块阵列,每个块阵列都为2N-M行2N-M+1列的位阵列;第i个乘法运算的部分积存储于部分积暂存器的第i行第i列块阵列中,其中,1≤i≤2M;
(4)部分积累加器将所述部分积累加器中的结果进行累加运算,之后将累加结果发送到结果校正器中;
(5)结果校正器根据重构码对累加结果进行修正,修正方法为:对累加结果的第2N-M+1×j位分别与1作异或运算,修正后结果中的第[2N-M+1×(j-1)+1]~(2N-M+1×j)位为第j个乘法运算的结果,其中1≤j≤2M。
一种可重构乘法器,该乘法器包括:
指令寄存器,用于读取并存储乘法指令,所述乘法指令包括操作数和一个表明乘法运算个数的重构码;
被乘数寄存器和乘数寄存器,其输入端与指令寄存器的数据输出端连接,用于接收并积存操作数;
部分积暂存器,其数据输入端与被乘数寄存器和乘数寄存器的输出端连接,用于存储乘法运算过程中的部分积;
部分积累计器,其数据输入端与部分积暂存器的数据输出端连接,用于累加部分积暂存器中存储的部分积;
其特征在于:
所述部分积暂存器还包括与指令寄存器连接的第一控制端1,用于接收指令中的重构码,并根据重构码控制一个或多个乘法运算的部分积在部分积暂存器内的存放位置;
还包括一结果校正器,用于修正累加结果;所述结果校正器的数据输入端与部分积累加器的数据输出端连接,用于接收累加结果;
所述结果校正器还包括与指令寄存器连接的第二控制端2,用于接收重构码,并根据重构码控制累加结果中的需修正位。
依据本发明的技术方案设计的乘法器,不仅可以提供一般乘法器的功能,还可以提供多路乘法的并行性支持。例如,在基于单指令流多数据流SIMD的微处理器中,如果数据流短向量长度为128位,那么可以利用本发明的可重构乘法器进行两个128位向量的乘累加运算,还可以根据功能要求将向量乘法器重构成4个32位乘法器或者8个16位乘法器或者32个8位乘法器。该乘法器可以用于通用微处理器或者数字信号处理器中的乘法器或者乘累加器。
附图说明
图1是本发明可重构乘法器的结构示意图;
图面说明
第一控制端1 第二控制端2
具体实施方式
下面结合附图与具体实施方式对本发明作进一步详细描述。
以32×32可重构乘法器为例阐述本发明,图1示出了该乘法器的结构示意图。该乘法器包括指令寄存器、被乘数寄存器、乘数寄存器、部分积暂存器、部分积累加器和结果校正器。被乘数寄存器和乘数寄存器的输入端与指令寄存器的数据输出端连接;部分积暂存器的数据输入端与被乘数寄存器和乘数寄存器的输出端连接;部分积累计器的数据输入端与部分积暂存器的数据输出端连接;部分积暂存器的第一控制端1与指令寄存器连接;结果校正器的数据输入端与部分积累加器的数据输出端连接,其第二控制端2与指令寄存器连接。
指令寄存器用于存储乘法指令的指令寄存器,如表1所示。该指令寄存器中包括32位的被乘数部分和乘数部分以及重构码,重构码包含乘法运算的重构信息。
表1
32位的被乘数寄存器和乘数寄存器用于接收指令寄存器中的操作数。部分积暂存器为32×64的位阵列,用于存储乘法运算的部分积,部分积的存放方式由部分积暂存器的第一控制端1接受到的重构码确定。当该乘法器要重构为2个16×16的乘法器时,被乘数部分被视为两个16位的被乘数,乘数部分被视为两个16位的乘数,由重构码则标识该重构信息。部分积暂存器根据重构码分别对两个乘法按照booth算法进行逻辑运算,这两个乘法的部分积在部分积暂存器中的存放方式如表2所示。
表2
然后由部分积累加器对部分积进行累加,进行累加运算时并不区分这两个部分积,而是视为一体运算。累加结果为一64位行阵列,如表3所示。由结果校正器对累加结果进行校正,累加结果中的需修正位由结果校正器的第二控制端2接收到的重构码控制。在本实施例中,校正方法为对累加结果的31位和63位(表3中的加*的位)分别与修正因子1作异或运算。校正后的结果中,0~31位和32~63位分别为两个乘法的最终结果。
表3
当该32×32可重构乘法器重构为4个8×8的乘法器时,被乘数部分被视为4个8位的被乘数,乘数部分被视为4个8位的乘数,由重构码则标识该重构信息。部分积暂存器根据重构码分别对两个乘法按照booth算法进行逻辑运算,这4个乘法的部分积在部分积暂存器中的存放方式如表4所示。
表4
然后由部分积累加器对部分积进行累加,进行累加运算时并不区分这4个部分积,而是视为一体运算。累加结果为一64位行阵列,如表5所示。由结果校正器对累加结果进行校正,校正方法为对累加结果的15位、31位、47位和63位(表5中的加*的位)分别与修正因子1作异或运算。校正后的结果中,0~15、16~31、32~47和48~63位分别为4个乘法的最终结果。
表5
很显然,该32×32可重构乘法器依然可以做为一个32×32的乘法器。依据本发明的原理可以构成任意2N×2N的可重构乘法器,可以同时进行2M个2N-M×2N-M的乘法运算,其中1≤M≤N。
机译: 可重构矩阵乘法器系统和方法
机译: 可重构矩阵乘法器系统和方法
机译: 可重构矩阵乘法器系统和方法