CN117873406A - 一种控制zns固态硬盘的磨损均衡的方法 - Google Patents

一种控制zns固态硬盘的磨损均衡的方法 Download PDF

Info

Publication number
CN117873406A
CN117873406A CN202410272508.0A CN202410272508A CN117873406A CN 117873406 A CN117873406 A CN 117873406A CN 202410272508 A CN202410272508 A CN 202410272508A CN 117873406 A CN117873406 A CN 117873406A
Authority
CN
China
Prior art keywords
data
zone
block
solid state
blocks
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
CN202410272508.0A
Other languages
English (en)
Other versions
CN117873406B (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.)
Wuhan Lugu Technology Co ltd
Original Assignee
Wuhan Lugu 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 Wuhan Lugu Technology Co ltd filed Critical Wuhan Lugu Technology Co ltd
Priority to CN202410272508.0A priority Critical patent/CN117873406B/zh
Priority claimed from CN202410272508.0A external-priority patent/CN117873406B/zh
Publication of CN117873406A publication Critical patent/CN117873406A/zh
Application granted granted Critical
Publication of CN117873406B publication Critical patent/CN117873406B/zh
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Landscapes

  • Information Retrieval, Db Structures And Fs Structures Therefor (AREA)

Abstract

本申请提供一种控制ZNS固态硬盘的磨损均衡的方法,采用了Plane连续的好块组成了Raid Block阵列来形成Zone,保证了Zone逻辑地址和物理地址双连续的特性;进一步,通过维护一张Logic Plane Block的映射表和选择性对关键数据开启Raid,降低了硬件的开销和用户成本。同时在数据存储前采用分类模块和预测聚类模块对存储数据热力指数进行等级划分并与对Zone类型进行匹配,提高了数据的合理分布,减少了因磨损均衡而导致的写放大的问题,提高了ZNS固态硬盘使用寿命。本方法克服了现有普通固态硬盘磨损均衡策略导致ZNS固态硬盘性能降低的问题。

Description

