[发明专利]一种Java应用程序远程直接内存访问方法有效
申请号: | 200810114497.4 | 申请日: | 2008-06-06 |
公开(公告)号: | CN101303656A | 公开(公告)日: | 2008-11-12 |
发明(设计)人: | 韩冀中;黄婉;贺劲 | 申请(专利权)人: | 中国科学院计算技术研究所 |
主分类号: | G06F9/46 | 分类号: | G06F9/46;H04L29/08 |
代理公司: | 北京泛华伟业知识产权代理有限公司 | 代理人: | 王勇 |
地址: | 100190北京*** | 国省代码: | 北京;11 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 java 应用程序 远程 直接 内存 访问 方法 | ||
1.一种Java应用程序远程直接内存访问方法,基于对InfiniBand网络中的C版本Verbs API进行封装所得到的函数库,所述函数库在封装过程中采用一对一映射的封装方式,所述函数库中的每个Java函数对应Verbs API中的一个函数;所述函数库中各个类的方法采用“传地址+传对象”与“传地址+传参数”结合的参数传递方法;所述函数库使用Java NIO提供的直接缓存区作为数据收发的缓冲区;所述方法包括以下步骤:
步骤1)、调用所述函数库中的类的方法,分别在通信过程中的客户端和服务器端进行预处理操作,所述预处理操作包括查找设备句柄、注册保护域、创建直接缓存区、注册内存区域、创建完成队列、创建队列对;
步骤2)、在服务器端和客户端,分别将所创建的队列对的状态转换到初始状态;
步骤3)、所述服务器端与客户端之间交换描述信息;
步骤4)、在所述客户端中,将所述队列对中的发送队列和接收队列的状态分别转换到准备发送状态和准备接收状态;
步骤5)、在所述客户端中创建工作请求,并将所创建的工作请求提交到所述队列对中;
步骤6)、在所述客户端中查询所述完成队列中的完成事件,根据所述完成事件判断远程内存访问操作的完成情况。
2.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,所述的查找设备句柄包括:首先通过所述函数库中的用于查找设备的Device类的getDeviceListAddr()方法得到设备链表,然后调用getDeviceAddr()方法查找InfiniBand网络接口设备,得到设备句柄。
3.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,所述的注册保护域包括:利用所述的设备句柄调用函数库中的ProtectionDomain类的allocateProtectionDomain()方法注册保护域。
4.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,所述的创建直接缓存区包括:首先调用所述函数库中的DirectBufferManager类的createDirectBuffer()方法创建直接缓存区,然后调用DirectBufferManager类的getDirectBufferAddr()方法获取直接缓存区地址。
5.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,所述的注册内存区域包括:采用所述函数库中的MemoryRegion类的registerMemoryRegion()方法注册内存区域。
6.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,在所述的步骤1)中,所述的创建完成队列包括:采用所述函数库中的CompletionQueue类的createCompletionQueue()方法创建完成队列。
7.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,在所述的步骤1)中,所述的创建队列对包括:采用所述函数库中的QueuePair类的createQueuePair()方法创建队列对。
8.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,所述的队列对的状态的转换采用所述函数库中的QueuePair类的modifyQueuePair()方法实现。
9.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,在所述的步骤5)中,首先采用所述函数库中的SendWorkRequest类的构造函数创建工作请求SendWorkRequest类对象,然后调用所述函数库中的QueuePair类的postSend()方法将工作请求提交到队列对中。
10.根据权利要求1所述的Java应用程序远程直接内存访问方法,其特征在于,在所述的步骤6)中,采用所述函数库中的CompletionQueue类的pollCompletionQueue()方法查询完成队列中的完成事件。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国科学院计算技术研究所,未经中国科学院计算技术研究所许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/200810114497.4/1.html,转载请声明来源钻瓜专利网。