一种固态盘闪存转换层中的地址映射方法技术

技术编号:9406187 阅读:160 留言:0更新日期:2013-12-05 06:07
本发明专利技术公开了一种固态盘闪存转换层中的地址映射方法,其实施步骤如下:1)预先在SRAM中建立缓存映射表、缓存分裂表、缓存转换表和全局转换目录;2)接收IO请求,若为写请求跳转步骤3),否则跳转步骤4);3)优先在SRAM的表格中依次查找当前IO请求的命中情况,根据命中的映射信息完成写操作,并根据命中类型及阀值大小对映射信息进行缓存;4)优先在SRAM的表格中查找当前IO请求的命中情况,通过SRAM中命中的映射信息来完成读操作。本发明专利技术具有能够提高固态盘随机写性能的同时延长固态盘的使用寿命、闪存转换层效率高、SRAM内地址映射信息的命中率高、SRAM与固态盘Flash之间额外的读写操作少的优点。

【技术实现步骤摘要】

【技术保护点】
一种固态盘闪存转换层中的地址映射方法,其特征在于实施步骤如下:1)预先在固态盘的SRAM中建立缓存映射表、缓存分裂表、缓存转换表和全局转换目录,所述缓存映射表、缓存分裂表均具有起始逻辑页号、起始物理页号、长度共三个表项字段,所述缓存转换表具有逻辑页号和物理页号共两个表项字段,所述全局转换目录具有逻辑页号、逻辑页号在固态盘Flash中存放的物理页号共两个表项字段;2)接收来自文件系统的当前IO请求,如果当前IO请求为写请求则跳转执行步骤3),否则跳转执行步骤4);3)检查当前IO请求的所有逻辑页在缓存映射表中的命中情况,如果完全命中则跳转执行步骤3.1);如果部分命中则跳转执行步骤3.2);如果未命中则跳转执行步骤3.4);3.1)生成两个长度不小于0的额外的子映射关系,所述第一个子映射关系包括起始逻辑页号、起始物理页号、长度三项,在对第一个子映射关系赋值时,起始逻辑页号被赋值为缓存映射表中命中映射关系表项的起始逻辑页号,起始物理页号被赋值为缓存映射表中命中映射关系表项的起始物理页号,长度被赋值为当前IO请求的起始逻辑页号减去缓存映射表中命中映射关系表项的起始逻辑页号得到的差值;第二个子映射关系包括起始逻辑页号、起始物理页号、长度三项,在对第二个子映射关系赋值时,起始逻辑页号被赋值为当前IO请求的起始逻辑页号与当前IO请求的长度的和,起始物理页号被赋值为缓存映射表中命中映射关系表项的起始物理页号与第二个子映射关系的起始逻辑页号相加后再减去缓存映射表中命中映射关系表项的起始逻辑页号得到的差值,长度被赋值为缓存映射表中命中映射关系表项的起始逻辑页号与缓存映射表中命中映射关系表项的长度相加后再减去第二个子映射关系的起始逻辑页号得到的差值;将当前IO请求的长度赋值为0、起始逻辑页号赋值为?1;跳转执行步骤3.3);3.2)将当前IO请求根据缓存映射表映射关系表项中满足命中的范围分裂为两个子请求,所述两个子请求均包含起始逻辑页号和长度两项,第一个子请求的起始逻辑页号为当前IO请求的起始逻辑页号,第一个子请求的长度为缓存映射表的映射关系表项中满足命中部分的长度,第二个子请求的起始逻辑页号为当前IO请求的起始逻辑页号与缓存映射表的映射关系表项中满足命中部分的长度的和,第二个子请求的长度为当前IO请求的长度减去缓存映射表的映射关系表项中满足命中部分的长度得到的差值,其中缓存映射表的映射关系表项中满足命中部分的长度的值为缓存映射表中命中映射关系表项的起始逻辑页号加上缓存映射表中命中映射关系表项的长度后减去当前IO请求的起始逻辑页号得到的差值,将其中不能够满足的第二个子请求作为新的IO请求跳转执行步骤3),生成一个长度不小于0的额外的子映射关系,所述子映射关系包括起始逻辑页号、起始物理页号、长度三项,所述子映射关系的起始逻辑 页号为缓存映射表中命中映射关系表项的起始逻辑页号,所述子映射关系的起始物理页号为缓存映射表中命中映射关系表项的起始物理页号,所述子映射关系的长度为缓存映射表中命中映射关系表项的长度减去缓存映射表的映射关系表项中满足命中部分的长度得到的差值,其中缓存映射表的映射关系表项中满足命中部分的长度的值为缓存映射表中命中映射关系表项的起始逻辑页号加上缓存映射表中命中映射关系表项的长度后减去当前IO请求的起始逻辑页号得到的差值;将当前IO请求的长度在原值的基础上减去缓存映射表的映射关系表项中满足命中部分的长度,将当前IO请求的起始逻辑页号在原值的基础上加上缓存映射表的映射关系表项中满足命中部分的长度,其中缓存映射表的映射关系表项中满足命中部分的长度的值为缓存映射表中命中映射关系表项的起始逻辑页号加上缓存映射表中命中映射关系表项的长度后再减去当前IO请求的起始逻辑页号得到的差值;最终跳转执行步骤3.3);3.3)检查生成的子映射关系的长度是否大于或等于预设的阀值,如果大于或等于预设的阀值,则将所述子映射关系缓存到缓存分裂表中,否则将所述子映射关系写回固态盘的Flash中,最终跳转执行步骤3.5);3.4)检查当前IO请求的所有逻辑页在缓存分裂表中的命中情况,如果完全命中则跳转执行步骤3.4.1),如果部分命中则跳转执行步骤3.4.2),如果未命中则跳转执行步骤3.4.3);3.4.1)生成两个长度不小于0的额外的子映射关系,所述第一个子映射关系包括起始逻辑页号、起始物理页号、长度三项,在对第一个子映射关系赋值时,起始逻辑页号被赋值为缓存分裂表中命中映射关系表项的起始逻辑页号,起始物理页号被赋值为缓存分裂表中命中映射关系表项的起始物理页号,长...

【技术特征摘要】

【专利技术属性】
技术研发人员:肖立权宋振龙魏登萍李琼郑义谢徐超李元山黎铁军张晓明方健王辉邓峰伍玉良
申请(专利权)人:中国人民解放军国防科学技术大学
类型:发明
国别省市:

网友询问留言 已有0条评论
  • 还没有人留言评论。发表了对其他浏览者有用的留言会获得科技券。

1