Storage device, method of operating storage device, and method of operating storage system

By synchronizing GC operations of storage devices in the storage system, the problem of overall performance degradation caused by performance decline in the storage system is solved, and efficient coordination and performance improvement between devices are achieved.

CN122111320APending Publication Date: 2026-05-29SAMSUNG ELECTRONICS CO LTD
View PDF 1 Cites 0 Cited by

Patent Information

Authority / Receiving Office
CN · China
Patent Type
Applications(China)
Current Assignee / Owner
Filing Date
2025-10-31
Publication Date
2026-05-29

AI Technical Summary

Technical Problem

When the performance of some storage devices in a storage system degrades, it leads to an overall performance degradation. Existing technologies struggle to efficiently synchronize and coordinate the background operations of multiple storage devices to maintain system performance.

Method used

By introducing first and second storage devices into the storage system, the first device generates and sends garbage collection (GC) information, and the second device synchronizes its GC operations based on this information, ensuring that all storage devices operate at a high performance level. Data exchange and GC management are handled using a memory controller and a packet manager.

Benefits of technology

It improves the overall performance of the storage system by reducing performance differences between devices through synchronous GC operations, thereby improving the efficiency of the system when performing specific functions.

✦ Generated by Eureka AI based on patent content.

Smart Images

  • Figure CN122111320A_ABST
    Figure CN122111320A_ABST
Patent Text Reader

Abstract

An operating method of a storage device includes receiving first data from a host, extracting, from the received first data, background information generated in an external storage device and indicating execution of a first background operation performed in the external storage device, and triggering a second background operation on one or more memory devices included in the storage device based on the background information, wherein, while the background operation is executed, the storage device processes a request from the host according to a performance level set based on the background information.
Need to check novelty before this filing date? Find Prior Art

Description

[0001] Cross-reference to related applications

[0002] This application is based on and claims priority to Korean Patent Application No. 10-2024-0175824, filed on November 29, 2024, with the Korean Intellectual Property Office, the disclosure of which is incorporated herein by reference in its entirety. Technical Field

[0003] The present invention relates to a storage device, and more specifically, to a storage device for sending and receiving background operation information, as well as a method for operating the storage device and a method for operating the storage system. Background Technology

[0004] Storage devices such as embedded multimedia cards (eMMC), universal flash storage (UFS), solid-state drives (SSDs), and memory cards can include non-volatile memory devices based on flash memory, and these devices can store or transfer large amounts of data in a wide range of applications. Non-volatile memory devices can retain stored data even when power is cut off.

[0005] A data processing system that includes storage devices can be called a storage system, and a storage system can include a host and multiple storage devices. The host and multiple storage devices can connect to each other using various interface standards and communicate with each other by exchanging packets formed according to specific interface standards. The host can perform various functions by accessing data on multiple storage devices in parallel. Therefore, when some of the storage devices experience degradation in their data access capabilities, the host may be unable to efficiently perform data access functions on multiple storage devices, and the overall performance of the host may degrade. Summary of the Invention

[0006] Storage devices transmit information related to background operations to each other and synchronize background operations to prevent overall performance degradation of the storage system due to some storage devices in a degraded state.

[0007] According to one embodiment, a method of operating a storage system, wherein the storage system includes a first storage device and a second storage device, and the first and second storage devices are configured to communicate with a host, the method of operating includes: triggering a first garbage collection (GC) operation in the first storage device; the first storage device sending first data including GC information related to the first GC operation to the host; the second storage device receiving second data including GC information from the host and extracting GC information from the second data; and, based on the GC information, performing a second GC operation on a memory device in the second storage device synchronously with the first GC operation of the first storage device.

[0008] According to an embodiment, a method of operating a storage device configured to communicate with a host includes: receiving first data from the host; extracting background information from the received first data, wherein the background information is generated in an external storage device and is related to a first background operation performed in the external storage device; and triggering a second background operation on one or more memory devices included in the storage device based on the background information, wherein the storage device processes requests from the host according to a performance level set based on the background information during a time interval from triggering the second background operation to completing the second background operation.

[0009] According to an embodiment, a storage device includes a non-volatile memory device and a memory controller configured to exchange data in the form of UFS Protocol Information Units (UPIUs) with a host according to the Universal Flash Storage (UFS) Interface Standard. The memory controller includes: a packet manager configured to process first data received from the host and generate second data to be sent to the host; and a garbage collection (GC) manager configured to extract GC information generated by an external storage device and indicating that a first GC operation has been performed on the external storage device from the first data. The memory controller is configured to trigger a second GC operation on the memory device synchronously with the first GC operation on the external storage device based on the GC information. Attached Figure Description

[0010] The embodiments will be more clearly understood through the following detailed description taken in conjunction with the accompanying drawings, in which:

[0011] Figure 1 This is a block diagram of a storage system according to an embodiment;

[0012] Figure 2A and Figure 2B This is a block diagram of a storage system according to an embodiment;

[0013] Figure 3 This is a block diagram illustrating an implementation example of a host according to an embodiment;

[0014] Figure 4 This is a block diagram illustrating an implementation example of a storage device according to an embodiment;

[0015] Figure 5A , Figure 5B and Figure 5C This is a diagram illustrating examples of storage devices that transmit garbage collection (GC) information in various forms;

[0016] Figure 6 This is a diagram illustrating a method for transmitting GC information according to an embodiment;

[0017] Figure 7 This is a diagram illustrating an example of exchanging GC information between storage devices;

[0018] Figure 8 This is a block diagram of a storage system according to an embodiment;

[0019] Figure 9 yes Figure 8 The flowchart illustrates an example of the operation of the storage system shown.

[0020] Figure 10 This is a block diagram illustrating an example of the operation of a storage device according to an embodiment;

[0021] Figure 11A , Figure 11B and Figure 11C This is an implementation example of the Universal Flash Storage (UFS) Protocol Information Unit (UPIU) according to an embodiment;

[0022] Figures 12 to 14 , Figure 15A and Figure 15B This is a diagram illustrating the operation of a storage system according to an embodiment; and

[0023] Figure 16 This is a diagram of a UFS system according to an embodiment. Detailed Implementation

[0024] In the following, embodiments of the inventive concept will be described in detail with reference to the accompanying drawings.

[0025] Ordinal numbers such as "first," "second," and "third" can be simply used as labels to distinguish certain elements, steps, etc., from one another. Terms not described using "first," "second," etc., in the specification may still be referred to as "first" or "second" in the claims. Furthermore, a term referenced with a specific ordinal number (e.g., "first") in a particular claim may be described with a different ordinal number (e.g., "second") in the specification or another claim.

[0026] Figure 1 This is a block diagram of the storage system 10 according to an embodiment.

[0027] Reference Figure 1Storage system 10 may include a host 11 and multiple devices, each of which may be a semiconductor device that stores data and communicates with the host 11. The host 11 and the multiple devices may communicate with each other through various types of interfaces. For example, when universal flash storage (UFS) is applied to storage system 10, the host 11 may be a UFS host, and each of the multiple devices may be a UFS device. When each of the multiple devices includes a non-volatile memory device such as flash memory, that device may be used as a storage device. Figure 1 The first storage device 13 and the second storage device 14 shown can correspond to multiple devices.

[0028] According to an example embodiment, each of the first storage device 13 and the second storage device 14 can be implemented in a separate semiconductor chip and mounted on a single memory package 12. Furthermore, each of the first storage device 13 and the second storage device 14 may include a memory controller and one or more memory devices (or memory cores). The memory controller can access the memory devices to perform various operations upon requests from the host 11, such as programming operations, read operations, erase operations, and other maintenance operations. (See reference...) Figure 1 The memory device can be, for example, a NAND flash memory. The memory controller and the memory device can be implemented in a single semiconductor chip, or separately in different semiconductor chips. Each of the first storage device 13 and the second storage device 14 described above can also be referred to as a memory system, because each of the first storage device 13 and the second storage device 14 includes a memory controller and a memory device.

