IP Library Granted Patent US 10,732,897
Granted Patent B2
US 10,732,897 · App. 16/026,965 · Granted Aug 4, 2020

Quality of service based arbitrations optimized for enterprise solid state drives

Inventor: Shay Benisty (Beer Sheva, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0659G06F3/0611G06F3/0679G06F13/1668G06F13/4282G06F2213/0032
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 10,732,897
App. No.
16/026,965
Granted
Aug 4, 2020
Kind
B2
Abstract

A method and apparatus for operating a solid state drive is disclosed comprising receiving at least two commands from a host requiring an action by the solid state drive in a preliminary order, ordering the at least two commands based upon a quality of service classification for the at least two commands to a final order and executing the at least two commands on the solid state drive in the final order, wherein an operational parameter of the solid state drive is modified by at least one of the at least two commands.

Claims (63)

1. A method of operating a solid state drive, comprising:

receiving at least two commands from a host requiring an action by the solid state drive in a preliminary order;

ordering the at least two commands based upon a quality of service classification for the at least two commands to a final order, wherein the ordering the at least two commands comprises:

estimating a time of completion for each of the at least two commands based on the preliminary order of completion for each of the at least two commands and a time stamp indicating a time of arrival for each of the at least two commands at the solid state drive;

comparing the estimated time of completion for each of the at least two commands to a threshold; and

reordering the preliminary order of completion to the final order of completion if the estimated time of completion for each of the at least two commands exceeds the threshold such that each of the at least two commands are completed by the threshold in the final order of completion; and

executing the at least two commands on the solid state drive in the final order, wherein an operational parameter of the solid state drive is modified by at least one of the at least two commands.

2. The method according to claim 1 , further comprising:

transmitting the at least two commands from the host to the solid state drive.

3. The method according to claim 1 , further comprising:

transmitting a completion notification for each of the at least two commands from the solid state drive to the host that each of the at least two commands have been completed.

4. The method according to claim 3 , further comprising:

sending an interrupt notification to the host from the solid state drive upon sending the completion notification.

5. The method according to claim 1 , further comprising:

attaching the time stamp indicating the time of arrival for each of the at least two commands at the solid state drive prior to ordering the at least two commands.

6. The method according to claim 1 , wherein the ordering of the at least two commands accounts for the time of arrival for each of the commands.

7. The method according to claim 1 , wherein the reordering the preliminary order of completion accounts for a bit error rate.

8. The method according to claim 1 , wherein the reordering the preliminary order of completion accounts for die utilization.

9. The method according to claim 1 , wherein the reordering the preliminary order of completion accounts for a type of memory zone in which data is stored.

10. The method according to claim 1 , wherein the reordering the preliminary order of completion involves a command arbitration performed by a controller of the solid state drive.

11. The method according to claim 10 , wherein the command arbitration is performed in a weighted round robin algorithm.

12. The method according to claim 11 , wherein weights used for the weighted round robin algorithm are assigned to the at least two commands by the host.

13. The method according to claim 12 , wherein the weights used are an administrative category, an urgent category, a high priority category, a medium priority category and a low priority category.

14. The method according to claim 1 , wherein the ordering the at least two commands is based on a classification of each of the two commands.

15. The method according to claim 14 , wherein the command arbitration is performed in a weighted round robin algorithm, and wherein weights used for the weighted round robin algorithm are assigned to the at least two commands by the host, and wherein the weights used are an administrative category, an urgent category, a high priority category, a medium priority category and a low priority category.

16. A method of operating a memory arrangement, comprising:

receiving at least two commands from a host at the memory arrangement through an interface of the memory arrangement in a preliminary order;

timestamping each of the at least two commands upon receipt of the commands at the interface;

arbitrating each of the at least two commands to create a final order for the performing each of the at least two commands, wherein the arbitrating each of the at least two commands comprises:

estimating a time of execution of each of the at least two commands based on the preliminary order;

comparing the estimated time of execution of each of the at least two commands to a threshold; and

reordering the preliminary order of completion to the final order if the estimated time of execution for each of the at least two commands exceeds the threshold such that each of the at least two commands are completed by the threshold in the final order; and

executing the at least two commands in the memory arrangement in the final order, wherein an operational parameter of the memory is modified by at least one of the at least two commands.

17. The method according to claim 16 , wherein the reordering the preliminary order of completion involves a command arbitration performed by a controller of the memory arrangement.

18. The method according to claim 16 , further comprising:

transmitting a completion notification for each of the at least two commands from the memory arrangement to the host that each of the at least two commands have been completed; and

sending an interrupt notification to the host from the memory arrangement upon sending the completion notification.

19. The method according to claim 16 , wherein the arbitrating each of the at least two commands is based on a classification of each of the two commands.

20. The method according to claim 16 , wherein the reordering the preliminary order of completion accounts for a bit error rate and die utilization.

21. An arrangement for operating a solid state drive, comprising:

means for receiving at least two commands from a host requiring an action by the solid state drive in a preliminary order;

means for ordering the at least two commands based upon a quality of service classification for the at least two commands to a final order, wherein the means for ordering the at least two commands comprises:

means for estimating a time of completion for each of the at least two commands based on the preliminary order of completion for each of the at least two commands and an attached time stamp indicating a time of arrival for each of the at least two commands at the solid state drive;

means for comparing the estimated time of completion for each of the at least two commands to a threshold; and

means for reordering the preliminary order of completion to the final order of completion if the estimated time of completion for each of the at least two commands exceeds the threshold such that each of the at least two commands are completed by the threshold in the final order of completion; and

means for executing at least one command on the solid state drive of the at least two commands in the final order, wherein an operational parameter of the solid state drive is modified by at least one of the at least two commands.

22. The arrangement according to claim 21 , further comprising:

means for sending the at least two commands from the host to the solid state drive.

23. The arrangement according to claim 21 , further comprising:

means for sending a completion notification for each of the at least two commands from the solid state drive to the host that each of the at least two commands have been completed.

24. The arrangement according to claim 21 , wherein the means for reordering the preliminary order of completion accounts for a bit error rate.

25. The arrangement according to claim 21 , wherein the means for reordering the preliminary order of completion accounts for die utilization.

26. The arrangement according to claim 21 , wherein the means for reordering the preliminary order of completion accounts for a type of memory zone in which data is stored.

27. The arrangement according to claim 21 , further comprising: means for attaching the time stamps indicating the time of arrival for each of the at least two commands at the solid state drive.

28. An apparatus for operating a memory arrangement, comprising:

means for receiving at least two commands from a host through an interface of the memory arrangement in a preliminary order;

means for timestamping each of the at least two commands upon receipt of the commands at the interface;

means for arbitrating each of the at least two commands to create a final order for the performing each of the at least two commands, wherein the means for arbitrating is performed through a weighted round robin algorithm, wherein the means for arbitrating each of the at least two commands comprises:

means for estimating a time of execution of each of the at least two commands based on the preliminary order;

means for comparing the estimated time of execution of each of the at least two commands to a threshold; and

means for reordering the preliminary order of completion to the final order if the estimated time of execution for each of the at least two commands exceeds the threshold such that each of the at least two commands are completed by the threshold in the final order; and

means for executing the at least two commands in the memory arrangement in the final order, wherein an operational parameter of the memory is modified by at least one of the at least two commands.

29. The apparatus according to claim 28 , further comprising: means for transmitting a completion notification for each of the at least two commands from the memory arrangement to the host that each of the at least two commands have been completed; and means for sending an interrupt notification to the host from the memory arrangement upon sending the completion notification.

Assignments (10)
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PATENT COLLATERAL AGREEMENT Recorded Aug 23, 2024
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS THE AGENT
Reel/Frame 068762/0494 →
CHANGE OF NAME Recorded Jun 27, 2024
From: SANDISK TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067982/0032 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded May 29, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 067567/0682 →
PATENT COLLATERAL AGREEMENT - DDTL LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 067045/0156 →
PATENT COLLATERAL AGREEMENT - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
RELEASE OF SECURITY INTEREST AT REEL 052915 FRAME 0566 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 059127/0001 →
SECURITY INTEREST Recorded Feb 6, 2020
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS AGENT
Reel/Frame 052915/0566 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 29, 2018
From: BENISTY, SHAY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047338/0689 →
Cited By (6)
US 12,405,824 US 12,499,040 US 12,541,451 US 12,619,380 US 12,645,397 US 12,711,057