CN114746834A - 基于分区状态的分区附加命令调度 - Google Patents
基于分区状态的分区附加命令调度 Download PDFInfo
- Publication number
- CN114746834A CN114746834A CN202080081489.3A CN202080081489A CN114746834A CN 114746834 A CN114746834 A CN 114746834A CN 202080081489 A CN202080081489 A CN 202080081489A CN 114746834 A CN114746834 A CN 114746834A
- Authority
- CN
- China
- Prior art keywords
- partition
- storage device
- data storage
- priority
- append
- 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
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/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/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/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/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]
-
- 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/0683—Plurality of storage devices
- G06F3/0688—Non-volatile semiconductor memory arrays
Landscapes
- Engineering & Computer Science (AREA)
- Theoretical Computer Science (AREA)
- Human Computer Interaction (AREA)
- Physics & Mathematics (AREA)
- General Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Information Retrieval, Db Structures And Fs Structures Therefor (AREA)
Abstract
本公开整体涉及针对分区命名空间(ZNS)调度分区附加命令。可以与ZNS的开放分区一致的最有效方式来调度分区附加命令,而不是按顺序或随机地采取分区附加命令。基于分区已经连同分区状态开放的时间长度来确定分区优先级。一般来说,分区更老和/或更满会增加优先级。一旦建立了分区优先级,就调度分区附加命令以确保首先处理用于高优先级分区的分区附加命令,使得开放分区可以在关闭之前被填充。
Description
相关申请的交叉引用
本申请要求2020年4月10日提交的美国申请号16/845685的优先级,该申请全文以引用方式并入本文。
背景技术
技术领域
本公开的实施方案整体涉及针对分区命名空间(ZNS)调度分区附加命令。
相关领域的描述
分区命名空间(ZNS)是存储领域的新方向,其中数据存储设备限制写入顺序分区。ZNS旨在通过将主机写入模式与内部设备几何结构对准并减少对不直接链接到主机写入的设备侧写入的需要,从而减少设备侧写入放大和过度预配。
ZNS提供许多益处,包括:由于每个SSD(固态驱动器)的最小DRAM要求最小而降低了成本;由于减少了对NAND介质的过度预配的需要而潜在地节省;通过减少写入放大而获得更好的SSD寿命;显著降低的延迟;显著改善的吞吐量;以及实现强大软件和硬件外部系统的标准化接口。
在ZNS环境中,可以同时开放多个分区。通常,更多的开放分区,更复杂的设计。并行具有大量开放分区使实施方式复杂化。一个示例是XOR管理。每个开放分区具有专用的XOR缓冲器,并且因此具有许多开放分区需要更多通常不能存储在SRAM中的XOR缓冲器。在一些情况下,存储设备需要将缓冲器折叠到DRAM和NAND中,这使设计复杂化并降低性能。
因此,本领域需要具有开放分区的更有效管理的ZNS设备。
发明内容
本公开整体涉及针对分区命名空间(ZNS)调度分区附加命令。可以与ZNS的开放分区一致的最有效方式来调度分区附加命令,而不是按顺序或随机地采取分区附加命令。基于分区已经连同分区状态开放的时间长度来确定分区优先级。一般来说,分区更老和/或更满会增加优先级。一旦建立了分区优先级,就调度分区附加命令以确保首先处理用于高优先级分区的分区附加命令,使得开放分区可以在关闭之前被填充。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置成:确定分区命名空间(ZNS)环境中的至少一个分区的状态;确定所述ZNS环境中的所述至少一个分区的年龄;基于所确定的状态和所确定的年龄来计算所述至少一个分区的优先级;并且基于所计算的优先级来处理分区附加命令。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,所述控制器耦接到所述存储器设备,其中所述控制器包括:命令提取器;命令执行器;闪存接口模块,所述闪存接口模块耦接到所述存储器设备;和分区附加命令调度器,所述分区附加命令调度器耦接到所述命令提取器、所述命令执行器和所述闪存接口模块。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,所述控制器耦接到所述存储器设备;和用于基于分区命名空间(ZNS)环境中的开放分区的年龄和开放分区的满度来调度分区附加命令的装置。
附图说明
因此,通过参考实施方案,可以获得详细理解本公开的上述特征的方式、本公开的更具体描述、上述简要概述,所述实施方案中的一些在附图中示出。然而,应当注意的是,附图仅示出了本公开的典型实施方案并且因此不应视为限制其范围,因为本公开可以允许其他同等有效的实施方案。
图1是示出根据本公开的一种或多种技术的具有可以用作主机设备的存储设备的存储设备的存储系统的示意性框图。
图2A是传统SSD的设备控制的示意图。
图2B是根据一个实施方案的ZNS SSD的设备控制的示意图。
图3是分区附加命令的示意图。
图4是根据一个实施方案的ZNS SSD的状态图的示意图。
图5是根据一个实施方案的分区附加调度的示意图。
图6是根据一个实施方案的分区附加命令调度器的示意图。
图7是示出根据一个实施方案的存储系统的示意框图。
图8是示出基于分区状态的分区附加命令优先级的图。
为了有助于理解,在可能的情况下,使用相同的参考标号来表示附图中共有的相同元件。可以设想是,在一个实施方案中公开的元件可以有利地用于其他实施方案而无需具体叙述。
具体实施方式
在下文中,参考本公开的实施方案。然而,应当理解的是,本公开不限于具体描述的实施方案。相反,思考以下特征和元件的任何组合(无论是否与不同实施方案相关)以实现和实践本公开。此外,尽管本公开的实施方案可以实现优于其他可能解决方案和/或优于现有技术的优点,但是否通过给定实施方案来实现特定优点不是对本公开的限制。因此,以下方面、特征、实施方案和优点仅是说明性的,并且不被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。同样地,对“本公开”的引用不应当被解释为本文公开的任何发明主题的概括,并且不应当被认为是所附权利要求书的要素或限制,除非在权利要求书中明确地叙述。
本公开整体涉及针对分区命名空间(ZNS)调度分区附加命令。可以与ZNS的开放分区一致的最有效方式来调度分区附加命令,而不是按顺序或随机地采取分区附加命令。基于分区已经连同分区状态开放的时间长度来确定分区优先级。一般来说,分区更老和/或更满会增加优先级。一旦建立了分区优先级,就调度分区附加命令以确保首先处理用于高优先级分区的分区附加命令,使得开放分区可以在关闭之前被填充。
图1是示出根据本公开的一种或多种技术的存储系统100的示意性框图,其中数据存储设备106可以用作主机设备104的存储设备。例如,主机设备104可以利用包括在数据存储设备106中的NVM 110来存储和检索数据。主机设备104包括主机DRAM 138。在一些示例中,存储系统100可以包括可作为存储阵列工作的多个存储设备,诸如数据存储设备106。例如,存储系统100可以包括多个数据存储设备106,其被配置成共同用作主机设备104的大容量存储设备的廉价/独立磁盘(RAID)冗余阵列。
存储系统100包括主机设备104,该主机设备可以向一个或多个存储设备诸如数据存储设备106存储数据和/或从其检索数据。如图1所示,主机设备104可以经由接口114与数据存储设备106通信。主机设备104可以包括多种设备中的任何一种,包括计算机服务器、网络附接存储(NAS)单元、台式计算机、笔记本(即膝上型)计算机、平板计算机、机顶盒、电话手机诸如所谓的“智能”电话、所谓的“智能”平板电脑、电视、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备等。
数据存储设备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的母板。
数据存储设备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之前将与写入命令相关联的数据暂时存储在内部存储器或写入缓冲器116中。
图2A和图2B是根据各种实施方案的SSD的设备控制的示意图。在一个实施方案中,图2A和图2B的闪存设备可以是图1的数据存储设备106的NVM 110。此外,根据各种实施方案,图2A和图2B的闪存设备可以是多级单元,诸如SLC、MLC、TLC、QLC或未列出的多级单元的任何其他迭代。图2A和图2B的块存储设备的每个正方形表示可用于数据存储的块。阴影正方形或块表示该块包括数据。该数据可以是用户数据、XOR或奇偶校验数据、设备元数据或要存储在SSD的闪存中的任何其他合适的数据。
图2A是传统SSD的设备控制的示意图。SSD从多个应用程序诸如应用程序1、应用程序2和应用程序3接收数据。数据存储在SSD的闪存中。在SSD中,存储设备控制数据放置。数据按顺序写入闪存,使得来自每个应用程序的数据可以按接收数据的顺序被写入。因为来自每个应用程序的数据在整个顺序写入中可以是随机的,所以延迟可增加并且吞吐量可能受阻。
图2B是ZNS SSD的设备控制的示意图。类似于图2A,SSD从多个应用程序诸如应用程序1、应用程序2和应用程序3接收数据。数据存储在SSD的闪存中。在SSD中,应用程序或主机(诸如图1的主机设备104)控制分区中的数据放置。SSD的闪存被划分为各种相等容量分区。这些分区可被视为并行单元,其中主机设备104可将工作负载或数据引导至特定并行单元(即,主机具有闪存的块访问)。例如,与应用程序1相关联的数据位于第一分区中,而与应用程序2相关联的数据位于第二分区中,并且与应用程序3相关联的数据位于第三分区中。由于分区预配,延迟相对于传统SSD设备控制的延迟减小,并且吞吐量相对于传统SSD设备控制的吞吐量改善。
图3是分区附加命令的示意图。主机(诸如图1的主机设备104)隐式地或显式地开放分区。主机设备104向同一地址发出若干分区附加命令。存储设备(诸如图1的数据存储设备106)负责填充来自主机设备104的数据并通知主机设备104每个命令在该分区内准确写入数据的位置。写入NVM(诸如图1的NVM 110)的数据的位置存储在易失性存储器(诸如图1的易失性存储器112和NVM 110)中的逻辑到物理(L2P)表内。L2P表包括到存储数据诸如用户数据的一个或多个逻辑块地址(LBA)的指针。
如图3所示,分区中的每个块为4K大小。术语“块”用于示例性目的,并且不限于4K大小。数据存储设备106以4K Write0、8K Write1和16KWrite2的顺序接收三个写入命令(即,三个分区附加命令)。此外,分区的写入指针(WP)对应于写入命令的下一个可用位置。在图3中,将4KWrite0写入第一块,并且新写入指针位置在第二块的开始处(即,在分区中的4K大小位置处)。在将Write0写入第一块之后,将8K Write1写入下一个可用块,从而占用接下来的两个块(即,两个4K大小的块)。更新写入指针以反映用于下一个写入命令的分区的16K大小位置。将最后的16K Write2命令写入接下来的四个块(即,四个4K大小的块)。更新写入指针以反映28K的总分区大小,其中下一个写入命令将被写入28K大小的位置。在每个位置处,使用指向每个块或每个写入命令的相关指针来更新L2P表。尽管以上述顺序举例说明,但同时接收的写入命令可以任何顺序(即,无序)顺序地写入,使得由于ZNS环境,Write2可在Write0之前被写入分区中。
图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的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中所提及的。术语“写入”可进一步包括由于内部驱动器处理需要(开放块数据保留问题,因为错误位在开放擦除块上累积得更快)而将分区移动到满(即,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值表示开放分区可保持开放的时间。在标准存储设备中,ZAL值在由主机设备104使用相关分区的时间内是固定的(即,存储设备针对相关分区从主机接收写入或读取命令)。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是根据一个实施方案的分区附加调度的示意图。存储设备的每个开放分区(诸如图1的数据存储设备106)由控制器(诸如图1的控制器108)来监测。控制器108可以基于分区的状态而在每个分区上应用分区优先级值,所述分区包括但不限于分区中可用的数据的量、分区健康(即,分区循环)以及开放分区在达到ZAL之前可具有的剩余时间,如图4中所述。基于分区优先级来调度每个分区附加命令,使得达到分区关闭标准的分区可以首先被写入,从而在没有平板电脑或虚设数据的情况下有效地将分区填充至最大容量。
在图5中,分区X具有如由圆柱体所示的某一容量,其中圆柱体的体积是分区的有效容量的表示(即,总容量-元数据和开销损失的空间)。例如,如果分区X(即,圆柱体)的有效容量(在分区中可用的数据的量)为300MiB,则可以将300MiB的用户数据写入分区X。此外,控制器108可具有固件以确定可以通过利用水印(诸如Watermark A、Watermark B和Watermark C)将某一分区填充到何种程度。分区可以具有与容量相关联的一个或多个水印,其中更多的水印允许在确定分区中的当前数据体积方面具有更大准确度。例如,Watermark A是指用数据填充到总容量的四分之一(即,75MiB)的分区,Watermark B是指填充到总容量的一半(即,150MiB)的分区,并且水印C是指填充到总容量(即,225MiB)的四分之三的分区。
此外,分区X与分区年龄相关联,其中分区年龄是指分区处于活动状态和开放状态的时间量,如图4中所述。具有更高分区年龄(即,更老的分区)的分区更容易受到位错误累积的影响,并且在分区的当前年龄与分区的ZAL之间具有比具有更低分区年龄的分区的差异更小的差异。通过将分区的年龄与可以写入分区中的数据的量这两者相关联,可以利用分区优先级调度(即,要将数据写入哪个区)来有效地管理存储设备中的开放分区。
图6是根据一个实施方案的分区附加命令调度器的示意图。图5的各方面可类似于图6的示意图。在图6中,开放多个分区。存储设备中的并行开放分区越多,分区附加命令调度器的复杂性越大。例如,每个开放分区具有XOR缓冲器,并且每个开放XOR缓冲器通常可以不存储在SRAM中。在一些情况下,控制器(诸如图1的控制器108)可将XOR缓冲器折叠到存储设备的DRAM和NAND中,诸如图1的数据存储设备106。分区附加命令调度器可以是图5中描述的分区附加命令调度器。
分区附加命令调度器可以根据一个或多个标准来操作,诸如分区满度和分区老化,使得更满且更老的分区具有比更不满且更年轻的分区的优先级更高的优先级。一旦分区超过预定阈值,诸如分区年龄、分区满度或两者,控制器108就通过用平板电脑数据填充剩余空间来关闭分区。通过利用分区的优先级评级,分区可以更快速地关闭,使得在数据存储设备106内累积多个开放区域。控制器108识别在分区的整个生命周期中分区的优先级评级。分区的生命周期由图4中描述的ZNS协议来表征。出于示例性目的,分区附加命令可以被称为本文中的命令。控制器在命令提取阶段期间接受分区的状态。此外,当选择执行阶段中的下一个命令时,进一步考虑分区的状态。当将与分区附加命令相关联的数据或控制消息转移时,在任何仲裁阶段中考虑分区的状态。
在特定条件下,ZNS协议允许设备关闭开放分区或将分区置于离线状态。在一个实施方案中,一旦存储设备检测到分区将处于离线状态,存储设备就将为相关分区分配最高优先级评级,并且尝试通过执行与相关分区相关联的分区附加命令来正常关闭分区,使得在不用平板电脑数据填充分区的情况下将分区填充和关闭。
所述分区附加调度器接收与分区相关联的所有可用命令的状态以及每个分区的状态。例如,每个分区接收大量未完成的命令,这些命令包括保持在存储设备中用于执行的命令(即缓冲器)、等待从主机(诸如图1的主机设备104)提取的命令、存储器、在执行阶段中等待的命令等。所述分区附加命令调度器接收每个分区的优先级,所述优先级基于所述分区中可用数据的量和分区老化。基于所述分区信息,所述分区附加命令调度器确定具有最高优先级的分区,并尝试调度命令以关闭所述分区。例如,如果三个分区、分区1、分区2和分区3在数据存储设备106中是开放的,则控制器108基于诸如分区满度和分区老化等因素确定每个分区的优先级评级。如果分区3的优先级评级高于分区1的优先级评级,并且分区1的优先级评级高于分区2的优先级评级,则分区附加命令调度器将首先尝试将命令调度到分区3以首先填充该分区,然后调度到分区1以第二个填充该分区,并且然后调度到分区2以第三个填充该分区。
图7是示出根据一个实施方案的存储系统700的示意框图。存储系统700的各方面可类似于图1的存储系统100。主机702可利用具有包括在数据存储设备710中的分区命名空间的非易失性存储器(NVM)734以有效地存储和检索数据。主机702包括主机存储器704和接口(未示出)。主机702可包括各种各样的设备,诸如计算机服务器、网络附联存储(NAS)单元、台式计算机、笔记本(例如,膝上型)计算机、平板计算机(例如,“智能”平板电脑)、移动设备、机顶盒、电话手机(例如,“智能”电话)、电视机、相机、显示设备、数字媒体播放器、视频游戏控制台、视频流设备、汽车应用(例如,地图绘制、自主驾驶)或能够运行一个或多个虚拟主机的其它设备。在某些实施方案中,主机702包括具有处理单元或能够处理数据的任何形式的硬件的任何设备,包括通用处理单元、专用硬件(诸如专用集成电路(ASIC))、可配置硬件(诸如现场可编程门阵列(FPGA))、或由软件指令、微代码或固件配置的任何其他形式的处理单元。主机存储器704为允许存储和检索信息(诸如可执行指令、加密密钥、配置和其他数据)的设备。主机存储器704可为DRAM、虚拟存储器、其他主存储器以及它们的组合。主机存储器704包括并行冗余协议、数据缓冲器和其它部件。
接口可以是网络接口或数据存储设备接口。网络接口使主机702能够经由通信介质而与数据存储设备710通信。网络接口可为一个或多个网络适配器,也称为网络接口卡(NIC)。数据存储设备接口使主机702能够经由专用链路而与数据存储设备710通信。
主机702接口与数据存储设备710接口交互,用于主机702与数据存储设备710之间的通信的进入和外出。数据存储设备710接口和主机702接口在通信协议(诸如外围部件接口Express(PCIe)串行通信协议或其他合适的通信协议)下操作。接口包括一个或多个端口,诸如PCIe端口、RDMA端口(以太网、RoCE/iWARP、InfinBand)、光纤通道端口、TCP端口或其他合适的构架端口。连接到PCIe构架的设备通过提供PCIe地址直接通信到其他设备。该构架基于PCIe地址将此类通信路由到适当的设备。地址的一部分为指定要将通信路由到的物理设备的设备号。
主机702和数据存储设备710可通过NVMe通信在PCIe接口上通信。NVMe通信可由PCIe构架上的NVMe、非PCIe构架上的NVMe和/或本地PCIe中的一者或多者进行。非PCIe构架上的NVMe包括构架接口两侧的运输抽象层,以转换非PCIe构架上的本机PCIe事务。主机702可通过数据中心存储系统网络、企业存储系统网络、存储区域网络、云存储网络、局域网(LAN)、广域网(WAN)、互联网、其他网络、有线链路、无线链路以及它们的互连件连接到数据存储设备710。
数据存储设备710可为网络存储设备、内部存储驱动器(例如,服务器计算机、台式硬盘驱动器、笔记本电脑)、数据中心存储设备、外部存储设备、嵌入式大容量存储设备、可移动大容量存储设备和其他合适的数据存储设备。
数据存储设备710包括存储设备控制器712,其管理数据存储设备710的操作,诸如对包括ZNS协议的NVM 734的分区命名空间的写入和从其的读取,如图5中所述。本文使用的术语NVM可以单独指NS-A或指数据存储设备710内的一个或多个非易失性存储器单元以用于示例性目的。每个命名空间包括一个或多个分区,诸如分区0和分区1。存储设备控制器712可包括一个或多个处理器714,该一个或多个处理器可为多核处理器。处理器714通过固件和/或软件来处理数据存储设备710的部件。处理器714执行固件和/或软件的计算机可读程序代码的指令。存储设备控制器712通过由处理器714、由硬件或由它们的组合执行指令来实施本文所述的过程。硬件可包括存储设备控制器712的各种部件,诸如逻辑门、开关、专用集成电路(ASIC)、可编程逻辑控制器、嵌入式微控制器、寄存器以及其他部件。
存储设备控制器712可在NVMe协议下操作,但其他协议也是适用的。NVMe协议是为SSD开发的用于在通过PCIe接口链接的主机和存储设备上操作的通信接口/协议。NVMe协议为由主机702访问存储在数据存储设备710中的数据提供命令队列和完成路径。
数据存储设备710的NVM 734可被配置用于作为非易失性存储器空间的信息的长期存储,并且在通电/断电循环后保留信息。NVM 734可由NAND闪存存储器的一个或多个裸片组成。非易失性存储器的其他示例包括相变存储器、ReRAM存储器、MRAM存储器、磁介质(包括叠瓦式磁记录)、光盘、软盘、电可编程只读存储器(EPROM)、电可擦除可编程只读存储器(EEPROM)和其他固态存储器。磁介质非易失性存储器可为数据存储设备710中的一个或多个磁盘。每个盘片可以包含由一个或多个数据轨道组成的一个或多个区域。NVM 734可包括一种或多种类型的非易失性存储器。
数据存储设备710还可以包括其他部件,诸如闪存接口模块730、分区附加命令调度器718、纠错模块732、命令提取器720、命令执行器726和控制路径722。存储设备控制器712可利用闪存接口模块730与NVM 734进行交互以进行读取和写入操作。DMA模块724在没有主机702CPU参与的情况下执行主机702和数据存储设备710之间的数据传输。数据传输调度器728在激活控制路径以提取物理页面区域(PRP)、发布完成和中断以及激活DMA以在主机702和数据存储设备710之间进行实际数据传输时控制数据传输。纠错模块732校正从存储器阵列提取的数据。命令提取器720将命令解析到命令执行器726以用于在闪存接口模块730上执行。分区附加命令调度器718可以是图5和图6的分区附加调度器,其中所述分区附加命令调度器接收与所述分区相关联的所有可用命令的状态和具有相关可用命令的每个分区的状态。
图8是示出基于分区状态的分区附加命令优先级的图。图4、图5、图6和图7的方面可以在图8的描述中相关。命令的优先级基于开放分区的状态而增加。开放分区的状态包括分区的满度和分区的年龄。举例来说,更高优先级的分区包括更多数据,并且将在具有较少数据的分区之前用数据填充。如图8中所示,与优先级相比,分区满度和分区老化的组合具有指数关系。随着分区老化和被数据填充,该分区具有更高累积不可接受量的位错误的可能性,这可能损坏当前数据或使存储在分区中的数据不可用。分区附加命令调度器允许有效管理分区,以便最小化并行开放分区的数量并缩短分区的平均寿命,以通过编程/擦除循环来增加每个分区的耐久性。
通过确定ZNS环境中的开放分区的优先级,可以调度分区附加命令以最大化由于满度而不是因为老化而关闭的分区的数量。
在一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置成:确定分区命名空间(ZNS)环境中的至少一个分区的状态;确定所述ZNS环境中的所述至少一个分区的年龄;基于所确定的状态和所确定的年龄来计算所述至少一个分区的优先级;并且基于所计算的优先级来处理分区附加命令。至少一个分区的状态是至少一个分区的满度。控制器被配置成确定状态、确定年龄并且计算所述ZNS环境的所有开放分区的优先级。控制器被配置成以从高优先级到低优先级的优先级顺序来处理分区附加命令。控制器包括分区附加命令调度器。所述控制器被进一步配置成将所计算的优先级发送到所述分区附加命令调度器。计算优先级包括将所确定的状态和所确定的年龄添加在一起。控制器被配置成确定所述状态、确定所述年龄并且在从主机设备提取数据之前计算所述优先级。
在另一个实施方案中,一种数据存储设备包括:存储器设备;和控制器,所述控制器耦接到所述存储器设备,其中所述控制器包括:命令提取器;命令执行器;闪存接口模块,所述闪存接口模块耦接到所述存储器设备;和分区附加命令调度器,所述分区附加命令调度器耦接到所述命令提取器、所述命令执行器和所述闪存接口模块。分区附加命令调度器监测分区命名空间(ZNS)环境中的每个分区的年龄。所述分区附加命令调度器监测所述ZNS中的每个分区的状态。所述分区附加命令调度器被配置成基于针对每个分区计算的优先级来指示所述命令提取器为所述分区提取命令。针对每个分区所计算的优先级基于每个分区的年龄和每个分区的状态。所述分区附加命令调度器被配置成向待被写入与另一个分区相比具有更长开放时间段的分区的分区附加命令提供更高优先级。所述分区附加命令调度器被配置成向待被写入与另一个分区相比更接近满的分区的分区附加命令提供更高优先级。
在另一个实施方案中,一种数据存储设备包括:存储器设备;控制器,所述控制器耦接到所述存储器设备;和用于基于分区命名空间(ZNS)环境中的开放分区的年龄和开放分区的满度来调度分区附加命令的装置。数据存储设备进一步包括用于确定所有开放分区的年龄的装置。数据存储设备进一步包括用于确定所有开放分区的年龄的装置。所述数据存储设备进一步包括用于指示命令提取器根据来自待调度的所述装置的指令来提取命令的装置。数据存储设备进一步包括用于监测所有开放分区的分区状态的装置。
虽然前述内容针对本公开的实施方案,但是可以在不脱离本公开的基本范围的情况下设想本公开的其他和另外的实施方案,并且本公开的范围由所附权利要求书确定。
Claims (20)
1.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器被配置成:
确定分区命名空间(ZNS)环境中的至少一个分区的状态;
确定所述ZNS环境中的所述至少一个分区的年龄;
基于所确定的状态和所确定的年龄来计算所述至少一个分区的优先级;并且
基于所计算的优先级来处理分区附加命令。
2.根据权利要求1所述的数据存储设备,其中所述至少一个分区的所述状态是所述至少一个分区的满度。
3.根据权利要求1所述的数据存储设备,其中所述控制器被配置成确定状态、确定年龄并且计算所述ZNS环境的所有开放分区的优先级。
4.根据权利要求3所述的数据存储设备,其中所述控制器被配置成以从高优先级到低优先级的优先级顺序来处理分区附加命令。
5.根据权利要求1所述的数据存储设备,其中所述控制器包括分区附加命令调度器。
6.根据权利要求5所述的数据存储设备,其中所述控制器被进一步配置成将所计算的优先级发送到所述分区附加命令调度器。
7.根据权利要求1所述的数据存储设备,其中计算所述优先级包括将所确定的状态和所确定的年龄添加在一起。
8.根据权利要求1所述的数据存储设备,其中所述控制器被配置成确定所述状态、确定所述年龄并且在从主机设备提取数据之前计算所述优先级。
9.一种数据存储设备,所述数据存储设备包括:
存储器设备;和
控制器,所述控制器耦接到所述存储器设备,其中所述控制器包括:
命令提取器;
命令执行器;
闪存接口模块,所述闪存接口模块耦接到所述存储器设备;和
分区附加命令调度器,所述分区附加命令调度器耦接到所述命令提取器、所述命令执行器和所述闪存接口模块。
10.根据权利要求9所述的数据存储设备,其中所述分区附加命令调度器监测分区命名空间(ZNS)环境中的每个分区的年龄。
11.根据权利要求10所述的数据存储设备,其中所述分区附加命令调度器监测所述ZNS中的每个分区的状态。
12.根据权利要求9所述的数据存储设备,其中所述分区附加命令调度器被配置成基于针对每个分区计算的优先级来指示所述命令提取器为所述分区提取命令。
13.根据权利要求12所述的数据存储设备,其中针对每个分区所计算的优先级基于每个分区的年龄和每个分区的状态。
14.根据权利要求9所述的数据存储设备,其中所述分区附加命令调度器被配置成向待被写入与另一个分区相比具有更长开放时间段的分区的分区附加命令提供更高优先级。
15.根据权利要求9所述的数据存储设备,其中所述分区附加命令调度器被配置成向待被写入与另一个分区相比更接近满的分区的分区附加命令提供更高优先级。
16.一种数据存储设备,所述数据存储设备包括:
存储器设备;
控制器,所述控制器耦接到所述存储器设备;以及
用于基于分区命名空间(ZNS)环境中的开放分区的年龄和开放分区的满度来调度分区附加命令的装置。
17.根据权利要求16所述的数据存储设备,所述数据存储设备进一步包括用于确定所有开放分区的年龄的装置。
18.根据权利要求16所述的数据存储设备,所述数据存储设备进一步包括用于确定所有开放分区的年龄的装置。
19.根据权利要求16所述的数据存储设备,所述数据存储设备进一步包括用于指示命令提取器根据来自待调度的所述装置的指令来提取命令的装置。
20.根据权利要求16所述的数据存储设备,所述数据存储设备进一步包括用于监测所有开放分区的分区状态的装置。
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
US16/845,685 | 2020-04-10 | ||
US16/845,685 US11372543B2 (en) | 2020-04-10 | 2020-04-10 | Zone-append command scheduling based on zone state |
PCT/US2020/064595 WO2021206762A1 (en) | 2020-04-10 | 2020-12-11 | Zone-append command scheduling based on zone state |
Publications (1)
Publication Number | Publication Date |
---|---|
CN114746834A true CN114746834A (zh) | 2022-07-12 |
Family
ID=78006557
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
CN202080081489.3A Pending CN114746834A (zh) | 2020-04-10 | 2020-12-11 | 基于分区状态的分区附加命令调度 |
Country Status (4)
Country | Link |
---|---|
US (1) | US11372543B2 (zh) |
CN (1) | CN114746834A (zh) |
DE (1) | DE112020005044T5 (zh) |
WO (1) | WO2021206762A1 (zh) |
Families Citing this family (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US11361837B1 (en) | 2020-12-09 | 2022-06-14 | Micron Technology, Inc. | Memory location age tracking on memory die |
KR20220104511A (ko) * | 2021-01-18 | 2022-07-26 | 에스케이하이닉스 주식회사 | 컨트롤러 및 이를 포함하는 메모리 시스템 |
US20230409235A1 (en) * | 2022-05-31 | 2023-12-21 | Microsoft Technology Licensing, Llc | File system improvements for zoned storage device operations |
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 |
---|---|---|---|---|
US7685374B2 (en) * | 2007-07-26 | 2010-03-23 | Siliconsystems, Inc. | Multi-interface and multi-bus structured solid-state storage subsystem |
US10417190B1 (en) * | 2014-09-25 | 2019-09-17 | Amazon Technologies, Inc. | Log-structured file system for zone block devices with small zones |
US20170123928A1 (en) | 2015-10-30 | 2017-05-04 | Netapp, Inc. | Storage space reclamation for zoned storage |
US10755742B2 (en) * | 2016-02-05 | 2020-08-25 | Seagate Technology Llc | Fragmented data storage bands |
US11861188B2 (en) * | 2016-07-19 | 2024-01-02 | Pure Storage, Inc. | System having modular accelerators |
US10642532B2 (en) * | 2017-02-28 | 2020-05-05 | International Business Machines Corporation | Storing data sequentially in zones in a dispersed storage network |
US10452278B2 (en) * | 2017-03-24 | 2019-10-22 | Western Digital Technologies, Inc. | System and method for adaptive early completion posting using controller memory buffer |
US10387081B2 (en) | 2017-03-24 | 2019-08-20 | Western Digital Technologies, Inc. | System and method for processing and arbitrating submission and completion queues |
CN114546293A (zh) * | 2017-09-22 | 2022-05-27 | 慧荣科技股份有限公司 | 快闪存储器的数据内部搬移方法以及使用该方法的装置 |
KR20190040604A (ko) * | 2017-10-11 | 2019-04-19 | 에스케이하이닉스 주식회사 | 메모리 시스템 및 메모리 시스템의 동작 방법 |
US10691543B2 (en) * | 2017-11-14 | 2020-06-23 | International Business Machines Corporation | Machine learning to enhance redundant array of independent disks rebuilds |
US10437670B1 (en) * | 2018-05-24 | 2019-10-08 | International Business Machines Corporation | Metadata hardening and parity accumulation for log-structured arrays |
US10572174B2 (en) * | 2018-06-15 | 2020-02-25 | EMC IP Holding Company LLC | Data lifetime-aware migration |
US10996894B2 (en) * | 2019-07-17 | 2021-05-04 | International Business Machines Corporation | Application storage segmentation reallocation |
US11112979B2 (en) * | 2019-07-26 | 2021-09-07 | Micron Technology, Inc. | Runtime memory allocation to avoid and delay defect effects in memory sub-systems |
KR20210044564A (ko) * | 2019-10-15 | 2021-04-23 | 삼성전자주식회사 | 스토리지 장치 및 그것의 가비지 컬렉션 방법 |
US20200089407A1 (en) | 2019-11-22 | 2020-03-19 | Intel Corporation | Inter zone write for zoned namespaces |
JP2021114038A (ja) * | 2020-01-16 | 2021-08-05 | キオクシア株式会社 | メモリシステムおよび制御方法 |
-
2020
- 2020-04-10 US US16/845,685 patent/US11372543B2/en active Active
- 2020-12-11 DE DE112020005044.0T patent/DE112020005044T5/de active Pending
- 2020-12-11 CN CN202080081489.3A patent/CN114746834A/zh active Pending
- 2020-12-11 WO PCT/US2020/064595 patent/WO2021206762A1/en active Application Filing
Also Published As
Publication number | Publication date |
---|---|
US11372543B2 (en) | 2022-06-28 |
DE112020005044T5 (de) | 2022-11-10 |
WO2021206762A1 (en) | 2021-10-14 |
US20210318801A1 (en) | 2021-10-14 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11126378B1 (en) | Rate limit on the transitions of zones to open | |
KR102569783B1 (ko) | 비순차적 구역 네임스페이스들 | |
US11520660B2 (en) | Storage devices hiding parity swapping behavior | |
CN112148627A (zh) | 针对分区命名空间的分区形成 | |
US11599304B2 (en) | Data aggregation in ZNS drive | |
US11372543B2 (en) | Zone-append command scheduling based on zone state | |
US20200409601A1 (en) | Hold of Write Commands in Zoned Namespaces | |
US11500727B2 (en) | ZNS parity swapping to DRAM | |
CN114730604A (zh) | 动态zns开放分区活动限制 | |
CN114730290A (zh) | 将变化日志表移动至与分区对准 | |
CN117043753A (zh) | Zns设备中的不同写入优先级 | |
US11960753B2 (en) | Solution for super device imbalance in ZNS SSD | |
US20230062285A1 (en) | Purposeful Super Device Imbalance For ZNS SSD Efficiency | |
CN113744783A (zh) | 分区名称空间(zns)驱动器中的写入数据传送调度 | |
CN114730250A (zh) | 根据存储设备中的分区对读取命令加权 | |
US11656984B2 (en) | Keeping zones open with intermediate padding | |
US11853565B2 (en) | Support higher number of active zones in ZNS SSD | |
CN114730291A (zh) | 具有分区的ssd的数据停放 | |
CN117616374A (zh) | 用于对来自主机设备的门铃事务命令进行分组的数据存储设备、系统和相关方法 | |
CN114730605A (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 |