[0029] Host 11 can be connected to first storage device 13 and second storage device 14 via one or more LANE channels. Each of the first storage device 13 and second storage device 14 can communicate with host 11 by exchanging requests and data via a corresponding LANE channel. For example, Figure 1 The storage system 10 may have four channel LANEs. Each channel LANE may include a transmit channel and a receive channel (not shown), and the host 11 may communicate with each of the first storage device 13 and the second storage device 14 in a dual-mode or full-duplex manner through the corresponding channel LANE based on the channel structure in which the transmit channel LANE and the receive channel LANE are separated.

[0030] According to an embodiment, each of the first storage device 13 and the second storage device 14 may include a background information manager. For example, the first storage device 13 may include a first background information manager (BG manager) 13_1, and the second storage device 14 may include a second BG manager 14_1. The background information manager may be implemented within the memory controller of the storage device. Background operations may include various operations performed within the storage device, regardless of host requests. For example, background operations may include garbage collection operations, recycling operations, wear leveling operations, and other maintenance operations. Furthermore, background information may include details about various background operations. For example, background information may include the type, performance status / characteristics, or speed of the background operation.

[0031] Storage system 10 can support various types of interfaces. For example, storage system 10 can support Universal Serial Bus (USB), Multimedia Card (MMC), Peripheral Component Interconnect (PCI), PCI-Fast (PCI-E), Advanced Technology Accessory (ATA), Serial ATA, Parallel ATA, Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), Firewire, Non-Volatile Memory Fast (NVMe), and Universal Flash Memory (UFS).

[0032] According to some embodiments, the memory package 12 may be a memory embedded in an electronic device or a removable memory, and the memory package 12 may be implemented in various different forms depending on the application. For example, the memory package 12 may be an embedded UFS memory device, an embedded MMC (eMMC), a solid-state drive (SSD), a UFS memory card, a compact flash (CF) card, a secure digital (SD) card, a micro SD card, a mini SD card, an extreme digital (xD) card, and a memory stick.

[0033] According to embodiments, each of the first storage device 13 and the second storage device 14 may include a three-dimensional (3D) memory cell array. The 3D memory cell array may include multiple NAND strings, and each NAND string may include memory cells vertically stacked on a substrate and connected to a corresponding word line (WL). However, the inventive concept is not limited thereto. The memory cell array may include a two-dimensional (2D) memory cell array, and the 2D memory cell array may include multiple NAND strings arranged in row and column directions. Although NAND memory cells are widely used as non-volatile memory cells, the memory cell array may include various different types of non-volatile memory cells, such as resistive random access memory (ReRAM), phase-change RAM (PRAM), and magnetoresistive RAM (MRAM).

[0034] According to an embodiment, host 11, first storage device 13, and second storage device 14 can generate and exchange packets according to the protocol of the UFS interface, wherein the packets may include data. However, embodiments of the inventive concept are not limited thereto, and various other types of interfaces can be applied to embodiments of the inventive concept. Each of host 11 and first storage device 13 and second storage device 14 can send and receive packets. Exchanging data between host 11 and first storage device 13 and second storage device 14 can refer to host 11 sending data to first storage device 13 and receiving data from first storage device 13 and second storage device 14. The term "data" may refer to actual data accessed from the memory cell array, or it may refer to general information transmitted by host 11 and first storage device 13 and second storage device 14, wherein the term "data" may include packet or protocol information necessary to enable communication between host 11 and first storage device 13 and second storage device 14.

[0035] According to an embodiment, host 11, first storage device 13, and second storage device 14 may further exchange background information for performing various types of background operations. For example, background information may include garbage collection information, which hereinafter may be described as GC information or GC info, and garbage collection operations may be described as GC operations.

[0036] When the first storage device 13 triggers a first GC operation or is executing a first GC operation, the first storage device 13 can generate first GC information related to the first GC operation executed in the first storage device 13 and send the first GC information to the second storage device 14. Upon receiving the first GC information from the first storage device 13, the second storage device 14 can execute a second GC operation based on the first GC information from the first storage device 13, wherein the second storage device 14 can synchronize the second GC operation with the first GC operation of the first storage device 13.

[0037] Garbage collection (GC) can be performed by copying valid data stored in multiple source blocks to a single object block and erasing multiple source blocks to ensure free blocks. Therefore, the storage device's memory controller can perform internal I / O operations on the memory device associated with GC operations, regardless of host requests. Alternatively, the storage device can perform host I / O operations in response to host requests while performing internal I / O operations for GC. Therefore, during the period between the time a GC operation is triggered and the time it terminates, the storage device may need to prioritize internal I / O operations for GC and host I / O operations for handling requests from the host, as these operations may not be performed in parallel. When the number of free blocks in the storage device is insufficient, the storage device can choose to prioritize internal I / O operations; alternatively, when priority must be given to requests from the host, the storage device can choose to prioritize host I / O operations.

[0038] On the other hand, the performance ratio between internal I / O operations and host I / O operations can be set to a specific value. A high host I / O performance ratio means more frequent host I / O operations and faster processing of requests from the host, thus improving the overall performance of the storage device. However, data stability may decrease slightly as the speed of garbage collection (GC) operations decreases. Conversely, a low host I / O performance ratio means less frequent host I / O operations and slower processing of requests from the host, thus reducing overall storage device performance. However, increasing the speed of GC operations can increase data stability.

[0039] GC information may include information indicating whether a background operation is a GC operation, and may also include information indicating the number of free blocks in the storage device, the execution speed of the GC operation, the processing performance of the host's requests, etc. For example, when the first storage device 13 sends the first GC information to the second storage device 14, the first background information manager 13_1 may encrypt the first GC information, and the second background information manager 14_1 may decrypt the received first GC information.

[0040] The memory package 12 can support on-device AI, and the host 11 can allocate data access to the first storage device 13 and the second storage device 14 for specific functions, such as processing AI operation sets. For example, learning data can be categorized into multiple sets. After data from any set is stored in both the first storage device 13 and the second storage device 14, the host 11 can then process data from other sets. When the frequency of host I / O operations is reduced to perform GC operations in the first storage device 13, the processing performance of multiple sets may be degraded due to the lower performance level of the first storage device 13, regardless of whether the second storage device 14 performs data access operations at a high performance level. For example, when the first time segment in which the first storage device 13 performs the first GC operation does not overlap with the second time segment in which the second storage device 14 performs the second GC operation, both the first storage device 13 and the second storage device 14 may not operate at a high performance level during the first and second time segments, and the third time segment in which both the first storage device 13 and the second storage device 14 may operate at a high performance level may be reduced, thereby reducing the overall performance of the host when the host 11 performs a specific function.

[0041] According to an embodiment of the present invention, the second storage device 14 can synchronize a second GC operation to a first GC operation of the first storage device 13 based on GC information received from the first storage device 13. Therefore, the time segments in which the first storage device 13 and the second storage device 14 perform GC operations can overlap, and the time segments in which both the first storage device 13 and the second storage device 14 can operate at a high-performance level can be increased. Thus, the overall performance of the host 11 can be improved while performing the specific function.

[0042] Furthermore, the first storage device 13 and the second storage device 14 can transmit background operation information in various formats. For example, the first storage device 13 and the second storage device 14 can generate commands through separate interfaces, and background operation information can be included in the commands. Commands used for communication between the first storage device 13 and the second storage device 14 through separate interfaces can be internal commands, different from commands used for communication between the first storage device 13 and the second storage device 14 and the host 11. Internal commands can have a format according to the UFS interface standard. Alternatively, internal commands can be implemented as commands that are part of a command set defined by the SCSI interface standard, or as higher-level host commands, or as lower-level commands defined in inter-process communication (IPC) protocols.

[0043] Alternatively, the first storage device 13 and the second storage device 14 can exchange background operation information in the form of a payload PAYLOAD. For example, when the first storage device 13 and the second storage device 14 exchange internal commands, the packets sent by the host 11 to the first storage device 13 and the second storage device 14 may not contain the internal commands. Instead, the host 11 may send the internal commands extracted from the packets received from the storage devices to the other storage device. On the other hand, when the first storage device 13 and the second storage device 14 exchange payload PAYLOADs, the packets sent by the host 11 to the first storage device 13 and the second storage device 14 may include the payload PAYLOAD.

[0044] Figure 2A and Figure 2B These are block diagrams of storage systems 20A and 20B according to embodiments.

