System and method for data storage and storage device

By introducing data placement manager and FDP functions into the storage device, the data placement management problem in computer storage systems is solved, and the physical isolation of data of different applications is achieved, writing amplification and delay are reduced, and storage performance and media life are improved. .

CN119088287APending Publication Date: 2024-12-06SAMSUNG ELECTRONICS CO LTD
View PDF 0 Cites 3 Cited by

Patent Information

Application Number
CN202410631354.X
Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Priority Date
2023-09-15
Filing Date
2024-05-21
Publication Date
2024-12-06

AI Technical Summary

Technical Problem

In computer storage systems, as the number of users and application complexity increases and storage demand increases, it is difficult for the prior art to effectively manage data placement, resulting in write amplification problems and performance degradation, especially in storage devices with mixed data placement.

Method used

By introducing a data placement manager in the storage device, using logical block address (LBA) information and data placement configuration, we divide and manage groups of continuous physical block addresses, and support flexible data placement (FDP) functions to ensure that the data of different applications is physically in the physical isolate the storage on the top, thereby reducing write amplification and latency.

Benefits of technology

It effectively reduces write amplification and delay, improves the performance and service quality of the storage device, stores data from different applications in isolation, avoids unnecessary erasing and rewriting, and extends the life of the storage medium.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN119088287A_ABST
    Figure CN119088287A_ABST
Patent Text Reader

Abstract

A system and method for data storage and a storage device are provided, the method comprising: receiving, at the storage device, a first request associated with a first protocol as a memory protocol; converting address information associated with the first request into logical block address (LBA) information; determining, by the storage device, a first group of contiguous physical block addresses associated with the first request and associated with the first application based on a data placement configuration of the storage device; and performing a first memory operation at the first group based on the first request.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] This application claims priority to and the benefit of U.S. Provisional Application No. 63 / 471,413, filed on June 6, 2023, entitled “MECHANISM TO SUPPORT FLEXIBLE DATA PLACEMENT FUNCTIONALITY IN CXLSSD,” and U.S. Patent Application No. 18 / 468,601, filed on September 15, 2023, the entire contents of which are incorporated herein by reference. Technical Field

[0002] Aspects according to some embodiments of the present disclosure relate to systems and methods for data management using a data placement manager in a storage device. Background Art

[0003] In the field of computer storage, a system may include a host computer and one or more storage devices connected to (e.g., communicatively coupled to) the host computer. Such computer storage systems have become increasingly popular, in part to allow many different users to share the computing resources of the system. As the number of users of such systems and the number and complexity of applications running on such systems increases, storage requirements increase over time.

[0004] The above information disclosed in this Background section is for enhancement of understanding of the background of the present disclosure and therefore it may contain information that does not constitute the prior art. Summary of the invention

[0005] One or more embodiments of the present disclosure relate to computer storage systems and may provide improvements to data placement in storage devices.

[0006] According to some embodiments of the present disclosure, a method for data storage is provided, the method comprising: receiving a first request at a storage device, the first request being associated with a first protocol as a memory protocol; converting address information associated with the first request into logical block address (LBA) information; determining, by the storage device based on a data placement configuration of the storage device, a first group of consecutive physical block addresses associated with the first request and associated with a first application; and performing a first memory operation at the first group based on the first request.

[0007] The step of determining may include checking a field of the first request, checking a bit of the first request, or checking a configuration of the storage device.

[0008] The first group may be associated with the first region; and the storage device may include a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

[0009] The method may also include: receiving a configuration request at a storage device; and dividing physical block addresses of the storage device into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

[0010] The method may also include: performing a first memory operation based on the LBA information; and receiving a second request associated with a second protocol different from the first protocol at the storage device, the second request including information identifying a second group of consecutive physical block addresses associated with the second request and associated with a second application.

[0011] The first protocol may be a cache coherence protocol; and the second protocol may be a storage protocol.

[0012] The storage device may be configured to: track grouping parameters associated with a data placement configuration; receive requests according to a first protocol and according to a second protocol different from the first protocol; and receive a configuration request to partition the storage device according to the data placement configuration.

[0013] According to some other embodiments of the present disclosure, a storage device is provided, which includes a non-volatile memory and is configured to: receive a first request associated with a first protocol as a memory protocol; convert address information associated with the first request into logical block address (LBA) information; determine a first group of consecutive physical block addresses associated with the first request and associated with a first application based on a data placement configuration; and perform a first memory operation at the first group based on the first request.

[0014] The step of determining may include checking a field of the first request, checking a bit of the first request, or checking a configuration of the storage device.

[0015] The first group may be associated with the first region; and the storage device may include a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

[0016] The storage device may be configured to: receive a configuration request at the storage device; and divide physical block addresses of the storage device into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

[0017] The storage device may be configured to: perform a first memory operation based on the LBA information; and receive a second request associated with a second protocol different from the first protocol at the storage device, the second request including information identifying a second group of consecutive physical block addresses associated with the second request and associated with a second application.

[0018] The first protocol may be a cache coherence protocol; and the second protocol may be a storage protocol.

[0019] The storage device may be configured to: track grouping parameters associated with a data placement configuration; receive requests according to a first protocol and according to a second protocol different from the first protocol; and receive a configuration request to partition the storage device according to the data placement configuration.

[0020] According to some other embodiments of the present disclosure, a system for data storage is provided, the system comprising: a processor; and a memory storing instructions, the instructions causing the processor to perform the following items based on being executed by the processor: receiving a first request, the first request being associated with a first protocol as a memory protocol; converting address information associated with the first request into logical block address (LBA) information; determining a first group of consecutive physical block addresses associated with the first request and associated with a first application based on a data placement configuration of a storage device; and performing a first memory operation at the first group based on the first request.

[0021] The determining process may include checking a field of the first request, checking a bit of the first request, or checking a configuration of the storage device.

[0022] The first group may be associated with the first region; and the storage device may include a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

[0023] The instructions, upon being executed by a processor, cause the processor to perform the following: receiving a configuration request at a storage device; and dividing physical block addresses of the storage device into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

