[go: up one dir, main page]

CN117369718A - System, method and apparatus for forming and selecting recovery units in storage devices - Google Patents

System, method and apparatus for forming and selecting recovery units in storage devices Download PDF

Info

Publication number
CN117369718A
CN117369718A CN202310814590.0A CN202310814590A CN117369718A CN 117369718 A CN117369718 A CN 117369718A CN 202310814590 A CN202310814590 A CN 202310814590A CN 117369718 A CN117369718 A CN 117369718A
Authority
CN
China
Prior art keywords
data
information
reclamation
unit
storage device
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
Application number
CN202310814590.0A
Other languages
Chinese (zh)
Inventor
丹尼尔·李·赫尔米克
吴晨志
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Samsung Electronics Co Ltd
Original Assignee
Samsung Electronics Co Ltd
Priority date (The priority date 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 date listed.)
Filing date
Publication date
Priority claimed from US18/099,250 external-priority patent/US20240012580A1/en
Application filed by Samsung Electronics Co Ltd filed Critical Samsung Electronics Co Ltd
Publication of CN117369718A publication Critical patent/CN117369718A/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input 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/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0628Interfaces specially adapted for storage systems making use of a particular technique
    • G06F3/0629Configuration or reconfiguration of storage systems

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)
  • Techniques For Improving Reliability Of Storages (AREA)

Abstract

Systems, methods, and apparatus for forming and selecting recovery units in storage devices are disclosed. The storage device may include: at least one storage medium; and a controller configured to: receiving a write command, wherein the write command specifies data and a reclamation unit handle; receiving information about the data; and storing data in the reclamation unit of the at least one storage medium based on the reclamation unit handle and the information. The information may include access information. The information may include error tolerance information. The information may include data attribute information. The information may include data type information. The controller may be configured to determine the information based at least in part on the reclamation unit handle. The controller may be configured to receive an indicator separate from the reclamation unit handle; and determining the information based at least in part on the indicator.

Description

在存储装置中形成和选择回收单元的系统、方法和装置Systems, methods and devices for forming and selecting recycling units in storage devices

本申请要求于2022年11月2日提交的第63/421,994号美国临时专利申请、于2022年7月6日提交的第63/358,861号美国临时专利申请和于2022年10月26日提交的第63/419,699号美国临时专利申请的优先权和权益,所述美国临时专利申请的全部通过引用包含于此。This application claims U.S. Provisional Patent Application No. 63/421,994 filed on November 2, 2022, U.S. Provisional Patent Application No. 63/358,861 filed on July 6, 2022, and U.S. Provisional Patent Application No. 63/358,861 filed on October 26, 2022 Priority and benefit of U.S. Provisional Patent Application No. 63/419,699, the entirety of which is incorporated herein by reference.

技术领域Technical field

本公开总体涉及存储装置,并且更具体地涉及用于在存储装置中形成和选择回收单元的系统、方法和设备。The present disclosure relates generally to storage devices, and more specifically to systems, methods, and apparatus for forming and selecting recycling units in storage devices.

背景技术Background technique

诸如固态驱动器(SSD)的存储装置可将数据存储在可使用非易失性存储器(NVM)实现的存储介质中。在一些非易失性存储器中,可通过擦除存储数据的存储器,并在擦除的存储器中重新写入新数据来更新数据。一些非易失性存储器可以以页为单位被写入和/或读取,但是以可包括多个页的块为单位被擦除。因此,为了更新存储在非易失性存储器的页中的数据,可将存储在同一块中的其他页中的有效数据复制到不同的块,以防止在擦除块时丢失有效数据。Storage devices such as solid state drives (SSD) can store data in storage media that can be implemented using non-volatile memory (NVM). In some non-volatile memories, data can be updated by erasing the memory where the data is stored and rewriting new data in the erased memory. Some non-volatile memories can be written and/or read in units of pages, but erased in units of blocks, which may include multiple pages. Therefore, in order to update data stored in a page of non-volatile memory, valid data stored in other pages in the same block can be copied to a different block to prevent the loss of valid data when the block is erased.

在该背景技术部分中公开的以上信息仅用于增强对发明原理的背景技术的理解,因此它可包含不构成现有技术的信息。The above information disclosed in this Background section is only for enhancement of understanding of the background of the principles of the invention and therefore it may contain information that does not constitute the prior art.

发明内容Contents of the invention

一种存储装置可包括:至少一个存储介质;以及控制器,被配置为:接收写入命令,其中,写入命令指定数据和回收单元句柄;接收关于数据的信息;并且基于回收单元句柄和所述信息,将数据存储在所述至少一个存储介质的回收单元中。所述信息可包括访问信息。所述信息可包括误差容限信息。所述信息可包括数据属性信息。所述信息可包括数据类型信息。控制器可被配置为至少部分地基于回收单元句柄来确定信息。控制器可被配置为接收与回收单元句柄分开的指示符;并且至少部分地基于指示符确定所述信息。控制器可被配置为基于所述信息选择回收单元。控制器可被配置为基于回收单元的至少一部分的特性选择回收单元。特性可包括编程循环的数量。特性可包括误差累积特性。控制器可被配置为基于所述信息组成回收单元。控制器可被配置为基于回收单元的至少一部分的特性组成回收单元。特性可包括编程循环的数量。特性可包括误差累积特性。A storage device may include: at least one storage medium; and a controller configured to: receive a write command, wherein the write command specifies data and a recycling unit handle; receive information about the data; and based on the recycling unit handle and the recycling unit handle The information is stored in the recycling unit of the at least one storage medium. The information may include access information. The information may include error tolerance information. The information may include data attribute information. The information may include data type information. The controller may be configured to determine the information based at least in part on the reclamation unit handle. The controller may be configured to receive an indicator separate from the recycling unit handle; and to determine the information based at least in part on the indicator. The controller may be configured to select a recycling unit based on the information. The controller may be configured to select the recycling unit based on characteristics of at least a portion of the recycling unit. Characteristics may include the number of programming loops. Characteristics may include error accumulation characteristics. The controller may be configured to form a recycling unit based on the information. The controller may be configured to form the recycling unit based on characteristics of at least a portion of the recycling unit. Characteristics may include the number of programming loops. Characteristics may include error accumulation characteristics.

一种设备可包括放置逻辑,被配置为:将写入命令发送到存储装置,其中,写入命令指定数据和回收单元句柄,其中,回收单元句柄可用于引用存储装置的至少一个存储介质中的回收单元;并且将关于数据的信息发送到存储装置。放置逻辑可被配置为基于数据源的操作确定所述信息。操作可包括写入操作。放置逻辑可被配置为基于一个或多个压缩操作确定所述信息。放置逻辑可被配置为基于一个或多个数据管理方案确定所述信息。所述信息可包括访问信息。所述信息可包括误差容限信息。放置逻辑可被配置为至少部分地基于回收单元句柄发送所述信息。放置逻辑可被配置为至少部分地使用可与回收单元句柄分开的指示符发送所述信息。An apparatus may include put logic configured to send a write command to a storage device, wherein the write command specifies data and a reclamation unit handle, wherein the reclamation unit handle may be used to reference a location in at least one storage medium of the storage device. Recycle the unit; and send information about the data to the storage device. The placement logic may be configured to determine the information based on operations on the data source. Operations may include write operations. The placement logic may be configured to determine the information based on one or more compression operations. The placement logic may be configured to determine the information based on one or more data management schemes. The information may include access information. The information may include error tolerance information. The placement logic may be configured to send the information based at least in part on the reclaim unit handle. The placement logic may be configured to send the information using, at least in part, an indicator separable from the reclaim unit handle.

一种方法可包括在存储装置处接收写入命令,其中,写入命令指定数据和回收单元句柄;在存储装置处接收关于数据的信息;并且基于回收单元句柄和所述信息存储将数据存储在存储装置的至少一个存储介质的回收单元中。所述信息可包括访问信息。所述信息可包括误差容限信息。所述方法还可包括基于所述信息选择回收单元。所述选择可基于回收单元的至少一部分的特性。所述方法还可包括基于所述信息组成回收单元。所述组成可基于回收单元的至少一部分的特性。A method may include receiving a write command at a storage device, wherein the write command specifies data and a reclaim unit handle; receiving information about the data at the storage device; and storing the data in the storage device based on the reclaim unit handle and the information. In the recovery unit of at least one storage medium of the storage device. The information may include access information. The information may include error tolerance information. The method may further include selecting a recycling unit based on the information. The selection may be based on characteristics of at least a portion of the recycling unit. The method may further include composing a recycling unit based on the information. The composition may be based on the characteristics of at least a portion of the recycling unit.

一种方法可包括:在存储装置处接收数据操作请求,其中,数据操作请求指定数据和回收单元句柄;在存储装置处接收关于数据的信息;并且基于数据操作请求、回收单元句柄和所述信息执行与存储装置的至少一个存储介质的回收单元相关联的数据操作。数据操作请求可包括写入操作请求,并且数据操作可包括写入操作。写入操作请求可包括写入命令,并且写入操作可包括基于回收单元句柄和所述信息将数据存储在回收单元中。A method may include: receiving a data operation request at a storage device, wherein the data operation request specifies data and a reclamation unit handle; receiving information about the data at the storage device; and based on the data operation request, the reclamation unit handle, and the information Data operations associated with a reclamation unit of at least one storage medium of the storage device are performed. The data operation request may include a write operation request, and the data operation may include a write operation. The write operation request may include a write command, and the write operation may include storing data in the reclamation unit based on the reclamation unit handle and the information.

附图说明Description of the drawings

附图不必按比例绘制,并且贯穿附图,出于说明性的目的,相似结构或功能的元件通常由类似的参考标号或其部分来表示。附图仅意在便于在此描述的各种实施例的描述。附图不描述在此公开的教导的每个方面,并且不限制权利要求的范围。为了防止附图变得不清楚,并非全部的组件、连接等可被示出,并且并非全部的组件可具有参考标号。然而,组件配置的模式可从附图而易于清楚。附图与说明书一起示出本公开的示例实施例,并且与描述一起用于解释本公开的原理。The drawings are not necessarily to scale, and throughout the drawings, elements of similar structure or function are generally designated by similar reference numerals or portions thereof for illustrative purposes. The drawings are merely intended to facilitate description of the various embodiments described herein. The drawings do not depict every aspect of the teachings disclosed herein and do not limit the scope of the claims. In order to prevent the drawings from becoming unclear, not all components, connections, etc. may be shown, and not all components may have reference numbers. However, the mode of component configuration can be easily understood from the accompanying drawings. The drawings, together with the description, illustrate example embodiments of the disclosure and, together with the description, serve to explain the principles of the disclosure.

图1A示出根据公开的示例实施例的用于第一数据放置状态下的存储装置的数据放置方案的实施例。1A illustrates an embodiment of a data placement scheme for a storage device in a first data placement state, in accordance with disclosed example embodiments.

图1B示出根据公开的示例实施例的第二数据放置状态下的图1A中所示出的数据放置方案的实施例。FIG. 1B illustrates an embodiment of the data placement scheme shown in FIG. 1A in a second data placement state according to disclosed example embodiments.

图1C示出根据公开的示例实施例的第三数据放置状态下的图1A中所示出的数据放置方案的实施例。1C illustrates an embodiment of the data placement scheme shown in FIG. 1A in a third data placement state according to disclosed example embodiments.

图1D示出根据公开的示例实施例的第四数据放置状态下的图1A中所示出的数据放置方案的实施例。FIG. 1D illustrates an embodiment of the data placement scheme shown in FIG. 1A in a fourth data placement state according to disclosed example embodiments.

图1E示出根据公开的示例实施例的第五数据放置状态下的图1A中所示出的数据放置方案的实施例。FIG. 1E illustrates an embodiment of the data placement scheme shown in FIG. 1A in a fifth data placement state according to disclosed example embodiments.

图2A示出根据公开的示例实施例的用于第一数据放置状态下的存储装置的灵活数据放置方案的实施例。2A illustrates an embodiment of a flexible data placement scheme for a storage device in a first data placement state, in accordance with disclosed example embodiments.

图2B示出根据公开的示例实施例的第二数据放置状态下的图2A中所示出的数据放置方案的实施例。2B illustrates an embodiment of the data placement scheme shown in FIG. 2A in a second data placement state according to disclosed example embodiments.

图2C示出根据公开的示例实施例的第三数据放置状态下的图2A中所示出的数据放置方案的实施例。2C illustrates an embodiment of the data placement scheme shown in FIG. 2A in a third data placement state according to disclosed example embodiments.

图2D示出根据公开的示例实施例的第四数据放置状态下的图2A中所示出的数据放置方案的实施例。Figure 2D illustrates an embodiment of the data placement scheme shown in Figure 2A in a fourth data placement state according to disclosed example embodiments.

图3A示出根据公开的示例实施例的在第一数据放置状态下具有引用修改的灵活数据放置方案的实施例。3A illustrates an embodiment of a flexible data placement scheme with reference modification in a first data placement state, in accordance with disclosed example embodiments.

图3B示出根据公开的示例实施例的第二数据放置状态下的图3A中所示出的数据放置方案的实施例。3B illustrates an embodiment of the data placement scheme shown in FIG. 3A in a second data placement state according to disclosed example embodiments.

图3C示出根据公开的示例实施例的第三数据放置状态下的图3A中所示出的数据放置方案的实施例。3C illustrates an embodiment of the data placement scheme shown in FIG. 3A in a third data placement state according to disclosed example embodiments.

图3D示出根据公开的示例实施例的第四数据放置状态下的图3A中所示出的数据放置方案的实施例。Figure 3D illustrates an embodiment of the data placement scheme shown in Figure 3A in a fourth data placement state according to disclosed example embodiments.

图4A示出根据公开的示例实施例的用于第一状态下的灵活数据放置方案的更新操作的实施例。4A illustrates an embodiment of an update operation for a flexible data placement scheme in a first state in accordance with disclosed example embodiments.

图4B示出根据公开的示例实施例的第二状态下的图4A中所示出的更新操作的实施例。Figure 4B illustrates an embodiment of the update operation shown in Figure 4A in a second state according to disclosed example embodiments.

图5示出根据公开的示例实施例的具有回收单元句柄的灵活数据放置方案的实施例。Figure 5 illustrates an embodiment of a flexible data placement scheme with reclaim unit handles in accordance with disclosed example embodiments.

图6示出根据公开的示例实施例的灵活数据放置方案的另一实施例。Figure 6 illustrates another embodiment of a flexible data placement scheme in accordance with disclosed example embodiments.

图7示出根据公开的示例实施例的用于为单元灵活数据放置方案选择用于一个或多个回收的擦除块的技术的第一实施例。7 illustrates a first embodiment of a technique for selecting erase blocks for one or more reclaims for a cell flexible data placement scheme in accordance with disclosed example embodiments.

图8示出根据公开的示例实施例的用于为单元灵活数据放置方案选择用于一个或多个回收的擦除块的技术的第二实施例。8 illustrates a second embodiment of a technique for selecting erase blocks for one or more reclaims for a cell flexible data placement scheme in accordance with disclosed example embodiments.

图9示出根据公开的示例实施例的实现灵活数据放置方案的存储系统的实施例。Figure 9 illustrates an embodiment of a storage system that implements a flexible data placement scheme in accordance with disclosed example embodiments.

图10示出根据公开的示例实施例的用于存储装置的灵活数据放置方案的初始隔离方案的实施例。10 illustrates an example of an initial isolation scheme for a flexible data placement scheme for a storage device in accordance with disclosed example embodiments.

图11示出根据公开的示例实施例的用于存储装置的灵活数据放置方案的持久性隔离方案的实施例。11 illustrates an embodiment of a persistence isolation scheme for a flexible data placement scheme for a storage device, in accordance with disclosed example embodiments.

图12示出根据公开的示例实施例的可用于实现在此公开的任何主机功能的主机设备的示例实施例。12 illustrates an example embodiment of a host device that may be used to implement any of the host functions disclosed herein, in accordance with the disclosed example embodiments.

图13示出根据公开的示例实施例的可用于实现在此公开的任何存储装置功能的存储装置的示例实施例。13 illustrates an example embodiment of a storage device that may be used to implement any of the storage device functions disclosed herein, in accordance with the disclosed example embodiments.

图14示出根据公开的示例实施例的用于存储装置的灵活数据放置的方法的实施例。14 illustrates an embodiment of a method for flexible data placement of a storage device in accordance with disclosed example embodiments.

具体实施方式Detailed ways

存储装置可实现灵活数据放置(FDP)方案,该方案可使主机能够将数据布置到存储装置中的一个或多个物理回收单元(RU)中。回收单元可使用可作为单元被擦除的物理存储介质的一部分(例如,一个或多个擦除块)来实现。这可例如通过使主机能够将可能同时被解除分配的数据放置在同一回收单元中来减少写入放大。The storage device may implement a Flexible Data Placement (FDP) scheme that enables the host to place data into one or more physical reclaim units (RUs) in the storage device. Reclaiming a unit may be implemented using a portion of a physical storage medium that may be erased as a unit (eg, one or more erase blocks). This may, for example, reduce write amplification by enabling the host to place data that may be deallocated at the same time in the same reclamation unit.

在灵活数据放置方案中,回收单元可对主机表现为存储介质的逻辑表示。例如,主机可使用回收单元句柄来引用存储装置可将数据写入其中的一个或多个回收单元。存储装置可选择由回收单元句柄(reclaim unit handle)引用的实际物理回收单元和/或用于实现物理回收单元的存储介质。例如,储存装置可使用循环技术、随机选择技术或总是选择具有最低数量的编程和/或擦除(P/E)循环的一个或多个擦除块以用于下一个回收单元的技术来选择物理储存介质。然而,这些技术可能无法利用关于数据的信息,该信息可帮助存储装置为存储有数据的回收单元选择更有益的物理存储介质。In a flexible data placement scheme, the reclamation unit may appear to the host as a logical representation of the storage media. For example, a host may use a reclamation unit handle to reference one or more reclamation units into which a storage device may write data. The storage device may select the actual physical reclaim unit referenced by the reclaim unit handle and/or the storage medium used to implement the physical reclaim unit. For example, the storage device may use a round-robin technique, a random selection technique, or a technique that always selects one or more erase blocks with a minimum number of program and/or erase (P/E) cycles for the next reclaim unit. Select physical storage media. However, these techniques may not utilize information about the data that could help the storage device select a more beneficial physical storage medium for the recycling unit in which the data is stored.

在根据公开的示例实施例的灵活数据放置方案中,存储装置可接收(例如,从主机)关于将被存储在由回收单元句柄引用的回收单元中的数据的信息。存储装置可使用该信息来选择和/或组成存储数据的物理回收单元。根据实施细节,这可改善或优化存储装置中的不同回收单元、擦除块等的用法。In a flexible data placement scheme according to disclosed example embodiments, a storage device may receive (eg, from a host) information regarding data to be stored in a reclamation unit referenced by a reclamation unit handle. The storage device may use this information to select and/or compose the physical reclamation units where the data is stored. Depending on the implementation details, this can improve or optimize the usage of different reclaim units, erase blocks, etc. in the storage device.

发明原理涵盖可提供给存储装置的多种类型的信息。例如,可向存储装置提供关于将存储在装置中的数据的访问信息。访问信息可包括例如:数据已经多快被写入、读取等;数据预计多久被覆写、读取等;数据已经或预计多频繁被写入、读取等;和/或其他访问信息。作为另一示例,可向存储装置提供关于用于实现数据的回收单元的存储介质的一个或多个可接受特性的信息。可接受的特性可包括:误差容限(error tolerance)信息(诸如,可例如基于存储数据的时间长度以及读取操作、重新写入操作(例如,刷新操作)、数据移动操作(例如,垃圾收集(GC)操作)等的数量而被指定的可接受的位误差率(BER);剩余P/E循环的数量;和/或存储介质的其他可接受特性)。作为另一示例,可向存储装置提供关于将被存储在装置中的数据的一个或多个属性的信息。属性信息可包括:服务级协议(SLA)信息;服务质量(QoS)信息;访问延迟信息;访问带宽信息等。作为另一示例,可向存储装置提供关于将被存储的数据的类型和/或用法的信息,诸如操作系统元数据、文件系统表等。The inventive principles encompass multiple types of information that may be provided to a storage device. For example, a storage device may be provided with access information regarding data to be stored in the device. Access information may include, for example: how quickly data has been written, read, etc.; how often data is expected to be overwritten, read, etc.; how often data has been or is expected to be written, read, etc.; and/or other access information. As another example, a storage device may be provided with information regarding one or more acceptable characteristics of a storage medium for implementing a recycling unit of data. Acceptable characteristics may include: error tolerance information (such as may be based, for example, on the length of time the data is stored as well as read operations, rewrite operations (e.g., refresh operations), data movement operations (e.g., garbage collection) An acceptable bit error rate (BER) specified by the number of (GC) operations), etc.; the number of remaining P/E cycles; and/or other acceptable characteristics of the storage medium). As another example, a storage device may be provided with information regarding one or more properties of data to be stored in the device. The attribute information may include: service level agreement (SLA) information; quality of service (QoS) information; access delay information; access bandwidth information, etc. As another example, the storage device may be provided with information regarding the type and/or usage of the data to be stored, such as operating system metadata, file system tables, etc.

发明原理涵盖用于将关于将在装置处存储数据的信息提供给存储装置的多种技术。例如,信息可被隐式地提供(例如,存储在由不同的预定义回收单元句柄号引用的回收单元中的数据可基于回收单元句柄号而具有不同的访问频率)和/或被显式地提供(例如,存储装置可设置有可提供关于数据的显式信息的命令、句柄等的字段、扩展等)。作为另一示例,关于数据的信息可被持久地提供(例如,写入命令的序列中的数据的信息可以是相同的,直到信息被更新)和/或在单独的基础上提供(例如,可使用每个写入命令为数据提供信息)。作为另一示例,关于数据将存储在存储装置处的信息可使用任何通信技术而被提供给存储装置,该通信技术包括:作为回收单元句柄的扩展(例如,回收单元句柄加访问信息的指示);隐含地在回收单元句柄号中;存储装置控制器的设置;命名空间属性;使用对回收单元句柄的更新操作的请求;作为灵活数据放置方案的配置设置;在输入和/或输出(I/O或IO)命令的字段中;在管理命令的字段中;作为非易失性存储器(NVM)子系统、控制器、命名空间等的属性、设置等。The inventive principles encompass a variety of techniques for providing information to a storage device regarding data to be stored at the device. For example, the information may be provided implicitly (e.g., data stored in a reclamation unit referenced by a different predefined reclamation unit handle number may have different access frequencies based on the reclamation unit handle number) and/or be explicitly Provide (eg, the storage device may be provided with fields, extensions, etc. of commands, handles, etc. that may provide explicit information about the data). As another example, information about data may be provided persistently (e.g., information for data in a sequence of write commands may be the same until the information is updated) and/or provided on an individual basis (e.g., may Use each write command to provide information for the data). As another example, information that data is to be stored at the storage device may be provided to the storage device using any communication technology including: as an extension of the reclamation unit handle (eg, an indication of the reclamation unit handle plus access information) ;Implicitly in the reclamation unit handle number;Storage controller settings;Namespace attributes;Requests using update operations on reclamation unit handles;Configuration settings as a flexible data placement scheme;On input and/or output (I /O or IO) command; in the field of a management command; as properties, settings, etc. of a non-volatile memory (NVM) subsystem, controller, namespace, etc.

