Storage device communicating with external storage device via host and method of operating same
By introducing a packet management circuit into the storage device, using the UFS interface to realize communication between storage devices, the problem of low efficiency and performance of storage device communication management in the prior art is solved, and efficient storage device communication is achieved.
Patent Information
- Application Number
- CN202411266648.3
- Authority / Receiving Office
- CN · China
- Patent Type
- Applications(China)
- Current Assignee / Owner
- Priority Date
- 2024-01-09
- Filing Date
- 2024-09-11
- Publication Date
- 2025-03-21
AI Technical Summary
When existing storage devices communicate between storage devices, their management efficiency and performance are low, and there is a lack of effective interface circuits to achieve efficient communication.
By introducing a packet management circuit into the storage device, communication with the host is performed using a universal flash memory (UFS) interface, and communication between storage devices is achieved without adding a separate interface circuit.
The communication management efficiency and performance between storage devices are improved, and the implementation area and manufacturing complexity of storage devices are reduced.
Smart Images

Figure CN119668497A_ABST
Abstract
Description
[0001] CROSS-REFERENCE TO RELATED APPLICATIONS
[0002] This application claims the priority of Korean Patent Application No. 10-2023-0126409 filed on September 21, 2023, and Korean Patent Application No. 10-2024-0003845 filed on January 9, 2024, in the Korean Intellectual Property Office, the disclosures of which are incorporated herein by reference in their entirety. Technical Field
[0003] The present disclosure relates to a storage device and an operating method of the storage device, and more particularly, to a storage device that communicates with an external storage device and an operating method of the storage device. Background Art
[0004] Non-volatile memory can retain stored data even when power is off. Storage devices including flash-based non-volatile memory such as embedded multimedia card (eMMC), universal flash storage (UFS), solid-state drive (SSD), memory card, etc. are widely used and can be used to store or move large amounts of data.
[0005] A data processing system including a storage device may be referred to as a storage system, and a storage system may include a host and one or more storage devices. The host and the storage device may be connected to each other through various interface standards, and may communicate with each other using packets formatted according to the interface. An improved method of communicating various information between storage devices is needed to provide improved management efficiency and performance. Summary of the invention
[0006] One or more example embodiments provide a storage device having improved management efficiency and performance in an environment including a plurality of storage devices by enabling communication between storage devices without adding a separate interface circuit to the storage device, and an operating method of the storage device.
[0007] According to aspects of an example embodiment, an operating method of a storage device that communicates with a host includes: receiving a first packet from the host; sending a second packet to the host in response to the first packet, wherein the second packet includes first information to be provided to an external storage device and a device ID value indicating the external storage device; and receiving a third packet from the host, wherein the third packet includes second information generated by the external storage device.
[0008] According to another aspect of an example embodiment, a storage device includes: a nonvolatile memory core configured to store data; and a memory controller configured to communicate with a host according to a universal flash storage (UFS) interface and including a packet management circuit configured to generate a first packet corresponding to a UFS protocol information unit (UPIU) and process a second packet received from the host. The memory controller is further configured to: send a first UPIU to the host, the first UPIU including first information to be provided to an external storage device, and receive a second UPIU from the host, the second UPIU including second information provided from the external storage device.
[0009] According to another aspect of an example embodiment, a storage device includes: a nonvolatile memory core configured to store data; and a memory controller configured to control the storage device to send a transmission packet corresponding to a UPIU to a host, and to receive a reception packet from the host according to a UFS interface. The memory controller includes: a UFS storage device interface configured to generate first information to be provided to an external storage device and a device ID indicating the external storage device; a transport protocol layer (UTP) protocol engine configured to generate a first UPIU including the first information and the device ID; and a UFS interconnect layer configured to send the first UPIU to the host. BRIEF DESCRIPTION OF THE DRAWINGS
[0010] The above and other aspects and features will become more apparent through the following description of example embodiments in conjunction with the accompanying drawings, in which:
[0011] Figure 1 is a block diagram of a storage system according to an example embodiment;
[0012] Figure 2 is a block diagram of a host according to an example embodiment;
[0013] Figure 3 is a block diagram of a storage device according to an example embodiment;
[0014] Figure 4 is a block diagram of a storage system applying a Universal Flash Storage (UFS) interface according to an example embodiment;
[0015] Figures 5 to 7 is a flowchart illustrating an operating method of a storage device according to an example embodiment;
[0016] Figure 8 A case where a storage device according to an example embodiment performs communication in an internal command / internal response format is shown;
[0017] Fig. 9 A storage system according to an example embodiment is shown;
[0018] Fig.10 and Fig.11 is a diagram of a storage device that communicates information in the form of a payload according to an example embodiment;
[0019] Fig.12 and Fig.13 is a diagram showing that an internal command communicated between storage devices according to an example embodiment is included in an additional header segment of a UFS protocol information unit (UPIU);
[0020] Fig.14A , Fig. 14B , Fig.15A , Fig. 15B , Fig.16A and Fig. 16B is a diagram illustrating a device ID field added to various UPIUs defined in a UFS interface according to an example embodiment;
[0021] Fig.17A and Fig. 17B is a diagram illustrating values indicating a format of information communicated by a storage device included in a UPIU according to an example embodiment; and
[0022] Figures 18 to 24 is a diagram illustrating communication between storage devices in various situations according to an example embodiment. DETAILED DESCRIPTION
[0023] Hereinafter, example embodiments will be described with reference to the accompanying drawings. Throughout the specification, the same components are represented by the same reference numerals, and their repeated description is omitted. The embodiments described herein are example embodiments, and therefore, the present disclosure is not limited thereto, and may be implemented in various other forms. Each example embodiment provided in the following description does not exclude association with one or more features of another example or another example embodiment that is also provided herein or is not provided herein but is consistent with the present disclosure.
[0024] Figure 1 is a block diagram of a storage system according to an example embodiment.
[0025] refer to Figure 1, the storage system 10 may include a host 11 and one or more storage devices, and as an example, a first storage device 13 and a second storage device 14 are shown. In the example, the first storage device 13 and the second storage device 14 may be implemented in different semiconductor chips and may be mounted on one memory package 12. In addition, 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), and the memory controller may perform access to the memory core according to a request of the host 11. The memory controller and the memory device may be implemented in the same semiconductor chip, or may be implemented in different semiconductor chips. In terms of including a memory controller and a memory device, each of the first storage device 13 and the second storage device 14 may also be referred to as a memory system.
[0026] Regarding communication between the host 11 and the first storage device 13 and the second storage device 14, the storage system 10 can use various types of interfaces, and as an example, the storage system 10 can use various interfaces, such as Universal Serial Bus (USB), MultiMediaCard (MMC), embedded MMC (eMMC), Peripheral Component Interconnect (PCI), PCI-express (PCI-E), Advanced Technology Attachment (ATA), Serial-ATA, Parallel-ATA, Minicomputer Small Form Factor Interface (SCSI), Enhanced Small Disk Interface (ESDI), Integrated Drive Electronics (IDE), FireWire, Non-Volatile Memory Express (NVMe), Universal Flash Storage (UFS), etc.
[0027] According to an example embodiment, the memory package 12 may be implemented as a memory that may be built into or removed from an electronic device, and for example, the memory package 12 may be implemented in various forms, such as a UFS memory device, an eMMC, a solid-state drive (SSD), a UFS memory card, a compact flash (CF), a secure digital (SD), a micro SD, a mini SD, an extreme digital (xD), a memory stick, or the like.
[0028] In an example embodiment, the memory device of each of the first storage device 13 and the second storage device 14 may include a three-dimensional memory cell array, the three-dimensional memory cell array may include a plurality of NAND strings, and each NAND string may include memory cells respectively connected to word lines stacked vertically on a substrate. However, the example embodiments are not limited thereto, and in some example embodiments, the memory cell array may include a two-dimensional memory cell array, and the two-dimensional memory cell array may include a plurality of NAND strings arranged in row and column directions. However, the example embodiments are not limited thereto, and the memory cell array may also include various types of non-volatile memory cells, such as resistive random access memory (ReRAM), phase change RAM (PRAM), or magnetic RAM (MRAM).
[0029] In the following description, when the UFS interface is used in the storage system 10 , it is assumed that the host 11 and the first and second storage devices 13 and 14 generate and communicate packets according to the protocol of the UFS interface.
[0030] Each of the host 11 and the first storage device 13 and the second storage device 14 may include one or more interface circuits, and as an example, the host 11 may include a first host interface circuit 11_1 and a second host interface circuit 11_2. In addition, the first storage device 13 may include a first device interface circuit 13_1, the second storage device 14 may include a second device interface circuit 14_1, and the host 11 may communicate with the first storage device 13 through the first host interface circuit 11_1, and communicate with the second storage device 14 through the second host interface circuit 11_2. The interface circuit provided in each of the host 11 and the first storage device 13 and the second storage device 14 may include a UFS interconnect layer (UIC) according to the UFS interface. In addition, the UIC may include a link layer (such as UniPro defined by the MIPI Alliance) and a physical layer (such as M-PHY, etc.).
[0031] The host 11 and the first storage device 13 and the second storage device 14 may communicate various types of UFS protocol information units (UPIU) as packets according to the UFS interface, and the UPIU may include a command (CMD) UPIU and a response (RESP) UPIU. As an example of operation, the host 11 may send a CMD UPIU to the first storage device 13 and the second storage device 14, and the first storage device 13 and the second storage device 14 may send a RESP UPIU to the host 11 in response to the CMD UPIU.
[0032] According to an example embodiment, the first storage device 13 and the second storage device 14 may also transmit and receive various types of information to and from each other in addition to the request / response with the host 11. In addition, various types of information may be transmitted via the host 11, and as an example, when it is assumed that the first storage device 13 transmits information to the second storage device 14, the first storage device 13 may transmit information having a specific format to the host 11, and the host 11 may transmit the received information to the second storage device 14.
[0033] The information communicated between the storage devices may have various types of formats, and as an example, the information may be sent in the form of a command that is different from the CMD communicated with the host and may be referred to as an internal command (Int.CMDInt.CMD). Alternatively, the information may be sent in the form of a payload. The second storage device 14 may perform internal management operations based on information in the form of an internal command or payload from the first storage device 13. When a response is required, the second storage device 14 may provide a response in the form of an internal command or payload to the first storage device 13 via the host 11.
[0034] Each of the first storage device 13 and the second storage device 14 may include a packet generator (i.e., a packet generation circuit), and each packet generator may generate packets according to the UFS interface. For example, each of the first packet generator 13_2 of the first storage device 13 and the second packet generator 14_2 of the second storage device 14 may generate a RESP UPIU in response to a CMD UPIU from the host.
[0035] As an example of an operation in which the first storage device 13 provides a payload to the second storage device 14, the first packet generator 13_2 may send a packet corresponding to a response (e.g., RESP UPIU) to the host 11, and the payload to be provided to the second storage device 14 may be included in the packet. As an example, a packet according to a specific interface may include a header area, an extra header segment (EHS) area, and a payload area, and a payload communicated between storage devices may be included in at least a portion of the header area and the EHS area of the packet. The header area and the EHS area of the packet may include an area (e.g., a reserved area) that is not used for communication with the host 11, and a payload communicated between storage devices may be included in the reserved area of the packet sent to the host.
[0036] In an example embodiment, the host 11 may include one or more queues storing information communicated between the first storage device 13 and the second storage device 14. As an example, when an internal command / payload and a response corresponding to the internal command / payload are communicated between the storage devices, the host 11 may include a first queue Q1 storing an internal command / payload provided from the storage device and a second queue Q2 storing an internal response or a payload corresponding to the internal command / payload. However, this is an example embodiment, and the host 11 may also store the Int.CMD / internal response and the payload from the storage device in the same queue. The host 11 may sequentially acquire the information stored in the first queue Q1 and the second queue Q2, and the acquired information may be sent to the storage device.
[0037] In an example embodiment, a storage device that provides an internal command or an internal response may be referred to as a source storage device, and a storage device that receives an internal command or an internal response via the host 11 may be referred to as a target storage device. For example, in the case where the first storage device 13 provides an internal command or a payload to the second storage device 14, the first storage device 13 may be a source storage device, and the second storage device 14 may be a target storage device. In addition, in the case where the second storage device 14 provides an internal response or a payload (or a response payload) to the first storage device 13, the second storage device 14 may be a source storage device, and the first storage device 13 may be a target storage device.
[0038] In an example embodiment, the packet sent and received between the host 11 and the first storage device 13 and the second storage device 14 may also include information related to the internal command or payload communicated between the first storage device 13 and the second storage device 14. For example, when the first storage device 13 sends a packet including an internal command to the host 11, a device ID value indicating the target storage device to which the internal command is to be provided may be included in the packet, and a value indicating the format type of the internal command may also be included in the packet. In addition, a device ID value indicating the source storage device providing the internal command may also be included in the packet. The host 11 may perform an operation of sending an internal command based on various types of information included in the packet. For example, when the first storage device 13 sends a packet including an internal command and a device ID value indicating that the second storage device 14 is a target storage device to the host 11, the host 11 may identify the second storage device as the target storage device based on the device ID value, and send the internal command to the second storage device 14.
[0039] According to an example embodiment, since the internal commands or payloads communicated between storage devices are sent via the host 11, no additional interface circuit is required in the storage device, and thus the implementation area and manufacturing complexity of the storage device can be reduced. In addition, a method for expanding capacity and increasing data bandwidth by using two or more storage devices as a Redundant Array of Inexpensive Disks 0 (RAID0) has been proposed. However, according to an example embodiment, multiple storage devices can communicate internal commands and payloads, and thus multiple storage devices can synchronously perform various types of internal management. For example, performance throttling can be synchronously processed between multiple storage devices by using internal commands, and background operations such as garbage collection can also be synchronously processed.
[0040] In addition, the host 11 may manage power of the first storage device 13 and the second storage device 14, and as an example, the host 11 may manage entry into hibernation, stopping data access to the first storage device 13 and the second storage device 14. When direct communication is performed between the first storage device 13 and the second storage device 14, limitations may occur in managing hibernation entry / exit of the host 11. In contrast, according to an example embodiment, since communication between the first storage device 13 and the second storage device 14 is performed via the host 11, the host 11 may perform power management by blocking communication between the first storage device 13 and the second storage device 14 during the hibernation portion, and may perform transmission of internal commands and payloads stored in the first queue Q1 and the second queue Q2 after the hibernation portion.
[0041] Figure 2 is to show the host (such as Figure 1 A block diagram of an example of a host computer (shown in FIG. Figure 2 In the example of FIG. 1 , the host 100 may include a system on chip (SoC) and a host memory 101, and the processor 130 is shown to control memory operations by executing software stored in the host memory 101, but the host memory 101 may be provided inside the SoC, or the embedded memory 170 may perform the same function as the host memory 101. In addition, the SoC may be an application processor (AP).
[0042] refer to Figure 2 , the SoC may include one or more modules as an intelligent property (IP). For example, the SoC may include a host controller 110, a memory control unit 120, a processor 130, a modem 140, a camera interface 150, a display interface 160, and an embedded memory 170.
[0043] The processor 130 may control the overall operation of the SoC. As an example, software (e.g., a host application and a device driver) for managing data write / read operations of a storage device may be loaded into the host memory 101, and the processor 130 may manage the data write / read operations by executing the software. The host memory 101 may be implemented as a volatile memory or a nonvolatile memory, and may include, for example, a volatile memory such as a dynamic random access memory (DRAM) and / or a static RAM (SRAM), etc.
[0044] According to an example embodiment, since the SoC includes the modem 140, the camera interface 150, the display interface 160, etc., the SoC may perform a camera control operation, a display control operation, a communication operation, etc. Figure 2 In the embodiment, since the modem 140 is included in a SoC corresponding to an AP, the SoC may be referred to as a ModAP.
[0045] According to the above-described example embodiments, the host controller 110 may send and receive packets to / from a storage device. The host controller 110 may generate packets according to a specific interface, and communicate the generated packets to a plurality of storage devices in response to an access request generated by a host application layer of the SoC. As an example, the memory package in the example embodiment may include first to Nth storage devices (N is an integer of 2 or greater), and the host controller 110 may include first to Nth interface circuits (e.g., UIC) corresponding to the first to Nth storage devices.
[0046] According to example embodiments, the first to Nth storage devices may communicate information such as internal commands, internal responses, payloads, etc., with each other, and the communication between the first to Nth storage devices may be performed via the host controller 110. In this regard, the internal commands / internal responses, payloads, etc. from the storage devices may be stored in a queue of the SoC or a queue of the host memory 101.
[0047] Figure 3 is a block diagram illustrating an example of a storage device according to example embodiments.
[0048] refer to Figure 3, the storage device may include a memory controller 200 and a memory core. The memory controller 200 may include a host interface 210, a processor 220, a RAM 230, a packet manager (i.e., a packet management circuit) 240, an internal command / internal response generator 250, and a memory interface 260. In addition, the RAM 230 may be used as a working memory, and the processor 220 may control the overall operation of the memory controller 200 by executing firmware loaded to the RAM 230. The RAM 230 may be implemented as various types of memory, for example, at least one of a resistive memory device such as a cache memory, a DRAM, an SRAM, a PRAM, etc. As an example of firmware, a flash translation layer (FTL) may be loaded to the RAM 230, and various functions related to flash memory operations may be performed by driving the FTL.
[0049] According to example embodiments, the host interface 210 can communicate with the host through various types of interfaces. The host interface 210 can send packets to the host and receive packets from the host, and according to example embodiments, internal commands / internal responses or payloads provided from any one storage device can be included in the packets.
[0050] The packet manager 240 may generate a packet to be sent to the host according to the protocol of a specific interface, or may extract various types of information from a packet received from the host. In addition, the internal command / internal response generator 250 may generate an internal command to be provided to another storage device, or may generate an internal response in response to an internal command provided from another storage device. The packet manager 240 may receive an internal command or an internal response from the internal command / internal response generator 250, and may generate a packet including the internal command or the internal response in a specific area of the packet (e.g., a header area and / or an EHS area). In addition, the packet manager 240 may receive various types of information related to the internal command or the internal response (e.g., an ID of a target storage device, format information of an internal command, etc.) from the internal command / internal response generator 250, and may include various types of information in the packet.
[0051] The memory interface 260 may provide a physical connection between the memory controller 200 and the memory core. For example, the memory controller 200 may generate commands / addresses and control signals for controlling memory operations, and may provide the generated commands / addresses and control signals to the memory core through the memory interface 260. In addition, write data and read data of memory operations may be sent and received between the memory controller 200 and the memory core through the memory interface 260.
[0052] Although the internal command / internal response generator 250 is described as generating internal commands and internal responses having a specific format, when information in the form of a payload is communicated between storage devices, the internal command / internal response generator 250 can also generate various information, such as a payload to be sent and received between storage devices, a device ID associated with the payload, format information, etc.
[0053] Figure 4 is a block diagram illustrating an example of a storage system to which a UFS interface is applied according to example embodiments.
[0054] refer to Figure 4 , the host of the storage system 300 may be referred to as a UFS host, and the storage device may be referred to as a UFS storage device. The UFS host may include a software module 310, a UFS host controller 320, and a host memory 330 corresponding to the hardware module as its components. The software module 310 may include application software and a UFS host controller driver. The application software may include various application programs running on the UFS host, the UFS host controller driver may be configured to manage the drivers of peripheral devices that can be used by connecting to the UFS host, and data management operations (such as writing and reading data with respect to the storage device) may be performed by executing the UFS host controller driver. The application software and the UFS host controller driver may be loaded into Figure 4 The host memory 330 shown in FIG. 1 , or may be loaded into another operating memory within the UFS host and executed by a processor.
[0055] The UFS host controller 320 can be used with Figure 2 The host controller 110 shown in FIG. 1 corresponds to the host controller 110 shown in FIG. 1 and may include a UFS host controller interface (UFS HCI), a UTP protocol engine, and a UIC. The UFS HCI may receive a request generated by a UFS host controller driver and send the request to the UTP protocol engine, or may provide a data access result sent from the UTP protocol engine to the UFS host controller driver. The UTP protocol engine may provide services for an upper layer (or application layer), and as an example, may generate a packet or extract information from a packet.
[0056] In addition, the UIC may communicate with the UFS storage device 340, and as an example, the UIC may include a link layer and a physical (PHY) layer. The link layer may be MIPI UniPro, and the PHY layer may be MIPI M-PHY. In addition, according to the UFS interface, the UFS host may provide a reference clock (Ref Clock) and a reset signal to the UFS storage device 340.
[0057] The UFS storage device 340 may include a memory controller and a memory core. According to an example embodiment, in the UFS interface, the memory controller may be referred to as a storage controller, and the memory controller may include a UIC, a UTP protocol engine, and a UFS storage device interface. In addition, the memory core may include a non-volatile memory core (NVM core).
[0058] The internal command / internal response or payload according to an example embodiment may be included in a first packet Packet_H sent from the UFS host to the UFS storage device 340 and a second packet Packet_S sent from the UFS storage device 340 to the UFS host. The UFS host controller 320 may refer to the value of a field of the header area included in the received packet to determine whether the internal command / internal response or payload is included in the received packet. As an example, when a device ID value indicating a storage device (e.g., a target storage device) is included in the header area of the received packet, the host may send the internal command / internal response or payload to the storage device corresponding to the device ID value.
[0059] The UFS interface may define various types of packets, and an internal command / internal response or a payload according to an example embodiment may be included in various types of packets. As an example, a packet according to the UFS interface may be a UPIU, and as a type of UPIU, packets such as a command UPIU for read and write requests, a response UPIU, a DATA IN UPIU including read data, a DATA OUT UPIU including write data, a task management request UPIU, a task management response UPIU, a query request UPIU, a query response UPIU, a ready to transmit (RTT) UPIU, etc. may be provided.
[0060] For example, the operation of generating an internal command and adding the internal command and information related to the internal command to a packet may be performed through various layers. As an example, the UFS storage device interface of the UFS storage device 340 may manage a command set related to the internal command, and may provide information related to the internal command together with the internal command to be provided to another storage device to the UTP protocol engine. According to an example embodiment, the UTP protocol engine may generate a packet including the internal command, and the internal command and information related to the internal command may be added to the header area and / or the EHS area of the packet.
[0061] Similarly, in the case where the host sends a packet to the UFS storage device 340, internal commands may be stored in a queue within the host, the host's UTP protocol engine may generate a packet to be sent to the UFS storage device 340, and the internal command obtained from the queue and information related to the obtained internal command may be included in the packet to be sent to the UFS storage device 340.
[0062] Hereinafter, a specific communication example between a host and a storage device according to an exemplary embodiment is described. Below, a host and a storage device applying a UFS interface will be described, but as described above, the exemplary embodiment may be applied to various types of interfaces other than the UFS interface.
[0063] Figures 5 to 7 is a flowchart illustrating an operating method of a storage system according to an example embodiment. Figure 5 and Figure 6 A method of operating a storage device is shown, and Figure 7 The operation method of the host is shown.
[0064] like Figure 5 As shown, in S11, the storage device may generate an internal command or payload to be provided to another storage device, and may generate a UPIU including the internal command or payload. As an example, the UPIU may include a header area and an EHS area, and the EHS area may include an EHS header area and an EHS data area.
[0065] In S12, the storage device may add an internal command or payload to the EHS data area. In addition, in S13, the storage device may add format information indicating the format of the internal command or payload to the EHS header area of the UPIU. In addition, in S14, the storage device may add a target device ID indicating a target storage device and a source device ID indicating a source storage device to the header area of the UPIU. In addition, in S15, the storage device may send the UPIU configured above to the host.
[0066] refer to Figure 6 In S21, the storage device may receive a first UPIU from the host. In S22, the storage device may extract various types of information from the first UPIU, and as an example, the storage device may extract a source device ID having a first value, and may also extract an internal command and its format information. The storage device may perform processing of the internal command, and may determine whether an internal response needs to be generated. As an example, the storage device may generate an internal response in S23, and add the generated internal response to the second UPIU in S24.
[0067] In addition, in S25, the storage device can determine the external storage device to which the internal response is to be provided according to the source device ID having the first value, and can add the target device ID having the first value indicating the external storage device to the second UPIU. In addition, in S26, the storage device can send the second UPIU configured above to the host.
[0068] refer to Figure 7 In S31, the host may receive a first UPIU from a storage device. In S32, the host may extract various types of information from the first UPIU, and as an example, the host may extract a source device ID having a first value, a target device ID having a second value, and an internal command. In S33, the host may store the internal command in an internal queue, and obtain the internal command from the internal queue for transmission of the internal command. In addition, various types of information extracted from the first UPIU may also be stored in the host.
[0069] In S34, the host may generate a second UPIU and add the internal command to the second UPIU. In addition, in S35, the host may add the source device ID having the first value to the second UPIU. In addition, the host may send the second UPIU configured above, and as an example, in S36, the host may send the second UPIU to the storage device having the device ID corresponding to the second value.
[0070] Hereinafter, a specific communication example between a host and a first storage device and a second storage device according to an exemplary embodiment is described. Hereinafter, a communication example between two storage devices is described, but as described above, the exemplary embodiment can be applied to communication between three or more storage devices. In addition, in the following description, it is assumed that the UFS interface is applied to a storage system among various types of interfaces.
[0071] Figure 8 A case where the storage device performs communication in an internal command / internal response format is shown.
[0072] refer to Figure 8 , a device ID value may be assigned to the host and each of the first storage device SD1 and the second storage device SD2, and as an example, device ID values corresponding to "0", "1", and "2" may be assigned to the host, the first storage device SD1, and the second storage device SD2, respectively. Figure 8In the example, the first storage device SD1 and the second storage device SD2 can communicate internal commands / internal responses with each other. When the first storage device SD1 and the second storage device SD2 communicate internal commands / internal responses having a format according to the UFS interface, the internal commands / internal responses may correspond to the command UPIU and the response UPIU, respectively. However, in example embodiments, the internal commands / internal responses may also have formats according to different types of interfaces. As an example, the internal command may be a UFS-only command or a command included in a command set according to a SCSI interface. Alternatively, the internal command may also be implemented in the form of an upper-level host command, or may be implemented as a lower-level command defined in an inter-process communication (IPC) negotiated between devices.
[0073] In S111, the first storage device SD1 may receive a command UPIU from the host, and may send a response UPIU including an internal command (Int.CMD) to the host in response to the received command UPIU. The response UPIU may include a header area and an EHS area, and as an example, the internal command (Int.CMD) may be included in the EHS area. In addition, at least one piece of information related to the internal command (Int.CMD) may be included in the response UPIU, and as an example, a device ID value (i.e., DST_DEVICE_ID=2) indicating the second storage device SD2 as a target storage device to be provided with the internal command (Int.CMD) may be included in the header area of the response UPIU.
[0074] The host may receive the response UPIU and store the internal command (Int.CMD) extracted from the response UPIU in a queue within the host. In addition, in S113, the host may send the internal command (Int.CMD) to the second storage device SD2 based on the device ID value included in the response UPIU. In an example embodiment, Figure 8 As shown, when the internal command (Int.CMD) corresponds to the UPIU according to the UFS interface, the host may send the internal command (Int.CMD) to the second storage device SD2 without including the internal command (Int.CMD) in a separate command UPIU. In addition, in S114, the second storage device SD2 may generate a UPIU corresponding to an internal response (Int.RESP) in response to the internal command (Int.CMD), and send the generated UPIU to the host. The second storage device SD2 may include a device ID value (i.e., DST_DEVICE_ID=1) indicating that the internal response (Int.RESP) is to be provided to the first storage device SD1 in the internal response (Int.RESP), and as an example, the device ID value may be included in a header area of the internal response (Int.RESP).
[0075] The host may include an internal response (Int.RESP) in any UPIU to be provided to the first storage device SD1, and as an example, the host may include the internal response (Int.RESP) in the EHS area of the command UPIU to be provided to the first storage device SD1. The first storage device SD1 may confirm through the internal response (Int.RESP) that the provision of the internal command (Int.CMD) to the second storage device SD2 has been completed normally. In addition, in S116, the first storage device SD1 may send a response UPIU in response to the command UPIU from the host to the host.
[0076] When the internal command (Int.CMD) or the internal response (Int.RESP) has a format according to a protocol such as a UFS interface, each of the internal command (Int.CMD) or the internal response (Int.RESP) may include a header area including a plurality of fields. In an example embodiment, information indicating a device ID value or a format type of the internal command may be included in the internal command (Int.CMD) / internal response (Int.RESP) together with the UPIU communicated between the host and the storage device. For example, Figure 8 As shown, in the response UPIU sent by the first storage device SD1 to the host, information indicating the device ID value or format type of the internal command may be included in the internal command (Int.CMD) together with the response UPIU. In addition, when the second storage device SD2 directly sends the internal response (Int.RESP) to the host, the device ID value (i.e., DST_DEVICE_ID=1) indicating the first storage device SD1 corresponding to the target storage device may be included in the header area of the internal response (Int.RESP).
[0077] Furthermore, in an example embodiment, in the communication between storage devices, a device ID value indicating the source storage device may be further included in the packet. As an example, the device ID value indicating the source storage device may be included in the internal command (Int.CMD) / internal response (Int.RESP) together with the UPIP communicated between the host and the storage device. For example, the second storage device SD2 may determine the storage device to which the internal response (Int.RESP) is to be provided by the device ID value of the first storage device SD1 included in the internal command (Int.CMD). In addition, the first storage device SD1 may determine the storage device to provide the internal response (Int.RESP) based on the value included in the packet and / or the internal command (Int.CMD) from the host. For example, as Figure 8As shown in S115 , when sending a command UPIU to the first storage device SD1 , the host may include a device ID value (ie, SRC_DEVICE_ID=2) of the second storage device SD2 corresponding to the source storage device providing the internal response (Int.RESP) in a header area of the command UPIU.
[0078] In the above, a case where an internal command (Int.CMD) and an internal response (Int.RESP) are directly transmitted and received in communication between the host and the second storage device SD2 without being included in a packet is described, however, the exemplary embodiment is not limited thereto. For example, even when the first storage device SD1 and the second storage device SD2 communicate a command / response having a specific format, the host can communicate a UPIU including an internal command (Int.CMD) and an internal response (Int.RESP) with the second storage device SD2.
[0079] Fig. 9 An example of a storage system according to an example embodiment is shown. For example, the storage system may perform Figure 8 The operations are consistent with those shown in .
[0080] refer to Fig. 9 , the storage system 400A may include a host 410A and a memory package 420A. The memory package 420A may include a plurality of storage devices, including first to Nth storage devices 421A_1 to 421A_N. In addition, the host 410A may include a first queue 411A storing internal commands and a second queue 412A storing internal responses.
[0081] For example, when the first storage device 421A_1 provides the internal command Int.CMD to another storage device, the first storage device 421A_1 may include the internal command Int.CMD in the EHS area of any UPIU to be sent to the host. The host 410A may store the internal command Int.CMD in the first queue 411A, and may obtain the internal command Int.CMD stored in the first queue 411A, and may send the obtained internal command Int.CMD to another storage device. For example, when the internal command Int.CMD has a format that can be sent independently, the host 410A may send the internal command Int.CMD to a storage device selected from the second storage device 421A_2 and the Nth storage device 421A_N. In addition, the host 410A may receive an internal response Int.RESP from the storage device, and store the received internal response Int.RESP in the second queue 412A.
[0082] The host 410A may obtain the internal response Int.RESP from the second queue 412A and send the obtained internal response Int.RESP to the first storage device 421A_1. As an example, the host 410A may include the internal response Int.RESP in the command UPIU as any UPIU to be sent to the first storage device 421A_1.
[0083] According to the above, the transmission of internal commands in various methods can be performed based on the value of the target device ID included in the packet. For example, when the internal command or internal response is not included in the packet, the target device ID may have a value "0" or another defined value referring to the host. Alternatively, when multiple target device ID values are included in the packet, the internal command can be provided together to two or more storage devices among multiple storage devices. Alternatively, when a target device ID of a specific value is defined and the target device ID of the specific value is included in the packet, the storage system can be implemented so that the internal command is broadcast to all storage devices except the source storage device that provides the internal command.
[0084] Fig.10 and Fig.11 1 is a diagram showing an example embodiment of a storage device communicating information in the form of a payload. As an example, a storage device can directly provide a payload to another storage device without configuring a command according to a format of a specific interface. The description already given above is omitted.
[0085] refer to Fig.10 , the first storage device SD1 may send a payload to the second storage device SD2, and the payload may include various types of information. As an example, the payload may include temperature information or various types of information for synchronization of background operations.
[0086] The first storage device SD1 may receive a command UPIU from the host in S121, and may send a response UPIU including a payload to the host in response to the command UPIU in S122. As an example, the payload may be included in the EHS area, and a device ID value (i.e., DST_DEVICE_ID=2) indicating the second storage device SD2 as a target storage device to which the payload is to be provided may be included in the header area of the response UPIU. In S123, the host may include the payload (e.g., the command UPIU) provided from the first storage device SD1 in any UPIU to be sent to the second storage device SD2, and in S124, the host may receive a response UPIU in response to the command UPIU from the second storage device SD2. In addition, in an example embodiment, a device ID value (i.e., SRC_DEVICE_ID=1) indicating the source storage device may be included in the UPIU provided from the host to the second storage device SD2 as at least one piece of information related to the payload, and the second storage device SD2 may determine that the payload is provided from the first storage device SD1.
[0087] When the second storage device SD2 provides information in response to the payload from the first storage device SD1, the second storage device SD2 may generate a payload including the response information. The second storage device SD2 may receive a command UPIU from the host in S125, and send a response UPIU in response to the command UPIU to the host in S126. At this time, the second storage device SD2 may include a payload including the response information in the response UPIU to be sent to the host, and may include a device ID value corresponding to the target storage device to which the payload is to be provided (i.e., DST_DEVICE_ID=1) in the response UPIU.
[0088] In S127, the host may send the command UPIU as any UPIU to the first storage device SD1, and at this time, the host may include the payload provided from the second storage device SD2 in the command UPIU to be provided to the first storage device SD1, and may also include the device ID value of the source storage device in the command UPIU (i.e., SRC_DEVICE_ID=2). In addition, in S128, the first storage device SD1 may send a response UPIU in response to the command UPIU to the host.
[0089] Fig.11 Shown with Fig.10 An example of a storage system related to the operations shown in FIG.
[0090] refer to Fig.11, the storage system 400B may include a host 410B and a memory package 420B, and the memory package 420B may include first to Nth storage devices 421B_1 to 421B_N. In addition, the host 410B may include a first queue 411B and a second queue 412B that store payloads provided from the storage devices. As an example, the first queue 411B may store a payload provided from any one storage device to a target storage device, and the second queue 412B may store a payload including response information provided from a storage device that has received the payload.
[0091] Because the information communicated between the source storage device and the target storage device is in the form of a payload, the payload provided from the storage device is not provided independently (i.e., directly) to another target storage device, but the payload can be provided to the storage device in a method of being included in any UPIU generated by the host. For example, the payload can be provided to the storage device via the host. In addition, when sending a payload including response information, the storage device can include the payload including the response information in any UPIU generated by the storage device.
[0092] In an example embodiment, a field value indicating the formation (i.e., format) of information communicated between storage devices may be further included in a UPIU to be transmitted and received between the host and the storage device. As an example, a field value indicating the format may be included in a header area or an EHS area of the UPIU, and the host may refer to the field value included in the UPIU to interpret the information communicated between the storage devices as a command that may be transmitted independently or a payload that may not be transmitted independently. In an example embodiment, the host may transmit an internal command extracted from the UPIU to the storage device based on the interpretation result of the field value, or transmit a UPIU including the extracted payload in its EHS area to the storage device.
[0093] In the following description, it is assumed that the storage device communicates information in the form of a command or a payload in each example embodiment, but each example embodiment can be applied to the case where the storage device communicates information in the form of a command or a payload. In addition, although the storage device is described as providing an internal command or an internal response, the terms of internal command and internal response are used to distinguish the terms from commands and responses communicated between the storage device and the host, and the storage device can be described as providing commands and responses to other storage devices.
[0094] Fig.12 and Fig.13 is a diagram showing an example in which an internal command and an internal response are included in an EHS area of a UPIU according to an exemplary embodiment. Fig.12 and Fig.13In the description of Fig.12 and Fig.13 The various fields of the UPIU shown in the figure correspond to the fields corresponding to the UFS interface, so their detailed description is omitted. In addition, the storage device may generate an internal command according to the UFS interface, so the internal command may be referred to as an internal command UPIU. The storage device may include command values indicating various requests and managements for other storage devices in a command descriptor block (CDB) of the internal command UPIU.
[0095] refer to Fig.12 , the internal command may be included in the EHS area of any UPIU (e.g., a response UPIU) sent by the storage device. The EHS area may include an EHS header area and an EHS data area. As an example, the internal command may be included in the EHS data area of the EHS area, and therefore, the EHS area of the response UPIU may include the EHS header area and the internal command.
[0096] The header area of the command UPIU and the response UPIU corresponding to the UFS interface may include multiple fields, including a transaction type field, a LUN field indicating the logical unit number targeted by the request, 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, a data segment length field indicating the number of valid bytes in the data segment of the UPIU, and the like.
[0097] Some fields in the header area may correspond to the reserved area. The device ID field according to the example embodiment may be added to the header area of the command UPIU or the response UPIU, and the target device ID field and the source device ID field may be added to the existing reserved area. Fig.12 In the UPIU, a target device ID field is described, in which an ID value indicating a storage device to which an internal command is to be sent is stored, and the host can determine the storage device to which the internal command is to be sent by checking the value of the target device ID field of the response UPIU. The source device ID field may also be included in the header area of the response UPIU. In addition, when the information communicated between storage devices corresponds to an internal command of a specific format, the device ID field and the source device ID field may be further included in the header area of the internal command.
[0098] The value of the target device ID field may be defined in various ways, and according to the defined value, the transmission of the internal command may be performed in various ways. As an example, when the target device ID field has a value of "0", it may indicate that the response UPIU does not include an internal command. For example, when the target device ID field has a value of "0", the response UPIU may correspond to the host. In addition, two or more device ID values may be included in the target device ID field, or the response UPIU may include at least two target device ID fields. In this case, the internal command may be provided to at least two storage devices. In addition, in an example embodiment, a target device ID field of a specific value (e.g., OFh) may indicate the broadcast of an internal command included in the response UPIU, and in this case, the host may send the internal command to all storage devices except the source storage device.
[0099] Fig.13 It shows the case where the host sends an internal response to the storage device.
[0100] The second storage device that has received the internal command from the first storage device may generate an internal response corresponding to the internal command, and according to an example embodiment, the second storage device may independently send the internal response to the host, or may include the internal response in the EHS area of any UPIU and send the UPIU to the host. The host may store the received internal response in a queue within the host. In addition, as Fig.13 As shown, the host may include the internal response in any UPIU (e.g., command UPIU) to be sent to the first storage device to which the internal response is to be provided. In addition, the header area of the command UPIU may include a field for storing a source device ID value, and the device ID value of the second storage device providing the internal response may be stored in the source device ID field.
[0101] Fig.14A , Fig. 14B , Fig.15A , Fig. 15B , Fig.16A and Fig. 16B is a diagram showing an example of adding a device ID field to various UPIUs according to a UFS interface. In the following description, only some of the various types of fields of the UPIU of the UFS interface are discussed, and a detailed description of some fields of the UFS interface is omitted. Fig.14A , Fig. 14B , Fig.15A , Fig. 15B , Fig.16A and Fig. 16B In FIG. 1 , the case where the target device ID value is stored is shown. As described above, the source device ID value may also be included in the UPIU.
[0102] Fig.14A and Fig. 14B FIG. 10 shows a case where a device ID field is further added to the command UPIU and the response UPIU. As an example, Fig.14A As shown, a portion of the eighth field among a plurality of fields included in the header area of the command UPIU may correspond to a reserved area, and the device ID field according to an example embodiment may be added to the reserved area of a portion of the eighth field. Fig. 14B As shown, a portion of a sixth field among a plurality of fields included in a header area of a response UPIU may correspond to a reserved area, and a device ID field according to an example embodiment may be added to the reserved area of a portion of the sixth field.
[0103] Fig.15A and Fig. 15B FIG. 2 shows a case where the target device ID field is added to the task management request UPIU and the task management response UPIU. As an example, Fig.15A As shown, a portion of the eighth field among a plurality of fields included in the header area of the task management request UPIU may correspond to a reserved area, and the device ID field according to an example embodiment may be added to the reserved area of a portion of the eighth field. Fig. 15B As shown, a portion of a sixth field among a plurality of fields included in a header area of the task management response UPIU may correspond to a reserved area, and a device ID field according to an example embodiment may be added to the reserved area of a portion of the sixth field.
[0104] Fig.16A and Fig. 16B FIG. 2 shows a case where the target device ID field is added to the query request UPIU and the query response UPIU. As an example, Fig.16A As shown, a portion of the eighth field among a plurality of fields included in the header area of the query request UPIU may correspond to a reserved area, and the device ID field according to an example embodiment may be added to the reserved area of a portion of the eighth field. Fig. 16B As shown, a portion of a sixth field among a plurality of fields included in the header area of the query response UPIU may correspond to a reserved area, and a device ID field according to an example embodiment may be added to the reserved area of a portion of the sixth field.
[0105] Fig.17A and Fig. 17B is a diagram illustrating an example in which a value indicating a format of information communicated by a storage device is included in a UPIU according to an example embodiment.
[0106] refer to Fig.17A, each of the various types of UPIUs of the UFS interface may include an EHS area, and the EHS area may include an EHS header area and an EHS data area. As an example, the EHS area may have a size of 32 bytes, and the EHS header area may have a size of 4 bytes. In addition, the size of the remaining 28 bytes of the EHS area may correspond to the EHS data area. Each field in the EHS header area may store various types of values, and as an example, the fields in the EHS header area may include a field (bLength) storing a value indicating the size of the EHS data area, and EHSType and EHSSubType fields indicating the type of information stored in the EHS data area.
[0107] In an example embodiment, a value indicating the format of information stored in the EHS data area may be defined in the EHSType field. For example, some values defined in the EHSType field may correspond to vendor-specific values, and some of the vendor-specific values may be defined as information indicating the format of information provided by the storage device.
[0108] For example, Fig. 17B As shown, a field value related to the format may be stored in the EHS header area of the command UPIU or the response UPIU, and when a value of 80h is stored in the EHSType field, it may indicate that an internal command from a storage device included in the command UPIU or the response UPIU has a first format (e.g., UPIU format). In addition, when a value of 81h is stored in the EHSType field, it may indicate that the internal command has a second format (e.g., IPC negotiated between storage devices). Alternatively, when another predefined value is stored in the EHSType field, it may indicate that information in the form of a payload is included in the EHS data area.
[0109] According to example embodiments, internal commands having payloads or various formats may be communicated between storage devices, and the internal commands may be implemented based on various formats, for example, the internal commands may be implemented as host commands at a high abstraction level, or may be implemented as commands at a low abstraction level corresponding to IPC. In addition, the host may check the format of information communicated between storage devices based on information included in the EHS header area of the UPIU.
[0110] Figures 18 to 24 is a diagram showing examples of communication between storage devices in various situations according to an example embodiment. Regarding communication between storage devices, Figures 18 to 24Some of the examples show internal commands being communicated, and others show payloads being communicated, but as described above, each example embodiment may be applied to communication of internal commands and communication of payloads together.
[0111] refer to Fig.18 , the first storage device SD1 may send a response UPIU to the host, and may include a payload (e.g., a first payload) to be provided to the second storage device SD2 in the response UPIU. The response UPIU may include a device ID value indicating the second storage device SD2 as a target storage device. The host may include the first payload in a command UPIU to be provided to the second storage device SD2, and the second storage device SD2 may generate a payload (e.g., a second payload) to be provided to the first storage device SD1 in response to receipt of the first payload. In addition, the second storage device SD2 may include a second payload in the response UPIU to be provided to the host.
[0112] In an example embodiment, when there is no UPIU to be transmitted from the host to the first storage device SD1, the host may generate any UPIU and include the second payload in the UPIU to transmit the UPIU to the first storage device SD1. As an example, the host may generate a command UPIU corresponding to a write buffer command (CMD) corresponding to a SCSI command set, and may include the second payload in the write buffer CMD.
[0113] When the host transmits the write buffer CMD to the first storage device SD1, the host may additionally transmit a DATA OUT UPIU including data to the first storage device SD1. In example embodiments, as described above, the second payload may be included in the write buffer CMD, or when the second payload has a large size that may not be included in the EHS area, the host may also include the second payload in the DATA OUT UPIU.
[0114] As described above, even in an environment where the host does not provide a UPIU to a specific storage device, the host can generate any UPIU and can include an internal command / internal response or a payload in the generated UPIU, so communication between storage devices can be stably performed via the host.
[0115] Fig.19 and Fig. 20 An operation example is shown when a command communicated between storage devices is accompanied by data.
[0116] refer to Fig.19, the first storage device SD1 may include an internal command in a response UPIU to be sent to the host. As an example, the internal command may be a command requiring reception of data, and the host may include the internal command in any UPIU to be sent to the second storage device SD2.
[0117] The host may check the value of a field of an internal command included in the UPIU provided from the first storage device SD1. As an example, the internal command may check a flag value of a field indicating write or read and a value of a field indicating an expected transfer length. When the flag value of the field indicates read, and the value of the expected transfer length is greater than 0, it may be determined that a process of receiving data from the second storage device SD2 is required.
[0118] In an example embodiment, the host may generate a command UPIU corresponding to the read buffer CMD, and may include an internal command from the first storage device SD1 in the read buffer CMD. In addition, the host may receive a DATA IN UPIU including data from the second storage device SD2 in response to the read buffer CMD. In addition, the host may receive a UPIU including an internal response from the second storage device SD2.
[0119] The host may send the internal response and the data to the first storage device SD1 based on various methods. As an example, the host may include the internal response in the command UPIU as any UPIU to be sent to the first storage device SD1.
[0120] In an example embodiment, when data needs to be provided to the first storage device SD1, as shown in FIG. Fig.19 As shown, the host may generate a write buffer CMD and use the write buffer CMD. For example, the host may include an internal response from the second storage device SD2 in the write buffer CMD. In addition, the host may send a DATA OUT UPIU to the first storage device SD1, and may include data provided from the second storage device SD2 in the DATA OUT UPIU.
[0121] According to example embodiments, when communication of data having a larger size is required between storage devices, the host may provide data to or receive data from the storage device by using DATA OUT UPIU and DATA IN UPIU, thereby communicating data having a relatively larger size between the storage devices.
[0122] refer to Fig. 20, the first storage device SD1 may include an internal command in the response UPIU to be sent to the host, and the internal command may be a command that requires data to be sent to the second storage device SD2. The host may check the value of a field included in the internal command, and when the flag value of the field indicates writing and the length of the expected transfer length is greater than 0, it may be determined that a process of receiving data from the first storage device SD1 is required.
[0123] In order to receive data from the first storage device SD1, the host may generate a command UPIU corresponding to the read buffer CMD and transmit the command UPIU to the first storage device SD1. In addition, the host may receive data from the first storage device SD1 through DATA IN UPIU.
[0124] The host may send any UPIU including an internal command to the second storage device SD2. As an example, the host may send a command UPIU corresponding to the write buffer CMD to the second storage device SD2, and may send a DATA OUT UPIU including data provided from the first storage device SD1 to the second storage device SD2. In addition, the second storage device SD2 may send a response UPIU including an internal response to the host, and the host may include the internal response in a command UPIU to be sent to the first storage device SD1.
[0125] As described above, various types of commands are communicated between storage devices, and data communication according to the command type can be performed. As an example, when the internal command from the first storage device SD1 corresponds to a query request command (e.g., a descriptor write request, etc.) related to the internal settings of the second storage device SD2 and setting data is to be sent with respect to the internal settings, it can be performed according to Fig. 20 The process shown transmits data from the first storage device SD1 to the second storage device SD2.
[0126] Fig.21 An example of communication between storage devices when entering and exiting hibernation is managed by a host according to an example embodiment is shown.
[0127] In an example embodiment in which the host does not have a UPIU to send to the storage device, the transmission of the payload from the storage device may be continuously requested. In an example embodiment, the host may store the payload received from the storage device in its internal queue, and when the host does not have a UPIU to send to the storage device, the host may enter the mode of the system into a sleep section. During the sleep section, the host may stop the transmission of the payload between the storage devices. Thereafter, the host may send the payload stored in the queue to the storage device after exiting the sleep section.
[0128] like Fig.21As shown, the host may receive a response UPIU including a payload from the first storage device SD1, and may store the received payload in a queue within the host. Thereafter, the host may put the storage system into hibernation, and may stop the transmission of the payload during the hibernation segment. Thereafter, the hibernation segment is exited, and the host may obtain the payload stored in the queue, and include the payload in any UPIU (e.g., command UPIU) to be sent to the second storage device SD2. In addition, the host may include the payload in a command UPIU to be sent to the first storage device SD1.
[0129] Fig. 22 A case where a payload is provided in a unidirectional direction is shown, and a storage device having received the payload having a unidirectional characteristic may not provide an internal response or the payload in response to the payload.
[0130] refer to Fig. 22 , the host may receive a response UPIU including a payload from the first storage device SD1, and may include the payload in a command UPIU to be sent to the second storage device SD2. As an example, when the first storage device SD1 performs only transmission of specific information to the second storage device SD2 and does not need to check a result in response to the specific information, the second storage device SD2 may not generate an internal response or payload for responding to reception of the payload, and may only generate a response UPIU in response to the command UPIU of the host. Therefore, the operation of the host sending an internal response or payload to the first storage device SD1 may be omitted.
[0131] Fig.23 and Fig.24 is a diagram illustrating an example of an internal operation of a storage device using an internal command or a payload according to example embodiments.
[0132] like Fig.23 , it is shown that throttle synchronization can be performed between storage devices.
[0133] When the temperature of a storage device rises to a certain threshold or higher, throttling can be performed to adjust the performance of the storage device to protect the storage device, and in an environment including multiple storage devices, the performance of multiple storage devices can be adjusted together. That is, multiple storage devices need to operate at the same or similar performance level.
[0134] For example, when the first storage device SD1 detects a temperature rise, the first storage device SD1 may generate a first payload (or internal command) requesting execution of throttling to the second storage device SD2, and the first storage device SD1 may include the first payload in any response UPIU to be sent to the host. The host may include the first payload in a command UPIU to be sent to the second storage device SD2.
[0135] The second storage device SD2 may analyze the payload provided from the first storage device SD1, and perform throttling to reduce the performance of the second storage device SD2 based on the determination of the throttled performance request. In addition, the second storage device SD2 may generate a second payload having information indicating that throttling is normally performed, and may include the second payload in a response UPIU to be sent to the host. In addition, the host may include the second payload in a command UPIU to be sent to the first storage device SD1.
[0136] As described above, the EHS area may include an EHS header area and an EHS data area, and a value indicating the format of information sent between storage devices may be stored in the EHSType field of the EHS header area. As an example, based on the value of the EHSType field, information that can determine the format of the payload is stored in the EHS data area. In addition, the payload may be stored in the EHS data area, and the payload may include various values negotiated between storage devices. As an example, when the payload has a value of 70h, the payload may include information requesting execution of throttling, and when the payload has a value of 71h, the payload may include information indicating completion of execution of throttling.
[0137] like Fig.24 As shown, debug log information can be communicated between storage devices through internal commands.
[0138] When an error occurs during the operation of the first storage device SD1, the first storage device SD1 may extract debug log information for error analysis. However, when an error occurs in the first storage device SD1, the debug log information may be managed by the storage system to be stored in the second storage device SD2. As described above, when the first storage device SD1 provides debug log information to the second storage device SD2, the first storage device SD1 may send a response UPIU including an internal command to the host. As an example, when the internal command has a format according to the UFS interface, the internal command may correspond to the command UPIU, and as an example, the internal command may correspond to the write buffer CMD requesting the writing of data.
[0139] The host may check the format of the internal command provided by the first storage device SD1 through the field value of the EHS header area, and may also check the value of the field of the header area of the internal command. As an example, the host may check the value of the field indicating the expected transfer length in the internal command, and when the value of the expected transfer length is greater than 0, the host may determine that there is data to be sent by the first storage device SD1. The host may send a command UPIU corresponding to the read buffer CMD to the first storage device SD1, and may receive data corresponding to the debug log information from the first storage device SD1.
[0140] The host may transmit an internal command corresponding to the write buffer CMD to the second storage device SD2, or may transmit a command UPIU including the internal command to the second storage device SD2. In addition, the host may transmit a DATA OUT UPIU including data corresponding to the debug log information together with the transmission of the internal command to the second storage device SD2. The second storage device SD2 may transmit an internal response or a response UPIU including the internal response to the host, and the host may transmit the internal response from the second storage device SD2 to the first storage device SD1.
[0141] like Fig.24 As shown, as various types of information included in the internal command, 02h as the mode value can indicate that data will be sent through the write buffer CMD, and the buffer ID value can indicate the purpose of processing the provided data. As an example, when the buffer ID value is 40h, it can indicate that the data corresponds to the debug log information.
[0142] exist Fig.23 and Fig.24 In the example of managing storage devices according to internal commands or payloads, an example is described, but according to example embodiments, various types of internal commands or payloads may be communicated between storage devices. As an example, in order to synchronize garbage collection operations, any one storage device may provide an internal command or payload requesting execution of garbage collection to another storage device, or management operations of various methods may be performed, for example, temperature information detected by any one storage device is provided to another storage device.
[0143] In some example embodiments, each component represented by a block (including Figure 1-Figure 4) can be implemented as various numbers of hardware and / or firmware structures that perform the above-mentioned corresponding functions. For example, at least one of these components may include various hardware components, including digital circuits, programmable or non-programmable logic devices or arrays, application-specific integrated circuits (ASICs), transistors, capacitors, logic gates, or other circuits using direct circuit structures, such as memories, processors, logic circuits, lookup tables, etc., which can perform the corresponding functions under the control of one or more microprocessors or other control devices. In addition, at least one of these components may also include a processor or may be implemented by a processor such as a central processing unit (CPU), a microprocessor, etc. that performs the corresponding functions. The functional aspects of the example embodiments may be implemented in an algorithm executed on one or more processors. In addition, the components, elements, modules, or units represented by blocks or processing steps may use any number of related technologies for electronic configuration, signal processing and / or control, data processing, etc.
[0144] While aspects of the example embodiments have been particularly shown and described, it will be understood that various changes in form and details may be made therein without departing from the spirit and scope of the appended claims.
Claims
1. A method for operating a storage device that communicates with a host, the method comprising: receiving a first packet from the host; sending a second packet to the host in response to the first packet, wherein the second packet includes first information to be provided to an external storage device and a device ID value indicating the external storage device; and A third packet is received from the host, wherein the third packet includes second information generated by the external storage device.
2. The operating method according to claim 1, wherein: The second information includes response information generated by the external storage device in response to the first information.
3. The operating method according to claim 1, wherein: The third packet is generated by the external storage device, and the third packet is received separately from a packet according to an interface between the host and the storage device.
4. The operating method according to claim 1, wherein: The second information corresponds to a payload type, and the third packet is generated by the host according to an interface between the host and the storage device.
5. The operating method according to claim 1 , further comprising performing communication with the host according to a universal flash storage (UFS) interface, in, Each of the first to third packets includes a UFS protocol information unit (UPIU) corresponding to the UFS interface.
6. The operating method according to claim 5, wherein: The second packet includes a header area and an extra header segment EHS area corresponding to the UFS interface, wherein the device ID value is provided in the header area, and Wherein, the first information is provided in the EHS area.
7. The operating method according to claim 6, wherein: The EHS area includes an EHS header area and an EHS data area, and the EHS header area includes a plurality of fields. wherein the first information is provided in the EHS data area, and Wherein, a value indicating the format of the first information is provided in at least one field of the EHS header area.
8. The operating method according to claim 5, wherein: The first information indicates a command and is accompanied by data provided by the storage device, and The operation method further includes: receiving a read buffer command from the host after sending the second packet; and In response to receiving the read buffer command, the data is sent to the host.
9. The operating method according to claim 8, further comprising: generating debug log information based on an error occurring in the storage device, The first information indicates a command requesting storage of the debug log information, and the debug log information is sent to the host as the data.
10. The operating method according to claim 5, wherein: The second information indicates a command and accompanying data received by the storage device, and The operation method further includes: receiving a write buffer command from the host; and Data is received from the external storage device through the host.
11. A storage device comprising: a non-volatile memory core configured to store data; as well as A memory controller configured to communicate with a host according to a universal flash storage (UFS) interface, and comprising a packet management circuit configured to generate a first packet corresponding to a UFS protocol information unit (UPIU) and process a second packet received from the host, Wherein, the memory controller is further configured as: sending a first UPIU to the host, the first UPIU including first information to be provided to an external storage device, and A second UPIU is received from the host, the second UPIU including second information provided from the external storage device.
12. The storage device according to claim 11, wherein: Each of the first UPIU and the second UPIU includes a header area and an extra header segment EHS area corresponding to the UFS interface, and The group management circuit is further configured to include the first information in the EHS area of the first UPIU.
13. The storage device according to claim 12, wherein: The packet management circuit is further configured to store a device ID value of the external storage device in a header area of the first UPIU.
14. The storage device according to claim 13, wherein: The external storage device is one of a plurality of external storage devices, wherein the storage device is configured to communicate with the plurality of external storage devices, and The packet management circuit is further configured to provide a specific setting value as the device ID value in a header area of the first UPIU to control the host to provide the first information to each of the plurality of external storage devices.
15. The storage device according to claim 12, wherein: The memory controller further includes a command / response generation circuit configured to generate a first internal command to be provided to the external memory device or an internal response in response to a second internal command provided from the external memory device, and The packet management circuit is further configured to include the first internal command as the first information in the EHS area of the first UPIU.
16. The storage device according to claim 15, wherein: The EHS region includes an EHS header region having a plurality of fields and an EHS data region, and The packet management circuit is further configured to include a value indicating a format of an internal command in at least one field of the EHS header area of the first UPIU.
17. The storage device according to claim 15, wherein: the second information included in the second UPIU corresponds to an internal command generated by the external storage device, wherein the command / response generation circuit is further configured to generate the internal response in response to the internal command, and The packet management circuit is further configured to generate a third UPIU to be sent to the host, the third UPIU including the internal response.
18. A storage device comprising: a non-volatile memory core configured to store data; as well as a memory controller configured to control the storage device to send a transmission packet corresponding to a universal flash storage UFS protocol information unit UPIU to a host, and to receive a reception packet from the host according to a UFS interface, Wherein, the memory controller comprises: A UFS storage device interface configured to generate first information to be provided to an external storage device and a device ID indicating the external storage device; A transport protocol layer UTP protocol engine, configured to generate a first UPIU including the first information and the device ID; and The UFS interconnect layer is configured to send the first UPIU to the host.
19. The storage device according to claim 18, wherein: The UTP protocol engine is further configured to include the device ID in a header area of the first UPIU, and include the first information in an extra header segment EHS area of the first UPIU.
20. The storage device according to claim 19, wherein: The UTP protocol engine is further configured to receive a second UPIU including second information from the host, and identify a format of the second information based on a field value included in the EHS area of the second UPIU.
Citation Information
Patent Citations
Track equipment using semiconductor photolithography process
KR1020230126409A
Increase the therapeutic effect of HIV virus through CD4+ immune cells
KR1020240003845A