一种控制ZNS固态硬盘的磨损均衡的方法
技术领域
本发明一种固态硬盘存储领域,具体的,涉及一种控制ZNS固态硬盘的磨损均衡的方法。
背景技术
固态硬盘(Solid State Drive,SSD)是用固态电子存储芯片阵列而制成的硬盘,固态硬盘(SSD)由控制单元和存储单元(FLASH芯片、DRAM芯片)等组成。而ZNS固态硬盘属于一种特殊的固态硬盘(SSD)。ZNS固态硬盘是基于NVMe1.4a协议中引入的ZNS分区,其主要组成部分包括控制器芯片,存储芯片,电源管理模块以及接口电路等。ZNS固态硬盘是将固态硬盘(SSD)划分成不同的数据区域,将不同应用的数据存储至特定分区,从而实现更高的存储容量、更快的存储性能等。
固态硬盘(SSD)的存储单元是由闪存颗粒构成,但随着使用时间的延长,闪存颗粒在使用过程中会逐渐的被磨损,当某一单元的编写或擦除次数达到一定阈值时,就会导致该单元永久性物理损坏。目前,市面上主流的NAND主要四种类型,即SLC,MLC、TLC以及QLC,按照寿命从高到低分别是:SLC>MLC>TLC>QLC。通常可擦写编程次数最低的QLC类型的SSD的闪存芯片仅仅可擦写数百次。当某一应用对某一存储单元进行频繁的擦写,ZNS固态硬盘会因某一存储单元比其他存储单元提前达到可擦写极限而导致损坏,这大大缩短了ZNS固态硬盘的使用寿命。目前,为了解决这个问题,磨损平衡(Wear Leveling)被运用到固态硬盘(SSD)中,来避免不必要的P/E损耗。磨损平衡(Wear Leveling)就是将擦写/写入循环分配到存储单元中,避免了对同一存储单元持续不断的进行擦写/写入操作,从而有效的延长SSD的使用寿命。
针对磨损平衡(Wear Leveling)算法,固态硬盘(SSD)中块单元主要分为两种类型:数据块和空闲块。数据块是闪存的主要组成部分,用于数据的存储;而空闲块在整个闪存中占2%左右,主要用于缓冲磨损平衡(Wear Leveling)算法。虽然ZNS固态硬盘的存储单元结构与传统固态硬盘(SSD)相同,但数据的管理方式二者完全不同。因此,针对普通的固态硬盘(SSD)的设计的磨损平衡(Wear Leveling)算法并不能完全适用于ZNS固态硬盘。普通固态硬盘的磨损平衡(Wear Leveling)是通过FTL层不断的改变逻辑地址对应的物理地址来实现的。但是对于ZNS固态硬盘,其物理容量被划分成若干个LBA,然后将这些LBA切分,每切分成的LBA区域以Zone的方式进行管理。由于NAND Flash存储的数据不受断电的影响,因此这些Zone的用户数据最终就会保存在NAND Flash上。NVME ZNS协议规定LBA写入的顺序需要保持连续,即发起当前Zone的LBA0写入,那下一笔写入当前Zone的LBA必须是LBA1。因此,通常的做法是将LBA和对应的NAND Flash的物理地址强行绑定,这会导致某个被应用程序频繁擦除、编程操作的Zone使用频率远远较高,而其他的Zone操作频率比较低,这样操作频繁Zone很容易因为寿命耗尽导致该Zone失效。而如果才用SLC模式存储,虽然提高了擦写寿命,但牺牲了物理容量,这样导致成本升高。进一步,ZNS固态硬盘特性是根据数据的类型和访问频率采用不同的数据分区放置来工作的,即ZNS固态硬盘对于LBA与物理地址之间的绑定关系具有一定的依赖性。由于数据局部分布性,当主机请求集中在一个或者某几个分区时,该分区对应的Block会被频繁的擦写,这会导致物理块之间磨损不均衡。而采用传统的方式,即改变对应的映射关系来提供磨损平衡,不符合ZNS SSD对于数据按照其类型布置的设计要求以及会导致地址不连续而影响ZNS SSD的读写性能。目前,市面上尚无针对ZNS固态硬盘的进行的磨损平衡的设计。
发明内容
本申请提出本发明是一种控制ZNS固态硬盘磨损均衡的方法,目的是保证ZNS固态硬盘的使用寿命。根据ZNS固态硬盘的协议规定,Zone在ZNS固态硬盘初始化时,使擦写次数接近的Block尽可能排布在同一Zone中,保证了在同一Zone内各个Block擦写次数基本相同或者相近;同时为了避免某个Zone被过渡使用而导致ZNS固态硬盘寿命降低,通过对待数据的热度指数进行计算从而将其放入对应的Zone中,提高了数据擦写的均匀性。而当某一Zone频繁擦写时,通过磨损均衡优化模块将当前热数据Zone和冷数据Zone进行交换,防止Block之间擦写次数差异较大,使得Nand Flash介质上所有的物理Block的擦写次数都处于一个平均水平,提高了ZNS固态硬盘整体寿命。
具体地,涉及一种控制ZNS固态硬盘的磨损均衡的方法,ZNS固态硬盘至少包括控制单元,若干逻辑单元;且每个逻辑单元包括若干Plane,所述控制单元至少包括分类模块,预测聚类模块,磨损均衡优化模块以及扫描编址模块;其特征在于包括如下步骤:
步骤一,通过所述扫描编址模块对每个逻辑单元LUN对应的Plane中的若干Block进行坏块扫描;分别从每个Plane扫描出来的多个好块中选择N+1个连续的好块,并对好块进行排布和编址,得到由Plane0Logic-Block0、 Plane0Logic-Block1.......Plane0Logic-Block N共计N+1个好块排列组成的竖带。
步骤二,提取所有逻辑单元LUN的每个Plane的Logic Block0组成Raid Block0条带,所有逻辑单元LUN的Logic Block1组成Raid Block1条带,以此类推,则可以组成若干Raid Block条带阵列,其中第N个Raid Block条带由所有逻辑单元LUN的Logic BlockN组成。
步骤三,将Raid Block0条带,Raid Block1条带......Raid BlockN的Block分别与Zone0,Zone1......ZoneN进行一一映射;其中每个Zone的Raid Block的数量是相等的。
步骤四,所述分类模块获取各个Zone中的每个Block的擦写次数X以及组成每个Zone的Block中最大的擦写次数Xmax,根据所述擦写次数X计算每个Raid Block条带的方差Var(X),并将所述方差Var(X)与设定阈值进行比较:当Var(X)大于设定阈值时,启动修正映射程序,直到Var(X)小于设定阈值;所述修正程序使得Raid Block中Block的擦写次数接近,方差Var(X)小于设定阈值。
步骤五,所述分类模块根据每个Zone中擦写次数最多的Block的最大擦写次数Xmax,按照从大到小的顺序将N+1个Zone进行排序,并按照排列顺序将Zone分为三类,将第1个至第[(N+1)/3]个Zone设置为热数据池;将第[(N+1)/3]+1个至第[(N+2)/3]个Zone设置为温数据池;将第[N+2/3]+1个至第(N+1)个Zone设置为冷数据池;其中“[ ]”表示取整操作。
步骤六,建立并维护一张LogicPlaneBlock的映射表,映射表中记录Zone与对应Block的映射信息,所述映射信息中每一条至少包括Logic2PhyPlaneBlockMap[Raid BlockNumber][LUN Number] [Plane Number][Block X],当Zone与对应Block的映射关系发生变换时映射表被更新;其中Raid Block Number表示Raid Block序号;LUN Number表示逻辑单元序号;Plane Number表示面序号;Block X表示该映射关系对应Block的当前擦写次数;所述映射表存储于ZNS固态硬盘中,在***启动后,读取该映射表到DRAM缓冲中。
步骤七,所述磨损均衡优化模块进一步被设置包含计数模块,所述计数模块用于记录ZNS固态硬盘在一段使用时间内第i个Zone累计执行擦写操作次数V(i);所述控制模块设定一擦写阈值,当某一Zone的累计擦写次数V(i)+Xmax大于所述擦写阈值时,则执行磨损均衡优化算法,其中所述磨损均衡优化模块包括后台动态磨损均衡任务和前台动态磨损均衡任务。
步骤八,将步骤一中的挑选若干个在每个物理Plane上剩下的完好Block组成一个预留的Zone Raid Block,所述Zone Raid Block用于处理前台动态磨损均衡任务,其中Zone Raid Block大小等于Raid Zone的大小。
步骤九,在待写数据被写入缓存器前,通过所述预测聚类模块对所述数据热度指数进行计算并判断数据热度等级,并根据计算结果将所述数据写入到对应数据池的Zone内;所述缓存器包括第一缓存器、第二缓存器和第三缓存器,且分别与热数据池、温数据池以及冷数据池一一对应。
进一步,在所述步骤七中,所述后台动态磨损均衡任务扫描符合条件的每个Zone擦写的次数获取最大值和最小值,若最大值和最小值的区间超过设定阈值则开启Zone之间的数据交换,所述数据交换步骤至少包括:
1)在缓存中开启两个Plane Block的区域,将2个Plane Block读到缓存,
2)擦除这两个Plane Block,将缓存中来自擦写次数大的Plane Block数据写到擦写次数小的Plane Block;将缓存中来自擦写次数小的Plane Block数据写到擦写次数大的Plane Block;依次类推,将两个Zone中的Plane Block的数据全部完成交换,至此完成后台动态磨损均衡的数据交换。
进一步,在步骤七中,所述前台动态磨损均衡任务直接将数据写到步骤九的预留Zone Raid Block,用于保证用户数据写入时及时响应;每写入一笔数据,同时将等量冷数据搬移到热数据池的Zone对应的物理位置;等当前热数据池的Zone对应的LBA数据请求写入,此时直接写入到之前冷数据池的Zone对应的Raid Block上。
进一步,所述修正映射程序被配置为:将Raid Block之间的Block与Zone之间的映射关系按照预定调换规则进行调换,其中所述预定调换规则为:获取当前Zone中的各个Block的擦写次数,并按照从大到小进行排序,然后顺序将擦写次数较大的Block的映射关系与备用池中的好块进行替换,直至方差Var(X)小于设定阈值。
进一步,所述备用池中好块由各Plane中未被编址的剩余好块组成,进行替换时,选择的优先顺序依次为:同Plane>同Die>同LUN,且用于替换的好块的擦写次数小于待替换的Block的擦写次数。
进一步,所述备用池中好块由各Plane中被编址的Block组成,进行替换时,则将两个被编址Block的映射关系直接对调,且待替换的好块所在Zone的序号大于被替换的好块所在的Zone的序号。
进一步,“通过所述预测聚类模块对所述数据热度指数进行计算并判断数据热度等级”的步骤进一步包括:
7-1)建立标准样本数据集,通过所述标准样本数据对所述预测聚类模块进行训练分类学习,所述标准样本数据至少包括***元数据,媒体流数据,***文件以及用户文件;
7-2)训练完成后,对写入Zone内的数据进行处理,将数据类型相同的或相似的数据分别放入对应缓存器中。
进一步,所述分类学习通过多次不定间隔输入不同类型的标准数据样本实现,具体包括如下步骤:
8-1)判断数据类型,并统计该数据类型在一段时间中对应的写入或修改频率f;当数据类型为多媒体数据,P为0.5;当数据类型为***元数据或应用程序数据,P为1.2;当为其他类型数据,P为1;
8-2)计算数据类型热度指数,其中
其中表示写入数据的写入频率修正系数,初始值为1;表示数据类型的写入时 间修正系数,初始值为1;f表示某一类型数据写入的次数;F表示数据总写入次数;T0,T1、T2 表示时间时刻;通过这种方式,可以动态地调整每个内容项的热度值,同时减少波动问题。
进一步,“训练完成后,对写入Zone内的数据进行处理,将数据类型相同的或相似的数据分别放入对应缓存器中”步骤进一步包括计算数据热力指数得到待写入数据的热度值,根据热度值的大小,所述预测聚类模块对待写入的数据分别进行标签标注后,所述控制器将具有相同标签的数据判断为相同或相似的数据,并将所述数据写入对应的缓存器中,待缓存器写满则将待写入数据一次写入对应的Zone内。
进一步,所述修正系数,所述修正系数,其中表示截止该时刻对应的数据类型的写入频率;计算公式可以根据待写入数 据的类型频率,动态调整各个数据类型的比例权重,提高热度指数计算的准确率。
本发明的有益效果:
1.ZNS固态硬盘的每个Zone的容量是均等,简化了固件做动态均衡开销。
2.前后台动态均衡设计降低了企业级用户的数据响应时延,提高了ZNS固态硬盘的读写性能。
3.可以根据需要对关键数据开始Raid,无需将NAND Flash用SLC模式存储数据,节省了用户的成本花费。
4.仅需维护一张Logic Plane Block的映射表,在数据交换完成后更新一次映射表即可,降低了维护映射表空间开销并提高了查询效率。
5.磨损均衡设计大大延长了ZNS固态硬盘的使用寿命,保证Zone在频繁写入数据不会过早的达到NAND Flash使用寿命而导致Zone无法使用的问题。
6.通过对待写入数据进行热度分级,从而将不同热度的数据分别分配至对应的热或温或冷数据存储区,提高了存储数据的分布均匀性,避免出现热数据对某一固定Zone多次频繁擦写。针对ZNS固态硬盘制定磨损均衡策略,克服了现有普通固态硬盘磨损均衡策略导致ZNS固态硬盘性能降低的问题。
附图说明
为了更清楚地说明本申请实施例或相关技术中的技术方案,下面将对实施例或现有技术描述中所需要使用的附图作简单地介绍,显而易见地,下面描述中的附图仅仅是本申请的实施例,对于本领域普通技术人员来讲,在不付出创造性劳动的前提下,还可以根据提供的附图获得其他的附图。
本说明书附图所绘示的结构、比例、大小等,均仅用以配合说明书所揭示的内容,以供熟悉此技术的人士了解与阅读,并非用以限定本申请可实施的限定条件,故不具技术上的实质意义,任何结构的修饰、比例关系的改变或大小的调整,在不影响本申请所能产生的功效及所能达成的目的下,均应仍落在本申请所揭示的技术内容得能涵盖的范围内。
图1为本申请一个实施例中的Raid Block结构示意图 。
图2为本申请一个实施例的Zone组成结构示意图。
图3为本申请一个实施例的ZNS SSD后台磨损均衡固件处理流程示意图。
图4为本申请一个实施例的后台Zone数据交换流程图。
图5为本申请一个实施例的ZNS SSD前台磨损均衡固件处理流程示意图。
图6为本申请一个实施例的后台Zone数据交换流程图。
图7为本申请一个实施例的前台Zone数据交换流程图。
具体实施方式
下面将结合本申请实施例中的附图,对本申请中的实施例进行清楚、完整地描述,显然,所描述的实施例仅仅是本申请一部分实施例,而不是全部的实施例。基于本申请中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本申请保护的范围。
本申请提出本发明是一种控制ZNS固态硬盘的磨损均衡的方法,保证在某个Zone在被用户频繁擦写时,使当前热数据Zone和冷数据Zone进行交换,使得Nand Flash介质上所有的物理Block的擦写次数都大致处于一个平均水平,避免某一Zone对应的物理存储单元因频繁的擦写而过早失效。本申请提出的一种控制ZNS固态硬盘的磨损均衡的方法,所述ZNS固态硬盘至少包括控制单元,若干逻辑单元;且每个逻辑单元包括若干Plane,所述控制单元至少包括分类模块,预测聚类模块,磨损均衡优化模块以及扫描编址模块。具体地涉及一种控制ZNS固态硬盘的磨损均衡的方法包括如下步骤:
步骤一,通过扫描编址模块扫描对每个逻辑单元LUN,获取对应的Plane中的Block好块分布情况;然后分别从每个Plane扫描出来的多个好块中选择N+1个连续的好块,并对好块进行排布和编址,得到由Plane0Logic-Block0、 Plane0Logic-Block1.......Plane0Logic-Block N共计N+1个好块排列组成的竖带。由于Zone的逻辑地址是连续的,逻辑地址是由若干的Block组成,通过用若干物理地址连续的Block来组成Zone,可以使Zone的逻辑地址和物理地址均尽可能保持连续,有利于提高读写速度。进一步,通过扫描每个Plane中的好块,可以得到一个由好块组成的Zone,该Zone内不存在坏块,可以提高Zone的性能和稳定性。
步骤二,提取所有逻辑单元LUN的每个Plane的Logic Block0组成Raid Block0条带,即Plane0的Block0,Plane1的Block0,Plane2的Block0...形成了Raid Block0条带;以此类推,所有逻辑单元LUN的Logic Block1组成Raid Block1条带,第N个Raid Block条带由所有逻辑单元LUN的Logic BlockN组成;则可以组成若干Raid Block条带阵列,如图1所示。本申请为了方便说明,假定选取的Block均是好块;在实际中可能会出现某一选定Block的序号并不连续,则按照十几排列顺序即可,并不影响实施本发明。例如,Plane0中的Block1是坏块,则选择的Block块跳过该坏块依次顺延即可。
步骤三,将Raid Block0条带,Raid Block1条带......Raid BlockN的Block分别与Zone0,Zone1......ZoneN进行一一映射;其中每个Zone的Raid Block的数量是相等的,如图2所示。通过上述映射,可以使Raid Block的条带中的Block与对应的Zone之间建立映射关系,从而为后续形成一张映射表提供依据。每个Zone中规定写入数据必须是顺序写入,因此仅仅需要维护Zone与Block的映射关系,不需要维护每个Block与当前写入地址的映射关系,可以大大的缩小映射表的存储空间,提高查询效率。
步骤四,通过分类模块获取各个Zone中的每个Block的擦写次数X以及组成每个Zone的Block中最大的擦写次数Xmax。而对于某个Zone,数据写入必须是顺序写入的,当进行擦除时,该Zone通过RESET命令进行擦除,则组成该Zone的Block的擦写次数整体均增加了一次。通过获取每个Zone的Block的最大擦写次数Xmax,即可以获知当前Zone已被擦写的最大次数。根据所述擦写次数X计算每个Raid Block条带的方差Var(X),并将所述方差Var(X)与设定阈值进行比较:当Var(X)大于设定阈值时,启动修正映射程序,直到Var(X)小于设定阈值;所述修正程序使得Raid Block中Block的擦写次数接近,方差Var(X)小于设定阈值。在Zone被存储数据前,对ZNS固态硬盘的所有Zone先进行一次均衡优化,此时不需要对Zone内的数据进行搬移,可以使得Zone保持更好的均匀性,有利于提高寿命和ZNS固态硬盘Zone的稳定性并减少写放大。
所述修正映射程序被配置为:将Raid Block之间的Block与Zone之间的映射关系按照预定调换规则进行调换,其中所述预定调换规则为:获取当前Zone中的各个Block的擦写次数,并按照从大到小进行排序,然后顺序将擦写次数较大的Block的映射关系与备用池中的好块进行替换,直至方差Var(X)小于设定阈值。而备用池的好块可以包括两种来源,一种是由各Plane中未被编址的剩余好块组成,进行替换时,选择的优先顺序依次为:同Plane>同Die>同LUN,且用于替换的好块的擦写次数小于待替换的Block的擦写次数,优先选择同Plane的好块作为替换好块,可以减少寻址的时间,同时保证数据读写的连续性;另一种是由各Plane中被编址的Block组成,进行替换时,则将两个被编址Block的映射关系直接对调,且待替换的好块所在Zone的序号大于被替换的好块所在的Zone的序号,这样可以保证前面已经完成磨损均衡优化的Zone不会被再次破坏,同时使得擦写次数接近的Block分布于同一Zone中,减少了写放大。
步骤五,所述分类模块根据每个Zone中擦写次数最多的Block的最大擦写次数Xmax,按照从大到小的顺序将N+1个Zone进行排序,并按照排列顺序将Zone分为三类,将第1个至第[(N+1)/3]个Zone设置为热数据池;将第[(N+1)/3]+1个至第[(N+2)/3]个Zone设置为温数据池;将第[N+2/3]+1个至第(N+1)个Zone设置为冷数据池;其中“[ ]”表示取整操作。通过分类模块对Zone进行分类,并对Zone进行适当的分类,然后根据数据的热度指数将数据存储到对应的Zone内,具体的一种实施方式可以将热数据存储到热数据池,温数据存储到温数据池,冷数据存储到冷数据池,最大程度的避免了冷热数据混合,减少因磨损均衡导致的写放大。在另一种实施方式中,可以将热数据存储到冷数据池中 ,将温数据存储到温数据池,将冷数据存储到热数据池;不仅可以避免冷热数据的混合,减少启动磨损均衡的次数,同时可以在存储数据时起到磨损均衡的作用,有利于减少因磨损均衡而导致的擦写次数。
进一步,N+1个Zone中,不同数据存储类型的Zone数量可以进行均等,也可以根据需要不均匀设置,优选将冷数据池和热数据池中的Zone数量设置为相等,有利于后期磨损均衡时数据置换。
步骤六,建立并维护一张LogicPlaneBlock的映射表,映射表中记录Zone与对应Block的映射信息,所述映射信息中每一条至少包括Logic2PhyPlaneBlockMap[Raid BlockNumber][LUN Number] [Plane Number][Block X],当Zone与对应Block的映射关系发生变换时映射表被更新;其中Raid Block Number表示Raid Block序号;LUN Number表示逻辑单元序号;Plane Number表示面序号;Block X表示该映射关系对应Block的当前擦写次数。将Block的擦写次数信息存储到映射表中,在被执行一次擦写时,自动增加1,仅需要一次查询即可获得Block的被擦写的次数,后期不在需要对其再进行查询,提高了***的效率,节约了资源开销。
所述映射表存储于ZNS固态硬盘中,在***启动后,读取该映射表到DRAM缓冲中。当所述映射表被更新时,直接在DRAM缓存中对映射关系进行修改。为了减少ZNS固态硬盘的写放大同时保证映射表及时被更新保存,每间隔一时间间隔,***将DRAM缓存中的映射表对ZNS固态硬盘中的映射表进行覆盖存储。DRAM缓冲可以使用ZNS固态硬盘自带的缓冲,也可以使用***内存。
步骤七,所述磨损均衡优化模块进一步被设置包含计数模块,所述计数模块用于记录ZNS固态硬盘在一段使用时间内第i个Zone累计执行擦写操作次数V(i);所述控制模块设定一擦写阈值,当某一Zone的累计擦写次数V(i)+Xmax大于所述擦写阈值时,则执行磨损均衡优化算法,其中所述磨损均衡优化算法包括后台动态磨损均衡任务和前台动态磨损均衡任务。
图3为后台动态磨损均衡任务流程示意图。所述后台动态磨损均衡任务扫描符合条件的每个Zone擦写的次数获取最大值和最小值,若最大值和最小值的区间超过设定阈值则开启Zone之间的数据交换,所述数据交换步骤至少包括:
1)在缓存中开启两个对应的Plane Block的区域,将2个Plane Block读到缓存,
2)擦除这两个Plane Block,将缓存中来自擦写次数大的Plane Block数据写到擦写次数小的Plane Block;将缓存中来自擦写次数小的Plane Block数据写到擦写次数大的Plane Block;依次类推,将两个Zone中的Plane Block的数据全部完成交换,至此完成后台动态磨损均衡的数据交换,如图4所示。
图5为前台动态磨损均衡流程示意图。所述前台动态磨损均衡任务直接将数据写到步骤八的预留Zone Raid Block,避免Zone被占用而影响正常读写功能,保证用户数据写入时及时响应。每写入一笔数据,同时将等量冷数据搬移到热数据池的Zone对应的物理Block位置;等当前热数据池的Zone对应的LBA数据请求写入,此时直接写入到之前冷数据池的Zone对应的Raid Block上,如图6所示。
步骤八,将步骤一中的若干个在每个物理Plane上剩下的完好Block组成一个预留的Zone Raid Block,所述Zone Raid Block用于处理前台动态磨损均衡任务,其中ZoneRaid Block大小等于Raid Zone的大小,如图7所示。通过预留的Zone Raid Block,可以避免额外占用较多的缓冲空间,避免在执行前台动态磨损时影响ZNS固态硬盘的性能。
步骤九,待写数据被写入缓存器前,所述通过预测聚类模块对所述数据热度指数进行计算并判断数据热度等级,并根据计算结果将所述数据写入到对应数据池的Zone内;所述缓存器包括第一缓存器、第二缓存器和第三缓存器,且分别与热数据池、温数据池以及冷数据池一一对应。
在一个实施例中,所述通过预测聚类模块对所述数据热度指数进行计算并判断数据热度等级的步骤进一步包括:
1)建立标准样本数据集,通过所述标准样本数据对所述预测聚类模块进行训练分类学习,所述标准样本数据至少包括***元数据,媒体流数据,***文件以及用户文件;标准样本数据可以根据用户实际需要配置。所述分类学习通过多次不定间隔输入不同类型的标准数据样本实现,具体包括如下步骤:
1-1)判断数据类型,并统计该数据类型在一段时间中对应的写入或修改频率f;根据数据类型的不同设置不同的参数P,当数据类型为多媒体数据,P为0.2-0.5;当数据类型为***元数据或应用程序数据,P为1-1.2;当为其他类型数据,P为0.9-1;其中P的数据是根据标准样本数据输入结果经验得到的。
1-2)计算数据类型热度指数,其中
其中表示写入数据的写入频率修正系数,所述修正系数,值 为1时表示某数据在该时间段写入频率不变;表示数据类型的写入时间修正系数,所述修 正系数;f表示某一类型数据写入的次数;F表示数据总写入次数;T0,T1、T2表 示某一时刻,其中表示截止该时刻对应的数据类型的写入频率。通过这种方 式,当在一段时间内,大量的写入某一数据类型,可以使得该数据热度指数迅速上升;而在 一段时间内,写入的某一数据类型较少时,该数据热度指数可以加速下降,进而可以更准确 地判断数据的类型。通过动态地调整每个内容项的热度值,同时减少因数据热度指数波动 而导致的误判的问题。计算公式可以根据待写入数据的类型频率,动态调整各个数据类型 的比例权重,提高热度指数计算的准确率。
2)训练完成后,对写入Zone内的数据进行处理,计算待写入Zone数据的热度指数,将数据类型相同的或相似的数据分别放入对应缓存器中。具体的,进一步包括计算数据热力指数得到待写入数据的热度值,根据热度值的大小,所述预测聚类模块对待写入的数据分别进行标签标注后,所述控制器将具有相同标签的数据判断为相同或相似的数据,并将所述数据写入对应的缓存器中,待缓存器写满则将待写入数据一次写入对应的Zone内。
本申请提供的一种控制ZNS固态硬盘的磨损均衡的方法,采用了Plane连续的好块组成了Raid Block阵列来形成Zone,保证了Zone逻辑地址和物理地址双连续的特性;同时在数据存储前采用分类模型和预测聚类模块对存储数据热力指数进行等级划分与对Zone类型进行匹配,提高了数据的合理分布,减少了因磨损均衡而导致的写放大的问题。进一步,通过维护一张Logic Plane Block的映射表和选择性对关键数据开启Raid,降低了硬件的开销和用户成本。
本说明书中各个实施例采用递进、或并列、或递进和并列结合的方式描述,每个实施例重点说明的都是与其他实施例的不同之处,各个实施例之间相同相似部分互相参见即可。对于实施例公开的装置而言,由于其与实施例公开的方法相对应,所以描述的比较简单,相关之处参见方法部分说明即可。
需要说明的是,在本申请的描述中,需要理解的是,术语“上”、“下”、“顶”、“底”、“内”、“外”等指示的方位或位置关系为基于附图所示的方位或位置关系,仅是为了便于描述本申请和简化描述,而不是指示或暗示所指的装置或元件必须具有特定的方位、以特定的方位构造和操作,因此不能理解为对本申请的限制。当一个组件被认为是“连接”另一个组件,它可以是直接连接到另一个组件或者可能同时存在居中设置的组件。
还需要说明的是,在本文中,诸如第一和第二等之类的关系术语仅仅用来将一个实体或者操作与另一个实体或操作区分开来,而不一定要求或者暗示这些实体或操作之间存在任何这种实际的关系或者顺序。而且,术语“包括”、“包含”或者其任何其他变体意在涵盖非排他性的包含,从而使得包括一系列要素的物品或者设备不仅包括那些要素,而且还包括没有明确列出的其他要素,或者是还包括为这种物品或者设备所固有的要素。在没有更多限制的情况下,由语句“包括一个……”限定的要素,并不排除在包括上述要素的物品或者设备中还存在另外的相同要素。
对所公开的实施例的上述说明,使本领域专业技术人员能够实现或使用本申请。对这些实施例的多种修改对本领域的专业技术人员来说将是显而易见的,本文中所定义的一般原理可以在不脱离本申请的精神或范围的情况下,在其它实施例中实现。因此,本申请将不会被限制于本文所示的这些实施例,而是要符合与本文所公开的原理和新颖特点相一致的最宽的范围。