发明原理涵盖用于存储装置使用关于数据的信息来选择和/或组成存储数据的一个或多个回收单元的多种技术。例如,如果信息指示数据可能被频繁写入和/或重新写入(其可被称为热数据),则存储装置可选择和/或组成具有这样的存储介质的回收单元,该存储介质可具有在其预期寿命中剩余的相对大量的P/E循环。作为另一示例,如果信息指示数据具有相对高的误差容限,例如,因为数据可作为冗余存储方案(例如,独立驱动器冗余阵列RAID方案)的一部分而被存储在存储装置中,所以存储装置可选择和/或组成具有这样的存储介质的回收单元,该存储介质可具有在其预期寿命中剩余的相对少量的P/E循环。作为另一示例,存储装置可使用关于数据将存储在装置处的信息,以基于驱动器处的存储介质的以下属性中的一个或多个来选择和/或组成回收单元:晶片生产信息、存储介质裸片(die)上的擦除块位置、读取、写入(编程)和/或擦除操作的电压和/或速度特性、位误差累积率、存储介质和/或相邻介质等的当前和/或历史温度暴露、访问活性等。Inventive principles encompass a variety of techniques for a storage device to use information about the data to select and/or compose one or more recycling units where the data is stored. For example, if the information indicates that the data may be frequently written and/or rewritten (which may be referred to as hot data), the storage device may select and/or form a recycling unit with a storage medium that may have Relatively large number of P/E cycles remaining in its expected life. As another example, if the information indicates that the data has a relatively high error tolerance, for example, because the data may be stored in the storage device as part of a redundant storage scheme (eg, a redundant array of independent drives RAID scheme), the storage The device may be selected and/or composed of a recycling unit with storage media that may have a relatively small number of P/E cycles remaining over its expected life. As another example, a storage device may use information about where data will be stored at the device to select and/or compose a recycling unit based on one or more of the following attributes of the storage media at the drive: wafer production information, storage media Erase block location on the die, voltage and/or speed characteristics of read, write (programming) and/or erase operations, bit error accumulation rate, current status of storage media and/or adjacent media, etc. and/or historical temperature exposure, access activity, etc.

发明原理涵盖用于识别、收集、处理等(例如,由主机)将发送到存储装置的信息(关于数据将存储在存储装置处)的多种技术。例如,主机可观察到由用户(例如,操作系统、应用、进程等)写入的数据可以是或可能是连续使用的和/或已经被存储、可能被存储相对长的时间,并且可将该信息例如与写入请求一起发送到存储装置。作为另一示例,主机可观察到由用户写入的数据可或可能在文件系统级、数据库级等被压缩(例如,垃圾收集),并且将该信息例如与写入请求一起发送到存储装置。作为另一实例,主机可确定数据已经被压缩(例如,垃圾收集)的次数,并且将该信息与将被存储在装置处的数据一起发送到存储装置。作为另一示例,主机可基于一个或多个数据管理方案(诸如,一个或多个高速缓存替换策略、分层存储方案、多层存储架构等)来表征数据用法,并且将该信息与将被存储在装置处的数据一起发送到存储装置。The inventive principles encompass a variety of techniques for identifying, collecting, processing, etc. (eg, by a host) information to be sent to a storage device with respect to which data is to be stored at the storage device. For example, the host may observe that data written by a user (e.g., operating system, application, process, etc.) may be or may be continuously used and/or have been stored, possibly for a relatively long time, and may The information is sent to the storage device, for example, together with the write request. As another example, the host may observe that data written by the user may or may be compressed (eg, garbage collected) at the file system level, database level, etc., and send this information to the storage device, eg, along with the write request. As another example, the host may determine the number of times the data has been compressed (eg, garbage collected) and send this information to the storage device along with the data to be stored at the device. As another example, the host may characterize data usage based on one or more data management schemes (such as one or more cache replacement policies, tiered storage schemes, multi-tier storage architectures, etc.) and compare this information to what is to be used Data stored at the device is sent together to the storage device.

在一些实施例中,基于关于数据的信息,存储装置可为回收单元句柄选择一个或多个现有的回收单元,组成一个或多个回收单元以用于未来写入请求,组成一个或多个回收单元以用于当前的写入请求等。In some embodiments, based on information about the data, the storage device may select one or more existing reclamation units for a reclamation unit handle, form one or more reclamation units for future write requests, form one or more Recycle units for current write requests, etc.

公开涵盖涉及灵活数据放置的多种发明原理。在此公开的原理可具有独立的实用性并且可被单独体现,并且不是每个实施例都可利用每个原理。此外,这些原理还可以以各种组合体现,组合中的一些可以以协同的方式放大各个原理的一些益处。The disclosure covers a variety of inventive principles involving flexible data placement. The principles disclosed herein may have independent applicability and may be embodied separately, and not every embodiment may utilize every principle. Furthermore, these principles can be embodied in various combinations, some of which can amplify some of the benefits of the individual principles in a synergistic manner.

出于说明的目的,一些实施例可在特定实施细节(诸如,使用非与(NAND)闪存、非易失性存储器快速(NVMe)协议等用固态驱动器(SSD)实现的存储装置)的上下文中被描述。然而,发明原理不限于这些或任何其他实施细节。例如,一些实施例可实现具有闪存、磁介质、存储级存储器(SCM)等或它们的任何组合的存储介质。For purposes of illustration, some embodiments may be presented in the context of specific implementation details such as storage devices implemented with solid state drives (SSDs) using Non-AND (NAND) flash memory, Non-Volatile Memory Express (NVMe) protocols, etc. is described. However, inventive principles are not limited to these or any other implementation details. For example, some embodiments may implement storage media with flash memory, magnetic media, storage class memory (SCM), etc., or any combination thereof.

在存储介质可至少部分地使用闪存实现的一些实施例中,回收单元可表示一个或多个擦除块、NVM装置(例如,NVM裸片)等或它们的任何组合,并且回收组可表示一个或多个回收单元、一个或多个NVM装置分区(例如,平面)、一个或多个NVM装置(例如,NVM裸片)、一个或多个存储装置(例如,存储驱动器)等或它们的任何组合。In some embodiments where the storage medium may be implemented at least in part using flash memory, a reclamation unit may represent one or more erase blocks, NVM devices (eg, NVM dies), etc., or any combination thereof, and a reclamation group may represent a or multiple reclamation units, one or more NVM device partitions (e.g., planes), one or more NVM devices (e.g., NVM dies), one or more storage devices (e.g., storage drives), etc. or any of them combination.

在存储介质可至少部分地使用磁介质(例如,叠瓦式磁记录(SMR)介质)实现的一些实施例中,回收单元可表示一个或多个叠瓦部分、区域、扇区、轨道等或它们的任何组合,并且回收组可表示一个或多个盘(例如,驱动器)、盘片、轨道、区域、扇区、叠瓦部分等或它们的任何组合。In some embodiments where the storage medium may be implemented at least in part using magnetic media (eg, shingled magnetic recording (SMR) media), the recycling unit may represent one or more shingled portions, regions, sectors, tracks, etc. or Any combination thereof, and a reclaim group may represent one or more disks (eg, drives), platters, tracks, regions, sectors, tiles, etc., or any combination thereof.

