IP Library Granted Patent US 9,639,287
Granted Patent B1
US 9,639,287 · App. 14/753,507 · Granted May 2, 2017

Write command reporting

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,639,287
App. No.
14/753,507
Granted
May 2, 2017
Kind
B1
Abstract

In operating a Data Storage Device (DSD) in communication with a host, a reported write command log is maintained that includes entries identifying pending write commands reported as completed to the host but whose data is not yet stored in at least one Non-Volatile Memory (NVM) of the DSD. The reported write command log is maintained to persist over power cycles. A write command is received from the host to store data in the at least one NVM and the data for the write command is buffered in a volatile memory of the DSD for storage in the at least one NVM. The reported write command log is updated to account for the write command as a pending write command reported as completed, and an indication is sent to the host reporting completion of the write command before completing storage of the data in the at least one NVM.

Claims (61)

1. A Data Storage Device (DSD), comprising:

at least one Non-Volatile Memory (NVM) for storing data;

a volatile memory; and

a controller configured to:

receive a write command from a host to store data in the at least one NVM;

buffer the data for the write command in the volatile memory for storage in the at least one NVM;

update a reported write command log to account for the write command as a pending write command reported as completed;

send an indication to the host reporting completion of the write command before completing storage of the data in the at least one NVM; and

wherein after power-up of the DSD, the controller is further configured to:

use the reported write command log to determine whether there are any pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM; and

if it is determined that there are one or more pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM, send a notification to the host indicating at least one pending write command reported as completed.

2. The DSD of claim 1 , wherein the controller is further configured to update or remove an entry from the reported write command log after data for a corresponding pending write command reported as completed has been stored in the at least one NVM.

3. The DSD of claim 1 , wherein the notification includes at least a portion of the reported write command log.

4. The DSD of claim 1 , wherein after sending the notification, the controller is further configured to:

receive a request for the reported write command log from the host; and

send the reported write command log to the host in response to the request.

5. The DSD of claim 1 , wherein the controller is further configured to:

maintain the reported write command log in the volatile memory; and

in the event of an unexpected power loss of the DSD, transfer the reported write command log to an NVM of the at least one NVM.

6. The DSD of claim 5 , wherein the at least one NVM includes a Non-Volatile Solid-State Memory (NVSM), and wherein the controller is further configured to transfer the reported write command log to the NVSM in the event of an unexpected power loss.

7. The DSD of claim 1 , wherein the controller is further configured to maintain the reported write command log in an NVM of the at least one NVM.

8. The DSD of claim 1 , wherein each entry of the reported write command log indicates a starting logical address of data for a corresponding pending write command reported as completed.

9. The DSD of claim 1 , wherein the reported write command log is maintained to persist over power cycles and includes entries identifying pending write commands reported as completed to one or more hosts but whose data is not yet stored in the at least one NVM.

10. The DSD of claim 9 , wherein each entry in the reported write command log indicates a corresponding host that sent a write command associated with the entry.

11. The DSD of claim 1 , wherein the controller is further configured to provide the host an indication of a number of write commands that can be recorded in the reported write command log.

12. The DSD of claim 1 , wherein the controller is further configured to delay sending the indication to the host reporting completion of the write command if the reported write command log becomes full or approaches a size limit.

13. The DSD of claim 1 , wherein the reported write command log indicates a completed portion of the data for the write command that has been stored in the at least one NVM.

14. The DSD of claim 1 , wherein the reported write command log includes an operational code indicating at least one of whether the data for the write command serves as repeated filler data to fill an area of the at least one NVM, whether the write command was for an extended sequential write, and whether a write verify operation is required before removing a corresponding entry for the write command from the reported write command log.

15. A method for operating a Data Storage Device (DSD), the method comprising:

receiving a write command from a host to store data in at least one Non-Volatile Memory (NVM) of the DSD;

buffering the data for the write command in a volatile memory of the DSD for storage in the at least one NVM;

updating a reported write command log to account for the write command as a pending write command reported as completed;

sending an indication to the host reporting completion of the write command before completing storage of the data in the at least one NVM; and

wherein after power-up of the DSD, the method further comprises:

using the reported write command log to determine whether there are any pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM; and

if it is determined that there are one or more pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM, sending a notification to the host indicating at least one pending write command reported as completed.

16. The method of claim 15 , further comprising updating or removing an entry from the reported write command log after data for a corresponding pending write command reported as completed has been stored in the at least one NVM.

17. The method of claim 15 , wherein the notification includes at least a portion of the reported write command log.

18. The method of claim 15 , wherein after sending the notification, the method further comprises:

receiving a request for the reported write command log from the host; and

sending the reported write command log to the host in response to the request.

19. The method of claim 15 , further comprising:

maintaining the reported write command log in the volatile memory; and

in the event of an unexpected power loss of the DSD, transferring the reported write command log to an NVM of the at least one NVM.

20. The method of claim 19 , wherein the at least one NVM includes a Non-Volatile Solid-State Memory (NVSM), and wherein the method further comprises transferring the reported write command log to the NVSM in the event of an unexpected power loss.

21. The method of claim 15 , further comprising maintaining the reported write command log in an NVM of the at least one NVM.

22. The method of claim 15 , wherein each entry of the reported write command log indicates a starting logical address of data for a corresponding pending write command reported as completed.

23. The method of claim 15 , wherein the reported write command log is maintained to persist over power cycles and includes entries identifying pending write commands reported as completed to one or more hosts but whose data is not yet stored in the at least one NVM.

24. The method of claim 23 , wherein each entry in the reported write command log indicates a corresponding host that sent a write command associated with the entry.

25. The method of claim 15 , further comprising providing the host an indication of a number of write commands that can be recorded in the reported write command log.

26. The method of claim 15 , further comprising delaying sending the indication to the host reporting completion of the write command if the reported write command log becomes full or approaches a size limit.

27. The method of claim 15 , wherein the reported write command log indicates a completed portion of the data for the write command that has been stored in the at least one NVM.

28. The method of claim 15 , wherein the reported write command log includes an operational code indicating at least one of whether the data for the write command serves as repeated filler data to fill an area of the at least one NVM, whether the write command was for an extended sequential write, and whether a write verify operation is required before removing a corresponding entry for the write command from the reported write command log.

29. A non-transitory computer readable medium storing computer executable instructions for operating a Data Storage Device (DSD), wherein when the computer executable instructions are executed by a controller of the DSD, the computer executable instructions cause the controller to:

receive a write command from a host to store data in at least one Non-Volatile Memory (NVM) of the DSD;

buffer the data for the write command in a volatile memory of the DSD for storage in the at least one NVM;

update a reported write command log to account for the write command as a pending write command reported as completed;

send an indication to the host reporting completion of the write command before completing storage of the data in the at least one NVM; and

wherein after power-up of the DSD, the controller is further configured to:

use the reported write command log to determine whether there are any pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM; and

if it is determined that there are one or more pending write commands reported as completed before power-up of the DSD but whose data is not yet stored in the at least one NVM, send a notification to the host indicating at least one pending write command reported as completed.

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 Oct 15, 2015
From: MALINA, JAMES N.; CHEN, ALBERT H.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 036802/0882 →