CN116010298B - Nand型闪存地址映射的方法、装置、电子设备及存储介质 - Google Patents
Nand型闪存地址映射的方法、装置、电子设备及存储介质 Download PDFInfo
- Publication number
- CN116010298B CN116010298B CN202310294402.6A CN202310294402A CN116010298B CN 116010298 B CN116010298 B CN 116010298B CN 202310294402 A CN202310294402 A CN 202310294402A CN 116010298 B CN116010298 B CN 116010298B
- Authority
- CN
- China
- Prior art keywords
- mapping
- request
- read
- cache
- continuous
- Prior art date
- Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
- Active
Links
Classifications
-
- Y—GENERAL TAGGING OF NEW TECHNOLOGICAL DEVELOPMENTS; GENERAL TAGGING OF CROSS-SECTIONAL TECHNOLOGIES SPANNING OVER SEVERAL SECTIONS OF THE IPC; TECHNICAL SUBJECTS COVERED BY FORMER USPC CROSS-REFERENCE ART COLLECTIONS [XRACs] AND DIGESTS
- Y02—TECHNOLOGIES OR APPLICATIONS FOR MITIGATION OR ADAPTATION AGAINST CLIMATE CHANGE
- Y02D—CLIMATE CHANGE MITIGATION TECHNOLOGIES IN INFORMATION AND COMMUNICATION TECHNOLOGIES [ICT], I.E. INFORMATION AND COMMUNICATION TECHNOLOGIES AIMING AT THE REDUCTION OF THEIR OWN ENERGY USE
- Y02D10/00—Energy efficient computing, e.g. low power processors, power management or thermal management
Landscapes
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
- Memory System Of A Hierarchy Structure (AREA)
Abstract
本发明涉及一种NAND型闪存地址映射的方法、装置、电子设备及存储介质。NAND型闪存地址映射的方法包括步骤:S0、在缓存中建立翻译页目录、缓存映射项表、连续请求缓存映射项表;S1、当收到上层文件系统发送的读写请求,根据该请求,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,进入S2;S2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求;S3、顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中;S4、返回用户请求的处理结果。依据本发明的NAND型闪存地址映射的方法,能够对地址映射模块设计进行优化,保证查询地址映射时性能,进而保证闪存设备整体性能。
Description
技术领域
本发明涉及固态硬盘存储技术领域,具体而言,涉及一种NAND型闪存地址映射的方法、装置、电子设备及存储介质。
背景技术
闪存也有不同类型,其中主要分为NOR型和NAND型两大类。NOR型和NAND型闪存的区别很大,打个比方说,NOR型闪存更像内存,有独立的地址线和数据线,但价格比较贵,容量比较小;而NAND型更像硬盘,地址线和数据线是共用的I/O线,类似硬盘的所有信息都通过一条硬盘线传送一般,而且NAND型与NOR型闪存相比,成本要低一些,而容量大得多。
随着5G时代的到来,信息化发展日渐成熟,全球数据量的增长也十分之快。根据《数据时代2025》的预测,全世界产生的数据总量在2025年将达到163ZB。如此海量数据的存储与计算,电子设备对存储系统的读写速度、功耗、稳定性等方面都提出了更高的要求。以NAND型闪存作为存储介质的存储设备,凭借其各方面优秀的性能表现,逐渐取代了传统的磁盘存储介质,被广泛应用在军事、医疗、航空等领域。
NAND型闪存相比于传统的磁盘存储介质,有着不同的读写特性:(1)闪存的基本操作为读取、写入与擦除,其中读取与写入的基本操作单位为页,擦除的基本操作单位为块;(2)闪存中已写入数据的页无法进行原地更新,只能将数据页置为失效,再将更新后的数据写到其他的空白页上;(3)闪存块的擦写寿命有限,在擦写超过一定次数后,将无法保证数据的正确性,成为坏块。
为了兼容上层的文件系统与现有设备,隐藏NAND型闪存的特性,一般通过引入闪存转换层(Flash Translation Layer, FTL)将底层闪存封装成类似传统磁盘一样的块设备。上层文件系统通过闪存转换层,可以像操作传统磁盘一样对闪存进行读写,无需对文件系统进行修改便可兼容闪存设备。闪存转换层一般包括地址映射、坏块管理、垃圾回收以及磨损均衡等功能。闪存转换层的核心功能是地址映射。
连续文件的读写往往是影响性能的关键,在逻辑上连续的地址映射记录具有较大的压缩性,而当前的地址映射方法并没有加以利用。同时,时刻动态变化的I/O读写模式也对当前地址映射方法的性能造成了影响。
公开号CN201811124166,提出了一种借助外置存储设备备份地址映射表地址映射方法,提高了NAND型闪存数据的可靠性。但是该方法没有关注到NAND型闪存地址映射方法中映射项查询所引起的时间开销问题,导致该方法在查询地址映射时性能较差,影响整体性能。
公开号CN202210317785,提出了一种基于SLC/MLC页面的页面混淆方法,提高了NAND型闪存数据异地更新的安全性。但是该方法忽略了NAND型闪存中地址映射对于闪存转换层性能提升的重要性,没有对地址映射模块设计进行优化,导致该方法在地址映射上影响闪存设备整体性能。
因此需要发明一种连续请求友好的NAND型闪存地址映射方法,同时能够对地址映射模块设计进行优化,保证查询地址映射时性能,进而保证闪存设备整体性能。
发明内容
本发明要解决的技术问题是如何对NAND型闪存地址映射模块设计进行优化,保证查询地址映射时性能,进而保证闪存设备整体性能。
为解决上述技术问题,根据本发明的一个方面,提供一种NAND型闪存地址映射的方法,该方法包括步骤:S0、闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;S1、当收到上层文件系统发送的读写请求,首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,执行下一步;S2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求,执行下一步;S3、顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,执行下一步,其中,多个映射项优选为八个映射项;S4、得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。
根据本发明的实施例,步骤S2中,如果判断为否,则当前请求为随机请求,可在S2和S4之间执行如下步骤:S31、计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中。
进一步地,在步骤S3或步骤S31之后,可执行如下步骤:S32、判断所写入的连续请求映射项表或缓存映射项表是否已满,如果判定为没满,将预取映射项写入,执行步骤S4。
根据本发明的实施例,S0步骤还可包括:建立临时映射项表,所述临时映射项表用于存放从缓存映射项表中剔除的且已更新映射项;其中,如果S32步骤判定为已满,则执行步骤:S33、若已满映射项表为缓存映射项表,则使用最近最少使用策略选择映射项踢出至临时映射项表;若已满映射项表为临时映射项表,则选择所在映射项数量最多的一组映射项进行批量踢出。
根据本发明的实施例,步骤S1中,如果判断为否,可执行如下步骤:S11、在缓存内查找所述读写请求的映射信息。
根据本发明的实施例,步骤S0中,所述缓存映射项表可用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;其中,连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中。
根据本发明的实施例,步骤S33中,所述临时映射项表中,可使用相关度将映射项进行分组组织,并在临时缓存映射表已满时选择映射项数量最多的分组进行置换。
根据本发明的第二个方面,提供一种NAND型闪存地址映射的装置,其包括:初始化模块,所述初始化模块用于对闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;判断模块,当收到上层文件系统发送的读写请求,所述判断模块首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,则从缓存内查找该请求的映射信息,执行下一步;再次判断,判断当前读请求与前一个请求是否在请求区域内的位置是否连续;执行模块,如果判断为连续,则当前请求为连续读写请求,所述执行模块将顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,其中,多个映射项优选为八个映射项;如果判断为不连续,则当前请求为随机请求,计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;结果返回模块,所述结果返回模块得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。
根据本发明的第三个方面,提供一种电子设备,包括:存储器、处理器及存储在存储器上并可在处理器上运行的NAND型闪存地址映射程序,NAND型闪存地址映射程序被处理器执行时实现上述的NAND型闪存地址映射方法的步骤。
根据本发明的第四个方面,提供一种计算机存储介质,其中,计算机存储介质上存储有NAND型闪存地址映射程序,NAND型闪存地址映射程序被处理器执行时实现上述的NAND型闪存地址映射方法的步骤。
与现有技术相比,本发明的实施例所提供的技术方案至少可实现如下有益效果:
1). 本发明提供的一种连续请求友好的NAND型闪存地址映射方法,通过将部分映射项缓存于内存中,并利用基于位图的存储结构对连续请求的映射记录进行压缩,同时使用自适应的缓存预取策略,将更多有价值的映射项缓存于内存中,提升地址映射查询时的性能。本发明通过基于位图对连续请求的映射项进行压缩、自适应的映射项预取以及基于分组的缓存置换策略,以达到降低NAND型闪存存储设备响应时间的目的。
2). 本发明提供的一种连续请求友好的NAND型闪存地址映射方法,通过将地址映射表部分缓存于内存中,并设计了翻译页目录、缓存映射项表、连续请求映射项表以及临时映射项表等映射缓存结构,结合缓存预取策略以及映射压缩存储结构,提升了闪存的整体性能。本发明通过在缓存空间中建立缓存映射项表、连续缓存映射项表、临时映射项表与翻译页目录;根据不同的请求类型使用不同的区域策略;对临时映射项表中的映射项使用相关度进行组织,并在已满时以分组为单位进行批量置换。通过本发明提供的NAND型闪存地址映射方法,可以提升缓存命中率,减少翻译页的操作次数,提升NAND型闪存的读写性能。
3). 本发明利用数据访问的时间局部性,缓存部分频繁访问的数据映射记录与缓存中,降低读写请求的响应时延。
4). 本发明通过引入位图来存储连续请求的映射项,实现了映射项的高度压缩,高效利用了缓存空间。
5). 本发明通过自适应的缓存预取策略,针对随机读写请求与连续读写请求使用不同的映射项预取策略,提高缓存命中率。
6). 本发明通过引入映射项间的相关度,将临时映射项表中的映射项进行分组,并在置换时选择映射项数量最多分组,减少翻译页的更新次数。综上所述,使用本发明可以使NAND型闪存对连续数据以及动态I/O读写模式更加友好,最终达到提高NAND型闪存读写性能的目的。
附图说明
为了更清楚地说明本发明实施例的技术方案,下面将对实施例的附图作简单地介绍,显而易见地,下面描述中的附图仅仅涉及本发明的一些实施例,而非对本发明的限制。
图1是示出依据本发明实施例的NAND型闪存地址映射的方法流程图。
图2是示出依据本发明实施例的S0步骤示意图。
图3是示出依据本发明实施例的S3步骤一实施例示意图。
具体实施方式
为使本发明实施例的目的、技术方案和优点更加清楚,下面将结合本发明实施例的附图,对本发明实施例的技术方案进行清楚、完整地描述。显然,所描述的实施例是本发明的一部分实施例,而不是全部的实施例。基于所描述的本发明的实施例,本领域普通技术人员在无需创造性劳动的前提下所获得的所有其它实施例,都属于本发明保护的范围。
除非另作定义,此处使用的技术术语或者科学术语应当为本发明所属领域内具有一般技能的人士所理解的通常意义。本发明专利申请说明书以及权利要求书中使用的“第一”、“第二”以及类似的词语并不表示任何顺序、数量或者重要性,而只是用来区分不同的组成部分。同样,“一个”或者“一”等类似词语也不表示数量限制,而是表示存在至少一个。
图1是示出依据本发明实施例的NAND型闪存地址映射的方法流程图,图2是示出依据本发明实施例的S0步骤示意图,图3是示出依据本发明实施例的S3步骤一实施例示意图。
如图1、图2和图3所示,NAND型闪存地址映射的方法包括步骤:
S0、闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表。
如图2所示,缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中。
S1、当收到上层文件系统发送的读写请求,首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,执行下一步。
S2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求,执行下一步。如图1所示,所述读写请求分类方式是根据读写请求的请求区域以及与上一请求的连续性判断,通过请求逻辑地址所在区域内容是否第一次读取、读取的是否是首部,以及是否与上一读写请求存在连续,将读写请求分类为随机读写请求与连续读写请求。根据上述分类方法,本例中的读写请求被分类为连续读写请求。
S3、顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,执行下一步。其中,多个映射项优选为八个映射项。如图3所示为一个连续缓存映射项存储结构,顺序预取的八个映射项与前一个请求存在连续性,将其存入连续缓存映射项表中。
S4、得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。
本发明提供的一种连续请求友好的NAND型闪存地址映射方法,通过将地址映射表部分缓存于内存中,并设计了翻译页目录、缓存映射项表、连续请求映射项表以及临时映射项表等映射缓存结构,结合缓存预取策略以及映射压缩存储结构,提升了闪存的整体性能。本发明通过在缓存空间中建立缓存映射项表、连续缓存映射项表、临时映射项表与翻译页目录;根据不同的请求类型使用不同的区域策略;对临时映射项表中的映射项使用相关度进行组织,并在已满时以分组为单位进行批量置换。通过本发明提供的NAND型闪存地址映射方法,可以提升缓存命中率,减少翻译页的操作次数,提升NAND型闪存的读写性能。
本发明利用数据访问的时间局部性,缓存部分频繁访问的数据映射记录与缓存中,降低读写请求的响应时延。
根据本发明的一个或一些实施例,步骤S2中,如果判断为否,则当前请求为随机请求,可在S2和S4之间执行如下步骤:S31、计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中。
本发明通过引入映射项间的相关度,将临时映射项表中的映射项进行分组,并在置换时选择映射项数量最多分组,减少翻译页的更新次数。综上所述,使用本发明可以使NAND型闪存对连续数据以及动态I/O读写模式更加友好,最终达到提高NAND型闪存读写性能的目的。
本发明通过自适应的缓存预取策略,针对随机读写请求与连续读写请求使用不同的映射项预取策略,提高缓存命中率。
优选地,在步骤S3或步骤S31之后,执行如下步骤:S32、判断所写入的连续请求映射项表或缓存映射项表是否已满,如果判定为没满,将预取映射项写入,执行步骤S4。
根据本发明的一个或一些实施例,S0步骤还包括:建立临时映射项表,所述临时映射项表用于存放从缓存映射项表中剔除的且已更新映射项;其中,如果S32步骤判定为已满,则执行步骤:S33、若已满映射项表为缓存映射项表,则使用最近最少使用策略选择映射项踢出至临时映射项表;若已满映射项表为临时映射项表,则选择所在映射项数量最多的一组映射项进行批量踢出。
根据本发明的一个或一些实施例,步骤S1中,如果判断为否,执行如下步骤:S11、在缓存内查找所述读写请求的映射信息。
根据本发明的一个或一些实施例,步骤S0中,所述缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;其中,连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中。本发明通过引入位图来存储连续请求的映射项,实现了映射项的高度压缩,高效利用了缓存空间。
根据本发明的一个或一些实施例,步骤S33中,所述临时映射项表中,使用相关度将映射项进行分组组织,并在临时缓存映射表已满时选择映射项数量最多的分组进行置换。
如图3所示,连续请求的映射项的起始逻辑地址为421,结束逻辑地址为428,对应的位图为01110101时,按照位图为0位,即记录逻辑地址分别为421、425、427时的物理地址,也就是对应的物理地址1021、3980、1027。
这样,通过将部分映射项缓存于内存中,并利用基于位图的存储结构对连续请求的映射记录进行压缩,同时使用自适应的缓存预取策略,将更多有价值的映射项缓存于内存中,提升地址映射查询时的性能。本发明通过基于位图对连续请求的映射项进行压缩、自适应的映射项预取以及基于分组的缓存置换策略,以达到降低NAND型闪存存储设备响应时间的目的。
根据本发明的第二个方面,提供一种NAND型闪存地址映射的装置,其包括:初始化模块,所述初始化模块用于对闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;判断模块,当收到上层文件系统发送的读写请求,所述判断模块首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,则从缓存内查找该请求的映射信息,执行下一步;再次判断,判断当前读请求与前一个请求是否在请求区域内的位置是否连续;执行模块,如果判断为连续,则当前请求为连续读写请求,所述执行模块将顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,其中,多个映射项优选为八个映射项;如果判断为不连续,则当前请求为随机请求,计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;结果返回模块,所述结果返回模块得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果。
本发明提供的一种连续请求友好的NAND型闪存地址映射的装置,通过将部分映射项缓存于内存中,并利用基于位图的存储结构对连续请求的映射记录进行压缩,同时使用自适应的缓存预取策略,将更多有价值的映射项缓存于内存中,提升地址映射查询时的性能。本发明通过基于位图对连续请求的映射项进行压缩、自适应的映射项预取以及基于分组的缓存置换策略,以达到降低NAND型闪存存储设备响应时间的目的。
根据本发明还提供一种计算机存储介质。
计算机存储介质上存储有NAND型闪存地址映射程序,NAND型闪存地址映射程序被处理器执行时实现上述的NAND型闪存地址映射方法的步骤。
其中,在所述处理器上运行的NAND型闪存地址映射程序被执行时所实现的方法可参照本发明NAND型闪存地址映射方法各个实施例,此处不再赘述。
本发明还提供一种计算机程序产品。
本发明计算机程序产品包括NAND型闪存地址映射程序,所述NAND型闪存地址映射程序被处理器执行时实现如上所述的NAND型闪存地址映射方法的步骤。
其中,在所述处理器上运行的NAND型闪存地址映射程序被执行时所实现的方法可参照本发明NAND型闪存地址映射方法各个实施例,此处不再赘述。
通过以上的实施方式的描述,本领域的技术人员可以清楚地了解到上述实施例方法可借助软件加必需的通用硬件平台的方式来实现,当然也可以通过硬件,但很多情况下前者是更佳的实施方式。基于这样的理解,本发明的技术方案本质上或者说对现有技术做出贡献的部分可以以软件产品的形式体现出来,该计算机软件产品存储在如上所述的一个存储介质(如ROM/RAM、磁碟、光盘)中,包括若干指令用以使得一台终端设备(可以是手机,计算机,服务器,空调器,或者网络设备等)执行本发明各个实施例所述的方法。
以上所述仅是本发明的示范性实施方式,而非用于限制本发明的保护范围,本发明的保护范围由所附的权利要求确定。
Claims (4)
1.一种NAND型闪存地址映射的方法,包括如下步骤:
S0、闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取多个映射项存入连续请求映射项表中;
S1、当收到上层文件系统发送的读写请求,首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,执行下一步;
S2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求,执行下一步;
S3、顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,执行下一步;
S4、得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果;
其中,步骤S2中,如果判断为否,则当前请求为随机请求,在S2和S4之间执行如下步骤:S31、计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;通过引入映射项间的相关度,将临时映射项表中的映射项进行分组,并在置换时选择映射项数量最多分组,减少翻译页的更新次数;综上所述,使用本发明可以使NAND型闪存对连续数据以及动态I/O读写模式更加友好,最终达到提高NAND型闪存读写性能的目的;通过自适应的缓存预取策略,针对随机读写请求与连续读写请求使用不同的映射项预取策略,提高缓存命中率;
其中,在步骤S3或步骤S31之后,执行如下步骤:S32、判断所写入的连续请求映射项表或缓存映射项表是否已满,如果判定为没满,将预取映射项写入,执行步骤S4;
其中,S0步骤还包括:建立临时映射项表,所述临时映射项表用于存放从缓存映射项表中剔除的且已更新映射项;其中,如果S32步骤判定为已满,则执行步骤:S33、若已满映射项表为缓存映射项表,则使用最近最少使用策略选择映射项踢出至临时映射项表;若已满映射项表为临时映射项表,则选择所在映射项数量最多的一组映射项进行批量踢出;
其中,步骤S1中,如果判断为否,执行如下步骤:S11、在缓存内查找所述读写请求的映射信息;
其中,步骤S0中,所述缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;其中,连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中;通过引入位图来存储连续请求的映射项,实现了映射项的高度压缩,高效利用了缓存空间;
其中,步骤S33中,所述临时映射项表中,使用相关度将映射项进行分组组织,并在临时缓存映射表已满时选择映射项数量最多的分组进行置换。
2.一种NAND型闪存地址映射的装置,包括:
初始化模块,所述初始化模块用于对闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;
判断模块,当收到上层文件系统发送的读写请求,所述判断模块首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,则从缓存内查找该请求的映射信息,执行下一步;再次判断,判断当前读请求与前一个请求是否在请求区域内的位置是否连续;
执行模块,如果判断为连续,则当前请求为连续读写请求,所述执行模块将顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中;如果判断为不连续,则当前请求为随机请求,计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;
结果返回模块,所述结果返回模块得到读写请求所需的物理地址后完成数据的传输与写入,返回用户请求的处理结果;
其中,所述NAND型闪存地址映射的装置执行如下步骤:
S0、所述初始化模块对闪存转换层基于按需加载的页面级地址进行映射,在缓存中建立翻译页目录,所述翻译页目录用于记录翻译页的物理地址,并基于时间局部性的特征,建立缓存映射项表;基于空间局部性特征,建立连续请求缓存映射项表;缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取多个映射项存入连续请求映射项表中;
S1、当收到上层文件系统发送的读写请求,所述判断模块首先根据该请求区域内容,判断其是否是第一次读取,并且读取的是否为首部,如果判断为是,执行下一步;
S2、判断当前读请求与前一个请求是否在请求区域内的位置是否连续,如果判断为是,则当前请求为连续读写请求,执行下一步;
S3、所述所述执行模块顺序预取请求区域内的多个映射项,存入所述连续请求映射项表中,执行下一步;
S4、得到读写请求所需的物理地址后完成数据的传输与写入,所述结果返回模块返回用户请求的处理结果;
其中,步骤S2中,如果判断为否,则当前请求为随机请求,可在S2和S4之间执行如下步骤:S31、计算请求区域内各数据页的访问次数,预取请求区域内访问次数最高的数据页对应的映射项,存入所述缓存映射项表中;通过引入映射项间的相关度,将临时映射项表中的映射项进行分组,并在置换时选择映射项数量最多分组,减少翻译页的更新次数;综上所述,使用本发明可以使NAND型闪存对连续数据以及动态I/O读写模式更加友好,最终达到提高NAND型闪存读写性能的目的;通过自适应的缓存预取策略,针对随机读写请求与连续读写请求使用不同的映射项预取策略,提高缓存命中率;
其中,在步骤S3或步骤S31之后,执行如下步骤:S32、判断所写入的连续请求映射项表或缓存映射项表是否已满,如果判定为没满,将预取映射项写入,执行步骤S4;
其中,S0步骤还包括:建立临时映射项表,所述临时映射项表用于存放从缓存映射项表中剔除的且已更新映射项;其中,如果S32步骤判定为已满,则执行步骤:S33、若已满映射项表为缓存映射项表,则使用最近最少使用策略选择映射项踢出至临时映射项表;若已满映射项表为临时映射项表,则选择所在映射项数量最多的一组映射项进行批量踢出;
其中,步骤S1中,如果判断为否,执行如下步骤:S11、在缓存内查找所述读写请求的映射信息;
其中,步骤S0中,所述缓存映射项表用于缓存非连续读写请求的映射记录,一次加载当前随机读写请求的一条映射记录,同时预取所在区域内的热映射项,其中记录的是逻辑地址以及与其相应的物理地址;其中,连续缓存映射项表用于缓存连续读写请求的映射记录,通过引入位图记录连续地址上的缓存状态,实现映射记录的高效压缩,一次预取八个映射项存入连续请求映射项表中;通过引入位图来存储连续请求的映射项,实现了映射项的高度压缩,高效利用了缓存空间;
其中,步骤S33中,所述临时映射项表中,使用相关度将映射项进行分组组织,并在临时缓存映射表已满时选择映射项数量最多的分组进行置换。
3.一种电子设备,包括:存储器、处理器及存储在所述存储器上并可在所述处理器上运行的NAND型闪存地址映射程序,所述NAND型闪存地址映射程序被所述处理器执行时实现如权利要求1中所述的NAND型闪存地址映射方法的步骤。
4.一种计算机存储介质,其中,所述计算机存储介质上存储有NAND型闪存地址映射程序,所述NAND型闪存地址映射程序被处理器执行时实现如权利要求1中所述的NAND型闪存地址映射方法的步骤。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294402.6A CN116010298B (zh) | 2023-03-24 | 2023-03-24 | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202310294402.6A CN116010298B (zh) | 2023-03-24 | 2023-03-24 | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
Publications (2)
Publication Number | Publication Date |
---|---|
CN116010298A CN116010298A (zh) | 2023-04-25 |
CN116010298B true CN116010298B (zh) | 2023-09-22 |
Family
ID=86033910
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202310294402.6A Active CN116010298B (zh) | 2023-03-24 | 2023-03-24 | Nand型闪存地址映射的方法、装置、电子设备及存储介质 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN116010298B (zh) |
Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
KR101297442B1 (ko) * | 2013-02-22 | 2013-08-16 | 서울과학기술대학교 산학협력단 | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 |
CN103744864A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 缓存数据读写的方法、系统及其固态硬盘 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN111506517A (zh) * | 2020-03-05 | 2020-08-07 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其系统 |
CN113377690A (zh) * | 2021-06-28 | 2021-09-10 | 福建师范大学 | 一种适应不同大小的用户请求的固态硬盘处理方法 |
CN114063921A (zh) * | 2021-11-12 | 2022-02-18 | 福建师范大学 | 一种基于强化学习的固态硬盘映射记录缓存管理方法 |
Family Cites Families (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR101533744B1 (ko) * | 2008-10-16 | 2015-07-10 | 삼성전자주식회사 | 플래시 메모리 시스템 및 그것의 플래시 변환 계층 설계 방법 |
KR101453313B1 (ko) * | 2013-03-25 | 2014-10-22 | 아주대학교산학협력단 | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 |
US20140304453A1 (en) * | 2013-04-08 | 2014-10-09 | The Hong Kong Polytechnic University | Effective Caching for Demand-based Flash Translation Layers in Large-Scale Flash Memory Storage Systems |
US20170249257A1 (en) * | 2016-02-29 | 2017-08-31 | Itu Business Development A/S | Solid-state storage device flash translation layer |
-
2023
- 2023-03-24 CN CN202310294402.6A patent/CN116010298B/zh active Active
Patent Citations (7)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
CN102981963A (zh) * | 2012-10-30 | 2013-03-20 | 华中科技大学 | 一种固态盘的闪存转换层的实现方法 |
KR101297442B1 (ko) * | 2013-02-22 | 2013-08-16 | 서울과학기술대학교 산학협력단 | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 |
CN103744864A (zh) * | 2013-12-17 | 2014-04-23 | 记忆科技(深圳)有限公司 | 缓存数据读写的方法、系统及其固态硬盘 |
CN106815152A (zh) * | 2016-12-27 | 2017-06-09 | 华中科技大学 | 一种优化页级闪存转换层的方法 |
CN111506517A (zh) * | 2020-03-05 | 2020-08-07 | 杭州电子科技大学 | 一种基于访问局部性的闪存页级地址映射方法及其系统 |
CN113377690A (zh) * | 2021-06-28 | 2021-09-10 | 福建师范大学 | 一种适应不同大小的用户请求的固态硬盘处理方法 |
CN114063921A (zh) * | 2021-11-12 | 2022-02-18 | 福建师范大学 | 一种基于强化学习的固态硬盘映射记录缓存管理方法 |
Non-Patent Citations (5)
Title |
---|
HPC海量存储系统Pass-Through访问策略研究;朱平;;计算机研究与发展(第08期);全文 * |
Optimizing Translation Information Management in NAND Flash Memory Storage Systems;Zhang, Q等;Asia and South Pacific Design Automation Conference Proceedings;全文 * |
一种基于分类策略的聚簇页级闪存转换层算法;姚英彪;杜晨杰;王发宽;;计算机研究与发展(第01期);全文 * |
一种面向闪存固态盘的页级缓冲区管理算法;杜晨杰;姚英彪;;计算机工程(第07期);全文 * |
基于缓存映射项重用距离的闪存地址映射方法;周权彪;张兴军;梁宁静;霍文洁;董小社;;计算机研究与发展(第05期);全文 * |
Also Published As
Publication number | Publication date |
---|---|
CN116010298A (zh) | 2023-04-25 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11055230B2 (en) | Logical to physical mapping | |
CN102760101B (zh) | 一种基于ssd 的缓存管理方法及系统 | |
US8037112B2 (en) | Efficient access of flash databases | |
US7613870B2 (en) | Efficient memory usage in systems including volatile and high-density memories | |
CN108268219B (zh) | 一种处理io请求的方法及装置 | |
JP2011530133A (ja) | キャッシュコンテンツの記憶管理 | |
JP2013137770A (ja) | Lbaビットマップの使用 | |
KR101297442B1 (ko) | 공간 지역성을 고려한 요구 기반 플래시 메모리 변환 계층을 포함하는 낸드 플래시 메모리 시스템 | |
KR20140116617A (ko) | 플래시 메모리 기반의 페이지 주소 사상 방법 및 시스템 | |
US20200225882A1 (en) | System and method for compaction-less key-value store for improving storage capacity, write amplification, and i/o performance | |
CN110532200B (zh) | 一种基于混合内存架构的内存系统 | |
CN110795363B (zh) | 一种存储介质的热页预测方法和页面调度方法 | |
CN110262982A (zh) | 一种固态硬盘地址映射的方法 | |
US20080263061A1 (en) | Self-Tuning Index for Flash-Based Databases | |
CN114063921B (zh) | 一种基于强化学习的固态硬盘映射记录缓存管理方法 | |
CN109002400B (zh) | 一种内容感知型计算机缓存管理系统及方法 | |
US11662932B2 (en) | Tiered storage system with defragmentation based on weighted flash fragmentation factor | |
CN103019963B (zh) | 一种高速缓存的映射方法及存储设备 | |
KR102321346B1 (ko) | 대용량 ssd 장치를 위한 데이터 저널링 방법 | |
CN111506517B (zh) | 一种基于访问局部性的闪存页级地址映射方法及其系统 | |
US9268700B2 (en) | Cache control device, cache control method, and program thereof | |
CN116010298B (zh) | Nand型闪存地址映射的方法、装置、电子设备及存储介质 | |
CN115774699B (zh) | 数据库共享字典压缩方法、装置、电子设备及存储介质 | |
CN110309081B (zh) | 基于压缩存储和地址映射表项的ftl读写数据页的方法 | |
US8209473B2 (en) | Flash storage device and operating method thereof |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PB01 | Publication | ||
PB01 | Publication | ||
SE01 | Entry into force of request for substantive examination | ||
SE01 | Entry into force of request for substantive examination | ||
GR01 | Patent grant | ||
GR01 | Patent grant |