Claims (10)

1.一种控制ZNS固态硬盘的磨损均衡的方法,ZNS固态硬盘至少包括控制单元,若干逻辑单元;且每个所述逻辑单元包括若干Plane,所述控制单元至少包括分类模块,预测聚类模块,磨损均衡优化模块以及扫描编址模块;其特征在于包括如下步骤:
步骤一,通过所述扫描编址模块对每个所述逻辑单元LUN对应的Plane中的若干Block进行坏块扫描;分别从每个Plane扫描出来的多个好块中选择N+1个连续的好块,并对好块进行排布和编址,得到由Plane0Logic-Block0、 Plane0Logic-Block1.......Plane0Logic-Block N共计N+1个好块排列组成的竖带;
步骤二,提取所有所述逻辑单元LUN的每个Plane的Logic Block0组成Raid Block0条带,所有所述逻辑单元LUN的Logic Block1组成Raid Block1条带,以此类推,则可以组成若干Raid Block条带阵列,其中第N个Raid Block条带由所有所述逻辑单元LUN的LogicBlockN组成;
步骤三,将Raid Block0条带,Raid Block1条带......Raid BlockN的Block分别与Zone0,Zone1......ZoneN进行一一映射;其中每个Zone的Raid Block的数量是相等的;
步骤四,所述分类模块获取各个Zone中的每个Block的擦写次数X以及组成每个Zone的Block中最大的擦写次数Xmax,根据所述擦写次数X计算每个Raid Block条带的方差Var(X),并将所述方差Var(X)与设定阈值进行比较:当Var(X)大于设定阈值时,启动修正映射程序,直至Var(X)小于设定阈值;
步骤五,所述分类模块根据每个Zone中擦写次数最多的Block的最大擦写次数Xmax,按照从大到小的顺序将N+1个Zone进行排序,并按照排列顺序将Zone分为三个数据池,其中第1个至第[(N+1)/3]个Zone设置为热数据池;第[(N+1)/3]+1个至第[(N+2)/3]个Zone设置为温数据池;第[N+2/3]+1个至第(N+1)个Zone设置为冷数据池; “[ ]”表示取整;
步骤六,建立并维护一张LogicPlaneBlock的映射表,映射表中记录Zone与对应Block的映射信息,所述映射信息中每一条至少包括Logic2PhyPlaneBlockMap[Raid BlockNumber][LUN Number] [Plane Number][Block X],当Zone与对应Block的映射关系发生变换时映射表被更新;其中Raid Block Number表示Raid Block序号;LUN Number表示逻辑单元序号;Plane Number表示面序号;Block X表示该映射关系对应Block的当前擦写次数;所述映射表存储于ZNS固态硬盘中,在***启动后,读取该映射表到DRAM缓冲中;
步骤七,所述磨损均衡优化模块进一步被设置包含计数模块,所述计数模块用于记录ZNS固态硬盘在一段使用时间内第i个Zone累计执行擦写操作次数V(i);所述控制模块设定一擦写阈值,当某一Zone的累计擦写次数V(i)+Xmax大于所述擦写阈值时,则执行磨损均衡优化算法,其中所述磨损均衡优化模块包括后台动态磨损均衡任务和前台动态磨损均衡任务;
步骤八,将步骤一中的挑选若干个在每个物理Plane上剩下的完好Block组成一个预留的Zone Raid Block,所述Zone Raid Block用于处理前台动态磨损均衡任务,其中ZoneRaid Block大小等于Raid Zone的大小;
步骤九,在待写数据被写入缓存器前,通过所述预测聚类模块对所述数据热度指数进行计算并判断数据热度等级,并根据计算结果将所述数据写入到对应数据池的Zone内;所述缓存器包括第一缓存器、第二缓存器和第三缓存器,且分别与热数据池、温数据池以及冷数据池一一对应。
2.根据权利要求1所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述步骤七中,所述后台动态磨损均衡任务扫描符合条件的每个Zone擦写的次数获取最大值和最小值,若最大值和最小值的区间超过设定阈值则开启Zone之间的数据交换,所述数据交换步骤至少包括:
1)在缓存中开启两个Plane Block的区域,将2个Plane Block读到缓存,
2)擦除这两个Plane Block,将缓存中来自擦写次数大的Plane Block数据写到擦写次数小的Plane Block;将缓存中来自擦写次数小的Plane Block数据写到擦写次数大的Plane Block;依次类推,将两个Zone中的Plane Block的数据全部完成交换,至此完成后台动态磨损均衡的数据交换。
3.根据权利要求1所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述步骤七中,所述前台动态磨损均衡任务直接将数据写到步骤八的预留Zone Raid Block,用于保证用户数据写入时及时响应;每写入一笔数据,同时将等量冷数据搬移到热数据池的Zone对应的物理位置;等当前热数据池的Zone对应的LBA数据请求写入,此时直接写入到之前冷数据池的Zone对应的Raid Block上。
4.根据权利要求1所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述修正映射程序被配置为:将Raid Block之间的Block与Zone之间的映射关系按照预定调换规则进行调换,其中所述预定调换规则为:获取当前Zone中的各个Block的擦写次数,并按照从大到小进行排序,然后顺序将擦写次数较大的Block的映射关系与备用池中的好块进行替换,直至方差Var(X)小于设定阈值。
5.根据权利要求4所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述备用池中好块由各Plane中未被编址的剩余好块组成,进行替换时,选择的优先顺序依次为:同Plane>同Die>同LUN,且用于替换的好块的擦写次数小于待替换的Block的擦写次数。
6.根据权利要求4所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述备用池中好块由各Plane中被编址的Block组成,进行替换时,则将两个被编址Block的映射关系直接对调,且待替换的好块所在Zone的序号大于被替换的好块所在的Zone的序号。
7.根据权利要求1所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:“通过所述预测聚类模块对所述数据热度指数进行计算并判断数据热度等级”的步骤进一步包括:
7-1)建立标准样本数据集,通过所述标准样本数据对所述预测聚类模块进行训练分类学习,所述标准样本数据至少包括***元数据,媒体流数据,***文件以及用户文件;
7-2)训练完成后,对写入Zone内的数据进行处理,将数据类型相同的或相似的数据分别放入对应缓存器中。
8.根据权利要求7所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述分类学习通过多次不定间隔输入不同类型的标准数据样本实现,具体包括如下步骤:
8-1)判断数据类型,并统计该数据类型在一段时间中对应的写入或修改频率f;当数据类型为多媒体数据,P为0.5;当数据类型为***元数据或应用程序数据,P为1.2;当为其他类型数据,P为1;
8-2)计算数据类型热度指数,其中
其中表示写入数据的写入频率修正系数;表示数据类型的写入时间修正系数;f表 示某一类型数据写入的次数;F表示某一时间段内数据总写入次数;T0,T1、T2表示某一时 刻。
9.根据权利要求7所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:步骤7-2)进一步包括:
9-1)计算数据热力指数得到待写入数据的热度值,根据热度值的大小,所述预测聚类模块对待写入的数据分别进行标签标注,
9-2)所述控制器将具有相同标签的数据判断为相同或相似的数据,并将所述数据写入对应的缓存器中,待缓存器写满则将待写入数据一次写入对应的Zone内。
10.根据权利要求8所述的一种控制ZNS固态硬盘的磨损均衡的方法,其特征在于:所述 修正系数,所述修正系数,其中表示截止该 时刻对应的数据类型的写入频率。
CN202410272508.0A 2024-03-11 一种控制zns固态硬盘的磨损均衡的方法 Active CN117873406B (zh)

