NAND型闪存地址映射的方法、装置、电子设备及存储介质与流程

文档序号:33943858发布日期:2023-04-26 03:46阅读:50来源:国知局
NAND型闪存地址映射的方法、装置、电子设备及存储介质

本发明涉及固态硬盘存储,具体而言,涉及一种nand型闪存地址映射的方法、装置、电子设备及存储介质。


背景技术:

1、闪存也有不同类型,其中主要分为nor型和nand型两大类。nor型和nand型闪存的区别很大,打个比方说,nor型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而nand型更像硬盘,地址线和数据线是共用的i/o线,类似硬盘的所有信息都通过一条硬盘线传送一般,而且nand型与nor型闪存相比,成本要低一些,而容量大得多。

2、随着5g时代的到来,信息化发展日渐成熟,全球数据量的增长也十分之快。根据《数据时代2025》的预测,全世界产生的数据总量在2025年将达到163zb。如此海量数据的存储与计算,电子设备对存储系统的读写速度、功耗、稳定性等方面都提出了更高的要求。以nand型闪存作为存储介质的存储设备,凭借其各方面优秀的性能表现,逐渐取代了传统的磁盘存储介质,被广泛应用在军事、医疗、航空等领域。

3、nand型闪存相比于传统的磁盘存储介质,有着不同的读写特性:(1)闪存的基本操作为读取、写入与擦除,其中读取与写入的基本操作单位为页,擦除的基本操作单位为块;(2)闪存中已写入数据的页无法进行原地更新,只能将数据页置为失效,再将更新后的数据写到其他的空白页上;(3)闪存块的擦写寿命有限,在擦写超过一定次数后,将无法保证数据的正确性,成为坏块。

4、为了兼容上层的文件系统与现有设备,隐藏nand型闪存的特性,一般通过引入闪存转换层(flash translation layer, ftl)将底层闪存封装成类似传统磁盘一样的块设备。上层文件系统通过闪存转换层,可以像操作传统磁盘一样对闪存进行读写,无需对文件系统进行修改便可兼容闪存设备。闪存转换层一般包括地址映射、坏块管理、垃圾回收以及磨损均衡等功能。闪存转换层的核心功能是地址映射。

5、连续文件的读写往往是影响性能的关键,在逻辑上连续的地址映射记录具有较大的压缩性,而当前的地址映射方法并没有加以利用。同时,时刻动态变化的i/o读写模式也对当前地址映射方法的性能造成了影响。

6、公开号cn201811124166,提出了一种借助外置存储设备备份地址映射表地址映射方法,提高了nand型闪存数据的可靠性。但是该方法没有关注到nand型闪存地址映射方法中映射项查询所引起的时间开销问题,导致该方法在查询地址映射时性能较差,影响整体性能。

7、公开号cn202210317785,提出了一种基于slc/mlc页面的页面混淆方法,提高了nand型闪存数据异地更新的安全性。但是该方法忽略了nand型闪存中地址映射对于闪存转换层性能提升的重要性,没有对地址映射模块设计进行优化,导致该方法在地址映射上影响闪存设备整体性能。

8、因此需要发明一种连续请求友好的nand型闪存地址映射方法,同时能够对地址映射模块设计进行优化,保证查询地址映射时性能,进而保证闪存设备整体性能。


技术实现思路

1、本发明要解决的技术问题是如何对nand型闪存地址映射模块设计进行优化,保证查询地址映射时性能,进而保证闪存设备整体性能。

2、为解决上述技术问题,根据本发明的一个方面,提供一种nand型闪存地址映射的方法,该方法包括步骤:s0、闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;s1、当收到上层文件系统发送的读写请求,首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,执行下一步;s2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求,执行下一步;s3、顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,执行下一步,其中,多个映射项优选为八个映射项;s4、得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。

3、根据本发明的实施例,步骤s2中,如果判断为否,则当前请求为随机请求,可在s2和s4之间执行如下步骤:s31、计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中。

4、进一步地,在步骤s3或步骤s31之后,可执行如下步骤:s32、判断所写入的连续请求映射项表或缓存映射项表是否已满,如果判定为没满,将预取映射项写入,执行步骤s4。