[0045] refer to Figure 2A The storage system 20A may include a host 21, a first storage device 22, and a second storage device 23. Each of the host 21, the first storage device 22, and the second storage device 23 may include at least one interface circuit. For example, the host 21 may include a first interface circuit 21_1, and the first storage device 22 may include an interface circuit (I / F) 22_1, wherein the host 21 and the first storage device 22 can communicate with each other through the first interface circuit 21_1 and the interface circuit (I / F) 22_1. The host 21 may also include a second interface circuit 21_2, and the second storage device 23 may include an interface circuit 23_1, wherein the host 21 and the second storage device 23 can communicate with each other through the second interface circuit 21_2 and the interface circuit (I / F) 23_1. The interface circuit I / F provided in each of the host 21, the first storage device 22, and the second storage device 23 may include a UFS interconnect layer (UIC) according to the UFS interface standard. In addition, UIC may include a link layer such as the UniPro protocol defined by the Mobile Industry Processor Interface (MIPI) Alliance, and a physical layer such as the MIPI physical layer (M-PHY).

[0046] Host 21, first storage device 22, and second storage device 23 can communicate with each other by exchanging UFS Protocol Information Units (UPIUs) as packets according to the UFS interface standard, and the UPIU can include a command CMD UPIU and a response RESP UPIU. For example, host 21 can send a command CMD UPIU to first storage device 22 and second storage device 23, and in response, first storage device 22 and second storage device 23 can send a response RESP UPIU to host 21.

[0047] According to an embodiment, the first storage device 22 and the second storage device 23 can exchange GC information via the host 21. Each storage device may include a packet generator. For example, each of the first packet generator 22_3 of the first storage device 22 and the second packet generator 23_3 of the second storage device 23 can generate a response RESP_UPIU in response to the command CMD_UPIU from the host 21. Furthermore, the first storage device 22 may include a first garbage collection (GC) manager 22_2, the second storage device 23 may include a second GC manager 23_2, and each GC manager can compose GC information into packets to be sent to the host, or extract GC information from packets received from the host 21. For example, the first storage device 22 may send GC information to the second storage device 23, wherein the packets sent by the first storage device 22 to the host may include GC information in the form of a payload PAYLOAD, and the second storage device 23 may extract GC information from packets received from the host 21, wherein the GC information is included in the packets in the form of a payload PAYLOAD.

[0048] For example, a UPIU format packet may include a header area, an Additional Header Segment (EHS) (hereinafter referred to as the EHS area), and a payload PAYLOAD area, and GC information may be included in at least a portion of the packet's header area and EHS area. The packet's header area and EHS area may include fields for containing information not required for communication with host 21. For example, fields may be reserved areas, and GC information may be included in the packet's reserved areas.

[0049] According to an embodiment, host 21 may include one or more queues for storing communication information between the first storage device 22 and the second storage device 23. For example, in addition to sending GC information, the storage device also sends an internal response Int_Resp acknowledging receipt of the GC information. Upon receiving the GC information and the internal response Int_Resp, host 21 may store the GC information and the internal response Int_Resp in one or more queues. When host 21 sends a UPIU to the storage device, host 21 may retrieve the information stored in the queues and may include the GC information or the internal response Int_Resp in the UPIU.

[0050] The storage device providing GC information can be a source storage device, and the storage device receiving GC information can be a destination storage device. For example, the first storage device 22 can include the identifier (ID) value of the second storage device 23, which is the destination storage device, along with the GC information in the packet. The host 21 can determine the storage device to which the GC information can be sent based on the ID value included in the received packet. Additionally, when the first storage device 22 and the second storage device 23 transmit the internal command Int CMD, the value indicating the format of the internal command Int CMD can be included in the packet to be sent to the host 21. The storage device ID value and the value indicating the format of the internal command Int CMD can be included in the header area of ​​the packet.

[0051] Alternatively, GC information can also be as follows: Figure 2B The data is transferred directly between storage devices. For example, in storage system 20B, the first storage device 22 may include an interface circuit I / F 22_4 for communicating with the second storage device 23, and the second storage device 23 may include an interface circuit I / F 23_4 for communicating with the first storage device 22. The interface circuit for communication between the first storage device 22 and the second storage device 23 can be implemented with various types of interfaces. Therefore, the host 21 may not need to include a queue for storing GC information.

[0052] According to embodiments of the present invention, the overall performance of the storage system can be improved because the time segments in which all or many storage devices operate at a high-performance level can be increased. According to embodiments of the present invention, it is suggested to use a Redundant Array of Independent Disks (RAID 0) to expand capacity and increase data bandwidth by accommodating multiple storage devices in the storage system. Therefore, the operational efficiency of the storage system can be improved in environments where multiple storage devices are accommodated.

[0053] Furthermore, GC information can be exchanged between storage devices via a host or through a direct communication interface. Although an embodiment of exchanging GC information via a host has been described, the following description can also be applied to embodiments in which storage devices exchange GC information via a direct communication interface.

[0054] Figure 3 This is a block diagram illustrating an implementation example of host 100. (Reference) Figure 3 The host 100 includes a system-on-a-chip (SoC) and host memory 101, and the processor 130 controls memory operations by executing software stored in the host memory 101. Alternatively, the host memory 101 may be integrated into the SoC, or embedded memory 170 may include the functionality of the host memory 101. Furthermore, the SoC may include an application processor (AP).

[0055] refer to Figure 3 The system-on-a-chip (SoC) may include a host controller 110, a memory control unit 120, a processor 130, a modem 140, a camera interface (I / F) 150, a display interface (I / F) 160, and embedded memory 170.

[0056] Processor 130 can control the overall operation of the system-on-chip (SoC). For example, software (such as host applications and device drivers) for managing data related to write / read operations on storage devices can be loaded into host memory 101. By executing this software, processor 130 can manage data related to write / read operations. Host memory 101 can be implemented as volatile or non-volatile memory and may contain volatile memory such as dynamic random access memory (DRAM) and / or static RAM (SRAM).

[0057] The system-on-a-chip (SoC) may include a modem 140, a camera interface 150, a display interface 160, etc., and therefore can perform camera control operations, display control operations, communication operations, etc. Because the modem 140 is included in the interface... Figure 3 The AP in the diagram corresponds to the System-on-a-Chip (SoC), so the SoC can be called a Modem-on-AP (ModAP).

[0058] The host controller 110 can exchange packets with the storage device according to the above embodiments. The host controller 110 may include a packet manager (not shown) that generates and processes packets to be exchanged with the storage device. For example, the UFS Transport Protocol (UTP) engine defined in the UFS interface may include the functionality of the packet manager. In response to an access request generated on the host application layer of the system-on-chip (SoC), the host controller 110 can generate packets according to a specific interface adopted by the host and send the generated packets to the corresponding storage device among multiple storage devices. For example, the memory package may include first to Nth storage devices, and the host controller 110 may include N interface circuits corresponding to the first to Nth storage devices. Each of the N interface circuits may be a UFS Interconnect Layer (UIC).

[0059] Furthermore, host controller 110 may include synchronizer 111. Synchronizer 111 can control the sending of GC information and / or internal response Int_Resp provided by the source storage device to the destination storage device. Therefore, at least some of the first to Nth storage devices can perform GC operations synchronously with each other. For example, based on the control of synchronizer 111, some packets generated by the packet manager and sent to the corresponding storage devices may include GC information and / or internal response Int_Resp, while other packets generated by the packet manager and sent to the corresponding storage devices may not include GC information and / or internal response Int_Resp.

[0060] Figure 4 This is a block diagram illustrating an implementation example of a storage device according to an embodiment.

[0061] refer to Figure 4 The storage device may include a memory controller 200 and a memory core. The memory controller 200 may include a host interface I / F 210, a processor 220, RAM 230, a packet manager 240, a GC manager 250, and a memory I / F 260. Additionally, RAM 230 can be used as working memory, and the processor 220 can control the overall operation of the memory controller 200 by executing firmware loaded in RAM 230. RAM 230 can be implemented using various types of memory, such as DRAM, SRAM, and resistive memory devices. RAM 230 can also function as cache memory in the memory controller 200. The firmware may include a flash translation layer (FTL). The flash translation layer (FTL) can be loaded into RAM 230, and various functions related to flash memory operation can be performed through the FTL. The FTL may include background operation instructions executed in a background control module 231, whereby the processor 220 can control various types of background operations, including garbage collection operations on the memory core, by executing background operation instructions in the background control module 231.

