IP Library Granted Patent US 12,013,796
Granted Patent B2
US 12,013,796 · App. 17/751,798 · Granted Jun 18, 2024

Storage controller managing completion timing, and operating method thereof

Inventors: Sangmuk Hwang (Jeonju-si, KR); Jaegeun Park (Suwon-si, KR); Hojun Shim (Seongnam-si, KR); Byungchul Yoo (Seongnam-si, KR)
Assignee: SAMSUNG ELECTRONICS CO., LTD.
G06F13/1642G06F13/161G06F13/1689G06F13/28
View Patent ↗
Loading inventors, assignments & file history…
Monitor This Case
Get email alerts when status or documents change.
Order Certified Copies
Most orders are placed with the USPTO same day — all within 24 business hours.
Order via The Patent Place →
Pre-filled with this patent's details
Quick Facts
Patent No.
US 12,013,796
App. No.
17/751,798
Granted
Jun 18, 2024
Kind
B2
Abstract

A storage controller includes a command manager and a direct memory access (DMA) engine. The command manager receives a first submission queue doorbell from an external device, fetches a first command including a first latency from the external device in response to the first submission queue doorbell, and determines a first timing to write a first completion into the external device based on the first latency, the first completion indicating that the first command is completely processed. The DMA engine receives a request signal requesting processing of the first command from the command manager, transfer data, which the first command requests, based on a DMA transfer in response to the request signal, and outputs a complete signal, which indicates that the first command is completely processed, to the command manager.

Claims (35)

1. A storage device comprising:

a nonvolatile memory device; and

a controller configured to receive a first submission queue doorbell and a second submission queue doorbell from an external device, and to fetch a first command in response to the first submission queue doorbell and fetch a second command in response to the second submission queue doorbell,

wherein the first command includes a first latency, and the second command includes a second latency,

the controller is configured to determine a first timing to write a first completion into the external device based on the first latency and a second timing to write a second completion into the external device based on the second latency, the first completion indicating that the first command is completely processed, the second completion indicating that the second command is completely processed, and

the controller is configured to determine an order that the controller processes the first command and the second command based on the first latency and the second latency.

2. The storage device of claim 1 , wherein the controller compares a first time period corresponding to the first latency and a second time period corresponding to the second latency, and determines the order of processing the first command and the second command based on the first time period and the second time period.

3. The storage device of claim 1 , wherein the controller stores data in the nonvolatile memory device or reads data stored in the nonvolatile memory device, without a control of the external device.

4. The storage device of claim 1 , wherein the first latency indicates a time period from a time point when the controller fetches the first command stored in a first submission queue to a time point when the first completion is written into a first completion queue.

5. The storage device of claim 1 , wherein the first latency indicates a time period from a time point when a third completion is written into a first completion queue to a time point when the first completion is written into the first completion queue.

6. The storage device of claim 1 , wherein the storage device communicates with the external device through a non-volatile memory express (NVMe) interface.

7. The storage device of claim 1 , wherein the controller communicates with the nonvolatile memory device based on a direct memory access transfer.

8. A storage device comprising:

a nonvolatile memory device; and

a controller configured to receive a first submission queue doorbell and a second submission queue doorbell from an external device, and to fetch a first command in response to the first submission queue doorbell and fetch a second command in response to the second submission queue doorbell,

wherein the first command includes a first latency, and the second command includes a second latency,

the controller is configured to determine a first timing to write a first completion into the external device based on the first latency and a second timing to write a second completion into the external device based on the second latency, the first completion indicating that the first command is completely processed, the second completion indicating that the second command is completely processed, and

the controller is configured to determine an order that the controller executes the first command and the second command based on the first latency and the second latency.

9. The storage device of claim 8 , wherein the controller compares a first time period corresponding to the first latency and a second time period corresponding to the second latency, and determines the order of execution of the first command and the second command based on the first time period and the second time period.

10. The storage device of claim 8 , wherein the controller stores data in the nonvolatile memory device or reads data stored in the nonvolatile memory device, without a control of the external device.

11. The storage device of claim 8 , wherein the first latency indicates a time period from a time point when the controller fetches the first command stored in a first submission queue to a time point when the first completion is written into a first completion queue.

12. The storage device of claim 8 , wherein the storage device communicates with the external device through a non-volatile memory express (NVMe) interface.

13. The storage device of claim 8 , wherein the controller communicates with the nonvolatile memory device based on a direct memory access transfer.

14. A storage device comprising:

a nonvolatile memory device; and

a controller configured to receive a first submission queue doorbell and a second submission queue doorbell from an external device, and to fetch a first command in response to the first submission queue doorbell and fetch a second command in response to the second submission queue doorbell,

wherein the first command includes a first latency, and the second command includes a second latency,

the controller is configured to determine a first timing to write a first completion into the external device based on the first latency and a second timing to write a second completion into the external device based on the second latency, the first completion indicating that the first command is completely processed, the second completion indicating that the second command is completely processed, and

the controller is configured to determine an order that the controller processes data associated with the first command and the second command based on the first latency and the second latency.

15. The storage device of claim 14 , wherein the controller compares a first time period corresponding to the first latency and a second time period corresponding to the second latency, and determines the order of processing the data associated with the first command and the second command based on the first time period and the second time period.

16. The storage device of claim 14 , wherein the controller stores data in the nonvolatile memory device or reads data stored in the nonvolatile memory device, without a control of the external device.

17. The storage device of claim 14 , wherein the first latency indicates a time period from a time point when the controller fetches the first command stored in a first submission queue to a time point when the first completion is written into a first completion queue.

18. The storage device of claim 14 , wherein the first latency indicates a time period from a time point when a third completion is written into a first completion queue to a time point when the first completion is written into the first completion queue.

19. The storage device of claim 14 , wherein the storage device communicates with the external device through a non-volatile memory express (NVMe) interface.

20. The storage device of claim 14 , wherein the controller communicates with the nonvolatile memory device based on a direct memory access transfer.

Priority Claims (1)
KR 10-2019-0172650 · Dec 23, 2019 · national
Continuity (2)
Division 16983471 · Aug 3, 2020
Related Publication 20220283962A1 · Sep 8, 2022