CN114730604A - 动态zns开放分区活动限制 - Google Patents
动态zns开放分区活动限制 Download PDFInfo
- Publication number
- CN114730604A CN114730604A CN202080079966.2A CN202080079966A CN114730604A CN 114730604 A CN114730604 A CN 114730604A CN 202080079966 A CN202080079966 A CN 202080079966A CN 114730604 A CN114730604 A CN 114730604A
- Authority
- CN
- China
- Prior art keywords
- zal
- storage device
- data storage
- partition
- value
- 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
- 230000000694 effects Effects 0.000 title claims abstract description 21
- 238000005192 partition Methods 0.000 claims abstract description 203
- 238000013500 data storage Methods 0.000 claims description 92
- 230000008859 change Effects 0.000 claims description 8
- 230000014759 maintenance of location Effects 0.000 claims description 5
- 230000001351 cycling effect Effects 0.000 abstract description 3
- 238000010586 diagram Methods 0.000 description 20
- 238000012005 ligant binding assay Methods 0.000 description 6
- 230000008901 benefit Effects 0.000 description 5
- 238000000034 method Methods 0.000 description 5
- 230000009467 reduction Effects 0.000 description 4
- 206010011906 Death Diseases 0.000 description 3
- 238000013507 mapping Methods 0.000 description 3
- 230000008569 process Effects 0.000 description 3
- 230000007704 transition Effects 0.000 description 3
- 238000009825 accumulation Methods 0.000 description 2
- 230000003321 amplification Effects 0.000 description 2
- 230000006399 behavior Effects 0.000 description 2
- 238000004364 calculation method Methods 0.000 description 2
- 230000006870 function Effects 0.000 description 2
- 238000007726 management method Methods 0.000 description 2
- 238000003199 nucleic acid amplification method Methods 0.000 description 2
- 238000013403 standard screening design 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
- 230000001427 coherent effect Effects 0.000 description 1
- 230000002950 deficient Effects 0.000 description 1
- 238000005516 engineering process Methods 0.000 description 1
- 239000000835 fiber Substances 0.000 description 1
- 230000036541 health Effects 0.000 description 1
- 238000005259 measurement Methods 0.000 description 1
- 238000005457 optimization Methods 0.000 description 1
- 230000002093 peripheral effect Effects 0.000 description 1
- 239000007787 solid Substances 0.000 description 1
- 230000001360 synchronised effect Effects 0.000 description 1
Images
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/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/0632—Configuration or reconfiguration of storage systems by initialisation or re-initialisation of storage systems
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0706—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment
- G06F11/0727—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation the processing taking place on a specific hardware platform or in a specific software environment in a storage system, e.g. in a DASD or network based storage system
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0751—Error or fault detection not based on redundancy
- G06F11/0754—Error or fault detection not based on redundancy by exceeding limits
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F11/00—Error detection; Error correction; Monitoring
- G06F11/07—Responding to the occurrence of a fault, e.g. fault tolerance
- G06F11/0703—Error or fault processing not based on redundancy, i.e. by taking additional measures to deal with the error or fault not making use of redundancy in operation, in hardware, or in data representation
- G06F11/0793—Remedial or corrective actions
-
- 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/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/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/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/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
-
- 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)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Human Computer Interaction (AREA)
- Quality & Reliability (AREA)
- Techniques For Improving Reliability Of Storages (AREA)
Abstract
一种存储设备包括控制器,该控制器可以动态调整分区命名空间(ZNS)的分区活动限制(ZAL)。即使在将该ZAL提供给主机设备之后,也可以动态调整该ZAL,而不是假设该ZNS的最坏情况。在这样做时,由于诸如温度、故障或翻转位计数的因素,设备性能发生变化,并且设备循环可以被认为对该ZAL有影响。然后可以随时间推移调整该ZAL,并且可以将新的ZAL发送到该主机设备。因此,当该设备运行时,该主机设备将随时间推移接收更新的ZAL值,而不是固定的最坏情况下的ZAL。
Description
相关申请的交叉引用
本申请要求2020年3月30日提交的美国申请第16/835,191号的优先权,该申请全文以引用方式并入本文。
背景技术
技术领域
本公开的实施方案总体涉及在存储系统中动态调整分区命名空间(ZNS)的分区活动限制(ZAL)。
相关领域的描述
分区命名空间(ZNS)是存储领域的新方向,其中数据存储设备限制写入顺序分区。ZNS旨在通过将主机写入模式与内部设备几何结构对准并减少对不直接链接到主机写入的设备侧写入的需要,从而减少设备侧写入放大和过度预配。
ZNS提供许多益处,包括:由于每个SSD(固态驱动器)的最小DRAM要求最小而降低了成本;由于减少了对NAND介质的过度预配的需要而潜在地节省;通过减少写入放大而获得更好的SSD寿命;显著降低的延迟;显著改善的吞吐量;以及实现强大软件和硬件外部系统的标准化接口。
在ZNS环境中,数据存储设备控制器在分区开放转变时向主机设备提供分区活动限制(ZAL)。ZAL表示开放分区可保持开放的时间。在块被主机设备使用的整个期间,ZAL是固定的,并且主机设备应在ZAL结束之前完成操作并关闭分区。
ZAL是基于最坏情况假设而设定的,这导致考虑数据存储设备在设备的寿命期间可能面临的最坏情况。最坏情况导致提供给主机设备的ZAL值降低,并且因此降低存储器的利用率。
因此,本领域需要具有更加稳健的ZAL值的ZNS设备。
发明内容
本公开总体上涉及动态调整分区命名空间(ZNS)的分区活动限制(ZAL)。即使在将该ZAL提供给主机设备之后,也可以动态调整该ZAL,而不是假设该ZNS的最坏情况。在这样做时,由于诸如温度、故障或翻转位计数的因素,设备行为发生变化,并且设备循环可以被认为对该ZAL有影响。然后可以随时间推移调整该ZAL,并且可以将新的ZAL发送到该主机设备。因此,当该设备运行时,该主机设备将随时间推移接收更新的ZAL值,而不是固定的最坏情况下的ZAL。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备并支持至少一个分区命名空间(ZNS),其中控制器被配置为:从主机设备接收开放新分区的请求;将ZNS的初始分区活动限制(ZAL)值传送到主机设备;将ZNS的初始ZAL值改为ZNS的新的ZAL值;以及将ZNS的新的ZAL值发送到主机设备。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中控制器被配置为:向主机设备提供分区命名空间(ZNS)的初始分区活动限制(ZAL)值;分析ZNS的块;确定块操作的条件;计算ZNS的新的ZAL值;以及将ZNS的新的ZAL值发送到主机设备。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,该控制器耦接到存储器设备;和装置,该装置用于在分区命名空间(ZNS)开放时动态地将初始分区活动限制(ZAL)值改为新的ZAL值。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据本公开的一种或多种技术的具有可以用作主机设备的存储设备的存储设备的存储系统的示意性框图。
图2A是传统块存储设备的示意图。
图2B是根据一个实施方案的分区块存储设备的示意图。
图3A是传统SSD的设备控制的示意图。
图3B是根据一个实施方案的ZNS SSD的设备控制的示意图。
图4是根据一个实施方案的ZNS SSD的状态图的示意图。
图5是在ZNS SSD寿命中的各个时间点处每个循环条件的故障或翻转位计数(FBC)分布的示意图。
图6是示出根据一个实施方案的动态ZNS开放块有效时间计算的流程图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开总体上涉及动态调整分区命名空间(ZNS)的分区活动限制(ZAL)。即使在将该ZAL提供给主机设备之后,也可以动态调整该ZAL,而不是假设该ZNS的最坏情况。在这样做时,由于诸如温度、故障或翻转位计数的因素,设备行为发生变化,并且设备循环可以被认为对该ZAL有影响。然后可以随时间推移调整该ZAL,并且可以将新的ZAL发送到该主机设备。因此,当该设备运行时,该主机设备将随时间推移接收更新的ZAL值,而不是固定的最坏情况下的ZAL。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的NVM(非易失性存储器)110来存储和检索数据。主机设备104包括主机DRAM138,该主机DRAM包括读取缓冲器140。读取缓冲器140能够被用来存储待发送到数据存储设备106的读取命令。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置为共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如数据存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、物联网(IOT)设备等。
数据存储设备106包括控制器108、非易失性存储器110(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))、PCI Express(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接收电力。
数据存储设备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之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲器116中。
图2A和图2B是根据各种实施方案的块存储设备的示意图。在一个实施方案中,图2A和图2B的块存储设备可以是图1的数据存储设备106的NVM 110。此外,根据各种实施方案,图2A和图2B的块存储设备可以是多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。图2A和图2B的块存储设备的每个正方形表示可用于数据存储的块。阴影正方形或块表示该块包括数据。数据可以是用户数据、XOR或奇偶校验数据、设备元数据或要存储在块存储设备中的任何其他合适的数据。
图2A是(非分区)块存储设备的示意图。在传统块存储系统中,数据按顺序写入存储设备。然而,数据可能被低效地写入驱动器,从而导致驱动器的工作或有效容量降低。在图2A中,数据已被写入散布在整个块存储设备中的块。为了克服对驱动器的低效写入,块存储系统可以被过度预配,使得暴露的容量(即,可用于数据的容量)类似于有效写入的块存储设备容量。存储设备的增加的容量和对存储设备的低效写入可能在易失性存储器(诸如图1的易失性存储器112)内需要大映射表(诸如逻辑到物理(L2P)表)来存储数据在块存储设备内的位置。大映射表可能需要高容量易失性存储器112,这可能是成本低效的或昂贵的。
图2B是分区块存储设备的示意图。分区块存储设备被划分为多个分区,其中第N个分区对应于存储设备中的最后一个分区,并且每个分区的容量相等。在另一个实施方案中,分区块存储设备被划分为多个束流,其中每个束流的容量不同。在分区块存储系统中,系统在硬件或固件中实现ZNS协议,ZNS将数据写入限制为在分区内按顺序写入。在图2B中,数据已经按顺序写入到分区1的前四个块中,按顺序写入到分区2的前六个块中,以及按顺序写入到分区N的前四个块中。由于ZNS将数据写入限制为在分区内按顺序写入,因此每个分区的容量被优化。因此,存储设备的可用容量(即,数据的可用容量)增加而不是必须过度预配存储设备以维持相同量的可用容量。对分区块存储设备的数据的可用容量的更好利用可以减小存储在易失性存储器112中的映射表或L2P表的大小,这可以减小所需的易失性存储器112的大小。
图3A和图3B是根据各种实施方案的SSD的设备控制的示意图。图2A和图2B的方面可以适用于图3A和图3B的理解。在一个实施方案中,图3A和图3B的闪存设备可以是图1的数据存储设备106的NVM 110。此外,根据各种实施方案,图3A和图3B的闪存设备可以是多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。图3A和图3B的块存储设备的每个正方形表示可用于数据存储的块。阴影正方形或块表示该块包括数据。该数据可以是用户数据、XOR或奇偶校验数据、设备元数据或要存储在SSD的闪存中的任何其他合适的数据。
图3A是传统SSD的设备控制的示意图。SSD从多个应用程序诸如应用程序1、应用程序2和应用程序3接收数据。数据存储在SSD的闪存中。在SSD中,存储设备控制数据放置。数据按顺序写入闪存,使得来自每个应用程序的数据可以按接收数据的顺序被写入。因为来自每个应用程序的数据在整个顺序写入过程中可以是随机的,所以当不同应用程序交错数据时,耐久性可能受到影响。
图3B是ZNS SSD的设备控制的示意图。类似于图3A,SSD从多个应用程序诸如应用程序1、应用程序2和应用程序3接收数据。数据存储在SSD的闪存中。在SSD中,应用程序或主机(诸如图1的主机设备104)控制分区中的数据放置。SSD的闪存被划分为各种相等容量分区。这些分区可被视为并行单元,其中主机设备104可将工作负载或数据引导至特定并行单元(即,主机具有闪存的块访问)。例如,与应用程序1相关联的数据位于第一分区中,而与应用程序2相关联的数据位于第二分区中,并且与应用程序3相关联的数据位于第三分区中。由于分区预配,与应用程序1相关联的数据和与应用程序2相关联的数据分开存储,从而潜在地提高耐久性。
图4是根据一个实施方案的ZNS SSD的状态图的示意图。在图4中,各种分区状态(ZS)为空(即,ZSE:空)、隐式开放(即,ZSIO:隐式开放)、显式开放(即,ZSEO:显式开放)、关闭(即,ZSC:关闭)、满(即,ZSF:满)、只读(即,ZSRO:只读)和离线(即,ZSO:离线)。分区的一般流动路径可以是从空状态到开放状态,该开放状态可以是隐式开放或显式开放。从开放状态,分区可处于满负荷,使得ZNS是满的。在满状态之后,可擦除分区内容,这将ZNS重置为空。
在控制器(诸如图1的控制器108)通电或重置事件之后,每个分区的初始状态由每个分区的分区特性确定。例如,分区状态ZSE:空由指向分区中最低LBA(即,分区开始LBA)的有效写入指针(WP)表示。分区装态ZSC:关闭由不指向分区中最低LBA的WP表示。分区状态ZSF:满是最近分区条件已满时的初始状态。分区状态ZSRO:只读是最近分区条件只读时的初始状态。分区状态ZSO:离线是最近分区条件离线时的初始状态。
该分区可具有任何总容量或总大小,诸如256MiB或512MiB。然而,每个分区的一小部分可能无法访问以将数据写入,但仍可被读取,诸如每个分区的存储XOR数据、元数据的部分和一个或多个被排除的擦除块。例如,如果分区的总容量为512MiB,那么分区容量(ZCAP)可能为470MiB,这是可用于写入数据的容量,而42MiB不可用于写入数据。分区的ZCAP等于或小于总分区存储容量或总分区存储大小。存储设备,诸如图1的数据存储设备106、图2B的块存储设备或图3B的SSD,可在分区重置时确定每个分区的ZCAP。例如,控制器诸如图1的控制器108可确定每个分区的ZCAP。当分区被重置时,存储设备可确定该分区的ZCAP。
当分区为空(即,ZSE:空)时,该分区不含数据(即,分区中的任何擦除块当前均未存储数据),并且写入指针(WP)在分区开始LBA(ZSLBA)(即,WP=0)处。ZSLBA是指分区的开始(即,分区的第一NAND位置)。写入指针表示数据写入在存储设备的分区中的位置。一旦向分区调度写入或由主机发出分区开放命令(即ZSIO:隐式开放或ZSEO:显式开放)后,空分区将切换到开放和活动分区。分区管理(ZM)命令可用于在分区开放和分区关闭状态(都是活动状态)之间移动分区。如果分区是活动的,则该分区包括可写入的开放块,并且可向主机提供活动状态下的推荐时间的描述。控制器108包括ZM(未示出)。分区元数据可存储在ZM和/或控制器108中。
术语“写入”包括当用户数据尚未填充所有可用NAND位置时,在擦除块中的0个或更多个NAND位置和/或擦除块中的部分填充NAND位置上编程用户数据。NAND位置可以是闪存位置,如图2A和图2B以及图3A和图3B中所提及的。术语“写入”还可包括由于内部驱动器处理需要(开放块数据保留问题,因为错误位在开放擦除块上累积得更快)而将分区移动到满(即,ZSF:满)状态,数据存储设备106由于资源限制(像太多开放分区而无法跟踪或发现缺陷状态等)而关闭或填充分区,或者主机设备诸如图1的主机设备104因为诸如没有更多数据要发送到驱动器、计算机关闭、主机上的错误处理、用于跟踪的主机资源有限等问题而关闭分区。
活动分区可以是开放的(即,ZSIO:隐式开放或ZSEO:显式开放)或关闭的(即,ZSC:关闭)。开放分区是已准备好写入并具有当前已分配资源的空分区或部分填满分区。利用写入命令或分区附加命令从主机设备接收的数据可被编程到当前未填充先前数据的开放的擦除块。已关闭分区是当前未从主机持续不断地接收写入的空分区或部分填满分区。分区从开放状态移动到关闭状态允许控制器108将资源重新分配给其他任务。这些任务可包括但不限于其他开放的分区、其他常规的非分区区域、或其他控制器需要。
在开放分区和关闭分区中,写入指针指向分区中位于ZSLBA和分区的最后LBA的末端之间的某个位置(即,WP>0)。活动分区可根据由ZM进行的指定在开放和关闭状态之间切换,或者在将写入调度到分区时进行该切换。另外,ZM可重置活动分区以清除或擦除存储在分区中的数据,使得该分区切换回空分区。一旦活动分区已满,该分区就会切换到满的状态。满的分区是完全填充有数据的分区,并且没有用于写入数据的更多可用块(即,WP=分区容量(ZCAP))。在满的分区中,写入指针指向该分区的可写入容量的末端。仍可执行满的分区中存储的数据的读取命令。
ZM可重置满的分区(即,ZSF:满),从而调度对存储在该分区中的数据的擦除,使得该分区切换回空分区(即,ZSE:空)。在重置满的分区时,尽管该分区可能标记为可供写入的空分区,但该分区的数据可能不被立即清除。但是,在切换到开放和活动分区之前,必须擦除重置的分区。可在ZM重置和ZM开放之间的任何时间擦除分区。在重置分区时,数据存储设备106可确定重置该分区的新ZCAP并更新分区元数据中的可写入ZCAP属性。脱机分区是无法将数据写入的分区。脱机分区可处于满的状态、空状态或处于部分满的状态而不处于活动状态。
由于重置分区会清除存储在分区中的数据或调度对存储在分区中的数据的擦除,因此消除了对各个擦除块进行垃圾回收的需要,从而改善了数据存储设备106的整体垃圾回收过程。数据存储设备106可标记一个或多个擦除块以用于擦除。当将要形成新分区并且数据存储设备106预计ZM开放时,则可擦除被标记用于擦除的一个或多个擦除块。数据存储设备106还可在擦除该擦除块时决定和创建该分区的物理支持。因此,一旦新分区被开放并且擦除块被选择以形成分区,该擦除块将被擦除。此外,每次重置分区时,可选择分区的LBA和写入指针的新顺序,从而使分区能够容忍不按顺序接收命令。可任选地关闭写入指针,使得命令可被写入为命令指示的任何起始LBA。
控制器108为每个分区提供T分区活动限制(ZAL)值。在各种实施方案中,ZAL也可以适用于块和/或束流。为每个分区分配ZAL值,该ZAL值表示开放分区可保持开放的时间。在标准存储设备中,在相关分区被主机设备104使用的整个期间(即,存储设备从主机接收针对相关分区的写入命令或读取命令),ZAL值是固定的。ZAL值由命名空间的每个分区共享(即,全局ZAL值)。ZAL值对应的时间是在分区中已经累积不可接受量的位错误之前的最大时间值。主机设备104或数据存储设备106可以在达到ZAL值之前关闭分区以避免累积不可接受量的位错误。
如果分区活动限制为非零值,则控制器可将处于“ZSIO:隐式开放”、“ZSEO:隐式开放”、或“ZSC:关闭”状态中的任一者的分区转变为“ZSF:满”状态。当分区转变为“ZSIO:隐式开放”状态或“ZSEO:显式开放”状态时,以秒为单位的内部定时器启动,使得主机设备104或数据存储设备106标识何时超过ZAL值。如果超过ZAL值或时间限制,则控制器108可警告主机设备104该分区需要结束(即,该分区需要处于满负荷)或将该分区转变为“ZSF:满”状态。当主机设备104被警告该分区需要结束时,将分区结束推荐字段设置为1,并且将分区信息改变事件报告给主机设备104。当分区转变为“ZSF:满”状态时,将由控制器字段结束的分区设置为1,并且将分区信息改变事件报告给主机设备104。因为ZAL值是存储设备的每个分区的全局参数,所以分区可能过早关闭,从而允许不是最佳的存储驱动器操作,或者可能稍后关闭,从而允许不可接受的位错误量累积,这可能导致数据存储设备的完整性降低。位错误的不可接受的累积还可能导致数据存储设备的性能降低。全局ZAL参数是静态参数,并且可基于主机可能面对的条件的最坏情况估计。
图5是在ZNS SSD寿命中的各个时间点处每个循环条件的故障或翻转位计数(FBC)分布的示意图。位错误率(BER)估算存储器设备或存储器设备内的每个单独存储单元中的故障或翻转位(即,FBC)的量。BER还可以用于估算存储单元内的分区的FBC。术语“分区”还可以指存储器位置或NAND位置的任何分组,诸如但不限于块、束流、管芯等。
在图5中,示出了ZAL值的九个不同实施方案。图5的每个实施方案是ZAL测量结果在不同循环水平和不同保存期(RT水平)下的统计分布的示例。FBC位于x轴上,并且获得FBC的概率位于y轴上。各个ZAL值的每个图示包括对应于各个循环值的曲线。循环值可以指写入/擦除循环,其中每次发生写入或擦除时,闪存存储器单元磨损并且可能失去存储数据的能力。例如,所示的循环值是1次循环、100次循环、500次循环和1500次循环。所列出的循环值并非旨在进行限制,而是提供可能实施方案的各种示例。对于每个ZAL值,随着循环值增加,FBC增加(即,曲线示出了小于最佳情况)。相对于ZAL值增加,FBC也增加。
可以通过选择对应于当前循环条件的值(例如,1次循环的循环值、100次循环的循环值等)和存储器单元或存储器位置的开放分区时间来设置全局ZAL值。在选择当前循环条件之后,选择相关循环曲线的最右FBC值。例如,对于“在314小时之后”图的循环值1500,最右FBC值为约490FBC/4KiB。最右值是预定义FBC值,其表示存储单元或存储器单元的寿命终止条件。基于给定循环值的最大允许FBC值来选择ZAL值。例如,如果循环值为1500次循环并且最大FBC值为500KiB,则选择约400小时的ZAL值,如“在_400小时之后”图中所示。在超过全局ZAL值之后,通过存储设备的控制器(诸如图1的数据存储设备106的控制器108)通知主机(诸如图1的主机设备104)。
图6是示出根据一个实施方案的动态ZNS开放块有效时间计算的流程图。图5的方面将根据图6使用。主机(诸如图1的主机设备104)具有块访问,使得主机可以发出命令以打开块或任何类似的NAND位置分组,诸如束流、分区等。存储单元由存储器单元构成,并且每个存储器单元包括多个NAND位置。存储单元可以是任何多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。将由于块条件的变化或块与块之间的变型引起的ZAL值的变化通知主机设备104。当主机设备104被通知来自全局ZAL值的分区的ZAL值的变化时,可以修改分区完成推荐(ZFR)。此外,保持跟踪每个分区的分区特定ZAL值的日志页面,使得主机设备104决定每个分区何时应该关闭。当分区关闭时,该分区处于来自用户数据的容量或者填充有簿数据以实现分区容量。
在框602处,存储设备(诸如图1的数据存储设备106)从主机设备104接收开放新分区的请求。当新分区开放时,控制器(诸如图1的控制器108)逻辑设定RT_水平等于1并且记录当前温度(即,Xtemp)。RT_水平可以指图5中描述的各种实施方案。当RT_水平等于1时,图5的相关图是“时间0”图。
控制器108包括温度传感器(未示出)以监测每个存储单元的温度。温度传感器可以具有记录存储单元的特定存储器位置(诸如块或分区)的温度的能力。Xtemp是指对应于开放新分区的主机请求的相关分区等的温度。分区或存储器位置的温度变化可能会影响相邻分区或存储器位置。此外,分区或存储器位置的温度变化可能会增加FBC并且可以利用类似于图5的实施方案的另一组分布表。
在框606处,控制器108检查存储单元的分区的典型循环数。在框608处,控制器108检查当前典型的FBC,如图5所示。在框608处检查当前典型的FBC之后,在框610处,控制器确定Xtemp是否已经改变。在框612处,如果Xtemp已经改变,则RT_水平增加1,并且将Xtemp更新为当前温度。
在框610处如果Xtemp未改变或在框612处增加RT_水平并且记录更新的Xtemp之后,在框614处,控制器108设置百分位数。百分位数是基于相关统计FBC分布设置的。然后,在框616处,控制器108将ZAL设置为最大RT_水平,该最大RT_水平是在寿命终止时满足FBC要求的值。在框618处,将更新的ZAL值发送到主机设备104。
在将ZAL值发送到主机设备104之后,在框620处,主机设备104确定该ZAL值是否已经被超过。主机设备104能够确定ZAL值是否已经被超过,因为其具有NAND块访问。如果在框620处ZAL值已经被超过,则在框624处,主机发送用于关闭已经超过ZAL值的相关分区的命令。然而,如果在框620处ZAL值尚未被超过,则在框622处,主机设备104等待接收另一RT_水平,并且控制器108处的当前RT_水平增加1。在框622处将当前RT_水平增加1之后,控制器在606处检查典型循环数。过程继续并且从框606到框622重复,直到在框620处分区的ZAL值已经被超过,并且在框624处关闭相关分区。
通过动态调整ZNS设备的ZAL,实现了更灵活的操作以及性能和耐久性的优化。动态ZAL值将允许通过主机设备更好地利用ZNS产品。主机设备将受益于较大的ZAL参数,因为ZAL参数将基于正常情况和块的当前健康状况而不是基于最坏情况。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备并支持至少一个分区命名空间(ZNS),其中控制器被配置为:从主机设备接收开放新分区的请求;将ZNS的初始分区活动限制(ZAL)值传送到主机设备;将ZNS的初始ZAL值改为ZNS的新的ZAL值;以及将ZNS的新的ZAL值发送到主机设备。该控制器被进一步配置为计算ZNS的新的ZAL值。新的ZAL值基于数据存储设备的温度变化。新的ZAL值基于数据存储设备的翻转位计数变化。初始ZAL值基于开放分区中的块的循环水平。块的循环水平在分区开放时保持相同。新的ZAL值小于初始ZAL值。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,该控制器耦接到存储器设备,其中控制器被配置为:向主机设备提供分区命名空间(ZNS)的初始分区活动限制(ZAL)值;分析ZNS的块;确定块操作的条件;计算ZNS的新的ZAL值;以及将ZNS的新的ZAL值发送到主机设备。发送新的ZAL值包括将主机设备引导到分区信息日志页面。控制器被进一步配置为更新分区信息日志页面的参数。控制器被进一步配置为改变分区完成推荐(ZRF)标记。控制器被进一步配置为增加保存周期。控制器在将ZNS的新的ZAL值发送到主机设备之后增加保存周期。控制器被进一步配置为测量数据存储设备的温度。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,该控制器耦接到存储器设备;和装置,该装置用于在分区命名空间(ZNS)开放时动态地将初始分区活动限制(ZAL)值改为新的ZAL值。数据存储设备还包括用于基于新的ZAL值更新主机设备的装置。数据存储设备还包括用于检查数据存储设备的温度变化的装置。数据存储设备还包括用于检查翻转或故障位计数(FBC)的装置。数据存储设备还包括将所检查的FBC与预期FBC进行比较的装置。数据存储设备还包括用于选择在数据存储设备的寿命终止时满足FBC要求的最大RT_水平值的装置。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备并支持至少一个分区命名空间(ZNS),其中所述控制器被配置为:
从主机设备接收开放新分区的请求;
将所述ZNS的初始分区活动限制(ZAL)值传送到所述主机设备;
将所述ZNS的所述初始ZAL值改为所述ZNS的新的ZAL值;以及
将所述ZNS的所述新的ZAL值发送到所述主机设备。
2.根据权利要求1所述的数据存储设备,其中所述控制器被进一步配置为计算所述ZNS的所述新的ZAL值。
3.根据权利要求2所述的数据存储设备,其中所述新的ZAL值基于所述数据存储设备的温度变化。
4.根据权利要求2所述的数据存储设备,其中所述新的ZAL值基于所述数据存储设备的翻转位计数变化。
5.根据权利要求1所述的数据存储设备,其中所述初始ZAL值基于所述开放分区中的块的循环水平。
6.根据权利要求5所述的数据存储设备,其中所述块的所述循环水平在所述分区开放时保持相同。
7.根据权利要求1所述的数据存储设备,其中所述新的ZAL值小于所述初始ZAL值。
8.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置为:
向主机设备提供分区命名空间(ZNS)的初始分区活动限制(ZAL)值;
分析所述ZNS的块;
确定所述块操作的条件;
计算所述ZNS的新的ZAL值;以及
将所述ZNS的所述新的ZAL值发送到所述主机设备。
9.根据权利要求8所述的数据存储设备,其中发送所述新的ZAL值包括将所述主机设备引导到分区信息日志页面。
10.根据权利要求9所述的数据存储设备,其中所述控制器被进一步配置为更新所述分区信息日志页面的参数。
11.根据权利要求8所述的数据存储设备,其中所述控制器被进一步配置为改变分区完成推荐(ZRF)标记。
12.根据权利要求8所述的数据存储设备,其中所述控制器被进一步配置为增加保存周期。
13.根据权利要求12所述的数据存储设备,其中所述控制器在将所述ZNS的所述新的ZAL值发送到所述主机设备之后增加所述保存周期。
14.根据权利要求8所述的数据存储设备,其中所述控制器被进一步配置为测量所述数据存储设备的温度。
15.一种数据存储设备,所述数据存储设备包括:
存储器设备;
控制器,所述控制器耦接到所述存储器设备;和
装置,所述装置用于在分区命名空间(ZNS)开放时动态地将初始分区活动限制(ZAL)值改为新的ZAL值。
16.根据权利要求15所述的数据存储设备,所述数据存储设备还包括用于基于所述新的ZAL值更新主机设备的装置。
17.根据权利要求15所述的数据存储设备,所述数据存储设备还包括用于检查所述数据存储设备的温度变化的装置。
18.根据权利要求15所述的数据存储设备,所述数据存储设备还包括用于检查翻转或故障位计数(FBC)的装置。
19.根据权利要求18所述的数据存储设备,所述数据存储设备还包括将所检查的FBC与预期FBC进行比较的装置。
20.根据权利要求19所述的数据存储设备,所述数据存储设备还包括用于选择在所述数据存储设备的寿命终止时满足FBC要求的最大RT_水平值的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/835,191 US11435914B2 (en) | 2020-03-30 | 2020-03-30 | Dynamic ZNS open zone active limit |
US16/835,191 | 2020-03-30 | ||
PCT/US2020/035551 WO2021201895A1 (en) | 2020-03-30 | 2020-06-01 | Dynamic zns open zone active limit |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114730604A true CN114730604A (zh) | 2022-07-08 |
Family
ID=77856054
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080079966.2A Pending CN114730604A (zh) | 2020-03-30 | 2020-06-01 | 动态zns开放分区活动限制 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11435914B2 (zh) |
CN (1) | CN114730604A (zh) |
DE (1) | DE112020004958T5 (zh) |
WO (1) | WO2021201895A1 (zh) |
Families Citing this family (8)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
KR102691862B1 (ko) * | 2020-04-09 | 2024-08-06 | 에스케이하이닉스 주식회사 | 데이터 저장 장치 및 그 동작 방법 |
US11789611B2 (en) * | 2020-04-24 | 2023-10-17 | Netapp, Inc. | Methods for handling input-output operations in zoned storage systems and devices thereof |
LU102091B1 (en) * | 2020-09-29 | 2022-03-29 | Microsoft Technology Licensing Llc | Zone hints for zoned namespace storage devices |
US11340987B1 (en) | 2021-03-04 | 2022-05-24 | Netapp, Inc. | Methods and systems for raid protection in zoned solid-state drives |
US11797377B2 (en) | 2021-10-05 | 2023-10-24 | Netapp, Inc. | Efficient parity determination in zoned solid-state drives of a storage system |
US11803329B2 (en) | 2021-11-22 | 2023-10-31 | Netapp, Inc. | Methods and systems for processing write requests in a storage system |
US11816359B2 (en) | 2021-12-16 | 2023-11-14 | Netapp, Inc. | Scalable solid-state storage system and methods thereof |
US11954367B2 (en) | 2022-06-15 | 2024-04-09 | Western Digital Technologies, Inc. | Active time-based command prioritization in data storage devices |
Family Cites Families (18)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US7072807B2 (en) * | 2003-03-06 | 2006-07-04 | Microsoft Corporation | Architecture for distributed computing system and automated design, deployment, and management of distributed applications |
US8700729B2 (en) * | 2005-01-21 | 2014-04-15 | Robin Dua | Method and apparatus for managing credentials through a wireless network |
KR100862661B1 (ko) * | 2006-11-16 | 2008-10-10 | 삼성전자주식회사 | 지연된 로깅 방법 및 그 장치 |
US8621138B2 (en) * | 2007-12-27 | 2013-12-31 | Sandisk Enterprise Ip Llc | Flash storage controller execute loop |
EP2336931B1 (fr) * | 2009-11-18 | 2013-01-09 | STMicroelectronics (Rousset) SAS | Procédé de vérification de signature |
US10188943B1 (en) * | 2010-09-15 | 2019-01-29 | Mlb Advanced Media, L.P. | Commentary systems and methods |
US9430322B2 (en) | 2012-08-02 | 2016-08-30 | Sandisk Technologies Llc | Device based wear leveling using intrinsic endurance |
US9263136B1 (en) | 2013-09-04 | 2016-02-16 | Western Digital Technologies, Inc. | Data retention flags in solid-state drives |
US10417190B1 (en) * | 2014-09-25 | 2019-09-17 | Amazon Technologies, Inc. | Log-structured file system for zone block devices with small zones |
US20210182190A1 (en) * | 2016-07-22 | 2021-06-17 | Pure Storage, Inc. | Intelligent die aware storage device scheduler |
US20210191638A1 (en) * | 2017-09-15 | 2021-06-24 | Pure Storage, Inc. | Voltage thresholds in flash devices |
US10482969B2 (en) | 2017-12-21 | 2019-11-19 | Western Digital Technologies, Inc. | Programming to a correctable amount of errors |
US20200409601A1 (en) * | 2019-06-28 | 2020-12-31 | Western Digital Technologies, Inc. | Hold of Write Commands in Zoned Namespaces |
WO2021077260A1 (zh) * | 2019-10-21 | 2021-04-29 | 深圳市欢太科技有限公司 | 耗电信息的处理方法、装置、电子设备及存储介质 |
US20200089407A1 (en) * | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
US11797433B2 (en) * | 2019-12-20 | 2023-10-24 | Sk Hynix Nand Product Solutions Corp. | Zoned namespace with zone grouping |
JP2021114038A (ja) * | 2020-01-16 | 2021-08-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
US11216364B2 (en) * | 2020-02-18 | 2022-01-04 | Micron Technology, Inc. | Sequential read optimization in a memory sub-system that programs sequentially |
-
2020
- 2020-03-30 US US16/835,191 patent/US11435914B2/en active Active
- 2020-06-01 CN CN202080079966.2A patent/CN114730604A/zh active Pending
- 2020-06-01 DE DE112020004958.2T patent/DE112020004958T5/de active Pending
- 2020-06-01 WO PCT/US2020/035551 patent/WO2021201895A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US20210303188A1 (en) | 2021-09-30 |
US11435914B2 (en) | 2022-09-06 |
WO2021201895A1 (en) | 2021-10-07 |
DE112020004958T5 (de) | 2022-06-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
CN113196226B (zh) | 固态驱动器中的分区命名空间 | |
US11126378B1 (en) | Rate limit on the transitions of zones to open | |
US11435914B2 (en) | Dynamic ZNS open zone active limit | |
US11520660B2 (en) | Storage devices hiding parity swapping behavior | |
KR102663302B1 (ko) | Zns 드라이브에서의 데이터 취합 | |
US11500727B2 (en) | ZNS parity swapping to DRAM | |
CN114746834A (zh) | 基于分区状态的分区附加命令调度 | |
US11520523B2 (en) | Data integrity protection of ZNS needs | |
US20240220155A1 (en) | Solution for Super Device Imbalance in ZNS SSD | |
CN114730250A (zh) | 根据存储设备中的分区对读取命令加权 | |
US11966618B2 (en) | Purposeful super device imbalance for ZNS SSD efficiency | |
US11537293B2 (en) | Wear leveling methods for zoned namespace solid state drive | |
US20210373809A1 (en) | Write Data-Transfer Scheduling in ZNS Drive | |
WO2021216124A1 (en) | Keeping zones open with intermediate padding | |
WO2023196315A1 (en) | Controlled system management based on storage device thermal load | |
WO2023101719A1 (en) | Full die recovery in zns ssd | |
WO2021216130A1 (en) | Weighted read commands and open block timer for storage devices | |
WO2021221725A1 (en) | Zone-based device with control level selected by the host | |
CN113744783B (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
US20210373769A1 (en) | Data Integrity Protection Of SSDs Utilizing Streams |
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 | ||
TA01 | Transfer of patent application right |
Effective date of registration: 20240919 Address after: Delaware, USA Applicant after: SANDISK TECHNOLOGIES Inc. Country or region after: U.S.A. Address before: California, USA Applicant before: Western Digital Technologies, Inc. Country or region before: U.S.A. |