[0062] Host interface 210 can send packets to and receive packets from the host. Packets may include GC information generated by the storage device. Packet manager 240 can generate packets based on a protocol agreed upon with the host, or extract various information from packets received from the host. When a GC operation of the storage device is triggered or executed, GC manager 250 can generate GC information and provide the generated GC information to packet manager 240. Furthermore, GC manager 250 can extract GC information (GC Info) from packets received from the host. When a storage device receives a packet containing GC information from another storage device, the storage device can synchronize its GC operations to the GC operations of the other storage device based on the GC information extracted from the packet.

[0063] The memory I / F 260 provides a physical connection between the memory controller 200 and the memory core. For example, the memory controller 200 can provide command / address and control signals to the memory core via the memory I / F 260 to control memory operations, including host I / O operations and internal I / O operations. Furthermore, write data and read data can be sent and received between the memory controller 200 and the memory core via the memory I / F 260.

[0064] Figure 5A , Figure 5B and Figure 5C This is a diagram illustrating examples of storage devices that transmit various forms of GC information.

[0065] refer to Figure 5A Storage devices can communicate with the host via UPIU through the UFS interface, and the information transmitted between storage devices also has a UPIU format according to the UFS interface standard. Storage devices can generate UPIUs as internal commands, and these internal commands include GC information. Furthermore, storage devices can generate UPIU-formatted packets for communication with the host, and include the UPIUs as internal commands in specific areas (e.g., the EHS area) of the packets to be sent to the host.

[0066] refer to Figure 5B Internal commands can be transferred between storage devices. For example, internal commands known as SCSI CMDs can be based on the SCSI interface standard. GC information can be included in commands based on the SCSI interface, and internal commands can be included in the EHS area of ​​packets sent to the host. Additionally, see reference... Figure 5C Storage devices can exchange information in payload PAYLOAD format, and GC information in payload PAYLOAD format can be included in the EHS area of ​​packets sent to the host. According to Figure 5A , Figure 5B and Figure 5C In one embodiment, a value indicating the format of information transmitted between storage devices may be included in a specific area (e.g., a header area) of a packet sent to a host.

[0067] Figure 6 This is a diagram illustrating a method for communicating GC information according to an embodiment. (Reference) Figure 6 The host communicates with the first storage device SD1 and the second storage device SD2, and the first storage device SD1 sends GC information to the second storage device SD2.

[0068] The host can exchange various commands and responses with the first storage device SD1 and the second storage device SD2 for data access. In order to collect garbage information from the first storage device SD1, the host can send the command CMD_UPIU to the first storage device SD1 (S111). The first storage device SD1 can respond to the received command CMD_UPIU by sending the response Resp_UPIU to the host (S112).

[0069] The first storage device SD1 can perform a write operation to write data to a free block in response to a request from the host. Therefore, the number of free blocks on the first storage device SD1 can be gradually reduced. The first storage device SD1 can set a first threshold, wherein a garbage collection (GC) operation is triggered when the number of free blocks falls below the first threshold. The first threshold can be a reference value used to determine when the first storage device SD1 triggers a GC operation. The first storage device SD1 can generate GC information and can include the generated GC information in the EHS area of ​​the RESP_UPIU response to be sent to the host. (See reference...) Figure 6 Information indicating the ratio of host input / output IO_H to internal input / output IO_I can be included in GC information. This ratio can be defined as performance information, indicating the speed of GC operations or the processing performance of host requests.

[0070] The GC information to be sent by the first storage device can be configured differently based on certain criteria. For example, when a GC operation is triggered and internal input / output IO_I is being processed, the first storage device SD1 can generate GC information accordingly and send it to the host. Alternatively, the GC information to be sent to the host can be configured to indicate that a GC operation is about to be triggered, rather than that a GC operation has been triggered, even when the number of free blocks on the first storage device SD1 is equal to or less than a first threshold, and not just when the number of free blocks is greater than the first threshold.

[0071] The second storage device SD2 can receive the command CMD UPIU from the host (S113) and extract GC information from the received command CMD UPIU. The second storage device SD2 can synchronize the second GC operation with the first GC operation of the first storage device SD1. Accordingly, the second storage device SD2 can trigger a GC operation even when the number of free blocks in the second storage device SD2 is not less than a first threshold. According to an embodiment, the second threshold can be set as a reference; below this reference, the second storage device SD2 can trigger a second GC operation to synchronize the second GC operation with the first GC operation of the first storage device SD1. The second threshold can be greater than the first threshold. Therefore, the second storage device SD2 performs the second GC operation based on the GC information from the first storage device SD1, and the second storage device SD2 can trigger the second GC operation when the number of free blocks in the second storage device SD2 is equal to or less than the second threshold. In addition, by referencing the GC information from the first storage device SD1, the second storage device SD2 can synchronize the GC speed or the processing performance of the host request (i.e., the performance of processing the host request) with the first storage device SD1. Therefore, based on the processing performance of the first storage device SD1, the second storage device SD2 can perform data access in response to the host's request.

[0072] According to an embodiment, the first storage device SD1 can begin executing a garbage collection (GC) operation at time point t, and can end the GC operation at time point t', when the number of free blocks becomes equal to or greater than a first threshold. Additionally, the second storage device SD2 can trigger a garbage collection operation when the number of free blocks is equal to or less than a second threshold, synchronizing the second GC operation with the first GC operation of the first storage device SD1. Therefore, when the number of free blocks is equal to or less than the second threshold at time point t, the second storage device SD2 can trigger a second GC operation. Although time points t and t' in each of the GC operations of the first storage device SD1 and the second storage device SD2 are shown as the same, these time points can be set differently in the first storage device SD1 and the second storage device SD2. For example, when the second storage device SD2 triggers a GC operation after receiving a command CMD_UPIU including GC information from the first storage device SD1, the triggering time of the GC operation of the second storage device SD2 can be delayed relative to time point t, wherein the time segments of the GC operations of the first storage device SD1 and the second storage device SD2 can overlap. Alternatively, the trigger and end times of the GC operation of the second storage device SD2 can be changed differently from the trigger and end times of the first storage device SD1.

[0073] Figure 7 This is a diagram illustrating an example of exchanging GC information between storage devices.

[0074] According to an embodiment, ID values ​​can be assigned to the host and each of the first storage device SD1 and the second storage device SD2. For example, ID values ​​corresponding to "0", "1", and "2" can be assigned to the host, the first storage device SD1, and the second storage device SD2, respectively. The host can send the command CMD UPIU to the first storage device SD1 (S121), and the first storage device SD1 can send the response RESP UPIU to the host (S122), and GC information can be included in the EHS area of ​​the RESP UPIU response. Additionally, the ID value of the destination storage device can be included in the header area of ​​the RESP_UPIU response. For example, an ID value corresponding to "2" indicating the second storage device SD2 can be included in the header area of ​​the RESP_UPIU response.

[0075] The host can extract GC information from the RESP_UPIU response and store the GC information GC Info in a queue within the host. The host can include the GC information in the CMD UPIU command to be sent to the second storage device SD2 (S123), and can also include an ID value corresponding to "1" in the header area of ​​the CMD UPIU command. The ID value corresponding to "1" can indicate the first storage device SD1. The first storage device SD1 sends a response UPIU including the GC information to the host, and the host can extract the GC information, include it in the command UPIU, and send the command UPIU to the second storage device SD2. The second storage device SD2 can extract the GC information from the received CMD UPIU command, and based on the extracted GC information, can perform GC operations synchronized with the first storage device SD1.

[0076] According to an embodiment, the second storage device SD2 can generate an internal response Int_Resp as a response to the command CMD UPIU based on the received GC information, and can send the generated internal response Int_Resp to the first storage device SD1 (S124). The second storage device SD2 can include the internal response Int_Resp in the response RESP UPIU in response to the command CMD UPIU from the host, and can include an ID value corresponding to "1" indicating the first storage device SD1 as the destination storage device in the header area of ​​the response RESP UPIU. The internal response Int_Resp can be implemented as a command in various forms, and can also be implemented as a payload.

