CN117616377A - 跨zns ssd中的超级设备的超级块分配 - Google Patents
跨zns ssd中的超级设备的超级块分配 Download PDFInfo
- Publication number
- CN117616377A CN117616377A CN202280048925.6A CN202280048925A CN117616377A CN 117616377 A CN117616377 A CN 117616377A CN 202280048925 A CN202280048925 A CN 202280048925A CN 117616377 A CN117616377 A CN 117616377A
- Authority
- CN
- China
- Prior art keywords
- partition
- data storage
- storage device
- super
- free space
- 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 1
- 238000013500 data storage Methods 0.000 claims abstract description 89
- 241001522296 Erithacus rubecula Species 0.000 claims abstract description 11
- 238000005192 partition Methods 0.000 claims description 317
- 230000004044 response Effects 0.000 claims description 2
- 238000012005 ligant binding assay Methods 0.000 description 10
- 238000000034 method Methods 0.000 description 8
- 238000010586 diagram Methods 0.000 description 5
- 230000008901 benefit Effects 0.000 description 4
- 238000013507 mapping Methods 0.000 description 3
- 239000007787 solid Substances 0.000 description 3
- 238000013523 data management Methods 0.000 description 2
- 230000000694 effects Effects 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000638 solvent extraction Methods 0.000 description 2
- 230000003068 static effect Effects 0.000 description 2
- 101100498818 Arabidopsis thaliana DDR4 gene Proteins 0.000 description 1
- 102100036725 Epithelial discoidin domain-containing receptor 1 Human genes 0.000 description 1
- 101710131668 Epithelial discoidin domain-containing receptor 1 Proteins 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000008859 change Effects 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000003247 decreasing effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000007726 management method Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000037081 physical activity Effects 0.000 description 1
- 230000008569 process Effects 0.000 description 1
- 230000001360 synchronised effect Effects 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/0628—Interfaces specially adapted for storage systems making use of a particular technique
- G06F3/0655—Vertical data movement, i.e. input-output transfer; data movement between one or more hosts and one or more storage devices
-
- 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/0602—Interfaces specially adapted for storage systems specifically adapted to achieve a particular effect
- G06F3/0604—Improving or facilitating administration, e.g. storage management
-
- 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/061—Improving I/O performance
-
- 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/0629—Configuration or reconfiguration of storage systems
- G06F3/0631—Configuration or reconfiguration of storage systems by allocating resources to 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/0653—Monitoring storage devices or 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/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]
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1016—Performance improvement
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F2212/00—Indexing scheme relating to accessing, addressing or allocation within memory systems or architectures
- G06F2212/10—Providing a specific technical effect
- G06F2212/1041—Resource optimization
Abstract
本发明公开了一种数据存储设备,其包括存储器设备以及耦接到该存储器设备的控制器。该存储器设备包括多个超级设备。控制器被配置成为多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值,确定第一超级设备已经达到空闲空间阈值,并且在多个超级设备当中分配所有新的超级块,而不向第一超级设备分配任何新的超级块。按循环法将超级块分发或分配给每个低于空闲空间阈值的超级设备。
Description
相关申请的交叉引用
出于所有目的,本申请要求2021年8月25日提交的名称为“跨ZNS SSD中的超级设备的超级块分配(SUPER BLOCK ALLOCATION ACROSS SUPER DEVICE IN ZNS SSD)”的美国非临时申请17/412,151号的全部内容的权益并据此将这些内容以引用方式并入。
背景技术
技术领域
本公开的实施方案整体涉及具有分区命名空间(ZNS)架构的数据存储设备,诸如固态驱动器(SSD)。
相关领域的描述
ZNS SSD是支持仅顺序分区和分区随机写入区域(ZRWA)的一类SSD。在仅顺序分区ZNS SSD中,按顺序写入分区数据,而没有重写。然而,在ZRWA ZNS SSD中,随机写入分区且有重写。通常,ZNS SSD支持仅顺序分区。为了重写顺序分区,必须在再次写入分区之前对分区进行重置。分区重置是取消映射分区中的所有数据。
当数据存储设备支持多个活动分区时,应当将每个分区映射到属于不同超级设备的超级块(即,跨存储器设备的一个或多个管芯对块进行逻辑分组)以便最大程度地提高写入性能。例如,在包括4个超级设备和4个活动分区的数据存储设备中,应当将每个分区映射到每个超级设备中的一个超级块以最大程度地提高性能。此外,在开始写入相关分区之前,应当重置分区。可在对先前驻留在一个超级设备中的超级块中的分区进行重置之后,将该分区分配给另一个超级设备的另一个超级块。从而增加了该分区先前驻留在其中的该一个超级设备中的空闲空间,并且减少了该分区所被分配到的另一个超级设备中的空闲空间。取消分配不同SD的分区以及将分区重新分配给不同SD可能导致数据存储设备中的SD不平衡,从而导致写入性能和写入性能降低。
因此,在本领域中,需要改进跨数据存储设备的超级设备的超级块分配。
发明内容
本公开整体涉及具有分区命名空间(ZNS)架构的数据存储设备,诸如固态驱动器(SSD)。一种数据存储设备包括存储器设备以及耦接到该存储器设备的控制器。该存储器设备包括多个超级设备。控制器被配置成为多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值,确定第一超级设备已经达到空闲空间阈值,并且在多个超级设备当中分配所有新的超级块,而不向第一超级设备分配任何新的超级块。按循环法将超级块分发或分配给每个低于空闲空间阈值的超级设备。
在一个实施方案中,数据存储设备包括具有多个超级设备的存储器设备以及耦接到该存储器设备的控制器。控制器被配置成为多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值,确定多个超级设备中的第一超级设备已经达到空闲空间阈值,并且在多个超级设备当中分配所有新的超级块,而不向第一超级设备分配任何新的超级块。
在另一个实施方案中,数据存储设备包括具有多个超级设备的存储器设备以及耦接到该存储器设备的控制器。控制器被配置成基于可用空闲空间量向多个超级设备中的超级设备分配超级块,其中,超级块按循环法分配,并且其中,不将超级块分配给处于或高于空闲空间阈值的超级设备。
在另一个实施方案中,数据存储设备包括具有多个超级设备的存储器装置以及耦接到该存储器装置的控制器。控制器被配置成确定多个超级设备中的至少一个超级设备处于空闲空间阈值;向多个超级设备中的至少两个其它超级设备均匀地分配新的超级块;重置多个超级设备中的至少一个超级设备中的第一超级设备中的至少一个分区;并且向多个超级设备中的至少两个其它超级设备以及第一超级设备均匀地分配附加超级块。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据某些实施方案的存储系统的示意性框图,其中数据存储设备可用作主机设备的存储设备。
图2A示出根据某些实施方案的在存储设备中利用的分区命名空间。
图2B示出根据某些实施方案的图2A的存储设备的分区命名空间的状态图。
图3A示出根据某些实施方案的向图3B的多个超级设备中的超级设备的多个超级块中的超级块提供多个活动分区中的活动分区。
图3B示出根据某些实施方案的由闪存阵列管理器对多个超级设备的多个超级块进行映射。
图4示出根据某些实施方案的多个超级设备,每个超级设备具有多个超级块。
图5示出根据某些实施方案的超级设备。
图6是示出根据某些实施方案的将超级块分配给超级设备的方法的流程图。
图7是示出根据某些实施方案的将超级设备添加回到分配考虑的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想,在一个实施方案中公开的元件可有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及具有分区命名空间(ZNS)架构的数据存储设备,诸如固态驱动器(SSD)。一种数据存储设备包括存储器设备以及耦接到该存储器设备的控制器。该存储器设备包括多个超级设备。控制器被配置成为多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值,确定第一超级设备已经达到空闲空间阈值,并且在多个超级设备当中分配所有新的超级块,而不向第一超级设备分配任何新的超级块。按循环法将超级块分发或分配给每个低于空闲空间阈值的超级设备。
图1是根据某些实施方案的存储系统100的示意性框图,其中主机设备104与数据存储设备106通信。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器(NVM)110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
主机设备104可以向一个或多个存储设备(诸如数据存储设备106)存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备,或能够从数据存储设备发送或接收数据的其他设备。
数据存储设备106包括控制器108、NVM 110、功率源111、易失性存储器112、接口114和写缓冲器116。在一些示例中,为了清楚起见,数据存储设备106可以包括图1中未示出的附加部件。例如,数据存储设备106可以包括印刷电路板(PCB),数据存储设备106的部件机械地附接到该印刷电路板,并且该印刷电路板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因子包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、外围部件互连(PCI)、PCI扩展(PCI-X)、PCIExpress(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接或插入到连接器中)到主机设备104的母板。
接口114可以包括用于与主机设备104交换数据的数据总线和用于与主机设备104交换命令的控制总线中的一者或两者。接口114可以根据任何合适的协议工作。例如,接口114可以根据以下协议中的一个或多个协议来操作:高级技术附件(ATA)(例如,串行ATA(SATA)和并行ATA(PATA))、光纤信道协议(FCP)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、PCI和PCIe、非易失性存储器express(NVMe)、OpenCAPI、GenZ、高速缓存相干接口加速器(CCIX)、开放信道SSD(OCSSD)等。接口114(例如,数据总线、控制总线或两者)电连接到控制器108,从而提供主机设备104与控制器108之间的电连接,允许在主机设备104与控制器108之间交换数据。在一些示例中,接口114的电连接还可以允许数据存储设备106从主机设备104接收电力。例如,如图1所示,电源111可以经由接口114从主机设备104接收电力。
NVM 110可包括多个存储器设备或存储器单元。NVM 110可以被配置成存储和/或检索数据。例如,NVM 110的存储器单元可接收数据和来自控制器108的指示存储器单元存储该数据的消息。类似地,存储器单元可从控制器108接收指示存储器单元检索数据的消息。在一些示例中,存储器单元中的每个存储器单元可以被称为裸片。在一些示例中,NVM110可包括多个裸片(例如,多个存储器单元)。在一些示例中,每个存储器单元可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,每个存储器单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其他类型的非易失性存储器设备。
NVM 110可包括多个闪存存储器设备或存储器单元。NVM闪存存储器设备可包括基于NAND或NOR的闪存存储器设备,并且可基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NVM闪存存储器设备中,闪存存储器设备可被划分成多个裸片,其中多个裸片中的每个裸片包括多个物理或逻辑块,这些物理或逻辑块可被进一步划分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NVM单元。NVM单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NVM闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可在页面层级向NVM闪存存储器设备写入数据以及从其读取数据,以及在块层级从NVM闪存存储器设备擦除数据。
电源111可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是该等一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换言之,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
易失性存储器112可由控制器108用来存储信息。易失性存储器112可包括一个或多个易失性存储器设备。在一些示例中,控制器108可使用易失性存储器112作为高速缓存。例如,控制器108可将高速缓存的信息存储在易失性存储器112中,直到高速缓存的信息被写入到NVM 110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
控制器108可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM110并且监测数据存储命令的进度。控制器108可以确定存储系统100的至少一个操作特性,并且将该至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲器116中。
控制器108包括闪存阵列管理器(FAM)150,其中,FAM 150是闪存转换层(FTL)的一部分。在一些实施方案中,可将FTL耦接到控制器108,并且FAM 150在控制器108外部且包括在FTL中。FAM 150是将超级块(SB)簿记和分配给NVM 110的一个或多个超级设备(SD)的模块(例如,组件)。AN SD是NVM 110的子设备,其中,每个SD包括NVM 110的一组管芯。例如,如果SD具有约32个管芯的容量,则包括约64个管芯的NVM可包括2个SD。因此,数据存储设备106可包括多达NVM 110的容量所允许的SD数量。同样,SB是SD的每个管芯的一组块。FAM150还维持跨所有SD的空闲SB的列表。当图2A和图2B中示出的分区请求SB时,FAM 150为该分区分配来自特定SD的SB。
图2A示出根据某些实施方案的在数据存储设备200中使用的分区命名空间(ZNS)202视图。数据存储设备200可将ZNS202视图呈现给主机设备,诸如图1的主机设备104。数据存储设备200可以是图1的存储系统100的存储设备106。数据存储设备200可具有一个或多个ZNS202,并且每个ZNS202的大小可以不同。除该一个或多个分区命名空间202之外,数据存储设备200还可包括一个或多个常规命名空间。此外,ZNS202可以是用于SAS的分区块命令(ZBC)和/或用于SATA的分区设备ATA命令集(ZAC)。由于可能的逻辑与物理活动之间的关系,主机侧分区活动可与分区驱动器中的介质活动更直接地相关。
在数据存储设备200中,ZNS202是可被格式化成逻辑块使得容量被分成多个分区206a-206n(统称为分区206)的NVM的数量。NVM可以是图1的存储单元或NVM 110。分区206中的每个分区包括存储器单元或NVM 204的多个物理块或擦除块(未示出),并且这些擦除块中的每个擦除块与多个逻辑块(未示出)相关联。分区206中的每个分区的大小可与NVM或NAND设备的一个或多个擦除块的容量一致。当控制器208从诸如主机设备(未示出)或主机设备的提交队列接收命令时,控制器208可以从与ZNS202的多个擦除块(EB)相关联的多个逻辑块读取数据以及将数据写入该多个逻辑块。该逻辑块中的每个逻辑块与唯一LBA或扇区相关联。
在一个实施方案中,NVM 204是NAND设备。该NAND设备包括一个或多个管芯。该一个或多个裸片中的每个裸片包括一个或多个平面。该一个或多个平面中的每个平面包括一个或多个擦除块。该一个或多个擦除块中的每个擦除块包括一条或多条字线(例如,256条字线)。该一条或多条字线中的每条字线可以在一个或多个页面中寻址。例如,MLC NAND管芯可使用上页面和下页面来达到整个字线的每个单元中的两个位(例如,每页16KiB)。此外,可以以等于或小于完整页面的粒度访问每个页面。控制器可以用户数据粒度逻辑块地址(LBA)大小512字节频繁地访问NAND。因此,如在下文描述中所提及的,NAND位置等于512字节的粒度。因此,LBA大小为512字节并且MLC NAND的两个页面的页面大小为16KiB,这导致每个字线32个LBA。然而,NAND位置大小不旨在进行限制,并且仅用作示例。
当将数据写入擦除块时,在分区206内对应地更新一个或多个逻辑块,以跟踪数据在NVM 204内的位置。数据可一次写入一个分区206,直到分区206变满,或写入多个分区206,使得多个分区206可部分变满。类似地,当将数据写入到特定分区206时,该数据可按NAND位置的顺序、逐页或逐字线地一次一块地写入到多个擦除块,直到移动到相邻块(即,写入第一擦除块直到在移动到第二擦除块之前第一擦除块变满),或者可按NAND位置的顺序、逐页或逐字线地一次多块地写入到多个擦除块,来以平行的方式部分填充每个块(即,在写入到每个擦除块的第二NAND位置或页面之前写入每个擦除块的第一NAND位置或页面)。每个NAND位置的这种顺序编程是许多NAND EB的典型非限制性要求。
当控制器208选择将存储每个分区的数据的擦除块时,控制器208将能够在分区开放时间选择擦除块,或者该控制器可在达到填充该特定擦除块的第一个字线的需要时选择擦除块。当利用上述在开始下一个擦除块之前完全填充一个擦除块的方法时,这可能更加有差别。控制器208可使用时间差来即时选择更优化的擦除块。将哪个擦除块分配和指定给每个分区及其连续LBA的决定能够在控制器208内针对零个或多个并行分区一直发生。
分区206中的每个分区与分区起始逻辑块地址(ZSLBA)或分区起始扇区相关联。ZSLBA是分区206中的第一可用LBA。例如,第一分区206a与ZaSLBA相关联,第二分区206b与ZbSLBA相关联,第三分区206c与ZcSLBA相关联,第四分区206d与ZdSLBA相关联,并且第n分区206n(即最后一个分区)与ZnSLBA相关联。每个分区206由其ZSLBA标识,并且被配置成接收顺序写入(即,以接收写入命令的顺序来将数据写入NVM 110)。
当将数据写入分区206时,写入指针210被推进或更新以指向或指示分区206中的用于将数据写入的下一个可用块,以便跟踪下一个写入起始点(即,先前写入的完成点等于后续写入的起始点)。因此,写入指针210指示对分区206的后续写入将在何处开始。后续写入命令是“分区附加”命令,其中与该后续写入命令相关联的数据在写入指针210指示为下一个起始点的位置处被附加到分区206。分区206内的LBA的排序列表可被存储用于写入排序。每个分区206可以具有其自身的写入指针210。因此,当接收到写入命令时,分区由其ZSLBA标识,并且写入指针210确定在所识别的分区内数据的写入开始的位置。
图2B示出根据某些实施方案的图2A的数据存储设备200的ZNS202的状态图250。在状态图250中,每个分区可处于不同状态,诸如空状态、活动状态、满状态或脱机状态。当分区为空的时,该分区不含数据(即,分区中的任何擦除块当前均未存储数据),并且写入指针位于ZSLBA(即,WP=0)处。一旦向分区调度写入或由主机发出分区开放命令后,空分区将切换到开放和活动分区。分区管理(ZM)命令可用于在分区开放和分区关闭状态(都是活动状态)之间移动分区。如果分区是活动的,则该分区包括可写入的开放块,并且可向主机提供活动状态下的推荐时间的描述。控制器208包括ZM。分区元数据可存储在ZM和/或控制器208中。
术语“写入”包括当用户数据尚未填充所有可用NAND位置时,在擦除块中的0个或更多个NAND位置和/或擦除块中的部分填充NAND位置上编程用户数据。术语“写入”还可包括由于内部驱动器处理需要(因为误比特在开放擦除块上更快地累积而导致的开放块数据保持问题)而将分区移至满状态,数据存储设备200由于资源限制(像太多开放分区要跟踪或者已发现的缺陷状态等等)而关闭或填满分区,或者主机设备因为诸如没有更多数据要发送给驱动器、计算机关闭、主机上的错误处理、用于跟踪的有限主机资源等等问题而关闭分区。
活动分区可以是开放的或关闭的。开放分区是已准备好写入并具有当前已分配资源的空分区或部分填满分区。利用写入命令或分区附加命令从主机设备接收的数据可被编程到当前未填充先前数据的开放的擦除块。已关闭分区是当前未从主机持续不断地接收写入的空分区或部分填满分区。分区从开放状态移动到关闭状态允许控制器208将资源重新分配给其他任务。这些任务可包括但不限于其他开放的分区、其他常规的非分区区域、或其他控制器需要。
在开放分区和关闭分区中,写入指针指向分区中位于ZSLBA和分区的最后LBA的末端之间的某个位置(即,WP>0)。活动分区可根据由ZM进行的指定在开放和关闭状态之间切换,或者在将写入调度到分区时进行该切换。另外,ZM可重置活动分区以清除或擦除存储在分区中的数据,使得该分区切换回空分区。一旦活动分区已满,该分区就会切换到满状态。满的分区是完全填充有数据的分区,并且没有用于写入数据的更多可用扇区或LBA(即,WP=分区容量(ZCAP))。在满的分区中,写入指针指向该分区的可写入容量的末端。仍可执行满的分区中存储的数据的读取命令。
分区可具有任何总的容量,诸如256MiB或512MiB。然而,每个分区的一小部分可能无法访问以将数据写入,但仍可被读取,诸如每个分区的存储奇偶校验数据的部分和一个或多个被排除的擦除块。例如,如果分区206的总容量为512MiB,那么ZCAP可为470MiB,这是可用于将数据写入的容量,而42MiB不可用于写入数据。分区的可写入容量(ZCAP)等于或小于总分区存储容量。数据存储设备200可在分区重置时确定每个分区的ZCAP。例如,控制器208或ZM可确定每个分区的ZCAP。当分区被重置时,数据存储设备200可确定该分区的ZCAP。
ZM可重置满的分区,从而调度对存储在该分区中的数据的擦除,使得该分区切换回空分区。在重置满的分区时,尽管该分区可能标记为可供写入的空分区,但该分区的数据可能不被立即清除。但是,在切换到开放和活动分区之前,必须擦除重置的分区。可在ZM重置和ZM开放之间的任何时间擦除分区。在重置分区时,数据存储设备200可确定重置该分区的新ZCAP并更新分区元数据中的可写入ZCAP属性。脱机分区是无法将数据写入的分区。脱机分区可处于满状态、空状态或处于部分满状态而不处于活动状态。
由于重置分区会清除存储在分区中的所有数据或调度对存储在分区中的所有数据的擦除,因此消除了对各个擦除块进行垃圾回收的需要,从而改进了数据存储设备200的整体垃圾回收过程。数据存储设备200可标记一个或多个擦除块以用于擦除。当将要形成新分区并且数据存储设备200预计ZM开放时,则可擦除被标记用于擦除的一个或多个擦除块。数据存储设备200可进一步在擦除该擦除块时决定和创建该分区的物理支持。因此,一旦新分区被开放并且擦除块被选择以形成分区,该擦除块将被擦除。此外,每次重置分区时,可选择分区206的LBA和写入指针210的新顺序,从而使分区206能够容忍不按顺序接收命令。可任选地关闭写入指针210,使得命令可被写入为命令指示的任何起始LBA。
重新参考图2A,当主机设备104发送写入命令以向分区206写入数据时,控制器208拉入写入命令并将写入命令标识成对新打开分区206的写入。控制器208选择一组EB以存储与新打开分区206的写入命令相关联的数据,并且新打开分区206切换到活动分区206。该写入命令可以是用于写入新数据的命令,或者是将有效数据移动到另一个分区以用于垃圾回收目的的命令。控制器208被配置成从由主机设备填充的提交队列中DMA读取新命令。
在刚切换到活动分区206的空分区206中,因为写入指针210将与ZSLBA相关联的逻辑块指示为第一可用逻辑块,所以将数据指定给分区206和分区206的始于ZSLBA的一组相关联顺序LBA。该数据可被写入一个或多个擦除块或针对分区206的物理位置而已分配的NAND位置。在将与写入命令相关联的数据写入分区206之后,写入指针210被更新为指向可用于主机写入的下一个LBA(即,第一写入的完成点)。来自该主机写入命令的写入数据被顺序地编程到擦除块中被选择用于分区的物理支持的下一个可用NAND位置中。
例如,控制器208可接收对第三分区206c的第一写入命令,或第一分区附加命令。主机设备104按顺序识别分区206的哪个逻辑块用来写入与第一命令相关联的数据。然后将与第一命令相关联的数据写入第三分区206c中的如由写入指针210所指示的第一或下一个或多个可用LBA,并且写入指针210被推进或更新以指向可用于主机写入的下一个可用LBA(即,WP>0)。如果控制器208接收到对第三分区206c的第二写入命令,或第二分区附加命令,则将与第二写入命令相关联的数据写入第三分区206c中的由写入指针210识别的下一个或多个可用LBA。一旦将与第二命令相关联的数据写入第三分区206c,则写入指针210就再次推进或更新以指向可用于主机写入的下一个可用LBA。重置第三分区206c将写入指针210移动回到ZcSLBA(即,WP=0),并且该第三分区206c切换到空分区。
在本文的描述中,为了简洁明了,术语“擦除块”可称为“块”。
图3A示出根据某些实施方案的向图3B的多个超级设备354a-354d中的超级设备的多个超级块356a-356d中的超级块提供多个活动分区302a-302h中的活动分区。图3B示出根据某些实施方案的由FAM 352对多个超级设备354a-354d的多个超级块356a-356d进行映射。出于示例性目的,在本文中共同描述图3A和图3B。FAM 352可以是图1的FAM 150。应当理解,活动分区的数量、SD的数量和SB的数量并非旨在进行限制,而是提供可能的实施方案的示例。
FAM 352维持多个SD 354a-354d中的每个SD的多个SB 356a-356d的映射。当分区请求SB时,FAM 352为该分区分配SD的SB。多个SD 354a-354d中的每个SD由FAM 352按循环方式分配给活动分区。例如,第一分区302a与第一SD0 354a相关联,第二分区302b与第二SD1 354b相关联,第三分区302c与第三SD2 354c相关联,等等。
使用next_super_device_index参数完成由FAM 352进行的循环分配。通过next_super_device_index参数从相应SD分配下一个SB。最初,next_super_device_index参数被设置为第一SD0 354a并且在每次SB分配之后递增。例如,在将第一SD0 354a的第一SB 356a分配给第一分区302a之后,递增next_super_device_index参数,使得指针指向第二SD354b的第一SB 356a。
当next_super_device_index参数达到MAX_SUPER_DEVICES参数时,next_super_device_index参数被重置为0。MAX_SUPER_DEVICES参数是由FAM 352映射的SD的最大数量或NVM 110的SD的最大数量。参考图3B,MAX_SUPER_DEVICES参数等于4。以下一组逻辑语句描述将SD分配到每个活动分区。
图4示出根据某些实施方案的多个超级设备402a-402d,每个超级设备具有多个超级块406a-406n。应当理解,所描述的SB的数量和SD的数量并非旨在进行限制,而是提供可能的实施方案的示例。相反,SB的数量和SD的数量可取决于诸如图1的NVM 110之类的相关存储器设备的容量。多个SB 406a-406n中的每个SB的大小可设置成使得每个SB等于分区的大小。因此,出于示例性目的,SB和分区在本文中可互换使用。
包括数据的多个SD 402a-402d的SB或分区表示为被分配的超级块。否则,不包括数据的多个SD 402a-402d的SB或分区表示为空闲空间。可将包括数据的多个SB 406a-406n(例如,开放且活动的分区)分类为冷分区或热分区。可基于重写次数(即,需要重置)或分区的重置次数(即,重置计数)来归类或指定为冷分区或热分区。热分区是被更频繁地重写的分区,而冷分区是被较不频繁地重写的分区。如果SB包括1个以上的分区,则SB可包括仅冷分区、仅热分区、或冷分区和热分区两者。在一个示例中,以下逻辑语句可描述由诸如图1的控制器108之类的控制器对数据存储设备106的分区进行分类。
zone_reset_threshold是可基于诸如在启动数据存储设备106期间预先设置的值之类的静态值,或诸如基于每个分区的重置移动平均值的值之类的动态值的阈值重置值。当分区的重置次数大于zone_reset_threshold时,控制器108将该分区分类为热分区。然而,当分区的重置次数小于zone_reset_threshold时,控制器108将该分区分类为冷分区。
在数据储存设备106运行期间,控制器108可将冷分区的数据从一个SD移动到另一个SD,以便大体上均匀地跨多个SD分发冷分区。当冷分区的数据从一个位置移动到另一个位置时,分区计数(即,该分区的重置次数)随数据迁移。通过将冷分区的数据移动到不同SD的其它分区,能够有效地移动冷分区。在将冷分区的数据移动到不同的位置之后,对原始位置的冷分区进行重置,使得该分区成为空闲空间或可编程有新的数据(例如,新的主机数据或从不同位置移动的数据)。
此外,多个SD 402a-402d中的每个SD具有空闲空间阈值404。虽然多个SD 402a-402d中的每个SD的空闲空间阈值404被示出为相同的值,但是空闲空间阈值404可以是特定于SD的值,使得每个SD具有不同的空闲空间阈值404。空闲空间阈值404表示可被编程到SD的最大数据量或分区量,使得维持最小空闲空间量。例如,如果SD的容量是约256GB并且空闲空间阈值404是约202GB,则要维持的最小空闲空间量是约54GB。
将可被写入的SB视为是写入有效的SB,其中,诸如图1的控制器108之类的控制器可调度写入命令并且将数据编程到那些SB。当SD达到或超过空闲空间阈值404时,诸如图3B的FAM 352之类的FAM停止为活动分区请求分配SD。相反,从分配考虑中跳过或移除该SD。因此,从下一个符合条件的SD分配SB。例如,第一SD0 402a处于空闲空间阈值404,而第四SD3402d是最后被分配的SD。因此,当活动分区请求为该活动分区分配SB时,FAM 352跳过第一SD0 402a并且从第二SD1 402b分配SB,或者在另一个示例中,从未被排除在分配考虑之外的下一个SD分配SB。以下逻辑语句可描述在接收到分配请求时进行SB分配。
在诸如图1的数据存储设备106之类的数据存储设备的寿命期间,可通过分区重置命令来重置分区或SB。当重置分区或SB时,取消映射分区或SB的数据。在一个示例中,当重置包括有效数据的分区或SB时,可将该数据临时存储于易失性存储器或高速缓存器中并且在重置该分区或SB之后将其编程到不同分区或SB或相同分区或SB。因此,当SD的空闲空间因分区重置或诸如垃圾收集之类的另一种操作而改进(例如,增加),并且SD低于空闲空间阈值404时,将被排出在分配考虑之外的SD引入回到分配考虑中。此外,可将一个SB或分区的数据移动到另一个SB或分区以确保损耗分发均匀。在一些情况下,可将一个SB或分区的数据从一个SD移动到另一个SB或另一个SD的分区。
图5示出根据某些实施方案的超级设备500。超级设备500包括多个管芯502a-502n(统称为管芯502),其中,多个管芯502a-502n中的每个管芯包括第一平面504a和第二平面504b(统称为平面504)。每个平面504包括多个块506a-506n(统称为块506)。尽管在SD 500中示出32个管芯502,但可包括任何数量的管芯。
诸如图3B的第一SB 356a之类的超级块包括来自每个管芯502的每个平面504的块506。在一些示例中,超级块可包括来自每个管芯502的每个平面504的一个或多个块506。此外,在一些实施方案中,超级设备500的一个或多个管芯502可供应用于存储XOR或奇偶校验数据。在本文的描述中,出于示例性目的,SB和分区具有相同的容量并且可以可互换指代。
此外,在第一分区中按顺序从块到块写入数据,使得数据在将数据写入B1 506b之前写入B0 506a。数据也从分区按顺序写入分区,使得数据在将数据写入第二分区之前从第一分区写入。分区可具有任何可写入容量(ZCAP),诸如256MiB或512MiB,如上所讨论。多个分区中的每个分区可具有相同的分区容量。当诸如图1的数据存储设备106之类的数据存储设备接收到分区重置请求(或者在一些情况下,作为诸如垃圾收集之类的数据管理操作的一部分,生成分区重置请求)时,擦除分区容量大小的数据。换言之,除非整个分区被擦除或移动到分区空状态(即,分区空),否则无法擦除单独的块,如图2B所示。然而,如果数据存储设备106包括具有部分ZNS功能的非易失性存储器,则在非易失性存储器的具有ZNS功能的部分中从数据存储设备106中擦除分区容量大小的数据。从无ZNS功能的非易失性存储单元中可擦除块大小的数据。
此外,数据存储在NVM(诸如图1的NVM 110)的支持ZNS的部分中的位置被记录在第一逻辑到物理(L2P)表中作为易失性存储器单元(诸如易失性存储器单元112)中的LBA。数据存储在NVM(诸如图1的NVM 110)的不支持ZNS的部分中的位置被记录在第二L2P表中作为易失性存储器单元(诸如易失性存储器单元112)中的LBA。易失性存储器单元112可以是DRAM单元。此外,NVM 110可包括与易失性存储器单元112的第一L2P表匹配的第一L2P表以及与易失性存储器单元112的第二L2P表匹配的第二L2P表。更新NVM 110中的L2P表以匹配易失性存储器单元112的L2P表。
L2P表可包括指向数据在NVM 110内的每个物理位置的指针。数据的物理位置映射在逻辑阵列中,使得指针地址阵列包括从管芯映射到NAND位置的位置。在块中,指针总数量如下计算:256个WL*3个页面/WL*4个时隙/页面*1个指针/时隙=3,072个指针。在容量包括62个块的第一分区内,可存在190,464个指针(即,3,072个指针/块*62个块=190,464个指针)。每个指针包括利用易失性存储器112和/或NVM 110的可用存储的一定量的数据。
图6是示出根据某些实施方案的向诸如图4的第一SD0 402a之类的超级设备分配诸如图3B的第一SB 356a之类的超级块的方法600的流程图。方法600可由诸如图1的控制器108之类的控制器或诸如图1的FAM 150之类的FAM执行。出于示例性目的,可以参考图1的存储系统100的方面。出于示例性目的,SB存储单个分区的数据,使得SB容量和分区容量相等。然而,在其它实施方案中,SB可存储一个或多个分区的数据。
在框602处,控制器108接收空闲空间阈值,诸如图4的空闲空间阈值404。空闲空间阈值404可在诸如在上电序列期间之类的启动数据存储设备106期间预先设置,或由主机设备104通过发送到控制器108的命令或请求来设置。在框604处,控制器108接收向超级设备分配超级块的请求。活动分区可向控制器108发送获得其中一个SD的SB的请求。FAM 150可接收该请求并且确定为该活动分区分配哪个SD的SB。该分配包括一次一个地分配新的SB。
在框606处,FAM 150确定是否存在处于或高于空闲空间阈值404的任何SD。例如,图4的第一SD0 402a处于空闲空间阈值404。在框608处,FAM 150将处于或高于空闲空间阈值的一个或多个SD排除在分配考虑之外。当将SD排除在分配考虑之外时,FAM 150在活动分区的SB请求期间跳过该相关SD。例如,当将第一SD0 402a排除在分配考虑之外,而其它三个SD 402b、402c和402d仍然在分配考虑中时,FAM 150按循环方案从剩余的三个SD 402b、402c和402d分配SB。例如,FAM 150可从第二SD 402b分配SB,然后从第三SD 402c分配SB,然后从第四SD 402d分配SB,等等。为了使每个SD分配的SB的数量均匀,使得NVM 110的每个SD具有大体上相等数量或偶数数量的被分配的SB,在框610处,FAM 150从具有最多可用空闲空间的SD(例如,能够存储最多数据而不达到空闲空间阈值404的SD)分配SB。
在一个实施方案中,从SD分配SB包括按循环方案从每个SD分配新的SB。在另一个实施方案中,从SD分配SB包括从空闲空间量最大的SD分配新的SB。在一些实施方案中,从多个SD不均匀地分配或分发新的SB。在其它实施方案中,从多个SD随机分配或分发新的SB。在另外的实施方案中,从多个SD均匀地分配或分发新的SB。
图7是示出根据某些实施方案的将诸如图4的第一SD0 402a之类的超级设备添加回到分配考虑的方法700的流程图。方法700可由诸如图1的控制器108之类的控制器或诸如图1的FAM 150之类的FAM执行。出于示例性目的,可以参考图1的存储系统100的方面。出于示例性目的,SB存储单个分区的数据,使得SB容量和分区容量相等。然而,在其它实施方案中,SB可存储一个或多个分区的数据。
在框702处,控制器108接收空闲空间阈值,诸如图4的空闲空间阈值404。空闲空间阈值404可在诸如在上电序列期间之类的启动数据存储设备106期间预先设置,或由主机设备104通过发送到控制器108的命令或请求来设置。在框704处,FAM 150确定SD已经超过空闲空间阈值404。因为SD已经超过空闲空间阈值404,所以在框706处,FAM 150将该SD排除在分配考虑之外。将SD排除在分配考虑之外使得控制器108或FAM 150能够维持SD中或更确切地说每个SD中的最小空闲空间量。
在框708处,控制器108接收针对SD的SB的SB重置命令。SB重置命令可以是分区重置请求,其中,作为诸如垃圾收集之类的数据管理操作的一部分,取消映射、擦除或临时移除该分区的数据。在框710处,FAM 150确定针对SD的SB的SB重置命令是否针对已经被排除在分配考虑之外的SD。例如,SD可以是在图6的框608处被排除在分配考虑之外的SD。如果SB重置命令不是针对已经被排除在分配考虑之外的SD,则在框712处,重置该相关SB。
然而,如果SB重置命令是针对已经被排除在分配考虑之外的SD,则在框714处,FAM150或控制器108确定重置SB是否会导致SD不再超过空闲空间阈值。如果在框712处,重置SB不会导致SD不再超过空闲空间阈值,则在框712处重置SB并且仍然将SD排除在分配考虑之外。然而,如果相关SB被重置并且控制器108或FAM 150确定SD不再超过空闲空间阈值,则在框716处将相关SD添加回到分配考虑。
通过管理跨多个超级设备的超级块分配,可改进数据存储设备的写入性能并且可实现跨多个超级设备的均匀空闲空间。
在一个实施方案中,数据存储设备包括具有多个超级设备的存储器设备以及耦接到该存储器设备的控制器。控制器被配置成为多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值,确定多个超级设备中的第一超级设备已经达到空闲空间阈值,并且在多个超级设备当中分配所有新的超级块,而不向第一超级设备分配任何新的超级块。
每个新的超级块包括分区命名空间(ZNS)的至少一个分区。分配包括均匀地分发所有新的超级块。分配包括按循环法分发新的超级块。分配包括将新的超级块中的第一超级块分发到空闲空间量最大的超级设备。分配还包括一次一个地分发新的超级块。分配发生在空闲空间量最大的超级块上。分配还包括随机分发新的超级块。分配还包括不均匀地分发新的超级块。控制器还被配置成接收针对在第一超级设备中的至少一个分区的重置请求,使得第一超级设备在重置请求之后低于空闲空间阈值。控制器还被配置成响应于第一超级设备低于空闲空间阈值,向第一超级设备分配至少一个附加新的超级块。
在另一个实施方案中,数据存储设备包括具有多个超级设备的存储器设备以及耦接到该存储器设备的控制器。控制器被配置成基于可用空闲空间量向多个超级设备中的超级设备分配超级块,其中,超级块按循环法分配,并且其中,不将超级块分配给处于或高于空闲空间阈值的超级设备。
至少一个超级设备在分配之前具有超级块。超级块包含多个分区。多个分区包括一个或多个冷分区、一个或多个热分区或它们的组合。根据分区重置计数,将分区分类为热分区或冷分区。如果分区重置计数大于分区重置阈值,则分区是热分区。如果分区重置计数小于分区重置阈值,则分区是冷分区。可将数据从一个超级块中的分区移动到另一个超级块中的分区,以确保损耗分发均匀。可将所移动的数据从一个超级设备移动到另一个超级设备。
在另一个实施方案中,数据存储设备包括具有多个超级设备的存储器装置以及耦接到该存储器装置的控制器。控制器被配置成确定多个超级设备中的至少一个超级设备处于空闲空间阈值;向多个超级设备中的至少两个其它超级设备均匀地分配新的超级块;重置多个超级设备中的至少一个超级设备中的第一超级设备中的至少一个分区;并且向多个超级设备中的至少两个其它超级设备以及第一超级设备均匀地分配附加超级块。
每个超级块具有至少一个分区,并且其中,每个超级块可包括一个或多个冷分区、一个或多个热分区、空闲空间或它们的组合。控制器被配置成确保大体上均匀地跨多个超级设备分发冷分区。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,包括:
存储器设备,所述存储器设备具有多个超级设备;和
控制器,所述控制器耦接到所述存储器设备,所述控制器被配置成:
为所述多个超级设备中的每个超级设备的空闲空间量设置空闲空间阈值;
确定所述多个超级设备中的第一超级设备已经达到所述空闲空间阈值;并且
在所述多个超级设备当中分配所有新的超级块,而不向所述第一超级设备分配任何新的超级块。
2.根据权利要求1所述的数据存储设备,其中,每个新的超级块包括分区命名空间(ZNS)的至少一个分区。
3.根据权利要求1所述的数据存储设备,其中,所述分配包括均匀地分发所有新的超级块。
4.根据权利要求1所述的数据存储设备,其中,分配包括按循环法分发新的超级块。
5.根据权利要求1所述的数据存储设备,其中,分配包括将所述新的超级块中的第一超级块分发到空闲空间量最大的超级设备。
6.根据权利要求1所述的数据存储设备,其中,分配还包括一次一个地分发新的超级块,并且其中,所述分发发生在空闲空间量最大的超级块上。
7.根据权利要求1所述的数据存储设备,其中,分配还包括随机分发所述新的超级块。
8.根据权利要求1所述的数据存储设备,其中,分配还包括不均匀地分发所述新的超级块。
9.根据权利要求1所述的数据存储设备,其中,所述控制器还被配置成接收针对在所述第一超级设备中的至少一个分区的重置请求,使得所述第一超级设备在所述重置请求之后低于所述空闲空间阈值。
10.根据权利要求9所述的数据存储设备,还包括:响应于所述第一超级设备低于所述空闲空间阈值,向所述第一超级设备分配至少一个附加新的超级块。
11.一种数据存储设备,包括:
存储器设备,所述存储器设备具有多个超级设备;和
控制器,所述控制器耦接到所述存储器设备,所述控制器被配置成:
基于可用空闲空间量向所述多个超级设备中的超级设备分配超级块,其中,所述超级块按循环法分配,并且其中,不将所述超级块分配给处于或高于空闲空间阈值的超级设备。
12.根据权利要求11所述的数据存储设备,其中,至少一个超级设备在分配之前具有超级块,并且其中,所述超级块包含多个分区。
13.根据权利要求12所述的数据存储设备,其中,所述多个分区包括一个或多个冷分区、一个或多个热分区或它们的组合。
14.根据权利要求13所述的数据存储设备,其中,根据分区重置计数将分区分类为热分区或冷分区。
15.根据权利要求14所述的数据存储设备,其中,如果所述分区重置计数大于分区重置阈值,则分区是热分区,并且其中,如果所述分区重置计数小于所述分区重置阈值,则分区是冷分区。
16.根据权利要求15所述的数据存储设备,其中,可将数据从一个超级块中的分区移动到另一个超级块中的分区,以确保损耗分发均匀。
17.根据权利要求16所述的数据存储设备,其中,可将所移动的数据从一个超级设备移动到另一个超级设备。
18.一种数据存储设备,包括:
存储器装置,所述存储器装置包括多个超级设备;和
控制器,所述控制器耦接到所述存储器装置,所述控制器被配置成:
确定所述多个超级设备中的至少一个超级设备处于空闲空间阈值;
将新的超级块均匀地分配给所述多个超级设备中的至少两个其它超级设备;
重置所述多个超级设备中的所述至少一个超级设备中的第一超级设备中的至少一个分区;并且
将附加超级块均匀地分配给所述多个超级设备中的所述至少两个其它超级设备以及所述第一超级设备。
19.根据权利要求18所述的数据存储设备,其中,每个超级块具有至少一个分区,并且其中,每个超级块可包括一个或多个冷分区、一个或多个热分区、空闲空间或它们的组合。
20.根据权利要求18所述的数据存储设备,其中,所述控制器被配置成确保大体上均匀地跨所述多个超级设备分发冷分区。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/412,151 US20230075329A1 (en) | 2021-08-25 | 2021-08-25 | Super Block Allocation Across Super Device In ZNS SSD |
US17/412,151 | 2021-08-25 | ||
PCT/US2022/027973 WO2023027783A1 (en) | 2021-08-25 | 2022-05-06 | Super block allocation across super device in zns ssd |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117616377A true CN117616377A (zh) | 2024-02-27 |
Family
ID=85322066
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280048925.6A Pending CN117616377A (zh) | 2021-08-25 | 2022-05-06 | 跨zns ssd中的超级设备的超级块分配 |
Country Status (4)
Country | Link |
---|---|
US (1) | US20230075329A1 (zh) |
KR (1) | KR20240017956A (zh) |
CN (1) | CN117616377A (zh) |
WO (1) | WO2023027783A1 (zh) |
Families Citing this family (1)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11749335B2 (en) * | 2020-11-03 | 2023-09-05 | Jianzhong Bi | Host and its memory module and memory controller |
Family Cites Families (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7117304B2 (en) * | 2003-06-03 | 2006-10-03 | Sun Microsystems, Inc. | System and method for determining a file system layout |
US7886118B2 (en) * | 2007-01-04 | 2011-02-08 | International Business Machines Corporation | Detecting illegal reuse of memory with low resource impact |
US8627065B2 (en) * | 2010-11-09 | 2014-01-07 | Cleversafe, Inc. | Validating a certificate chain in a dispersed storage network |
US8762625B2 (en) * | 2011-04-14 | 2014-06-24 | Apple Inc. | Stochastic block allocation for improved wear leveling |
CN105701019A (zh) * | 2014-11-25 | 2016-06-22 | 阿里巴巴集团控股有限公司 | 一种内存管理方法以及装置 |
US9823875B2 (en) * | 2015-08-31 | 2017-11-21 | LinkedIn Coporation | Transparent hybrid data storage |
US10409720B2 (en) * | 2017-06-12 | 2019-09-10 | Western Digital Technologies, Inc. | System and method of direct write and mapping of data in a non-volatile memory having multiple sub-drives |
US10613787B2 (en) * | 2018-01-31 | 2020-04-07 | EMC IP Holding Company LLC | Techniques for rebalancing storage between subspaces |
US20200089407A1 (en) * | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
-
2021
- 2021-08-25 US US17/412,151 patent/US20230075329A1/en active Pending
-
2022
- 2022-05-06 CN CN202280048925.6A patent/CN117616377A/zh active Pending
- 2022-05-06 KR KR1020247000921A patent/KR20240017956A/ko unknown
- 2022-05-06 WO PCT/US2022/027973 patent/WO2023027783A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
WO2023027783A1 (en) | 2023-03-02 |
US20230075329A1 (en) | 2023-03-09 |
KR20240017956A (ko) | 2024-02-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126378B1 (en) | Rate limit on the transitions of zones to open | |
KR101908581B1 (ko) | 저장 디바이스들에서의 웨어 레벨링 | |
CN113196226A (zh) | 固态驱动器中的分区命名空间 | |
KR101324688B1 (ko) | 영구 가비지 컬렉션을 갖는 메모리 시스템 | |
US11599304B2 (en) | Data aggregation in ZNS drive | |
CN108228473B (zh) | 通过动态地传送存储器范围分配的负载平衡的方法及系统 | |
CN113179658A (zh) | 非顺序分区命名空间 | |
CN113168374A (zh) | 写入命令在分区命名空间中的保持 | |
CN114730282A (zh) | Zns奇偶校验交换到dram | |
CN117043753A (zh) | Zns设备中的不同写入优先级 | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
US11960753B2 (en) | Solution for super device imbalance in ZNS SSD | |
US11966618B2 (en) | Purposeful super device imbalance for ZNS SSD efficiency | |
KR102656959B1 (ko) | 존 구획 네임스페이스를 갖는 호스트 관리 하드웨어 압축 | |
CN117616377A (zh) | 跨zns ssd中的超级设备的超级块分配 | |
CN114730250A (zh) | 根据存储设备中的分区对读取命令加权 | |
US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
US11687263B2 (en) | Full die recovery in ZNS SSD | |
US11537293B2 (en) | Wear leveling methods for zoned namespace solid state drive | |
US20220391115A1 (en) | Dissimilar Write Prioritization in ZNS Devices | |
CN116897341A (zh) | 隐含流 | |
CN114730291A (zh) | 具有分区的ssd的数据停放 | |
US11640254B2 (en) | Controlled imbalance in super block allocation in ZNS SSD | |
CN113744783A (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
CN114746835A (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 |