在存储介质可至少部分地用存储级存储器(例如,磁阻随机存取存储器(MRAM)、电阻随机存取存储器(ReRAM)、相变存储器(PCM)、交叉网格非易失性存储器、具有体电阻变化的存储器等)实现的一些实施例中,回收单元可表示一个或多个存储体、编程组等或它们的任何组合,并且回收组可表示一个或多个裸片、存储体、编程组等或它们的任何组合。The storage medium may be at least partially composed of storage-level memory (e.g., magnetoresistive random access memory (MRAM), resistive random access memory (ReRAM), phase change memory (PCM), cross-grid non-volatile memory, with In some embodiments implemented (memory with varying body resistance, etc.), the recycling unit may represent one or more memory banks, programming groups, etc., or any combination thereof, and the recycling group may represent one or more dies, memory banks, programming groups, etc. group, etc. or any combination thereof.

作为另一示例,发明原理不限于与写入命令一起使用,而是可被应用于涉及数据局部性的数据操作的任何类型的请求,例如,在涉及可基于逻辑到物理映射(例如,物理存储介质的逻辑表示(诸如,逻辑块地址到物理块地址(LBA到PBA或L2P)映射))放置的数据的任何类型的方案中。例如,存储装置可接收任何类型的数据操作请求(诸如,对写入操作(例如,写入命令、写入零、写入一、写入不可校正等)、复制操作、解除分配操作(例如,取消映射、修整等)、清理操作、擦除操作、格式化操作、比较和写入操作(其可被称为融合命令,例如,可包括读取用于比较操作的数据的读取命令和可基于比较操作的结果执行的写入命令的一对命令)、更新操作等的请求)。在一些实施例中,数据操作请求可包括与存储介质中的数据局部性相关的指示(例如,回收单元句柄、回收组等)。基于接收到具有与存储介质中的数据局部性相关的指示的数据操作请求,存储装置可基于与存储介质中的数据局部性相关的信息和/或与将与数据操作请求相关联地使用的数据(例如,将基于写入命令存储的数据)相关的信息来执行对应的数据操作。As another example, the inventive principles are not limited to use with write commands, but may be applied to any type of request for data operations involving data locality, e.g., where data operations may be based on logical to physical mappings (e.g., physical storage Any type of scheme in which data is placed in a logical representation of the medium, such as a logical block address to physical block address (LBA to PBA or L2P) mapping. For example, a storage device may receive any type of data operation request (such as a request for a write operation (e.g., write command, write zero, write one, write uncorrectable, etc.), copy operation, deallocation operation (e.g., unmap, trim, etc.), clean operations, erase operations, format operations, compare and write operations (which may be referred to as fusion commands, for example, may include a read command to read data for a compare operation and may A pair of commands (a pair of write commands) that are executed based on the results of a comparison operation, a request for an update operation, etc.). In some embodiments, the data operation request may include an indication related to data locality in the storage medium (eg, reclamation unit handle, reclamation group, etc.). Based on receiving a data operation request having an indication related to data locality in the storage medium, the storage device may, based on the information related to data locality in the storage medium and/or the data to be used in association with the data operation request (For example, the corresponding data operation will be performed based on the information related to the data stored in the write command).

图1A示出根据公开的示例实施例的用于第一数据放置状态下的存储装置的数据放置方案的实施例。图1B示出根据公开的示例实施例的第二数据放置状态下的图1A中所示出的数据放置方案的实施例。图1C示出根据公开的示例实施例的第三数据放置状态下的图1A中所示出的数据放置方案的实施例。图1D示出根据公开的示例实施例的第四数据放置状态下的图1A中所示出的数据放置方案的实施例。图1E示出根据公开的示例实施例的第五数据放置状态下的图1A中所示出的数据放置方案的实施例。1A illustrates an embodiment of a data placement scheme for a storage device in a first data placement state, in accordance with disclosed example embodiments. FIG. 1B illustrates an embodiment of the data placement scheme shown in FIG. 1A in a second data placement state according to disclosed example embodiments. 1C illustrates an embodiment of the data placement scheme shown in FIG. 1A in a third data placement state according to disclosed example embodiments. FIG. 1D illustrates an embodiment of the data placement scheme shown in FIG. 1A in a fourth data placement state according to disclosed example embodiments. FIG. 1E illustrates an embodiment of the data placement scheme shown in FIG. 1A in a fifth data placement state according to disclosed example embodiments.

图1A至图1E中所示出的实施例可包括使用通信连接105进行通信的主机102和存储装置104。存储装置104可包括NVM子系统106中的存储介质,该NVM子系统106具有布置在超级块110中的存储器块108。存储器块108可使用非易失性存储器来实现,该非易失性存储器可以以图1A至图1E中所示出的块为单位被擦除,因此也可被称为擦除块。存储器块108可以以可小于存储器块的页和/或字线为单位而被编程(例如,写入)和/或读取。存储器块108可在将数据的页和/或字线写入存储器块108之前被擦除。例如,存储器块108可被布置在超级块110中以简化块108的管理。因此,图1A至图1E中所示出的非易失性存储器可以以超级块110为单位而被擦除。The embodiment shown in FIGS. 1A-1E may include a host 102 and a storage device 104 communicating using a communication connection 105 . Storage 104 may include storage media in NVM subsystem 106 having memory blocks 108 arranged in super blocks 110 . The memory block 108 may be implemented using non-volatile memory, which may be erased in units of blocks as shown in FIGS. 1A to 1E , and therefore may also be referred to as erase blocks. Memory blocks 108 may be programmed (eg, written) and/or read in units of pages and/or word lines, which may be smaller than the memory blocks. Memory block 108 may be erased before pages and/or word lines of data are written to memory block 108 . For example, memory blocks 108 may be arranged in super blocks 110 to simplify block 108 management. Therefore, the non-volatile memory shown in FIGS. 1A to 1E can be erased in units of super blocks 110.

存储装置104可从主机102接收输入和/或输出(I/O或IO)请求(其也可被称为命令)以使主机能够访问NVM子系统(例如,将数据写入存储介质和/或从存储介质读取数据)。主机可将数据划分为由图1A至图1E中所示出的不同类型的阴影指示的命名空间。具体地,属于第一命名空间的数据(可由命名空间标识符1(NSID 1)引用的数据)可由具有从右上到左下的对角线的阴影指示,属于第二命名空间的数据(可由NSID 2引用的数据)可由具有从左上到右下的对角线的阴影指示,并且属于第三命名空间的数据(可由NSID 3引用的数据)可由对角线交叉阴影指示。在一些实施例中,除了命名空间之外和/或作为命名空间的替代,主机102可基于逻辑块地址(LBA)、可使用数据的应用、主机写入通信量(traffic)线程等将数据划分和/或布置为组。Storage device 104 may receive input and/or output (I/O or IO) requests (which may also be referred to as commands) from host 102 to enable the host to access the NVM subsystem (e.g., write data to storage media and/or Read data from storage media). The host may partition data into namespaces indicated by the different types of shading shown in Figures 1A-1E. Specifically, data belonging to the first namespace (data referenced by namespace identifier 1 (NSID 1)) may be indicated by a shading with a diagonal line from upper right to lower left, and data belonging to the second namespace (data referenced by NSID 2 Referenced data) may be indicated by shading with a diagonal line from upper left to lower right, and data belonging to the third namespace (data that may be referenced by NSID 3) may be indicated by diagonal cross-hatching. In some embodiments, in addition to and/or as an alternative to namespaces, the host 102 may partition data based on logical block addresses (LBAs), applications that may use the data, host write traffic threads, etc. and/or arranged as groups.

存储器块108最初可处于擦除状态,如由不存在阴影所示。在接收写入命令之前,NVM子系统106可选择写入数据可被放置在其中的擦除的超级块(例如,由实心阴影指示的超级块0)。擦除的超级块可被随机选择或者使用循环技术被选择。因此,在NVM子系统106接收写入命令之前,存储器块108a最初可以是空的。Memory block 108 may initially be in an erased state, as shown by the absence of shading. Prior to receiving the write command, the NVM subsystem 106 may select an erased superblock (eg, superblock 0 indicated by solid shading) in which the write data may be placed. The erased superblocks may be selected randomly or using round robin techniques. Therefore, memory block 108a may initially be empty before NVM subsystem 106 receives a write command.

参照图1A,存储装置104可接收具有属于NSID 1的写入数据的第一写入命令。NVM子系统106可将属于NSID 1(由圆角矩形中的数字1指示)的数据放置在如图1A中所示出超级块0的第一存储器块108a中。(数字1可指示可被放置的数据的序列而不是NSID)。Referring to FIG. 1A , storage device 104 may receive a first write command having write data belonging to NSID 1 . The NVM subsystem 106 may place data belonging to NSID 1 (indicated by the number 1 in the rounded rectangle) in the first memory block 108a of superblock 0 as shown in Figure 1A. (The number 1 may indicate the sequence of data that can be placed instead of the NSID).

参照图1B,存储装置104可继续从主机102接收具有属于各种命名空间的写入数据的附加写入命令。NVM子系统106可通过将写入数据放置在由圆角矩形中的数字指示的序列中来填充超级块0中的存储器块108a-108d。在一些情况下,写入数据的数量可大于存储器块中剩余空间。因此,写入数据的第一部分可被放置以便填充第一存储器块中的剩余空间,并且第二部分可被放置在空的存储器块中。例如,如图1B中所示出的,基于接收到第二写入命令,属于NSID 2的数据的第一部分2a可用于填充存储器块108a中的剩余空间,并且属于NSID 2的数据的第二部分2b可被放置在存储器块108b中。如图1B中所示出的,NVM子系统106可继续将写入数据放置在超级块0中,直到超级块0被充满或几乎充满。Referring to FIG. 1B , storage device 104 may continue to receive additional write commands from host 102 with write data belonging to various namespaces. NVM subsystem 106 may populate memory blocks 108a-108d in Super Block 0 by placing write data in the sequence indicated by the numbers in the rounded rectangles. In some cases, the amount of data written may be greater than the space remaining in the memory block. Thus, a first portion of the write data can be placed to fill the remaining space in the first memory block, and a second portion can be placed in the empty memory block. For example, as shown in Figure 1B, upon receipt of the second write command, a first portion 2a of data belonging to NSID 2 may be used to fill the remaining space in memory block 108a, and a second portion of data belonging to NSID 2 2b may be placed in memory block 108b. As shown in Figure IB, NVM subsystem 106 may continue to place write data in Super Block 0 until Super Block 0 is full or nearly full.

参照图1C,存储装置104可接收具有属于NSID 3的数据的第六写入命令,该数据太大而不能适合超级块0中的存储器块108d中的剩余空间。因此,NVM子系统106可选择写入数据可被放置在其中的新的空的超级块(例如,由实心阴影指示的超级块2)。NVM子系统106可使用属于NSID 3的数据的第一部分6a来填充存储器块108d中的剩余空间,并且属于NSID 3的数据的第二部分6b可被放置在超级块2中的存储器块108e中。NVM子系统106可继续将写入数据放置在超级块2中,然后放置在超级块1中,属于不同命名空间的数据混合在如图1D中所示出的一个或多个超级块内。属于不同命名空间的数据可在块108和/或超级块110内混合,例如,因为主机102可能不知道NVM子系统106将数据放置在块108和/或超级块110内的方式和/或对NVM子系统106将数据放置在块108和/或超级块110内的方式没有控制。Referring to FIG. 1C , storage device 104 may receive a sixth write command with data belonging to NSID 3 that is too large to fit in the remaining space in memory block 108d in super block 0. Therefore, the NVM subsystem 106 may choose to write a new empty superblock (eg, superblock 2 indicated by solid shading) into which the write data may be placed. NVM subsystem 106 may use the first portion 6a of the data belonging to NSID 3 to fill the remaining space in memory block 108d, and the second portion 6b of the data belonging to NSID 3 may be placed in memory block 108e in super block 2. The NVM subsystem 106 may continue to place write data in Super Block 2 and then Super Block 1, with data belonging to different namespaces mixed within one or more Super Blocks as shown in Figure ID. Data belonging to different namespaces may be mixed within blocks 108 and/or super blocks 110 , for example, because the host 102 may not be aware of the manner in which and/or the way NVM subsystem 106 placed the data within blocks 108 and/or super blocks 110 . The NVM subsystem 106 has no control over the manner in which data is placed within blocks 108 and/or super blocks 110 .

主机102可将数据划分到命名空间中,例如,以提供诸如应用、进程、逻辑块地址(LBA)范围等的数据源之间的隔离。因此,例如,当应用终止时,主机102可同时对属于命名空间的一些或所有数据解除分配。Host 102 may partition data into namespaces, for example, to provide isolation between data sources such as applications, processes, logical block address (LBA) ranges, and the like. Thus, for example, when an application terminates, host 102 may simultaneously deallocate some or all data belonging to the namespace.

图1E图示主机102具有已对属于指示为NSID 3的命名空间的数据解除分配的示例,其在解除分配之后使用实心阴影示出。重新使用解除分配的存储空间可涉及擦除解除分配的存储空间。然而,因为超级块110可作为单元被擦除,所以NVM子系统106可将超级块中的剩余有效数据移动到不同的超级块,以防止在超级块被擦除时丢失有效数据。根据实施细节,这可能导致可能减少存储介质的使用寿命的写入放大。Figure IE illustrates an example in which the host 102 has deallocated data belonging to the namespace indicated as NSID 3, which is shown using solid shading after the deallocation. Reusing the deallocated storage space may involve erasing the deallocated storage space. However, because the superblock 110 can be erased as a unit, the NVM subsystem 106 can move the remaining valid data in the superblock to a different superblock to prevent the loss of valid data when the superblock is erased. Depending on the implementation details, this may result in write amplification that may reduce the useful life of the storage media.

图2A示出根据公开的示例实施例的用于第一数据放置状态下的存储装置的灵活数据放置方案的实施例。图2B示出根据公开的示例实施例的第二数据放置状态下的图2A中所示出的数据放置方案的实施例。图2C示出根据公开的示例实施例的第三数据放置状态下的图2A中所示出的数据放置方案的实施例。图2D示出根据公开的示例实施例的第四数据放置状态下的图2A中所示出的数据放置方案的实施例。2A illustrates an embodiment of a flexible data placement scheme for a storage device in a first data placement state, in accordance with disclosed example embodiments. 2B illustrates an embodiment of the data placement scheme shown in FIG. 2A in a second data placement state according to disclosed example embodiments. Figure 2C illustrates an embodiment of the data placement scheme shown in Figure 2A in a third data placement state according to disclosed example embodiments. 2D illustrates an embodiment of the data placement scheme shown in FIG. 2A in a fourth data placement state according to disclosed example embodiments.

图2A至图2D中所示出的实施例可包括一些组件(诸如,主机202、存储装置204、通信连接205和/或存储器块208),在一些方面,这些组件可以以类似于图1A至图1E中所示出的实施例中的对应组件的方式操作。然而,在图2A至图2D中所示出的实施例中,NVM子系统212中的存储器块208可被布置在一个或多个回收单元214中,回收单元214可作为一个单元被擦除并且可包括一个或多个存储器块208。回收单元214可例如使用一个或多个擦除块、超级块等来实现。此外,回收单元214可由对应的回收单元句柄236识别,回收单元句柄236可使主机202能够指定(例如,在写入命令的字段中)用于存储与写入命令相关联的写入数据的特定回收单元214。在一些实施例中,回收单元214中的一些或全部可被布置在主机还可例如使用一个或多个对应的回收组标识符(例如,在写入命令的字段中)指定的一个或多个回收组218中。在一些实施例中,回收单元句柄236可识别多于一个回收单元216。例如,回收单元句柄236可识别(例如,映射到)一个或多个(例如,每个)回收组218中的一个或多个回收单元216(例如,以类似于图5中所示出的方式)。The embodiments shown in FIGS. 2A-2D may include components (such as host 202, storage device 204, communication connection 205, and/or memory block 208) that, in some aspects, may be configured in a manner similar to FIGS. 1A-2D. The corresponding components in the embodiment shown in Figure IE operate. However, in the embodiment shown in FIGS. 2A-2D , the memory blocks 208 in the NVM subsystem 212 may be arranged in one or more reclamation units 214 , which may be erased as one unit and One or more memory blocks 208 may be included. Reclamation unit 214 may be implemented, for example, using one or more erase blocks, super blocks, or the like. Additionally, reclamation unit 214 may be identified by a corresponding reclamation unit handle 236 , which may enable host 202 to specify (eg, in a field of the write command) a specific location for storing write data associated with the write command. Recycling unit 214. In some embodiments, some or all of the reclamation units 214 may be arranged in one or more locations where the host may also specify, for example, using one or more corresponding reclamation group identifiers (eg, in a field of the write command). In recycling group 218. In some embodiments, reclamation unit handle 236 may identify more than one reclamation unit 216. For example, the reclamation unit handle 236 may identify (eg, map to) one or more reclamation units 216 in one or more (eg, each) reclamation group 218 (eg, in a manner similar to that shown in FIG. 5 ).

因此,通过指定用于存储与写入命令相关联的数据的特定回收单元214和/或回收组218,主机202可以使NVM子系统212仅将属于一个或多个特定命名空间的数据存储在一个或多个回收单元214和/或回收组218中。Therefore, by designating a specific reclamation unit 214 and/or reclamation group 218 for storing data associated with a write command, the host 202 can cause the NVM subsystem 212 to store only data belonging to one or more specific namespaces in a or in multiple recycling units 214 and/or recycling groups 218 .

例如,参照图2A,主机202可指示NVM子系统212以由图2A至图2D中的圆角矩形中的数字指示并且由以下括号中的数字指示的顺序,将属于由NSID 1、NSID 2和NSID 3指示的命名空间的数据分别存储在回收单元0、回收单元1和回收单元2中。例如,与NSID 1相关联的第一写入命令的数据[1]可被写入回收组0的回收单元0的顶部存储器块208的第一部分。与NSID 1相关联的第二写入命令的数据的第一部分[2a]可被写入回收组0的回收单元0的顶部存储器块208的剩余部分中,并且与NSID 1相关联的第二写入命令的数据的第二部分[2b]可被写入回收组0的回收单元0的顶部之后的第二存储器块208的第一部分中。与NSID2相关联的第三写入命令的数据[3]可被写入回收组0的回收单元1的顶部存储器块208的第一部分。与NSID 3相关联的第四写入命令的数据[4]可被写入回收组1的回收单元0的顶部存储器块208的第一部分。与NSID 3相关联的第五写入命令的数据[5]可被写入回收组1的回收单元0的顶部存储器块208的下一部分。与NSID 1相关联的第六写入命令的数据[6]可被写入回收组0的回收单元0的顶部之后的第二存储器块208的下一部分。与NSID 1相关联的第七写入命令的数据的第一部分[7a]可从被写入回收组0的回收单元0的顶部之后的第二存储器块208的剩余部分中,并且与NSID 1相关联的第七写入命令的数据的第二部分[7b]可被写入回收组0的回收单元0的顶部之后的第三存储器块208的第一部分中。与NSID2相关联的第八写入命令的数据的第一部分[8a]可被写入到回收组0的回收单元1的顶部存储器块208的剩余部分中,并且与NSID 2相关联的第八写入命令的数据的第二部分[8b]可被写入回收组0的回收单元1的顶部之后的第二存储器块208的第一部分中。与NSID 3相关联的第九写入命令的数据的第一部分[9a]可被写入回收组1的回收单元0的顶部存储器块208的剩余部分中,并且与NSID 3相关联的第九写入命令的数据的第二部分[9b]可被写入回收组1的回收单元0的顶部之后的第二存储器块208的第一部分中。For example, referring to Figure 2A, the host 202 may instruct the NVM subsystem 212 to fall within the order indicated by the numbers in the rounded rectangles in Figures 2A-2D and indicated by the numbers in parentheses below that will belong to NSID 1, NSID 2, and The data of the namespace indicated by NSID 3 is stored in reclamation unit 0, reclamation unit 1 and reclamation unit 2 respectively. For example, the data [1] of the first write command associated with NSID 1 may be written to the first portion of the top memory block 208 of reclamation unit 0 of reclamation group 0. The first portion [2a] of the data for the second write command associated with NSID 1 may be written into the remainder of the top memory block 208 of reclamation unit 0 of reclamation group 0, and the second write command associated with NSID 1 The second portion [2b] of the data of the incoming command may be written into the first portion of the second memory block 208 after the top of reclamation unit 0 of reclamation group 0. The data [3] of the third write command associated with NSID2 may be written to the first portion of the top memory block 208 of reclamation unit 1 of reclamation group 0. The data [4] of the fourth write command associated with NSID 3 may be written to the first portion of the top memory block 208 of reclamation unit 0 of reclamation group 1. The data for the fifth write command [5] associated with NSID 3 may be written to the next portion of the top memory block 208 of reclamation unit 0 of reclamation group 1. The data [6] of the sixth write command associated with NSID 1 may be written to the next portion of the second memory block 208 after the top of reclamation unit 0 of reclamation group 0. The first portion [7a] of the data for the seventh write command associated with NSID 1 may be written from the remainder of the second memory block 208 after the top of reclamation unit 0 of reclamation group 0 and associated with NSID 1 The second portion [7b] of the data of the associated seventh write command may be written in the first portion of the third memory block 208 after the top of reclamation unit 0 of reclamation group 0. The first portion [8a] of the data of the eighth write command associated with NSID 2 may be written into the remainder of the top memory block 208 of reclamation unit 1 of reclamation group 0, and the eighth write associated with NSID 2 The second portion [8b] of the data of the incoming command may be written into the first portion of the second memory block 208 after the top of reclamation unit 1 of reclamation group 0. The first portion [9a] of the data for the ninth write command associated with NSID 3 may be written into the remainder of the top memory block 208 of reclamation unit 0 of reclamation group 1, and the ninth write command associated with NSID 3 The second portion [9b] of the data of the incoming command may be written into the first portion of the second memory block 208 after the top of reclamation unit 0 of reclamation group 1.

参照图2B,主机202可继续发送写入命令和相关联的写入数据,这可指示NVM子系统212使用由圆角矩形中的数字指示的序列中的写入命令将写入数据存储在与各个命名空间对应的回收单元中,该序列可对应于相关联的写入命令的数据。Referring to FIG. 2B , host 202 may continue to send write commands and associated write data, which may instruct NVM subsystem 212 to store the write data using the write commands in the sequence indicated by the numbers in the rounded rectangles with In the recycling unit corresponding to each namespace, the sequence may correspond to the data of the associated write command.

参照图2C,如由实心阴影所示出的,主机可对属于NSID 1的一些或全部数据解除分配。例如,与第一、第二、第六、第七、第十三、第十四和/或第十七写入命令中的任何一个相关联的数据可在不同时间(其间具有各种时间量)、在不同时间以各种组合或者一次全部被解除分配。根据实施细节,这可使NVM子系统212能够擦除回收单元0(如图2D中没有阴影所示出的),而不移动属于其他命名空间的数据,从而减少或消除写入放大。尽管图2D可示出引用具有可被擦除的一个或多个存储器块208的回收单元214的回收单元句柄236,但是在一些实施例中,一个或多个解除分配的存储器块208可在被擦除之前返回到可用存储器池。因此,在一些实施例中,在图2D中被指示为被擦除的存储器块208可以不是在图2C中被指示为被解除分配的相同存储器块,而是可以是先前已经被擦除(例如,当存储器块在空闲块池中和/或未被回收单元句柄236引用时)并且被布置到新的(例如,空的)回收单元214中的其他存储器块。在一些实施例中,除了命名空间之外和/或作为命名空间的替代,数据可基于逻辑块地址(LBA)、可使用该数据的应用、主机写入通信量线程等而被划分和/或布置为组。Referring to Figure 2C, the host may deallocate some or all data belonging to NSID 1, as shown by the solid shading. For example, data associated with any of the first, second, sixth, seventh, thirteenth, fourteenth, and/or seventeenth write commands may be at different times with various amounts of time in between. ), are deallocated at different times in various combinations, or all at once. Depending on the implementation details, this may enable NVM subsystem 212 to erase reclaim unit 0 (shown without shading in Figure 2D) without moving data belonging to other namespaces, thereby reducing or eliminating write amplification. Although FIG. 2D may show a reclamation unit handle 236 that references a reclamation unit 214 with one or more memory blocks 208 that may be erased, in some embodiments, one or more deallocated memory blocks 208 may be deleted after being erased. Return to free memory pool before erasing. Therefore, in some embodiments, the memory block 208 indicated as being erased in Figure 2D may not be the same memory block indicated as being deallocated in Figure 2C, but may have been previously erased (e.g., , when the memory block is in the free block pool and/or is not referenced by the reclamation unit handle 236) and is arranged to other memory blocks in the new (eg, empty) reclamation unit 214. In some embodiments, in addition to and/or as an alternative to namespaces, data may be partitioned and/or based on logical block addresses (LBAs), applications that may use the data, host write traffic threads, etc. Arranged as groups.

图3A示出根据公开的示例实施例的在第一数据放置状态下具有引用修改的灵活数据放置方案的实施例。图3B示出根据公开的示例实施例的第二数据放置状态下的图3A中所示出的数据放置方案的实施例。图3C示出根据公开的示例实施例的第三数据放置状态下的图3A中所示出的数据放置方案的实施例。图3D示出根据公开的示例实施例的第四数据放置状态下的图3A中所示出的数据放置方案的实施例。3A illustrates an embodiment of a flexible data placement scheme with reference modification in a first data placement state, in accordance with disclosed example embodiments. 3B illustrates an embodiment of the data placement scheme shown in FIG. 3A in a second data placement state according to disclosed example embodiments. 3C illustrates an embodiment of the data placement scheme shown in FIG. 3A in a third data placement state according to disclosed example embodiments. Figure 3D illustrates an embodiment of the data placement scheme shown in Figure 3A in a fourth data placement state according to disclosed example embodiments.

图3A至图3D中所示出的实施例可包括使用通信连接305进行通信的主机302和存储装置304。存储装置304可包括控制器326(控制器326可控制存储装置304的总体操作),和包括被布置在一个或多个回收组318中的回收单元314的存储介质。图3A至图3D中示出了被称为回收组0的一个回收组318,但是回收单元314可被布置在任何数量的回收组318中。出于说明的目的,在图3A至图3D中所示出的实施例中,回收组0可包括被识别为RU 0、RU 1、RU2、RU 3和RU 4的五个回收单元314,每个回收单元314可具有五页数据的存储容量,但是可使用任何数量和/或大小的回收单元。例如,在实际实施方式中,回收单元可包括一个、两个、四个或更多个擦除块,每个擦除块可具有以MB或GB测量的存储容量和以KB测量的页大小。The embodiment shown in FIGS. 3A-3D may include a host 302 and a storage device 304 communicating using a communication connection 305. Storage device 304 may include a controller 326 , which may control the overall operation of storage device 304 , and storage media including reclamation units 314 arranged in one or more reclamation groups 318 . One recycling group 318, referred to as recycling group 0, is shown in FIGS. 3A-3D, but recycling units 314 may be arranged in any number of recycling groups 318. For purposes of illustration, in the embodiment shown in FIGS. 3A-3D , recycling group 0 may include five recycling units 314 identified as RU 0, RU 1, RU2, RU 3, and RU 4, each Each reclamation unit 314 may have a storage capacity of five pages of data, but any number and/or size of reclamation units may be used. For example, in a practical implementation, a reclamation unit may include one, two, four, or more erase blocks, each of which may have a storage capacity measured in MB or GB and a page size measured in KB.

一个或多个回收单元句柄336可引用对应的回收单元314。例如,如图3A中所示出的,被识别为回收单元句柄0(或RUH 0)的第一回收单元句柄336可如箭头317所示引用RU1。被识别为回收单元句柄1(RUH 1)的第二回收单元句柄336可如箭头319a所示引用RU 4。One or more reclamation unit handles 336 may reference corresponding reclamation units 314. For example, as shown in Figure 3A, a first reclamation unit handle 336 identified as reclamation unit handle 0 (or RUH 0) may reference RUl as indicated by arrow 317. The second reclamation unit handle 336, identified as reclamation unit handle 1 (RUH 1), may reference RU 4 as shown by arrow 319a.

参照图3A,如RU 1和RU 4的对角阴影部分所示出的,存储装置304可被示出为处于两页数据可被存储在被识别为RU 1的回收单元314中,并且四页数据可被存储在被识别为RU 4的回收单元314中的初始状态。Referring to FIG. 3A , storage device 304 may be shown as being in a state where two pages of data may be stored in reclamation unit 314 identified as RU 1 and four pages, as indicated by the diagonally shaded portions of RU 1 and RU 4 . The data may be stored in an initial state in the recycling unit 314 identified as RU 4.

主机302可使用通信连接305将写入命令330和页数据321(或页数据321的位置的地址、指针或其他指示符)发送到存储装置304。命令330可包括放置标识符334,放置标识符334可包括回收组标识符315和/或回收单元句柄336。在图3A至图3D中所示出的示例中,回收组标识符315和回收单元句柄336可指示存储装置304将页数据321存储在由回收组0中的回收单元句柄1引用的回收单元314处。Host 302 may send write command 330 and page data 321 (or an address, pointer, or other indicator of the location of page data 321) to storage device 304 using communication connection 305. The command 330 may include a placement identifier 334 , which may include a reclamation group identifier 315 and/or a reclamation unit handle 336 . In the example shown in FIGS. 3A-3D , reclamation group identifier 315 and reclamation unit handle 336 may instruct storage device 304 to store page data 321 in reclamation unit 314 referenced by reclamation unit handle 1 in reclamation group 0 at.

在一些实施例中,命令330和/或放置标识符334可使用不同的技术来指定数据321将被写入其中的回收单元。例如,如针对图4描述的实施例中所示出的,命令330和/或放置标识符334可包括可指定回收单元句柄的放置句柄,而不是直接提供回收单元句柄336。In some embodiments, command 330 and/or put identifier 334 may use different techniques to specify the reclamation unit into which data 321 is to be written. For example, as shown in the embodiment described with respect to FIG. 4 , the command 330 and/or the placement identifier 334 may include a placement handle that may specify a recycle unit handle, rather than providing the recycle unit handle 336 directly.

参照图3B,控制器326可接收写入命令330和/或页数据321。基于包括在写入命令330中的放置标识符334中的回收组标识符315和回收单元句柄336,控制器326可确定页数据321应被存储在由回收组0中的回收单元句柄1引用的回收单元314中。在图3B中所示出的示例中,回收单元句柄1可引用被识别为RU 4回收单元314,并且因此,如图3C中所示出的,控制器326可将页数据321存储在RU 4中。Referring to FIG. 3B , controller 326 may receive write command 330 and/or page data 321 . Based on the reclamation group identifier 315 and the reclamation unit handle 336 included in the put identifier 334 in the write command 330 , the controller 326 may determine that the page data 321 should be stored in the reclamation unit referenced by the reclamation unit handle 1 in reclamation group 0 in the recycling unit 314. In the example shown in Figure 3B, reclamation unit handle 1 may reference reclamation unit 314 identified as RU 4, and therefore, as shown in Figure 3C, controller 326 may store page data 321 in RU 4 middle.

参照图3D,页数据321可填充如使用对角线阴影所示出的被指示为RU 4的回收单元314。因此,控制器326可如箭头319b所示修改回收单元句柄1引用回收组0内的不同(例如,空的)回收单元314(诸如,RU 2)。之后,控制器326可使用在放置标识符334中指定回收单元句柄1的写入命令330用从主机接收到的数据继续填充RU 2。Referring to Figure 3D, page data 321 may populate reclamation unit 314, indicated as RU 4 as shown using diagonal shading. Accordingly, controller 326 may modify reclamation unit handle 1 to reference a different (eg, empty) reclamation unit 314 within reclamation group 0 (such as RU 2) as indicated by arrow 319b. The controller 326 may then continue to populate RU 2 with the data received from the host using a write command 330 specifying reclaim unit handle 1 in the put identifier 334 .

图4A示出根据公开的示例实施例的用于第一状态下的灵活数据放置方案的更新操作的实施例。图4B示出根据公开的示例实施例的第二状态下的图4A中所示出的更新操作的实施例。4A illustrates an embodiment of an update operation for a flexible data placement scheme in a first state in accordance with disclosed example embodiments. Figure 4B illustrates an embodiment of the update operation shown in Figure 4A in a second state according to disclosed example embodiments.

图4A至图4B中所示出的实施例可包括使用通信连接405进行通信的主机402和存储装置404。存储装置404可包括控制器426和存储介质,控制器426可控制存储装置404的总体操作,存储介质包括布置在一个或多个回收组418中的回收单元414。The embodiment shown in FIGS. 4A-4B may include a host 402 and a storage device 404 communicating using a communication connection 405. Storage device 404 may include a controller 426 that may control the overall operation of storage device 404 and storage media including reclamation units 414 arranged in one or more reclamation groups 418 .

图4A至图4B中示出了被称为回收组0的一个回收组418,但是回收单元414可被布置在任何数量的回收组418中。出于说明的目的,在图4A至图4B中所示出的实施例中,虽然回收组0可包括被识别为RU 0、RU 1、RU 2、RU 3和RU 4的五个回收单元414,每个回收单元414可具有五页数据的存储容量,但是任何数量和/或大小的回收单元可被使用。例如,在实际实施方式中,回收单元可包括一个、两个、四个或更多个擦除块,每个擦除块可具有以MB测量的存储容量和以KB测量的页大小。One recycling group 418, referred to as recycling group 0, is shown in FIGS. 4A-4B, but recycling units 414 may be arranged in any number of recycling groups 418. For purposes of illustration, in the embodiment shown in FIGS. 4A-4B , although recycling group 0 may include five recycling units 414 identified as RU 0 , RU 1 , RU 2 , RU 3 , and RU 4 , each reclamation unit 414 may have a storage capacity of five pages of data, but any number and/or size of reclamation units may be used. For example, in a practical implementation, a reclamation unit may include one, two, four, or more erase blocks, each of which may have a storage capacity measured in MB and a page size measured in KB.

一个或多个回收单元句柄436可引用对应的回收单元414。例如,回收单元句柄0(RUH 0)可如箭头417a所示引用回收单元RU 1,并且回收单元句柄1(RUH 1)可如箭头419a所示引用回收单元RU 4。回收单元句柄436可引用控制器可使用回收单元句柄436存储下一页数据的回收单元414。One or more reclamation unit handles 436 may reference corresponding reclamation units 414. For example, reclamation unit handle 0 (RUH 0) may refer to reclamation unit RU 1 as indicated by arrow 417a, and reclamation unit handle 1 (RUH 1) may refer to reclamation unit RU 4 as indicated by arrow 419a. The reclamation unit handle 436 may reference the reclamation unit 414 where the controller may use the reclamation unit handle 436 to store the next page of data.

参照图4A,如RU 1和RU 4的对角阴影部分所示出的,存储装置404可被示出为处于两页数据可被存储在被识别为RU 1的回收单元414中,并且四页数据可被存储在被识别为RU 4的回收单元414中的初始状态。因此,存储装置404可被示出为处于可以与图3A中的存储装置304的初始状态类似的初始状态。Referring to FIG. 4A , storage device 404 may be shown as being in a state where two pages of data may be stored in reclamation unit 414 identified as RU 1 and four pages, as shown by the diagonally shaded portions of RU 1 and RU 4 . The data may be stored in an initial state in the reclamation unit 414 identified as RU 4. Accordingly, storage device 404 may be shown in an initial state that may be similar to the initial state of storage device 304 in FIG. 3A.

然而,控制器426可接收更新请求423(例如,使用命令、指示等),而不是接收写入命令。更新请求423可请求控制器426可修改一个或多个回收单元句柄436以引用新的(例如,空的)回收单元414的更新操作。更新请求423可包括更新列表425,更新列表425可指定可由更新操作修改的一个或多个回收单元句柄436。在图4A中所示出的示例中,更新列表425可包括回收单元句柄0和回收单元句柄1。在一些实施例中,更新请求423可使用不同的技术来指定可被更新的一个或多个回收句柄436。例如,如针对图5描述的实施例中所示出的,更新请求423可包括可指定回收单元句柄的放置句柄,而不是直接提供回收单元句柄436。However, the controller 426 may receive an update request 423 (eg, usage command, indication, etc.) instead of receiving a write command. The update request 423 may request an update operation in which the controller 426 may modify one or more reclamation unit handles 436 to reference a new (eg, empty) reclamation unit 414 . The update request 423 may include an update list 425, which may specify one or more reclamation unit handles 436 that may be modified by the update operation. In the example shown in FIG. 4A , update list 425 may include reclamation unit handle 0 and reclamation unit handle 1 . In some embodiments, update request 423 may use different techniques to specify one or more reclaim handles 436 that may be updated. For example, as shown in the embodiment described with respect to FIG. 5 , the update request 423 may include a put handle that may specify a reclamation unit handle, rather than directly providing the reclamation unit handle 436 .

参照图4B,控制器426可通过如箭头417b所示将回收单元句柄0修改为引用回收单元RU 0,并且通过如箭头419b所示将回收单元句柄1修改为引用回收单元RU 3,来执行请求的更新操作。因此,与指定回收单元句柄0或回收单元句柄1的后续写入命令一起发送的数据可分别被写入RU 0或RU 3。Referring to FIG. 4B , the controller 426 may execute the request by modifying the reclamation unit handle 0 to reference the reclamation unit RU 0 as shown by arrow 417b, and by modifying the reclamation unit handle 1 to refer to the reclamation unit RU 3 as shown by the arrow 419b. update operation. Therefore, data sent with a subsequent write command specifying reclamation unit handle 0 or reclamation unit handle 1 can be written to RU 0 or RU 3 respectively.

如图4B中所示出的,回收单元RU 1和RU 4在更新操作之后可仅部分地充满。然而,根据用于实现回收单元414的物理存储介质,使回收单元部分地充满可降低回收单元和/或实现回收单元的存储介质的可靠性、耐久性、性能等。因此,在图4B中所示出的实施例中,如实心阴影所示出的,控制器426可使用填充数据(诸如,零、随机数据和/或元数据)填充RU 1和/或RU 4的一些或全部空白部分。As shown in Figure 4B, the recycling units RU 1 and RU 4 may be only partially filled after the update operation. However, depending on the physical storage medium used to implement the recycling unit 414, partially filling the recycling unit may reduce the reliability, durability, performance, etc., of the recycling unit and/or the storage medium on which the recycling unit is implemented. Accordingly, in the embodiment shown in FIG. 4B , controller 426 may populate RU 1 and/or RU 4 with padding data, such as zeros, random data, and/or metadata, as shown by solid shading. some or all of the blank parts.

然而,填充数据的使用可导致浪费或未充分利用的存储空间。例如,图4B中所示出的具有填充数据的RU 1和/或RU 4的部分可不用于存储数据,直到它们被回收(例如,通过垃圾收集操作)。However, the use of padding data can result in wasted or underutilized storage space. For example, the portions of RU 1 and/or RU 4 shown in Figure 4B with populated data may not be used to store data until they are reclaimed (eg, by a garbage collection operation).

图5示出根据公开的示例实施例的具有回收单元句柄的灵活数据放置方案的实施例。图5中所示出的实施例可包括可位于例如存储装置中的控制器526和NVM子系统512。NVM子系统512可包括被标识为回收组0至回收组P-1的P个回收组518。回收组518可包括一个或多个回收单元514。Figure 5 illustrates an embodiment of a flexible data placement scheme with reclaim unit handles in accordance with disclosed example embodiments. The embodiment shown in Figure 5 may include a controller 526 and an NVM subsystem 512, which may be located in a storage device, for example. NVM subsystem 512 may include P reclamation groups 518 identified as reclamation group 0 through reclamation group P-1. Recycling group 518 may include one or more recycling units 514 .

控制器526可通过通信接口528从主机接收I/O命令530。I/O命令530(其在图5中所示出的示例中可以是写入命令)可包括命名空间标识符(NSID)532和/或放置标识符534。放置标识符534可包括可使主机能够分别指定回收组518和/或回收组518内的回收单元514的回收组标识符515和/或放置句柄516,以用于存储与写入命令530相关联的数据。因此,在一些实施例中,图5中所示出的方案可使主机能够将可一起被解除分配的数据(例如,属于命名空间的数据)与可作为单元被擦除的一个或多个回收单元514对齐。Controller 526 may receive I/O commands 530 from the host via communication interface 528 . I/O command 530 (which may be a write command in the example shown in FIG. 5 ) may include a namespace identifier (NSID) 532 and/or a placement identifier 534 . The put identifier 534 may include a recycle group identifier 515 and/or a put handle 516 that may enable the host to specify a recycle group 518 and/or a recycle unit 514 within the recycle group 518 , respectively, for storage associated with the write command 530 The data. Accordingly, in some embodiments, the scheme illustrated in Figure 5 may enable a host to combine data that may be deallocated together (e.g., data belonging to a namespace) with one or more reclaims that may be erased as a unit. Unit 514 is aligned.

在一些实施例中,放置句柄516可映射到可引用一个或多个回收组518中的一个或多个回收单元514的回收单元句柄(RUH)536,而不是直接指示一个回收单元514。例如,回收单元句柄可映射到每个回收组518中的一个回收单元514。图5示出从每个回收单元句柄536到每个回收组518中的一个回收单元的示例映射。在图5中所示出的实施例中,控制器526可使用被识别为回收单元句柄0至回收单元句柄N-1的N个回收单元句柄536。在一些实施例中,回收单元句柄536可被表征为控制器资源。In some embodiments, the put handle 516 may be mapped to a reclamation unit handle (RUH) 536 that may reference one or more reclamation units 514 in one or more reclamation groups 518 , rather than directly indicating one reclamation unit 514 . For example, a reclamation unit handle may be mapped to one reclamation unit 514 in each reclamation group 518 . FIG. 5 shows an example mapping from each reclamation unit handle 536 to one reclamation unit in each reclamation group 518 . In the embodiment shown in FIG. 5, the controller 526 may use N reclamation unit handles 536 identified as reclamation unit handle 0 through reclamation unit handle N-1. In some embodiments, reclamation unit handle 536 may be characterized as a controller resource.

控制器526可使用放置句柄列表538来将一个或多个放置句柄516映射到一个或多个RUH标识符(RUH ID)540,其进而可识别对应的回收单元句柄536。在图5中所示出的实施例中,放置句柄列表538可包括被标识为放置句柄0至放置句柄M-1的M个放置句柄。The controller 526 may use the put handle list 538 to map one or more put handles 516 to one or more RUH identifiers (RUH IDs) 540 , which in turn may identify the corresponding recycle unit handle 536 . In the embodiment shown in Figure 5, the put handle list 538 may include M put handles identified as put handle 0 through put handle M-1.

在一些实施例中,放置句柄516可被限定到命名空间524(在该示例中,命名空间被识别为命名空间A)。命名空间进而可包含由在放置句柄列表538中识别的一个或多个回收单元句柄536(例如,由RUH ID 540)引用的一个或多个(例如,所有)回收单元514。在一些实施例中,放置句柄列表538可由主机、存储装置(例如,控制器526)或者任何其他实体或它们的组合来创建、填充、修改、维护等。在一些实施例中,除了命名空间之外和/或作为命名空间的替代,数据可基于逻辑块地址(LBA)、可使用该数据的应用、主机写入通信量线程等而被划分和/或布置为组。In some embodiments, placement handle 516 may be qualified to namespace 524 (in this example, the namespace is identified as namespace A). The namespace may in turn contain one or more (eg, all) reclamation units 514 referenced by one or more reclamation unit handles 536 identified in the put handle list 538 (eg, by RUH ID 540). In some embodiments, put handle list 538 may be created, populated, modified, maintained, etc., by a host, a storage device (eg, controller 526), or any other entity or combination thereof. In some embodiments, in addition to and/or as an alternative to namespaces, data may be partitioned and/or based on logical block addresses (LBAs), applications that may use the data, host write traffic threads, etc. Arranged as groups.

在一些实施例中,放置句柄516和/或回收单元句柄536的使用可使图5中所示出的灵活数据放置方案能够将回收单元作为回收组内的物理非易失性存储设备的逻辑表示而呈现给主机,该回收组可例如由控制器526物理地擦除,而不干扰其他回收单元514。控制器526可使用物理存储介质(例如,NVM裸片上的一个或多个擦除块)实现由主机(例如,使用放置标识符534)指定的逻辑回收单元,其中该物理存储介质可由控制器526选择并作为单元被擦除。In some embodiments, the use of placement handle 516 and/or reclamation unit handle 536 may enable the flexible data placement scheme illustrated in Figure 5 to use reclamation units as logical representations of physical non-volatile storage devices within a reclamation group. While presented to the host, the reclamation group may be physically erased, such as by controller 526, without disturbing other reclamation units 514. Controller 526 may implement logical reclamation units specified by the host (e.g., using placement identifier 534) using physical storage media (e.g., one or more erase blocks on the NVM die), where the physical storage media may be used by controller 526 Selected and erased as a cell.

在一些实施例中,回收单元514和/或回收组518的选择可至少部分地由控制器526执行。例如,如果控制器526接收到不包括放置标识符534的写入命令530,则控制器526可使用由默认放置句柄516(例如,放置句柄0)映射的回收单元句柄536并选择回收组518,从而选择在选择的回收组518内并且通过由默认放置句柄516映射的回收单元句柄536引用的回收单元514。作为另一示例,如果控制器526接收具有包括放置句柄516但不包括回收组标识符515的放置标识符的写入命令530,则控制器526可通过选择回收组518并且使用在选择的回收组518内并由回收单元句柄536(其中,该回收单元句柄536由写入命令530所提供的放置句柄516所映射)引用的回收单元514,来选择回收单元514。In some embodiments, selection of recycling units 514 and/or recycling groups 518 may be performed, at least in part, by controller 526 . For example, if controller 526 receives write command 530 that does not include put identifier 534, controller 526 may use reclamation unit handle 536 mapped by default put handle 516 (e.g., put handle 0) and select reclamation group 518, The recycling unit 514 within the selected recycling group 518 and referenced by the recycling unit handle 536 mapped by the default placement handle 516 is thereby selected. As another example, if controller 526 receives a write command 530 with a put identifier that includes put handle 516 but does not include recycle group identifier 515 , controller 526 may respond by selecting recycle group 518 and using the selected recycle group. Reclamation unit 514 is selected by a reclamation unit 514 within 518 and referenced by reclamation unit handle 536 (which is mapped by put handle 516 provided by write command 530).

在一些实施例中,图5中所示出的灵活数据放置方案可至少部分地使用NVMe协议来实现。在这样的实施例中,放置标识符534可被实现为命令530的一部分(例如,NVMe命令的指令部分);M、N和/或P可以是可例如使用NVMe命名空间管理命令而被配置的参数;控制器526可使用一个或多个NVMe控制器来实现;和/或NVM子系统512可被实现为NVMe子系统、耐久性组(其在一些实施例中可与存储装置共同延伸)、NVMe域等、或它们的任何组合。在至少部分地使用NVMe协议实现的实施例中,指令特定(DSPEC)字段可用于提供放置标识符(例如,回收组(其可由回收组标识符指示)和放置句柄)。DSPEC字段可例如在指令类型(DTYPE)字段可被使用以指示灵活数据放置特征被使用的实施方式中使用。在这样的实施例中,DSPEC字段的无效和/或默认(例如,全零)值可指示回收组指示符和/或放置句柄的缺失。In some embodiments, the flexible data placement scheme shown in Figure 5 may be implemented, at least in part, using the NVMe protocol. In such embodiments, placement identifier 534 may be implemented as part of command 530 (eg, the instruction portion of an NVMe command); M, N, and/or P may be configurable, eg, using NVMe namespace management commands. Parameters; controller 526 may be implemented using one or more NVMe controllers; and/or NVM subsystem 512 may be implemented as an NVMe subsystem, a durability group (which in some embodiments may be co-extensive with storage), NVMe domain, etc., or any combination thereof. In embodiments implemented at least in part using the NVMe protocol, a directive specific (DSPEC) field may be used to provide a placement identifier (eg, a reclamation group (which may be indicated by a reclamation group identifier) and a placement handle). The DSPEC field may be used, for example, in implementations where the instruction type (DTYPE) field may be used to indicate that the flexible data placement feature is used. In such embodiments, an invalid and/or default (eg, all zeros) value for the DSPEC field may indicate the absence of a reclaim group indicator and/or a put handle.

在图2A至图2D、图3A至图3D、图4A至图4B和/或图5中所示出的灵活数据放置方案的实施例中,回收单元可被实现(至少从主机的角度)为物理存储介质的底层部分的逻辑表示。因此,主机可从存储装置的一个或多个正在进行的操作和/或状况被屏蔽和/或不知道存储装置的一个或多个正在进行的操作和/或状况,该一个或多个正在进行的操作和/或状况可能不利地影响涉及由主机选择的逻辑回收单元的物理实施方式的一个或多个操作。In embodiments of the flexible data placement scheme shown in FIGS. 2A-2D, 3A-3D, 4A-4B, and/or 5, the recycling unit may be implemented (at least from the perspective of the host) as A logical representation of the underlying portion of a physical storage medium. Accordingly, the host may be shielded from and/or unaware of one or more ongoing operations and/or conditions of the storage device, which one or more ongoing operations and/or conditions of the storage device may be. The operations and/or conditions may adversely affect one or more operations involving the physical implementation of the logical reclamation unit selected by the host.

图6示出根据公开的示例实施例的灵活数据放置方案的另一实施例。在图6中所示出的实施例中,存储装置604可包括使用可由控制器626控制的非易失性存储器装置(例如,NVM裸片)620实现的存储介质。存储装置604可使用通信连接605与主机602通信。Figure 6 illustrates another embodiment of a flexible data placement scheme in accordance with disclosed example embodiments. In the embodiment shown in FIG. 6 , storage device 604 may include storage media implemented using a non-volatile memory device (eg, an NVM die) 620 controllable by controller 626 . Storage device 604 may communicate with host 602 using communication connection 605.

图6中所示出的实施例可包括被实现为被指示为620-0、……、620-7的NVM裸片的八个NVM装置620,其可被共同地和/或单独地称为620。每个NVM裸片可包括在裸片左侧示出的第一平面和在裸片右侧示出的第二平面。每个平面可包括20个擦除块660,其被示出为其中具有数字的矩形。在一些实施例中,擦除块660中的数字可表示已经在擦除块660上执行的寿命P/E循环的百分比。例如,具有数字30的擦除块可已经使用其寿命P/E循环的30%。为了方便,平面内的单独的擦除块660可由它们内部的数字表示。在一些其他实施例中,擦除块中的数字可表示擦除块的另一方面(诸如,NVM裸片上的位置、表征的位错误累积率、历史温度暴露、读取和/或写入干扰日志(例如,日志可表示累积的计数)等)。The embodiment shown in FIG. 6 may include eight NVM devices 620 implemented as NVM dies indicated as 620-0, ..., 620-7, which may be collectively and/or individually referred to as 620. Each NVM die may include a first plane shown on the left side of the die and a second plane shown on the right side of the die. Each plane may include 20 erase blocks 660, which are shown as rectangles with numbers within them. In some embodiments, the number in erase block 660 may represent the percentage of lifetime P/E cycles that have been performed on erase block 660. For example, an erase block with number 30 may have used 30% of its life P/E cycle. For convenience, individual erase blocks 660 within a plane may be represented by numbers within them. In some other embodiments, the numbers in the erase block may represent another aspect of the erase block (such as location on the NVM die, characterized bit error accumulation rate, historical temperature exposure, read and/or write disturbances Log (e.g., the log may represent a cumulative count, etc.).

NVM裸片620可被布置在通道622中,其中每个通道两个裸片。因此,NVM裸片620_0和620_1连接到通道622_0,NVM裸片620_2和620_3连接到通道622_1,NVM裸片620_4和620_5连接到通道622_2,并且NVM裸片620_6和620_7连接到通道622_3。图6中所示出的裸片、平面、通道、擦除块等的数量和/或布置仅出于说明发明原理的目的,并且其他实施例可包括任何数量和/或布置的裸片、平面、通道、擦除块等。在一些实施例中,RUH可用于在一个或多个RU 760从主机702接收写入数据的同时临时寻址一个或多个RU 760。NVM die 620 may be arranged in lanes 622, with two dies per lane. Thus, NVM die 620_0 and 620_1 are connected to channel 622_0, NVM dies 620_2 and 620_3 are connected to channel 622_1, NVM dies 620_4 and 620_5 are connected to channel 622_2, and NVM dies 620_6 and 620_7 are connected to channel 622_3. The number and/or arrangement of dies, planes, lanes, erase blocks, etc. shown in FIG. 6 is for the purpose of illustrating the principles of the invention only, and other embodiments may include any number and/or arrangement of dies, planes, etc. , channel, erase block, etc. In some embodiments, the RUH may be used to temporarily address one or more RUs 760 while the one or more RUs 760 receive write data from the host 702 .

图7示出根据公开的示例性实施例的用于为灵活数据放置方案选择一个或多个回收单元的擦除块的技术的第一实施例。图7中所示出的技术可例如使用图6中所示出的存储装置来实现,并且与图6中所示出的那些组件类似的组件可使用以相同数字结尾的参考标号而被识别。7 illustrates a first embodiment of a technique for selecting erase blocks of one or more reclaim units for a flexible data placement scheme in accordance with disclosed exemplary embodiments. The techniques shown in Figure 7 may be implemented, for example, using the storage device shown in Figure 6, and components similar to those shown in Figure 6 may be identified using reference numbers ending in the same digit.

参照图7,NVM裸片720可被布置在单个回收组718中。回收单元可通过基于与NVM裸片和/或平面720、通道722等的布置相关的一个或多个规则选择(例如,由控制器726)一个或多个擦除块760而被组成。例如,回收单元可通过每个通道722从一个NVM裸片720的每个平面选择一个擦除块760而被组成。Referring to FIG. 7 , NVM die 720 may be arranged in a single reclaim group 718 . The reclamation unit may be composed by selecting (eg, by controller 726 ) one or more erase blocks 760 based on one or more rules related to placement of NVM dies and/or planes 720 , lanes 722 , etc. For example, the reclamation unit may be composed by selecting one erase block 760 per lane 722 from each plane of an NVM die 720 .

然而,在一个平面内,一个或一个多个擦除块可被随机选择。例如,第一回收单元(其可被称为RU 0)可由使用粗实轮廓线指示的擦除块组成。使用该技术,RU 0可包括NVM裸片720-0的左平面中的擦除块64、NVM裸片720-0的右平面中的擦除块30、NVM裸片720-2的左平面中的擦除块14、NVM裸片720-2的右平面中的擦除块92、NVM裸片720-4的左平面中的擦除块53、NVM裸片720-4的右平面中的擦除块24、NVM裸片720-6的左平面中的擦除块47和NVM裸片720-6的右平面中的擦除块79。However, within a plane, one or more erase blocks may be randomly selected. For example, the first reclaim unit (which may be referred to as RU 0) may be composed of erase blocks indicated using thick solid outlines. Using this technique, RU 0 may include erase block 64 in the left plane of NVM die 720-0, erase block 30 in the right plane of NVM die 720-0, erase block 30 in the left plane of NVM die 720-2 Erase block 14 in the right plane of NVM die 720-2, erase block 92 in the left plane of NVM die 720-4, erase block 53 in the right plane of NVM die 720-4 Erase block 24, erase block 47 in the left plane of NVM die 720-6, and erase block 79 in the right plane of NVM die 720-6.

如上所述,为了方便,平面内的各个擦除块760可由它们内部的数字表示,其也可表示其他特性(诸如,使用的P/E循环的百分比)。As mentioned above, for convenience, individual erase blocks 760 within a plane may be represented by numbers within them, which may also represent other characteristics (such as the percentage of P/E cycles used).

因此,回收单元RU 0内的擦除块760(粗实线轮廓)可具有各种各样的编程循环计数。Therefore, erase block 760 (thick solid outline) within reclaim unit RU 0 may have a variety of program cycle counts.

可选地,可通过在每个平面内选择可具有最低编程循环计数的一个或多个擦除块760来组成单元。例如,第二回收单元(其可被称为RU 1)可由具有最低编程循环计数的擦除块(使用粗虚线轮廓线指示的)组成。使用该技术,RU 1可包括NVM裸片720-1的左平面中的擦除块0、NVM裸片720-1的右平面中的擦除块5、NVM裸片720-3的左平面中的擦除块0、NVM裸片720-3的右平面中的擦除块3、NVM裸片720-4的左平面中的擦除块1、NVM裸片720-4的右平面中的擦除块0、NVM裸片720-7的左平面中的擦除块2、和NVM裸片720-7的右平面中的擦除块6。Alternatively, cells may be formed by selecting one or more erase blocks 760 within each plane that may have the lowest program cycle count. For example, the second reclaim unit (which may be referred to as RU 1) may be composed of the erase block (indicated using a thick dashed outline) with the lowest program cycle count. Using this technique, RU 1 may include erase block 0 in the left plane of NVM die 720-1, erase block 5 in the right plane of NVM die 720-1, erase block 5 in the left plane of NVM die 720-3 Erase block 0 in the right plane of NVM die 720-3, erase block 1 in the left plane of NVM die 720-4, erase block 1 in the right plane of NVM die 720-4 Erase block 0, erase block 2 in the left plane of NVM die 720-7, and erase block 6 in the right plane of NVM die 720-7.

因此,回收单元RU 1内的擦除块760(粗虚线轮廓)可具有相对低的编程循环计数。Therefore, erase block 760 (thick dashed outline) within reclaim unit RU1 may have a relatively low program cycle count.

根据实施细节,这些技术中的任何一种都可能导致回收单元的性能差。例如,如果储存装置704接收具有可被频繁访问的数据(例如,热数据)的写入命令,则控制器726可将该数据存储在使用随机选择的擦除块组成的回收单元RU 0中,并且因此可包括具有各种编程循环计数的擦除块,包括在用于存储热数据时可能磨损的具有相对高的编程循环计数的擦除块。作为另一示例,如果储存装置704接收具有在相对长的时间内可能不会再次访问的数据(例如,冷数据)的写入命令,则控制器726可将该数据存储在使用具有最低编程循环计数的擦除块组成的回收单元RU 1中,该擦除块可能浪费在可容忍在具有相对高的编程循环计数的擦除块中存储(例如,更有效地、以更低的成本等)的冷数据上。Depending on the implementation details, any of these techniques may result in poor performance of the recycling unit. For example, if storage device 704 receives a write command with data that may be accessed frequently (eg, hot data), controller 726 may store the data in a reclamation unit RU 0 composed of randomly selected erase blocks, And thus erase blocks with various program cycle counts may be included, including erase blocks with relatively high program cycle counts that may wear out when used to store hot data. As another example, if storage device 704 receives a write command with data that may not be accessed again for a relatively long period of time (e.g., cold data), controller 726 may store the data using a minimum programming cycle Count of erase blocks consisting of a reclaim unit RU 1 that may be wasted in storage that can be tolerated in erase blocks with relatively high program cycle counts (e.g., more efficiently, at lower cost, etc.) on the cold data.

图8示出根据公开的示例性实施例的用于为单元灵活数据放置方案选择用于一个或多个回收的擦除块的技术的第二实施例。图8中所示出的技术可例如使用图6中所示出的存储装置来实现,并且与图6中所示出的那些组件类似的组件可使用以相同数字结尾的参考标号而被识别。8 illustrates a second embodiment of a technique for selecting erase blocks for one or more reclaims for a cell flexible data placement scheme in accordance with disclosed exemplary embodiments. The techniques shown in Figure 8 may be implemented, for example, using the storage device shown in Figure 6, and components similar to those shown in Figure 6 may be identified using reference numbers ending with the same digits.

参照图8,NVM裸片820可被布置在单个回收组818中。回收单元可通过基于与NVM裸片和/或平面820、通道822等的布置相关的一个或多个规则选择(例如,由控制器826)一个或多个擦除块860而被组成。例如,回收单元可通过每个通道822从一个NVM裸片820的每个平面选择一个擦除块860而被组成。Referring to FIG. 8 , NVM dies 820 may be arranged in a single reclaim group 818 . The reclamation unit may be composed by selecting (eg, by controller 826) one or more erase blocks 860 based on one or more rules related to placement of NVM dies and/or planes 820, lanes 822, etc. For example, the reclamation unit may be composed by selecting one erase block 860 per lane 822 from each plane of an NVM die 820 .

然而,在一个平面内,一个或多个擦除块860可基于关于将被存储在回收单元中的数据的信息861而被选择。例如,信息861可使用通信连接805从主机802接收。主机802可包括可确定(例如,识别、收集、处理等)将被发送到存储装置804的信息861的放置逻辑863。控制器826可包括可使用信息861来选择回收单元和/或用于包括在回收单元内的擦除块860的回收单元逻辑865。However, within a plane, one or more erase blocks 860 may be selected based on information 861 about the data to be stored in the reclaim unit. For example, information 861 may be received from host 802 using communication connection 805. Host 802 may include placement logic 863 that may determine (eg, identify, collect, process, etc.) information 861 to be sent to storage device 804 . Controller 826 may include reclamation unit logic 865 that may use information 861 to select reclamation units and/or for erase blocks 860 to be included within the reclamation units.

例如,信息861可指示将被存储在第一回收单元(其可被称为RU 2)中的数据可以是预计不被频繁访问的相对冷的数据。因此,回收单元逻辑865可使用如用粗实线轮廓所指示的具有相对高的P/E循环计数的擦除块860来组成RU 2。使用该技术,RU 2可包括NVM裸片820-0的左平面中的擦除块87、NVM裸片820-0的右平面中的擦除块91、NVM裸片820-2的左平面中的擦除块92、NVM裸片820-2的右平面中的擦除块92、NVM裸片820-4的左平面中的擦除块86、NVM裸片820-4的右平面中的擦除块93、NVM裸片820-6的左平面中的擦除块92和NVM裸片820-6的右平面中的擦除块90。For example, information 861 may indicate that the data to be stored in the first reclamation unit (which may be referred to as RU 2) may be relatively cold data that is not expected to be accessed frequently. Therefore, reclamation unit logic 865 may form RU 2 using erase blocks 860 with relatively high P/E cycle counts as indicated by the thick solid outline. Using this technique, RU 2 may include erase block 87 in the left plane of NVM die 820-0, erase block 91 in the right plane of NVM die 820-0, erase block 91 in the left plane of NVM die 820-2 erase block 92 in the right plane of NVM die 820-2, erase block 86 in the left plane of NVM die 820-4, erase block 92 in the right plane of NVM die 820-4 Erase block 93, erase block 92 in the left plane of NVM die 820-6, and erase block 90 in the right plane of NVM die 820-6.

控制器826和/或回收单元逻辑865使用组成的回收单元RU 2来存储针对当前写入命令接收到的数据(例如,控制器826可使用由当前写入命令提供的回收单元句柄来引用RU2),或者组成的回收单元RU 2可被保存以与未来写入命令、回收单元句柄等一起使用。The controller 826 and/or the reclaim unit logic 865 uses the composed reclaim unit RU 2 to store the data received for the current write command (e.g., the controller 826 may reference RU2 using the reclaim unit handle provided by the current write command) , or the composed reclamation unit RU2 may be saved for use with future write commands, reclamation unit handles, etc.

根据实施细节,如上所述组成的回收单元RU 2可用于有效地存储由主机指示为相对冷的数据的数据,从而为相对热的数据节省具有相对低的P/E循环计数的其他擦除块。Depending on the implementation details, the reclaim unit RU 2 composed as described above can be used to efficiently store data indicated by the host as relatively cold data, thereby saving other erase blocks with relatively low P/E cycle counts for relatively hot data. .

可选地或附加地,信息861可指示将被存储在第二回收单元(其可被称为RU 3)中的数据可对从位于NVM裸片820的外围附近产生的应力相对敏感。因此,回收单元逻辑865可使用以粗虚线轮廓示出的位于NVM裸片820的中心附近的擦除块860来组成RU 3。使用该技术,RU 3可包括NVM裸片820-1的左平面中的擦除块52、NVM裸片820-1的右平面中的擦除块51、NVM裸片820-3的左平面中的擦除块40、NVM裸片820-3的右平面中的擦除块39、NVM裸片820-5的左平面中的擦除块37、NVM裸片820-5的右平面中的擦除块52、NVM裸片820-7的左平面中的擦除块43和NVM裸片820-7的右平面中的擦除块40。Alternatively or additionally, information 861 may indicate that data to be stored in the second recovery unit (which may be referred to as RU 3 ) may be relatively sensitive to stresses arising from being located near the periphery of NVM die 820 . Thus, reclamation unit logic 865 may form RU 3 using erase block 860 , shown in thick dashed outline, located near the center of NVM die 820 . Using this technique, RU 3 may include erase block 52 in the left plane of NVM die 820-1, erase block 51 in the right plane of NVM die 820-1, erase block 51 in the left plane of NVM die 820-3 erase block 40, erase block 39 in the right plane of NVM die 820-3, erase block 37 in the left plane of NVM die 820-5, erase block 37 in the right plane of NVM die 820-5 Erase block 52, erase block 43 in the left plane of NVM die 820-7, and erase block 40 in the right plane of NVM die 820-7.

控制器826和/或回收单元逻辑865使用组成的回收单元RU 3来存储针对当前写入命令接收到的数据(例如,控制器826可使用由当前写入命令提供的回收单元句柄以引用RU3),或者可保存组成的回收单元RU 3以与未来写入命令、回收单元句柄等一起使用。Controller 826 and/or reclaim unit logic 865 uses constituent reclaim unit RU 3 to store data received for the current write command (e.g., controller 826 may use the reclaim unit handle provided by the current write command to reference RU3) , or the composed reclaim unit RU 3 may be saved for use with future write commands, reclaim unit handles, etc.

根据实施细节,如上所述组成的回收单元RU 3可用于有效地存储被指示为对从位于NVM裸片820的外围附近产生的应力相对敏感的数据,同时使用位于NVM裸片820的外围附近的其他擦除块860来组成其他擦除单元以存储可对位于NVM裸片820的外围附近不太敏感的数据。Depending on the implementation details, the recovery unit RU 3 composed as described above may be used to efficiently store data indicated to be relatively sensitive to stresses arising from being located near the periphery of the NVM die 820 while using the Other erase blocks 860 are used to form other erase units to store data that may be less sensitive to being located near the periphery of the NVM die 820 .

尽管图7和图8中所示出的实施例使用可包括所有八个NVM裸片的单个回收组来实现,但是在其他实施例中,NVM裸片可以以回收组的任何其他配置而被布置。例如,在一些实施例中,每个NVM裸片可被配置为单独的回收组。在这样的实施例中,回收单元可例如通过从NVM裸片的每个平面选择一个擦除块而被组成。在一个平面内,一个或多个擦除块可基于关于将被存储在回收单元中的数据的信息(例如,从主机接收到的)而被选择。在具有多个回收组的这样的实施例中,回收组可基于关于将被存储在回收单元中(例如,以与回收组最佳对齐)的数据的信息而被选择。此外,在具有灵活数据放置的NVMe实施方式中,如果写入命令未指定回收组,则控制器826可例如基于信息861选择回收组。Although the embodiments shown in Figures 7 and 8 are implemented using a single reclaim group that may include all eight NVM dies, in other embodiments the NVM dies may be arranged in any other configuration of reclaim groups . For example, in some embodiments, each NVM die may be configured as a separate reclamation group. In such embodiments, the reclamation unit may be composed, for example, by selecting one erase block from each plane of the NVM die. Within a plane, one or more erase blocks may be selected based on information (eg, received from the host) about the data to be stored in the reclamation unit. In such embodiments with multiple reclamation groups, the reclamation group may be selected based on information about the data to be stored in the reclamation unit (eg, to best align with the reclamation group). Additionally, in NVMe implementations with flexible data placement, if the write command does not specify a reclamation group, controller 826 may select a reclamation group based on information 861, for example.

图9示出根据公开的示例实施例的实现灵活数据放置方案的存储系统的实施例。图9中所示出的实施例可包括使用通信连接905进行通信的主机902和存储装置904。存储装置904可包括控制器926(其可控制存储装置904的总体操作)和包括可如在此描述的被选择、组成等的一个或多个回收单元914的存储介质913。Figure 9 illustrates an embodiment of a storage system that implements a flexible data placement scheme in accordance with disclosed example embodiments. The embodiment shown in Figure 9 may include a host 902 and a storage device 904 communicating using a communication connection 905. Storage device 904 may include a controller 926 (which may control the overall operation of storage device 904) and storage media 913 including one or more recovery units 914 that may be selected, composed, etc., as described herein.

控制器926可包括可实现在此公开的任何灵活数据放置方案的回收单元逻辑965,回收单元逻辑965可基于关于将存储在一个或多个回收单元914中的数据921的信息961来选择和/或组成一个或多个回收单元914。信息961可例如由主机902提供。数据921可例如由从主机902发送到存储装置904的写入命令930指定。写入命令930可例如将数据921与写入命令930包括在一起和/或包括在写入命令930内,通过发送指针、地址和/或数据在其中(例如,在存储器中、在存储设备中、在网络上等)的位置的其他指示,和/或以任何其他方式来指定数据921。Controller 926 may include reclamation unit logic 965 that may implement any of the flexible data placement schemes disclosed herein and may select and/or based on information 961 regarding data 921 to be stored in one or more reclamation units 914 Or form one or more recycling units 914. Information 961 may be provided by host 902, for example. Data 921 may be specified, for example, by a write command 930 sent from host 902 to storage device 904. Write command 930 may, for example, include data 921 with and/or within write command 930 by sending a pointer, address, and/or data therein (e.g., in memory, in a storage device , on a network, etc.), and/or in any other manner to specify the data 921.

主机902可包括可实现放置逻辑963的一个或多个处理器962,放置逻辑963提供关于将存储在存储装置904的一个或多个回收单元914中的数据的任何信息961。一个或多个处理器962还可运行一个或多个操作系统972,操作系统972进而可运行应用974、文件系统976等。操作系统972、应用974、文件系统976等中的任何一个可以是可被存储在存储装置904的一个或多个回收单元914中的用户的数据。在一些实施例中,放置逻辑963可例如使用专用硬件(诸如,复杂可编程逻辑装置(CPLD)、现场可编程门阵列(FPGA)、专用电路(ASIC)等)与一个或多个处理器962部分或完全分离地实现。例如,在一些实施例中,放置逻辑963可至少部分地使用硬件来实现,该硬件可使用一个或多个密钥来执行查找以获得一个或多个值。Host 902 may include one or more processors 962 that may implement placement logic 963 that provides any information 961 regarding data to be stored in one or more reclamation units 914 of storage device 904 . One or more processors 962 may also run one or more operating systems 972, which in turn may run applications 974, file systems 976, etc. Any of the operating system 972 , applications 974 , file system 976 , etc. may be the user's data that may be stored in one or more reclamation units 914 of the storage device 904 . In some embodiments, placement logic 963 may use, for example, specialized hardware (such as a complex programmable logic device (CPLD), a field programmable gate array (FPGA), an application specific circuit (ASIC), etc.) with one or more processors 962 Implemented partially or completely separately. For example, in some embodiments, placement logic 963 may be implemented at least in part using hardware that may perform a lookup using one or more keys to obtain one or more values.

主机902中的放置逻辑963和存储装置904中的回收单元逻辑965可分别包括信息逻辑963-1和965-1,信息逻辑963-1和965-1可分别实现与可被提供给存储装置904和/或由存储装置904使用的信息961的类型相关的主机侧功能和装置侧功能,以基于例如从主机902接收到的写入请求(例如,写入命令)来选择和/或组成用于存储数据的一个或多个回收单元914。The placement logic 963 in the host 902 and the reclaim unit logic 965 in the storage device 904 may include information logic 963-1 and 965-1, respectively, which may be implemented and provided to the storage device 904. and/or host-side functions and device-side functions related to the type of information 961 used by the storage device 904 to select and/or compose a program for use based on, for example, a write request (eg, a write command) received from the host 902 One or more reclamation units 914 that store data.

在一些实施例中,信息逻辑963-1和/或965-1可使主机902能够提供和/或存储装置904能够使用关于将被存储在回收单元中的数据的访问信息。访问信息可包括例如历史访问信息(诸如,数据已经多快和/或多频繁地被写入、读取、重新写入等)的访问信息。例如,如果数据已经被写入并且之后在相对长的时间内没有被读取或重新写入,则数据可被认为是相对冷的数据。历史访问信息可从主机902被发送到存储装置904,存储装置904可使用历史访问信息来确定将存储在一个或多个回收单元914中的数据921是否可被认为是热的、冷的等。因此,装置侧信息逻辑965-1可基于历史访问信息对数据921的未来访问进行预测。In some embodiments, information logic 963-1 and/or 965-1 may enable host 902 to provide and/or storage device 904 to use access information regarding data to be stored in the reclamation unit. Access information may include access information such as historical access information such as how quickly and/or how frequently data has been written, read, rewritten, etc. For example, the data may be considered relatively cold data if it has been written and then not read or rewritten for a relatively long period of time. Historical access information may be sent from the host 902 to the storage device 904, which may use the historical access information to determine whether data 921 to be stored in one or more reclamation units 914 may be considered hot, cold, etc. Therefore, device-side information logic 965-1 can predict future access to data 921 based on historical access information.

附加地或可选地,从主机902发送到存储装置904的访问信息可包括由主机侧信息逻辑963-1做出的确定。例如,主机902可使用LBA的第一集合将数据的集合存储在存储装置904中。主机902可从存储装置904读取数据集合的一部分,例如,作为文件系统压缩操作(例如,用于移除数据集合的剩余有效部分之间的一个或多个间隙的垃圾收集操作)的一部分,并且使用LBA的第二集合将数据集合的该部分写入存储装置904。主机侧信息逻辑963-1可将指示数据921可以是相对冷(例如,数据921最近未被重新写入,因此作为垃圾收集操作的一部分被压缩)的数据的信息961发送到装置侧信息逻辑965-1。因此,主机侧信息逻辑963-1可基于历史访问信息对数据921的未来访问进行预测。Additionally or alternatively, access information sent from host 902 to storage device 904 may include determinations made by host-side information logic 963-1. For example, host 902 may store a set of data in storage 904 using a first set of LBAs. Host 902 may read a portion of the data set from storage 904, for example, as part of a file system compression operation (e.g., a garbage collection operation to remove one or more gaps between remaining valid portions of the data set), And that portion of the data set is written to storage 904 using the second set of LBAs. Host-side information logic 963-1 may send information 961 to device-side information logic 965 indicating that data 921 may be relatively cold data (eg, data 921 has not been recently rewritten and therefore was compressed as part of a garbage collection operation). -1. Therefore, the host-side information logic 963-1 can predict future access to the data 921 based on historical access information.

除了基于历史访问信息的预测之外,信息逻辑963-1和/或965-1可使主机902能够提供和/或存储装置904能够使用基于任何其他基础的预测。例如,主机可将由应用974启动的新线程辨识为相对活跃、重要等,并且假设与应用相关联的任何数据可以是热数据。因此,主机侧信息逻辑963-1可基于线程、应用974等的一个或多个特性来预测数据921的未来访问,并且将指示与线程、应用等相关联的任何写入数据921可被认为是相对热的数据的信息961发送到装置侧信息逻辑965-1。Information logic 963-1 and/or 965-1 may enable host 902 to provide and/or storage device 904 to use predictions based on any other basis than predictions based on historical access information. For example, the host may identify new threads launched by application 974 as relatively active, important, etc., and assume that any data associated with the application may be hot data. Accordingly, host side information logic 963-1 may predict future accesses of data 921 based on one or more characteristics of the thread, application 974, etc., and will indicate that any written data 921 associated with the thread, application, etc. may be considered The relatively hot data information 961 is sent to the device side information logic 965-1.

附加地或可选地,访问信息可包括诸如数据预计(例如,预测)多久被重新写入、读取等的信息。例如,即使最近没有访问一些数据,也可能存在即将到来的事件、相关数据的最近访问等的可指示数据可很快被访问的一个或多个指示符,并且因此,该数据可被认为是相对热的数据。Additionally or alternatively, access information may include information such as how often data is expected (eg, predicted) to be rewritten, read, etc. For example, even if some data has not been accessed recently, there may be one or more indicators of an upcoming event, recent access to related data, etc. that may indicate that the data may be accessed soon, and therefore, the data may be considered relatively Hot data.

附加地或可选地,信息逻辑963-1和/或965-1可使主机902能够提供和/或存储装置904能够使用关于存储介质的一个或多个可接受特性的信息,该存储介质可用于存储信息961被提供的数据921。可接受的特性可包括诸如可接受的位误差率(BER)的误差容限信息,其进而可基于位误差累积。例如,BER和/或位误差累积可基于存储数据的时间长度、对数据执行的读取操作的数量、对数据执行的重新写入操作(例如,刷新操作)的数量、对数据执行的一个或多个数据移动操作(例如,垃圾收集(GC)操作)等而被指定。作为另一示例,BER和/或位误差累积可与回收单元和/或在回收单元中使用的擦除块的预期和/或估计寿命中的剩余P/E循环的数量相关。如同关于如上所述的访问的信息,关于存储介质的可接受特性的信息可基于历史信息、基于历史信息的预测、基于任何其它基础的预测等。Additionally or alternatively, information logic 963-1 and/or 965-1 may enable host 902 to provide and/or storage device 904 to use information regarding one or more acceptable characteristics of a storage medium that is available Data 921 provided for storing information 961. Acceptable characteristics may include error margin information such as an acceptable bit error rate (BER), which in turn may be based on bit error accumulation. For example, BER and/or bit error accumulation may be based on the length of time the data is stored, the number of read operations performed on the data, the number of rewrite operations (e.g., refresh operations) performed on the data, one or Multiple data movement operations (eg, garbage collection (GC) operations), etc. are specified. As another example, BER and/or bit error accumulation may be related to the number of remaining P/E cycles in the expected and/or estimated lifetime of the reclamation unit and/or the erase blocks used in the reclamation unit. As with the information regarding access as described above, the information regarding acceptable characteristics of storage media may be based on historical information, predictions based on historical information, predictions based on any other basis, or the like.

附加地或可选地,信息逻辑963-1和/或965-1可使主机902能够提供和/或存储装置904能够使用关于数据921的一个或多个属性的信息以存储在装置中。例如,属性信息可包括服务质量(QoS)信息,其可指定将被存储在回收单元中的数据的所需要的可用性。作为另一示例,属性信息可包括将被存储在回收单元中的数据的访问延迟信息。这可能受到例如存储介质的损耗均衡的影响(例如,NVM单元的寿命可能影响读取时间、写入(编程)时间、擦除时间等)。作为另一示例,属性信息可包括也可能受到例如存储介质的耗损均衡的影响的访问带宽信息。作为另一示例,属性信息可包括服务级协议(SLA)信息,其可指定例如对数据将被存储的存储介质剩余的P/E循环所需要的最小数量,而不管数据实际上是否可被频繁地访问(例如,即使将被存储的数据是相对冷的数据)。如同关于如上所述的访问的信息,关于数据921的一或多个属性的信息可基于历史信息、基于历史信息的预测、基于任何其它基础的预测等。Additionally or alternatively, information logic 963-1 and/or 965-1 may enable host 902 to provide and/or storage device 904 to use information regarding one or more attributes of data 921 for storage in the device. For example, the attribute information may include quality of service (QoS) information, which may specify the required availability of data to be stored in the reclamation unit. As another example, the attribute information may include access delay information of data to be stored in the recycling unit. This may be affected by, for example, wear leveling of the storage medium (eg, the lifetime of the NVM cell may affect read time, write (programming) time, erase time, etc.). As another example, attribute information may include access bandwidth information that may also be affected by, for example, wear leveling of the storage medium. As another example, the attribute information may include service level agreement (SLA) information, which may specify, for example, the minimum number of P/E cycles required to remain on the storage medium on which the data will be stored, regardless of whether the data may actually be accessed frequently. access (for example, even if the data to be stored is relatively cold data). As with the information regarding access as described above, the information regarding one or more attributes of data 921 may be based on historical information, predictions based on historical information, predictions based on any other basis, etc.

附加地或可选地,信息逻辑963-1和/或965-1可使主机902能够提供和/或使存储装置904能够使用关于将被存储在回收单元中的数据921的类型和/或用法的信息。例如,诸如操作系统元数据、文件系统表等的数据可被频繁地访问,并且因此,这样的数据可被存储的回收单元可被选择和/或组成包括可具有相对大量的P/E循环剩余的一个或多个擦除块。如同关于如上所述的访问的信息,关于数据921的类型和/或用法的信息可基于历史信息、基于历史信息的预测、基于任何其他基础的预测等。Additionally or alternatively, information logic 963-1 and/or 965-1 may enable the host 902 to provide and/or enable the storage device 904 to use information regarding the type and/or usage of the data 921 to be stored in the reclamation unit. Information. For example, data such as operating system metadata, file system tables, etc. may be accessed frequently, and therefore, the reclamation unit in which such data may be stored may be selected and/or composed to include a relatively large amount of P/E cycle remaining one or more erase blocks. As with the information regarding access as described above, the information regarding the type and/or usage of data 921 may be based on historical information, predictions based on historical information, predictions based on any other basis, etc.

在一些实施例中,主机902中的放置逻辑963和存储装置904中的回收单元逻辑965可分别包括通信逻辑963-2和965-2,通信逻辑963-2和965-2可分别实现与信息961可从主机902通信到存储装置904的方式相关的主机侧功能和装置侧功能。In some embodiments, the placement logic 963 in the host 902 and the recycling unit logic 965 in the storage device 904 may include communication logic 963-2 and 965-2 respectively, and the communication logic 963-2 and 965-2 may respectively implement information processing. 961 Host-side functions and device-side functions related to the manner in which the host 902 can communicate to the storage device 904 .

通信逻辑963-2和/或965-2可使主机902能够隐式地和/或显式地接收信息961,和/或使存储装置904能够隐式地和/或显式地发送信息961。例如,信息961可通过定义一个或多个回收单元句柄标识符(例如,回收单元号)而被隐式地传达,该一个或多个回收单元句柄标识符可被辨识和/或预计对应于将存储在对应回收单元中的数据的不同访问信息。例如,回收单元句柄RUH 0可被辨识为隐式地指示将使用该回收单元句柄存储的数据是相对热的数据,并且回收单元句柄RUH 1可被识别为隐式地指示将使用该回收单元句柄存储的数据是相对冷的数据。此外,回收单元句柄标识符的范围(例如,数字范围)可用于指示访问信息的范围(例如,访问频率的范围,该范围的一端指示最频繁访问的数据,而另一端指示最不频繁访问的数据)。作为另一示例,回收单元句柄RUH 3可被辨识为隐式地指示将使用该回收单元句柄存储的数据可被存储在具有相对较低性能特性(例如,相对较高的P/E循环计数)的回收单元中。Communication logic 963-2 and/or 965-2 may enable host 902 to receive information 961 implicitly and/or explicitly, and/or enable storage device 904 to send information 961 implicitly and/or explicitly. For example, information 961 may be implicitly conveyed by defining one or more reclamation unit handle identifiers (e.g., reclamation unit numbers) that may be recognized and/or expected to correspond to the Different access information for data stored in the corresponding recycling unit. For example, a reclamation unit handle RUH 0 may be recognized as implicitly indicating that the data stored using the reclamation unit handle is relatively hot data, and a reclamation unit handle RUH 1 may be recognized as implicitly indicating that the reclamation unit handle will be used. The stored data is relatively cold data. Additionally, a range of reclamation unit handle identifiers (e.g., a numeric range) may be used to indicate a range of access information (e.g., a range of access frequencies, with one end of the range indicating the most frequently accessed data and the other end indicating the least frequently accessed data). data). As another example, a reclamation unit handle RUH 3 may be recognized as implicitly indicating that data to be stored using this reclamation unit handle may be stored in a location with relatively low performance characteristics (eg, a relatively high P/E cycle count). in the recycling unit.

附加地或可选地,通信逻辑963-2和/或965-2可使主机902能够例如使用可提供关于数据的显式信息的命令、句柄等的一个或多个字段、扩展等来显式地接收信息961,和/或存储装置904能够例如使用可提供关于数据的显式信息的命令、句柄等的一个或多个字段、扩展等来显式地发送信息961。例如,主机可发送包括扩展的回收单元句柄。一种类型的扩展可指示将使用回收单元句柄存储的数据可相对热,并且另一类型的扩展可指示将使用回收单元句柄存储的数据可相对冷。一个或多个附加扩展可指示数据在热与冷之间的某处。根据实施细节,这样的实施方式可使用一个或多个回收单元资源,该一个或多个回收单元资源可基于每种指示乘以使用的回收单元句柄的数量而被调整大小。Additionally or alternatively, communication logic 963-2 and/or 965-2 may enable host 902 to explicitly use, for example, one or more fields, extensions, etc. of a command, handle, etc. that may provide explicit information about the data. The information 961 is received, and/or the storage device 904 is able to send the information 961 explicitly, for example, using one or more fields, extensions, etc. of a command, handle, etc. that can provide explicit information about the data. For example, the host can send a reclaim unit handle that includes the extension. One type of extension may indicate that data to be stored using the reclamation unit handle may be relatively hot, and another type of extension may indicate that data to be stored using the reclamation unit handle may be relatively cold. One or more additional extensions can indicate that the data is somewhere between hot and cold. Depending on the implementation details, such implementations may use one or more reclamation unit resources that may be sized based on each indication multiplied by the number of reclamation unit handles used.

附加地或可选地,通信逻辑963-2和/或965-2可使主机902能够以持久的方式接收信息961,和/或存储装置904能够以持久的方式发送信息961(例如,用于写入命令序列和/或回收单元句柄的数据的信息可以是相同的,直到信息被更新)。例如,主机可发送可作为设置的指示,以指示用于一个或多个后续写入命令的回收单元可被处理,具有关于数据的特定类型的信息,例如,直到设置被改变,直到已经过去特定时间,直到特定数量的命令已经使用设置而被处理,特定数量的回收单元已经针对回收单元句柄而被充满等。Additionally or alternatively, communication logic 963-2 and/or 965-2 may enable host 902 to receive information 961 in a persistent manner, and/or storage device 904 to send information 961 in a persistent manner (e.g., for The information written to the data of the command sequence and/or the recycling unit handle may be the same until the information is updated). For example, the host may send an indication that may be a setting to indicate that a reclaim unit for one or more subsequent write commands may be processed, with information about a specific type of data, e.g., until the setting is changed and until a specific Time until a certain number of commands have been processed using the settings, a certain number of reclaim units have been filled for the reclaim unit handle, etc.

附加地或可选地,通信逻辑963-2和/或965-2可使主机902能够在单独的基础上接收信息961,和/或使存储装置904能够在单独的基础上发送信息961。例如,可为每个写入命令、每个回收单元句柄更新等提供关于将存储在一个或多个回收单元中的数据的信息。Additionally or alternatively, communication logic 963-2 and/or 965-2 may enable host 902 to receive information 961 on an individual basis, and/or enable storage device 904 to send information 961 on an individual basis. For example, information about the data to be stored in one or more reclamation units may be provided for each write command, each reclamation unit handle update, etc.

附加地或可选地,通信逻辑963-2和/或965-2可使主机902能够使用任何其他通信技术(诸如,存储装置控制器的设置;命名空间属性;使用对回收单元句柄的更新操作的请求;作为灵活数据放置方案的配置设置;在输入和/或输出(I/O或IO)命令的字段中;在管理命令的字段中;作为非易失性存储器(NVM)子系统、控制器、命名空间等的属性、设置等)来接收信息961,和/或使存储装置904能够使用任何其他通信技术(诸如,存储装置控制器的设置;命名空间属性;使用对回收单元句柄的更新操作的请求;作为灵活数据放置方案的配置设置;在输入和/或输出(I/O或IO)命令的字段中;在管理命令的字段中;作为非易失性存储器(NVM)子系统、控制器、命名空间等的属性、设置等)来发送信息961。例如,信息961中的一些或全部可与写入命令(诸如,图3A至图3D中所示出的写入命令330)一起被提供。作为另一示例,信息961中的一些或全部可与更新请求(诸如,图4A至图4B中所示出的更新请求423)一起被提供。作为另一示例,信息961中的一些或全部可与命名空间管理操作(诸如建立、配置和/或更新图5中所示出的命名空间525)一起被提供。作为另一示例,信息961中的一些或全部可与NVM子系统管理操作(诸如建立、配置和/或更新分别在图1A至图1E和/或图2A至图2D中示出的NVM子系统106和/或206)一起被提供。作为另一示例,在使用NVMe的实施方式中,信息961可使用数据集管理(DSM)命令(例如,使用上下文属性)、使用指令特定字段(例如,DSPEC字段)中的一个或多个位、和/或使用与提交队列条目(SQE)中的命令一起通信的指令类型字段(DTYPE字段)而被通信。作为另一示例,可使用供应商特定技术来通信信息961。Additionally or alternatively, communication logic 963-2 and/or 965-2 may enable host 902 to use any other communication technology (such as settings of storage controllers; namespace attributes; use of update operations on reclaim unit handles) request; as a configuration setting for a flexible data placement scheme; in the field of input and/or output (I/O or IO) commands; in the field of management commands; as a non-volatile memory (NVM) subsystem, control properties, settings, etc.) of the storage device, namespace, etc.) to receive information 961, and/or enable the storage device 904 to use any other communication technology (such as settings of the storage device controller; namespace attributes; using updates to the reclaim unit handle A request for an operation; as a configuration setting for a flexible data placement scheme; in the field of input and/or output (I/O or IO) commands; in the field of management commands; as a non-volatile memory (NVM) subsystem, Properties, settings, etc. of a controller, namespace, etc.) to send message 961. For example, some or all of the information 961 may be provided with a write command, such as write command 330 shown in Figures 3A-3D. As another example, some or all of the information 961 may be provided with an update request, such as update request 423 shown in Figures 4A-4B. As another example, some or all of the information 961 may be provided in conjunction with namespace management operations such as establishing, configuring, and/or updating namespace 525 shown in Figure 5. As another example, some or all of the information 961 may be related to NVM subsystem management operations such as establishing, configuring, and/or updating the NVM subsystem shown in FIGS. 1A-1E and/or 2A-2D, respectively. 106 and/or 206) are provided together. As another example, in implementations using NVMe, information 961 may use a data set management (DSM) command (eg, using a context attribute), using one or more bits in an instruction specific field (eg, a DSPEC field), and/or is communicated using the command type field (DTYPE field) communicated with the command in the Submit Queue Entry (SQE). As another example, vendor specific technology may be used to communicate information 961.