[0077] The host may include the internal response Int_Resp in the command CMD_UPIU sent to the first storage device SD1 (S125), and may include the ID value corresponding to "2" of the second storage device SD2, which is the source storage device, in the header area of ​​the command CMD_UPIU. Additionally, the first storage device SD1 may send a response RESP UPIU to the host in response to the command CMD UPIU from the host (S126).

[0078] Figure 8 This is a block diagram of a storage system 300 according to an embodiment.

[0079] Storage system 300 may include host 310 and multiple storage devices, each of which may include a GC manager implemented within a memory controller and one or more memory devices (such as NAND memory). Furthermore, the multiple storage devices may exchange GC information with each other, and the GC information may be sent to a destination storage device via host 310.

[0080] The host 310 may include a synchronizer 311 and a storage circuit 312. The synchronizer 311 can manage the transmission of GC information between storage devices, and based on the control of the synchronizer 311, time information (Time Info) corresponding to the GC information can be stored in the storage circuit 312. For example, the time information (Time Info) may indicate the time point when the GC operation is triggered in the source storage device, or it may indicate the time point when the host 310 receives the GC information.

[0081] When GC information is sent to the destination storage device, the synchronizer 311 of the destination storage device can identify the Time Info corresponding to the GC information. The synchronizer 311 can evaluate the elapsed time from the time the GC information was generated to the current time or to the time the GC Info was sent, and compare the elapsed time with a predefined valid time. For example, if the elapsed time does not exceed the predefined valid time, the synchronizer 311 can include the GC information in the UPIU sent to the destination storage device. However, if the elapsed time exceeds the predefined valid time, the synchronizer 311 may not include the GC information in the UPIU sent to the destination storage device.

[0082] During the initial drive time of storage system 300, a predefined validity period, used as a reference for determining whether to send GC information, can be sent from the storage device to the host 310. For example, during the initial drive time of storage system 300, the storage device can send specific attributes, including information related to the drive environment, to the host 310. The host 310 can extract information related to the predefined validity period from the vendor-specific attributes and can store the extracted information in the host 310.

[0083] According to this embodiment, when a longer than a predefined valid time has elapsed after the source storage device sends GC information, the GC operation of the source storage device may have already completed, or the processing performance of the source storage device regarding host requests may have changed. Therefore, even if the destination storage device receives GC information from the source storage device and performs its GC operation synchronously with the source storage device's GC operation, the source and destination storage devices may not be able to guarantee a sufficient time interval for simultaneous GC operations, or their processing performance may not be accurately synchronized. Therefore, based on the comparison between the elapsed time and the predefined valid time, the transmission of GC information to the destination storage device can be selectively performed.

[0084] Figure 9 yes Figure 8 The flowchart shows an example of the operation of the storage system 300. Figure 9 The operations described herein can be performed by the host computer.

[0085] refer to Figure 9 The host can receive UPIU from the first storage device SD1 (S11) and determine whether GC information GC Info is included in the received UPIU (S12). When GC information GC Info is included, the host can store the GC information and time information Time Info in the host's storage circuit (S13).

[0086] Subsequently, the host can determine whether a UPIU to be sent to the second storage device SD2 is stored (S14), and then determine whether GC information to be sent to the second storage device SD2 is stored (S15). When GC information to be sent to the second storage device SD2 is stored, the host can determine whether the elapsed time is less than a predefined valid time by referring to the Time Info corresponding to the GC information (S16). When the elapsed time is less than the valid time, the host can send the UPIU containing the GC information to the second storage device SD2 (S17).

[0087] On the other hand, when the GC information GC Info to be sent to the second storage device SD2 is not stored, or when the elapsed time is not less than the predefined valid time, the host can send the UPIU without GC information to the second storage device SD2 (S18).

[0088] Figure 10 This is a block diagram illustrating an example of the operation of a storage system 400 according to an embodiment. (See reference...) Figure 10 Host 410 illustrates the operation of the host controller. The storage and fetch operations of GC information and internal response Int_Resp can be controlled by synchronizer 411 according to the above embodiment, and the time information Time Info corresponding to the GC information can be stored in storage circuit 412.

[0089] refer to Figure 10 The storage system 400 may include a host 410 and first storage devices 421_1 to Nth storage devices 421_N, i.e., storage device 1 421_1 to storage device N 421_N. Additionally, the host 410 may include a first queue 413 storing GC information received from the storage devices and a second queue 414 storing internal responses Int_Resp received from the storage devices.

[0090] When storage device 1 421_1 sends GC information, storage device 1 421_1 can receive the command CMD_UPIU from host 410 and send the response RESP_UPIU to host 410. The response RESP_UPIU can include GC information in the EHS area of ​​the response RESP_UPIU sent to host 410. Host 410 can store the received GC information in a first queue 413. Host 410 can further extract time information Time Info indicating the time point when the GC information has been received and store the extracted time information Time Info in storage circuit 412. Host 410 can retrieve the GC information stored in the first queue 413 and include the retrieved GC information in the EHS area of ​​the command CMD_UPIU to send it to at least one of the second storage device 421_2 to the Nth storage device 421_N. Host 410 can also determine whether to include GC information in the command CMD_UPIU based on a comparison between the elapsed time and a predefined valid time.

[0091] The header area of ​​the UPIU exchanged between host 410 and the first storage device 421_1 to the Nth storage device 421_N may include an ID value indicating the destination storage device to which GC information is to be sent. The ID value corresponding to each storage device may be stored in each storage device, and the ID values ​​of one or more storage devices may be included in the UPIU. For example, when GC information is sent from the first storage device 421_1 to two or more storage devices, two or more ID values ​​may be included in the header area of ​​the UPIU.

[0092] Furthermore, GC information from the first storage device 421_1 can be broadcast to all other storage devices included in the memory package 420, and an ID value is set to indicate that the GC information is broadcast to all other storage devices. Alternatively, when an ID value indicating a specific storage device is included in the header area of ​​the UPIU, GC information from storage device 1 421_1 is sent to the specific storage device from the second storage device 421_2 to the Nth storage device 421_N, and when a preset ID value indicating the destination storage device is included in the header area of ​​the UPIU, GC information is sent to the corresponding storage device from the second storage device 421_2 to the Nth storage device 421_N. The destination storage device can synchronize GC operations with the GC operations of the first storage device 421_1.

[0093] Furthermore, the storage devices 421_2 through 421_N that have received GC information can send a response RESP UPIU, including the internal response Int_Resp, to the host 410, and the internal response Int_Resp can be stored in the second queue 414. The internal response Int_Resp can be retrieved from the second queue 414, and the retrieved internal response Int_Resp can be included in the EHS area of ​​the command CMD_UPIU to be sent to the first storage device 421_1.

[0094] Figure 11A , Figure 11B and Figure 11C This is a table of implementation examples of UPIU according to the embodiments. Figure 11A , Figure 11B and Figure 11C The fields of UPIU shown correspond to the fields defined in the UFS interface standard.

[0095] Figure 11AThe header area and EHS area of ​​the UPIU are shown. The header area of ​​the RESP UPIU response includes several fields, such as a transaction type field, a LUN field indicating the Logical Unit Number (LUN) to which the request is directed, a task tag field related to the task request, a device information field indicating device-level information, a total EHS length field indicating the size of the EHS area, and a data segment length field indicating the number of valid bytes in the UPIU's data segment. GC information, according to embodiments of the present invention, may be included in the EHS area.

[0096] Some fields in the UPIU header area may correspond to reserved areas. According to embodiments, the ID values ​​indicating the destination storage device and / or source storage device may be included in the UPIU header area. For example, the ID values ​​may be included in reserved areas. Additionally, although... Figure 11A The value indicating the format of GC information may be included in a reserved area of ​​the UPIU header region, though it is not shown in the table.

[0097] Figure 11B An example of the EHS region of a UPIU is shown, and the EHS region can include an EHS header region and an EHS data region. GC information and internal responses transferred between storage devices can be included in the EHS data region of the EHS region. For example, the EHS region can be 32 bytes in size, and the EHS header region can be 4 bytes in size. The remaining 28 bytes of the EHS region can correspond to the EHS data region. Each field in the EHS header region can include values ​​of various types. For example, the fields in the EHS header region can include a bLength field storing a value indicating the size of the EHS data region, a bEHSType field indicating the type of information stored in the EHS data region, and a wEHSSubType field.

