Search

KR-102963950-B1 - STORAGE DEVICE AND OPERATING METHOD THEREOF

KR102963950B1KR 102963950 B1KR102963950 B1KR 102963950B1KR-102963950-B1

Abstract

To achieve the above-mentioned purpose according to the technical concept of the present disclosure, a storage device according to one aspect of the present disclosure comprises: a buffer memory configured to temporarily store data; a plurality of non-volatile memory devices; a storage controller operating in a congestion control mode that monitors the state of the buffer memory to generate buffer memory state information and sets buffer memory data transfer rights of the non-volatile memory based on the generated buffer memory state information; and a first interface circuit configured to communicate with the storage controller and the plurality of non-volatile memory devices. The first interface circuit is characterized by being connected to a network based on an Ethernet interface.

Inventors

  • 박준범

Assignees

  • 삼성전자주식회사

Dates

Publication Date
20260511
Application Date
20201214

Claims (10)

  1. Buffer memory configured to temporarily store data; Multiple non-volatile memory devices; A storage controller configured to monitor the state of the buffer memory to generate buffer memory state information, set buffer memory data transfer rights for non-volatile memory devices based on the generated buffer memory state information to operate in a congestion control mode, generate a plurality of data tokens based on the utilization rate of the buffer memory, allocate the data tokens to the plurality of non-volatile memory devices based on a priority table including a priority indicating the data transfer priority of the plurality of non-volatile memory devices and a plurality of weights for each of the plurality of non-volatile memory devices, and control whether data transfer is allowed for each of the plurality of non-volatile memory devices and the size of the data allowed for transfer according to the number of allocated data tokens; and A first interface circuit configured to communicate with the storage controller and the plurality of non-volatile memory devices; comprising The size of the data allowed to be transmitted for each of the plurality of non-volatile memory devices is proportional to the number of data tokens allocated to each of the plurality of non-volatile memory devices, and A storage device characterized in that the above-mentioned first interface circuit is connected to a network based on an Ethernet interface.
  2. In paragraph 1, A storage device characterized in that the plurality of non-volatile memory devices perform data transfer rate control based on received information including the buffer memory data transfer authority from the storage controller.
  3. In paragraph 1, The above storage controller is, A storage device characterized by controlling data transfer of the plurality of non-volatile memory devices based on the above priority table.
  4. In paragraph 3, A storage device characterized in that the weight for each of the above plurality of non-volatile memory devices is set based on the order of data requests and the amount of requested data.
  5. delete
  6. In paragraph 1, The above storage controller is, A storage device characterized by controlling data transfer of the non-volatile memory devices according to a pre-configured scheduling method based on the above priority table and the above plurality of data tokens.
  7. In paragraph 1, A storage device characterized by the above storage controller including a first step of operating in the congestion control mode when the utilization rate of the buffer memory exceeds a first limit value, and a second step of temporarily suspending data transmission when it exceeds a second limit value.
  8. In paragraph 1, A storage device characterized in that the storage controller controls at least one of the bandwidth, data transfer rate, or power consumption of the first interface circuit based on the utilization rate of the buffer memory.
  9. In paragraph 1, A storage device further comprising: a second interface circuit for controlling the data transfer amount of the plurality of non-volatile memory devices through the storage controller.
  10. In a method of operation of a storage device performed by a storage device, A step of generating buffer memory status information by monitoring the state of the buffer memory; A step of setting a data transfer mode of a plurality of non-volatile memory devices based on the generated buffer memory state information; A step of controlling the plurality of non-volatile memory devices based on the set data transmission mode; A step of generating a plurality of data tokens based on the utilization rate of the above buffer memory; A step of assigning data tokens to the plurality of non-volatile memory devices based on a priority table comprising a priority indicating the data transmission priority of the plurality of non-volatile memory devices and a plurality of weights for each of the plurality of non-volatile memory devices; and The method includes the step of controlling whether to allow data transmission of each of the plurality of non-volatile memory devices and the size of the data allowed for transmission according to the number of allocated data tokens. The size of the data allowed to be transmitted for each of the plurality of non-volatile memory devices is proportional to the number of data tokens allocated to each of the plurality of non-volatile memory devices, and A method of operation of a storage device including a congestion control mode that sets data transfer rights for a non-volatile memory device when the utilization rate of the buffer memory exceeds a preset reference value, wherein the above data transfer mode is a data transfer mode.