在一些实施例中,存储装置904中的回收单元逻辑965可包括使用逻辑965-3,使用逻辑965-3可实现与信息961可被使用以组成和/或选择一个或多个回收单元914的方式相关的装置侧功能。例如,如果信息961指示数据可能被频繁地写入、读取、重新读取和/或重新写入(例如,是热数据),则使用逻辑965-3可使存储装置904能够选择和/或组成具有存储介质的回收单元,该存储介质可具有在其预期寿命中剩余的相对大量的P/E循环。附加地,如果信息961指示数据不太可能被很快或频繁地被写入、读取、重新读取和/或重新写入(例如,是冷数据),则使用逻辑965-3可使存储装置904能够选择和/或组成具有存储介质的回收单元,该存储介质可具有在其预期寿命中剩余的相对少量的P/E循环。In some embodiments, reclamation unit logic 965 in storage device 904 may include usage logic 965-3 that may implement and information 961 may be used to form and/or select one or more reclamation units 914. Mode-related device-side functions. For example, if information 961 indicates that data may be frequently written, read, re-read, and/or rewritten (e.g., is hot data), then use logic 965-3 may enable storage 904 to select and/or Compose a recycling unit with storage media that may have a relatively large number of P/E cycles remaining in its expected life. Additionally, if information 961 indicates that the data is unlikely to be written, read, re-read and/or re-written quickly or frequently (e.g., is cold data), then using logic 965-3 may cause the storage Apparatus 904 can select and/or compose a recycling unit with storage media that may have a relatively small number of P/E cycles remaining in its expected life.