[0098] refer to Figure 11C The bEHSType field stores values ​​indicating the format and characteristics of information stored in the EHS data area. For example, according to an embodiment, some values ​​defined in the bEHSType field (e.g., 80h to FFh) may correspond to vendor-unique values, and some of these vendor-unique values ​​may be associated with GC information.

[0099] For example, a value of 80h in the bEHSType field can indicate that the information stored in the EHS data area is related to GC operations, and detailed GC information (GC Info) related to GC operations can be stored in the EHS data area. Information indicating the ratio of host I / O IO_H operations to internal I / O IO_I operations, information about the number of free blocks, etc., can also be included in the EHS data area. The destination storage device can determine that the source storage device is performing GC operations based on the values ​​stored in the EHS area, determine the storage device's processing performance regarding host requests, and synchronize the GC operations to the source storage device. Figure 11C As shown, the value defining the GC operation can be set in the vendor-unique value of the bEHSType field. Additionally, values ​​indicating various operations (such as garbage collection and wear leveling operations) can be defined in the vendor-unique value.

[0100] Figures 12 to 14 , Figure 15A and Figure 15B This is a diagram illustrating an example of the operation of a storage system according to an embodiment.

[0101] Figure 12 An example is shown where a storage device that has received GC information determines whether to perform a GC operation. For example, the storage device may be under various different conditions, and when it receives GC information from another storage device, it may determine, based on various conditions, whether to perform the GC operation synchronously with the GC operation of the other storage device or to skip the GC operation.

[0102] For example, the storage device can receive a UPIU including GC information (S21) and can identify whether the storage device is in an emergency state (S22). When the storage device is identified as not in an emergency state, the storage device can consider one or more conditions to determine whether to execute the GC operation included in the command UPIU. For example, one or more conditions may include a reclamation operation. The storage device can perform this reclamation operation, in which the storage device can copy data stored in a specific block to be erased to become a free block to another block. To best protect the reliability of the data, the reclamation operation should be performed without interference from other operations. Therefore, when the storage device is performing a reclamation operation, the storage device may not perform a GC operation, regardless of the GC information included in the UPIU received from another storage device (S23).

[0103] Furthermore, the storage device can calculate a write amplification factor (WAF) value. The WAF value indicates the ratio of the amount of data programmed into the storage device's NAND memory to the amount of data provided to the storage device by the host. For example, the WAF value is smaller when a background operation performs a data write operation unrelated to a request from the host. Conversely, when the size of the data provided by the host (e.g., the request unit) is smaller than the write unit of the storage device, the amount of data to be programmed into the NAND memory can become larger compared to the amount of data provided by the host, resulting in an increase in the WAF value. Moreover, the WAF value may increase due to various reasons within the storage device. When the storage device's WAF value is large, the frequency of I / O operations used to process requests from the host may decrease, and therefore, the processing performance of data access based on host requests may deteriorate. To prevent performance degradation due to a large WAF value, when the storage device's WAF value is greater than a first reference value, the storage device can skip GC operations without considering the GC information included in the UPIU received from another storage device (S24).

[0104] Furthermore, the storage device can count the number of programming / erase cycles, and the lifespan of the storage device can decrease as the number of programming / erase cycles increases. Because GC operations require additional programming / erase cycles in the storage device, when the number of programming / erase cycles exceeds a second reference value, the storage device can determine to skip the GC operation, regardless of the GC information included in the UPIU received from another storage device (S25). Additionally, when the storage device contains many free blocks, it may be difficult to secure additional free blocks, or it may not be necessary to secure additional free blocks. Therefore, when the number of free blocks in the storage device exceeds a third reference value, the storage device can determine to skip the GC operation, regardless of the GC information included in the UPIU received from another storage device (S26).

[0105] According to an embodiment, when at least one of the above conditions is met, the storage device can determine to skip the GC operation, regardless of the GC information included in the UPIU received from another storage device. For example, the storage device can compare the WAF value with a first reference value (S24), the erase cycle with a second reference value (S25), and the number of free blocks with a third reference value (S26) to determine whether to skip the GC operation. When the WAF value is greater than the first reference value, the erase cycle is greater than the second reference value, or the number of free blocks is greater than the third reference value, the GC operation can be skipped (S28). When the above conditions are not met, the storage device can determine to perform the GC operation based on the GC information included in the UPIU received from another storage device (S27).

[0106] Despite Figure 12 Some conditions are shown, but the inventive concept is not limited thereto. Any one or some of the conditions may be applied, or alternative conditions may be applied. Figure 12 Other conditions, not shown, determine whether a storage device performs a GC operation synchronously with the GC operation of another storage device.

[0107] Figure 13 This demonstrates the characteristics of host request processing performance that are tuned during GC operations.

[0108] The host can frequently exchange UPIUs for data access with the first storage device SD1 and the second storage device SD2, such as... Figure 14 As shown. Although the command CMD_UPIU and response RESP_UPIU are shown, other types of UPIUs can also be transmitted. The host can send the command CMD_UPIU to the first storage device SD1 and the second storage device SD2, and receive the response RESP_UPIU from the first storage device SD1 and the second storage device SD2. When a GC operation is triggered in the first storage device SD1, the first storage device SD1 can send the response RESP UPIU, which includes first GC information, to the host (S131). The first GC information is also referred to as GC Info 1. In addition, the host can send the command CMD UPIU, which includes the first GC information, to the second storage device SD2 (S132). The second storage device SD2 can process the host request according to the first processing performance Perf.1 while processing the GC operation based on the first GC information (S133).

[0109] The first storage device SD1 may include second GC information (also known as GC Info 2) in the next response RESP UPIU to be sent to the host (S134), and the host may send a command CMD UPIU including the second GC information to the second storage device SD2 (S135). As processing performance changes in the first storage device SD1, the second GC information may include information different from the first GC information, and the second storage device SD2 may change the processing performance requested by the host to a second processing performance PEf.2 while performing a GC operation (S136). Similarly, the first storage device SD1 may send a response RESP UPIU including third GC information (also known as GC Info 3) to the host (S137), and the host may send a command CMD UPIU including the third GC information GC Info 3 to the second storage device SD2 (S138). When performing a GC operation, the second storage device SD2 may change the processing performance requested by the host to a third processing performance PEf.3 (S139).

[0110] Figure 14 This is a flowchart of a GC operation synchronized with other storage devices. For example, the second storage device SD2 can perform a GC operation based on GC information received from the first storage device SD1.

[0111] The second storage device SD2 can also enter GC mode (S31), and calculate the target number of free blocks (S32), which indicates the number of free blocks that need to be generated in GC mode. For example, the number of free blocks consumed during a predetermined time period can correspond to the target number of free blocks.

[0112] Based on whether GC information has been received from the first storage device SD1, the second storage device SD2 can determine whether the GC mode is synchronous GC mode, in which GC operations are performed synchronously with the GC operations of the first storage device SD1 (S33). When the GC mode is not synchronous GC mode, the second storage device SD2 can select the source block that the second storage device SD2 can use to secure free blocks based on the number of target free blocks during a predetermined time period while performing GC operations (S34).

[0113] On the other hand, when the GC mode is synchronous GC mode, the second storage device SD2 can select two or more source blocks with the least amount of valid data (S36). Furthermore, while performing GC operations, the performance of the second storage device SD2 (e.g., host request processing speed or GC operation speed) can be synchronized with the performance of the first storage device SD1. When the performance of the first storage device SD1 is lower than that of the second storage device SD2, the second storage device SD2 can generate more free blocks than the calculated target number of free blocks while performing GC operations (S37). For example, the second storage device SD2 can reduce its performance to synchronize with the performance of the first storage device SD1, and can perform GC operations at a faster speed than the GC speed used to generate free blocks corresponding to the target number of free blocks. Moreover, when performing GC operations on source blocks containing a small amount of valid data, the second storage device can ensure a greater number of free blocks than the target number of free blocks (S37).

