CN115586875A - 存储系统的磨损均衡方法、装置和存储系统 - Google Patents

存储系统的磨损均衡方法、装置和存储系统 Download PDF

Info

Publication number
CN115586875A
CN115586875A CN202211569787.4A CN202211569787A CN115586875A CN 115586875 A CN115586875 A CN 115586875A CN 202211569787 A CN202211569787 A CN 202211569787A CN 115586875 A CN115586875 A CN 115586875A
Authority
CN
China
Prior art keywords
block
wear leveling
blocks
garbage collection
static wear
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
CN202211569787.4A
Other languages
English (en)
Other versions
CN115586875B (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.)
Hefei Kangxinwei Storage Technology Co Ltd
Original Assignee
Hefei Kangxinwei Storage Technology Co Ltd
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 Hefei Kangxinwei Storage Technology Co Ltd filed Critical Hefei Kangxinwei Storage Technology Co Ltd
Priority to CN202211569787.4A priority Critical patent/CN115586875B/zh
Publication of CN115586875A publication Critical patent/CN115586875A/zh
Application granted granted Critical
Publication of CN115586875B publication Critical patent/CN115586875B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Images

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/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]
    • 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
    • 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/0638Organizing or formatting or addressing of data
    • G06F3/064Management of blocks
    • 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

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Human Computer Interaction (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Memory System (AREA)

Abstract

本申请提供一种存储系统的磨损均衡方法、装置和存储系统,其中,该磨损均衡方法包括:确定存储系统中块的平均擦除次数;将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块;和/或将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。采用本申请,能够保证磨损均衡的有效性。

Description

存储系统的磨损均衡方法、装置和存储系统
技术领域
本申请涉及存储器技术领域,尤其涉及存储系统的磨损均衡方法、装置和存储系统。
背景技术
NAND闪存等存储系统中物理块有擦除次数(EC)的限制,如果在存储系统运行的过程中没有对应的算法来均衡每个块(Block)的擦除次数,使得每次的擦除集中在特定的某些块上时,则会加速这些被频繁擦除的块寿命的衰减,最后提早变成坏块,可能直接导致数据丢失。而坏块数量增多同时也会导致存储系统的预留(Over Provision,OP)空间变小,垃圾回收(Garbage Collection,GC)效率变低,最终导致写放大指数(Write AmplificationIndex,WAI)变大,又加剧了整个存储系统寿命的衰减。为尽可能延长存储系统的寿命,通过磨损均衡算法均衡每个物理块的擦除次数。
相关技术中,磨损均衡(Wear Leveling,WL)算法包含静态磨损均衡(Static WearLeveling,Static WL)和动态磨损均衡(Dymaic Wear Leveling,Dymaic WL)。动态磨损均衡指当存储系统需要分配一个新的块时,优先选取擦除次数最小的块。动态磨损均衡适用于无有效数据的块(也称为空闲块),而针对有有效数据的块(也称为非空闲块)采用静态磨损均衡。静态磨损均衡是把长期没有修改的冷数据(Cold Data)从擦写次数较少的块中搬移出来放到擦写次数较多的(Block)中去,那么擦写次数较少的块将被重新使用。冷数据的识别方法分为频率上考量和时间上考量以及二者结合的方法。根据操作方式又可分为写时识别和读时识别。频率上考量的算法代表有布隆过滤器(Bloom Filter)等,时间上考量算法代表有LRU和DAC等,它们的改进算法可能包含了频率和时间上的考量。
然而,相关技术中的磨损均衡算法在一些情况下会失效。
发明内容
根据本申请的一方面,提供了一种存储系统的磨损均衡方法,包括:确定存储系统中块的平均擦除次数;将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块;和/或将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
当冷数据分布在少数的块上,使得多数块被不停地轮流擦除。使得平均擦除次数被抬高,而最大擦除次数与平均擦除次数很难拉开差距。但这种情况下冷数据所在块擦除次数却远低于平均擦除次数。通过将有有效数据的块中擦除次数低于平均擦除次数第一预设值的块设置为第二静态磨损均衡触发垃圾回收的源块,将擦除次数过小的块释放出来,能够最大化地均衡所有块的擦除次数。
当冷数据分布在多数的块上,使得少数块被不停地轮流擦除。这种状况下平均擦除次数会维持在一个较低的水平,无有效数据的块会因为被不断地使用而与平均擦除次数拉开差距。通过将无有效数据的块中擦除次数高于平均擦除次数第二预设值的块设置为第二静态磨损均衡触发垃圾回收的目标块,能够避免无有效数据的块被过多擦除。
在一些实施例中,将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,包括:对于在分配块时由动态磨损均衡在无有效数据的块中确定的目标分配块,如果该目标分配块的擦除次数高于平均擦除次数第二预设值,将该目标分配块设置为第二静态磨损均衡触发垃圾回收的目标块。
在一些实施例中,还包括:将目标块放入磨损均衡池;在磨损均衡池中的目标块达到预设数量后,触发第二静态磨损均衡。
在一些实施例中,还包括:在目标分配块的擦除次数高于平均擦除次数第二预设值、且磨损均衡池中的目标块达到预设数量的情况下,确定磨损均衡池中擦除次数小于目标分配块的擦除次数的目标块;将目标分配块放入磨损均衡池,并将擦除次数小于目标分配块的擦除次数的一个或多个目标块从磨损均衡池中移除,以供动态磨损均衡使用。
在一些实施例中,还包括:在执行第二静态磨损均衡触发的垃圾回收时,从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为源块。
一般的垃圾回收为了提高效率,追求一次垃圾回收释放更多空间(重写更少的数据也可减少WAI),通常会选取有效数据较少的块来作为垃圾回收的源块。但磨损均衡触发的垃圾回收一般会挑选冷数据所在的块来作为垃圾回收的源块,而一般冷数据所在的块通常意味着有效资料多(冷数据很少被覆写)。因此平衡垃圾回收效率和磨损均衡效果。
在一些实施例中,还包括:在触发垃圾回收时,当第一标识位为有效时,执行第一静态磨损均衡触发的垃圾回收;在执行第一静态磨损均衡触发的垃圾回收后,将第一标识位设置为无效;在第一标识位为无效时,根据第一策略将第一标识位重置到有效,以避免连续执行第一静态磨损均衡。有利于提高垃圾回收的整体效率。
在一些实施例中,根据第一策略将第一标识位重置到有效,包括:对除第一静态磨损均衡之外的至少部分垃圾回收进行第一计数;在第一计数达到第一预设次数后,将第一标识位重置到有效。
在一些实施例中,还包括:在触发垃圾回收时,当第二标识位为有效时,执行第二静态磨损均衡触发的垃圾回收;在执行第二静态磨损均衡触发的垃圾回收后,将第二标识位设置为无效;在第二标识位为无效时,根据第二策略将第二标识位重置到有效,以避免连续执行第二静态磨损均衡。有利于提高垃圾回收的整体效率。
在一些实施例中,根据第二策略将第二标识位重置到有效,包括:对除第二静态磨损均衡之外的至少部分垃圾回收进行第二计数;在第二计数达到第二预设次数后,将第二标识位重置到有效。
在一些实施例中,还包括:在触发垃圾回收时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块。
在一些实施例中,还包括:在触发垃圾回收时,当可用块不足时,按照第二策略选择源块;当可用块充足且有风险块时,按照第三策略选择源块;当可用块充足且无风险块时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块;如果为常规垃圾回收,按照第四策略选择源块。
在一些实施例中,按照第一策略选择源块,包括:在冷数据所在块中选择擦除次数小于所述平均擦除次数的块作为源块;和/或按照第二策略选择源块,包括:根据块的有效数据量选择源块以提高可用块的数量;和/或按照第三策略选择源块,包括:选择风险块作为源块;和/或按照第四策略选择源块,包括:根据块的有效数据量选择源块。
在一些实施例中,还包括:在触发垃圾回收时,如果为第二静态磨损均衡触发的垃圾回收,选择第二静态磨损均衡触发垃圾回收的目标块;如果不是第二静态磨损均衡触发的垃圾回收,按照第五策略选择目标块。
在一些实施例中,还包括:关闭垃圾回收后长期处于打开状态的目标块。
在一些实施例中,将有有效数据的块中的第一块设置为第一静态磨损均衡触发垃圾回收的源块,包括:在每次对块进行擦除后,遍历有有效数据的块,将第一块设置为第一静态磨损均衡触发垃圾回收的源块,并触发第一静态磨损均衡。
根据本申请的另一方面,提供了一种存储系统的磨损均衡装置,包括:确定模块,用于确定存储系统中块的平均擦除次数;第一静态磨损均衡模块,用于将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块;和/或第二静态磨损均衡模块,用于将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
在一些实施例中,第二静态磨损均衡模块,用于:对于在分配块时由动态磨损均衡在无有效数据的块中确定的目标分配块,如果该目标分配块的擦除次数高于平均擦除次数第二预设值,将该目标分配块设置为第二静态磨损均衡触发垃圾回收的目标块。
在一些实施例中,第二静态磨损均衡模块,还用于:将目标块放入磨损均衡池;在磨损均衡池中的目标块达到预设数量后,触发第二静态磨损均衡。
在一些实施例中,第二静态磨损均衡模块,还用于:在目标分配块的擦除次数高于平均擦除次数第二预设值、且磨损均衡池中的目标块达到预设数量的情况下,确定磨损均衡池中擦除次数小于目标分配块的擦除次数的目标块;将目标分配块放入磨损均衡池,并将擦除次数小于目标分配块的擦除次数的一个或多个目标块从磨损均衡池中移除,以供所述动态磨损均衡使用。
在一些实施例中,还包括:垃圾回收模块,用于在执行第二静态磨损均衡触发的垃圾回收时,从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为源块。
在一些实施例中,还包括:垃圾回收模块,用于在触发垃圾回收时,当第一标识位为有效时,执行第一静态磨损均衡触发的垃圾回收;在执行第一静态磨损均衡触发的垃圾回收后,将第一标识位设置为无效;在第一标识位为无效时,根据第一策略将第一标识位重置到有效,以避免连续执行第一静态磨损均衡。
在一些实施例中,根据第一策略将第一标识位重置到有效,包括:对除第一静态磨损均衡之外的至少部分垃圾回收进行第一计数;在第一计数达到第一预设次数后,将第一标识位重置到有效。
在一些实施例中,还包括:垃圾回收模块,用于在触发垃圾回收时,当第二标识位为有效时,执行第二静态磨损均衡触发的垃圾回收;在执行第二静态磨损均衡触发的垃圾回收后,将第二标识位设置为无效;在第二标识位为无效时,根据第二策略将第二标识位重置到有效,以避免连续执行第二静态磨损均衡。
在一些实施例中,根据第二策略将第二标识位重置到有效,包括:对除第二静态磨损均衡之外的至少部分垃圾回收进行第二计数;在第二计数达到第二预设次数后,将第二标识位重置到有效。
在一些实施例中,还包括:垃圾回收模块,用于在触发垃圾回收时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,当可用块不足时,按照第二策略选择源块;当可用块充足且有风险块时,按照第三策略选择源块;当可用块充足且无风险块时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块;如果为常规垃圾回收,按照第四策略选择源块。
在一些实施例中,按照第一策略选择源块,包括:在冷数据所在块中选择擦除次数小于所述平均擦除次数的块作为源块;和/或按照第二策略选择源块,包括:根据块的有效数据量选择源块以提高可用块的数量;和/或按照第三策略选择源块,包括:选择风险块作为源块;和/或按照第四策略选择源块,包括:根据块的有效数据量选择源块。
在一些实施例中,还包括:垃圾回收模块,用于在触发垃圾回收时,如果为第二静态磨损均衡触发的垃圾回收,选择第二静态磨损均衡触发垃圾回收的目标块;如果不是第二静态磨损均衡触发的垃圾回收,按照第五策略选择目标块。
在一些实施例中,还包括:关闭模块,用于关闭垃圾回收后长期处于打开状态的目标块。
在一些实施例中,第一静态磨损均衡模块,用于:在每次对块进行擦除后,遍历有有效数据的块,将第一块设置为第一静态磨损均衡触发垃圾回收的源块,并触发第一静态磨损均衡。
根据本申请的另一方面,提供了一种存储系统,包括:存储器;控制器,该控制器被配置为执行本申请实施例的方法,以对该存储器进行磨损均衡。
根据本申请的另一方面,提供了一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行本申请实施例的方法。
本申请实施例中提供的一个或多个技术方案,能够保证磨损均衡的有效性。
附图说明
在下面结合附图对于示例性实施例的描述中,本申请的更多细节、特征和优点被公开,在附图中:
图1示出了冷数据分布在少数的块上的示意图;
图2示出了根据本申请实施例的磨损均衡方法的流程图;
图3示出了冷数据分布在多数的块上的示意图;
图4示出了根据本申请实施例的磨损均衡方法的流程图;
图5示出了根据本申请实施例的垃圾回收的源块选择的示意图;
图6示出了根据本申请实施例的垃圾回收的目标块选择的示意图;
图7示出了根据本申请实施例的垃圾回收的源块选择的示意图;
图8示出了根据本申请实施例的磨损均衡装置的示意性框图;
图9示出了根据本申请实施例的存储系统的示意性框图;
图10示出了能够应用本申请的实施例的示例性电子设备的结构框图。
具体实施方式
下面将参照附图更详细地描述本申请的实施例。虽然附图中显示了本申请的某些实施例,然而应当理解的是,本申请可以通过各种形式来实现,而且不应该被解释为限于这里阐述的实施例,相反提供这些实施例是为了更加透彻和完整地理解本申请。应当理解的是,本申请的附图及实施例仅用于示例性作用,并非用于限制本申请的保护范围。
应当理解,本申请的方法实施方式中记载的各个步骤可以按照不同的顺序执行,和/或并行执行。此外,方法实施方式可以包括附加的步骤和/或省略执行示出的步骤。本申请的范围在此方面不受限制。
本文使用的术语“包括”及其变形是开放性包括,即“包括但不限于”。术语“基于”是“至少部分地基于”。术语“一个实施例”表示“至少一个实施例”;术语“另一实施例”表示“至少一个另外的实施例”;术语“一些实施例”表示“至少一些实施例”。其他术语的相关定义将在下文描述中给出。需要注意,本申请中提及的“第一”、“第二”等概念仅用于对不同的装置、模块或单元进行区分,并非用于限定这些装置、模块或单元所执行的功能的顺序或者相互依存关系。
需要注意,本申请中提及的“一个”、“多个”的修饰是示意性而非限制性的,本领域技术人员应当理解,除非在上下文另有明确指出,否则应该理解为“一个或多个”。
本申请实施方式中的多个装置之间所交互的消息或者信息的名称仅用于说明性的目的,而并不是用于对这些消息或信息的范围进行限制。
以下参照附图描述本申请的方案。
本申请实施例提供了一种存储系统的磨损均衡方法。
图1示出了冷数据分布在少数的块上的示意图。当冷数据分布在少数的块上,使得多数块被不停地轮流擦除。使得平均擦除次数被抬高,而最大擦除次数与平均擦除次数很难拉开差距。但这种情况下冷数据所在块擦除次数却远低于平均擦除次数。为此,通过将有有效数据的块中擦除次数低于平均擦除次数一定值的块设置为第一静态磨损均衡触发垃圾回收的源块,将擦除次数过小的块释放出来,以最大化的均衡所有块的擦除次数。下面参考图2对针对该问题的磨损均衡方法进行描述。
图2示出了根据本申请实施例的磨损均衡方法的流程图,如图2所示,包括步骤S201至步骤S202。
步骤S201,确定存储系统中块的平均擦除次数。
步骤S202,将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块。
在本说明书中,第一静态磨损均衡也称为最小静态磨损均衡(Min Static WL)。第一静态磨损均衡是指,通过垃圾回收将确定得到的待磨损均衡的块中的数据搬移到目标块。目标块可根据相应策略确定。作为一种示例,第一静态磨损均衡触发的垃圾回收,可以将有效数据最少的块作为目标块,也就是将擦除次数低于平均擦除次数第一预设值的块的数据搬移到有效数据最少的块。
作为一种实施方式,将块作为第一静态磨损均衡触发垃圾回收的源块为将块进行标记。垃圾回收时可以根据标记确定源块。
作为一种实施方式,在每次对块进行擦除后,遍历有有效数据的块,将上述第一块设置为第一静态磨损均衡触发垃圾回收的源块,并触发第一静态磨损均衡。作为一种实施方式,第一预设值基于存储系统块中的最大擦除次数确定。
作为一种示例,每一次对需要进行擦除的块擦除之后。遍历存储系统中所有的有有效数据的块,找出其中擦除次数最小的块。如果该块的擦除次数与平均擦除次数相比差异较大时,例如,大于平均擦除次数达到最大擦除次数(max EC)的5%),将该块作为第一静态磨损均衡触发垃圾回收的源块。触发第一静态磨损均衡。
在一些情况下,可能连续进行第一静态磨损均衡,导致连续执行第一静态磨损均衡触发的垃圾回收,从而影响垃圾回收的整体效率。为此,作为一种实施方式,在触发垃圾回收时,当第一标识位为有效时,执行第一静态磨损均衡触发的垃圾回收;在执行第一静态磨损均衡触发的垃圾回收后,将第一标识位设置为无效;在第一标识位为无效时,根据第一策略将第一标识位重置到有效,以避免连续执行第一静态磨损均衡。其中,第一标识位可默认为有效。
作为一种示例,根据第一策略将第一标识位重置到有效,包括:对除第一静态磨损均衡之外的至少部分垃圾回收进行第一计数;在第一计数达到第一预设次数后,将第一标识位重置到有效。
例如,第一标识位默认值为0,当第一标识位为0时视为第一标识位为有效,为其他值时为无效。在执行第一静态磨损均衡触发的垃圾回收后,将第一标识位设置为N,其中N为自然数。对除第一静态磨损均衡之外的至少部分垃圾回收,每执行一次垃圾回收,将第一标识位减1,从而在执行N次除第一静态磨损均衡之外的至少部分垃圾回收后,第一标识位被重置为0,此时第一标识位为有效,可以再次执行第一静态磨损均衡触发的垃圾回收。
参考图1和2所示,通过将有有效数据的块中擦除次数低于平均擦除次数一定值的块设置为第一静态磨损均衡触发垃圾回收的源块,将擦除次数过小的块释放出来,能够最大化地均衡所有块的擦除次数。
图3示出了冷数据分布在多数的块上的示意图,如图3所示,当冷数据分布在多数的块上,使得少数块被不停地轮流擦除。这种状况下平均擦除次数会维持在一个较低的水平,无有效数据的块会因为被不断地使用而与平均擦除次数拉开差距。为此,通过将无有效数据的块中擦除次数高于平均擦除次数一定值的块设置为第二静态磨损均衡触发垃圾回收的目标块,以避免无有效数据的块被过多擦除。下面参考图4对针对该问题的磨损均衡方法进行描述。
图4示出了根据本申请实施例的磨损均衡方法的流程图,如图4所示,包括步骤S401至步骤S402。
步骤S401,确定存储系统中块的平均擦除次数。
在本申请实施例中,可周期性或实时确定该平均擦除次数,本实施例对此不作限定。
步骤S402,将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
在本说明书中,第二静态磨损均衡也称为最大静态磨损均衡(MAX Static WL)。第二静态磨损均衡是指,通过垃圾回收将冷数据搬移到第二静态磨损均衡触发垃圾回收的目标块,以减少对该块的擦除次数。第二静态磨损均衡触发垃圾回收的源块可根据相应策略确定。作为一种示例,从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为第二静态磨损均衡触发垃圾回收的源块。存储冷数据的块称为冷数据所在块,冷数据的识别可采用公知的技术,本实施例对此不作限定。
在一些情况下,可能连续进行第二静态磨损均衡,导致连续执行第二静态磨损均衡触发的垃圾回收,从而影响垃圾回收的整体效率。为此,作为一种实施方式,在触发垃圾回收时,当第二标识位为有效时,执行第二静态磨损均衡触发的垃圾回收;在执行第二静态磨损均衡触发的垃圾回收后,将第二标识位设置为无效;在第二标识位为无效时,根据第二策略将第二标识位重置到有效,以避免连续执行第二静态磨损均衡。其中,第二标识位可默认为有效。
作为一种示例,根据第二策略将第二标识位重置到有效,包括:对除第二静态磨损均衡之外的至少部分垃圾回收进行第二计数;在第二计数达到第二预设次数后,将第二标识位重置到有效。从而避免连续执行第二静态磨损均衡。
例如,第二标识位默认值为0,当第二标识位为0时视为第二标识位为有效,为其他值时为无效。在执行第二静态磨损均衡触发的垃圾回收后,将第二标识位设置为M,其中M为自然数。对除第二静态磨损均衡之外的至少部分垃圾回收,每执行一次垃圾回收,将第二标识位减1,从而在执行M次除第二静态磨损均衡之外的至少部分垃圾回收后,第二标识位被重置为0,此时第二标识位为有效,可以再次执行第二静态磨损均衡触发的垃圾回收。
存储系统中还包括动态磨损均衡,在分配块时,动态磨损均衡在无有效数据的块中确定目标分配块。作为一种实施方式,将第二静态磨损均衡与动态磨损均衡相结合,上述步骤S402包括:对于在分配块时由动态磨损均衡在无有效数据的块中确定的目标分配块,如果该目标分配块的擦除次数高于平均擦除次数第二预设值,将该目标分配块设置为第二静态磨损均衡触发垃圾回收的目标块。当目标分配块被作为第二静态磨损均衡触发垃圾回收的目标块时,该块此时不被动态磨损均衡分配。由动态磨损均衡在无有效数据的块中确定新的目标分配块。
作为一种实施方式,将块设置为第二静态磨损均衡触发垃圾回收的目标块后,将目标块放入磨损均衡池(WL pool);在磨损均衡池中的目标块达到预设数量后,触发第二静态磨损均衡。在触发第二静态磨损均衡,将冷数据搬移到目标块后,将目标块从磨损均衡池中移除。
在一些情况下,上述的目标分配块的擦除次数可能高于磨损均衡池中目标块的擦除次数,此时,应当分配擦除次数少的块。为此,作为一种实施方式,在目标分配块的擦除次数高于平均擦除次数第二预设值、且磨损均衡池中的目标块达到预设数量的情况下,确定磨损均衡池中擦除次数小于目标分配块的擦除次数的目标块;将目标分配块放入磨损均衡池,并将擦除次数小于目标分配块的擦除次数的一个或多个目标块从磨损均衡池中移除,以供动态磨损均衡使用。作为一种示例,将磨损均衡池中擦除次数最少的目标块从磨损均衡池中移除,以供动态磨损均衡使用。
作为一种实施方式,在执行第二静态磨损均衡触发的垃圾回收时,从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为源块。
结合图1和图3所示的情形,在一些实施例中,将图2所示的第一静态磨损均衡和图4所示的第二静态磨损均衡一并应用到存储系统中。当冷数据分布在少数的块上,通过将有有效数据的块中擦除次数低于平均擦除次数一定值的块设置为第一静态磨损均衡触发垃圾回收的源块,将擦除次数过小的块释放出来,以最大化的均衡所有块的擦除次数。当冷数据分布在多数的块上,通过将无有效数据的块中擦除次数高于平均擦除次数一定值的块设置为第二静态磨损均衡触发垃圾回收的目标块,以避免无有效数据的块被过多擦除。
在第一静态磨损均衡和第二静态磨损均衡一并应用到存储系统中的情况下,垃圾回收的类型至少包括第一静态磨损均衡触发的垃圾回收和第二静态磨损均衡触发的垃圾回收。为此,作为一种实施方式,在触发垃圾回收时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块。示例性的,按照第一策略选择源块包括从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为源块。
存储系统中包括多种类型的垃圾回收。不同类型的垃圾回收选择源块和目标块的策略不同。下面对多种类型的垃圾回收的策略进行说明。
通常而言垃圾回收的类型包括但不限于:常规(Normal)垃圾回收,简称为NormalGC;对有风险块的垃圾回收,例如为了预防读取干扰(Read Disturb)而做的垃圾回收;磨损均衡触发的垃圾回收,简称为 WL GC。其中,常规垃圾回收可分为:非紧急的常规垃圾回收(当前可用块相对较多,但满足触发条件),以及紧急的常规垃圾回收(当前可用的块非常少)。
不同类型的垃圾回收选择源块和目标块的策略不同。作为一种实施方式,按照以下优先级进行相应策略:紧急的常规垃圾回收> 有风险块的垃圾回收 > 静态磨损均衡触发的垃圾回收> 常规垃圾回收。
作为一种实施方式,在触发垃圾回收时,垃圾回收的源块选择按照如下方式进行:
当可用块不足(即紧急的常规垃圾回收)时,按照第二策略选择源块;
当可用块充足且有风险块时,按照第三策略选择源块;
当可用块充足且无风险块时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块;如果为常规垃圾回收,按照第四策略选择源块。
作为一种示例,按照第一策略选择源块,包括:在冷数据所在块中选择擦除次数小于平均擦除次数的块作为源块。
作为一种示例,按照第二策略选择源块,包括:根据块的有效数据量选择源块以提高垃圾回收效率。例如,选择有效数据量最小的块作为源块。
作为一种示例,按照第三策略选择源块,包括:选择风险块作为源块。
作为一种示例,按照第四策略选择源块,包括:根据块的有效数据量选择源块。例如,选择有效数据量最小的块作为源块。
图5示出了根据本申请实施例的垃圾回收的源块选择的示意图,如图5所示,在触发垃圾回收时,判断可用块是否充足,当可用块不足时,选择有效数据量最小的块作为源块并在第一静态磨损均衡的标识位(第一标识位)不为0时将其减1;当可用块充足时,判断是否有风险块,当有风险块时,选择风险块作为源块;当无风险块时,判断第一静态磨损均衡的标识位是否为0,当第一静态磨损均衡的标识位为0,选择第一静态磨损均衡触发垃圾回收的源块(例如,有有效数据的块中擦除次数最少的块),并将第一静态磨损均衡的标识位设置为N;否则,在满足常规垃圾回收的触发条件时,选择有效数据量最小的块作为源块,并在第一静态磨损均衡的标识位(第一标识位)不为0时将第一静态磨损均衡的标识位减1。
作为一种实施方式,在触发垃圾回收时,如果为第二静态磨损均衡触发的垃圾回收,选择第二静态磨损均衡触发垃圾回收的目标块;如果不是第二静态磨损均衡触发的垃圾回收,按照第五策略选择目标块。示例性的,按照第五策略选择目标块包括:从无有效数据的块中选择目标块。
图6示出了根据本申请实施例的垃圾回收的目标块选择的示意图,如图6所示,在触发垃圾回收时,判断磨损均衡池中的目标块是否达到预设数量,当未达到预设数量,从无有效数据的块中选择目标块;当达到预设数量时,判断第二静态磨损均衡的标识位(第二标识位)是否为0,当第二静态磨损均衡的标识位为0时,在磨损均衡池中选择目标块,并将第二静态磨损均衡的标识位设置为M;否则,从无有效数据的块中选择目标块,并在第二静态磨损均衡的标识位不为0时将其减1。
在一些情况下,如图7所示,在选择源块时,判断目标块是否为在磨损均衡池中选择的,如果不是从磨损均衡池中选择的,根据块的有效数据量选择源块以提高可用块的数量,例如,选择有效数据量最小的块作为源块;如果是从磨损均衡池中选择的,在冷数据所在块中选择擦除次数小于平均擦除次数的块作为源块。如图7所示,判断目标块是否为在磨损均衡池中选择的之前,还包括:可用块是否充足,如果不足,选择有效数据量最小的块作为源块;如果充足,判断是否有风险块,如果有风险块,选择风险块作为源块;如果没有风险块,判断目标块是否为在磨损均衡池中选择的。
在一些情况下,可能同时触发第一静态磨损均衡和第二静态磨损均衡,此时,源块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块,目标块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
冷数据所在的块,通常擦除次数会比较小,除此之外处于打开(open)状态的块也可能会因为没被关闭(close)而擦除次数维持不变。如果垃圾回收的目标块在垃圾回收结束时没有被关闭,处于打开状态。而后续主机的行为是不断的写入,但没触发垃圾回收,例如一直写同一笔逻辑区块地址(Logical Block Address, LBA),即垃圾回收的目标块会一直处于打开状态。而其他的无有效数据的块却被不停地拿来擦除。这种状况下为了保证磨损均衡算法的有效性,关闭处于打开状态的块,等待静态磨损均衡来释放该块。作为一种实施方式,关闭垃圾回收后长期处于打开状态的目标块。长期可为处于打开状态超过预设时长。
本申请实施例提供了一种存储系统的磨损均衡装置。
图8示出了根据本申请实施例的磨损均衡装置的示意性框图,如图8所示,包括:确定模块10,以及第一静态磨损均衡模块20和/或第二静态磨损均衡模块30。
确定模块10,用于确定存储系统中块的平均擦除次数。
第一静态磨损均衡模块20,用于将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块。
第二静态磨损均衡模块30,用于将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
在一些实施例中,第二静态磨损均衡模块30,用于:对于在分配块时由动态磨损均衡在无有效数据的块中确定的目标分配块,如果该目标分配块的擦除次数高于平均擦除次数第二预设值,将该目标分配块设置为第二静态磨损均衡触发垃圾回收的目标块。
在一些实施例中,第二静态磨损均衡模块30,还用于:将目标块放入磨损均衡池;在磨损均衡池中的目标块达到预设数量后,触发第二静态磨损均衡。
在一些实施例中,第二静态磨损均衡模块30,还用于:在目标分配块的擦除次数高于平均擦除次数第二预设值、且磨损均衡池中的目标块达到预设数量的情况下,确定磨损均衡池中擦除次数小于目标分配块的擦除次数的目标块;将目标分配块放入磨损均衡池,并将擦除次数小于目标分配块的擦除次数的一个或多个目标块从磨损均衡池中移除,以供动态磨损均衡使用。
在一些实施例中,还包括:垃圾回收模块。
在一些实施例中,垃圾回收模块,用于在执行第二静态磨损均衡触发的垃圾回收时,从冷数据所在块中选择擦除次数在平均擦除次数以下的块作为源块。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,当第一标识位为有效时,执行第一静态磨损均衡触发的垃圾回收;在执行第一静态磨损均衡触发的垃圾回收后,将第一标识位设置为无效;在第一标识位为无效时,根据第一策略将第一标识位重置到有效,以避免连续执行第一静态磨损均衡。
在一些实施例中,根据第一策略将第一标识位重置到有效,包括:对除第一静态磨损均衡之外的至少部分垃圾回收进行第一计数;在第一计数达到第一预设次数后,将第一标识位重置到有效。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,当第二标识位为有效时,执行第二静态磨损均衡触发的垃圾回收;在执行第二静态磨损均衡触发的垃圾回收后,将第二标识位设置为无效;在第二标识位为无效时,根据第二策略将第二标识位重置到有效,以避免连续执行第二静态磨损均衡。
在一些实施例中,根据第二策略将第二标识位重置到有效,包括:对除第二静态磨损均衡之外的至少部分垃圾回收进行第二计数;在第二计数达到第二预设次数后,将第二标识位重置到有效。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,当可用块不足时,按照第二策略选择源块;当可用块充足且有风险块时,按照第三策略选择源块;当可用块充足且无风险块时,如果为第一静态磨损均衡触发的垃圾回收,选择第一静态磨损均衡触发垃圾回收的源块;如果为第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块;如果为常规垃圾回收,按照第四策略选择源块。
在一些实施例中,按照第一策略选择源块,包括:在冷数据所在块中选择擦除次数小于平均擦除次数的块作为源块;和/或按照第二策略选择源块,包括:根据块的有效数据量选择源块以提高可用块的数量;和/或按照第三策略选择源块,包括:选择风险块作为源块;和/或按照第四策略选择源块,包括:根据块的有效数据量选择源块。
在一些实施例中,垃圾回收模块,用于在触发垃圾回收时,如果为第二静态磨损均衡触发的垃圾回收,选择第二静态磨损均衡触发垃圾回收的目标块;如果不是第二静态磨损均衡触发的垃圾回收,按照第五策略选择目标块。
在一些实施例中,还包括:关闭模块,用于关闭垃圾回收后长期处于打开状态的目标块。
在一些实施例中,第一静态磨损均衡模块20,用于:在每次对块进行擦除后,遍历有有效数据的块,将上述第一块设置为第一静态磨损均衡触发垃圾回收的源块,并触发第一静态磨损均衡。
本申请实施例提供了一种存储系统。
图9示出了根据本申请实施例的存储系统的示意性框图,如图9所示,包括:存储器910和控制器920。该控制器920被配置为执行本申请实施例的方法,以对该存储器进行磨损均衡。
本申请示例性实施例还提供一种存储有计算机程序的非瞬时计算机可读存储介质,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本申请实施例的方法。
本申请示例性实施例还提供一种计算机程序产品,包括计算机程序,其中,所述计算机程序在被计算机的处理器执行时用于使所述计算机执行根据本申请实施例的方法。
参考图10,现将描述可以应用本申请实施例的存储系统的电子设备1000的结构框图,其是可以应用于本申请的各方面的硬件设备的示例。电子设备旨在表示各种形式的数字电子的计算机设备,诸如,膝上型计算机、台式计算机、工作台、个人数字助理、服务器、刀片式服务器、大型计算机、和其它适合的计算机。电子设备还可以表示各种形式的移动装置,诸如,个人数字处理、蜂窝电话、智能电话、可穿戴设备和其它类似的计算装置。本文所示的部件、它们的连接和关系、以及它们的功能仅仅作为示例,并且不意在限制本文中描述的和/或者要求的本申请的实现。
如图10所示,电子设备1000包括计算单元1001,其可以根据存储在只读存储器(ROM)1002中的计算机程序或者从存储单元1008加载到随机访问存储器(RAM)1003中的计算机程序,来执行各种适当的动作和处理。在RAM 1003中,还可存储设备1000操作所需的各种程序和数据。计算单元1001、ROM 1002以及RAM 1003通过总线1004彼此相连。输入/输出(I/O)接口1005也连接至总线1004。
电子设备1000中的多个部件连接至I/O接口1005,包括:输入单元1006、输出单元1007、存储单元1008以及通信单元1009。输入单元1006可以是能向电子设备1000输入信息的任何类型的设备,输入单元1006可以接收输入的数字或字符信息,以及产生与电子设备的用户设置和/或功能控制有关的键信号输入。输出单元1007可以是能呈现信息的任何类型的设备,并且可以包括但不限于显示器、扬声器、视频/音频输出终端、振动器和/或打印机。存储单元1008可以包括但不限于磁盘、光盘。通信单元1009允许电子设备1000通过诸如因特网的计算机网络和/或各种电信网络与其他设备交换信息/数据,并且可以包括但不限于调制解调器、网卡、红外通信设备、无线通信收发机和/或芯片组,例如蓝牙设备、WiFi设备、WiMax设备、蜂窝通信设备和/或类似物。
计算单元1001可以是各种具有处理和计算能力的通用和/或专用处理组件。计算单元1001的一些示例包括但不限于中央处理单元(CPU)、图形处理单元(GPU)、各种专用的人工智能(AI)计算芯片、各种运行机器学习模型算法的计算单元、数字信号处理器(DSP)、以及任何适当的处理器、控制器、微控制器等。计算单元1001执行上文所描述的各个方法和处理。在一些实施例中,计算机程序的部分或者全部可以经由ROM 1002和/或通信单元1009而被载入和/或安装到电子设备1000上。
用于实施本申请的方法的程序代码可以采用一个或多个编程语言的任何组合来编写。这些程序代码可以提供给通用计算机、专用计算机或其他可编程数据处理装置的处理器或控制器,使得程序代码当由处理器或控制器执行时使流程图和/或框图中所规定的功能/操作被实施。程序代码可以完全在机器上执行、部分地在机器上执行,作为独立软件包部分地在机器上执行且部分地在远程机器上执行或完全在远程机器或服务器上执行。
在本申请的上下文中,机器可读介质可以是有形的介质,其可以包含或存储以供指令执行系统、装置或设备使用或与指令执行系统、装置或设备结合地使用的程序。机器可读介质可以是机器可读信号介质或机器可读储存介质。机器可读介质可以包括但不限于电子的、磁性的、光学的、电磁的、红外的、或半导体系统、装置或设备,或者上述内容的任何合适组合。机器可读存储介质的更具体示例会包括基于一个或多个线的电气连接、便携式计算机盘、硬盘、随机存取存储器(RAM)、只读存储器(ROM)、可擦除可编程只读存储器(EPROM或快闪存储器)、光纤、便捷式紧凑盘只读存储器(CD-ROM)、光学储存设备、磁储存设备、或上述内容的任何合适组合。
如本申请使用的,术语“机器可读介质”和“计算机可读介质”指的是用于将机器指令和/或数据提供给可编程处理器的任何计算机程序产品、设备、和/或装置(例如,磁盘、光盘、存储器、可编程逻辑装置(PLD)),包括,接收作为机器可读信号的机器指令的机器可读介质。术语“机器可读信号”指的是用于将机器指令和/或数据提供给可编程处理器的任何信号。
为了提供与用户的交互,可以在计算机上实施此处描述的系统和技术,该计算机具有:用于向用户显示信息的显示装置(例如,CRT(阴极射线管)或者LCD(液晶显示器)监视器);以及键盘和指向装置(例如,鼠标或者轨迹球),用户可以通过该键盘和该指向装置来将输入提供给计算机。其它种类的装置还可以用于提供与用户的交互;例如,提供给用户的反馈可以是任何形式的传感反馈(例如,视觉反馈、听觉反馈、或者触觉反馈);并且可以用任何形式(包括声输入、语音输入或者、触觉输入)来接收来自用户的输入。
可以将此处描述的系统和技术实施在包括后台部件的计算系统(例如,作为数据服务器)、或者包括中间件部件的计算系统(例如,应用服务器)、或者包括前端部件的计算系统(例如,具有图形用户界面或者网络浏览器的用户计算机,用户可以通过该图形用户界面或者该网络浏览器来与此处描述的系统和技术的实施方式交互)、或者包括这种后台部件、中间件部件、或者前端部件的任何组合的计算系统中。可以通过任何形式或者介质的数字数据通信(例如,通信网络)来将系统的部件相互连接。通信网络的示例包括:局域网(LAN)、广域网(WAN)和互联网。
计算机系统可以包括客户端和服务器。客户端和服务器一般远离彼此并且通常通过通信网络进行交互。通过在相应的计算机上运行并且彼此具有客户端-服务器关系的计算机程序来产生客户端和服务器的关系。

