将数据写入存储设备的方法及存储设备的制造方法

文档序号:9349754阅读:425来源:国知局
将数据写入存储设备的方法及存储设备的制造方法
【技术领域】
[0001]本发明涉及移动通信领域,尤其涉及一种将数据写入存储设备的方法及存储设备。
【背景技术】
[0002]网络中的存储设备往往具有存储数据的功能,如,网络附属存储(NetworkAttached Storage,NAS),其包括:网卡、处理器和内存,而访问NAS中存储的数据的设备称为NAS客户端,NAS客户端与NAS基于远程过程调用(Remote Procedure Call Protocol,RPC)协议通信,RPC协议是一种通过网络从远程计算机程序上请求服务,而不需要了解底层网络技术的协议。在OSI网络通信模型中,RPC跨越了传输层和应用层。RPC使得开发包括网络分布式多程序在内的应用程序更加容易。
[0003]现有技术中,在将数据写入存储设备时,首先由网卡预先分配接收缓存,在完成上述预先分配的过程之后,由网卡接收NAS客户端发送的RPC消息,并将RPC消息的数据部分写入到接收缓存中,之后再通知处理器根据为数据部分预先分配的内存地址,将接收缓存中的数据部分拷贝到内存中,即每接收到一个RPC消息都有一次数据拷贝的过程,而该数据拷贝的过程通常会消耗处理器30% -40%的资源。此外,若全部的RPC消息包含多个RPC消息时,则需要多次数据拷贝的过程,由此,造成了存储设备的处理器资源的严重浪费。

【发明内容】

[0004]本发明实施例提供了一种将数据写入存储设备的方法及存储设备,可以避免上述数据拷贝的过程,从而可以达到节约存储设备的处理器资源的目的。
[0005]第一方面,提供了一种将数据写入存储设备的方法,所述存储设备包括网卡、内存和处理器;所述方法由网卡执行包括以下步骤:
[0006]接收远程过程调用RPC消息,所述RPC消息包括属性信息和待写入所述存储设备的数据;
[0007]根据所述属性信息对所述RPC消息进行解析,获得所述数据;
[0008]接收所述处理器发送的地址分配消息,所述地址分配消息包括所述处理器为所述数据预分配的内存地址;
[0009]根据所述内存地址将所述数据写入所述内存中。
[0010]结合第一方面,在第一方面的第一种实现方式中,所述内存包括至少一个存储单元,所述存储单元的大小是根据所述存储设备的网络传输时延、网络带宽以及响应时间确定的,所述内存地址是指所述存储单元的地址。
[0011]结合第一方面或第一方面的第一种实现方式,在第一方面的第二种实现方式中,所述内存地址是由所述处理器通过调用所述存储设备的应用程序接口 API函数为所述数据预分配的。
[0012]结合第一方面或第一方面的第一种实现方式或第一方面的第二种实现方式,在第一方面的第三种实现方式中,所述方法还包括:
[0013]判断所述RPC消息是否全部接收完成;
[0014]当所述RPC消息全部接收完成时,向所述处理器发送第一通知消息,所述第一通知消息用于指示所述处理器根据所述内存地址从所述内存中读取所述数据,并对所述数据进行处理。
[0015]结合第一方面的第三种实现方式,在第一方面的第四种实现方式中,所述存储设备还包括:磁盘,所述方法还包括:
[0016]在接收到所述处理器在将所述数据写入所述磁盘后返回的写成功消息时,向所述处理器发送第二通知消息,所述第二通知消息用于指示所述处理器撤销所述内存地址。
[0017]第二方面,提供了一种存储设备,该存储设备包括:网卡、内存和处理器;
[0018]所述网卡,用于接收远程过程调用RPC消息,所述RPC消息包括属性信息和待写入所述存储设备的数据;
[0019]所述网卡,还用于根据所述属性信息对所述RPC消息进行解析,获得所述数据;
[0020]所述处理器,用于为所述数据预分配内存地址,并向所述网卡发送地址分配消息,所述地址分配消息包括预分配的所述内存地址;
[0021]所述网卡,还用于接收所述地址分配消息,根据所述地址分配消息中的预分配的所述内存地址,将所述数据写入所述内存中;
[0022]所述内存,用于存储所述数据。
[0023]结合第二方面,在第二方面的第一种实现方式中,所述内存包括至少一个存储单元,所述存储单元的大小是根据所述存储设备的网络传输时延、网络带宽以及响应时间确定的,所述内存地址是指所述存储单元的地址。
[0024]结合第二方面或第二方面的第一种实现方式,在第二方面的第二种实现方式中,所述内存地址是由所述处理器通过调用所述存储设备的应用程序接口 API函数为所述数据预分配的。
[0025]结合第二方面或第二方面的第一种实现方式或第二方面的第二种实现方式,在第二方面的第三种实现方式中,所述网卡,还用于判断所述RPC消息是否全部接收完成,当所述RPC消息全部接收完成时,向所述处理器发送第一通知消息;
[0026]所述处理器,还用于接收所述第一通知消息,根据所述内存地址从所述内存中读取所述数据,并对所述数据进行处理。
[0027]结合第二方面的第三种实现方式,在第二方面的第四种实现方式中,所述存储设备还包括:磁盘;
[0028]所述处理器,还用于将所述数据写入所述磁盘,并向所述网卡返回写成功消息;
[0029]所述磁盘,用于存储所述数据;
[0030]所述网卡,还用于接收所述写成功消息,向所述处理器发送第二通知消息;
[0031]所述处理器,还用于接收所述第二通知消息,根据所述第二通知消息撤销所述内存地址。
[0032]本发明实施例涉及一种将数据写入存储设备的方法及存储设备,该存储设备包括网卡、内存和处理器;所述方法由网卡执行包括:接收远程过程调用RPC消息,RPC消息包括属性信息和待写入存储设备的数据;根据属性信息对RPC消息进行解析,获得数据;接收处理器发送的地址分配消息,地址分配消息包括处理器为数据预分配的内存地址;根据内存地址将数据写入内存中。由此可知,本发明实施例中,网卡在接收到RPC消息并对其进行解析之后,根据处理器预分配的内存地址,直接将解析得到的数据写入内存中,从而可以避免现有技术中网卡每接收到一个RPC消息,都需要通知处理器将RPC消息的数据部分从接收缓存拷贝到内存中,即避免了处理器对数据部分的重复拷贝,从而本发明的将数据写入存储设备的方法可以达到节约存储设备的处理器资源的目的。
【附图说明】
[0033]图1为存储设备不意图之一;
[0034]图2为本发明实施例一提供的将数据写入存储设备的方法流程图;
[0035]图3为本发明实施例二提供的存储设备示意图之二。
【具体实施方式】
[0036]为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
[0037]为便于
当前第1页1 2 3 4 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1