[0114] The second storage device SD2 can perform GC operations based on GC information received sequentially from the first storage device SD1, and can change the GC speed based on the received GC information. Therefore, the second storage device can determine whether GC information has been received (S38), and when it is determined that GC information has been received, it can maintain synchronous GC mode (S39). On the other hand, when it is determined that no GC information GC Info has been received, the second storage device SD2 can further determine whether the time period for which synchronous GC mode has been maintained exceeds a predetermined reference time (S40). When the time period for which synchronous GC mode has been maintained does not exceed the reference time, synchronous GC mode can be maintained. On the other hand, when the time period for which synchronous GC mode has been maintained exceeds the reference time, synchronous GC mode can be terminated (S41).

[0115] According to one embodiment, the second storage device SD2 can acquire a large number of free blocks in synchronous GC mode, and therefore can process host requests at a high performance level after synchronous GC mode is completed without entering GC mode for a sufficient period of time. Furthermore, although GC information is not continuously received from the first storage device SD1, a sufficient number of free blocks can be acquired by maintaining synchronous GC mode for a predetermined reference time. Moreover, because synchronous GC mode is maintained for the predetermined reference time, unnecessary entry / exit from synchronous GC mode within short periods can be prevented. According to one embodiment, the overall performance of the system employing the storage devices can be improved due to the increased time segment for host requests to be processed at a high performance level and the increased time segment for the first storage device SD1 and the second storage device SD2 to perform GC operations in parallel.

[0116] Figure 15A and Figure 15B Examples of embodiments of the inventive concept applied to different background operations (such as wear leveling GC operations) are shown.

[0117] Storage devices can perform wear leveling operations to uniformly control block lifetimes by controlling the erase counts of blocks within the storage device. A wear leveling GC operation can be an example of a wear leveling operation, where it selects source blocks with relatively low erase counts and target blocks with relatively high erase counts. According to embodiments of the present invention, multiple storage devices can exchange GC information related to wear leveling GC operations, and one storage device can perform wear leveling GC operations synchronously with the GC operations of another storage device.

[0118] For example, the storage device can evaluate erase count gaps, where the erase count gap indicates the difference between the erase count of the block that was erased the most and the erase count of the block that was erased the least. When the difference exceeds a predetermined threshold, a wear-leveling GC operation can be triggered. For example, when the first storage device SD1 triggers a wear-leveling GC operation, the first storage device SD1 can send a UPIU including GC information related to the wear-leveling GC operation to the host, and the host can send a UPIU including the GC information to the second storage device SD2.

[0119] like Figure 15A As shown, the GC information may include information related to the wear leveling GC operation of the first storage device SD1, such as erase count gaps, which may be included in the GC information. Based on the GC information received from the first storage device SD1, the second storage device SD2 may trigger a wear leveling GC operation synchronously with the GC operation of the first storage device SD1, even when the erase count gap of the second storage device SD2 does not exceed a threshold.

[0120] Figure 15B An example of GC information included in the EHS area is shown. For example, a value indicating a GC operation can be defined in the bEHSTtype field, and various information can be included in the EHS data area, such as the ratio of host input / output IO_H to internal input / output IO_I, the type of GC operation (e.g., wear leveling GC operation), the number of free blocks in the first storage device SD1, and the erase count interval.

[0121] According to an embodiment, storage devices can perform various background operations synchronously with the background operations of another storage device. For example, the second storage device SD2 can uniformly control block lifespan by performing wear-leveling GC operations synchronously with the GC operations of the first storage device SD1. Furthermore, because the first storage device SD1 can refrain from performing wear-leveling GC operations for a sufficient period of time after performing synchronous wear-leveling GC operations, the first storage device SD1 and the second storage device SD2 can ensure sufficient time intervals during which both the first storage device SD1 and the second storage device SD2 perform operations for processing requests from the host at a high performance level.

[0122] Figure 16 This is a diagram of a UFS system 1000 according to an embodiment. The UFS system 1000 may correspond to the storage system described above, and as a system conforming to the UFS standard published by the Joint Electronic Equipment Committee (JEDEC), it may include a UFS host 1100, a UFS device 1200, and a UFS interface 1300. Furthermore, the UFS device 1200 may include the aforementioned storage device.

[0123] Reference Figure 16 UFS host 1100 can be interconnected to UFS device 1200 via UFS interface 1300. UFS host 1100 may include UFS host controller 1110, application 1120, UFS driver 1130, host memory 1140, and UFS interconnect (UIC) layer 1150. UFS device 1200 may include UFS device controller 1210, non-volatile memory (NVM) 1220, storage interface (I / F) 1230, device memory 1240, UIC layer 1250, and regulator 1260. NVM 1220 may include multiple memory cells. Storage interface I / F 1230 may be implemented to conform to standards specifications such as Toggle and open NAND flash interface (ONFI).

[0124] Application 1120 may store programs for communicating with UFS device 1200 to utilize the functionality of UFS device 1200. Application 1120 may send input / output requests to UFS drive 1130 in response to input / output operations concerning UFS device 1200. Input / output requests may include, but are not limited to, data read requests, write requests, erase requests, etc.

[0125] UFS drive 1130 can control UFS host controller 1110 via UFS-Host Controller Interface (HCI). UFS drive 1130 can translate input / output requests generated by application 1120 into UFS commands defined by the UFS standard and transmit the translated UFS commands to UFS host controller 1110. One input / output request can be translated into multiple UFS commands. UFS commands can include commands defined by the Small Computer System Interface (SCSI) standard, but can also include commands specific to the UFS standard.

[0126] UFS host controller 1110 can send UFS commands translated by UFS driver 1130 to UIC 1250 of UFS device 1200 via UIC 1150 and UFS interface 1300. In this process, UFS host register 1111 of UFS host controller 1110 can be used as command queue (CQ).

[0127] The UIC 1150 on the UFS host 1100 side may include MIPI M-PHY 2151 and MIPI UniPro 1152, and the UIC 1250 on the UFS device 1200 side may include MIPI M-PHY 2151 and MIPI UniPro 1152.

[0128] The UFS interface 1300 may include a line for transmitting a reference clock REF_CLK, a line for transmitting a hardware reset signal RESET_n for the UFS device 1200, a line pair for transmitting differential input signal pairs DIN_T and DIN_C, and a line pair for transmitting differential output signal pairs DOUT_T and DOUT_C.

[0129] The frequency value of the reference clock REF_CLK provided by the UFS host 1100 to the UFS device 1200 can include one of four values: 19.2 MHz, 26 MHz, 38.4 MHz, or 52 MHz, but is not limited to these. During operation, even when data exchange is performed between the UFS host 1100 and the UFS device 1200, the UFS host 1100 can change the frequency value of the reference clock REF_CLK. By using a phase-locked loop (PLL) or similar means, the UFS device 1200 can generate various frequency clocks from the reference clock REF_CLK provided by the UFS host 1100. Furthermore, the UFS host 1100 can also set the data rate value between the UFS host 1100 and the UFS device 1200 by using the frequency value of the reference clock REF_CLK. Accordingly, the data rate value can be determined based on the frequency value of the reference clock REF_CLK.

[0130] The UFS interface 1300 can support multiple channels, and each channel can be implemented as a differential pair. For example, the UFS interface may include one or more receive channels and one or more transmit channels. Figure 16 In this configuration, the wire pairs for transmitting differential input signals DIN_T and DIN_C can form a receiving channel, and the wire pairs for transmitting differential output signals DOUT_T and DOUT_C ​​can form a transmitting channel. Figure 16 The diagram shows one transmit channel and one receive channel, but the number of transmit and receive channels may not be limited to one.

[0131] The receive and transmit channels can transmit data serially, and by using a structure where the receive and transmit channels are separate, full-duplex communication between the UFS host 1100 and the UFS device 1200 is possible. Therefore, even when receiving data from the UFS host 1100 via the receive channel, the UFS device 1200 can still transmit data to the UFS host 1100 via the transmit channel. Furthermore, control data (such as commands from the UFS host 1100 to the UFS device 1200) and user data intended to be stored in or read from the NVM 1220 of the UFS device 1200 by the UFS host 1100 can be transmitted via the same channel. Accordingly, separate channels are not required between the UFS host 1100 and the UFS device 1200 for data transmission, other than the receive and transmit channel pairs.