Claims (18)

1.一种存储系统的磨损均衡方法,其特征在于,包括:
确定存储系统中块的平均擦除次数;
将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,所述第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块;
和/或
将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,所述第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
2.如权利要求1所述的方法,其特征在于,将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,包括:
对于在分配块时由动态磨损均衡在无有效数据的块中确定的目标分配块,如果所述目标分配块的擦除次数高于平均擦除次数第二预设值,将所述目标分配块设置为第二静态磨损均衡触发垃圾回收的目标块。
3.如权利要求2所述的方法,其特征在于,还包括:
将所述目标块放入磨损均衡池;
在所述磨损均衡池中的所述目标块达到预设数量后,触发所述第二静态磨损均衡。
4.如权利要求3所述的方法,其特征在于,还包括:
在所述目标分配块的擦除次数高于所述平均擦除次数所述第二预设值、且所述磨损均衡池中的所述目标块达到预设数量的情况下,确定所述磨损均衡池中擦除次数小于所述目标分配块的擦除次数的目标块;
将所述目标分配块放入所述磨损均衡池,并将擦除次数小于所述目标分配块的擦除次数的一个或多个目标块从所述磨损均衡池中移除,以供所述动态磨损均衡使用。
5.如权利要求1至4中任一项所述的方法,其特征在于,还包括:
在执行所述第二静态磨损均衡触发的垃圾回收时,从冷数据所在块中选择擦除次数在所述平均擦除次数以下的块作为源块。
6.如权利要求1所述的方法,其特征在于,还包括:
在触发垃圾回收时,当第一标识位为有效时,执行第一静态磨损均衡触发的垃圾回收;
在执行第一静态磨损均衡触发的垃圾回收后,将所述第一标识位设置为无效;
在所述第一标识位为无效时,根据第一策略将所述第一标识位重置到有效,以避免连续执行所述第一静态磨损均衡。
7.如权利要求6所述的方法,其特征在于,根据第一策略将所述第一标识位重置到有效,包括:
对除所述第一静态磨损均衡之外的至少部分垃圾回收进行第一计数;
在所述第一计数达到第一预设次数后,将所述第一标识位重置到有效。
8.如权利要求1或6所述的方法,其特征在于,还包括:
在触发垃圾回收时,当第二标识位为有效时,执行所述第二静态磨损均衡触发的垃圾回收;
在执行所述第二静态磨损均衡触发的垃圾回收后,将所述第二标识位设置为无效;
在所述第二标识位为无效时,根据第二策略将所述第二标识位重置到有效,以避免连续执行所述第二静态磨损均衡。
9.如权利要求8所述的方法,其特征在于,根据第二策略将所述第二标识位重置到有效,包括:
对除所述第二静态磨损均衡之外的至少部分垃圾回收进行第二计数;
在所述第二计数达到第二预设次数后,将所述第二标识位重置到有效。
10.如权利要求1或6所述的方法,其特征在于,还包括:
在触发垃圾回收时,
如果为所述第一静态磨损均衡触发的垃圾回收,选择所述第一静态磨损均衡触发垃圾回收的源块;
如果为所述第二静态磨损均衡触发的垃圾回收,按照第一策略选择源块。
11.如权利要求10所述的方法,其特征在于,还包括:
在触发垃圾回收时,当可用块不足时,按照第二策略选择源块;
当可用块充足且有风险块时,按照第三策略选择源块;
当可用块充足且无风险块时,如果为所述第一静态磨损均衡触发的垃圾回收,选择所述第一静态磨损均衡触发垃圾回收的源块;如果为所述第二静态磨损均衡触发的垃圾回收,按照所述第一策略选择源块;如果为常规垃圾回收,按照第四策略选择源块。
12.如权利要求11所述的方法,其特征在于,
所述按照第一策略选择源块,包括:在冷数据所在块中选择擦除次数小于所述平均擦除次数的块作为源块;和/或
所述按照第二策略选择源块,包括:根据块的有效数据量选择源块以提高可用块的数量;和/或
所述按照第三策略选择源块,包括:选择风险块作为源块;和/或
所述按照第四策略选择源块,包括:根据块的有效数据量选择源块。
13.如权利要求1所述的方法,其特征在于,还包括:
在触发垃圾回收时,
如果为所述第二静态磨损均衡触发的垃圾回收,选择所述第二静态磨损均衡触发垃圾回收的目标块;
如果不是所述第二静态磨损均衡触发的垃圾回收,按照第五策略选择目标块。
14.如权利要求1所述的方法,其特征在于,还包括:
关闭垃圾回收后长期处于打开状态的目标块。
15.如权利要求1所述的方法,其特征在于,将第一块设置为第一静态磨损均衡触发垃圾回收的源块,包括:
在每次对块进行擦除后,遍历有有效数据的块,将所述第一块设置为第一静态磨损均衡触发垃圾回收的源块,并触发第一静态磨损均衡。
16.一种存储系统的磨损均衡装置,其特征在于,包括:
确定模块,用于确定存储系统中块的平均擦除次数;
第一静态磨损均衡模块,用于将第一块设置为第一静态磨损均衡触发垃圾回收的源块,其中,所述第一块为有有效数据的块中擦除次数低于平均擦除次数第一预设值的块;
和/或
第二静态磨损均衡模块,用于将第二块设置为第二静态磨损均衡触发垃圾回收的目标块,其中,所述第二块为无有效数据的块中擦除次数高于平均擦除次数第二预设值的块。
17.一种存储系统,包括:
存储器;
控制器,所述控制器被配置为执行根据权利要求1-15中任一项所述的方法,以对所述存储器进行磨损均衡。
18.一种存储有计算机指令的非瞬时计算机可读存储介质,其中,所述计算机指令用于使所述计算机执行根据权利要求1-15中任一项所述的方法。
CN202211569787.4A 2022-12-08 2022-12-08 存储系统的磨损均衡方法、装置和存储系统 Active CN115586875B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202211569787.4A CN115586875B (zh) 2022-12-08 2022-12-08 存储系统的磨损均衡方法、装置和存储系统

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202211569787.4A CN115586875B (zh) 2022-12-08 2022-12-08 存储系统的磨损均衡方法、装置和存储系统

