IP Library Granted Patent US 12,169,634
Granted Patent B2
US 12,169,634 · App. 17/852,360 · Granted Dec 17, 2024

Asynchronous operation completion notification

Inventors: Eyal Hamo (Naharia, IL); Tomer Spector (Kibbutz Ginegar, IL); Sagi Taragan (Ramat Ishay, IL)
Assignee: Western Digital Technologies, Inc.
G06F3/0619G06F3/0625G06F3/0659G06F3/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 12,169,634
App. No.
17/852,360
Granted
Dec 17, 2024
Kind
B2
Abstract

A data storage device comprising a non-volatile storage medium configured to store data, a data port configured to receive and transmit data between a host computer system and the data storage device, and a controller. The controller is configured to receive, via the data port, a notification activation, and receive, via the data port, a command data structure comprising a command for the data storage device to perform an operation. The controller is further configured to in response to receiving the command data structure, perform the operation, the operation being defined by an in-progress state and a completed state, and in response to determining that the operation is in the completed state and in response to determining the notification activation, transmit, via the data port, a response data structure comprising an indication that the operation is in the completed state.

Claims (77)

1. A data storage device comprising:

a non-volatile storage medium configured to store block data for a host computer system;

a data port configured to receive and transmit, using a data storage command set, the block data between the host computer system and the data storage device, wherein:

command data structures are transmitted between the host computer system as initiator and the data storage device as target in request-response operations; and

the data storage command set comprises a first command data structure, a second command data structure, and a third command data structure; and

one or more processors configured to, alone or in combination:

receive, via the data port, a first notification activation;

selectively activate, responsive to the first notification activation, a completion status notification for a first operation;

receive, via the data port, the first command data structure comprising a first command for the data storage device to perform the first operation;

in response to receiving the first command data structure, perform the first operation, wherein operations are defined by an in-progress state and a completed state;

in response to the activated completion status notification and determining that the first operation is in the completed state, transmit, via the data port, a first response data structure comprising an indication that the first operation is in the completed state;

receive, via the data port, the second command data structure comprising a second command for the data storage device to perform a second operation;

in response to receiving the second command data structure, perform the second operation;

receive, via the data port, the third command data structure comprising a status inquiry for the second operation; and

in response to the status inquiry, transmit, via the data port, a second response data structure comprising an indication of a state of the second operation.

2. The data storage device of claim 1 , wherein the first command data structure comprises the first notification activation.

3. The data storage device of claim 1 , wherein selectively activating the completion status notification for the first operation comprises determining a value of a data structure field associated with the first notification activation.

4. The data storage device of claim 1 , wherein:

the first notification activation comprises an indication of one or more activated operation types;

the first operation includes an operation type of the one or more activated operation types; and

the second operation does not include the one or more activated operation types.

5. The data storage device of claim 4 , wherein:

the first command data structure comprises a first operation type for the first operation;

selectively activating the completion status notification for the first operation comprises determining that the one or more activated operation types comprise the first operation type in the first command data structure;

the second command data structure comprises a second operation type for the second operation; and

the one or more processors are further configured to, alone or in combination, determine, based on the second operation type, that completion status notification is inactive for the second operation.

6. The data storage device of claim 1 , wherein the one or more processors are further configured to, alone or in combination:

in response to receiving the first notification activation, set a notification activation variable; and

in response to receiving a notification deactivation, clear the notification activation variable.

7. The data storage device of claim 6 , wherein selectively activating the completion status notification for the first operation comprises determining that the notification activation variable is set.

8. The data storage device of claim 1 , wherein the first notification activation comprises an indication of a post operation action.

9. The data storage device of claim 8 , wherein the one or more processors are further configured to, alone or in combination:

in response to determining that the first operation is in the completed state, perform, responsive to the indication of the post operation action, the post operation action.

10. The data storage device of claim 8 , wherein the post operation action comprises transitioning the device to a low power state.

11. The data storage device of claim 1 , wherein the one or more processors are further configured to, alone or in combination:

