CN117043753A - Zns设备中的不同写入优先级 - Google Patents
Zns设备中的不同写入优先级 Download PDFInfo
- Publication number
- CN117043753A CN117043753A CN202280016570.2A CN202280016570A CN117043753A CN 117043753 A CN117043753 A CN 117043753A CN 202280016570 A CN202280016570 A CN 202280016570A CN 117043753 A CN117043753 A CN 117043753A
- Authority
- CN
- China
- Prior art keywords
- partition
- command
- storage device
- data storage
- controller
- 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
- 238000005192 partition Methods 0.000 claims abstract description 348
- 238000013500 data storage Methods 0.000 claims abstract description 74
- 238000000034 method Methods 0.000 claims description 19
- 238000011156 evaluation Methods 0.000 claims description 5
- 230000000694 effects Effects 0.000 claims description 3
- 238000013519 translation Methods 0.000 claims description 3
- 238000012005 ligant binding assay Methods 0.000 description 16
- 238000010586 diagram Methods 0.000 description 8
- 230000008901 benefit Effects 0.000 description 4
- 238000007726 management method Methods 0.000 description 3
- 238000012545 processing Methods 0.000 description 3
- 238000012937 correction Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000000926 separation method Methods 0.000 description 2
- 238000013403 standard screening design Methods 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
- 238000009825 accumulation Methods 0.000 description 1
- 239000003990 capacitor Substances 0.000 description 1
- 230000001427 coherent effect Effects 0.000 description 1
- 230000007547 defect Effects 0.000 description 1
- 230000001419 dependent effect Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000000977 initiatory effect Effects 0.000 description 1
- 230000007774 longterm Effects 0.000 description 1
- 230000014759 maintenance of location Effects 0.000 description 1
- 238000013507 mapping Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 230000003068 static effect Effects 0.000 description 1
- 230000002459 sustained effect Effects 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
- 230000001960 triggered 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/0638—Organizing or formatting or addressing of data
- G06F3/064—Management of blocks
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0616—Improving the reliability of storage systems in relation to life time, e.g. increasing Mean Time Between Failures [MTBF]
-
- 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/0614—Improving the reliability of storage systems
- G06F3/0619—Improving the reliability of storage systems in relation to data integrity, e.g. data losses, bit errors
-
- 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/0635—Configuration or reconfiguration of storage systems by changing the path, e.g. traffic rerouting, path reconfiguration
-
- 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/0638—Organizing or formatting or addressing of data
- G06F3/0644—Management of space entities, e.g. partitions, extents, pools
-
- 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
- G06F3/0659—Command handling arrangements, e.g. command buffers, queues, command scheduling
-
- 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)
- Computer Security & Cryptography (AREA)
- Computer Networks & Wireless Communication (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开一般涉及以确保存储器设备存储位置的基本均匀的工作负载的方式在数据存储设备中创建新的分区。当在分区命名空间(ZNS)***中接收到分区开放命令时,不是随机地选择未开放分区,而是可以基于存储位置工作负载来对分区进行分类,使得开放的任何新分区利用最少利用的存储位置。这样做时,通常实现存储器设备存储位置的均匀工作负载。
Description
相关申请的交叉引用
本申请要求2021年6月3日提交的美国申请号17/338,464的优先权,该美国申请转让给本文的受让人,并且全文以引用方式并入本文。
背景技术
技术领域
本公开的实施方案一般涉及分区命名空间(ZNS)设备中的管芯的有效利用。
相关领域的描述
在数据存储设备中,跨物理块形成逻辑块以在顺序执行期间提高硬件(HW)工作负载效率。在ZNS设备中,逻辑块并非跨越整个管芯集合而形成,而是逻辑区本身可为单个物理块或几个物理块,不同于完全成熟的交错。多个这样的较小逻辑块构成ZNS设备内的分区命名空间。ZNS设备中的分区命名空间有助于数据分离,但如果并非并联使用所有管芯/闪存接口模块(FIM),则可影响性能。
主机设备通常具有对数据存储设备的实际控制。通常,主机设备选择NVMe集/耐久性组用于分区创建(即,分区开放和分区附加)。然而,在NVMe集/耐久性组内,主机设备可能不知道数据存储设备的物理资源(诸如管芯、闪存通道)和其他存储特定资源(诸如奇偶校验引擎和高速缓存缓冲器)上的工作负载。
另外,在典型的ZNS***中,数据存储设备可以根据提交队列来作用于分区命令,并且可能不能根据数据存储设备本身的状态来偏置分区命令。根据数据存储设备状态来偏置分区命令可以优化资源利用,从而提高***的服务质量(QoS)。
因此,在本领域中需要有效地利用数据存储设备资源,同时维持ZNS的数据分离益处。
发明内容
本公开一般涉及以确保存储器设备存储位置的基本均匀的工作负载的方式在数据存储设备中创建新的分区。当在分区命名空间(ZNS)***中接收到分区开放命令时,不是随机地选择未开放分区,而是可以基于存储位置工作负载来对分区进行分类,使得开放的任何新分区利用最少利用的存储位置。这样做时,通常实现存储器设备存储位置的均匀工作负载。
在一个实施方案中,一种数据存储设备包括:存储器设备;和耦接到存储器设备的控制器,其中该控制器被配置成:接收分区开放命令;以及从存储器设备的第一物理块创建分区,其中所创建的分区对应于已在存储器设备中接收到最少工作负载的物理块。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和耦接到存储器设备的控制器,其中该控制器被配置成:评估在提交队列中接收到的多个命令;确定多个命令中的命令是分区开放命令;评估存储器设备的后端以确定存储器设备的可用管芯的工作负载;基于对存储器设备的后端的评估来开放新的分区;将与分区开放命令相关联的数据路由到新的分区。
在另一个实施方案中,一种数据存储设备包括:存储器装置;耦接到存储器装置的控制器,其中该控制器被配置成:接收分区开放命令;确定存储器装置的多个后端单元对于分区开放是符合条件的并且在后端单元中具有相同量的工作负载;确定多个后端单元中的第一后端单元与多个后端单元中符合条件的剩余后端单元相比具有较低数量的编程-擦除周期;以及在第一后端单元中开放新的分区。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据一个实施方案的存储***的示意框图。
图2A示出了根据一个实施方案的在存储设备中利用的分区命名空间(ZNS)。
图2B示出了根据一个实施方案的图2A的存储设备的ZNS的状态图。
图3示出了根据一个实施方案的ZNS***中的NVMe集/耐久性组。
图4是示出了根据一个实施方案的用于对到分区中的写入进行不同优先级排序的FTL流的流程图。
图5是示出了确保ZNS设备的有效耗损均衡的方法的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开一般涉及以确保存储器设备存储位置的基本均匀的工作负载的方式在数据存储设备中创建新的分区。当在分区命名空间(ZNS)***中接收到分区开放命令时,不是随机地选择未开放分区,而是可以基于存储位置工作负载来对分区进行分类,使得开放的任何新分区利用最少利用的存储位置。这样做时,通常实现存储器设备存储位置的均匀工作负载。
图1是示出根据本公开的一种或多种技术的存储***100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的非易失性存储器110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储***100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储***100可以包括多个数据存储设备106,其被配置为共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储***100包括主机设备104,该主机设备可以向一个或多个存储设备诸如数据存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
数据存储设备106包括控制器108、非易失性存储器(NVM)110、电源111、易失性存储器112和接口114。控制器108包括内部存储器120或缓冲器。在一些示例中,为了清楚起见,数据存储设备106可以包括图1中未示出的附加部件。例如,数据存储设备106可以包括印刷板(PB),数据存储设备106的部件机械地附接到该印刷板,并且该印刷板包括电互连数据存储设备106的部件等的导电迹线。在一些示例中,数据存储设备106的物理尺寸和连接器配置可以符合一个或多个标准形状因数。一些示例性标准形状因数包括但不限于3.5”数据存储设备(例如,HDD或SSD)、2.5”数据存储设备、1.8”数据存储设备、***部件互连(PCI)、PCI扩展(PCI-X)、PCI Express(PCIe)(例如,PCIe x1、x4、x8、x16、PCIe Mini卡、MiniPCI等)。在一些示例中,数据存储设备106可以直接耦接(例如,直接焊接)到主机设备104的母板。
数据存储设备106的接口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接收电力。
数据存储设备106包括NVM 110,其可包括多个介质单元或存储器设备。NVM 110可以被配置成存储和/或检索数据。例如,NVM 110的介质单元可接收数据并且从控制器108接收指示存储器设备存储数据的消息。类似地,NVM 110的介质单元可从控制器108接收指示存储器设备检索数据的消息。在一些示例中,介质单元中的每个介质单元可以被称为管芯。在一些示例中,单个物理芯片可以包括多个管芯(即,多个存储器设备)。在一些示例中,每个存储器设备可以被配置成存储相对大量的数据(例如,128MB、256MB、512MB、1GB、2GB、4GB、8GB、16GB、32GB、64GB、128GB、256GB、512GB、1TB等)。
在一些示例中,NVM 110的每个介质单元可以包括任何类型的非易失性存储器设备,诸如闪存存储器设备、相变存储器(PCM)设备、电阻随机存取存储器(ReRAM)设备、磁阻随机存取存储器(MRAM)设备、铁电随机存取存储器(F-RAM)、全息存储器设备、以及任何其他类型的非易失性存储器设备。
NVM 110可以包括多个闪存存储器设备。闪存存储器设备可以包括基于NAND或NOR的闪存存储器设备,并且可以基于包含在用于每个闪存存储器单元的晶体管的浮栅中的电荷来存储数据。在NAND闪存存储器设备中,闪存存储器设备可以被分成多个块,这些块可以被分成多个页面。特定存储器设备内的多个块中的每个块可以包括多个NAND单元。NAND单元的行可以使用字线来电连接以限定多个页面中的页面。多个页面中的每个页面中的相应单元可以电连接到相应位线。此外,NAND闪存存储器设备可以是2D或3D设备,并且可以是单级单元(SLC)、多级单元(MLC)、三级单元(TLC)或四级单元(QLC)。控制器108可在页面层级向NAND闪存存储器设备写入数据以及从其读取数据,以及在块层级从NAND闪存存储器设备擦除数据。
数据存储设备106包括电源111,其可以向数据存储设备106的一个或多个部件提供电力。当以标准模式操作时,电源111可以使用由外部设备诸如主机设备104提供的电力向一个或多个部件供电。例如,电源111可以使用经由接口114从主机设备104接收的电力向一个或多个部件供电。在一些示例中,电源111可以包括一个或多个电力存储部件,其被配置成当以关闭模式操作时向一个或多个部件供电,诸如在停止从外部设备接收电力的情况下。以这种方式,电源111可以用作机载备用电源。一个或多个电力存储部件的一些示例包括但不限于电容器、超级电容器、电池等。在一些示例中,可由一个或多个电力存储部件存储的电量可以是一个或多个电力存储部件的成本和/或尺寸(例如,面积/体积)的函数。换言之,随着由一个或多个电力存储部件存储的电量增加,一个或多个电力存储部件的成本和/或尺寸也增加。
数据存储设备106还包括易失性存储器112,其可以由控制器108用来存储信息。易失性存储器112可以包括一个或多个易失性存储器设备。在一些示例中,控制器108可以使用易失性存储器112作为高速缓存。例如,控制器108可以将高速缓存的信息存储在易失性存储器112中,直到高速缓存的信息被写入非易失性存储器110。如图1所示,易失性存储器112可以消耗从电源111接收的电力。易失性存储器112的示例包括但不限于随机存取存储器(RAM)、动态随机存取存储器(DRAM)、静态RAM(SRAM)和同步动态RAM(SDRAM(例如,DDR1、DDR2、DDR3、DDR3L、LPDDR3、DDR4、LPDDR4等))。
数据存储设备106包括控制器108,其可以管理数据存储设备106的一个或多个操作。例如,控制器108可以管理从NVM 110读取数据和/或将数据写入该NVM。在一些实施方案中,当数据存储设备106从主机设备104接收写入命令时,控制器108可以发起数据存储命令以将数据存储到该NVM 110并且监测数据存储命令的进度。控制器108可以确定存储***100的至少一个操作特性,并且将至少一个操作特性存储到该NVM 110。在一些实施方案中,当数据存储设备106从主机设备104接收到写入命令时,控制器108在将数据发送至NVM 110之前将与写入命令相关联的数据暂时存储在内部存储器120中。
图2A示出了根据一个实施方案的在存储设备200中利用的分区命名空间(ZNS)202视图。存储设备200可将ZNS202视图呈现给主机设备。图2B示出了根据一个实施方案的存储设备200的ZNS202的状态图250。存储设备200可以是图1的存储***100的数据存储设备106。存储设备200可具有一个或多个ZNS202,并且每个ZNS202可具有不同的大小。除该一个或多个ZNS202之外,存储设备200还可包括一个或多个常规命名空间。此外,ZNS202可以是用于SAS的分区块命令(ZBC)和/或用于SATA的分区设备ATA命令集(ZAC)。
在存储设备200中,ZNS202是可被格式化成逻辑块使得容量被分成多个分区206a-206n(统称为分区206)的NVM的数量。分区206中的每个分区包括介质单元或NVM 204的多个物理块或擦除块(现在示出),并且该擦除块中的每个擦除块与多个逻辑块(未示出)相关联。当控制器208从诸如主机设备(未示出)或主机设备的提交队列接收命令时,控制器208可以从与ZNS202的多个擦除块相关联的多个逻辑块读取数据以及将数据写入该多个逻辑块。该逻辑块中的每个逻辑块与唯一LBA或扇区相关联。
在一个实施方案中,NVM 204为NAND器件。该NAND器件包括一个或多个管芯。该一个或多个管芯中的每个管芯包括一个或多个平面。该一个或多个平面中的每个平面包括一个或多个擦除块。该一个或多个擦除块中的每个擦除块包括一条或多条字线(例如,256条字线)。该一条或多条字线中的每条字线可以在一个或多个页面中寻址。例如,MLC NAND管芯可使用上页面和下页面来达到整个字线的每个单元中的两个位(例如,每页16kB)。此外,可以以等于或小于完整页面的粒度访问每个页面。控制器可以频繁地访问用户数据粒度LBA大小为512字节的NAND。因此,如在下文描述中所提及的,NAND位置等于512字节的粒度。因此,MCL NAND的两个页面的LBA大小为512字节并且页面大小为16kB,这将导致大约每个字线16个NAND位置。然而,NAND位置大小不旨在进行限制,并且仅用作示例。
当将数据写入擦除块时,在分区206内对应地更新一个或多个逻辑块,以跟踪数据在NVM 204内的位置。数据可一次写入一个分区206,直到分区206变满,或写入多个分区206,使得多个分区206可部分变满。类似地,当将数据写入特定分区206时,数据可按NAND位置的顺序、逐页或逐字线地一次一个块地写入多个擦除块,直到移动到相邻块(即,写入第一擦除块直到在移动到第二擦除块之前第一擦除块变满),或者可按NAND位置的顺序、逐页或逐字线地一次多个块地写入多个擦除块,来以更平行的方式部分填充每个块(即,在写入每个擦除块的第二NAND位置或页面之前写入每个擦除块的第一NAND位置或页面)。
分区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的ZNS202的状态图250。在状态图250中,每个分区可处于不同状态,诸如空状态、活动状态、满的状态或脱机状态。当分区为空的时,该分区不含数据(即,分区中的任何擦除块当前均未存储数据),并且写入指针位于ZSLBA(即,WP=0)处。一旦向分区调度写入或由主机发出分区开放命令后,空分区将切换到开放和活动分区。分区管理(ZM)命令可用于在分区开放和分区关闭状态(都是活动状态)之间移动分区。如果分区是活动的,则该分区包括可写入的开放块,并且可向主机提供活动状态下的推荐时间的描述。控制器可包括ZM。
术语“写入”包括当用户数据未填充所有可用字线时,在擦除块中的0个或更多字线、擦除和/或擦除块中的部分填充字线上编程用户数据。术语“写入”还可包括由于以下原因而关闭分区:内部驱动器处理需要(因为误比特在开放的擦除块上更快地累积而导致的开放块数据保持问题),存储设备200由于资源限制(像太多开放分区要跟踪或者已发现的缺陷状态等等)而关闭分区,或者主机设备因为诸如没有更多数据要发送给驱动器、计算机关闭、主机上的错误处理、用于跟踪的有限主机资源等等问题而关闭分区。
活动分区可以是开放的或关闭的。开放分区是已准备好写入并具有当前已分配资源的空分区或部分填满分区。利用写入命令或分区附加命令从主机设备接收的数据可被编程到当前未填充先前数据的开放的擦除块。从主机设备中拉入的新数据或正在重定位的有效数据可以写入开放分区。有效数据可从一个分区(例如,第一分区202a)移动到另一个分区(例如,第三分区202c)以用于垃圾回收目的。已关闭分区是当前未从主机持续不断地接收写入的空分区或部分填满分区。分区从开放状态移动到关闭状态允许控制器208将资源重新分配给其他任务。这些任务可包括但不限于其他开放的分区、其他常规的非分区区域、或其他控制器需要。
在开放分区和关闭分区中,写入指针指向分区中位于ZSLBA和分区的最后LBA的末端之间的某个位置(即,WP>0)。活动分区可根据由ZM进行的指定在开放和关闭状态之间切换,或者在将写入调度到分区时进行该切换。另外,ZM可重置活动分区以清除或擦除存储在分区中的数据,使得该分区切换回空分区。一旦活动分区已满,该分区就会切换到满的状态。满的分区是完全填充有数据的分区,并且没有用于写入数据的更多可用块(即,WP=分区容量(ZCAP))。仍可执行满的分区中存储的数据的读取命令。
ZM可重置满的分区,从而调度对存储在该分区中的数据的擦除,使得该分区切换回空分区。在重置满的分区时,尽管该分区可能标记为可供写入的空分区,但该分区的数据可能不被立即清除。但是,在切换到活动分区之前,必须擦除重置的分区。可在ZM重置和ZM开放之间的任何时间擦除分区。脱机分区是无法将数据写入的分区。脱机分区可处于满的状态、空状态或处于部分满的状态而不处于活动状态。
由于重置分区会清除存储在分区中的数据或调度对存储在分区中的数据的擦除,因此消除了对各个擦除块进行垃圾回收的需要,从而改善了存储设备200的整体垃圾回收过程。存储设备200可标记一个或多个擦除块以用于擦除。当将要形成新分区并且存储设备200预计ZM开放时,则可擦除被标记用于擦除的一个或多个擦除块。存储设备200还可在擦除该擦除块时决定和创建该分区的物理支持。因此,一旦新分区被开放并且擦除块被选择以形成分区,该擦除块将被擦除。此外,每次重置分区时,可选择分区206的LBA和写入指针210的新顺序,从而使分区206能够容忍不按顺序接收命令。可任选地关闭写入指针210,使得命令可被写入为命令指示的任何起始LBA。
重新参见图2A,当控制器208发起或拉入写入命令时,控制器208可选择空分区206以将与命令相关联的数据写入,并且空分区206切换到活动分区206。如本文所用,控制器208发起或拉入写入命令包括接收写入命令或直接存储器访问(DMA)读取该写入命令。该写入命令可以是用于写入新数据的命令,或者是将有效数据移动到另一个分区以用于垃圾回收目的的命令。控制器208被配置成从由主机设备填充的提交队列中DMA读取或拉入新命令。
在刚切换到活动分区206的空分区206中,数据在ZSLBA处开始被写入分区206,因为写入指针210将与ZSLBA相关联的逻辑块指示为第一可用逻辑块。该数据可被写入一个或多个擦除块或针对分区206的物理位置而已分配的NAND位置。在将与写入命令相关联的数据写入分区206之后,写入指针210被更新为指向分区206中的下一个可用块,以跟踪下一个写入起始点(即,第一写入的完成点)。另选地,控制器208可选择用于将数据写入的活动分区。在活动分区中,将数据写入由写入指针210指示为下一个可用块的逻辑块。
在一些实施方案中,NAND位置可等于字线。在此类实施方案中,如果写入命令小于字线,则控制器可任选地在对由多个写入命令构成的整个字线进行编程之前,在另一个存储器位置诸如DRAM或SRAM中聚集若干写入命令。长于字线的写入命令将能够编程完整的字线并用一些数据填充完整的字线,并且超出字线的多余数据将用于填充下一个字线。然而,NAND位置不限于等于字线,并且可具有比字线更大或更小的大小。例如,在一些实施方案中,NAND位置可等于页面的大小。
例如,控制器208可接收、拉入或DMA读取第一写入命令或第一分区附加命令到第三分区206c。主机按顺序识别分区206的哪个逻辑块用来写入与第一命令相关联的数据。然后将与第一命令相关联的数据写入第三分区206c中的如由写入指针210所指示的第一或下一个或多个可用LBA,并且写入指针210被推进或更新以指向可用于主机写入的下一个可用LBA(即,WP>0)。如果控制器208接收第二写入命令或者将第二写入命令拉入到第三分区206c,则与第二写入命令相关联的数据被写入第三分区206c的由写入指针210识别的下一个或多个可用LBA。一旦将与第二命令相关联的数据写入第三分区206c,则写入指针210就再次推进或更新以指向可用于主机写入的下一个可用LBA。重置第三分区206c将写入指针210移动回到ZcSLBA(即,WP=0),并且该第三分区406c切换到空分区。
图3示出了根据一个实施方案的ZNS***中的NVMe集/耐久性组。如图3所示,多个应用302a-302c通过相应的闪存转换层(FTL)连接到数据存储设备固件304,以访问存储器设备306a-306c,每个存储器设备包括多个管芯308。在操作中,每个应用(其可以是虚拟主机中的不同主机)访问相同的数据存储设备310,并因此访问存储器设备306a-306c和管芯308。可跨管芯308或在任何管芯308内建立用于ZNS设备的分区。
在ZNS中,当第一次写入触发分配新分区的逻辑时,发生分区开放命令。当起始LBA(SLBA)等于分区起始LBA(ZSLBA)时,发生分区写入。类似地,分区附加/写入命令是其中SLBA不等于ZSLBA,使得写入被添加到已经开放的分区。
应当理解,后端单元包括ZNS NVMe集/耐久性组中的物理块。一般而言,ZNS设备在提交队列中寻找分区附加命令和分区读取命令,并且在没有任何条件的情况下将这些命令优先化到后端。然而,对于分区开放命令,使用当前未被其他分区使用的后端单元来创建分区。如果这些分区是随机创建的或者随时间利用相同的管芯创建的,则管芯不接收均匀的工作负载,并因此,ZNS设备具有不均匀的工作负载,从而影响QoS。期望创建其中最少利用关于管芯/FIM的工作负载的分区,使得每当创建新的分区时,该分区利用最少利用的管芯/FIM,使得该设备具有均匀的工作负载以及随时间的均匀耗损。目的是由于不依赖于精确的硬件(HW)而使分区开放命令使用剩余的后端资源。换句话说,本公开涉及基于分区偏移对到分区中的写入进行不同优先级排序。控制器利用设备资源的非附着,直到分区开始写入为止。随后,如在典型的ZNS***中那样,对于具有分配的物理块的新分区更新分区映射。
分区附加命令和分区读取命令在特定资源工作负载方面是不可协商的候选。即,当发出分区读取时,分区读取只能从写入数据的特定管芯/FIM(该ZNS NVMe集/耐久性组中的物理块)读取。类似地,对于分区附加,该分区可以仅被附加到先前开始写入的特定分区(已经开放的物理块在使用中)。
另一方面,分区开放命令是ZNS主机想要从零分区偏移(分区创建以开始)向设备写入数据的情况,并且只要该分区是NVMe集/耐久性组的一部分并且该分区到物理(Z2P)映射是完整的,主机不关心那些数据物理驻留在何处。ZNS控制器可以利用该条件。
在接收到分区开放请求时,可以从ZNS NVMe集/耐久性组中的后端的该部分中的物理块中创建分区,其中管芯/FIM具有最少工作负载。主机数据和分区开放请求可以被路由以创建这样的分区,这导致更好的HW利用,这又导致ZNS产品的最佳服务质量(QoS)。由于分区读取命令和分区附加命令优先于分区开放命令,因此已经针对设备中的工作负载优先触发不可协商的资源。因此,该方法确保分区开放最小程度地干扰分区附加命令和分区读取命令所需的HW资源。由于不依赖于精确的HW,分区开放命令旨在使用剩余的资源。
图4是示出了根据一个实施方案的用于对到分区中的写入进行不同优先级排序的FTL流的流程图400。如图4所示,命令最初由主机设备放置在提交队列中。然后,在402处,数据存储设备评估提交队列中的命令,以查看提交队列内的命令是分区读取命令、分区附加命令还是分区开放命令。数据存储设备,更具体地说是控制器,对提交队列进行排序以对命令进行排序,并在404处确定命令是分区附加命令、分区读取命令还是分区开放命令。分区附加命令和分区读取命令被给予高优先级以移动到数据存储设备的后端以供执行。在406处,分区读取命令被发送到后端以供执行,而在408处,分区附加命令被发送到后端以供执行。在向后端发送分区读取和分区附加命令之后,控制器然后处理分区开放命令。
在410处,控制器在ZNS NVMe集/耐久性组的后端单元中执行分区开放。执行分区开放以开放其中工作负载在管芯、FIM、高速缓存和/或纠错引擎工作负载方面最小的分区。新分区将利用可自由获得的HW资源中的最大值,因为分区读取和分区附加命令优先于分区开放命令。
任何ZNS NVMe集中的存储后端单元(即,管芯/FIM)的工作负载与根据读取/写入活动的信用点以及决定在任何时间点开放的分区的移动窗口相关联。数据存储设备可以采用任何已知的方法(固件(FW)或HW)来评估这样的工作负载。用于不同资源的基于计数器的FW方法是一个示例。换句话说,可在该过程期间适应耗损均衡方案,其中如果控制器确定多个后端单元在最少工作负载方面符合条件进行分区开放,那么提供具有较低编程-擦除计数的物理块的单元可为选择作为待开放的新分区的优胜者。在长期运行中,这种策略将提供更好的持续混合负载性能以及更好的耗损均衡。相同的逻辑适用于读擦除操作、故障管理和其他存储后端管理技术。控制器选择在ZNS设备的NVMe集的后端单元中对于HW具有最少工作负载的目的块和附接到该集的较低编程-擦除块。控制器在所有主机发出的ZNS附加和ZNS读取被优先化之后进行选择。
在一个实施方案中,使用编程-擦除参数来确定开放哪个分区。当在工作负载方面存在‘平局(tie)’时使用编程-擦除参数,使得存在可开放的在管芯、FIM、高速缓存和/或纠错引擎工作负载方面具有相同工作负载历史的多个分区。这样做时,选择具有最少编程-擦除周期的分区。因此,实现跨块的耗损均衡。
然后,在412处,控制器更新分区到逻辑(Z2L)映射。最后,在414处,将主机的分区开放命令数据路由到新创建的分区。该周期然后在416处结束。
如上所述,数据存储设备中的不均匀耗损可能是个问题。耗损均衡确保了设备的有效使用、更长的设备寿命以及良好的QoS。如本文中所论述,对于ZNS设备,确保耗损均衡的方式是处理分区开放命令以开放具有最少利用的存储器设备的分区。分区开放命令不同于分区读取命令和分区附加命令。分区读取命令和分区附加命令都是对已经开放的分区执行的命令。已经开放的分区具有已经分配给它的存储器设备或存储器设备的区域。另一方面,可从当前未分配给分区的存储器设备或存储器设备的区域创建新的分区。可以评估当前未分配给分区的设备或区域,以确定哪些设备或区域具有最少量的工作负载历史。可以从具有最少量的工作负载历史的区域或设备创建新的分区。编程-擦除周期的数量可用作具有相同量的工作负载历史的任何区域或设备的平局打破器。
图5是示出了确保ZNS设备的有效耗损均衡的方法的流程图500。在502处,主机设备响起门铃以通知数据存储设备在提交队列中存在需要处理的命令。然后,在504处,数据存储设备检索命令并对命令进行排序。在506处,任何分区读取命令或分区附加命令被立即转发到数据存储设备的后端以便进行立即处理。当完成分区读取命令或分区附加命令时,填充主机的完成队列,并且响起门铃以通知主机完成队列中具有信息。
既然已经向后端发送了分区附加命令和分区读取命令,则可以处理来自提交队列的任何分区开放命令。为了处理分区开放命令,需要创建新的分区。在508处,创建分区涉及针对工作负载历史访问可用存储器设备和存储器设备的区域(在存储器设备可具有可分配到不同分区的不同数据位置或块的情况下)。在确定具有最低工作负载历史的设备和/或区域之后,控制器在510处确定是否存在任何平局。如果没有平局,则可以在512处开放该分区。如果存在平局,那么在514处,控制器通过基于编程-擦除周期历史对平局的设备和/或区域进行排列来解决平局。在516处,选择具有最少编程-擦除周期的设备和/或区域作为具有最低工作负载的设备和/或区域,并且接着开放该分区。一旦分区被开放,则在518处,与分区开放命令相关联的数据被写入新开放的分区。一旦数据被写入,则在完成队列中形成条目,并且在520处响起门铃以向主机通知完成队列中的条目。
通过有目的地选择最少利用的存储器设备和/或存储器区域用于处理分区开放命令,甚至实现设备耗损均衡。甚至设备耗损均衡确保了设备的有效使用、更长的设备寿命以及良好的QoS。
在一个实施方案中,一种数据存储设备包括:存储器设备;和耦接到存储器设备的控制器,其中该控制器被配置成:接收分区开放命令;以及从存储器设备的第一物理块创建分区,其中所创建的分区对应于已在存储器设备中接收到最少工作负载的物理块。控制器被进一步配置成接收多个分区命令,其中多个分区命令中的至少一个分区命令是分区开放命令。多个命令中的至少第一命令是分区读取命令,其中控制器被进一步配置成在分区开放命令之前处理分区读取命令。多个命令中的至少第一命令是分区附加命令,其中控制器被进一步配置成在分区开放命令之前处理分区附加命令。工作负载基于物理块的读取和写入活动的量。在已经开始执行任何分区附加或分区读取命令之后处理分区开放命令。最少工作负载基于管芯工作负载、闪存接口模块(FIM)工作负载、高速缓存工作负载和/或奇偶校验引擎工作负载。控制器被配置成确定具有最少工作负载的多个物理块,其中第一物理块与多个物理块中的剩余物理块相比具有较低数量的编程-擦除周期。控制器被进一步配置成跨存储器设备的物理块维持耗损均衡。在提交队列中接收分区开放命令,并且其中控制器被配置成在分区开放命令之前处理任何分区附加命令或分区读取命令。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和耦接到存储器设备的控制器,其中该控制器被配置成:评估在提交队列中接收到的多个命令;确定多个命令中的命令是分区开放命令;评估存储器设备的后端以确定存储器设备的可用管芯的工作负载;基于对存储器设备的后端的评估来开放新的分区;将与分区开放命令相关联的数据路由到新的分区。控制器被进一步配置成在开放新的分区之后更新分区到逻辑块地址表。控制器被进一步配置成在开放新的分区之前将分区读取命令和分区附加命令路由到后端。该评估发生在闪存转换层(FTL)。分区开放命令是具有零偏移的分区命令。
在另一个实施方案中,一种数据存储设备包括:存储器装置;耦接到存储器装置的控制器,其中该控制器被配置成:接收分区开放命令;确定存储器装置的多个后端单元对于分区开放是符合条件的并且在后端单元中具有相同量的工作负载;确定多个后端单元中的第一后端单元与多个后端单元中符合条件的剩余后端单元相比具有较低数量的编程-擦除周期;以及在第一后端单元中开放新的分区。控制器被进一步配置成将分区附加命令引导到与第一后端单元不同的第二后端单元。控制器被进一步配置成将分区读取命令引导到与第一后端单元不同的第三后端单元。控制器被进一步配置成在确定存储器装置的多个后端单元符合条件之前,将分区附加命令和分区读取命令分别引导到第二后端单元和第三后端单元。控制器被进一步配置成搜索提交队列以找到分区开放命令和任何分区附加命令或任何分区读取命令。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置成:
接收分区开放命令;以及
从所述存储器设备的第一物理块创建分区,其中所创建的分区对应于已在所述存储器设备中接收到最少工作负载的物理块。
2.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置成接收多个分区命令,其中所述多个分区命令中的至少一个分区命令是所述分区开放命令。
3.根据权利要求2所述的数据存储设备,其中所述多个命令中的至少第一命令是分区读取命令,其中所述控制器被进一步配置成在所述分区开放命令之前处理所述分区读取命令。
4.根据权利要求2所述的数据存储设备,其中所述多个命令中的至少第一命令是分区附加命令,其中所述控制器被进一步配置成在所述分区开放命令之前处理所述分区附加命令。
5.根据权利要求1所述的数据存储设备,其中所述工作负载基于所述物理块的读取和写入活动的量。
6.根据权利要求1所述的数据存储设备,其中在已经开始执行任何分区附加或分区读取命令之后处理所述分区开放命令。
7.根据权利要求1所述的数据存储设备,其中所述最少工作负载基于管芯工作负载、闪存接口模块(FIM)工作负载、高速缓存工作负载和/或奇偶校验引擎工作负载。
8.根据权利要求1所述的数据存储设备,其中所述控制器被配置成确定具有最少工作负载的多个物理块,其中所述第一物理块与所述多个物理块中的剩余物理块相比具有较低数量的编程-擦除周期。
9.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置成跨所述存储器设备的物理块维持耗损均衡。
10.根据权利要求1所述的数据存储设备,其中在提交队列中接收所述分区开放命令,并且其中所述控制器被配置成在所述分区开放命令之前处理任何分区附加命令或分区读取命令。
11.一种数据存储设备,包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置成:
评估在提交队列中接收到的多个命令;
确定所述多个命令中的命令是分区开放命令;
评估所述存储器设备的后端以确定所述存储器设备的可用管芯的工作负载;
基于对所述存储器设备的所述后端的所述评估来开放新的分区;以及
将与所述分区开放命令相关联的数据路由到所述新的分区。
12.根据权利要求11所述的数据存储设备,其中所述控制器被进一步配置成在开放所述新的分区之后更新分区到逻辑块地址表。
13.根据权利要求11所述的数据存储设备,其中所述控制器被进一步配置成在开放所述新的分区之前将分区读取命令和分区附加命令路由到所述后端。
14.根据权利要求11所述的数据存储设备,其中所述评估发生在闪存转换层(FTL)。
15.根据权利要求11所述的数据存储设备,其中所述分区开放命令是具有零偏移的分区命令。
16.一种数据存储设备,包括:
存储器装置;
控制器,所述控制器耦接到所述存储器装置,其中所述控制器被配置成:
接收分区开放命令;
确定所述存储器装置的多个后端单元对于分区开放是符合条件的并且在所述后端单元中具有相同量的工作负载;
确定所述多个后端单元中的第一后端单元与所述多个后端单元中符合条件的剩余后端单元相比具有较低数量的编程-擦除周期;以及
在所述第一后端单元中开放新的分区。
17.根据权利要求16所述的数据存储设备,其中所述控制器被进一步配置成将分区附加命令引导到与所述第一后端单元不同的第二后端单元。
18.根据权利要求17所述的数据存储设备,其中所述控制器被进一步配置成将分区读取命令引导到与所述第一后端单元不同的第三后端单元。
19.根据权利要求18所述的数据存储设备,其中所述控制器被进一步配置成在确定所述存储器装置的多个后端单元符合条件之前,将所述分区附加命令和所述分区读取命令分别引导到所述第二后端单元和所述第三后端单元。
20.根据权利要求16所述的数据存储设备,其中所述控制器被进一步配置成搜索提交队列以找到所述分区开放命令和任何分区附加命令或任何分区读取命令。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US17/338,464 | 2021-06-03 | ||
US17/338,464 US11537305B1 (en) | 2021-06-03 | 2021-06-03 | Dissimilar write prioritization in ZNS devices |
PCT/US2022/014127 WO2022256058A1 (en) | 2021-06-03 | 2022-01-27 | Dissimilar write prioritization in zns devices |
Publications (1)
Publication Number | Publication Date |
---|---|
CN117043753A true CN117043753A (zh) | 2023-11-10 |
Family
ID=84284072
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202280016570.2A Pending CN117043753A (zh) | 2021-06-03 | 2022-01-27 | Zns设备中的不同写入优先级 |
Country Status (5)
Country | Link |
---|---|
US (1) | US11537305B1 (zh) |
KR (1) | KR20230142795A (zh) |
CN (1) | CN117043753A (zh) |
DE (1) | DE112022000468T5 (zh) |
WO (1) | WO2022256058A1 (zh) |
Families Citing this family (3)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR20230060163A (ko) * | 2021-10-27 | 2023-05-04 | 에스케이하이닉스 주식회사 | 스토리지 장치 및 그 동작 방법 |
KR20230135357A (ko) * | 2022-03-16 | 2023-09-25 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 그 동작 방법 |
CN116126239B (zh) * | 2022-12-30 | 2024-01-23 | 武汉麓谷科技有限公司 | 一种提高zns固态硬盘nor flash写入性能的方法 |
Family Cites Families (14)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US8949568B2 (en) | 2011-05-24 | 2015-02-03 | Agency For Science, Technology And Research | Memory storage device, and a related zone-based block management and mapping method |
US10379742B2 (en) | 2015-12-28 | 2019-08-13 | Netapp, Inc. | Storage zone set membership |
US9841906B2 (en) | 2016-02-01 | 2017-12-12 | Seagate Technology Llc | Zone forward drive management |
US10866766B2 (en) | 2019-01-29 | 2020-12-15 | EMC IP Holding Company LLC | Affinity sensitive data convolution for data storage systems |
US11113006B2 (en) | 2019-05-06 | 2021-09-07 | Micron Technology, Inc. | Dynamic data placement for collision avoidance among concurrent write streams |
US11055249B2 (en) | 2019-06-25 | 2021-07-06 | Micron Technology, Inc. | Access optimization in aggregated and virtualized solid state drives |
CN111124305B (zh) | 2019-12-20 | 2021-08-31 | 浪潮电子信息产业股份有限公司 | 固态硬盘磨损均衡方法、装置及计算机可读存储介质 |
CN111240601B (zh) | 2020-01-19 | 2022-07-22 | 苏州浪潮智能科技有限公司 | 一种分区空间的超级块确定方法、装置、设备及存储介质 |
JP7366795B2 (ja) | 2020-02-14 | 2023-10-23 | キオクシア株式会社 | メモリシステムおよび制御方法 |
KR20210125774A (ko) | 2020-04-09 | 2021-10-19 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
CN111694515B (zh) | 2020-05-23 | 2023-01-10 | 苏州浪潮智能科技有限公司 | 一种基于ZNS固态硬盘的zone写分发方法及*** |
KR20220014212A (ko) | 2020-07-28 | 2022-02-04 | 에스케이하이닉스 주식회사 | 저장 장치 및 그 동작 방법 |
US20200393974A1 (en) | 2020-08-27 | 2020-12-17 | Intel Corporation | Method of detecting read hotness and degree of randomness in solid-state drives (ssds) |
KR20220058224A (ko) | 2020-10-30 | 2022-05-09 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 이에 포함된 메모리 컨트롤러의 동작 방법 |
-
2021
- 2021-06-03 US US17/338,464 patent/US11537305B1/en active Active
-
2022
- 2022-01-27 DE DE112022000468.1T patent/DE112022000468T5/de active Pending
- 2022-01-27 WO PCT/US2022/014127 patent/WO2022256058A1/en active Application Filing
- 2022-01-27 KR KR1020237031099A patent/KR20230142795A/ko unknown
- 2022-01-27 CN CN202280016570.2A patent/CN117043753A/zh active Pending
Also Published As
Publication number | Publication date |
---|---|
KR20230142795A (ko) | 2023-10-11 |
US11537305B1 (en) | 2022-12-27 |
DE112022000468T5 (de) | 2023-10-05 |
US20220391089A1 (en) | 2022-12-08 |
WO2022256058A1 (en) | 2022-12-08 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196226B (zh) | 固态驱动器中的分区命名空间 | |
US11416161B2 (en) | Zone formation for zoned namespaces | |
US11126378B1 (en) | Rate limit on the transitions of zones to open | |
KR102569783B1 (ko) | 비순차적 구역 네임스페이스들 | |
US11520660B2 (en) | Storage devices hiding parity swapping behavior | |
US20200409601A1 (en) | Hold of Write Commands in Zoned Namespaces | |
CN117043753A (zh) | Zns设备中的不同写入优先级 | |
US11500727B2 (en) | ZNS parity swapping to DRAM | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
US20240220155A1 (en) | Solution for Super Device Imbalance in ZNS SSD | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
CN113744783A (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
CN114077547A (zh) | 具有分区命名空间的主机管理的硬件压缩 | |
US20220391115A1 (en) | Dissimilar Write Prioritization in ZNS Devices | |
WO2023027782A1 (en) | Purposeful super device imbalance for zns ssd efficiency | |
CN114730250A (zh) | 根据存储设备中的分区对读取命令加权 | |
US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
US20220075718A1 (en) | Keeping Zones Open With Intermediate Padding | |
CN117616377A (zh) | 跨zns ssd中的超级设备的超级块分配 | |
WO2023101719A1 (en) | Full die recovery in zns ssd | |
CN116897341A (zh) | 隐含流 | |
CN114730291A (zh) | 具有分区的ssd的数据停放 | |
WO2023027784A1 (en) | Controlled imbalance in super block allocation in zns ssd |
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 |