CN109542354A - 一种基于擦除上限的磨损均衡方法、装置及设备 - Google Patents

一种基于擦除上限的磨损均衡方法、装置及设备 Download PDF

Info

Publication number
CN109542354A
CN109542354A CN201811434918.1A CN201811434918A CN109542354A CN 109542354 A CN109542354 A CN 109542354A CN 201811434918 A CN201811434918 A CN 201811434918A CN 109542354 A CN109542354 A CN 109542354A
Authority
CN
China
Prior art keywords
flash block
erase
flash
block
preset condition
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.)
Granted
Application number
CN201811434918.1A
Other languages
English (en)
Other versions
CN109542354B (zh
Inventor
朱增昌
韩国军
陈弯弯
方毅
蔡国发
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Guangdong University of Technology
Original Assignee
Guangdong University of Technology
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Application filed by Guangdong University of Technology filed Critical Guangdong University of Technology
Priority to CN201811434918.1A priority Critical patent/CN109542354B/zh
Publication of CN109542354A publication Critical patent/CN109542354A/zh
Application granted granted Critical
Publication of CN109542354B publication Critical patent/CN109542354B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0602Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
    • G06F3/0614Improving the reliability of storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F12/00Accessing, addressing or allocating within memory systems or architectures
    • G06F12/02Addressing or allocation; Relocation
    • G06F12/0223User address space allocation, e.g. contiguous or non contiguous base addressing
    • G06F12/023Free address space management
    • G06F12/0238Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory
    • G06F12/0246Memory management in non-volatile memory, e.g. resistive RAM or ferroelectric memory in block erasable memory, e.g. flash memory
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0646Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
    • G06F3/0652Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device
    • G06F3/0679Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]

Abstract

本发明公开了一种基于擦除上限的磨损均衡方法,能在当前闪存块被擦除后,判断当前闪存块的被擦除次数是否满足第一预设条件,并在满足时筛选出满足第二预设条件的目标闪存块,最后将目标闪存块上的数据迁移到当前闪存块,并将二者的映射地址进行交换,以实现磨损均衡。可见,由于该方法的第一预设条件为基于擦除上限和最大被擦除次数来判断是否需要进行数据迁移,因此避免了前期频繁触发数据迁移的问题,而且该方法限定了目标闪存块的被擦除次数满足第二预设条件,避免了选取到被擦除次数较大的目标闪存块,显著提升了磨损均衡的效果。此外,本发明还提供了一种基于擦除上限的磨损均衡装置、设备及计算机可读存储介质,其作用与上述方法相对应。

Description