in response to determining that the first operation has reached a progress level and in response to the first notification activation, transmit, via the data port, a response data structure comprising an indication that the first operation has reached the progress level.

12. The data storage device of claim 11 , wherein the first notification activation comprises an indication of the progress level.

13. The data storage device of claim 1 , wherein:

prior to processing the second operation, completion status notification is active for the second operation; and

the one or more processors are further configured to, alone or in combination:

receive, via the data port and prior to processing the second operation, a notification deactivation for the second operation; and

selectively deactivate, responsive to the notification deactivation, completion status notification for the second operation.

14. The data storage device of claim 1 , wherein:

the first notification activation comprises an error notification activation; and

the one or more processors are further configured to, alone or in combination, and in response to determining that the first operation is in an error state and the error notification activation, transmit, via the data port, a third response data structure comprising an indication that the first operation is in an error state.

15. The data storage device of claim 1 , wherein the first notification activation is located in a header of the first command data structure.

16. The data storage device of claim 1 , wherein the indication that the first operation is in the completed state is located in a header of the first response datastructure.

17. The data storage device of claim 1 , wherein the data storage command set, the first command data structure, and the second command data structure are compatible with a version of a Joint Electron Device Engineering Council (JEDEC) Integrated Universal Flash Storage (UFS) Specification.

18. The data storage device of claim 1 , wherein the data storage command set, the first command data structure, and the second command data structure each comprise a Universal Flash Storage (UFS) Protocol Information Unit data structure.

19. A method comprising:

receiving, via a data port of a data storage device, a first notification activation, wherein:

the data port is configured to receive and transmit, using a data storage command set, block data between a host computer system and the data storage device;

command data structures are transmitted between the host computer system as initiator and the data storage device as target in request-response operations; and

the data storage command set comprises a first command data structure, a second command data structure, and a third command data structure;

selectively activating, by the data storage device and responsive to the first notification activation, a completion status notification for a first operation;

receiving, via the data port, the first command data structure comprising a first command for the data storage device to perform a first operation;

in response to receiving the first command data structure, performing, by the data storage device, the first operation, wherein operations are defined by an in-progress state and a completed state;

in response to the activated completion status notification and determining that the first operation is in the completed state, transmitting, via the data port, a first response data structure comprising an indication that the first operation is in the completed state;

receiving, via the data port, the second command data structure comprising a second command for the data storage device to perform a second operation;

in response to receiving the second command data structure, performing, by the data storage device, the second operation;

receiving, via the data port, the third command data structure comprising a status inquiry for the second operation; and

in response to the status inquiry, transmitting, via the data port, a second response data structure comprising an indication of a state of the second operation.

20. A data storage device comprising:

a non-volatile storage medium configured to store block data for a host computer system;

a data port configured to receive and transmit, using a data storage command set, the block data between the host computer system and the data storage device, wherein:

command data structures are transmitted between the host computer system as initiator and the data storage device as target in request-response operations; and

the data storage command set comprises a first command data structure, a second command data structure, and a third command data structure; and

means to:

receive a first notification activation;

selectively activate, responsive to the first notification activation, a completion status notification for a first operation;

receive the first command data structure comprising a first command for the data storage device to perform a first operation;

in response to receiving the first command data structure, perform the first operation, wherein operations are defined by an in-progress state and a completed state;

in response to the activated completion status notification and determining that the first operation is in the completed state, transmit a first response data structure comprising an indication that the first operation is in the completed state;

receive the second command data structure comprising a second command for the data storage device to perform a second operation;

in response to receiving the second command data structure, perform the second operation;

receive the third command data structure comprising a status inquiry for the second operation; and

in response to the status inquiry, transmit a second response data structure comprising an indication of a state of the second operation.

Assignments (8)
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 13, 2022
From: HAMO, EYAL; SPECTOR, TOMER; TARAGAN, SAGI
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060490/0175 →
Continuity (1)
Related Publication 20240004556A1 · Jan 4, 2024