Publications (2)

Publication Number Publication Date
CN115586875A true CN115586875A (zh) 2023-01-10
CN115586875B CN115586875B (zh) 2023-07-04

Family

ID=84783135

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202211569787.4A Active CN115586875B (zh) 2022-12-08 2022-12-08 存储系统的磨损均衡方法、装置和存储系统

Country Status (1)

Country Link
CN (1) CN115586875B (zh)

Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07148541A (ja) * 1993-11-26 1995-06-13 Toyota Motor Corp 鍛造用型打方向算出装置
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection
US20160239383A1 (en) * 2013-10-23 2016-08-18 Tencent Technology (Shenzhen) Company Limited Wear leveling method and apparatus and storage medium
CN106681935A (zh) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 一种固态硬盘垃圾回收方法
US9710176B1 (en) * 2014-08-22 2017-07-18 Sk Hynix Memory Solutions Inc. Maintaining wear spread by dynamically adjusting wear-leveling frequency
US20180188980A1 (en) * 2016-12-31 2018-07-05 Western Digital Technologies, Inc. Memory apparatus and methods thereof for write amplification aware wear leveling
US20180196745A1 (en) * 2017-01-12 2018-07-12 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
CN108628758A (zh) * 2018-03-14 2018-10-09 深圳忆联信息系统有限公司 一种选择垃圾回收目标块的方法及固态硬盘
CN112328169A (zh) * 2020-10-20 2021-02-05 浙江大华存储科技有限公司 固态硬盘的磨损均衡方法、装置及计算机可读存储介质
CN114415962A (zh) * 2022-01-24 2022-04-29 广东工业大学 一种静态磨损均衡方法、系统、设备和存储介质