一种基于擦除上限的磨损均衡方法、装置及设备
技术领域
本发明涉及存储领域,特别涉及一种基于擦除上限的磨损均衡方法、装置、设备及计算机可读存储介质。
背景技术
闪存(Flash Memory)是嵌入式系统中一种常用的存储介质,它是一种非易失性或者固态的存储器,即不包含移动部件,这一点对于具有高移动性的便携式设别非常重要。另外,闪存还具有读写速度快、省电、耐高温和无噪声等诸多优点。随着制造技术的成熟,不仅闪存的成本越来越低,而且存储容量越来越大,存储密度也越来越高,其应用领域在逐步扩展。
闪存设备由若干个闪存块组成,每个闪存块又分为若干个物理页。闪存块是擦除操作的最小单位,而读和写都是以物理页为单位。闪存设备采取异地更新的策略,更新的数据会被放到别的物理页上,而不是覆盖原来的数据。包含新版本数据的页被称为有效页,新版本数据被称为有效数据。包含旧版本数据的页被称为无效页,或称为脏页,脏页经过擦除操作后成为空闲页,才可以重新写入数据。
但是,因为每个闪存块的擦除次数有限,一般是在10万次到100万次之间,只要有块的擦除次数达到了上限,闪存数据存储的性能下降,所以需要运用磨损均衡(wear-leveling)算法使擦除操作平均地发生在各个块上。
目前,磨损均衡算法可分为动态算法和静态算法两大类。
动态磨损均衡算法在闪存设备的垃圾回收过程中,会综合考虑磨损程度来选择进行擦除的闪存块,其侧重于重复使用擦除次数较少的闪存块。举例来说,如图1所示,闪存块A上有一物理页需要更新,根据动态磨损均衡算法的思想,闪存块B已擦除100次,闪存块C已擦除60次,闪存块D已擦除90次,可见闪存块C的擦除次数在3个闪存块中是最小的,故将更新数据写入到闪存块C中。
静态磨损均衡算法的主要思想为,每隔一定时间将闪存设备上的冷热数据进行交换(定义频繁被更新的数据为热数据,相对很少改变的数据为冷数据),该算法侧重于将冷数据迁移到磨损程度较大的闪存块。举例来说,如图2所示,闪存块A已擦除次数,闪存块B已擦除100次,闪存块C已擦除60次,显然闪存块A的擦除次数明显小于其余两个闪存块,因此认为闪存块A存储的是冷数据,并将其数据转移到擦除次数最大的块B上,再对闪存块A进行擦除,以增加其获得更新数据的机会。
其中,静态磨损均衡算法中最常见的为渐进型磨损均衡算法,简称PWL,PWL针对所有闪存块的平均擦除次数来衡量是否触发磨损均衡,其原理为:在某个闪存块被擦除后,判断该闪存块被擦除次数是否超过所有闪存块的平均擦除次数,如果超过,则触发磨损均衡,也就是说,寻找被擦除次数小于上述平均擦除次数且存储冷数据的目标闪存块,并将目标闪存块上的冷数据迁移到该闪存块上。
该算法存在以下两个问题:第一,该算法在前期会过于频繁的触发磨损均衡,一般情况下,闪存块在前期被擦除次数不会过大,因此前期进行数据迁移的磨损均衡效果较差,而且频繁的迁移数据还会导致闪存设备磨损;第二,该算法寻找到的目标闪存块可能是被擦除次数较接近上述被擦除平均数的闪存块,这种情况下进行数据迁移的磨损均衡的效果也比较差。
可见,传统的磨损均衡算法基于所有闪存块的平均被擦除次数来触发磨损均衡并选取目标闪存块,因此容易在前期频繁进行数据迁移或选取到被擦除次数较大的目标闪存块,导致磨损均衡的效果较差,且加剧闪存设备在前期的磨损程度。
发明内容
本发明的目的是提供一种基于擦除上限的磨损均衡方法、装置、设备及计算机可读存储介质,用以解决传统的磨损均衡算法基于所有闪存块的平均被擦除次数来触发磨损均衡并选取目标闪存块,因此磨损均衡的效果较差,且加剧了闪存设备在前期的磨损程度的问题。
为解决上述技术问题,本发明提供了一种基于擦除上限的磨损均衡方法,包括:
在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件,其中,所述闪存设备包括多个闪存块,所述第一预设条件为:erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数;
若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块,其中,所述第二预设条件为:(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值;
将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
可选的,所述第二预设条件具体为:所述目标闪存块在前预设次数的磨损均衡过程中未进行冷热数据迁移,且(erase_victim-erase_min)/(erase_max-erase_min)<q。
可选的,所述第二预设条件具体为:
所述目标闪存块的数据时效性数组WriteArray==0,且(erase_victim-erase_min)/(erase_max-erase_min)<q,其中,所述数据时效性数组为预先设置的用于反映闪存块中数据的冷热程度的数组。
可选的,在所述若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块之后,且在所述将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡之前,还包括:
若所述闪存设备中满足所述第二预设条件的目标闪存块的数量为多个,则从所述多个目标闪存块中随机选择一个目标闪存块。
可选的,所述预设调节因子p为0.1。
可选的,所述预设阈值q为0.1。
相应的,本发明还提供了一种基于擦除上限的磨损均衡装置,包括:
判断模块:用于在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件,其中,所述闪存设备包括多个闪存块,所述第一预设条件为:erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数;
筛选模块:用于若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块,其中,所述第二预设条件为:
(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值;
迁移模块:用于将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
可选的,所述装置还包括:
随机选择模块:用于若所述闪存设备中满足所述第二预设条件的目标闪存块的数量为多个,则从所述多个目标闪存块中随机选择一个目标闪存块。
此外,本发明还提供了一种基于擦除上限的磨损均衡设备,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如上所述的一种基于擦除上限的磨损均衡方法的步骤。
最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于擦除上限的磨损均衡方法的步骤。
本发明所提供的一种基于擦除上限的磨损均衡方法,能在当前闪存块被擦除后,判断当前闪存块的被擦除次数是否满足第一预设条件,并在满足第一预设条件时,筛选出满足第二预设条件的目标闪存块,最后将目标闪存块上的数据迁移到当前闪存块,并将二者的映射地址进行交换,以实现磨损均衡。可见,由于该方法的第一预设条件为基于擦除上限和最大被擦除次数来判断是否需要进行数据迁移,因此避免了基于平均被擦除次数判断时导致前期频繁触发数据迁移的问题,而且,该方法限定了目标闪存块的被擦除次数满足第二预设条件中的公式,避免了选取到被擦除次数较大的目标闪存块,显著提升了磨损均衡的效果。
此外,本发明还提供了一种基于擦除上限的磨损均衡装置、设备及计算机可读存储介质,其作用与上述方法相对应,这里不再赘述。
附图说明
为了更清楚的说明本发明实施例或现有技术的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单的介绍,显而易见地,下面描述中的附图仅仅是本发明的一些实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据这些附图获得其他的附图。
图1为本发明所提供的动态磨损均衡算法示意图;
图2为本发明所提供的静态磨损均衡算法示意图;
图3为本发明所提供的一种基于擦除上限的磨损均衡方法实施例一的实现流程图;
图4为本发明所提供的flash存储器的系统组成示意图;
图5为本发明所提供的一种基于擦除上限的磨损均衡方法实施例一的仿真实验结果示意图;
图6为本发明所提供的一种基于擦除上限的磨损均衡装置实施例的功能框图;
图7为本发明所提供的一种基于擦除上限的磨损均衡设备实施例的结构框图。
具体实施方式
本发明的核心是提供一种基于擦除上限的磨损均衡方法、装置、设备及计算机可读存储介质,避免了前期频繁触发数据迁移或选取到被擦除次数较大的目标闪存块的问题,显著提升了磨损均衡的效果。
为了使本技术领域的人员更好地理解本发明方案,下面结合附图和具体实施方式对本发明作进一步的详细说明。显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
下面对本发明提供的一种基于擦除上限的磨损均衡方法实施例一进行介绍,参见图3,实施例一包括:
步骤S101:在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件。
其中,所述闪存设备包括多个闪存块,所述第一预设条件为:
erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数。
作为一种可选的实施方式,上述预设调节因子p可以为0.1。
需要说明,本实施例中涉及到的闪存设备一般由若干个闪存块组成,每个闪存块又分为若干个物理页。其中,闪存块是擦除操作的最小单位,而读和写则是以物理页为单位。因为闪存块的擦除次数有限,一般是在10万次到100万次之间,而只要有闪存块的擦除次数达到了上限,整个闪存设备的存储性能就会下降,所以需要运用磨损均衡(wear-leveling)算法使擦除操作平均地发生在各个闪存块上。
本实施例中,上述当前闪存块以及下文将会提到的目标闪存块均为闪存设备的闪存块,其中,当前闪存块为刚刚经过擦除的闪存块,而目标闪存块则是从闪存设备的多个闪存块中筛选出的满足下述第二预设条件的闪存块。
步骤S102:若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块。
其中,所述第二预设条件为:
(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值。
作为一种可选的实施方式,上述预设阈值q可以为0.1。
具体的,可以认为满足第一预设条件的闪存块为被擦除次数较多的闪存块(以下将其成为当前闪存块),我们希望找到一个闪存块(以下将找到的闪存块称为目标闪存块),将目标闪存块上的数据迁移到当期闪存块,以降低当前闪存块的在将来一段时间内被擦除的可能,同时,增加目标闪存块获取热数据的可能,以实现磨损均衡的目的。
基于这个考虑,本实施例在筛选目标闪存块时,将各个闪存块按照表1分为以下四种类型,由表1可以看出,因为被擦除次数较多,类型2和类型4的闪存块不合适存储热数据;类型1的闪存块本身已经存储热数据,因此对其进行冷热数据迁移并不会为磨损均衡带来效果,反而会因为数据迁移增加闪存块的磨损程度;类型3的闪存块被擦除的次数较少,而且当前存储的是冷数据,因此适合用来进行冷热数据交换。
表1
被擦除次数较少 被擦除次数较多
存储热数据 类型1 类型2
存储冷数据 类型3 类型4
如上所述,我们希望目标闪存块不仅被擦除次数较少,而且我们还希望目标闪存块上存储的是冷数据。因此,作为一种优选的实施方式,上述第二预设条件可以不仅仅限定目标闪存块的被擦除次数,还可以限定当前存储的数据为冷数据,也就是说,所述第二预设条件具体可以为:所述目标闪存块在前预设次数的磨损均衡过程中未进行冷热数据迁移,且(erase_victim-erase_min)/(erase_max-erase_min)<q。
作为一种可选的实施方式,本实施例定义一个WriteArray数组,来衡量闪存块中冷热数据的时效性,该数组的初始值0,表示为冷数据,因此,上述限定目标闪存块当前存储的数据为冷数据具体可以表示为:目标闪存块的数据时效性数组WriteArray==0。
需要说明的是,经过步骤S102最终筛选出的目标闪存块的数量应为一个,当满足上述第二预设条件的闪存块的数量为多个时,可以从这多个闪存块中随机选择一个闪存块作为最终的目标闪存块。
步骤S103:将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
具体的,在将目标闪存块上的数据迁移到当前闪存块之后,可以对目标闪存块进行擦除,更新前面提及的相关参数,上述对映射地址进行交换也就是将指向目标闪存块的逻辑地址修改为指向当前闪存块。
作为一种可选的实施方式,在本实施例中,上述闪存设备具体可以为flash存储器,flash存储器的真实情况是局部存储热数据的闪存块进行的擦除操作较为频繁,其余存储冷数据的闪存块进行的擦除操作较为稀少,这种不均衡的闪存块擦除最终会缩短整个flash存储器的有效使用寿命,所以为了充分利用flash存储器,如图4所示,在文件系统层与驱动层之间存在flash翻译层(即Flash Translation Layer,简称FTL),本实施例可以基于该层实现。下面对参照图4对flash翻译层功能进行简要介绍:
flash翻译层实现了flash的地址映射、垃圾回收(GC)以及磨损均衡(WL)等关键技术。其中,wear leveler模块:通过阻止单个闪存块在短时间达到擦除次数上限,使得各个闪存块之间磨损程度保持均衡,从而延长整个flash存储器的寿命;allocator模块:分配文件的地址,将上层文件的LBA(逻辑地址)转换成对应的PBA(物理地址);cleaner模块:垃圾回收(GC),对闪存块中的包含无效数据的物理页进行清除。
为验证本实施例的实施效果,本发明还提供了仿真实验,将传统的PWL与本实施例提供的方法进行对比。参见图5,横坐标表示写入数据的次数,纵坐标是所有闪存块擦除次数的均方差,可以看出,写入的数据是20w,设置一共有32个闪存块,每个闪存块内有64个物理页,在向所有闪存块输入数据约12w后,采用本实施例的方法进行磨损均衡使得闪存块的擦除次数均方差更小,而且即便使用到后期,本实施的磨损均衡方法的性能依然保持优于PWL,所有闪存块擦除次数更接近,可见本实施例提供的基于擦除上限的磨损均衡方法能够更加充分的发挥闪存设备的存储能力。
综上可见,本实施例所提供一种基于擦除上限的磨损均衡方法,能在当前闪存块被擦除后,判断当前闪存块的被擦除次数是否满足第一预设条件,并在满足第一预设条件时,筛选出满足第二预设条件的目标闪存块,最后将目标闪存块上的数据迁移到当前闪存块,并将二者的映射地址进行交换,以实现磨损均衡。
可见,与传统的PWL算法不同,由于传统的PWL算法根据所有闪存块的平均被擦除次数来触发数据迁移,因此,会导致在前期触发数据迁移的频率较高,而在后期触发数据迁移的频率较低,导致磨损均衡的效果较差。而本发明提供的基于擦除上限的磨损均衡方法,基于擦除上限和最大被擦除次数来判断是否需要进行数据迁移,因此在前期触发频率较低,在后期触发频率较高,使得各个闪存块的被擦除次数逐渐接近上限值,磨损均衡的效果更佳理想。
此外,本发明提供的基于擦除上限的磨损均衡方法限定了目标闪存块的被擦除次数满足第二预设条件,也就是保证目标闪存块的被擦除次数尽可能的小,避免因为选取到被擦除次数较大的目标闪存块导致磨损均衡的效果较差。
下面对本发明实施例提供的一种基于擦除上限的磨损均衡装置实施例进行介绍,下文描述的一种基于擦除上限的磨损均衡装置与上文描述的一种基于擦除上限的磨损均衡方法可相互对应参照。
如图6所示,该装置实施例包括:
判断模块601:用于在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件,其中,所述闪存设备包括多个闪存块,所述第一预设条件为:erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数。
筛选模块602:用于若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块,其中,所述第二预设条件为:
(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值。
迁移模块603:用于将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
可选的,所述装置还包括:
随机选择模块304:用于若所述闪存设备中满足所述第二预设条件的目标闪存块的数量为多个,则从所述多个目标闪存块中随机选择一个目标闪存块。
本实施例的一种基于擦除上限的磨损均衡装置用于实现前述的一种基于擦除上限的磨损均衡方法,因此该装置中的具体实施方式可见前文中的一种基于擦除上限的磨损均衡方法的实施例部分,例如,判断模块601、筛选模块602、迁移模块603,分别用于实现上述一种基于擦除上限的磨损均衡方法中步骤S101,S102,S103。所以,其具体实施方式可以参照相应的各个部分实施例的描述,在此不再展开介绍。
另外,由于本实施例的一种基于擦除上限的磨损均衡装置用于实现前述的一种基于擦除上限的磨损均衡方法,因此其作用与上述方法的作用相对应,这里不再赘述。
此外,本发明还提供了一种基于擦除上限的磨损均衡设备实施例,如图7所述,该设备实施例包括:
存储器701:用于存储计算机程序;
处理器702:用于执行所述计算机程序以实现如上所述的一种基于擦除上限的磨损均衡方法的步骤。
在实际应用场景中,上述存储器701可以是随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM等用于存储计算机程序的存储介质,而上述处理器702是具备运算能力和控制能力的逻辑器件,具体为包括运算逻辑部件、寄存器部件和控制部件的硬件设备,例如CPU。
最后,本发明还提供了一种计算机可读存储介质,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如上所述的一种基于擦除上限的磨损均衡方法的步骤。
本实施例的一种基于擦除上限的磨损均衡设备、计算机可读存储介质用于实现前述的一种基于擦除上限的磨损均衡方法,因此该设备及计算机可读存储介质中的具体实施方式可见前文中的一种基于擦除上限的磨损均衡方法的实施例部分,且二者的作用与前文中方法实施例的作用相对应,这里不再赘述。
本说明书中各个实施例采用递进的方式描述,每个实施例重点说明的都是与其它实施例的不同之处,各个实施例之间相同或相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
专业人员还可以进一步意识到,结合本文中所公开的实施例描述的各示例的单元及算法步骤,能够以电子硬件、计算机软件或者二者的结合来实现,为了清楚地说明硬件和软件的可互换性,在上述说明中已经按照功能一般性地描述了各示例的组成及步骤。这些功能究竟以硬件还是软件方式来执行,取决于技术方案的特定应用和设计约束条件。专业技术人员可以对每个特定的应用来使用不同方法来实现所描述的功能,但是这种实现不应认为超出本发明的范围。
结合本文中所公开的实施例描述的方法或算法的步骤可以直接用硬件、处理器执行的软件模块,或者二者的结合来实施。软件模块可以置于随机存储器(RAM)、内存、只读存储器(ROM)、电可编程ROM、电可擦除可编程ROM、寄存器、硬盘、可移动磁盘、CD-ROM、或技术领域内所公知的任意其它形式的存储介质中。
以上对本发明所提供的一种基于擦除上限的磨损均衡方法、装置、设备以及计算机可读存储介质进行了详细介绍。本文中应用了具体个例对本发明的原理及实施方式进行了阐述,以上实施例的说明只是用于帮助理解本发明的方法及其核心思想。应当指出,对于本技术领域的普通技术人员来说,在不脱离本发明原理的前提下,还可以对本发明进行若干改进和修饰,这些改进和修饰也落入本发明权利要求的保护范围内。

Claims (10)

1.一种基于擦除上限的磨损均衡方法,其特征在于,包括:
在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件,其中,所述闪存设备包括多个闪存块,所述第一预设条件为:erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数;
若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块,其中,所述第二预设条件为:(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值;
将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
2.如权利要求1所述的方法,其特征在于,所述第二预设条件具体为:所述目标闪存块在前预设次数的磨损均衡过程中未进行冷热数据迁移,且(erase_victim-erase_min)/(erase_max-erase_min)<q。
3.如权利要求2所述的方法,其特征在于,所述第二预设条件具体为:所述目标闪存块的数据时效性数组WriteArray==0,且(erase_victim-erase_min)/(erase_max-erase_min)<q,其中,所述数据时效性数组为预先设置的用于反映闪存块中数据的冷热程度的数组。
4.如权利要求3所述的方法,其特征在于,在所述若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块之后,且在所述将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡之前,还包括:
若所述闪存设备中满足所述第二预设条件的目标闪存块的数量为多个,则从所述多个目标闪存块中随机选择一个目标闪存块。
5.如权利要求1所述的方法,其特征在于,所述预设调节因子p为0.1。
6.如权利要求1所述的方法,其特征在于,所述预设阈值q为0.1。
7.一种基于擦除上限的磨损均衡装置,其特征在于,包括:
判断模块:用于在闪存设备的当前闪存块被擦除后,判断所述当前闪存块的被擦除次数是否满足第一预设条件,其中,所述闪存设备包括多个闪存块,所述第一预设条件为:erase_count>p*(erase_limit-erase_max),其中erase_count为所述当前闪存块的被擦除次数,p为预设调节因子,erase_limit为所述闪存设备中闪存块的擦除次数上限,erase_max为所述闪存设备中各个闪存块的最大被擦除次数;
筛选模块:用于若所述当前闪存块的被擦出次数满足所述第一预设条件,则筛选所述闪存设备中满足第二预设条件的目标闪存块,其中,所述第二预设条件为:
(erase_victim-erase_min)/(erase_max-erase_min)<q,其中erase_victim为所述目标闪存块的被擦除次数,ersae_min为所述闪存设备中各个闪存块的最小被擦除次数,q为预设阈值;
迁移模块:用于将所述目标闪存块上的数据迁移到所述当前闪存块,并将所述目标闪存块与所述当前闪存块的映射地址进行交换,以实现磨损均衡。
8.如权利要求7所述的装置,其特征在于,所述装置还包括:
随机选择模块:用于若所述闪存设备中满足所述第二预设条件的目标闪存块的数量为多个,则从所述多个目标闪存块中随机选择一个目标闪存块。
9.一种基于擦除上限的磨损均衡设备,其特征在于,包括:
存储器:用于存储计算机程序;
处理器:用于执行所述计算机程序以实现如权利要求1-6任意一项所述的一种基于擦除上限的磨损均衡方法的步骤。
10.一种计算机可读存储介质,其特征在于,所述计算机可读存储介质上存储有计算机程序,所述计算机程序被处理器执行时实现如权利要求1-6任意一项所述的一种基于擦除上限的磨损均衡方法的步骤。
CN201811434918.1A 2018-11-28 2018-11-28 一种基于擦除上限的磨损均衡方法、装置及设备 Active CN109542354B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN201811434918.1A CN109542354B (zh) 2018-11-28 2018-11-28 一种基于擦除上限的磨损均衡方法、装置及设备

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN201811434918.1A CN109542354B (zh) 2018-11-28 2018-11-28 一种基于擦除上限的磨损均衡方法、装置及设备

Publications (2)

Publication Number Publication Date
CN109542354A true CN109542354A (zh) 2019-03-29
CN109542354B CN109542354B (zh) 2021-08-13

Family

ID=65851063

Family Applications (1)

Application Number Title Priority Date Filing Date
CN201811434918.1A Active CN109542354B (zh) 2018-11-28 2018-11-28 一种基于擦除上限的磨损均衡方法、装置及设备

Country Status (1)

Country Link
CN (1) CN109542354B (zh)

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018797A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种数据迁移方法、装置、设备及可读存储介质
CN110750466A (zh) * 2019-10-18 2020-02-04 深圳豪杰创新电子有限公司 提高闪存擦写寿命的方法和装置
CN111008389A (zh) * 2019-12-05 2020-04-14 成都星时代宇航科技有限公司 基于卫星中文件系统的数据处理方法及装置
CN111625187A (zh) * 2020-05-15 2020-09-04 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
CN111949201A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储设备及其控制方法和控制装置
WO2021082108A1 (zh) * 2019-10-31 2021-05-06 江苏华存电子科技有限公司 一种有效平均闪存块擦除次数的方法
CN114415962A (zh) * 2022-01-24 2022-04-29 广东工业大学 一种静态磨损均衡方法、系统、设备和存储介质
CN116661683A (zh) * 2023-05-10 2023-08-29 珠海妙存科技有限公司 一种闪存的磨损平衡管理方法、系统、设备及介质

Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339808A (zh) * 2008-07-28 2009-01-07 华中科技大学 存储块的擦除方法及装置
US20100115186A1 (en) * 2008-10-31 2010-05-06 A-Data Technology Co., Ltd. Flash memory device with wear-leveling mechanism and controlling method thereof
CN102592678A (zh) * 2011-12-30 2012-07-18 记忆科技(深圳)有限公司 基于动态窗口管理的磨损均衡方法及装置
CN104317527A (zh) * 2014-09-29 2015-01-28 清华大学深圳研究生院 一种基于块状态表的磨损均衡方法及装置
CN104572489A (zh) * 2013-10-23 2015-04-29 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置

Patent Citations (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN101339808A (zh) * 2008-07-28 2009-01-07 华中科技大学 存储块的擦除方法及装置
US20100115186A1 (en) * 2008-10-31 2010-05-06 A-Data Technology Co., Ltd. Flash memory device with wear-leveling mechanism and controlling method thereof
CN102592678A (zh) * 2011-12-30 2012-07-18 记忆科技(深圳)有限公司 基于动态窗口管理的磨损均衡方法及装置
CN104572489A (zh) * 2013-10-23 2015-04-29 深圳市腾讯计算机系统有限公司 磨损均衡方法及装置
CN104317527A (zh) * 2014-09-29 2015-01-28 清华大学深圳研究生院 一种基于块状态表的磨损均衡方法及装置

Cited By (11)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN110018797A (zh) * 2019-04-11 2019-07-16 苏州浪潮智能科技有限公司 一种数据迁移方法、装置、设备及可读存储介质
CN111949201A (zh) * 2019-05-17 2020-11-17 北京兆易创新科技股份有限公司 一种存储设备及其控制方法和控制装置
CN110750466A (zh) * 2019-10-18 2020-02-04 深圳豪杰创新电子有限公司 提高闪存擦写寿命的方法和装置
WO2021082108A1 (zh) * 2019-10-31 2021-05-06 江苏华存电子科技有限公司 一种有效平均闪存块擦除次数的方法
CN111008389A (zh) * 2019-12-05 2020-04-14 成都星时代宇航科技有限公司 基于卫星中文件系统的数据处理方法及装置
CN111008389B (zh) * 2019-12-05 2020-10-20 成都星时代宇航科技有限公司 基于卫星中文件系统的数据处理方法及装置
CN111625187A (zh) * 2020-05-15 2020-09-04 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
CN111625187B (zh) * 2020-05-15 2023-09-29 合肥康芯威存储技术有限公司 一种存储器及其控制方法与存储系统
CN114415962A (zh) * 2022-01-24 2022-04-29 广东工业大学 一种静态磨损均衡方法、系统、设备和存储介质
CN116661683A (zh) * 2023-05-10 2023-08-29 珠海妙存科技有限公司 一种闪存的磨损平衡管理方法、系统、设备及介质
CN116661683B (zh) * 2023-05-10 2024-02-23 珠海妙存科技有限公司 一种闪存的磨损平衡管理方法、系统、设备及介质

Also Published As

Publication number Publication date
CN109542354B (zh) 2021-08-13

Similar Documents

Publication Publication Date Title
CN109542354A (zh) 一种基于擦除上限的磨损均衡方法、装置及设备
CN104216665B (zh) 多层单元固态硬盘的存储管理方法
KR100526190B1 (ko) 플래시 메모리의 재사상 방법
CN101673245B (zh) 包括存储器管理装置的信息处理装置和存储器管理方法
US20190220396A1 (en) Data Storage Device
KR100789406B1 (ko) 플래시 메모리 시스템 및 그것의 가비지 컬렉션 방법
US7711892B2 (en) Flash memory allocation for improved performance and endurance
US9367451B2 (en) Storage device management device and method for managing storage device
EP2626792A1 (en) Wear leveling method, memory device, and information system
JP6613375B2 (ja) プロファイリングキャッシュ置換
TWI398770B (zh) 用於快閃記憶體的資料存取方法、儲存系統與控制器
US7536500B2 (en) Header blocks for flash memory writes
US20090172255A1 (en) Wear leveling method and controller using the same
WO2014074449A2 (en) Wear leveling in flash memory devices with trim commands
CN106201335B (zh) 存储系统
JP2008192154A (ja) メモリマッピング方法およびメモリマッピングシステム
WO2011072538A1 (zh) Nandflash擦除均衡的方法及装置
US20140289449A1 (en) Storage apparatus, storage controller and method for relocating data in solid state drive
CN106990926A (zh) 一种固态硬盘磨损均衡的处理方法
CN104899154B (zh) 基于嵌入式系统混合主存的页面管理方法
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
CN106775474A (zh) 一种Nand Flash磨损均衡方法、装置及存储器
CN106873912A (zh) Tlc芯片固态硬盘的动态分区存储方法及装置、系统
KR101403922B1 (ko) 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법
CN106502917A (zh) 闪速存储器设备的磨损管理

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