一种数据的访问方法、装置及设备的制造方法

文档序号:8528114阅读:201来源:国知局
一种数据的访问方法、装置及设备的制造方法
【技术领域】
[0001] 本发明涉及计算机领域,尤其涉及一种数据的访问方法、装置及设备。
【背景技术】
[0002] 为了减少数据访问时的处理器(CPU)占用率,简化数据传输流程,通常会使用DMA 来传输数据,即不需要CPU的参与,直接在内存和I/O设备之间直接进行数据交换。
[0003] 传统地,用户进程访问储存设备时,流程如下:用户态进程发起的访问,先经过标 准库处理,然后由标准库发起系统调用,数据进入文件系统,文件系统对文件做访问权限检 测,保证访问的安全性;然后进入内核驱动处理,内核驱动组建10访问消息,并且执行10调 度;最后由存储设备处理数据。由于用户进程(APP)使用的是虚拟地址,通常在物理上是不 连续的,而DMA操作需要知道物理地址,因此需要将APP空间中的数据拷入连续的物理空间 中,DMA才能操作。
[0004] 这种传统的方式中,文件访问流程中经历的软件层次比较多,软件的开销大;并 且,访问过程中数据需要从用户态拷贝到内核态再拷贝到储存设备,或者从储存设备拷贝 到内核态再拷贝到用户态,这将加大CPU的开销;进一步地,在访问PCIe SSD硬盘时,由于 PCIe SSD硬盘相比传统机械硬盘访问速度快,通过文件系统访问PCIe SSD硬盘时,文件系 统造成的延时比较严重。

【发明内容】