Priority Applications (1)

Application Number Priority Date Filing Date Title
CN202410272508.0A CN117873406B (zh) 2024-03-11 一种控制zns固态硬盘的磨损均衡的方法

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
CN202410272508.0A CN117873406B (zh) 2024-03-11 一种控制zns固态硬盘的磨损均衡的方法

Publications (2)

Publication Number Publication Date
CN117873406A true CN117873406A (zh) 2024-04-12
CN117873406B CN117873406B (zh) 2024-07-09

Family

ID=

Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107016A1 (en) * 2009-10-29 2011-05-05 Hynix Semiconductor Inc. Solid state storage systems and methods for flexibly controlling wear leveling
US20150347025A1 (en) * 2014-05-27 2015-12-03 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US20160188455A1 (en) * 2014-12-29 2016-06-30 Sandisk Technologies Inc. Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated
CN106844227A (zh) * 2017-01-14 2017-06-13 郑州云海信息技术有限公司 基于分组机制的固态硬盘磨损均衡方法及装置
US20170329522A1 (en) * 2014-11-20 2017-11-16 Shannon Systems Ltd. Raid system and method based on solid-state storage medium
US20190171372A1 (en) * 2017-12-01 2019-06-06 Micron Technology, Inc. Wear Leveling in Solid State Drives
US20200042224A1 (en) * 2018-08-02 2020-02-06 EMC IP Holding Company LLC Managing wear balancing in mapped raid storage systems
CN111708481A (zh) * 2020-04-24 2020-09-25 浙江大学 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法
US20210089226A1 (en) * 2019-09-20 2021-03-25 International Business Machines Corporation Adaptive wear leveling for drive arrays
CN112817880A (zh) * 2021-03-17 2021-05-18 深圳市安信达存储技术有限公司 一种固态硬盘及其磨损平衡方法和终端设备
CN114546295A (zh) * 2022-04-25 2022-05-27 武汉麓谷科技有限公司 一种基于zns固态硬盘的智能写分配方法和装置
US20220261160A1 (en) * 2021-02-18 2022-08-18 Western Digital Technologies, Inc. Wear Leveling Methods For Zoned Namespace Solid State Drive
CN115480698A (zh) * 2022-09-05 2022-12-16 中国电信股份有限公司 Zns闪存固态盘的操作方法、装置、电子设备
CN115686372A (zh) * 2022-11-07 2023-02-03 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法
US20230297243A1 (en) * 2020-08-20 2023-09-21 Inspur Suzhou Intelligent Technology Co., Ltd. Method and apparatus for predicting service life of solid-state disk, and computer-readable storage medium
CN117453152A (zh) * 2023-12-25 2024-01-26 武汉麓谷科技有限公司 一种ZNS固态硬盘Zone LBA管理方法以及区块管理命令的算法
US20240069741A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Dynamic wear leveling techniques

