CN117453129A - 一种基于ZNS SSDs的Zone重置优化方法 - Google Patents
一种基于ZNS SSDs的Zone重置优化方法 Download PDFInfo
- Publication number
- CN117453129A CN117453129A CN202311425365.4A CN202311425365A CN117453129A CN 117453129 A CN117453129 A CN 117453129A CN 202311425365 A CN202311425365 A CN 202311425365A CN 117453129 A CN117453129 A CN 117453129A
- Authority
- CN
- China
- Prior art keywords
- zone
- block
- pba
- physical
- lba
- 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.)
- Pending
Links
- 238000013403 standard screening design Methods 0.000 title claims abstract description 23
- 238000000034 method Methods 0.000 title claims abstract description 15
- 238000005457 optimization Methods 0.000 title claims abstract description 11
- 230000008447 perception Effects 0.000 claims abstract description 6
- 238000013507 mapping Methods 0.000 claims description 17
- 238000005299 abrasion Methods 0.000 claims description 11
- 230000003321 amplification Effects 0.000 description 6
- 238000003199 nucleic acid amplification method Methods 0.000 description 6
- 238000013500 data storage Methods 0.000 description 2
- 238000010586 diagram Methods 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 230000005012 migration Effects 0.000 description 2
- 238000013508 migration Methods 0.000 description 2
- 238000012545 processing Methods 0.000 description 2
- 238000011084 recovery Methods 0.000 description 2
- 230000004075 alteration Effects 0.000 description 1
- 238000003491 array Methods 0.000 description 1
- 230000009286 beneficial effect Effects 0.000 description 1
- 238000004364 calculation method Methods 0.000 description 1
- 238000006243 chemical reaction Methods 0.000 description 1
- 230000006870 function Effects 0.000 description 1
- 238000012986 modification Methods 0.000 description 1
- 230000004048 modification Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 238000006467 substitution reaction Methods 0.000 description 1
- 239000002699 waste material Substances 0.000 description 1
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0608—Saving storage space on storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0646—Horizontal data movement in storage systems, i.e. moving data in between storage devices or systems
- G06F3/0652—Erasing, e.g. deleting, data cleaning, moving of data to a wastebasket
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F3/00—Input 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/06—Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
- G06F3/0601—Interfaces specially adapted for storage systems
- G06F3/0668—Interfaces specially adapted for storage systems adopting a particular infrastructure
- G06F3/0671—In-line storage system
- G06F3/0673—Single storage device
- G06F3/0679—Non-volatile semiconductor memory device, e.g. flash memory, one time programmable memory [OTP]
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)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本发明属于计算机存储领域,具体涉及一种基于ZNS SSDs的Zone重置优化方法,包括:在Zone重置时,采用基于Zone的部分重置策略,避免Zone内部未使用Block的擦除;记录Zone每次重置时内部的偏移位置和逻辑写入指针,在Zone被再次打开时,通过磨损感知的Block分配器,从记录的偏移位置开始分配Block,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损。本发明提出了一种Zone中部分Block重置策略,避免了Zone内部不必要的Block擦除,使得Zone的空间利用率更高;同时还提出具有磨损感知的块分配器,让数据在Zone中的放置更加合理。
Description
技术领域
本发明属于计算机存储领域,具体涉及一种基于ZNS SSDs的Zone重置优化方法。
背景技术
ZNS是一种新的固态硬盘接口,相比于传统的块接口,它提供了更高的存储容量,更好的性能以及更灵活的数据处理方式;ZNS SSDs抽象出了闪存硬件的混乱细节,采用分区的方式进行管理,将逻辑块分为区域,而不是单个的逻辑块阵列;区域内具有特定的限制要求,允许随机或顺序的读取,但必须顺序写入,并且需要在重置区域之前对区域进行擦除;同时,它可以减弱甚至删除闪存转换层FTL功能,将这些功能交给主机软件处理,从而减少了对DRAM的消耗和SSD中的过度配置;理想情况下,主机可以根据访问模式将特定应用的数据按寿命分类,并将具有类似寿命的数据分配到一个区域;这样一来,一个区的所有数据都可以同时失效,进一步消除了由数据迁移造成的写放大问题;
与传统块接口的SSDs相比,ZNS SSDs表现出许多显著的优势;首先,减少设备中映射表的DRAM消耗;只有区和块之间的粗粒度映射表在设备中预先配置;第二,避免了设备内的垃圾回收和过度配置;主机直接负责区块上的数据分配和垃圾回收,简化了FTL的功能;同时,存在区域感知的文件系统,如F2FS、ZenFS和Btrfs,已经添加了相关模块来支持区域管理;第四,减少写放大;由于避免了设备内垃圾回收,直接消除了设备侧的写放大;此外,主机可以利用应用程序的访问模式在区域上执行有效的数据分配,以进一步减少数据迁移带来的写放大影响;因此,根据应用程序的访问模式,提出了许多数据放置技术,以尽量减少ZNS SSDs上的写放大;
将区域操作交给主机,使得ZNS SSDs的数据放置更具有灵活性,可以更好地应用数据的生命特征信息进行数据的放置,以减小写放大;然而为了提高ZNS SSDs的数据吞吐量,在某些时候,Zone内部尚未被完全使用就会面临重置擦除操作;在Zone重置时,Zone内部存在部分未使用的Block,但是这部分Block也将被擦除,造成严重的空间浪费;Zone经过重置之后,写指针会被重置到Zone的起始位置,数据从空闲的Zone内部的起始位置向后顺序放置,造成Zone内部Block的分配出现差异;进而产生Zone内部的磨损不均问题,严重影响ZNS SSDs的使用寿命;如果没有适当的Zone内部Block管理方式,会降低Zone内部的空间利用率,缩短ZNS SSDs的寿命。
发明内容
为解决上述技术问题,本发明提出一种基于ZNS SSDs的Zone重置优化方法,包括:
S1:在ZNS SSDs的Zone重置时,采用基于Zone的部分重置策略,只针对Zone内已使用的Block进行擦除,避免Zone内部未使用Block的擦除;
S2:记录Zone每次重置时内部的偏移位置和逻辑写入指针,在Zone被再次打开时,通过磨损感知的Block分配器,从记录的偏移位置开始分配Block,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损。
本发明的有益效果:
本发明针对Zone内部不必要的Block擦除问题,提出了一种Zone中部分Block重置策略,避免了Zone内部不必要的Block擦除,使得Zone的空间利用率更高。
本发明针对寻找Zone中磨损最小的Block位置问题,在Zone擦除时计算写入位置偏移量,以一种高效的方式快速定位Zone内部磨损最小的Block的位置;
本发明根据Zone内部顺序写特性和逻辑地址与物理地址映射规则,提出具有磨损感知的块分配器,让数据在Zone中的放置更加合理。
附图说明
图1为本发明的部分擦除的区域重置示意图;
图2为本发明的磨损感知块分配器操作示意图;
图3为本发明的Zone中部分Block重置流程图;
图4为本发明的磨损感知Block分配流程图。
具体实施方式
下面将结合本发明实施例中的附图,对本发明实施例中的技术方案进行清楚、完整地描述,显然,所描述的实施例仅仅是本发明一部分实施例,而不是全部的实施例。基于本发明中的实施例,本领域普通技术人员在没有做出创造性劳动前提下所获得的所有其他实施例,都属于本发明保护的范围。
一种基于ZNS SSDs的Zone重置优化方法,包括:
S1:在ZNS SSDs的Zone重置时,采用基于Zone的部分重置策略,只针对Zone内已使用的Block进行擦除,避免Zone内部未使用Block的擦除;
S2:记录Zone每次重置时内部的偏移位置和逻辑写入指针,在Zone被再次打开时,通过磨损感知的Block分配器,从记录的偏移位置开始分配Block,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损。
所述基于Zone的部分重置策略,包括:
S11:根据Zone的逻辑写入指针和起始位置,通过逻辑写入指针指向的逻辑位置减去起始位置,得到Zone内部已使用Block的逻辑区域;
S12:根据物理Block与逻辑Block映射表,将Zone内部已使用Block的逻辑区域转换为Zone内部已使用Block的物理区域;
S13:调用Zone擦除接口,针对Zone内部已使用Block的物理区域进行擦除。
所述磨损感知的Block分配器,包括:
S21:利用一个偏移指针PBAop,计算以上一次擦除时已使用Block的物理区域的最后位置,即物理块地址的偏移量;
S22:当Zone被再次打开时,逻辑地址从偏移指针PBAop位置开始映射,更新物理Block与逻辑Block映射表;
S23:若超出Zone允许的最大物理地址,则从Zone起始物理地址进行映射,以循环使用Zone的物理地址空间,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损,同时更新物理Block与逻辑Block映射表;
S24:对于Zone的每次数据请求,通过单模操作计算以获得正确的物理地址。
计算Zone擦除时的偏移量,包括:
PBAop′=(LABwp-LBAstart+PBAop)mod ZC
其中,PBAop′表示物理块地址的偏移量,LABwp表示Zone写指针和起始逻辑地址之间的距离,LBAstart表示Zone的逻辑起始位置,PBAop表示偏移指针,ZC表示单个Zone的总容量。
对于每次数据请求,通过单模操作计算新的PBA,包括:
S241:当新的数据需要写入Zone时,通过单模操作计算新数据写操作的物理地址PBAw:
PBAw=LBAstart+(LBAwp+PBAop)mod ZC
其中,LBAstart表示Zone的逻辑起始位置,LBAwp表示写指针和起始LBA之间的距离,PBAop表示偏移指针,ZC表示单个Zone的总容量;
S243:当需要读取一个Zone内部的数据时,通过单模操作计算数据读操作的物理地址PBAr:
PBAr=LBAstart+(LBAr+PBAop)mod ZC
其中,LBAr是逻辑读指针位置。
在本发明实施例中,在Zone调用擦除接口的时候,Zone内部可能会存在部分Block为未使用状态,为了避免对这些Block造成不必要擦除,利用Zone内部数据存储信息和Zone的逻辑地址到物理地址的映射规则。如图1所示:一个写指针在LBA中记录当前写入的位置,以此计算出Zone内部已使用Block的物理区域长度,再调用Zone的擦除接口对已使用Block进行擦除;如图3所示,该流程开始于步骤101,输入一个待回收的Zone,Zone的起始位置S,偏移量L,逻辑写指针位置P,总容量ZC;
在步骤102,根据写指针P和起始位置S计算出已使用区域长度UC;
在步骤103,比较写指针P加上偏移量L是否超出总容量ZC,若未超过ZC,进入步骤104,否则,转至步骤106;
在步骤104,如果103中P+L未超过ZC,则直接擦除S+L到P+L段区域;
在步骤105,计算Zone的偏移量L,重置整个Zone;
在步骤106,如果103中超过了ZC,则先擦除S+L到ZC段的区域;
在步骤107,计算剩余已使用Block区域的大小同时更新Zone的偏移量L;
在步骤108,擦除S到S+L段的区域,重置整个Zone;
在步骤109,流程结束;
在本发明实施例中,对于Zone中部分Block重置方法,虽然避免了Zone内部不必要的Block擦除,但是会产生Zone内部Block之间的磨损差异,造成Zone内部磨损不均问题;进而,提出磨损感知的Block分配方法;如图2所示,将区域LBA的起始位置和区域中最近写入块的PBA联系起来,将区域视为一个循环队列,即采用模操作将物理地址和逻辑地址联系起来,避免任何超过区域容量的无效地址。此磨损感知块分配器让数据在Zone内部从磨损最小的Block位置开始顺序放置,平衡Zone内部的磨损,同时保证Zone内部数据存放的正确性;利用一个偏移指针,在最后一次重置时维护当前写入的PBA。对于每次数据请求,我们通过单模操作计算新的PBA;如图4所示,通过动态地调整Zone的数据写入位置,让每一次数据从Zone中磨损最小的Block位置顺序放置;利用Zone擦除时计算所得的偏移指针位置和逻辑写地址,保证数据在Zone中放置的正确性;该流程开始于步骤201,输入一个待写入的Zone和写入数据大小SI;
在步骤202,获取Zone的起始位置S,偏移量L,逻辑写入指针位置P,总容量ZC;
在步骤203,通过逻辑写指针和偏移量,计算出真实的物理写入地址Q;
在步骤204,从真实写入物理地址Q开始存入数据;
在步骤205,逻辑写指针向前移动,数据大小减小;
在步骤206,判断数据是否完全存入,如果数据大小大于0,进入步骤203,否则,转至步骤207;
在步骤207,流程结束。
尽管已经示出和描述了本发明的实施例,对于本领域的普通技术人员而言,可以理解在不脱离本发明的原理和精神的情况下可以对这些实施例进行多种变化、修改、替换和变型,本发明的范围由所附权利要求及其等同物限定。
Claims (5)
1.一种基于ZNS SSDs的Zone重置优化方法,其特征在于,包括:
S1:在ZNS SSDs的Zone重置时,采用基于Zone的部分重置策略,只针对Zone内已使用的Block进行擦除,避免Zone内部未使用Block的擦除;
S2:记录Zone每次重置时内部的偏移位置和逻辑写入指针,在Zone被再次打开时,通过磨损感知的Block分配器,从记录的偏移位置开始分配Block,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损。
2.根据权利要求1所述的一种基于ZNS SSDs的Zone重置优化方法,其特征在于,所述基于Zone的部分重置策略,包括:
S11:根据Zone的逻辑写入指针和起始位置,通过逻辑写入指针指向的逻辑位置减去起始位置,得到Zone内部已使用Block的逻辑区域;
S12:根据物理Block与逻辑Block映射表,将Zone内部已使用Block的逻辑区域转换为Zone内部已使用Block的物理区域;
S13:调用Zone擦除接口,针对Zone内部已使用Block的物理区域进行擦除。
3.根据权利要求1所述的一种基于ZNS SSDs的Zone重置优化方法,其特征在于,所述磨损感知的Block分配器,提出新的逻辑地址与物理地址映射规则,包括:
S21:利用一个偏移指针PBAop,计算以上一次擦除时已使用Block的物理区域的最后位置,得到物理块地址的偏移量;
S22:当Zone被再次打开时,逻辑地址从偏移指针PBAop位置开始映射,更新物理Block与逻辑Block映射表;
S23:若超出Zone允许的最大物理地址,则从Zone起始物理地址进行映射,以循环使用Zone的物理地址空间,使得Zone内部的Block得以循环使用,平衡Zone内部Block之间的磨损,同时更新物理Block与逻辑Block映射表;
S24:对于Zone的每次数据请求,通过单模操作计算以获得正确的物理地址。
4.根据权利要求3所述的一种基于ZNS SSDs的Zone重置优化方法,其特征在于,计算Zone以上一次擦除时已使用Block的物理区域的最后位置,即物理块地址的偏移量,包括:
PBAop′=(LABwp-LBAstart+PBAop)modZC
其中,PBAop′表示物理块地址的偏移量,LBAwp表示Zone写指针和起始逻辑地址之间的距离,LBAstart表示Zone的逻辑起始位置,PBAop表示偏移指针,ZC表示单个Zone的总容量。
5.根据权利要求3所述的一种基于ZNS SSDs的Zone重置优化方法,其特征在于,对于每次数据请求,通过单模操作计算以获取正确的物理地址,包括:
S241:当新的数据需要写入Zone时,通过单模操作计算新数据写操作的物理地址PBAw:
PBAw=LBAstart+(LBAwp+PBAop)mod ZC
其中,LBAstart表示Zone的逻辑起始位置,LBAwp表示写指针和起始LBA之间的距离,PBAop表示偏移指针,ZC表示单个Zone的总容量;
S243:当需要读取一个Zone内部的数据时,通过单模操作计算数据读操作的物理地址PBAr:
PBAr=LBAstart+(LBAr+PBAop)mod ZC
其中,LBAr是逻辑读指针位置。
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311425365.4A CN117453129A (zh) | 2023-10-30 | 2023-10-30 | 一种基于ZNS SSDs的Zone重置优化方法 |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
CN202311425365.4A CN117453129A (zh) | 2023-10-30 | 2023-10-30 | 一种基于ZNS SSDs的Zone重置优化方法 |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117453129A true CN117453129A (zh) | 2024-01-26 |
Family
ID=89594416
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202311425365.4A Pending CN117453129A (zh) | 2023-10-30 | 2023-10-30 | 一种基于ZNS SSDs的Zone重置优化方法 |
Country Status (1)
Country | Link |
---|---|
CN (1) | CN117453129A (zh) |
-
2023
- 2023-10-30 CN CN202311425365.4A patent/CN117453129A/zh active Pending
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US12019872B2 (en) | Storage device that writes data from a host during garbage collection | |
JP7366795B2 (ja) | メモリシステムおよび制御方法 | |
KR101038167B1 (ko) | 프로세서로부터 메모리로의 액세스를 관리하는 메모리 관리 장치를 포함하는 정보 처리 장치 및 메모리 관리 방법 | |
CN108121503B (zh) | 一种NandFlash地址映射及块管理方法 | |
KR101257691B1 (ko) | 메모리 컨트롤러 및 이의 데이터 관리방법 | |
US11216368B2 (en) | Memory system for garbage collection using page offsets, invalid offset ratio, sequential ratio, and logical address prediction | |
JP4773342B2 (ja) | 不揮発性記憶装置及びデータ書込み方法 | |
TWI399644B (zh) | 非揮發記憶體區塊管理方法 | |
JP5418808B2 (ja) | 適応ハイブリッド密度メモリ記憶装置の制御方法、及び適応ハイブリッド密度メモリ記憶装置 | |
US20160062885A1 (en) | Garbage collection method for nonvolatile memory device | |
US20140129758A1 (en) | Wear leveling in flash memory devices with trim commands | |
US20100325351A1 (en) | Memory system having persistent garbage collection | |
US20110072194A1 (en) | Logical-to-Physical Address Translation for Solid State Disks | |
KR20090042035A (ko) | 불휘발성 메모리 장치를 이용한 데이터 저장장치, 메모리시스템, 그리고 컴퓨터 시스템 | |
US9122586B2 (en) | Physical-to-logical address map to speed up a recycle operation in a solid state drive | |
KR101403922B1 (ko) | 접근 빈도에 따라 데이터를 할당하는 저장장치 및 저장방법 | |
CN109471594B (zh) | 一种mlc闪存读写方法 | |
GB2488480A (en) | Storage device and memory controller | |
US20230091792A1 (en) | Memory system and method of controlling nonvolatile memory | |
US8671257B2 (en) | Memory system having multiple channels and method of generating read commands for compaction in memory system | |
WO2017022082A1 (ja) | フラッシュメモリパッケージ、及び、フラッシュメモリパッケージを含むストレージシステム | |
CN116364148A (zh) | 一种面向分布式全闪存储系统的磨损均衡方法及系统 | |
JP2012058770A (ja) | メモリコントローラ及びメモリコントローラを備えるフラッシュメモリシステム、並びにフラッシュメモリの制御方法 | |
CN116540950B (zh) | 一种存储器件及其写入数据的控制方法 | |
Kwon et al. | An efficient and advanced space-management technique for flash memory using reallocation blocks |
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 |