IP Library Granted Patent US 9,645,752
Granted Patent B1
US 9,645,752 · App. 14/322,594 · Granted May 9, 2017

Identification of data committed to non-volatile memory by use of notification commands

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 9,645,752
App. No.
14/322,594
Granted
May 9, 2017
Kind
B1
Abstract

Systems and methods for utilization of notification or ordering commands are disclosed that can enable more efficient processing of flush requests from software programs and increase data consistency in storage devices. A storage device can obtain a notification command from a host system identifying one or more data items in a cache of the storage device, determine whether the one or more data items have been committed to non-volatile memory of the storage device, and transmit a notification to the host system upon determining that the one or more data items have been committed. The host system may utilize these commands to process flush requests, such that upon receiving a flush request, a notification command may be issued requesting a notification from the storage device that the relevant data has been committed. Notification commands can target or limit the scope of a flush request, such that the speed and efficiency of the flush request processed using notification commands is increased relative to a non-specific full-cache flush. Such increases in efficiency of flush requests may greatly increase the speed and efficiency of storage devices, and consequently the performance of programs utilizing such storage devices.

Claims (36)

1. A physical data storage device comprising:

a non-volatile memory;

a volatile memory comprising a data cache configured to store a plurality of data items awaiting commitment to the non-volatile memory; and

a processor configured with specific computer-executable instructions that, when executed by the processor, cause the processor to:

receive, from a host system, a notification command identifying one or more data items within the data cache;

determine whether the one or more data items identified by the notification command have been committed to the non-volatile memory; and

upon determining that the one or more data items identified by the notification command have been committed to the non-volatile memory, transmit a notification to the host system that the one or more data items identified by the notification command have been committed to the non-volatile memory.

2. The physical data storage device of claim 1 , wherein the notification is transmitted via a serial ATA (SATA) protocol.

3. The physical data storage device of claim 1 , wherein the notification is transmitted at least in part via a processor interrupt signal.

4. The physical data storage device of claim 1 , wherein the notification command identifies the one or more data items based at least in part on a notification criteria.

5. The physical data storage device of claim 4 , wherein the notification criteria comprises one or more identifiers associated with the one or more data items.

6. The physical data storage device of claim 5 , wherein the specific computer-executable instructions further cause the processor to enqueue the notification command.

7. The physical data storage device of claim 1 , wherein the specific computer-executable instructions further cause the processor to implement native command queuing (NCQ).

8. The physical data storage device of claim 1 , wherein the specific computer-executable instructions further cause the processor to:

receive a consolidation request specifying a plurality of source identifiers and a resultant identifier; and

identify data items within the data cache associated with at least one source identifier of the plurality of source identifiers and associate the data items, identified as associated with at least one source identifier of the plurality of source identifiers, with the resultant identifier.

9. A computer-implemented method comprising:

receiving, at a storage system and from a host system, a notification command identifying one or more data items within a data cache of the storage system, wherein the data cache is implemented within volatile memory;

determining, at the storage system, whether the one or more data items identified by the notification command have been committed to a non-volatile memory of the storage system; and

on determining that the one or more data items identified by the notification command have been committed to the non-volatile memory, transmitting a notification from the storage system to the host system that the one or more data items identified by the notification command have been committed to the non-volatile memory.

10. The computer-implemented method of claim 9 , wherein the notification is transmitted via a serial ATA (SATA) protocol.

11. The computer-implemented method of claim 9 , wherein the notification is transmitted at least in part via a processor interrupt signal.

12. The computer-implemented method of claim 9 , wherein the notification command identifies the one or more data items based at least in part on a notification criteria.

13. The computer-implemented method of claim 12 , wherein the notification criteria comprises one or more identifiers associated with the one or more data items.

14. The computer-implemented method of claim 9 further comprising enqueuing the notification command within a logical work queue of the storage system.

15. The computer-implemented method of claim 9 , wherein the storage system implements native command queuing (NCQ).

16. A non-transitory computer-readable medium including computer-executable instructions that, when implemented by a controller of a storage system, cause the controller to:

receive, from a host system, a notification command identifying one or more data items within a data cache of the storage system, wherein the data cache is implemented within volatile memory;

determine whether the one or more data items identified by the notification command have been committed to a non-volatile memory of the storage system; and

on determining that the one or more data items identified by the notification command have been committed to the non-volatile memory, transmit a notification to the host system that the one or more data items identified by the notification command have been committed to the non-volatile memory.

17. The non-transitory computer-readable medium of claim 16 , wherein the notification is transmitted via the SATA protocol.

18. The non-transitory computer-readable medium of claim 16 , wherein the notification is transmitted at least in part via a processor interrupt signal.

19. The non-transitory computer-readable medium of claim 16 , wherein the notification command identifies the one or more data items based at least in part on a notification criteria.

20. The non-transitory computer-readable medium of claim 19 , wherein the notification criteria comprises one or more identifiers associated with the one or more data items.

21. The non-transitory computer-readable medium of claim 16 , wherein the specific computer-executable instructions further cause the controller to enqueue the notification command.

22. The non-transitory computer-readable medium of claim 16 , wherein the controller implements native command queuing (NCQ).

Assignments (8)
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 038744 FRAME 0481 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058982/0556 →
RELEASE OF SECURITY INTEREST Recorded Mar 5, 2018
From: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 045501/0714 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: U.S. BANK NATIONAL ASSOCIATION, AS COLLATERAL AGENT
Reel/Frame 038744/0281 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038722/0229 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 22, 2015
From: OBR, NATHAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 036153/0093 →