Description

Storage Device and Method of Operating the Storage Device The technical concept of the present disclosure relates to a storage system, and more specifically, to a storage system including a congestion control function using tokens. A representative example of a high-capacity storage device based on flash memory is the Solid State Drive (SSD). Along with the explosive increase in demand for SSDs, their applications are diversifying. For instance, applications can be subdivided into server SSDs, client SSDs, and data center SSDs. The SSD interface must be able to provide optimal speed and reliability according to each of these applications. To meet these requirements, SATA, SAS, and PCIe-based NVMe are being actively researched and applied. Recently, SSD interfaces are being actively developed to provide scalability in systems such as large-scale data centers. In particular, NVMe-oF (NVMe over Fabrics) is being actively researched as a standard for mounting SSDs on network fabrics, such as Ethernet switches. NVMe-oF supports NVMe storage protocols over a wide range of storage networking fabrics (e.g., Ethernet, Fibre Channel, InfiniBand, etc.). FIG. 1 is a drawing illustrating a storage system according to an exemplary embodiment of the present disclosure. FIG. 2 is a drawing illustrating a storage device according to an exemplary embodiment of the present disclosure. FIG. 3 is a drawing illustrating the operation of a storage device according to an exemplary embodiment of the present disclosure. FIG. 4 is a drawing illustrating the operation of a storage device according to an exemplary embodiment of the present disclosure. FIG. 5 is a diagram illustrating a congestion control mode of a storage device according to an exemplary embodiment of the present disclosure. FIG. 6 is a drawing illustrating a data token of a storage device according to an exemplary embodiment of the present disclosure. FIG. 7 is a diagram illustrating a congestion control signal of a storage device according to an exemplary embodiment of the present disclosure. FIG. 8 is a drawing illustrating a priority table of a storage device according to an exemplary embodiment of the present disclosure. FIG. 9 is a drawing illustrating a method for controlling congestion in a storage device according to an exemplary embodiment of the present disclosure. FIG. 10 is a drawing showing a data center to which a storage device according to one embodiment of the present invention is applied. Hereinafter, various embodiments of the present invention are described with reference to the accompanying drawings. FIG. 1 is a drawing illustrating a storage system according to an exemplary embodiment of the present disclosure. Referring to FIG. 1, the storage system (10) may include a host (100), a network (300), and a storage device (200). The host (100) and the storage device (200) may exchange data through the network (300). The data may include commands and may be referred to as packets, frames, messages, etc. Data transmitted by the host (100) may be referred to as command data, and data transmitted by the storage device (200) may be referred to as response data. The network (300) may be a network fabric such as Fibre Channel, Ethernet, or InfiniBand. The host (100) and the storage device (200) may include at least one network interface (NIF) for connecting to a network (300). The network interface may be referred to as a network interface card, a network interface controller, a LAN card, an Ethernet adapter, an Ethernet card, etc. The host (100) may include a host network interface (h_NIF, 130), a host controller (110), and memory (130). The storage device (200) may include a storage network interface (230), a buffer memory (240), a storage controller (210), a bus (220), and a plurality of memory devices (250). The host network interface (h_NIF, 230) can provide data to the storage device (200) through the network (300) or receive data from the storage device (200). The host controller (110) can generate multiple commands. The commands may be write commands, read commands, or erase commands, but are not limited thereto. The host controller (110) can provide the generated commands sequentially to the storage device (200). The storage device (200) can process the received commands sequentially and provide information about the processed commands to the host (100). The information about the commands may be identifier information of the commands. The host controller (110) can manage the operation of storing data (e.g., write data) of the buffer area (121) in the non-volatile memory (250) or storing data (e.g., read data) of the non-volatile memory (250) in the buffer area (121). The host memory (120) can function as a buffer memory for temporarily storing data to be transmitted to the storage device (200) or data transmitted from the storage device (200). According to one embodiment, the host controller (110) and the host memory (120) may be implemented as sep