Patent Citations (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPH07148541A (ja) * 1993-11-26 1995-06-13 Toyota Motor Corp 鍛造用型打方向算出装置
US20160239383A1 (en) * 2013-10-23 2016-08-18 Tencent Technology (Shenzhen) Company Limited Wear leveling method and apparatus and storage medium
US9710176B1 (en) * 2014-08-22 2017-07-18 Sk Hynix Memory Solutions Inc. Maintaining wear spread by dynamically adjusting wear-leveling frequency
US20160179386A1 (en) * 2014-12-17 2016-06-23 Violin Memory, Inc. Adaptive garbage collection
CN106681935A (zh) * 2016-12-29 2017-05-17 郑州云海信息技术有限公司 一种固态硬盘垃圾回收方法
US20180188980A1 (en) * 2016-12-31 2018-07-05 Western Digital Technologies, Inc. Memory apparatus and methods thereof for write amplification aware wear leveling
US20180196745A1 (en) * 2017-01-12 2018-07-12 Pure Storage, Inc. Garbage collection of data blocks in a storage system with direct-mapped storage devices
CN108628758A (zh) * 2018-03-14 2018-10-09 深圳忆联信息系统有限公司 一种选择垃圾回收目标块的方法及固态硬盘
CN112328169A (zh) * 2020-10-20 2021-02-05 浙江大华存储科技有限公司 固态硬盘的磨损均衡方法、装置及计算机可读存储介质
CN114415962A (zh) * 2022-01-24 2022-04-29 广东工业大学 一种静态磨损均衡方法、系统、设备和存储介质

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
朱增昌;: "基于擦除上限的动态阈值磨损均衡算法", 电脑知识与技术, no. 12 *
赵峰;刘博妍;朱戈;: "关于NAND闪存损耗均衡算法的优化", 南华大学学报(自然科学版), no. 03 *

Also Published As

Publication number Publication date
CN115586875B (zh) 2023-07-04

Similar Documents

Publication Publication Date Title
US10732905B2 (en) Automatic I/O stream selection for storage devices
US10732857B2 (en) Techniques for reducing memory write operations using coalescing memory buffers and difference information
US8117505B2 (en) Resource exhaustion prediction, detection, diagnosis and correction
US8516462B2 (en) Method and apparatus for managing a stack
US9274944B2 (en) Wear leveling
US9058212B2 (en) Combining memory pages having identical content
US20120117304A1 (en) Managing memory with limited write cycles in heterogeneous memory systems
CN106775496B (zh) 一种存储数据处理方法及装置
WO2021072716A1 (zh) 内存管理方法、装置、电子设备和计算机可读介质
KR20160132432A (ko) 멀티 프로세스 애플리케이션들을 위한 동적 자원 관리
CN115495025B (zh) 一种管理异常存储块的方法和装置
CN108228449B (zh) 终端设备控制方法及装置、终端设备及计算机可读存储介质
JP2014078262A (ja) マルチメモリデバイス寿命管理のための技術
US9785374B2 (en) Storage device management in computing systems
CN112540731A (zh) 数据的追加写方法、装置、设备、介质和程序产品
CN114996173A (zh) 一种管理存储设备写操作的方法和装置
CN115639971A (zh) 数据写入方法、装置、电子设备、存储介质及程序产品
JP2008171103A (ja) 半導体記憶装置管理システム、半導体記憶装置、半導体記憶装置管理システムの制御方法およびプログラム
US11226738B2 (en) Electronic device and data compression method thereof
CN115586875B (zh) 存储系统的磨损均衡方法、装置和存储系统
US10719243B2 (en) Techniques for preserving an expected lifespan of a non-volatile memory
CN111124253B (zh) 管理存储设备的方法、装置和计算机程序产品
CN114816269B (zh) 一种服务器数据的擦除方法、装置、系统、服务器及介质
JP6217008B2 (ja) 電子機器、制御方法、及び、プログラム
CN111837105A (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