[发明专利]一种计算机数据处理方法及装置有效
申请号: | 201910349581.2 | 申请日: | 2019-04-28 |
公开(公告)号: | CN110262773B | 公开(公告)日: | 2020-08-04 |
发明(设计)人: | 赵原;殷山 | 申请(专利权)人: | 阿里巴巴集团控股有限公司 |
主分类号: | G06F7/523 | 分类号: | G06F7/523;G06F7/544 |
代理公司: | 北京三友知识产权代理有限公司 11127 | 代理人: | 李辉 |
地址: | 英属开曼*** | 国省代码: | 暂无信息 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 计算机 数据处理 方法 装置 | ||
1.一种计算机数据处理方法,用于实现2个256位数的乘法数据处理,所述方法包括:
将乘数a和被乘数b由高位到低位分别拆分成4个64位数,分别获得拆分后乘数和拆分后被乘数,所述拆分后乘数包括:a[3]、a[2]、a[1]、a[0],所述拆分后被乘数包括:b[3]、b[2]、b[1]、b[0];
将所述拆分后乘数和所述拆分后被乘数读取到寄存器中,并按照预设规则将所述拆分后乘数和所述拆分后被乘数进行相乘处理,获得目标数据的乘法处理结果;
其中,所述预设规则包括:
所述拆分后乘数和所述拆分后被乘数被分为七组数据对,第一组数据对包括:a[0]b[0],第二组数据对包括:a[1]b[0]、a[0]b[1],第三组数据对包括:a[2]b[0]、a[1]b[1]、a[0]b[2],第四组数据对包括:a[3]b[0]、a[2]b[1]、a[1]b[2]、a[0]b[3],第五组数据对包括:a[3]b[1]、a[2]b[2]、a[1]b[3],第六组数据对包括:a[3]b[2]、a[2]b[3],第七组数据对包括:a[3]b[3];
逐个计算所述第一组数据对到所述第七组数据对的乘法结果,对每组内的数据对的乘法结果进行组内累加,所述组内累加包括:在同一组数据对中,每计算一个数据对的乘法结果,将计算出的乘法结果与组内的上一个数据对的乘法结果进行组内累加,累加结果保存在寄存器中;将同一组内的数据对的最终累加结果的低64位从寄存器保存至内存,获得相应组数据对的剩余累加结果,并释放保存最终累加结果的低64位的寄存器;
各组数据对的第一个数据对的乘法结果与上一组数据对的剩余累加结果相累加,再与下一个数据对的乘法结果累加,直至获得第七组数据中数据对的乘法结果累加结束,将所述第七组数据中数据对对应的累加结果保存至内存中,获得所述目标数据的乘法处理结果。
2.如权利要求1所述的方法,所述方法还包括:
在对各组数据对的乘法结果进行累加时,释放存储各数据对的乘法结果的寄存器,并将累加结果保存在3个寄存器中。
3.如权利要求1所述的方法,所述方法应用于64位计算机操作系统中。
4.如权利要求3所述的方法,所述方法还包括:
从所述64位计算机操作系统的寄存器RBX、RBP、R12、R13、R14、R15中任意选取4寄存器,将选取出的寄存器的值保存到内存中;
在计算出所述目标乘法结果后,从内存中获取保存的所述选取出的寄存器的值,恢复所述选取出的寄存器的值。
5.如权利要求4所述的方法,所述方法还包括:
从所述64位计算机操作系统中选取寄存器RAX、RCX、RDX、RSI、RDI、R8、R9、R10、R11,与所述选取出的寄存器均用于数据处理过程中的数据存储。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于阿里巴巴集团控股有限公司,未经阿里巴巴集团控股有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201910349581.2/1.html,转载请声明来源钻瓜专利网。