IP Library Granted Patent US 11,042,322
Granted Patent B2
US 11,042,322 · App. 16/570,724 · Granted Jun 22, 2021

SSD supporting low latency operation

Inventors: Sebastian Troy (Abingdon, GB); Brian Clarke (Abingdon, GB)
Assignee: Toshiba Memory Corporation
G06F3/0655G06F3/0604G06F3/0679
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 11,042,322
App. No.
16/570,724
Granted
Jun 22, 2021
Kind
B2
Abstract

A method of managing writing data to a Solid State Drive (SSD). The method includes determining a remaining capacity of an event queue for queuing write commands for execution by the SSD. Dynamically setting an ingress throttle rate of write commands, transferred from a host interface to the event queue based on the remaining capacity of the event queue, during the operation of then SSD and transferring the write commands to the event queue at ingress throttle rate. The method also includes inputting write data associated with the write commands into a write data buffer.

Claims (41)

1. A method of managing writing data to a Solid State Drive (SSD), the method comprising:

determining a remaining capacity of an event queue for queuing write commands for execution by the SSD;

dynamically setting, during operation of the SSD, an ingress throttle rate of write commands transferred from a host interface to the event queue based on the remaining capacity of the event queue;

determining a remaining capacity of the write data buffer for storing data associated with write commands stored in the event queue; and

dynamically setting the ingress throttle rate based on the remaining capacity of the write data buffer,

transferring, at the ingress throttle rate, at least one write command of a plurality of write commands from the host interface to the event queue; and

inputting write data associated with the at least one write command into a write data buffer.

2. The method of claim 1 , the method further comprising dynamically resetting the ingress throttle after a predetermined time period.

3. The method of claim 1 , the method further comprising dynamically resetting the ingress throttle after a predetermined number of the write commands in the event queue have been executed.

4. The method of claim 1 , wherein dynamically setting the ingress throttle is further based on a write amplification factor of the SSD.

5. The method of claim 1 , wherein dynamically setting the ingress throttle is further based on one or more predefined parameters.

6. The method of claim 4 , wherein the predefined parameters are one or more of a desired number of write commands in the event queue, a desired amount of free slots in the event queue, a desired amount of write data in the write data buffer, a desired write data buffer remaining capacity, one or more PID controller parameters, or initial default throughput levels.

7. The method of claim 1 , wherein the remaining capacity of the event queue corresponds to a number of remaining free slots in the event queue, each slot associated with one write command.

8. The method of claim 1 , the method further comprising:

submitting a new write command at a tail of a submission queue; and wherein the transferring of the at least one command of the plurality of write commands from the host interface to the event queue is transferring one of the plurality of write commands at a head of the submission queue.

9. The method of claim 1 , the method further comprising:

executing one or more of the at least one write commands in the event queue by writing the write data associated with the at the one or more write commands to a non-volatile memory of the SSD.

10. A solid state drive (SSD) comprising:

a host interface and a memory controller, the memory controller configured to:

receive a plurality of write commands from a host via the host interface;

determine a remaining capacity of an event queue for storing the plurality of write commands received from the host interface;

dynamically set, during operation of the SSD, an ingress throttle rate of write commands transferred from the host interface to the event queue based on the remaining capacity of the event queue;

determining a remaining capacity of the write data buffer for storing data associated with write commands stored in the event queue; and

dynamically set the ingress throttle rate based on the remaining capacity of the write data buffer;

transfer, at the ingress throttle rate, at least one write command of a plurality of write commands from the host interface to the event queue; and

input, write data associated with the at least one write command into a write data buffer.

11. The SSD of claim 10 , wherein the memory controller is further configured to:

dynamically reset the ingress throttle after a predetermined time period.

12. The SSD of claim 10 , wherein the memory controller is further configured to:

dynamically reset the ingress throttle after a predetermined number of the write commands in the event queue have been executed.

13. The SSD of claim 10 , wherein the memory controller is further configured to:

further dynamically set the ingress throttle based on the write amplification factor of the SSD.

14. The SSD of claim 10 , wherein the memory controller is further configured to:

further dynamically set the ingress throttle further based on one or more predefined parameters.

15. The SSD of claim 14 , wherein the predefined parameters are one or more of a desired number of write commands in the event queue, a desired number of free, a desired amount of free slots in event queue, a desired amount of write data in the write data buffer, a desired write data buffer remaining capacity, one or more PID controller parameters, or fresh-out-of-the-box throughput levels.

16. The SSD of claim 10 , wherein the remaining capacity of the event queue corresponds to a number of remaining free slots in event queue, each slot associated with one write command.

17. The SSD of claim 10 , wherein the host is configured to place a new write command at a tail of a submission queue, and the memory controller is further configured to transfer the at least one command of the plurality of write commands from a head of the submission queue to the event queue.

18. The SSD of claim 10 , wherein the memory controller is further configured to:

execute one or more of the plurality of write commands in the event queue by writing the write data associated with the at the one or more write commands to a non-volatile memory of the SSD.

19. The SSD of claim 10 , wherein the memory controller comprises a PID controller configured to set the ingress throttle.

20. The SSD of claim 10 , further comprising a power loss protection buffer and wherein the write data buffer and the event queue are stored in the power loss protection buffer.

Assignments (4)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: TROY, SEBASTIAN; CLARKE, BRIAN
To: KIOXIA TECHNOLOGY UK LTD
Reel/Frame 064167/0198 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: KIOXIA TECHNOLOGY UK LTD
To: TOSHIBA MEMORY AMERICA, INC.
Reel/Frame 064167/0338 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 6, 2023
From: TOSHIBA MEMORY AMERICA, INC.
To: TOSHIBA MEMORY CORPORATION
Reel/Frame 064167/0549 →
CHANGE OF NAME AND ADDRESS Recorded Jan 31, 2022
From: TOSHIBA MEMORY CORPORATION
To: KIOXIA CORPORATION
Reel/Frame 058905/0582 →
Cited By (1)
US 12,287,969