Patent Citations (17)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20110107016A1 (en) * 2009-10-29 2011-05-05 Hynix Semiconductor Inc. Solid state storage systems and methods for flexibly controlling wear leveling
US20150347025A1 (en) * 2014-05-27 2015-12-03 Kabushiki Kaisha Toshiba Host-controlled garbage collection
US20170329522A1 (en) * 2014-11-20 2017-11-16 Shannon Systems Ltd. Raid system and method based on solid-state storage medium
US20160188455A1 (en) * 2014-12-29 2016-06-30 Sandisk Technologies Inc. Systems and Methods for Choosing a Memory Block for the Storage of Data Based on a Frequency With Which the Data is Updated
CN106844227A (zh) * 2017-01-14 2017-06-13 郑州云海信息技术有限公司 基于分组机制的固态硬盘磨损均衡方法及装置
US20190171372A1 (en) * 2017-12-01 2019-06-06 Micron Technology, Inc. Wear Leveling in Solid State Drives
US20200042224A1 (en) * 2018-08-02 2020-02-06 EMC IP Holding Company LLC Managing wear balancing in mapped raid storage systems
US20210089226A1 (en) * 2019-09-20 2021-03-25 International Business Machines Corporation Adaptive wear leveling for drive arrays
CN111708481A (zh) * 2020-04-24 2020-09-25 浙江大学 一种基于超级块的固态硬盘ssd双区磨损均衡处理方法
US20230297243A1 (en) * 2020-08-20 2023-09-21 Inspur Suzhou Intelligent Technology Co., Ltd. Method and apparatus for predicting service life of solid-state disk, and computer-readable storage medium
US20220261160A1 (en) * 2021-02-18 2022-08-18 Western Digital Technologies, Inc. Wear Leveling Methods For Zoned Namespace Solid State Drive
CN112817880A (zh) * 2021-03-17 2021-05-18 深圳市安信达存储技术有限公司 一种固态硬盘及其磨损平衡方法和终端设备
CN114546295A (zh) * 2022-04-25 2022-05-27 武汉麓谷科技有限公司 一种基于zns固态硬盘的智能写分配方法和装置
US20240069741A1 (en) * 2022-08-30 2024-02-29 Micron Technology, Inc. Dynamic wear leveling techniques
CN115480698A (zh) * 2022-09-05 2022-12-16 中国电信股份有限公司 Zns闪存固态盘的操作方法、装置、电子设备
CN115686372A (zh) * 2022-11-07 2023-02-03 武汉麓谷科技有限公司 一种基于zns固态硬盘zrwa功能的数据管理的方法
CN117453152A (zh) * 2023-12-25 2024-01-26 武汉麓谷科技有限公司 一种ZNS固态硬盘Zone LBA管理方法以及区块管理命令的算法