作为另一示例,如果信息961指示数据具有相对高的误差容限,例如,因为数据可作为冗余存储方案的一部分被存储在存储装置中,则存储装置可选择和/或组成具有存储介质的回收单元,该存储介质可具有在其预期寿命中剩余的相对少量的P/E循环(例如,可具有相对高损耗均衡的存储介质)。例如,如果数据存储在独立驱动器冗余阵列(RAID)和/或具有相对大量镜像(例如,三个镜像而不是两个镜像)的冗余方案中,则这可指示主机可提供相对高的数据保护率(例如,相对高的数据丢失率可以是可接受的),并且可使用可具有在其预期寿命中剩余的相对少量有效估计的P/E循环的存储介质来存储数据。作为另一示例,如果主机不允许数据在存储装置中停留很长时间(例如,针对最小量的BER累积),则可使用存储介质来存储数据,该存储介质可具有在其预期寿命中剩余的相对大量的有效估计的P/E循环。As another example, if information 961 indicates that the data has a relatively high error tolerance, for example, because the data may be stored in the storage device as part of a redundant storage scheme, the storage device may be selected and/or composed with a storage medium. Recycling unit, the storage medium may have a relatively small number of P/E cycles remaining over its expected life (eg, the storage medium may have a relatively high wear leveling). For example, if the data is stored in a redundant array of independent drives (RAID) and/or a redundancy scheme with a relatively large number of mirrors (e.g., three mirrors instead of two), this may indicate that the host can provide a relatively high protection rate (eg, a relatively high data loss rate may be acceptable), and the data may be stored using a storage medium that may have a relatively small number of valid estimated P/E cycles remaining over its expected life. As another example, if the host does not allow the data to remain in storage for a long time (e.g., for a minimal amount of BER accumulation), the data may be stored using a storage medium that may have remaining time in its expected life. Relatively large number of effectively estimated P/E cycles.

