[发明专利]一种基于SIMD指令的NVM本地文件管理系统及方法在审

专利信息
申请号: 202111583926.4 申请日: 2021-12-22
公开(公告)号: CN114238226A 公开(公告)日: 2022-03-25
发明(设计)人: 胡泽杰;罗嘉文;陈志广;刘志勇;卢宇彤 申请(专利权)人: 中山大学
主分类号: G06F16/13 分类号: G06F16/13;G06F16/14;G06F16/18;G06F9/38
代理公司: 深圳市创富知识产权代理有限公司 44367 代理人: 高冰
地址: 510275 广东*** 国省代码: 广东;44
权利要求书: 查看更多 说明书: 查看更多
摘要:
搜索关键词: 一种 基于 simd 指令 nvm 本地文件 管理 系统 方法
【权利要求书】:

1.一种基于SIMD指令的NVM本地文件管理系统,其特征在于,包括:

基于线性哈希的目录数据块索引模块,用于获取文件所在目录的逻辑块号;

基于静态哈希的全局数据块管理模块,用于将逻辑块号转换成物理块号,得到数据块;

基于SIMD指令优化的目录块内索引模块,用于在数据块内利用SIMD优化进行块内加速查找。

2.根据权利要求1所述一种基于SIMD指令的NVM本地文件管理系统,其特征在于,所述基于线性哈希的目录数据块索引模块的具体工作步骤包括:

初始化线性哈希;

分裂过程以round-robin的方式一轮一轮进行;

在目录项插入过程中,根据文件名计算得到目录块下标;

判断到目录块中有空位则直接插入;

判断到目录块已满则使用溢出目录块并将目录项插入到溢出目录块中;

在目录索引过程中,以要索引的文件名计算哈希值,得到逻辑块号。

3.根据权利要求2所述一种基于SIMD指令的NVM本地文件管理系统,其特征在于,所述基于静态哈希的全局数据块管理模块的具体工作步骤包括:

设备初始化并根据设备容量大小初始化全局数据块哈希表;

在数据块插入过程中,由inode号和逻辑块号组合成的唯一块号,通过哈希函数计算其哈希值,并以此哈希值作为哈希表下标得到对应的哈希项;

根据哈希项查找数据块。

4.根据权利要求3所述一种基于SIMD指令的NVM本地文件管理系统,其特征在于,所述基于SIMD指令优化的目录块内索引模块的具体工作步骤包括:

在插入过程中,针对每一个目录项的文件名都计算一个哈希值,并将同一个块内的所有哈希值组织在一起;

将剩余的低15位为文件名的哈希值取低15位;

在目录数据块内查找过程中,基于SIMD指令,将多个哈希值同时进行对比查找,得到匹配的相对位置,定位到目录项所在的位置。

5.一种基于SIMD指令的NVM本地文件管理方法,其特征在于,包括文件创建步骤:

接收上层应用针对文件名的创建请求;

基于父目录中线性哈希的变量,进行哈希计算及判断,得到文件名所在的逻辑数据块号;

对父目录的inode号及逻辑块号组合进行哈希计算,得到数据块哈希表的桶下标;

根据桶下标从数据块哈希表中获取对应的桶,并在桶内部使用SIMD指令进行查找;

查找到对应数据块项,获取数据块项中的物理块号,并读取对应数据块;

从数据块内部读取对应的哈希域,对文件名计算哈希并取低15位,将存在位置为1,使用SIMD指令查找块内是否已存在重名;

判断到没有重名,将哈希的低15位置为0,将存在位置为1,使用SIMD指令查找块内小于该值的哈希项,即对应位置为空闲;

判断到不存在空闲项,触发线性哈希数据块分裂,进行线性哈希数据块分裂操作;

判断到存在空闲项,通过块内空闲位置,将新文件的信息组合插入到对应空位上,并进行持久化,将对应的哈希值更新并进行持久化,完成文件创建流程。

下载完整专利技术内容需要扣除积分,VIP会员可以免费下载。

该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中山大学,未经中山大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服

本文链接:http://www.vipzhuanli.com/pat/books/202111583926.4/1.html,转载请声明来源钻瓜专利网。

×

专利文献下载

说明:

1、专利原文基于中国国家知识产权局专利说明书;

2、支持发明专利 、实用新型专利、外观设计专利(升级中);

3、专利数据每周两次同步更新,支持Adobe PDF格式;

4、内容包括专利技术的结构示意图流程工艺图技术构造图

5、已全新升级为极速版,下载速度显著提升!欢迎使用!

请您登陆后,进行下载,点击【登陆】 【注册】

关于我们 寻求报道 投稿须知 广告合作 版权声明 网站地图 友情链接 企业标识 联系我们

钻瓜专利网在线咨询

周一至周五 9:00-18:00

咨询在线客服咨询在线客服
tel code back_top