[发明专利]一种数据传输方法及装置有效
申请号: | 201511032093.7 | 申请日: | 2015-12-31 |
公开(公告)号: | CN105677491B | 公开(公告)日: | 2019-07-23 |
发明(设计)人: | 刘燕松;吴峰;陈鑫 | 申请(专利权)人: | 杭州华为数字技术有限公司 |
主分类号: | G06F9/54 | 分类号: | G06F9/54 |
代理公司: | 广州三环专利商标代理有限公司 44202 | 代理人: | 郝传鑫;熊永强 |
地址: | 310053 浙江省杭州*** | 国省代码: | 浙江;33 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 数据传输 方法 装置 | ||
1.一种数据传输方法,其特征在于,包括:
接收Java应用程序的内存申请请求;
响应所述内存申请请求,为所述Java应用程序分配第一内存,以使所述Java应用程序将需要计算的目标数据写入所述第一内存,所述第一内存为物理地址连续的内存空间;
为所述Java应用程序分配第二内存,所述第二内存用于存放加速器对所述目标数据进行计算后得到的结果数据;
确定所述Java应用程序将所述目标数据写入所述第一内存后的第一数据信息,所述第一数据信息包括所述目标数据的内存地址、所述目标数据的长度、所述第二内存的地址以及所述第二内存的长度;
向加速器发送所述第一数据信息,以使所述加速器根据所述第一数据信息提取所述目标数据;
接收所述加速器返回的第二数据信息,并根据所述第二数据信息获取所述加速器对所述目标数据计算后得到的结果数据。
2.根据权利要求1所述的方法,其特征在于,在所述为所述Java应用程序分配第一内存之后,所述方法还包括:
以共享内存的方式将所述第一内存封装为缓冲区ByteBuffer对象,并将所述ByteBuffer对象返回给所述Java应用程序。
3.根据权利要求1或2所述的方法,其特征在于,所述向加速器发送所述第一数据信息,包括:
将所述第一数据信息写入第三内存,并向加速器发送所述第三内存的地址,以使所述加速器根据所述第三内存的地址从所述第三内存中获取所述第一数据信息;
所述接收所述加速器返回的第二数据信息,包括:
从所述第三内存获取所述加速器返回的第二数据信息。
4.根据权利要求3所述的方法,其特征在于,所述将所述第一数据信息写入第三内存,并向加速器发送所述第三内存的地址,包括:
将所述第一数据信息写入第三内存,并将所述第三内存的地址加入第一队列,以使所述加速器通过所述第一队列获取所述第三内存的地址;
所述从所述第三内存获取所述加速器返回的第二数据信息,包括:
轮询第二队列读指针和第二队列写指针,并比较所述第二队列读指针的值和所述第二队列写指针的值是否相同;
若不同,则从所述第二队列读指针或所述第二队列写指针所在的第二队列中获取所述第三内存的地址,并根据所述第三内存的地址从所述第三内存中获取第二数据信息,所述第二数据信息包括所述结果数据的内存地址以及所述结果数据的长度;
将所述第二数据信息传输给所述Java应用程序,以使所述Java应用程序根据所述第二数据信息获取所述结果数据。
5.根据权利要求1所述的方法,其特征在于,
所述第一内存是根据所述目标数据的长度信息分配的与所述长度信息指示的长度相匹配的内存空间;或者,
所述第一内存是预设的固定长度的内存空间。
6.一种数据传输方法,其特征在于,应用于加速器中,包括:
接收数据传输装置发送的第一数据信息,所述第一数据信息包括需要计算的目标数据的内存地址、所述目标数据的长度、用于存放所述目标数据对应的结果数据的第二内存的地址以及所述第二内存的长度,且所述目标数据的内存地址对应的第一内存和所述第二内存为物理地址连续的内存空间;
根据所述目标数据的内存地址以及所述目标数据的长度提取所述目标数据;
对所述目标数据进行计算,得到所述计算后的结果数据,并根据所述第二内存的地址以及所述第二内存的长度将所述结果数据写入所述第二内存;
获取所述结果数据的内存地址和所述结果数据的长度,并向所述数据传输装置返回包括所述结果数据的内存地址和所述结果数据的长度的第二数据信息,以根据所述第二数据信息获取所述结果数据。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于杭州华为数字技术有限公司,未经杭州华为数字技术有限公司许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/201511032093.7/1.html,转载请声明来源钻瓜专利网。
- 上一篇:基于硬件的超时管理平台
- 下一篇:一种数据处理方法及装置