[0132] The UFS device controller 1210 of the UFS device 1200 can control the overall operation of the UFS device 1200. The UFS device controller 1210 can control the NVM 1220 using logical units LU 1211, which are logical data storage units. The number of LU 1211 can be eight, but is not limited to this. The UFS device controller 1210 may include a flash translation layer (FTL), and by using the address mapping information of the FTL, it can translate logical data addresses (e.g., logical block addresses (LBAs)) transmitted by the UFS host 1100 into physical data addresses (e.g., physical block addresses (PBAs)). In the UFS system 1000, logical blocks used to store user data can have a specific range of sizes. For example, the minimum size of a logical block can be 4KB. Furthermore, a GC manager 1212 for preparing and processing GC information can be included in the UFS device controller 1210. Additionally, the UFS device controller 1210 can control GC operations on the NVM 1220 by synchronizing with the GC operations of external storage devices.

[0133] When a command from UFS host 1100 is input to UFS device 1200 via UIC 1250, UFS device controller 1210 can perform operations according to the input command, and when the operation is completed, it can send a completion response to UFS host 1100.

[0134] UFS host 1100 can store commands to be sent to UFS device 1200 in UFS host register 1111, which can be used as a command queue, and these commands can be sent to UFS device 1200 sequentially. Accordingly, when a message is received indicating that processing of a previously sent command has been completed, or even while a previously sent command is still being processed by UFS device 1200, UFS host 1100 can send the next command waiting in the command queue to UFS device 1200, and accordingly, UFS device 1200 can receive the next command from UFS host 1100, even while a previously sent command is being processed. The maximum number of commands to be stored in the command queue (which may be referred to as the queue depth) can be, for example, 32. Furthermore, the command queue can be implemented as a circular queue type, where the start and end of the command column stored in the queue are indicated by head pointers and tail pointers, respectively.

[0135] In UFS device 1200, VCC, VCCQ, and VCCQ2 can be power supply voltages. VCC can have a value of 2.4 V to 3.6 V as the main power supply voltage. VCCQ2 can primarily provide a power supply voltage for the UFS device controller 1210 as a voltage supply for a low range of voltages, and can have a value of 1.14 V to 1.26 V. VCCQ2 can primarily provide a power supply voltage for input-output interfaces such as MIPI M-PHY 1251 as a voltage supply below VCC but above VCCQ, and can have a value of 1.7 V to 1.95 V. Power supply voltages can be provided to each component of UFS device 1200 via regulator 1260. Regulator 1260 can be implemented as a combination of unit regulators connected to the different power supply voltages described above.

[0136] While the inventive concept has been specifically shown and described with reference to embodiments thereof, it should be understood that various changes in form and detail may be made therein without departing from the spirit and scope of the appended claims.

Claims

1. A method for operating a storage system, wherein, The storage system includes a first storage device and a second storage device, and the first storage device and the second storage device are configured to communicate with a host. The method includes: Trigger the first garbage collection (GC) operation in the first storage device; The first storage device sends first data, including GC information related to the first GC operation, to the host. The second storage device receives second data, including the GC information, from the host; and The GC information is extracted from the second data, and based on the GC information, a second GC operation is performed on the memory device in the second storage device in sync with the first GC operation of the first storage device.

2. The method according to claim 1, wherein, The first storage device and the second storage device communicate with the host according to the Universal Flash Storage Interface (UFS) standard, wherein the first data is a response UFS Protocol Information Unit (UPIU), and the second data is a command UPIU sent by the host.

3. The method according to claim 2, wherein, Each of the first data and the second data includes a header area and an additional header segment (EHS) area defined by the UFS interface standard, and wherein the GC information included in the second data is extracted from the EHS area.

4. The method according to claim 3, wherein, The header area of ​​the first data includes a field that stores an identifier ID value that identifies the second storage device as the destination storage device.

5. The method according to claim 1, wherein, The GC information includes first information indicating the execution ratio of internal input / output I / O operations related to the first GC operation and host I / O operations related to processing requests from the host, wherein both the internal I / O operations and the host I / O operations are performed in the first storage device, and wherein the second storage device sets the execution speed of the second GC operation performed in the second storage device based on the first information.

6. A method of operating a storage device configured to communicate with a host, the method comprising: Receive first data from the host; Extract background information from the received first data, the background information being generated in an external storage device and relating to a first background operation performed in the external storage device; and Based on the background information, a second background operation is triggered on one or more memory devices included in the storage device. The storage device processes requests from the host according to a performance level set based on the background information during the time interval from triggering the second background operation to completing the second background operation.

7. The method according to claim 6, wherein, The background information includes GC information indicating that a first garbage collection (GC) operation is being performed on the external storage device, and wherein the storage device performs a second GC operation on the one or more memory devices based on the GC information.

8. The method according to claim 7, wherein, The GC information includes first information indicating a first execution ratio of internal input / output I / O operations related to the first GC operation performed in the external storage device and host I / O operations related to processing requests from the host, wherein the storage device processes requests from the host according to a second execution ratio set based on the first information.

9. The method according to claim 8, wherein, The storage device determines the performance level of the external storage device for processing requests from the host based on the first information, and when the performance level of the storage device is lower than that of the external storage device, the storage device does not trigger the background operation corresponding to the background information.

10. The method according to claim 6, wherein, The background information includes first information indicating the execution ratio of internal input / output I / O operations related to the first background operation and host I / O operations related to processing requests from the host, wherein both the internal I / O operations and the host I / O operations are performed in the external storage device, and wherein the storage device sets the execution speed of the background operation based on the first information.

11. The method according to claim 6, wherein, The storage device performs communication with the host according to the Universal Flash Storage UFS Interface standard, and wherein the first data is a Command UFS Protocol Information Unit (UPIU) defined by the UFS Interface standard.

12. The method of claim 11, further comprising: An internal response is generated in response to the receipt of the background information. and The internal response is included in the response UPIU sent to the host in response to the receipt of the command UPIU.

13. The method according to claim 11, wherein, The first data includes a header area and an additional header segment (EHS) area as defined in the UFS interface standard, wherein the background information is extracted from the EHS area.

14. A storage device, comprising: Non-volatile memory devices; and The memory controller is configured to exchange data with the host in UFS Protocol Information Unit (UPIU) format according to the Universal Flash Memory Interface (UFS) standard. The memory controller includes: A packet manager is configured to process first data received from the host and generate second data to be sent to the host. and A garbage collection (GC) manager is configured to extract GC information from the first data, generated by an external storage device and indicating that a first GC operation is being performed on the external storage device. The memory controller is configured to trigger a second GC operation on the memory device in sync with the first GC operation on the external storage device, based on the GC information.

15. The device according to claim 14, wherein, The GC information includes first information indicating the execution ratio of internal input / output I / O operations related to the first GC operation performed in the external storage device and host I / O operations related to processing requests from the host, wherein, during the time interval from triggering the GC operation to completing the GC operation, the storage device processes requests from the host according to a first performance level set based on the first information.

16. The device according to claim 15, wherein, The storage device processes the request from the host based on the GC information extracted from third data received sequentially from the host after the first data, and on a second performance level different from the first performance level.

17. The device according to claim 15, wherein, The storage device determines the performance level of the external storage device for processing requests from the host based on the first information, and does not trigger the GC operation in response to the GC information when the performance level of the storage device is lower than that of the external storage device.

18. The device according to claim 14, wherein, The first data includes a header area and an additional header segment (EHS) area defined by the UFS interface standard, wherein the GC information is extracted from the EHS area.

19. The device according to claim 14, wherein, When the number of free blocks in the storage device decreases to less than a threshold and triggers the GC operation, the GC manager is configured to generate GC information indicating that the GC operation is being performed in the storage device, and wherein the packet manager includes the GC information generated by the GC manager in the second data.

20. The device according to claim 14, wherein, The second GC operation of the storage device, which is executed synchronously with the GC operation of the external storage device, overlaps with at least a portion of the first GC operation of the external storage device.

Citation Information

Patent Citations

  • Feed additive composition for ruminants

    KR1020240175824A