作为另一示例,使用逻辑965-3可识别和/或使用存储介质913的一个或多个部分的一个或多个属性,以基于属性与容忍相对大量的P/E循环和/或累积相对较少数量的位错误的提高能力的相关性来组成和/或选择一个或多个回收单元914。例如,可针对回收单元选择一个或多个擦除块,和/或可基于其包括具有一个或多个属性(诸如,晶片生产属性(例如,晶片上的裸片的位置)、存储介质裸片上的擦除块位置、读取、写入(编程)和/或擦除操作的电压和/或速度特性、存储介质的位误差率累积、存储介质的当前和/或历史温度暴露、存储介质和/或邻近介质的访问活性(例如,读取、写入(编程)和/或擦除操作)等)的存储介质来选择回收单元。As another example, usage logic 965-3 may identify and/or use one or more properties of one or more portions of storage medium 913 to compare with tolerance of a relatively large number of P/E cycles and/or accumulations based on the properties. The correlation of a small number of bit errors improves the ability to compose and/or select one or more recovery units 914 . For example, one or more erase blocks may be selected for a reclamation unit, and/or may be selected based on having one or more attributes, such as wafer production attributes (e.g., location of the die on the wafer), storage media on the die, erase block locations, voltage and/or speed characteristics of read, write (programming) and/or erase operations, bit error rate accumulation of the storage medium, current and/or historical temperature exposure of the storage medium, the storage medium and /or select a recycling unit adjacent to the storage medium in terms of access activity (eg, read, write (programming) and/or erase operations), etc.) of the medium.

在一些实施例中,信息961可被使用以组成和/或选择一个或多个回收单元914的方式可基于一个或多个区分方法(诸如,二进制阈值、分箱(binning)、模拟阈值等)。例如,在二进制阈值的情况下,如果BER高于阈值,则擦除块可被认为具有高BER,并且如果BER低于阈值,则擦除块可被认为具有低BER。然而,在分箱技术的情况下,擦除块可基于两个或更多个阈值(例如,行为预期)而被划分为多个箱。例如,四个不同的阈值可被使用以将擦除块分为五个不同的箱,每个箱可用于组成具有不同的位误差的容限水平的数据的回收单元。作为另一示例,已经被垃圾收集一次的数据可被指示为属于冷的数据的第一箱,而已经被垃圾收集两次的数据可被指示为属于甚至更冷的数据的第二箱。In some embodiments, the manner in which information 961 may be used to compose and/or select one or more recycling units 914 may be based on one or more differentiation methods (such as binary thresholding, binning, simulation thresholding, etc.) . For example, in the case of a binary threshold, an erase block may be considered to have a high BER if the BER is above the threshold, and an erase block may be considered to have a low BER if the BER is below the threshold. However, in the case of binning techniques, erase blocks may be divided into multiple bins based on two or more thresholds (eg, behavioral expectations). For example, four different thresholds may be used to separate erase blocks into five different bins, each of which may be used to constitute a reclamation unit of data with a different tolerance level of bit errors. As another example, data that has been garbage collected once may be indicated as belonging to a first bin of cold data, while data that has been garbage collected twice may be indicated as belonging to a second bin of even colder data.

在具有模拟或比例微分方案的一些实施例中,擦除块可被表征为具有特性、属性等的特定值。例如,可使用相对高量化数字数学的浮点数量或数字数量可用于表征擦除块的编程、读取和/或擦除操作的速度和/或电压,并且浮点数量或数字数量可用于基于提供给储存装置904的信息961来选择回收单元914的擦除块。In some embodiments with analog or proportional derivative schemes, erase blocks may be characterized as having specific values for characteristics, attributes, etc. For example, floating point or numeric quantities, which may use relatively high quantized numerical mathematics, may be used to characterize the speed and/or voltage of program, read, and/or erase operations of an erase block, and floating point or numeric quantities may be used based on The information 961 provided to the storage device 904 is used to select the erase block for the reclaim unit 914 .

在一些实施例中,主机902的放置逻辑963可包括确定逻辑963-4,确定逻辑963-4可实现与主机902可确定将发送到存储装置904的信息961的方式相关的主机侧功能。确定逻辑963-4可使主机902能够识别、收集、处理等将发送到存储装置的信息961。例如,主机可观察到由用户(例如,操作系统972、应用974、文件系统976等)写入的数据可以是或可能是连续使用的和/或已经被存储、可能被存储相对长时间的,并且可将该信息例如与写入请求一起发送到存储装置。附加地或可选地,确定逻辑963-4可将这种类型的信息转换为可由存储装置904更直接地作用的另一种类型的信息。例如,如果确定逻辑963-4确定由用户写入的数据已经被存储,或者可能被存储相对长的时间,则确定逻辑963-4可发送指示数据是相对冷的数据的信息961。In some embodiments, placement logic 963 of host 902 may include determination logic 963 - 4 , which may implement host-side functionality related to the manner in which host 902 may determine information 961 to send to storage device 904 . Determination logic 963-4 may enable the host 902 to identify, collect, process, etc. information 961 to be sent to the storage device. For example, the host may observe that data written by a user (e.g., operating system 972, application 974, file system 976, etc.) may be or may be continuously used and/or have been stored, possibly for a relatively long time, And this information can be sent to the storage device, for example, together with the write request. Additionally or alternatively, determination logic 963-4 may convert this type of information to another type of information that may be acted upon more directly by storage device 904. For example, if the determination logic 963-4 determines that data written by the user has been stored, or is likely to be stored for a relatively long time, the determination logic 963-4 may send information 961 indicating that the data is relatively cold data.

作为另一示例,确定逻辑963-4可观察到由用户写入的数据可或可能在文件系统级、数据库级等处被压缩(例如,垃圾收集),并且将该信息与对数据的写入请求一起发送到存储装置。例如,确定逻辑963-4可表征可或可能被压缩为相对热的数据的用户数据。作为另一示例,主机可确定数据已经被压缩(例如,垃圾收集)的次数,并且将此信息与将存储在装置处的数据一起发送到存储装置。根据实施细节,对相同数据的多个压缩操作可增加数据与数据将被频繁访问的可能性之间的相关性。As another example, determination logic 963-4 may observe that data written by the user may or may be compressed (e.g., garbage collected) at the file system level, database level, etc., and combine this information with the writing of the data The request is sent to the storage device. For example, determination logic 963-4 may characterize user data that may or may be compressed into relatively hot data. As another example, the host may determine the number of times the data has been compressed (eg, garbage collected) and send this information to the storage device along with the data to be stored at the device. Depending on the implementation details, multiple compression operations on the same data can increase the correlation between the data and the likelihood that the data will be accessed frequently.

作为另一示例,确定逻辑963-4可基于一个或多个数据管理方案(诸如,一个或多个高速缓存替换策略、分层存储方案、多层存储架构等)来表征数据用法,并且将该信息与将被存储在装置处的数据一起发送到存储装置。例如,在数据被存储为高速缓存替换策略的一部分的情况下,数据被存储的高速缓存级可指示数据将被频繁访问的相对可能性(例如,存储在L1高速缓存级处的数据可比存储在L3高速缓存级处的数据更频繁地被访问)。类似地,存储在分层存储方案的较高级处的数据可比存储在分层存储方案的较低级处的数据更频繁地被访问。因此,确定逻辑963-4可将这样的用法信息作为信息961直接报告给存储装置904,和/或将这样的用法转换为指示数据相对热或冷的信息961。As another example, determination logic 963-4 may characterize data usage based on one or more data management schemes (such as one or more cache replacement policies, tiered storage schemes, multi-tier storage architectures, etc.) and assign the The information is sent to the storage device along with the data to be stored at the device. For example, where data is stored as part of a cache replacement policy, the cache level in which the data is stored may indicate the relative likelihood that the data will be accessed frequently (e.g., data stored at the L1 cache level may be more likely to be accessed frequently than data stored at the Data at the L3 cache level is accessed more frequently). Similarly, data stored at higher levels of a tiered storage scheme may be accessed more frequently than data stored at lower levels of a tiered storage scheme. Accordingly, determination logic 963-4 may report such usage information directly to storage device 904 as information 961, and/or convert such usage into information 961 indicating that the data is relatively hot or cold.

在一些实施例中,回收单元逻辑965可基于从存储装置904外部接收到的信息961和在存储装置904处本地获得的信息(其可被称为本地信息和/或本地导出的信息)的组合来组成和/或选择一个或多个回收单元914。例如,回收单元逻辑965可收集关于存储在存储装置904处的数据的一个或多个统计信息。统计信息的示例可包括写入计数和/或频率、重新写入计数和/或频率、读取计数和/或频率等。在一些实施例中,这样的统计数据可以是映射到存储介质913中的不同回收组、回收单元等的阈值和/或范围。这样的统计数据可与接收到的信息961组合以组成和/或选择一个或多个回收单元914(例如,回收单元句柄到回收单元分类和/或映射)。例如,主机902可在信息961中提供镜像和/或非镜像位误差分类。回收单元逻辑965可将该分类与一个或多个本地导出的统计信息组合以组成和/或选择一个或多个回收单元914,以用于数据操作请求(例如,写入命令930)。In some embodiments, the reclamation unit logic 965 may be based on a combination of information 961 received from outside the storage device 904 and information obtained locally at the storage device 904 (which may be referred to as local information and/or locally derived information) to form and/or select one or more recycling units 914. For example, reclamation unit logic 965 may collect one or more statistical information regarding data stored at storage device 904 . Examples of statistical information may include write counts and/or frequencies, rewrite counts and/or frequencies, read counts and/or frequencies, and the like. In some embodiments, such statistics may be thresholds and/or ranges mapped to different reclamation groups, reclamation units, etc. in storage medium 913 . Such statistics may be combined with received information 961 to compose and/or select one or more reclamation units 914 (eg, reclamation unit handle to reclamation unit classification and/or mapping). For example, host 902 may provide mirrored and/or non-mirrored bit error classification in information 961 . Reclamation unit logic 965 may combine this classification with one or more locally derived statistics to compose and/or select one or more reclamation units 914 for data operation requests (eg, write commands 930).

