Search

US-12625646-B2 - Storage device, storage controller, and operating method for reordering read requests

US12625646B2US 12625646 B2US12625646 B2US 12625646B2US-12625646-B2

Abstract

A storage device includes a storage controller controlling a plurality of read operations in response to a plurality of read requests sequentially received from a host, a plurality of nonvolatile memories connected to the storage controller through a plurality of channels and performing the plurality of read operations in parallel, and a buffer memory connected to the plurality of nonvolatile memories. Each read operation includes an internal transmission period for transmitting read data from a nonvolatile memory to the buffer memory and an external transmission period for transmitting the read data from the buffer memory to the host. The storage controller reorders an output sequence of a plurality of pieces of read data and sequentially transmits the plurality of pieces of read data to the host according to the reordered output sequence.

Inventors

  • Sundong KIM
  • Eunkyung Park
  • Syungki Lee
  • Juhun Choi

Assignees

  • SAMSUNG ELECTRONICS CO., LTD.

Dates

Publication Date
20260512
Application Date
20240815
Priority Date
20240110

Claims (19)

  1. 1 . A storage device comprising: a storage controller configured to control, in response to a plurality of read requests sequentially received from a host, a plurality of read operations respectively corresponding to the plurality of read requests; a plurality of nonvolatile memories connected to the storage controller through a plurality of channels and configured to perform the plurality of read operations in parallel; and a buffer memory connected to the plurality of nonvolatile memories, wherein each read operation of the plurality of read operations includes a respective internal transmission period for transmitting read data from the plurality of nonvolatile memories to the buffer memory and a respective external transmission period for transmitting the read data from the buffer memory to the host, and wherein the storage controller is configured to: reorder, based on the internal transmission periods of the plurality of read operations, an output sequence of a plurality of pieces of read data respectively corresponding to the plurality of read requests such that read data corresponding to a read operation with a longest internal transmission period among the plurality of read operations is arranged to be output first, and sequentially transmit the plurality of pieces of read data to the host according to the reordered output sequence.
  2. 2 . The storage device of claim 1 , wherein the respective internal transmission period of each read operation includes: a respective first period for transmitting the read data from a memory cell array to a page buffer circuit in a corresponding nonvolatile memory among the plurality of nonvolatile memories; and a respective second period for transmitting the read data from the page buffer circuit to the buffer memory.
  3. 3 . The storage device of claim 1 , wherein the respective external transmission period includes a pending period in which the read data is pending in the buffer memory.
  4. 4 . The storage device of claim 3 , wherein the storage controller is configured to reorder the output sequence of the plurality of pieces of read data such that a pending period of read data corresponding to a read operation with the longest internal transmission period among the plurality of read operations is shorter than pending periods of other read data.
  5. 5 . The storage device of claim 1 , further comprising a host interface configured to sequentially receive the plurality of read requests from the host and sequentially transmit the plurality of pieces of read data to the host according to the reordered output sequence.
  6. 6 . The storage device of claim 5 , wherein the host interface is configured to receive a first read request among the plurality of read requests and then receive a second read request among the plurality of read requests, wherein the plurality of nonvolatile memories are configured to perform in parallel a first read operation of reading first read data according to the first read request and a second read operation of reading second read data according to the second read request, and wherein the storage controller is configured to reorder, when a second internal transmission period of the second read operation is longer than a first internal transmission period of the first read operation, the output sequence such that the second read data is first output and then the first read data is output.
  7. 7 . The storage device of claim 6 , wherein a first nonvolatile memory of the plurality of nonvolatile memories configured to perform the first read operation is configured to be in an idle state before the first read operation, and wherein a second nonvolatile memory of the plurality of nonvolatile memories configured to perform the second read operation is configured to perform a program operation, an erase operation, or other read operations before the second read operation.
  8. 8 . The storage device of claim 6 , wherein the storage controller is configured to reorder the output sequence such that a first transmission time during which the first read data is transmitted from the buffer memory to the host is longer than a second transmission time during which the second read data is transmitted from the buffer memory to the host.
  9. 9 . The storage device of claim 1 , wherein the storage controller comprises a response reordering module configured to reorder the output sequence based on at least one of read latencies of the plurality of read requests, a reception order in which the plurality of read requests are received from the host, and a state of a transmission channel connected to the host, and the respective internal transmission periods.
  10. 10 . The storage device of claim 9 , wherein the storage controller further comprises a command recording module configured to record the reception order in which the plurality of read requests are received from the host.
  11. 11 . The storage device of claim 10 , wherein the storage controller further comprises a command reordering module configured to reorder, according to the reception order, a transmission order in which a plurality of read commands corresponding to the plurality of read requests are transmitted to the plurality of nonvolatile memories.
  12. 12 . The storage device of claim 9 , wherein the storage controller further comprises a monitoring module configured to monitor the state of the transmission channel connected to the host.
  13. 13 . The storage device of claim 12 , wherein the response reordering module is configured to: sequentially transmit the plurality of pieces of read data to the host when the transmission channel is in an idle state as a result of the monitoring; and reorder the output sequence of the plurality of pieces of read data when the transmission channel is in a busy state as a result of the monitoring.
  14. 14 . A storage controller for controlling a plurality of nonvolatile memories, the storage controller comprising: a host interface configured to sequentially receive a plurality of read requests from a host; a response reordering module configured to reorder, based on execution times of a plurality of read operations executed in the plurality of nonvolatile memories in response respectively to the plurality of read requests, an output sequence of a plurality of pieces of read data respectively corresponding to the plurality of read requests such that read data corresponding to a read operation with an execution time longer than a reference time is first output; and a nonvolatile memory interface configured to transmit a plurality of read commands respectively corresponding to the plurality of read requests to the plurality of nonvolatile memories in parallel through a plurality of channels, wherein the host interface is configured to sequentially transmit the plurality of pieces of read data to the host according to the reordered output sequence.
  15. 15 . The storage controller of claim 14 , further comprising a buffer memory connected to the plurality of nonvolatile memories, wherein each of the plurality of read operations includes an internal transmission period for transmitting read data from the plurality of nonvolatile memories to the buffer memory and an external transmission period for transmitting the read data from the buffer memory to the host, and wherein the response reordering module is configured to reorder the output sequence of the plurality of pieces of read data based on the internal transmission periods respectively corresponding to the plurality of read operations.
  16. 16 . The storage controller of claim 15 , wherein the response reordering module is configured to reorder the output sequence of the plurality of pieces of read data such that read data corresponding to a read operation with a longest internal transmission period among the plurality of read operations is first output.
  17. 17 . The storage controller of claim 15 , wherein the external transmission period includes a pending period in which the read data is pending in the buffer memory.
  18. 18 . The storage controller of claim 17 , wherein the response reordering module is configured to reorder the output sequence of the plurality of pieces of read data such that a pending period of read data corresponding to a read operation with a longest internal transmission period among the plurality of read operations is shorter than pending periods of other read data.
  19. 19 . An operating method of a storage controller, the operating method comprising: sequentially receiving a plurality of read requests from a host; transmitting a plurality of read commands respectively corresponding to the plurality of read requests to a plurality of nonvolatile memories; transmitting a plurality of pieces of read data from the plurality of nonvolatile memories to a buffer memory; reordering, based on execution times of a plurality of read operations executed in the plurality of nonvolatile memories in response respectively to the plurality of read requests, an output sequence of the plurality of pieces of read data such that read data corresponding to a read operation with an execution time longer than a reference time is first output; and sequentially transmitting the plurality of pieces of read data to the host according to the reordered output sequence.