[0024] The instructions, based on being executed by a processor, cause the processor to: perform a first memory operation based on the LBA information; and execute receiving, at a storage device, a second request associated with a second protocol different from the first protocol, the second request including information identifying a second group of consecutive physical block addresses associated with the second request and associated with a second application.

[0025] The first protocol may be a cache coherence protocol; and the second protocol may be a storage protocol. BRIEF DESCRIPTION OF THE DRAWINGS

[0026] The above and other aspects and features of the present disclosure will be more clearly understood from the following detailed description of illustrative, non-limiting embodiments with reference to the accompanying drawings.

[0027] Figure 1 is a system diagram depicting a system for data management using a data placement manager in a storage device according to some embodiments of the present disclosure.

[0028] Figure 2 is a flow chart depicting example operations of a method for data management in a storage device using a data placement manager for processing requests associated with a memory protocol in accordance with some embodiments of the present disclosure.

[0029] Figure 3 is a flow chart depicting example operations of a method for data management in a storage device using a data placement manager for processing requests associated with a protocol using commands including LBA information for the storage device in accordance with some embodiments of the present disclosure.

[0030] Figure 4 The invention is a diagram illustrating some embodiments of the present disclosure. Figure 1 An illustration of components of a recycling group associated with a system.

[0031] Figure 5A is a diagram depicting fields of a first type of memory command according to some embodiments of the present disclosure.

[0032] Figure 5B is a diagram depicting fields of a second type of memory command according to some embodiments of the present disclosure.

[0033] Figure 6 is a flow chart depicting example operations of a method of data storage using data management in a storage device according to some embodiments of the present disclosure. DETAILED DESCRIPTION

[0034] By referring to the detailed description and drawings of one or more embodiments, the aspects of the present disclosure and the methods for implementing the same can be more easily understood. Hereinafter, the embodiments will be described in more detail with reference to the drawings. However, the described embodiments may be embodied in various different forms and should not be construed as being limited to the embodiments shown herein. Rather, these embodiments are provided as examples so that the present disclosure will be thorough and complete and the aspects of the present disclosure will be fully conveyed to those skilled in the art. Therefore, descriptions of processes, elements, and techniques that are not necessary for a person of ordinary skill in the art to fully understand the aspects and features of the present disclosure may be omitted.

[0035] Unless otherwise stated, throughout the drawings and written description, the same reference numerals, characters, or combinations thereof represent the same elements, and therefore, their description will not be repeated. It will be understood by those skilled in the art that the elements in the drawings are shown for simplicity and clarity and are not necessarily drawn to scale. For example, the dimensions of some of the elements, layers, and regions in the drawings may be exaggerated relative to other elements, layers, and regions to help improve the clarity of the various embodiments and the understanding of the various embodiments. In addition, common but easily understood elements and parts that are not related to the description of the embodiments may not be shown to facilitate less obstructed sight of these various embodiments and to make the description clear.

[0036] In the detailed description, for purposes of explanation, numerous specific details are set forth in order to provide a thorough understanding of the various embodiments. However, it is apparent that the various embodiments can be practiced without these specific details or with one or more equivalent arrangements.

[0037] It will be understood that although the terms "zeroth", "first", "second", "third", etc. may be used herein to describe various elements, components, regions, layers and / or parts, these elements, components, regions, layers and / or parts should not be limited by these terms. These terms are used to distinguish one element, component, region, layer or part from another element, component, region, layer or part. Therefore, without departing from the spirit and scope of the present disclosure, the first element, first component, first region, first layer or first part described below may be referred to as the second element, second component, second region, second layer or second part.

[0038] It will be understood that when an element or component is referred to as being "on" another element or component, "connected to" or "coupled to" another element or component, it may be directly on, directly connected to or coupled to another element or component, or one or more intermediate elements or components may be present. However, "direct connection / direct coupling" means that one component is directly connected or coupled to another component without intermediate components. At the same time, other expressions describing the relationship between components (such as "between...", "immediately between..." or "adjacent to..." and "immediately adjacent to...") may be similarly interpreted. In addition, it will also be understood that when an element or component is referred to as being "between" two elements or components, it may be the only element or component between the two elements or components, or one or more intermediate elements or components may also be present.

[0039] The terms used herein are only for the purpose of describing specific embodiments and are not intended to limit the present disclosure. As used herein, unless the context clearly indicates otherwise, the singular form is also intended to include the plural form. It will also be understood that the terms "include", "have" and "comprise" when used in this specification, illustrate the existence of the features, wholes, steps, operations, elements and / or components of the description, but do not exclude the existence or addition of one or more other features, wholes, steps, operations, elements, components and / or their groups. As used herein, each of the terms "or" and "and / or" includes any and all combinations of one or more of the related listed items. For example, the expression "A and / or B" means A, B, or A and B.

[0040] For the purposes of this disclosure, expressions such as “at least one of…” when following a list of elements modify the entire list of elements and do not modify the individual elements in the list. For example, “at least one of X, Y, or Z,” “at least one of X, Y, and Z,” and “at least one selected from the group consisting of X, Y, and Z” may be interpreted as only X, only Y, only Z, or any combination of two or more of X, Y, and Z (such as, for example, XYZ, XYY, YZ, and ZZ).

[0041] As used herein, the terms "substantially," "approximately," "approximately," and similar terms are used as terms of approximation, not as terms of degree, and are intended to illustrate the inherent deviations in measured or calculated values ​​that would be recognized by one of ordinary skill in the art. As used herein, "approximately" or "approximately" includes the stated value and means within an acceptable range of deviations from a particular value determined by one of ordinary skill in the art taking into account the measurement in question and the errors associated with the measurement of the particular quantity (i.e., the limitations of the measurement system). For example, "approximately" may mean within one or more standard deviations, or within ±30%, 20%, 10%, 5% of the stated value. In addition, the use of "may" when describing embodiments of the present disclosure means "one or more embodiments of the present disclosure."

[0042] When one or more embodiments can be implemented differently, a specific processing order can be performed differently from the order described. For example, two consecutively described processes can be performed substantially simultaneously or in an order opposite to the order described.