Similar Documents

Publication Publication Date Title
US9098395B2 (en) Logical block management method for a flash memory and control circuit storage system using the same
US8103820B2 (en) Wear leveling method and controller using the same
CN110413537B (zh) 一种面向混合固态硬盘的闪存转换层及转换方法
CN106874213B (zh) 一种融合多种机器学习算法的固态硬盘热数据识别方法
CN108108128A (zh) 一种混合ssd的磨损均衡方法及ssd
US8738876B2 (en) Method for performing block management, and associated memory device and controller thereof
US20190286328A1 (en) Partially written block treatment
US8392647B2 (en) Solid state storage system for controlling reserved area flexibly and method for controlling the same
US10949291B2 (en) Partially written superblock treatment
CN108829346B (zh) 一种适应闪存页差异的固态硬盘的用户写请求处理方法
US11809723B2 (en) Unbalanced plane management method, associated data storage device and controller thereof
CN102292711A (zh) 固态存储器格式化
KR20090077538A (ko) 반도체 메모리 장치 및 그것의 마모도 관리 방법
CN107423229B (zh) 一种面向页级ftl的缓冲区改进方法
TW201917581A (zh) 管理快閃記憶體模組的方法及相關的快閃記憶體控制器
CN101634967A (zh) 用于闪存的区块管理方法、储存***与控制器
CN116457885A (zh) 一种数据处理方法、装置及***
CN111352593B (zh) 一种区分快写和正常写的固态硬盘数据写入方法
CN117873406B (zh) 一种控制zns固态硬盘的磨损均衡的方法
CN102637145B (zh) 用来进行区块管理的方法、记忆装置及其控制器
US9959052B1 (en) Media based cache for data storage device
CN117873406A (zh) 一种控制zns固态硬盘的磨损均衡的方法
CN114281251B (zh) 面向3d tlc闪存存储器的数据分配与重编程优化方法
TWI718635B (zh) 非對稱型平面管理方法以及資料儲存裝置及其控制器
CN112506445A (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