5、根据本发明的实施例,s0步骤还可包括:建立临时映射项表,所述临时映射项表用于存放从缓存映射项表中剔除的且已更新映射项;其中,如果s32步骤判定为已满,则执行步骤:s33、若已满映射项表为缓存映射项表,则使用最近最少使用策略选择映射项踢出至临时映射项表;若已满映射项表为临时映射项表,则选择所在映射项数量最多的一组映射项进行批量踢出。

6、根据本发明的实施例,步骤s1中,如果判断为否,可执行如下步骤:s11、在缓存内查找所述读写请求的映射信息。

7、根据本发明的实施例,步骤s0中,所述缓存映射项表可用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;其中,连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中。

8、根据本发明的实施例,步骤s33中,所述临时映射项表中,可使用相关度将映射项进行分组组织,并在临时缓存映射表已满时选择映射项数量最多的分组进行置换。

9、根据本发明的第二个方面,提供一种nand型闪存地址映射的装置,其包括:初始化模块,所述初始化模块用于对闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;判断模块,当收到上层文件系统发送的读写请求,所述判断模块首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,则从缓存内查找该请求的映射信息,执行下一步;再次判断,判断当前读请求与前一个请求是否在请求区域内的位置是否连续;执行模块,如果判断为连续,则当前请求为连续读写请求,所述执行模块将顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,其中,多个映射项优选为八个映射项;如果判断为不连续,则当前请求为随机请求,计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;结果返回模块,所述结果返回模块得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。

10、根据本发明的第三个方面,提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的nand型闪存地址映射程序,nand型闪存地址映射程序被处理器执行时实现上述的nand型闪存地址映射方法的步骤。

11、根据本发明的第四个方面,提供一种计算机存储介质,其中,计算机存储介质上存储有nand型闪存地址映射程序,nand型闪存地址映射程序被处理器执行时实现上述的nand型闪存地址映射方法的步骤。

12、与现有技术相比,本发明的实施例所提供的技术方案至少可实现如下有益效果:

13、1). 本发明提供的一种连续请求友好的nand型闪存地址映射方法,通过将部分映射项缓存于内存中,并利用基于位图的存储结构对连续请求的映射记录进行压缩,同时使用自适应的缓存预取策略,将更多有价值的映射项缓存于内存中,提升地址映射查询时的性能。本发明通过基于位图对连续请求的映射项进行压缩、自适应的映射项预取以及基于分组的缓存置换策略,以达到降低nand型闪存存储设备响应时间的目的。

14、2). 本发明提供的一种连续请求友好的nand型闪存地址映射方法,通过将地址映射表部分缓存于内存中,并设计了翻译页目录、缓存映射项表、连续请求映射项表以及临时映射项表等映射缓存结构,结合缓存预取策略以及映射压缩存储结构,提升了闪存的整体性能。本发明通过在缓存空间中建立缓存映射项表、连续缓存映射项表、临时映射项表与翻译页目录;根据不同的请求类型使用不同的区域策略;对临时映射项表中的映射项使用相关度进行组织,并在已满时以分组为单位进行批量置换。通过本发明提供的nand型闪存地址映射方法,可以提升缓存命中率,减少翻译页的操作次数,提升nand型闪存的读写性能。

15、3). 本发明利用数据访问的时间局部性,缓存部分频繁访问的数据映射记录与缓存中,降低读写请求的响应时延。

16、4). 本发明通过引入位图来存储连续请求的映射项,实现了映射项的高度压缩,高效利用了缓存空间。

17、5). 本发明通过自适应的缓存预取策略,针对随机读写请求与连续读写请求使用不同的映射项预取策略,提高缓存命中率。

18、6). 本发明通过引入映射项间的相关度,将临时映射项表中的映射项进行分组,并在置换时选择映射项数量最多分组,减少翻译页的更新次数。综上所述,使用本发明可以使nand型闪存对连续数据以及动态i/o读写模式更加友好,最终达到提高nand型闪存读写性能的目的。

当前第1页1 2 
网友询问留言 已有0条留言
  • 还没有人留言评论。精彩留言会获得点赞!
1