[0043] Any component or any combination of components described (e.g., in any system diagram included herein) may be used to perform one or more of the operations of any flowchart included herein. In addition, (i) the operations are only example operations and may involve various additional operations not explicitly covered, and (ii) the temporal order of the operations may vary.

[0044] The electronic or electrical devices and / or any other related devices or components according to the embodiments of the present disclosure described herein may be implemented using any suitable hardware, firmware (e.g., an application specific integrated circuit), software, or a combination of software, firmware, and hardware. For example, the various components of these devices may be formed on an integrated circuit (IC) chip or on separate IC chips. In addition, the various components of these devices may be implemented on a flexible printed circuit film, a carrier package (TCP), a printed circuit board (PCB), or formed on a substrate.

[0045] In addition, the various components of these devices can be processes or threads running on one or more processors in one or more computing devices that execute computer program instructions and interact with other system components to perform the various functions described herein. The computer program instructions are stored in a memory, which can be implemented in a computing device using a standard memory device (such as, for example, a random access memory (RAM)). The computer program instructions may also be stored in other non-transitory computer-readable media (such as, for example, a CD-ROM, a flash drive, etc.). In addition, those skilled in the art should recognize that the functions of various computing devices may be combined or integrated into a single computing device, or the functions of a particular computing device may be distributed on one or more other computing devices without departing from the spirit and scope of the exemplary embodiments of the present disclosure.

[0046] Any function described herein (including any function that can be implemented using a host, device, etc., or a combination thereof) can be implemented using hardware, software, firmware, or any combination thereof, including, for example, hardware and / or software combinational logic, sequential logic, timers, counters, registers, state machines, volatile memory (such as dynamic RAM (DRAM) and / or static RAM (SRAM)), non-volatile memory (including flash memory), persistent memory (such as cross-grid non-volatile memory, memory with body resistance change, phase change memory (PCM), etc. and / or any combination thereof), complex programmable logic device (CPLD), field programmable gate array (FPGA), application specific IC (ASIC), central processing unit (CPU) including complex instruction set computer (CISC) processor and / or reduced instruction set computer (RISC) processor, graphics processing unit (GPU), neural processing unit (NPU), tensor processing unit (TPU), data processing unit (DPU), etc., executing instructions stored in any type of memory. In some embodiments, one or more components may be implemented as a system on chip (SoC).

[0047] Any host disclosed herein that can implement any functionality described herein related to the intermediate format and / or language may be implemented using any component or combination of components including one or more of a client device, a server, a storage node, a CPU, a personal computer, a tablet computer, a smart phone, etc.

[0048] Any computing device disclosed herein may be implemented in any form factor (such as 3.5 inches, 2.5 inches, 1.8 inches, M.2, Enterprise and Data Center Standard Form Factor (EDSFF), NF1, etc.) using any connector configuration (such as Serial Advanced Technology Attachment (SATA), Small Computer System Interface (SCSI), Serial Attached SCSI (SAS), U.2, etc.). Any computing device disclosed herein may be implemented and / or used in conjunction with a server chassis, server rack, data room, data center, edge data center, mobile edge data center, and / or any combination thereof, in whole or in part.

[0049] Any device disclosed herein that can be implemented as a storage device can 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 storage device (e.g., a computing storage device) can be implemented as a solid-state drive (or solid-state storage device) (SSD) based on NAND flash memory, a persistent memory such as a cross-grid non-volatile memory, a memory with body resistance change, PCM, etc., or any combination thereof.