图10示出根据公开的示例实施例的用于存储装置的灵活数据放置方案的初始隔离方案的实施例。图10中所示出的实施例可包括被识别为RUH X、RUH Y和RUH Z的三个回收单元句柄1036。10 illustrates an example of an initial isolation scheme for a flexible data placement scheme for a storage device in accordance with disclosed example embodiments. The embodiment shown in Figure 10 may include three reclamation unit handles 1036 identified as RUH X, RUH Y, and RUH Z.

回收单元句柄RUH X当前可引用被识别为RU A的回收单元1014。回收单元RU A可如具有从右上到左下延伸的线的单对角线阴影所示出的部分地填充有数据。回收单元句柄RUH X可具有被识别为RU A'_0、RU A'_1和RU A'_2的先前引用的回收单元1014'。例如,当RU A'_0、RU A'_1和RU A'_2以与在如图3B和图3C中所示出的回收单元314被回收单元句柄1(RUH 1)引用时被识别为填充有数据的RU 4的方式类似的方式被RUH X引用时,先前引用的回收单元1014'可能已经填充有数据(如具有从右上到左下延伸的线的单对角线阴影所示出的)。尽管当前未被RUH X引用,但是先前引用的回收单元RUA'_0、RUA'_1和RUA'_2仍然可保持与RUH X相关联(例如,通过使用诸如回收单元关联表的数据结构)。The reclamation unit handle RUH X may currently refer to the reclamation unit 1014 identified as RU A. Recycling unit RU A may be partially filled with data as shown by the single diagonal shading with a line extending from upper right to lower left. Reclamation unit handle RUH X may have previously referenced reclamation units 1014' identified as RU A'_0, RU A'_1 and RU A'_2. For example, RU A'_0, RU A'_1, and RU A'_2 are identified as being filled with Similar to the manner in which RU 4 of data is referenced by RUH Although not currently referenced by RUH

回收单元句柄RUH Y当前可引用被识别为RU B的回收单元1014。回收单元RU_B可如对角线交叉阴影所示出的部分地填充有数据。回收单元句柄RUH Y可具有被识别为RUB'_0、RU B'_1和RU B'_2的先前引用的回收单元1014'。例如,当RU B'_0、RU B'_1和RU B'_2被RUH Y引用时,先前引用的回收单元1014'可能已经填充有数据(如对角线交叉阴影所示出的)。The reclamation unit handle RUH Y may currently refer to the reclamation unit 1014 identified as RU B. Recycle unit RU_B may be partially filled with data as shown by the diagonal cross-hatching. Reclamation unit handle RUH Y may have previously referenced reclamation units 1014' identified as RUB'_0, RU B'_1, and RU B'_2. For example, when RU B'_0, RU B'_1, and RU B'_2 are referenced by RUH Y, the previously referenced reclamation unit 1014' may already be filled with data (as shown by the diagonal cross-hatching).

同样地,回收单元句柄RUH Z当前可引用被识别为RU C的回收单元1014。回收单元RU C可如具有从左上到右下延伸的线的单对角线阴影所示出的部分地填充有数据。回收单元句柄RUH Z可具有被识别为RU C'_0、RU C'_1和RU C'_2的先前引用的回收单元1014'。例如,当RU C'_0、RU C'_1和RU C'_2被RUH Z引用时,先前引用的回收单元1014'可能已经填充有数据(如具有从左上到右下延伸的线的单对角线阴影所示出的)。Likewise, reclamation unit handle RUH Z may currently reference reclamation unit 1014 identified as RU C. The recycling unit RU C may be partially filled with data as shown by the single diagonal shading with a line extending from upper left to lower right. Reclamation unit handle RUH Z may have previously referenced reclamation units 1014' identified as RU C'_0, RU C'_1, and RU C'_2. For example, when RU C'_0, RU C'_1, and RU C'_2 are referenced by RUH Z, the previously referenced reclaim unit 1014' may have been populated with data (such as a single diagonal with a line extending from upper left to lower right Shown by line shading).

在一些实施例中,存储装置内的控制器可对存储在先前引用的回收单元1014'中的数据执行一个或多个操作(例如,维护操作)。例如,存储在先前引用的回收单元1014'中的一些或全部数据可被解除分配(例如,由主机),从而导致先前引用的回收单元1014'中未使用的存储容量。这在图10中示出,其中包含解除分配(例如,无效)数据的先前引用的回收单元1014'的部分使用具有相对较细线的阴影被示出。In some embodiments, a controller within the storage device may perform one or more operations (eg, maintenance operations) on data stored in the previously referenced reclamation unit 1014'. For example, some or all of the data stored in the previously referenced reclamation unit 1014' may be deallocated (eg, by the host), resulting in unused storage capacity in the previously referenced reclamation unit 1014'. This is illustrated in Figure 10, where the portion of a previously referenced reclaim unit 1014' containing deallocated (eg, invalidated) data is shown using shading with relatively thin lines.

在一些实施例中,控制器可执行一个或多个维护操作,以使先前引用的回收单元1014'中的未使用的存储容量能够被擦除、重新使用、重新利用等。例如,控制器可执行先前引用的回收单元1014'中的一个或多个中的有效数据(例如,尚未被解除分配的数据)可被复制到不同的回收单元的垃圾收集操作,这样先前引用的回收单元1014'中的一个或多个可被擦除和重新使用。In some embodiments, the controller may perform one or more maintenance operations to enable unused storage capacity in previously referenced reclamation units 1014' to be erased, reused, repurposed, etc. For example, the controller may perform a garbage collection operation in which valid data (e.g., data that has not been deallocated) in one or more of the previously referenced collection units 1014' may be copied to a different collection unit such that the previously referenced One or more of the recycling units 1014' may be erased and reused.

图10中所示出的实施例可实现写入当前或先前由不同回收单元句柄1036引用的回收单元的数据可最初彼此隔离的初始隔离方案。在一些实施例中,如果存储数据的回收单元仅包括使用相同回收单元句柄写入回收单元的数据,则数据可被认为是隔离的。因此,回收单元RU A、RU A'_0、RU A'_1和RU A'_2可仅包括当这些回收单元被RUH X引用时写入的数据。类似地,回收单元RU B、RU B'_0、RU B'_1和RU B'_2可仅包括当这些回收单元被RUH Y引用时写入的数据,并且回收单元RU C、RU C'_0、RU C'_1和RU C'_2可仅包括当这些回收单元被RUH Z引用时写入的数据。The embodiment shown in FIG. 10 may implement an initial isolation scheme in which data written to reclamation units that are currently or previously referenced by different reclamation unit handles 1036 may be initially isolated from each other. In some embodiments, data may be considered isolated if the reclamation unit in which the data is stored only includes data written to the reclamation unit using the same reclamation unit handle. Therefore, the reclaim units RU A, RU A'_0, RU A'_1, and RU A'_2 may only include data written when these reclaim units are referenced by RUH X. Similarly, the reclamation units RU B, RU B'_0, RU B'_1, and RU B'_2 may only include data written when these reclamation units are referenced by RUH Y, and the reclamation units RU C, RU C'_0, RU C'_1 and RU C'_2 may only include data written when these reclaim units are referenced by RUH Z.

然而,作为控制器操作的一部分,来自使用不同回收单元句柄写入的回收单元的数据可组合在单个回收单元中。这在图10中示出,其中控制器可从先前引用的回收单元RUA'_0、RU B'_0和RU C'_0读取有效数据,并将它们写入被识别为RUα的回收单元1082。因为从先前引用的回收单元RU A'_0、RU B'_0和RU C'_0复制的有效数据可以是这些回收单元中的一个或多个中的最后剩余有效数据,所以回收单元RU A'_0、RU B'_0和/或RU C'_0中的一个或多个可被擦除(例如,作为垃圾收集操作的一部分)以重新用于存储其他数据。已经被擦除(例如,垃圾收集)的回收单元可从其可能已经被列出的回收单元关联表移除。However, as part of controller operation, data from reclamation units written using different reclamation unit handles may be combined in a single reclamation unit. This is illustrated in Figure 10, where the controller may read valid data from previously referenced reclamation units RUA'_0, RU B'_0, and RU C'_0 and write them to reclamation unit 1082 identified as RUα. Because the valid data copied from the previously referenced reclamation units RU A'_0, RU B'_0, and RU C'_0 may be the last remaining valid data in one or more of these reclamation units, reclamation unit RU A'_0 One or more of , RU B'_0 and/or RU C'_0 may be erased (eg, as part of a garbage collection operation) to be reused to store other data. Reclamation units that have been erased (eg, garbage collected) may be removed from the reclamation unit association table in which they may have been listed.

在一些实施例中,因为使用不同的回收单元句柄1036写入的数据最初可在不同的回收单元中被隔离,所以图10中所示出的隔离方案可被称为初始隔离方案,但最终可例如通过后续操作(诸如,垃圾收集操作、介质管理操作(例如,刷新编程、读取干扰)等)而被组合。在一些实施例中,因为主机可确定(例如,使用回收单元句柄)隔离的回收单元中的数据的放置,所以图10中所示出的隔离方案可被称为主机隔离方案。In some embodiments, because data written using different reclamation unit handles 1036 may be initially isolated in different reclamation units, the isolation scheme shown in Figure 10 may be referred to as an initial isolation scheme, but may eventually For example, combined by subsequent operations such as garbage collection operations, media management operations (eg, refresh programming, read disturb), etc. In some embodiments, the isolation scheme shown in Figure 10 may be referred to as a host isolation scheme because the host can determine (eg, using a reclamation unit handle) the placement of data in an isolated reclamation unit.

表1Table 1

尽管图10中示出了一个回收组1018,但是回收单元1014可布置在任何数量的回收组中。在一些实施例中,来自不同回收组中的回收单元的数据(例如,来自不同回收组中的先前引用的回收单元的有效数据)可被组合在同一回收单元中。Although one recycling group 1018 is shown in Figure 10, recycling units 1014 may be arranged in any number of recycling groups. In some embodiments, data from reclamation units in different reclamation groups (eg, valid data from previously referenced reclamation units in different reclamation groups) may be combined in the same reclamation unit.

图11示出根据公开的示例实施例的用于存储装置的灵活数据放置方案的持久性隔离方案的实施例。图11中所示出的实施例可包括被识别为RUH X、RUH Y和RUH Z的三个回收单元句柄1136,其可用于以与上面针对图10描述的方式类似的方式将数据写入当前引用的回收单元1114和/或先前引用的回收单元1114'。11 illustrates an embodiment of a persistence isolation scheme for a flexible data placement scheme for a storage device, in accordance with disclosed example embodiments. The embodiment shown in Figure 11 may include three reclaim unit handles 1136 identified as RUH X, RUH Y, and RUH Z, which may be used to write data to the current Referenced reclamation unit 1114 and/or previously referenced reclamation unit 1114'.

然而,与上面针对图10描述的实施例相比,图11中所示出的隔离方案可涉及使用不同的回收单元句柄写入的数据的更多隔离。例如,在图11中所示出的实施例中,在可从先前引用的回收单元1114'移动数据的控制器操作中,使用不同回收单元句柄写入的数据可不组合在单回收单元中。这在图11中示出,其中控制器可从(例如,仅从)使用相同回收单元句柄RUH X写入的先前引用的回收单元RU A'_0、RU A'_1和/或RU A'_2读取有效数据,并将有效数据写入被识别为RUα的回收单元1182。然而,在一些实施例中,回收单元RUα可不从使用其他回收句柄(诸如,RUH Y和/或RUH Z)写入的回收单元接收数据。However, the isolation scheme shown in Figure 11 may involve more isolation of data written using different reclamation unit handles than the embodiment described above with respect to Figure 10. For example, in the embodiment shown in Figure 11, in controller operations that may move data from a previously referenced reclamation unit 1114', data written using different reclamation unit handles may not be combined in a single reclamation unit. This is illustrated in Figure 11, where the controller may retrieve data from (eg, only from) previously referenced reclamation units RU A'_0, RU A'_1 and/or RU A'_2 that were written using the same reclamation unit handle RUH Valid data is read and written into the recycling unit 1182 identified as RUα. However, in some embodiments, reclamation unit RUα may not receive data from reclamation units written using other reclamation handles, such as RUH Y and/or RUH Z.

类似地,控制器可从(例如,仅从)使用相同回收单元句柄RUH Y写入的先前引用的回收单元RU B'_0、RU B'_1和/或RU B'_2读取有效数据,并将有效数据写入被识别为RUβ的回收单元1182。控制器还可从(例如,仅从)使用相同回收单元句柄RUH Z写入的先前引用的回收单元RU C'_0、RU C'_1和/或RU C'_2读取有效数据,并将有效数据写入被识别为RUγ的回收单元1182。因此,在一些实施例中,可从使用相同回收单元句柄写入的一个或多个回收单元读取(例如,仅读取)写入一个或多个的回收单元1182的数据。Similarly, the controller may read valid data from (eg, only from) previously referenced reclamation units RU B'_0, RU B'_1, and/or RU B'_2 that were written using the same reclamation unit handle RUH Y, and Valid data is written to the recycling unit 1182 identified as RUβ. The controller may also read valid data from (e.g., only from) previously referenced reclamation units RU C'_0, RU C'_1 and/or RU C'_2 that were written using the same reclamation unit handle RUH Z and will be valid Data is written to the recycling unit 1182 identified as RUγ. Thus, in some embodiments, data written to one or more reclamation units 1182 may be read (eg, only read) from one or more reclamation units written using the same reclamation unit handle.

如果从任何先前引用的回收单元1114'读取的有效数据是回收单元中最后剩余的有效数据,则回收单元可被擦除(例如,作为垃圾收集操作的一部分)以重新用于存储其他数据。If the valid data read from any previously referenced reclamation unit 1114' is the last remaining valid data in the reclamation unit, the reclamation unit may be erased (eg, as part of a garbage collection operation) to be reused to store other data.

在一些实施例中,因为使用不同回收单元句柄写入的数据之间的隔离可继续超出写入和/或解除分配操作(例如,包括一个或多个垃圾收集和/或其他控制器操作),所以图11中所示出的隔离方案可被称为持久性隔离方案。在一些实施例中,因为使用不同回收单元句柄写入的数据之间的隔离可在存储装置中的数据的整个生命循环中继续,所以图11中所示出的隔离方案可被称为完全或全部隔离的方案。In some embodiments, because isolation between data written using different collection unit handles may continue beyond write and/or deallocation operations (e.g., including one or more garbage collections and/or other controller operations), So the isolation scheme shown in Figure 11 can be called a persistent isolation scheme. In some embodiments, because isolation between data written using different reclamation unit handles may continue throughout the life of the data in the storage device, the isolation scheme illustrated in Figure 11 may be referred to as full or All isolation plans.

尽管图11中可示出一个回收组1118,但是回收单元1114可布置在任何数量的回收组中。在一些实施例中,来自不同回收组中的回收单元的数据(例如,来自不同回收组中的先前引用的回收单元的有效数据)可被组合在同一回收单元中。Although one recycling group 1118 may be shown in FIG. 11 , recycling units 1114 may be arranged in any number of recycling groups. In some embodiments, data from reclamation units in different reclamation groups (eg, valid data from previously referenced reclamation units in different reclamation groups) may be combined in the same reclamation unit.

在此公开的任何存储装置、存储介质等可使用基于固态介质、磁介质、光介质等的任何类型的非易失性存储介质来实现。例如,在一些实施例中,计算存储装置可被实现为基于与非(NAND)闪存的SSD、诸如交叉网格非易失性存储器的持久性存储器、具有体电阻变化的存储器、相变存储器(PCM)等、或它们的任何组合。Any storage devices, storage media, etc. disclosed herein may be implemented using any type of non-volatile storage media based on solid state media, magnetic media, optical media, etc. For example, in some embodiments, the computational storage device may be implemented as a NAND flash based SSD, a persistent memory such as a cross-grid non-volatile memory, a memory with volume resistance variation, a phase change memory ( PCM), etc., or any combination thereof.

在此公开的任何存储装置可使用任何连接器配置(诸如,串行高级技术附件(ATA)(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、U.2等)以任何形状因子(诸如,3.5英寸、2.5英寸、1.8英寸、M.2、企业和数据中心SSD形状因子(EDSFF)、NF1等)来实现。Any storage device disclosed herein may use any connector configuration (such as Serial Advanced Technology Attachment (ATA) (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), U.2, etc.) Implemented in any form factor such as 3.5-inch, 2.5-inch, 1.8-inch, M.2, Enterprise and Data Center SSD Form Factor (EDSFF), NF1, etc.

在此公开的任何存储装置可完全或部分地使用服务器机箱、服务器机架、数据房间(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合来实现和/或与服务器机箱、服务器机架、数据房间(dataroom)、数据中心、边缘数据中心、移动边缘数据中心和/或它们的任何组合结合使用。Any storage devices disclosed herein may be implemented in whole or in part using server chassis, server racks, data rooms, data centers, edge data centers, mobile edge data centers, and/or any combination thereof and/or with Server chassis, server racks, datarooms, data centers, edge data centers, mobile edge data centers and/or any combination thereof.

在此公开的任何主机可使用任何组件(诸如,计算服务器、存储服务器、网络服务器、云服务器等,节点(诸如,存储节点),计算机(诸如,工作站、个人计算机、平板电脑),智能电话等或它们的多个和/或组合)或组件的组合来实现。Any host disclosed herein may use any component (such as a compute server, storage server, network server, cloud server, etc., a node (such as a storage node), a computer (such as a workstation, personal computer, tablet), smartphone, etc. or a plurality and/or combination thereof) or a combination of components.

在此公开的任何通信连接和/或通信接口可使用任何类型的接口和/或协议使用一个或多个互连、一个或多个网络、多个网络中的网络(例如,互联网)等或它们的组合来实现。示例可包括外围组件互连快速(PCIe)、NVMe、基于结构的NVMe(NVMe-oF)、以太网、传输控制协议/互联网协议(TCP/IP)、直接存储器访问(DMA),远程DMA(RDMA)、基于融合以太网的RDMA(ROCE)、光纤通道、无限带宽、串行ATA(SATA)、小型计算机系统接口(SCSI)、串行附接SCSI(SAS)、iWARP、计算快速链路(CXL)和/或一致性协议(诸如,CXL.mem、CXL.cache、CXL.IO等)、Gen-Z、开放一致性加速器处理器接口(OpenCAPI)、用于加速器的高速缓存一致性互连(CCIX)等、高级可扩展接口(AXI)、任何代的无线网络(包括2G、3G、4G、5G、6G等)、任何代的无线保真(Wi-Fi)、蓝牙、进场通信(NFC)等,或它们的任何组合。Any communication connections and/or communication interfaces disclosed herein may use any type of interface and/or protocol using one or more interconnections, one or more networks, a network of networks (e.g., the Internet), etc., or they combination to achieve. Examples may include Peripheral Component Interconnect Express (PCIe), NVMe, NVMe over Fabric (NVMe-oF), Ethernet, Transmission Control Protocol/Internet Protocol (TCP/IP), Direct Memory Access (DMA), Remote DMA (RDMA ), RDMA over Converged Ethernet (ROCE), Fiber Channel, Infinite Bandwidth, Serial ATA (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), iWARP, Compute Express Link (CXL) ) and/or coherence protocols (such as CXL.mem, CXL.cache, CXL.IO, etc.), Gen-Z, Open Coherent Accelerator Processor Interface (OpenCAPI), Cache Coherent Interconnect for Accelerators ( CCIX), etc., Advanced Extensible Interface (AXI), any generation of wireless networks (including 2G, 3G, 4G, 5G, 6G, etc.), any generation of Wireless Fidelity (Wi-Fi), Bluetooth, NFC ), etc., or any combination thereof.

在此描述的包括主机功能、存储装置功能等(例如,任何存储装置控制器、逻辑等)的任何功能可使用硬件、软件、固件或它们的任何组合来实现,包括例如硬件和/或软件组合逻辑、顺序逻辑、定时器、计数器、寄存器、状态机、易失性存储器(诸如,DRAM和/或SRAM)、非易失性存储器(包括闪存)、持久性存储器(诸如,交叉网格非易失性存储器)、具有体电阻变化的存储器、PCM等和/或它们的任何组合、复杂可编程逻辑装置(CPLD)现场可编程门阵列(FPGA)、专用电路(ASIC)、中央处理器(CPU)(包括复杂指令集计算机(CISC)处理器(诸如,x86处理器)和/或精简指令集计算机(RISC)处理器(诸如,ARM处理器))、图形处理器(GPU)、神经处理器(NPU)、张量处理器(TPU)等,执行存储在任何类型的存储器中的指令。在一些实施例中,一个或多个组件可被实现为片上系统(SOC)。Any functionality described herein including host functionality, storage functionality, etc. (e.g., any storage controller, logic, etc.) may be implemented using hardware, software, firmware, or any combination thereof, including, for example, a combination of hardware and/or software Logic, sequential logic, timers, counters, registers, state machines, volatile memory (such as DRAM and/or SRAM), non-volatile memory (including flash memory), persistent memory (such as cross-grid non-volatile Volatile memory), memory with volume resistance changes, PCM, etc. and/or any combination thereof, complex programmable logic device (CPLD) field programmable gate array (FPGA), application specific circuit (ASIC), central processing unit (CPU) ) (including complex instruction set computer (CISC) processors (such as x86 processors) and/or reduced instruction set computer (RISC) processors (such as ARM processors)), graphics processing units (GPUs), neural processors (NPU), Tensor Processing Unit (TPU), etc., execute instructions stored in any type of memory. In some embodiments, one or more components may be implemented as a system on a chip (SOC).

在至少部分地使用具有闪存转换层(FTL)的存储装置实现的实施例中,在此描述的任何功能(例如,任何存储装置控制器、逻辑等)可至少部分地使用FTL来实现。In embodiments that are implemented at least in part using a storage device with a Flash Translation Layer (FTL), any functionality described herein (eg, any storage device controller, logic, etc.) may be implemented at least in part using the FTL.

在一些实施例中,回收单元可包括物理非易失性存储设备,其可作为一个单元而被回收(例如,擦除、重新使用、重新利用等)。根据实施细节,可在不干扰一个或多个其他回收单元的情况下回收回收单元。在一些实施例中,回收单元可仅被实现为物理构造(例如,可与逻辑地址或逻辑块地址(LBA)无关)。In some embodiments, a reclaimed unit may include a physical non-volatile storage device that may be reclaimed (eg, erased, reused, repurposed, etc.) as a unit. Depending on the implementation details, the recycling unit can be recycled without disturbing one or more other recycling units. In some embodiments, the reclamation unit may be implemented as a physical construct only (eg, may be independent of a logical address or logical block address (LBA)).

