IP Library Granted Patent US 10,732,900
Granted Patent B2
US 10,732,900 · App. 16/169,863 · Granted Aug 4, 2020

Bounded latency and command non service methods and apparatus

Inventors: Neil Hutchison (Hudsonville, MI); Peter Grayson (Grand Rapids, MI); Xinde Hu (San Jose, CA); Daniel Helmick (Broomfield, CO); Rodney Brittner (San Jose, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0659G06F3/0611G06F3/0673G06F11/0757G06F12/0246G06F13/161G06F13/1642G06F2201/81G06F2201/835G06F2212/1024
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,900
App. No.
16/169,863
Granted
Aug 4, 2020
Kind
B2
Abstract

The present disclosure generally presents a method and apparatus to provide a bounded latency, where a device would report “non-service” of a command at the defined system level timeout or earlier if the device was unable to successfully return the data to the host.

Claims (42)

1. A method, comprising:

receiving one or more commands at a flash translation layer;

timestamping each command received at the flash translation layer, a timestamp of the respective command indicating a time when a latency threshold of the respective command will be exceeded;

adding each command received at the flash translation layer to a queue;

determining, for a next command to be performed in the queue, whether the respective command has timed out before being transferred from the queue for being performed based on the timestamp of the respective command; and

sending, for a command that has been determined to be timed out, a message to a host that the respective command has timed out.

2. The method according to claim 1 , wherein receiving the one or more commands at the flash translation layer includes receiving multiple commands at the flash translation layer.

3. The method according to claim 1 , wherein the flash translation layer is disposed in a memory device, and the memory device performs the receiving the one or more commands, the timestamping each command, the adding the command to the queue, the determining whether a command has timed out, and the sending the message to the host.

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

removing from the queue each command that has been determined to be timed out.

5. The method according to claim 1 , wherein the one or more commands are received at a solid state drive.

6. The method according to claim 1 , wherein the one or more commands are received at a hybrid drive.

7. The method according to claim 1 , wherein the one or more commands are received at a hard disk drive.

8. A method, comprising:

receiving one or more commands at a flash translation layer, wherein each command is required to be performed at a specified die;

timestamping each command received at the flash translation layer, a timestamp of the respective command indicating a time when a latency threshold of the respective command will be exceeded;

adding each command received at the flash translation layer to a queue;

determining, for a next command to be performed in the queue, whether the respective command has timed out before being transferred to the specified die based on the timestamp of the respective command;

sending, for a command that has been determined to be timed out, a message to a host that the respective command has timed out;

determining, for a next command to be performed in the queue that has not timed out, whether the respective command is expected to time out based on a latency for completion and the timestamp of the respective command, the latency for completion being based on a number of commands to be processed (i) before the respective command and (ii) by the specified die that is to perform the respective command; and

notifying, for a next command that is determined to be expected to time out, the host that the respective command is expected to time out.

9. The method according to claim 8 , wherein receiving the one or more commands at the flash translation layer includes receiving multiple commands at the flash translation layer.

10. The method according to claim 8 , further comprising:

removing from the queue each command that has been determined to be timed out.

11. The method according to claim 8 , further comprising:

determining, for each command in the queue, whether the respective command has timed out before being transferred to the specified die based on the timestamp of the respective command; and

determining, for each command in the queue that has not timed out, whether the respective command is expected to time out based on the respective latency for completion and the timestamp of the respective command.

12. The method according to claim 8 , wherein the one or more commands are received at a solid state drive.

13. The method according to claim 8 , wherein the one or more commands are received at a hybrid drive.

14. The method according to claim 8 , wherein the one or more commands are received at a hard disk drive.

15. A method, comprising:

receiving one or more commands at a flash translation layer, wherein each command is required to be performed at a specified die;

timestamping each command received at the flash translation layer, a timestamp of the respective command indicating a time when a latency threshold of the respective command will be exceeded;

adding each command received at the flash translation layer to a queue;

determining, for a next command to be performed in the queue that has not timed out, whether the respective command is expected to time out based on a latency for completion and the timestamp of the respective command, the latency for completion being based on a number of commands to be processed (i) before the respective command and (ii) by the specified die that is to perform the respective command; and

notifying, for a next command that is determined to be expected to time out, a host that the respective command is expected to time out.

16. The method according to claim 15 , wherein receiving the one or more commands at the flash translation layer includes receiving multiple commands at the flash translation layer, wherein the multiple commands are to be performed by a memory arrangement.

17. The method according to claim 15 , further comprising:

removing from the queue each command that has been determined to be timed out.

18. The method according to claim 15 , wherein the one or more commands are received at a solid state drive.

19. The method according to claim 15 , wherein the one or more commands are received at a hybrid drive.

20. The method according to claim 15 , wherein the one or more commands are received at a hard disk drive.

Assignments (10)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
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 →
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 24, 2018
From: HUTCHISON, NEIL; GRAYSON, PETER; HU, XINDE; HELMICK, DANIEL; BRITTNER, RODNEY
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047302/0915 →