[0050] Any communication connections and / or communication interfaces disclosed herein may be implemented using any type of interface and / or protocol using one or more interconnects, one or more networks, a network among multiple networks (e.g., the Internet), etc., or a combination thereof. Examples include Peripheral Component Interconnect Express (PCIe), Non-Volatile Memory Express (NVMe), NVMe over a Network (NVMe-oF), Ethernet, Transmission Control Protocol / Internet Protocol (TCP / IP), Direct Memory Access (DMA), Remote DMA (RDMA), RDMA over Converged Ethernet (ROCE), Fibre Channel, InfiniBand, SATA, SCSI, SAS, Internet Wide Area RDMA Protocol (iWARP) and / or coherence protocols (such as Compute Express Link (CXL), 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, Near Field Communication (NFC), etc., or any combination thereof.

[0051] In some embodiments, the software stack may include a communication layer that may implement one or more communication interfaces, protocols, etc. (such as, PCIe, NVMe, CXL, Ethernet, NVMe-oF, TCP / IP, etc.) to enable the host and / or applications running on the host to communicate with the computing device or storage device.

[0052] Unless otherwise defined, all terms (including technical and scientific terms) used herein have the same meaning as that commonly understood by those of ordinary skill in the art to which the present invention is conceived. It will also be understood that, unless explicitly defined as such herein, terms (such as those defined in general dictionaries) should be interpreted as having a meaning consistent with their meaning in the context of the relevant art and / or this specification, and should not be interpreted in an idealized or overly formal manner.

[0053] As mentioned above, in the field of computer storage devices, a system may include a host and one or more storage devices communicatively coupled to the host. The storage device may be configured to store data for applications running on the host. One or more of the storage devices may store data in a storage device and / or a memory. For example, a storage device may be associated with a non-volatile memory (e.g., a persistent memory) for storing one or more files. After the computer storing the data is powered off and powered on again, the files in the non-volatile memory are available for use. In some embodiments of the present disclosure, the storage device may be associated with a non-volatile memory (NVM) protocol (e.g., NVM Express (NVMe)). Typically, a memory may be associated with a volatile memory for temporary storage of data for faster access and faster processing by a computer. After the computer is powered off, the data in the memory may not be available. In some embodiments, the memory may be associated with a memory protocol (e.g., a compute express link (CXL)). In such an embodiment, the CPU of the host may access the persistent memory on one or more storage devices using a memory protocol so that the NVM of one or more storage devices can be used as a memory.

[0054] Data centers with hyperscale workloads may experience write amplification issues due to hybrid data placement within storage devices. Media reads and writes in storage devices with hybrid data placement may affect the performance and quality of service (QoS) provided by the storage device. Flash media writes may result in non-host-induced media loss. A flexible data placement (FDP) management method includes placing data from different applications together in isolated physical locations within a storage device. As used herein, "flexible data placement" refers to a type of data placement scheme or configuration (e.g., a physical data layout scheme) in which data from different applications are stored in isolated physical locations within a non-volatile memory of a storage device, such that data from one application can be erased from physical storage blocks associated only with the one application (i.e., without erasing data from physical storage blocks associated with other applications). Because data associated with one application can be erased without erasing data associated with other applications, the FDP management method can reduce write amplification.

[0055] Some storage systems may include applications configured to send requests (also referred to as "commands") to storage devices (e.g., storage devices or memories) for different purposes according to different protocols. Some protocols (e.g., storage protocols) may be compatible with FDP, and some protocols (e.g., memory protocols) may not be compatible with FDP (e.g., may not be generally compatible with FDP). Various embodiments of the present disclosure provide architectures that can be used in the field of memory and / or computer storage devices to allow FDP to be used with various memory protocols.

[0056] In some embodiments, the storage device may include a solid-state storage device (SSD) having a non-volatile memory corresponding to one or more dies. Each die may include one or more blocks. Each block may include one or more pages. Each page may correspond to a logical block address (LBA) and a physical block address (PBA). Each LBA may identify the logical location of data associated with a namespace in the non-volatile memory. Each PBA may identify the physical location of data associated with a namespace in the non-volatile memory. The namespace may be associated with a specific application. The LBA and PBA may be used by the storage device to locate and perform operations on data in the non-volatile memory logically and physically. Two LBAs that are logically adjacent to each other may not be physically adjacent to each other. For example, consecutive PBAs may have mixed data associated with more than one application.

[0057] In some systems, data associated with a particular namespace (or application) may be grouped only by LBAs and not by PBAs. For example, two LBAs that are logically adjacent to each other may not be physically adjacent to each other. For example, consecutive PBAs may have mixed data associated with more than one application. In such a system, a first application may have data stored in a first PBA, and a second application may have data stored in a second PBA connected to a first PBA within the same block of non-volatile memory. The non-volatile memory in such a system may include one or more blocks having LBAs associated with different applications. In such a system, erasing data associated with an application may involve the storage device erasing each LBA associated with the one application and data associated with other applications within the same block. The performance of such a system may be degraded due to write amplification. Write amplification may consume non-volatile storage media (e.g., flash media) and waste power consumed when performing additional reads and writes associated with erasing data (e.g., associated with garbage collection).

[0058] In some embodiments of the present disclosure, a storage device may be configured for FDP, wherein data associated with a first application may be stored in a PBA that is not intermixed with data from other applications in the same block. In such an embodiment, write amplification may be reduced by aligning logical block usage with physical storage media when compared to a system with mixed blocks (e.g., with mixed data placement within the storage device as discussed above).

[0059] In some embodiments, a system may include an application configured to send requests (also referred to as "commands") to storage devices (e.g., storage devices or memories) for different purposes according to different protocols. Some protocols (e.g., storage protocols) may be compatible with FDP, and some protocols (e.g., memory protocols) may not be compatible with FDP (e.g., may not generally be compatible with FDP). For example, some protocols (e.g., memory protocols) may involve additional processing steps to become compatible with FDP compared to other protocols (e.g., storage protocols). For example, NVMe is a protocol (e.g., storage protocol) that is compatible with FDP. NVMe is a storage protocol that may use commands that include LBA information and FDP information to implement FDP schemes (e.g., FDP configurations) in storage devices. On the other hand, a memory protocol that may be a cache coherence protocol (e.g., CXL memory protocol) may not generally be compatible with FDP. For example, the CXL memory protocol does not generally use commands that include LBA information and FDP information. Thus, in some embodiments, CXL memory address information used for cache coherence purposes between a CXL storage device and one or more CPUs may first be converted to LBA information for a given CXL storage device. Thus, various embodiments of the present disclosure may provide an architecture that may be used in the field of memory and / or computer storage devices to allow FDP to be used with various memory protocols.

[0060] Currently, FDP is an optional capability of the non-volatile memory (NVM) command set for the NVMe storage protocol. The NVM controller may support log pages that indicate the status of the FDP, statistics about FDP operations, and information that the host can use to detect and correct usage patterns that increase write amplification. In FDP, physical media can be grouped based on domains, endurance groups (EGs), and recycling groups (RGs) to manage and monitor the wear experienced by different areas of the physical storage media. A domain may include one or more EGs, and each EG may include one or more RGs. As described below with reference Figure 4As discussed, an RG may include one or more reclaim units (RUs), each RU being associated with a specific reclaim unit handle (RUH). If the NVM subsystem supports EGs, the scope of the FDP capability may be each EG. If the NVM subsystem does not support EGs and supports only one domain, the scope of the FDP capability may be the domain. If the NVM subsystem does not support EGs and supports more than one domain, FDP may not be supported. The host may enable or disable FDP mode by issuing a set feature command, which specifies the FDP mode features and FDP configuration to be applied to the specified EG. The host may delete all namespaces associated with the specified EG before changing the value of the FDP mode feature to enable FDP mode. If any namespace exists in the specified EG when the set feature command to change the value of the FDP mode feature is processed, the storage device controller may abort the command and indicate a command sequence error status code. If the set feature command to change the value of the FDP mode feature is processed, all events in the FDP event log page may be cleared, and each field in the FDP statistics log page may be cleared (e.g., cleared or set to zero, or cleared or set to 0h). As described below for Figure 1 and Figure 4 As discussed, once the FDP mode is enabled, the non-volatile storage capacity for a designated EG, which may be referred to as an "FDP storage device," may be logically divided. For example, the FDP storage device may include a set of one or more recycling groups RG. Each recycling group RG may include a set of recycling units RU and a set of recycling unit handles RUH. Within the FDP storage device, the number of recycling unit handles RUH in each recycling group RG may be the same.

[0061] Some storage devices may be able to work with various protocols. For example, a dual-mode storage device (e.g., a CXL dual-mode SSD) may be designed to work with CXL and NVMe. However, in a dual-mode CXL SSD device, a memory write command (e.g., CXL.mem) may not be able to maintain the FDP feature of the CXL SSD. Aspects of some embodiments of the present disclosure provide a storage device architecture to support FDP in a dual-mode storage device.

[0062] Figure 1 is a system diagram depicting a system for data management using a data placement manager in a storage device according to some embodiments of the present disclosure.

[0063] Reference Figure 1, the system 1 may include a host 100 and a storage device (e.g., a dual-mode storage device) 200. In some embodiments, the storage device 200 may be an SSD. In some embodiments, the storage device 200 may be a dual-mode storage device (e.g., a dual-mode SSD compatible with a suitable cache coherence protocol (such as CXL)), and the storage device 200 may support a storage path (e.g., a path associated with an NVMe mode) and a memory path (e.g., a path associated with a CXL.mem mode). The host 100 may include one or more applications 111. For example, a first application 111a and a second application 111b may be run on the host through computing resources (e.g., processing resources and memory resources) of the host. In some embodiments, the application 111 may be a virtual machine (VM). The application 111 may send a request and data to the storage device 200 using one or more protocols (e.g., NVMe or CXL). For example, the first application 111a and the second application 111b may send a request to the storage device interface IF. In some embodiments, the storage device interface IF may be a CXL interface. The first interface 10 (e.g., the first channel) associated with the storage device interface IF may be capable of providing communications to and from the application 111 according to a first protocol (e.g., a memory protocol). The first protocol may be a memory protocol (e.g., a cache coherent memory protocol such as CXL). For example, the application 111 may send a memory request (e.g., a cache coherent memory request such as a CXL.mem load / store request) via the first interface 10.

[0064] The second interface 20 (e.g., a second channel) associated with the storage device interface IF may be capable of providing communication to and from the application 111 according to a second protocol (e.g., a storage protocol). The second protocol may be a storage protocol using commands including LBA information and FDP information for the storage device 200. For example, the second protocol may be an NVMe protocol. The application 111 may send an NVMe input / output (I / O) command via the second interface 20.

[0065] The third interface 30 (e.g., the third channel) associated with the storage device interface IF may be capable of receiving communications from the host 100 to process the FDP configuration request. In some embodiments, the storage device 200 may be dynamically configured using an NVMe mode and / or a CXL memory load / store (LD / ST) mode. For example, in some embodiments, the storage device 200 may provide an NVMe mode capable of performing reads and writes at a block I / O granularity of 512B (bytes) and / or 4KB (kilobytes). In some embodiments, the storage device 200 may provide a CXL memory mode capable of performing memory reads and memory writes (e.g., memory load operations or memory store operations) on data using load / store instructions for byte-addressable 64B cache lines using CXL.mem requests.

[0066] In some embodiments, the first interface 10, the second interface 20, and the third interface 30 may be associated with a host interface layer HIL of the storage device 200. The host interface layer HIL may include various components for processing requests from different protocols.

[0067] For example, the first interface 10 may be coupled to a conversion component 210 of a host interface layer HIL. The conversion component 210 may process a memory request conforming to a memory protocol (e.g., a cache coherent memory protocol such as CXL). The conversion component 210 may convert address information associated with maintaining cache coherence across a network of storage devices (e.g., cache coherent address information) into local address information (e.g., LBA information) for the storage device 200. For example, the conversion component 210 may convert CXL information associated with a network of storage devices into LBA information for accessing a non-volatile memory 250 of the storage device 200. The storage device 200 may be one of more than one storage devices (e.g., a storage device pool) that are combined together by the storage device interface IF.

[0068] The second interface 20 may be coupled to a command manager 220 of a host interface layer HIL. The command manager 220 may process data access requests associated with a storage protocol capable of providing FDP and LBA information. For example, the command manager 220 may be an NVMe command manager that processes NVMe I / O requests.

[0069] The third interface 30 may be coupled to an FDP configuration component 230 of a host interface layer HIL. The FDP configuration component 230 may process a configuration request from the host 100 to configure the storage device 200 for a desired FDP scheme. In some embodiments, the FDP configuration component 230 may process a configuration request associated with a memory protocol (e.g., a CXL.io configuration request). In some embodiments, the FDP configuration component 230 may process a configuration request associated with a protocol using a command including LBA information for the storage device 200. For example, the FDP configuration component 230 may process NVMe management commands. In some embodiments, the third interface 30 may process configuration requests associated with both a memory protocol and a protocol using a command including LBA information for the storage device 200.

[0070] The data placement manager DPM (also referred to as "FDP manager") of the host interface layer HIL may process the various outputs from the conversion component 210, the command manager 220, and the FDP configuration component 230. The data placement manager DPM may track global data placement information associated with the non-volatile memory 250 of the storage device 200 (e.g., grouping information associated with the data placement configuration). The data placement manager DPM may process configuration requests and data access requests, and maintain the FDP characteristics of the non-volatile memory 250 based on the desired FDP parameters. The FDP parameters may include parameters for grouping regions of the non-volatile memory according to a given or desired FDP scheme. For example, the FDP parameters may include a recycling group RG (e.g., in Figure 1 and Figure 4 , where n is a natural number greater than 1). Each reclaim group RG may be associated with one or more different physical regions in the nonvolatile memory 250.

[0071] For example, the nonvolatile memory 250 may include one or more channels CH (eg, zeroth channel CH0 to nth channel CHn). Each channel CH may correspond to one or more dies. Each channel CH may include one or more blocks B. For example, Figure 1 As depicted in FIG. 1 , the zeroth channel CH0 may include a first block B1, a second block B2, and a third block B3. The first channel CH1 may include a fourth block B4, a fifth block B5, and a sixth block B6. The nth channel CHn may include a seventh block B7, an eighth block B8, and an nth block Bn. Each block B may include one or more pages P (e.g., Figure 1 The first page P1 to the nth page Pn depicted in the nth block Bn in FIG.

[0072] like Figure 1As depicted in , the first recycling group RG1 can be associated with the second block B2, the third block B3, the fifth block B5 and the sixth block B6 through the FDP scheme. The first recycling group RG1 can be associated with the first application 111a. The second recycling group RG2 can be associated with the fourth block B4 through the FDP scheme. The second recycling group RG2 can be associated with the second application 111b. However, the embodiment is not limited to this, for example, each of the different recycling groups may include a continuous physical block address. Because the data associated with the first application 111a is not mixed with the data associated with the second application 111b in any block B, the data associated with the first application 111a can be erased without erasing any data associated with the second application 111b, and vice versa. Such an arrangement can allow a reduction in write amplification and a reduction in latency.

[0073] As discussed above, the data placement manager DPM can track global information and maintain FDP characteristics of the nonvolatile memory 250 based on desired FDP parameters. The data placement manager DPM can be coupled to the flash translation layer FTL and the nonvolatile memory interface layer NIL to manage data access to the nonvolatile memory 250.

[0074] In some embodiments, FDP may be supported in a memory path (e.g., a cache coherent memory path (e.g., a CXL.mem path)) of a dual-mode storage device (e.g., a dual-mode CXL SSD) by allowing the host 100 to configure the storage device 200 using FDP parameters during an FDP namespace generation operation. The FDP parameters may include a reclaim group RG, a reclaim unit RU, a reclaim unit handle RUH, FDP attributes, and a placement identifier (PIDL) (e.g., a default or desired placement identifier) ​​(the reclaim group RG, the reclaim unit RU, and the reclaim unit handle RUH are in Figure 4 ). The FDP parameters allow write locations to be fixed in advance according to the FDP scheme. In some embodiments, the host 100 may configure the storage device 200 by providing the FDP parameters through a storage protocol manager (such as, for example, through a fabric manager (FM) unit of CXL.io).

[0075] According to one or more embodiments, a memory path (e.g., a CXL.mem path) can support FDP in three ways: per address (e.g., per CXL.mem address), based on address range, and based on a default PIDL. Using the per-address approach, a memory command (e.g., a CXL LD / ST command) can include a field with bits indicating FDP information. For example, a first type of memory command 500A (e.g., a memwr command or a memwrptl command) (see Figure 5A) may include unused bits (e.g., 22 unused bits) in the reserved (RSVD) bit field F13. One or more applications 111 may use some of the unused bits of the RSVD bit field F13 to send a request to the storage device 200 to provide the storage device 200 with a PIDL for the FDP. In some embodiments, the second type of memory command 500B (see Figure 5B ) may include an FDP indication field (or FDP field) F15 having X bits, where X is a positive integer. For example, the CXL standard may be modified to include a field for CXL memory commands. One or more applications 111 may send a request to the storage device 200 using the bits of the FDP indication field F15 to provide the storage device 200 with a desired PIDL for the FDP.

[0076] Using the address range method, the PIDL for FDP configuration can be predefined based on the address range. For example, the host 100 can use a memory protocol manager (e.g., FM on a CXL I / O path) to configure the FDP configuration space, and can predefine PIDLs for different address spaces during the FDP namespace generation operation.

[0077] Using the default PIDL method, a memory request (eg, a CXL request) may be processed by the storage device 200 using the default PIDL configured during the FDP namespace generation operation.

[0078] FDP may be supported by an indication method and / or by a non-indication method according to a protocol (e.g., NVMe protocol) using a command including LBA information for the storage device 200. Using the indication method, data may be placed in the recycling group RG and the recycling unit RU according to the PIDL. The PIDL may be provided in an indication field of a write command (e.g., an NVMe I / O command). Using the non-indication method, data may be placed in the recycling group RG and the recycling unit RU according to the default PIDL. For example, the default PIDL may be configured during an FDP namespace generation operation via a management command (e.g., an NVMe management command).

[0079] Thus, a dual-mode storage device may be provided in which FDP may be fully implemented using a memory path (e.g., a CXL.mem path) and an NVMe data path managed by a conventional controller (e.g., a conventional NVMe controller). Implementing FDP using a memory path (e.g., a CXL.mem path) may reduce latency of the memory path. Additionally, write amplification and over-provisioning may be reduced.

[0080] Figure 2is a flow chart depicting example operations of a method for data management in a storage device using a data placement manager for processing requests associated with a memory protocol in accordance with some embodiments of the present disclosure.

[0081] Figure 3 is a flow chart depicting example operations of a method for data management in a storage device using a data placement manager for processing requests associated with a protocol using commands including LBA information for the storage device in accordance with some embodiments of the present disclosure.

[0082] Reference Figure 2 , a method 2000 for data storage using a data placement manager DPM may include one or more of the following operations. The storage device 200 may receive a request (e.g., a memory write request) at a conversion component 210 (operation 2001). The conversion component 210 may be coupled to a first interface associated with a memory protocol (operation 2001). The conversion component 210 may convert memory address information associated with the request (e.g., cache coherent memory address information) into LBA information (operation 2002). The data placement manager DPM may receive the LBA information from the conversion component 210, and may determine whether the request includes FDP information associated with an FDP configuration (operation 2003). If the request includes FDP information associated with an FDP scheme (e.g., through an RSVD bit or an FDP field), the data placement manager DPM may process the LBA information for performing a memory operation (e.g., a load operation or a memory write operation) at a reclaim group RG of the non-volatile memory 250 according to the FDP information provided by the request (operation 2004A). If the write request does not include FDP information, the data placement manager DPM may determine whether FDP configuration information (e.g., associated with an FDP namespace generation operation) is provided to the data placement manager DPM for processing the request (operation 2004B). If the FDP configuration information is provided, the data placement manager DPM may process LBA information for performing a memory operation (e.g., a load operation or a memory write operation) at the reclaim group RG of the non-volatile memory 250 according to the FDP configuration information (2005A). If the FDP configuration information is not provided, the data placement manager DPM may abort the request and may send an error message to the host 100 (2005B).

[0083] Reference Figure 3, a method 3000 for data storage using a data placement manager DPM may include one or more of the following operations. The storage device 200 may receive a write request (e.g., an NVMe write request) at the command manager 220 (operation 3001). The command manager 220 may (e.g., in a case where the storage device 200 does not perform a conversion operation) be coupled to a second interface associated with a protocol using commands including LBA information for the storage device 200 (operation 3001). The data placement manager DPM may receive FDP and LBA information from the command manager 220, and may determine whether the write request includes FDP information associated with an FDP configuration (operation 3002). If the write request includes FDP information associated with an FDP scheme, the data placement manager DPM may process LBA information for performing a write operation at a reclaim group RG of the non-volatile memory 250 according to the FDP information provided by the write request (operation 3003A). If the write request does not include FDP information, the data placement manager DPM may determine whether FDP configuration information (e.g., associated with an FDP namespace generation operation) is provided to the data placement manager DPM for processing the write request (operation 3003B). If the FDP configuration information is provided, the data placement manager DPM may process LBA information for performing a write operation at a reclaim group RG of the nonvolatile memory 250 according to the FDP configuration information (3004A). If the FDP configuration information is not provided, the data placement manager DPM may abort the write request and may send an error message to the host 100 (3004B).

[0084] Figure 4 The invention is a diagram illustrating some embodiments of the present disclosure. Figure 1 An illustration of components of a recycling group associated with a system.

[0085] Reference Figure 4 , and as discussed above, the FDP parameters may include parameters for grouping the zones of the nonvolatile memory according to a given or desired FDP scheme (e.g., a given or desired FDP configuration). For example, the FDP parameters may include recovery groups RG (e.g., zeroth recovery group RG0 to nth recovery group RGn). Each recovery group RG may be associated with one or more different physical zones in the nonvolatile memory 250. Each recovery group RG may include one or more recovery units RU. Each recovery unit RU may correspond to a given recovery unit handle RUH. Each recovery unit handle RUH may provide access to each recovery unit across the recovery group RG. For example, the nth recovery unit handle RUHn may provide access to the nth recovery unit RUn in each recovery group RG.

[0086] Figure 5Ais a diagram depicting fields of a first type of memory command according to some embodiments of the present disclosure.

[0087] Reference Figure 5A , the first type of memory command 500A may include a field F having various bit widths W. In some embodiments, the first type of memory command 500A may be a memory write request (e.g., a memory to storage device with data request (M2S RwD) associated with 256-bit filtering in some configurations). For example, in some configurations, 256-bit filtering is an option according to the CXL 3.0 specification. As discussed above, the first type of memory command 500A may include unused bits (e.g., 22 unused bits) in the RSVD bit field F13. According to one or more embodiments of the present disclosure, the RSVD field may be used to provide FDP information for routing data associated with the first type of memory command 500A to an appropriate recycling group RG and an appropriate recycling unit RU. In some embodiments, 22 unused bits may be sufficient to allow data placement for a maximum number of recycling groups RG.

[0088] like Figure 5A As indicated in FIG. 5 , in addition to the RSVD bit field F13, the first type of memory command 500A may include a valid field F1, a memo pcode field F2, a snptype field F3, a metafield F4, a metavalue field F5, a tag field F6, an address field F7, a point on field F8, a BEP field F9, a LD-ID field F10, a SPID field F11, a DPID field F12, and a TC field F14. Each field may have a bit width W. The first type of memory command 500A may include a total of 104 bits.

[0089] Figure 5B is a diagram depicting fields of a second type of memory command according to some embodiments of the present disclosure.

[0090] Reference Figure 5B , the second type of memory command 500B may include the field F of the first type of memory command 500A plus an additional FDP field F15 having a bit width W of X bits (X is a positive integer greater than zero). In some embodiments, the second type of memory command 500B may be a write request (e.g., an M2S RwD associated with 256-bit filtering). The FDP field F15 may include FDP information for routing data associated with the second type of memory command 500B to the appropriate recycling group RG and the appropriate recycling unit RU. The second type of memory command 500B may include a total of 104 plus X bits.

[0091] Figure 6 is a flow chart depicting example operations of a method of data storage using data management in a storage device according to some embodiments of the present disclosure.

[0092] Reference Figure 6 , the method 6000 may include the following example operations. The storage device 200 may receive a first request (e.g., a write request) from an application 111a running on the host 100 (operation 6001). The first request may be associated with a first protocol (e.g., CXL) as a memory protocol (operation 6001). The storage device 200 may convert address information (e.g., cache coherent memory address information) associated with the first request into LBA information (operation 6002). The data placement manager DPM of the storage device 200 may determine a first recycling group RG associated with the first request and associated with the first application based on the data placement configuration (or data placement scheme) of the storage device 200 (operation 6003). In one example, the step of determining the first recycling group RG may include: checking a field of the first request, checking a bit of the first request, or checking the configuration of the storage device 200. The storage device 200 may perform a first operation (e.g., a first memory operation) at the first recycling group RG based on the first request (operation 6004). For example, a portion of the storage device 200 that processes requests according to a memory protocol (e.g., CXL) may receive a memory request. The memory device 200 may convert the memory request into a write command (eg, a NAND write command). The write command may operate on the first reclaim group RG.

[0093] Thus, aspects of some embodiments of the present disclosure may provide improvements to computer storage devices by providing FDP for various protocols to reduce write amplification and latency associated with computer storage systems.

[0094] The disclosed example embodiments may extend to the following statements, but are not limited thereto:

[0095] Statement 1. An example method includes: receiving a first request at a storage device, the first request being associated with a first protocol as a memory protocol; converting address information associated with the first request into logical block address (LBA) information; determining, by the storage device based on a data placement configuration of the storage device, a first group of contiguous physical block addresses associated with the first request and associated with a first application; and performing a first memory operation at the first group based on the first request.

[0096] Statement 2. Example method includes the method of Statement 1, wherein the step of determining includes: checking a field of the first request, checking a bit of the first request, or checking a configuration of a storage device.

[0097] Statement 3. Example method includes the method of any of Statements 1 and 2, wherein the first group is associated with a first region and the storage device includes a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

[0098] Statement 4. The example method includes the method of any one of Statements 2 and 3, and also includes: receiving a configuration request at a storage device, and dividing the physical block addresses of the storage device into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

[0099] Statement 5. The example method includes the method described in any one of Statements 2 to 4, and also includes: performing a first memory operation based on LBA information, and receiving a second request associated with a second protocol different from the first protocol at a storage device, the second request including information identifying a second group of contiguous physical block addresses associated with the second request and associated with a second application.

[0100] Statement 6. Example method comprises the method of any of Statements 2 to 5, wherein the first protocol is a cache coherence protocol and the second protocol is a storage protocol.

[0101] Statement 7. Example method includes the method described in any of Statements 2 to 6, wherein the storage device is configured to: track grouping parameters associated with a data placement configuration, receive requests according to a first protocol and according to a second protocol different from the first protocol, and receive a configuration request for partitioning the storage device according to the data placement configuration.

[0102] Statement 8. An example apparatus for performing the method of any one of Statements 1 to 7 comprises non-volatile memory.

[0103] Statement 9. An example system comprises a processor and a memory storing instructions, the instructions causing the processor to perform the method of any one of Statements 1 to 7 upon execution by the processor.

[0104] While embodiments of the present disclosure have been particularly shown and described with reference to the embodiments described herein, it will be understood by those skilled in the art that various changes in form and details may be made therein without departing from the spirit and scope of the present disclosure as set forth in the following claims and their equivalents.

Claims

1. A method for data storage, the method include: receiving, at a storage device, a first request, the first request being associated with a first protocol being a memory protocol; converting address information associated with the first request into logical block address information; determining, by the storage device based on a data placement configuration of the storage device, a first set of contiguous physical block addresses associated with the first request and associated with the first application; as well as A first memory operation is performed at the first group based on the first request.

2. The method according to claim 1, in, The step of determining includes checking a field of the first request, checking a bit of the first request, or checking a configuration of a storage device.

3. The method according to claim 1, in: The first group is associated with the first zone; and The storage device includes a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

4. The method according to claim 1, further comprising: include: receiving, at a storage device, a configuration request; as well as Physical block addresses of a storage device are divided into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

5. The method according to claim 1, further comprising: include: performing a first memory operation based on the logical block address information; as well as A second request associated with a second protocol different than the first protocol is received at the storage device, the second request including information identifying a second set of consecutive physical block addresses associated with the second request and associated with a second application.

6. The method according to claim 5, in: The first protocol is a cache coherence protocol; and The second protocol is the storage protocol.

7. The method according to any one of claims 1 to 6, in, The storage device is configured as: Tracking grouping parameters associated with data placement configuration; receiving a request according to a first protocol and according to a second protocol different from the first protocol; and A configuration request is received to partition storage according to a data placement configuration.

8. A storage device, include: a storage device interface configured to receive a first request associated with a first protocol being a storage protocol; a conversion component configured to convert address information associated with the first request into logical block address information, and a data placement manager configured to: determine a first group of contiguous physical block addresses associated with a first request and associated with a first application based on a data placement configuration, and perform a first memory operation at the first group based on the first request; and a non-volatile memory including a first group.

9. The storage device according to claim 8, in, The determining process includes: checking a field of the first request, checking a bit of the first request, or checking a configuration of the storage device.

10. The storage device according to claim 8, in: The first group is associated with the first zone; and The non-volatile memory includes a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

11. The storage device according to claim 8, in, The storage device further comprises a flexible data placement configuration component configured to receive a configuration request; and In response to the configuration request being received, physical block addresses of the non-volatile memory are divided into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

12. The storage device according to claim 8, in, The data placement manager is further configured to perform a first memory operation based on the logical block address information; and The storage device also includes a command manager configured to receive a second request associated with a second protocol different from the first protocol, the second request including information identifying a second group of consecutive physical block addresses associated with the second request and associated with a second application.

13. The storage device according to claim 12, in, The first protocol is a cache coherence protocol; and The second protocol is the storage protocol.

14. The storage device according to any one of claims 8 to 13, in, The data placement manager is further configured to track grouping parameters associated with the data placement configuration; and The storage device also includes a host interface layer, which is configured to receive requests according to a first protocol and according to a second protocol different from the first protocol, and receive a configuration request for partitioning the storage device according to a data placement configuration, wherein the host interface layer includes a conversion component and a data placement manager.

15. A system for data storage, the system include: processor; as well as A memory stores instructions, wherein the instructions, upon execution by the processor, cause the processor to perform the following: receiving a first request, the first request being associated with a first protocol being a memory protocol; converting address information associated with the first request into logical block address information; determining a first set of contiguous physical block addresses associated with the first request and associated with the first application based on a data placement configuration of the storage device; as well as A first memory operation is performed at the first group based on the first request.

16. The system according to claim 15, in, The determining process includes checking a field of the first request, checking a bit of the first request, or checking a configuration of a storage device.

17. The system according to claim 15, in: The first group is associated with the first zone; and The storage device includes a second group associated with a second region of consecutive physical block addresses, the second group being separate from the first group and associated with a second application.

18. The system according to claim 15, in, The instructions, upon being executed by a processor, cause the processor to perform the following: receiving, at a storage device, a configuration request; and Physical block addresses of a storage device are divided into one or more groups of consecutive physical block addresses, the one or more groups including a first group.

19. A system according to any one of claims 15 to 18, in, The instructions, upon execution by the processor, cause the processor to: performing a first memory operation based on the logical block address information; and A second request associated with a second protocol different than the first protocol is received at the storage device, the second request including information identifying a second set of consecutive physical block addresses associated with the second request and associated with a second application.

20. The system according to claim 19, in, The first protocol is a cache coherence protocol; and The second protocol is the storage protocol.

Citation Information

Cited By

  • Scheduling method and device of NVMe solid state disk, data processor and equipment

    CN121070287A

  • Scheduling method and device of NVMe solid state disk, data processor and equipment

    CN121070287B

  • Method and system for realizing GPU (Graphics Processing Unit) module storage and calculation through hybrid storage

    CN121614080A