[发明专利]一种基于混合DRAM-NVM内存的指纹识别方法有效
申请号: | 202110768156.4 | 申请日: | 2021-07-07 |
公开(公告)号: | CN113434092B | 公开(公告)日: | 2022-04-01 |
发明(设计)人: | 朱俊豪;黄成龙;方粮;李成;易品筠;马德胜 | 申请(专利权)人: | 中国人民解放军国防科技大学 |
主分类号: | G06F3/06 | 分类号: | G06F3/06 |
代理公司: | 湖南企企卫知识产权代理有限公司 43257 | 代理人: | 任合明 |
地址: | 410073 湖*** | 国省代码: | 湖南;43 |
权利要求书: | 查看更多 | 说明书: | 查看更多 |
摘要: | |||
搜索关键词: | 一种 基于 混合 dram nvm 内存 指纹识别 方法 | ||
1.一种基于混合DRAM-NVM内存的指纹识别方法,采用桶式数组结构构建哈希表,其特征在于包括以下步骤:
第一步,构建并初始化NVM表,将NVM表存储在NVM中,方法是:
1.1采用桶式数组结构构建NVM表,NVM表含有N个哈希桶,N为正整数,每个哈希桶含有8个哈希单元,每个哈希单元的大小为32字节,一个哈希单元存储一个键值对key,value,key表示存储元素的键,value表示存储元素的值;通过桶地址转换函数,使用键值对的key计算得到哈希桶地址p,作为索引NVM表的哈希桶地址,桶地址转换函数的计算公式是:
p=hash(key)%N
其中hash()为c++标准模板库中的标准哈希函数,“%”为取模操作;
1.2将用户需要存储的M个键值对key1,value1,…,keym,valuem,…,keyM,valueM插入到NVM表中,记录下M个键值对插入哈希桶的哈希单元标号index1,...,indexm,...,indexM;
1.3将NVM表存储在NVM中;
第二步,构建并初始化指纹表,将指纹表存储在DRAM中,方法是:
2.1利用指纹提取函数对NVM表中的M个键值对的键分别进行指纹提取,获取存储在NVM表中的M个键值对对应的M个指纹f1,...,fm,...,fM;
2.2采用桶式数组结构构建指纹表,指纹表结构与NVM表一一对应,指纹表也含有N个指纹桶,每个桶含有8个指纹单元,每个指纹单元的大小为1字节;一个指纹单元存储NVM表中的一个键值对相应的指纹,使用第一步所述的桶地址转换函数,利用键值对的键key计算获得指纹桶地址p,作为索引指纹表的指纹桶地址;
2.3将NVM表中的M个键值对对应的M个指纹f1,...,fm,...,fM插入到指纹表中;
2.4将指纹表存储在DRAM中;
第三步,确定待查询的键值对在指纹桶的地址,方法是:
从键盘接收用户输入的待查询的键值对的键,令为keyX,采用桶地址转换函数,利用keyx计算出指纹桶地址,令为pp;
第四步,将keyx的指纹与地址为pp的指纹桶中的8个指纹元素进行匹配,方法是:
4.1利用指纹转换函数对keyx进行指纹提取,获取keyx对应的指纹,令为ff;
4.2令指纹单元变量i=1;
4.3利用ff匹配指纹表中地址为pp的指纹桶的第i个指纹单元,若匹配成功,即在地址为pp的指纹桶的第i个指纹单元中找到与指纹ff匹配的指纹,令匹配指纹单元标号indexp=i,转至第五步;否则令i=i+1,若i≤8,转4.3;若i>8,表示遍历了整个地址为pp的指纹桶都匹配不成功,说明ff不在指纹表中,也说明keyx,valuex不在NVM表中,查询失败,将“查询失败”信息发送给用户,转第七步;
第五步,将keyx与步骤4.3中匹配成功的指纹对应的键值对的key进行匹配,判断指纹表中匹配成功的指纹对应的键值对是否为目标元素,若匹配成功则执行第六步,若匹配失败,则令i=i+1,若i≤8,转至步骤4.3;若i>8,表示指纹表中匹配成功的指纹对应的键值对不是目标元素,将“查询失败”信息发送给用户,转第七步;
第六步,获得keyx值对应的键值对中的value,将value发送给查询用户;
第七步,结束。
该专利技术资料仅供研究查看技术是否侵权等信息,商用须获得专利权人授权。该专利全部权利属于中国人民解放军国防科技大学,未经中国人民解放军国防科技大学许可,擅自商用是侵权行为。如果您想购买此专利、获得商业授权和技术合作,请联系【客服】
本文链接:http://www.vipzhuanli.com/pat/books/202110768156.4/1.html,转载请声明来源钻瓜专利网。