[0005] 本发明实施例提供了一种数据的访问方法、装置及设备,用于缩短访问路径,减少 时延,降低CPU开销。
[0006] 第一方面,本发明提供了一种数据的访问方法,包括:
[0007] 获取第一访问请求,所述第一访问请求携带目标数据所在文件的句柄;
[0008] 根据所述句柄查找预置的第一级用户空间映射表,获取inode number和Offset, 并根据获取到的所述inode number和Offset查找预置的第二级用户空间映射表,获取第 一 LBA,其中,所述第一级用户空间映射表包括所述句柄、inode number和Offset的对应关 系,所述第二级用户空间映射表包括所述inode number、Offset和第一 LBA的对应关系;
[0009] 根据所述inode number和第一 LBA触发通过预先建立的消息队列访问存储设备 中的目标数据的操作,其中,所述消息队列是由所述存储设备的驱动创建的用于提供访问 接口。
[0010] 在第一方面的第一种可能的实现方式中,所述根据所述inode number和第一 LBA 触发通过预先建立的消息队列访问存储设备中的目标数据的操作的步骤之后,还包括:根 据所述inode number查找权限检测表,并获取第二LBA,在确定所述第一 LBA是所述第二 LBA的子集时,返回所述目标数据,其中,所述权限检测表是由所述存储设备的驱动创建的 用于提供给所述存储设备进行权限检测。
[0011] 根据第一方面,或第一方面的第一种可能的实现方式,在第二种可能的实现方式 中,所述根据所述inode number和第一 LBA触发通过预先建立的消息队列访问存储设备 中的目标数据的操作,具体包括:生成第二访问请求,所述第二访问请求携带所述inode number和第一 LBA ;通过所述消息队列向所述存储设备发送所述第二访问请求,所述第二 访问请求用于访问所述目标数据。
[0012] 根据第一方面的第二种可能的实现方式,在第三种可能的实现方式中,所述第二 访问请求还携带所述文件在内存中的物理地址,所述物理地址是由内核根据接收到文件的 虚地址进行转化得到文件的物理地址。
[0013] 根据第一方面的第二种可能的实现方式,在第四种可能的实现方式中,每一个访 问进程对应一个所述消息队列。
[0014] 根据第一方面的第二种可能的实现方式,在第五种可能的实现方式中,所述通过 预先建立的消息队列向所述存储设备发送所述第二访问请求的步骤之前,还包括:确定所 述存储设备的驱动中是否创建有与所述第二访问请求对应的消息队列,若否,则向所述存 储设备的驱动发送创建请求,所述创建请求用于创建所述消息队列;在所述存储设备的驱 动成功创建所述消息队列后,接收所述存储设备返回的所述消息队列的物理地址和寄存器 地址。
[0015] 根据第一方面或第一方面的第一种可能的实现方式,在第六种可能的实现方式 中,所述根据所述句柄查找预置的第一级用户空间映射表的步骤之前,还包括:向文件系统 发送获取请求,所述获取请求携带所述句柄,以使得所述文件系统根据所述句柄获取并返 回所述文件的inode number、Offset和所述第一 LBA的对应关系;根据所述对应关系生成 所述第一级用户空间映射表和第二级用户空间映射表。
[0016] 根据第一方面或第一方面的第一种可能的实现方式,在第七种可能的实现方式 中,所述第二级用户空间映射表为红黑二叉树组织。
[0017] 第二方面,本发明提供了一种数据的访问装置,可包括:
[0018] 访问单元,用于获取第一访问请求,所述第一访问请求携带目标数据所在文件的 句柄;
[0019] 获取单元,用于根据所述句柄查找预置的第一级用户空间映射表,获取inode number和Offset,并根据获取到的所述inode number和Offset查找预置的第二级用户 空间映射表,获取第一 LBA,其中,所述第一级用户空间映射表包括所述句柄、inode number 和Offset的对应关系,所述第二级用户空间映射表包括所述inode number、Offset和第一 LBA的对应关系;
[0020] 处理单元,用于根据所述inode number和第一 LBA触发通过预先建立的消息队列 访问存储设备中的目标数据的操作,其中,所述消息队列是由所述存储设备的驱动创建的 用于提供访问接口。
[0021] 在第二方面的第一种可能的实现方式中,所述装置还包括:检测单元,用于根据所 述inode number查找权限检测表,并获取第二LBA,在确定所述第一 LBA是所述第二LBA的 子集时,返回所述目标数据,其中,所述权限检测表是由所述存储设备的驱动创建的用于提 供给所述存储设备进行权限检测。
[0022] 结合第二方面,或第二方面的第一种可能的实现方式,在第二种可能的实现方式 中,所述处理单元,还用于生成第二访问请求,所述第二访问请求携带所述inode number和 第一 LBA ;通过所述消息队列向所述存储设备发送所述第二访问请求,所述第二访问请求 用于访问所述目标数据,其中,所述第二访问请求还携带所述文件在内存中的物理地址,所 述物理地址是由内核根据接收到文件的虚地址进行转化得到文件的物理地址,其中,每一 个访问进程对应一个所述消息队列。
[0023] 结合第二方面,或第二方面的第一种可能的实现方式,在第三种可能的实现方式 中,所述装置还包括:创建单元,用于确定所述存储设备的驱动中是否创建有与所述第二访 问请求对应的消息队列,若否,则向所述存储设备的驱动发送创建请求,所述创建请求用于 创建所述消息队列;在所述存储设备的驱动成功创建所述消息队列后,接收所述存储设备 返回的所述消息队列的物理地址和寄存器地址。
[0024] 结合第二方面,或第二方面的第一种可能的实现方式,在第四种可能的实现方式 中,所述装置还包括:生成单元,用于向文件系统发送获取请求,所述获取请求携带所述句 柄,以使得所述文件系统根据所述句柄获取并返回所述文件的inode number、Offset和所 述第一 LBA的对应关系;根据所述对应关系生成所述第一级用户空间映射表和第二级用户 空间映射表。
[0025] 第三方面,本发明提供了一种数据的访问设备,其可包括如第二方面所述的数据 的访问装置。
[0026] 从以上技术方案可以看出,本发明实施例具有以下优点:
[0027] 本发明实施例预先建立用户空间映射表,并在存储设备的驱动中预先创建消息队 列,在文件访问时可以通过预置的用户空间映射表获取第一 LBA,采用第一 LBA等信息触发 通过消息队列访问存储设备中的目标数据的操作。本实施例中的文件访问不再经过文件系 统,访问存储设备时从用户态通过消息队列直接进入到存储设备,缩短了文件访问的路径, 减少了时延,访问过程中文件数据从用户态直接拷贝到储存设备或从存储设备直接拷贝到 用户态,无需经过内核态,有效降低了 CPU的开销。
【附图说明】
[0028] 为了更清楚地说明本发明实施例的技术方案,下面将对实施例描述中所需要使用 的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本 领域技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
[0029] 图1是本发明实施例中数据的访问方法的流程示意图;
[0030] 图2是本发明实施例中第二级用户空间映射表的红黑二叉树组织图;
[0031] 图3是本发明实施例中创建消息队列时的信令流程图;
[0032] 图4是本发明实施例中权限检测表的红黑二叉树组织图;
[0033] 图5是本发明实施例中创建用户空间映射表和权限检测表的信令流程图;
[0034] 图6是本发明实施例中数据的访问装置的一个结构示意图;
[0035] 图7是本发明实施例中数据的访问装置的另一个结构示意图;
[0036] 图8是本发明实施例中数据的访问设备的结构示意图。
【具体实施方式】
[0037] 下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完 整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于 本发明中的实施例,本领域技术人员在没有做出创造性劳动前提下所获得的所有其他实施 例,都属于本发明保护的范围。
[0038] 本发明的说明书和权利要求书及上述附图中的术语"第一"、"第二"、"第三""第 四"等(如果存在)是用于区别类似的对象,而不必用于描述特定的顺序或先后次序。应该 理解这样使用的数据在适当情况下可以互换,以便这里描述的本发明的实施例例如能够以 除了在这里图示或描述的那些以外的顺序实施。此外,术语"包括"和"具有"以及他们的任 何变形,意图在于覆盖不排他的包含,例如,包含了一系列步骤或单元的过程、方法、系统、 产品或设备不必限于
当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1