Description

CROSS-REFERENCE TO RELATED APPLICATION This application claims priority to Korean Patent Application No. 10-2024-0004351, filed in the Korean Intellectual Property Office on Jan. 10, 2024, the disclosure of which is incorporated by reference herein in its entirety. BACKGROUND A storage device may include a storage controller and a nonvolatile memory device, and the nonvolatile memory device may include a plurality of nonvolatile memories. In this case, when the storage controller is connected to the plurality of nonvolatile memories through a plurality of channels, memory operations on the plurality of nonvolatile memories may be performed in parallel. As the number of nonvolatile memories included in the storage device increases and the performance of the nonvolatile memories improves, the performance of the storage device may improve. In this case, an order reversal phenomenon in which a memory operation corresponding to a request received later from a host is performed earlier than a memory operation corresponding to a request received earlier from the host, for example, out-of-order, may occur, thus affecting latency. SUMMARY In general, in some aspects, the present disclosure is directed toward a storage device, a storage controller, and an operating method of the storage controller that may improve a read latency. According to some implementation, the present disclosure is directed to a storage device including a storage controller configured to control, in response to a plurality of read requests sequentially received from a host, a plurality of read operations respectively corresponding to the plurality of read requests, a plurality of nonvolatile memories connected to the storage controller through a plurality of channels and configured to perform the plurality of read operations in parallel, and a buffer memory connected to the plurality of nonvolatile memories, wherein each read operation of the plurality of read operations includes a respective internal transmission period for transmitting read data from the plurality of nonvolatile memories to the buffer memory and a respective external transmission period for transmitting the read data from the buffer memory to the host, and the storage controller is configured to reorder, based on the internal transmission periods of the plurality of read operations, an output sequence of a plurality of pieces of read data respectively corresponding to the plurality of read requests, and sequentially transmit the plurality of pieces of read data to the host according to the reordered output sequence. According to some implementations, the present disclosure is directed to a storage controller for controlling a plurality of nonvolatile memories, the storage controller including a host interface configured to sequentially receive a plurality of read requests from a host, a response reordering module configured to reorder, based on execution times of a plurality of read operations executed in the plurality of nonvolatile memories in response respectively to the plurality of read requests, an output sequence of a plurality of pieces of read data respectively corresponding to the plurality of read requests such that read data corresponding to a read operation with an execution time longer than a reference time is first output, and a nonvolatile memory interface configured to transmit a plurality of read commands respectively corresponding to the plurality of read requests to the plurality of nonvolatile memories in parallel through a plurality of channels, wherein the host interface is configured to sequentially transmit the plurality of pieces of read data to the host according to the reordered output sequence. According to some implementations, the present disclosure is directed to an operating method of a storage controller, the operating method including sequentially receiving a plurality of read requests from a host, transmitting a plurality of read commands respectively corresponding to the plurality of read requests to a plurality of nonvolatile memories, transmitting a plurality of pieces of read data from the plurality of nonvolatile memories to a buffer memory, reordering, based on execution times of a plurality of read operations executed in the plurality of nonvolatile memories in response respectively to the plurality of read requests, an output sequence of the plurality of pieces of read data such that read data corresponding to a read operation with an execution time longer than a reference time is first output, and sequentially transmitting the plurality of pieces of read data to the host according to the reordered output sequence. BRIEF DESCRIPTION OF THE DRAWINGS Example implementations will be more clearly understood from the following detailed description, taken in conjunction with the accompanying drawings. FIG. 1 is a block diagram illustrating an example of a storage system according to some implementations. FIG. 2 is a block diagram illustr