[发明专利]基于混合粒度乘法部件的多精度乘法器及运算方法有效
申请号: | 202011524239.0 | 申请日: | 2020-12-22 |
公开(公告)号: | CN112631548B | 公开(公告)日: | 2022-10-04 |
发明(设计)人: | 尚江卫;钱磊;吴东;张昆;曾明勇;原昊;贾迅;朱剑文;陆一峰 | 申请(专利权)人: | 无锡江南计算技术研究所 |
主分类号: | G06F7/523 | 分类号: | G06F7/523 |
代理公司: | 苏州创元专利商标事务所有限公司 32103 | 代理人: | 王健 |
地址: | 214038 江苏*** | 国省代码: | 江苏;32 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 基于 混合 粒度 乘法 部件 精度 乘法器 运算 方法 | ||
1.一种基于混合粒度乘法部件的多精度乘法器的运算方法,其特征在于:所述乘法器包括:调度器、指令队列和计算单元,所述计算单元包括分发器、若干个细粒度乘法部件和加法树,所述细粒度乘法部件的数量如下表所示:
;
所述多精度乘法器的运算方法包括以下步骤:
步骤1:调度器根据贪心算法,以多精度乘法器的粒度规模为依据,将乘法运算的两个位宽分别为Mbit、Nbit的操作数进行分割,获得如下分割结果:
Mbit= (a*4bit + b*2bit + c*1bit),其中M= a*4+b*2+c;a、b、c为Mbit分割后4bit数、2bit数、1bit数的个数;
Nbit= (x*4bit + y*2bit + z*1bit),其中N= x*4+y*2+z;x、y、z为Nbit分割后4bit数、2bit数、1bit数的个数;
根据分割结果,调度器将Mbit*Nbit转换为 Mbit*Nbit = (a*4bit + b*2bit + c*1bit) * (x*4bit + y*2bit + z*1bit),从而将Mbit * Nbit分割为 (a*x)个4bit*4bit、(a*y+b*x)个4bit*2bit、(a*z + c*x)个4bit*1bit、(b*y)个2bit*2bit、(b*z+c*y)个2bit*1bit、(c*z)个1bit*1bit的细粒度乘法运算;
步骤2:调度器计算步骤1中获得的每一组细粒度乘法运算结果需要向左移动的位数,用于指导乘法器将步骤1中获得的4bit*4bit、4bit*2bit、4bit*1bit、2bit*2bit、2bit*1bit、1bit*1bit的结果进行移位累加;
步骤3:调度器将步骤1中分割后的细粒度乘法运算的两个操作数和步骤2中对应的左移位数打包成如下所示的乘法器指令:
左移位数 操作数1 操作数2
;
步骤4:调度器将步骤3中生成的乘法器指令送入计算单元的指令队列;
步骤5:计算单元内部的分发器解析指令队列的指令,并将解析后的左移位数和操作数分发给对应位宽的细粒度乘法部件,由细粒度乘法部件完成细粒度的乘法运算;
步骤6:细粒度乘法部件根据步骤5中分发器发送的操作数完成乘法运算,并根据步骤5中分发器发送的左移位数,将乘法结果向左移位,再将移位后的结果送入加法树,得到最后的结果。
2.根据权利要求1所述的一种基于混合粒度乘法部件的多精度乘法器的运算方法,其特征在于:步骤2中,向左移动位数计算过程如下:
(1)4bit*4bit,假设当前4bit*4bit运算中的操作数分别来自于Mbit的第m个4bit数和Nbit的第n个4bit数,0m≤a; 0n≤x,则该组运算向左移动的位数为:4*(m-1)+4*(n-1)+2*(b+y)+(c+z);
(2)4bit*2bit,假设当前4bit*2bit运算中的操作数:
当4bit来源于Mbit中的第m个4bit数,2bit来源于Nbit的第n个2bit数,0m≤a; 0n≤y,则该组运算向左移动的位数为:4*(m-1)+2*b+c+2*(n-1)+z;
当4bit来源于Nbit中的第n个4bit数,2bit来源于Mbit的第m个2bit数,0m≤b; 0n≤x,则该组运算向左移动的位数为:4*(n-1)+2*y+z+2*(m-1)+c;
(3)4bit*1bit,假设当前4bit*1bit运算中的操作数:
当4bit来源于Mbit中的第m个4bit数,1bit来源于Nbit的第n个1bit数,0m≤a; 0n≤z,则该组运算向左移动的位数为:4*(m-1)+2*b+c+n;
当4bit来源于Nbit中的第n个4bit数,1bit来源于Mbit的第m个1bit数,0m≤c; 0n≤x,则该组运算向左移动的位数为:4*(n-1)+2*y+z+m;
2bit*2bit,假设当前2bit*2bit运算中的操作数:
2bit来源于Mbit中的第m个2bit数,2bit来源于Nbit中的第n个2bit数,0m≤b; 0n≤y,则该组运算向左移动的位数为:2*(m-1)+2*(n-1)+c+z;
2bit*1bit,假设当前2bit*1bit运算中的操作数:
当2bit来源于Mbit中的第m个2bit数,1bit来源于Nbit中的第n个1bit数,0m≤b; 0n≤z,则该组运算向左移动的位数为:2*(m-1)+c+n;
当2bit来源于Nbit中的第n个2bit数,1bit来源于Mbit中的第m个1bit数,0m≤c; 0n≤y,则该组运算向左移动的位数为:2*(n-1)+z+m;
1bit*1bit,假设当前1bit*1bit运算中的操作数:1bit来源于Mbit中的第m个1bit数,1bit来源于Nbit中的第n个1bit数,0m≤c; 0n≤z,则该组运算向左移动的位数为:m+n-2。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于无锡江南计算技术研究所,未经无锡江南计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202011524239.0/1.html,转载请声明来源钻瓜专利网。