在一些实施例中,命名空间可包括例如以一个或多个回收单元分配的容量。回收组可包括一个或多个回收单元,并且一个或多个放置句柄可引用一个或多个回收单元(例如,可被一个或多个I/O命令作为目标)。在一些实施例中,在一个回收组上执行的I/O命令可不干扰在另一回收组上执行的命令的性能、可靠性等。In some embodiments, a namespace may include capacity allocated in one or more reclamation units, for example. A reclamation group may include one or more reclamation units, and one or more put handles may reference one or more reclamation units (eg, may be targeted by one or more I/O commands). In some embodiments, I/O commands executed on one reclamation group may not interfere with the performance, reliability, etc., of commands executed on another reclamation group.

在一些实施例中,放置标识符可指定与放置句柄、回收单元句柄等配对的回收组。放置标识符可引用例如可用于写入随机LBA(例如,将用户数据写入分配给回收单元的非易失性存储设备)的回收单元。由放置标识符引用的回收单元的写入容量可与指定放置标识符、放置句柄、回收单元句柄等的一个或多个写入命令相关地递增(例如,在每个写入命令上递增),一旦回收单元的容量被部分或完全写入,这些写入命令进而可被修改为引用另一回收单元。In some embodiments, a placement identifier may specify a reclamation group paired with a placement handle, reclamation unit handle, etc. The placement identifier may reference, for example, a reclamation unit that may be used to write a random LBA (eg, write user data to a non-volatile storage device assigned to the reclamation unit). The write capacity of a reclaim unit referenced by a put identifier may be incremented (e.g., on each write command) in relation to one or more write commands specifying the put identifier, put handle, reclaim unit handle, etc., Once the capacity of a reclamation unit is partially or fully written, these write commands may in turn be modified to reference another reclamation unit.

在一些实施例中,主机可跟踪写入一个或多个回收单元的用户数据(例如,用户数据的一个或多个LBA)。根据实施细节,这可使主机能够一起(例如,同时)对与特定回收单元相关联的一些或所有用户数据(例如,所有LBA)解除分配。根据实施细节,这可减少或最小化控制器的垃圾收集,从而减少写入放大。在一些实施例中,主机可负责管理放置标识符、放置句柄、回收单元句柄和/或其他相关的装置资源。In some embodiments, the host may track user data written to one or more reclamation units (eg, one or more LBAs of user data). Depending on the implementation details, this may enable the host to deallocate some or all user data (eg, all LBAs) associated with a particular reclaim unit together (eg, simultaneously). Depending on the implementation details, this can reduce or minimize garbage collection by the controller, thereby reducing write amplification. In some embodiments, the host may be responsible for managing placement identifiers, placement handles, reclaim unit handles, and/or other related device resources.

在一些实施例中,回收单元句柄可包括对可放置用于写入命令的用户数据的回收单元(例如,在每个回收组中)的引用。在一些实施例中,由回收单元句柄引用的回收单元可仅允许由至多一个回收单元句柄引用。然而,在一些实施例中,当回收单元从擦除循环并返回使用时,特定的回收单元可由相同或不同的回收单元句柄引用。当回收单元被写入容量时,控制器可更新相关联的回收单元句柄以引用可用于写入用户数据的不同回收单元(例如,在写入之前可能已经被擦除的非易失性存储介质)并且已经写入很少或没有用户数据(例如,空的回收单元)。In some embodiments, the reclamation unit handle may include a reference to a reclamation unit (eg, within each reclamation group) in which user data for the write command may be placed. In some embodiments, a reclamation unit referenced by a reclamation unit handle may only be allowed to be referenced by at most one reclamation unit handle. However, in some embodiments, when a reclamation unit is cycled from erasure and returned to use, a specific reclamation unit may be referenced by the same or a different reclamation unit handle. When a reclamation unit is written to capacity, the controller may update the associated reclamation unit handle to reference a different reclamation unit that may be used to write user data (e.g., a non-volatile storage medium that may have been erased prior to writing ) and little or no user data has been written (for example, an empty recycling unit).

如上所述,根据公开的示例实施例的存储装置可基于除了写入命令之外的请求来执行数据操作。例如,在一些实施例中,存储装置可接收对更新操作的请求(例如,如针对图3A至图3D所描述的)以及数据局部性的指示(诸如,将更新的一个或多个回收单元句柄)。在一些这样的实施例中,存储装置可使用关于将被存储在由一个或多个更新的回收单元句柄引用的一个或多个回收单元中的数据的信息来组成和/或选择一个或多个回收单元,以用于更新的回收单元句柄。例如,存储装置可从主机接收更新请求以及将被更新的回收单元句柄。主机还可发送指示将被存储在由回收单元句柄引用的回收单元中的数据可以是相对热的数据的信息。因此,存储装置可基于从主机接收到的信息组成和/或选择具有相对大量的剩余P/E循环的回收单元,并且更新回收单元句柄以指向组成和/或选择的回收单元。在一些这样的实施例中,存储装置可保存数据隔离方案(例如,如在此描述的初始隔离方案和/或持久性隔离方案)。As described above, storage devices according to disclosed example embodiments may perform data operations based on requests other than write commands. For example, in some embodiments, a storage device may receive a request for an update operation (e.g., as described with respect to FIGS. 3A-3D) and an indication of data locality (such as one or more reclaim unit handles to be updated). ). In some such embodiments, the storage device may use information about data to be stored in one or more reclamation units referenced by one or more updated reclamation unit handles to compose and/or select one or more Recycling unit to use for the updated recycling unit handle. For example, the storage device may receive an update request from the host along with a reclaim unit handle to be updated. The host may also send information indicating that the data to be stored in the reclamation unit referenced by the reclamation unit handle may be relatively hot data. Accordingly, the storage device may compose and/or select a reclamation unit with a relatively large number of remaining P/E cycles based on information received from the host and update the reclamation unit handle to point to the composed and/or selected reclamation unit. In some such embodiments, the storage device may maintain a data isolation scheme (eg, an initial isolation scheme and/or a persistence isolation scheme as described herein).

图12示出根据公开的示例实施例的可用于实现在此公开的任何主机功能的主机设备的示例实施例。图12中所示出的主机设备(或主机)1200可包括处理器1202,处理器1202可包括存储器控制器1204、系统存储器1206、主机控制逻辑1208(主机控制逻辑1208可用于实现例如图9中所示出的放置逻辑963)和/或通信接口1210。图12中所示出的任何或所有组件可通过一个或多个系统总线1212进行通信。在一些实施例中,图12中所示出的组件中的一个或多个组件可使用其它组件来实现。例如,在一些实施例中,主机控制逻辑1208可由处理器1202运行存储在系统存储器1206或其他存储器中的指令来实现。12 illustrates an example embodiment of a host device that may be used to implement any of the host functions disclosed herein, in accordance with the disclosed example embodiments. The host device (or host) 1200 shown in Figure 12 may include a processor 1202, which may include a memory controller 1204, system memory 1206, and host control logic 1208 (the host control logic 1208 may be used to implement, for example, Figure 9 Placement logic 963) and/or communication interface 1210 are shown. Any or all components shown in Figure 12 may communicate via one or more system buses 1212. In some embodiments, one or more of the components shown in Figure 12 may be implemented using other components. For example, in some embodiments, host control logic 1208 may be implemented by processor 1202 executing instructions stored in system memory 1206 or other memory.

图13示出根据公开的示例实施例的可用于实现在此公开的任何存储装置功能的存储装置的示例实施例。存储装置1300可包括装置控制器1302(装置控制器1302可用于实现例如图9中所示出的回收单元逻辑965)、介质转换层1304(例如,FTL)、存储介质1306和/或通信接口1310。图13中示出的组件可通过一个或多个装置总线1312进行通信。在可将闪存存储器用于存储介质1306中的一些或全部的一些实施例中,介质转换层1304可部分地或完全地被实现为闪存转换层(FTL)。13 illustrates an example embodiment of a storage device that may be used to implement any of the storage device functions disclosed herein, in accordance with the disclosed example embodiments. Storage device 1300 may include a device controller 1302 (device controller 1302 may be used to implement, for example, reclaim unit logic 965 shown in Figure 9), a media translation layer 1304 (eg, FTL), a storage medium 1306, and/or a communication interface 1310 . The components shown in Figure 13 may communicate via one or more device buses 1312. In some embodiments where flash memory may be used for some or all of storage medium 1306, media translation layer 1304 may be implemented partially or completely as a flash translation layer (FTL).

图14示出根据公开的示例实施例的用于存储装置的灵活数据放置的方法的实施例。该方法可在操作1402开始。14 illustrates an embodiment of a method for flexible data placement of a storage device in accordance with disclosed example embodiments. The method may begin at operation 1402.

在操作1404,该方法可在存储装置处接收数据操作请求,其中,数据操作请求指定数据和回收单元句柄。例如,数据操作请求可包括对写入操作、复制操作、解除分配操作、清理操作、擦除操作、格式化操作、比较和写入操作等的请求。在一些示例实施例中,数据操作请求可包括写入命令(诸如,如图3A至图3D、图5和/或图9中所示出的写入命令330、530和/或930)。At operation 1404, the method may receive a data operation request at the storage device, wherein the data operation request specifies data and a reclaim unit handle. For example, data operation requests may include requests for write operations, copy operations, deallocation operations, clean operations, erase operations, format operations, compare and write operations, and the like. In some example embodiments, the data operation request may include a write command (such as write commands 330, 530, and/or 930 shown in FIGS. 3A-3D, 5, and/or 9).

在操作1406,该方法可在存储装置处接收关于数据的信息。关于数据的信息可包括访问信息、关于用于实现数据的回收单元的存储介质的一个或多个可接受特性的信息、关于将被存储在装置中的数据的一个或多个属性的信息、关于将被存储的数据的类型和/或用法的信息等中的一个或多个。在一些示例实施例中,关于数据的信息(例如,信息861和/或961)可由如图8和/或图9中所示出的存储装置804和/或904接收。At operation 1406, the method may receive information about the data at the storage device. The information about the data may include access information, information about one or more acceptable characteristics of the storage medium used to implement the recycling unit of the data, information about one or more attributes of the data to be stored in the device, information about One or more of the type and/or usage information of the data to be stored. In some example embodiments, information regarding data (eg, information 861 and/or 961) may be received by storage devices 804 and/or 904 as shown in Figures 8 and/or 9.

在操作1408,该方法可基于数据操作请求、回收单元句柄和信息来执行与存储装置的至少一个存储介质的回收单元相关联的数据操作。例如,如图8中所示出的,信息861可指示将被存储的数据可以是相对冷的数据,该数据可存储在包括具有相对高的P/E循环计数的擦除块的回收单元中。该方法可在操作1410结束。At operation 1408, the method may perform a data operation associated with a reclamation unit of at least one storage medium of the storage device based on the data operation request, the reclamation unit handle, and the information. For example, as shown in Figure 8, information 861 may indicate that the data to be stored may be relatively cold data, which may be stored in a reclaim unit that includes an erase block with a relatively high P/E cycle count. . The method may end at operation 1410.

图14中所示出的实施例以及在此描述的所有其他实施例是示例操作和/或组件。在一些实施例中,可省略一些操作和/或组件和/或可包括其他操作和/或组件。此外,在一些实施例中,可改变操作和/或组件的时间次序和/或空间次序。尽管一些组件和/或操作可被示出为单独的组件,但是在一些实施例中,单独示出的一些组件和/或操作可被集成到单个组件和/或操作中,和/或示出为单个组件和/或操作的一些组件和/或操作可使用多个组件和/或操作来实现。The embodiment illustrated in Figure 14, and all other embodiments described herein, are example operations and/or components. In some embodiments, some operations and/or components may be omitted and/or other operations and/or components may be included. Furthermore, in some embodiments, the temporal order and/or spatial order of operations and/or components may be changed. Although some components and/or operations may be shown as separate components, in some embodiments, some components and/or operations shown separately may be integrated into a single component and/or operation, and/or as shown Some components and/or operations that are single components and/or operations may be implemented using multiple components and/or operations.

已经在各种实施方式细节的上下文中描述了上面公开的一些实施例,但是本公开的原理不限于这些或任何其他特定的细节。例如,一些功能已经被描述为由特定组件实现,但是在其他实施例中,功能可分布在不同位置中并且具有各种用户接口的不同系统和组件之间。特定实施例已经被描述为具有特定的处理、操作等,但是这些术语还包括特定的处理、操作等可用多个处理、操作等来实现的实施例,或者多个处理、操作等可被集成到单个处理、操作等中的实施例。对组件或元件的引用可仅表示组件或元件的部分。例如,对块的引用可表示整个块或者一个或多个子块。对组件或元件的引用可表示组件或元件中的一个或多个,并且对多个组件或元件的引用可表示单个组件或元件。例如,对资源的引用可表示一个或多个资源,并且对资源的引用可表示单个资源。除非另外从上下文清楚,否则在本公开和权利要求中使用诸如“第一”和“第二”的术语可仅出于将它们所修饰的元件区分开的目的,并且可不指示任何空间次序或时间次序。在一些实施例中,对元件的引用可表示元件的至少一部分,例如,“基于”可表示“至少部分地基于”等。对第一元件的引用并不表示第二元件的存在。在此公开的原理具有独立的实用性并且可被单独体现,并且不是每个实施例都可利用每个原理。然而,这些原理也可以以各种组合体现,其中一些组合可以以协同的方式放大各个原理的益处。上面描述的各种细节和实施例可被组合以产生根据本专利公开的发明原理的附加实施例。Some of the embodiments disclosed above have been described in the context of various implementation details, but the principles of the disclosure are not limited to these or any other specific details. For example, some functionality has been described as being implemented by specific components, but in other embodiments, the functionality may be distributed among different systems and components in different locations and with various user interfaces. Particular embodiments have been described as having particular processes, operations, etc., but these terms also include embodiments in which a particular process, operation, etc. may be implemented as multiple processes, operations, etc., or multiple processes, operations, etc. may be integrated into Embodiments in a single process, operation, etc. A reference to a component or element may refer to only a portion of the component or element. For example, a reference to a block may represent the entire block or one or more subblocks. A reference to a component or element may refer to one or more of the components or elements, and a reference to multiple components or elements may refer to a single component or element. For example, a reference to a resource may represent one or more resources, and a reference to a resource may represent a single resource. Unless otherwise clear from the context, terms such as "first" and "second" may be used in this disclosure and the claims solely for the purpose of distinguishing the elements they modify and may not indicate any spatial order or time. order. In some embodiments, a reference to an element may mean at least a portion of the element, for example, "based on" may mean "based at least in part on," etc. A reference to a first element does not imply the presence of the second element. The principles disclosed herein have independent applicability and may be embodied individually, and not every embodiment may utilize every principle. However, these principles can also be embodied in various combinations, some of which can amplify the benefits of the individual principles in a synergistic manner. The various details and embodiments described above may be combined to create additional embodiments in accordance with the inventive principles disclosed in this patent.

由于在不脱离发明构思的情况下,本专利公开的发明原理可在布置和细节上进行修改,因此这样的改变和修改被认为落入所附权利要求的范围内。Since the inventive principles disclosed in this patent may be modified in arrangement and detail without departing from the inventive concept, such changes and modifications are deemed to be within the scope of the appended claims.

Claims (20)

1.一种存储装置,包括:1. A storage device, comprising: 至少一个存储介质;以及at least one storage medium; and 控制器,被配置为:Controller, configured as: 接收写入命令,其中,写入命令指定数据和回收单元句柄;Receive a write command, where the write command specifies data and a recycling unit handle; 接收关于数据的信息;并且receive information about the data; and 基于回收单元句柄和所述信息,将数据存储在所述至少一个存储介质的回收单元中。Based on the reclamation unit handle and the information, data is stored in the reclamation unit of the at least one storage medium. 2.根据权利要求1所述的存储装置,其中,所述信息包括访问信息。2. The storage device of claim 1, wherein the information includes access information. 3.根据权利要求1所述的存储装置,其中,所述信息包括误差容限信息。3. The memory device of claim 1, wherein the information includes error tolerance information. 4.根据权利要求1所述的存储装置,其中,所述信息包括数据属性信息。4. The storage device of claim 1, wherein the information includes data attribute information. 5.根据权利要求1所述的存储装置,其中,所述信息包括数据类型信息。5. The storage device of claim 1, wherein the information includes data type information. 6.根据权利要求1所述的存储装置,其中,控制器被配置为至少部分地基于回收单元句柄确定所述信息。6. The storage device of claim 1, wherein the controller is configured to determine the information based at least in part on a reclaim unit handle. 7.根据权利要求1所述的存储装置,其中,控制器被配置为:7. The storage device of claim 1, wherein the controller is configured to: 接收与回收单元句柄分开的指示符;并且Receive an indicator separate from the recycling unit handle; and 至少部分地基于指示符确定所述信息。The information is determined based at least in part on the indicator. 8.根据权利要求1所述的存储装置,其中,控制器被配置为基于所述信息选择回收单元。8. The storage device of claim 1, wherein the controller is configured to select a recycling unit based on the information. 9.根据权利要求8所述的存储装置,其中,控制器被配置为基于回收单元的至少一部分的特性选择回收单元。9. The storage device of claim 8, wherein the controller is configured to select the recycling unit based on characteristics of at least a portion of the recycling unit. 10.根据权利要求9所述的存储装置,其中,特性包括编程循环的数量。10. The memory device of claim 9, wherein the characteristic includes a number of programming cycles. 11.根据权利要求9所述的存储装置,其中,特性包括误差累积特性。11. The memory device of claim 9, wherein the characteristics include error accumulation characteristics. 12.根据权利要求1所述的存储装置,其中,控制器被配置为基于所述信息组成回收单元。12. The storage device of claim 1, wherein the controller is configured to form a recycling unit based on the information. 13.根据权利要求12所述的存储装置,其中,控制器被配置为基于回收单元的至少一部分的特性组成回收单元。13. The storage device of claim 12, wherein the controller is configured to form the recycling units based on characteristics of at least a portion of the recycling units. 14.根据权利要求13所述的存储装置,其中,特性包括编程循环的数量。14. The memory device of claim 13, wherein the characteristic includes a number of programming cycles. 15.根据权利要求13所述的存储装置,其中,特性包括误差累积特性。15. The memory device of claim 13, wherein the characteristics include error accumulation characteristics. 16.一种形成和选择回收单元的设备,包括:16. An apparatus for forming and selecting recycling units, comprising: 放置逻辑,被配置为:Placement logic, configured as: 将写入命令发送到存储装置,其中,写入命令指定数据和回收单元句柄,其中,回收单元句柄用于引用存储装置的至少一个存储介质中的回收单元;并且sending a write command to the storage device, wherein the write command specifies data and a reclamation unit handle, wherein the reclamation unit handle is used to reference a reclamation unit in at least one storage medium of the storage device; and 将关于数据的信息发送到存储装置。Send information about the data to storage. 17.根据权利要求16所述的装置,其中,所述信息包括访问信息。17. The apparatus of claim 16, wherein the information includes access information. 18.一种形成和选择回收单元的方法,包括:18. A method of forming and selecting recycling units, comprising: 在存储装置处接收数据操作请求,其中,数据操作请求指定数据和回收单元句柄;receiving a data operation request at the storage device, wherein the data operation request specifies data and a reclaim unit handle; 在存储装置处接收关于数据的信息;并且receiving information about the data at the storage device; and 基于数据操作请求、回收单元句柄和所述信息执行与存储装置的至少一个存储介质的回收单元相关联的数据操作。A data operation associated with a reclamation unit of at least one storage medium of the storage device is performed based on the data operation request, the reclamation unit handle, and the information. 19.根据权利要求18所述的方法,其中,数据操作请求包括写入操作请求,并且数据操作包括写入操作。19. The method of claim 18, wherein the data operation request includes a write operation request, and the data operation includes a write operation. 20.根据权利要求19所述的方法,其中,写入操作请求包括写入命令,并且写入操作包括基于回收单元句柄和所述信息将数据存储在回收单元中。20. The method of claim 19, wherein the write operation request includes a write command, and the write operation includes storing data in the reclamation unit based on the reclamation unit handle and the information.
CN202310814590.0A 2022-07-06 2023-07-04 System, method and apparatus for forming and selecting recovery units in storage devices Pending CN117369718A (en)

Applications Claiming Priority (5)

Application Number Priority Date Filing Date Title
US63/358,861 2022-07-06
US63/419,699 2022-10-26
US63/421,994 2022-11-02
US18/099,250 US20240012580A1 (en) 2022-07-06 2023-01-19 Systems, methods, and devices for reclaim unit formation and selection in a storage device
US18/099,250 2023-01-19

Publications (1)

Publication Number Publication Date
CN117369718A true CN117369718A (en) 2024-01-09

Family

ID=89389940

Family Applications (1)

Application Number Title Priority Date Filing Date
CN202310814590.0A Pending CN117369718A (en) 2022-07-06 2023-07-04 System, method and apparatus for forming and selecting recovery units in storage devices

Country Status (1)

Country Link
CN (1) CN117369718A (en)

Similar Documents

Publication Publication Date Title
US12147335B1 (en) Cooperative storage device for managing logical subdivisions
US10996863B1 (en) Nonvolatile memory with configurable zone/namespace parameters and host-directed copying of data across zones/namespaces
US12093533B1 (en) Memory management of nonvolatile discrete namespaces
US9158700B2 (en) Storing cached data in over-provisioned memory in response to power loss
WO2014102886A1 (en) Information processing apparatus and cache control method
CN113254358B (en) Method and system for address table cache management
KR20150105323A (en) Method and system for data storage
EP4303735A1 (en) Systems, methods, and devices for reclaim unit formation and selection in a storage device
WO2019025861A1 (en) Extending ssd longevity
CN113924546A (en) Wear-aware block mode switching in non-volatile memory
CN117369715B (en) System, method, and device for updating usage of a reclamation unit based on references in a storage device
EP4303711A1 (en) Systems, methods, and apparatus for data placement in a storage device
US11093134B2 (en) Storage device, management method, and program in tiered storage system
CN117369718A (en) System, method and apparatus for forming and selecting recovery units in storage devices
JP6721765B2 (en) Memory system and control method
CN117369717A (en) System, method and apparatus for data placement in a storage device

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