IP Library Granted Patent US 9,933,955
Granted Patent B1
US 9,933,955 · App. 14/639,555 · Granted Apr 3, 2018

Power safe write buffer for data storage device

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,933,955
App. No.
14/639,555
Granted
Apr 3, 2018
Kind
B1
Abstract

Data from a host is received into a volatile memory of a Data Storage Device (DSD) for storage on a disk of the DSD. Data received in the volatile memory from the host is identified for inclusion in a Power Safe Write Buffer (PSWB) and an indication is sent to the host indicating storage of data received from the host and identified for inclusion in the PSWB before storing the identified data on the disk. In the event of an unexpected power loss of the DSD, the identified data is transferred from the volatile memory to a Non-Volatile Solid-State Memory (NVSM) of the DSD.

Claims (61)

1. A method for managing data stored in a Data Storage Device (DSD), the method comprising:

receiving data from a host into a volatile memory of the DSD for storage on a disk of the DSD;

determining whether to identify the data received in the volatile memory for inclusion in a Power Safe Write Buffer (PSWB) based on an amount of data that can be transferred from the volatile memory to a Non-Volatile Solid-State Memory (NVSM) of the DSD after an unexpected power loss; and

in response to identifying the data received in the volatile memory for inclusion in the PSWB:

sending an indication to the host indicating storage of the identified data before storing the identified data on the disk;

prioritizing the identified data in the volatile memory for storage on the disk over other data stored in a write cache of the volatile memory; and

transferring the identified data from the volatile memory to the NVSM in the event of an unexpected power loss of the DSD before storing the identified data on the disk.

2. The method of claim 1 further comprising keeping track of an amount of data stored in the volatile memory that is identified for inclusion in the PSWB.

3. The method of claim 1 , further comprising identifying additional data stored in the write cache of the volatile memory for inclusion in the PSWB.

4. The method of claim 1 , wherein in determining whether to identify the data for inclusion in the PSWB, the method further comprises excluding data from the PSWB that is larger than a predetermined size or that is sequentially addressed beyond a predetermined number of addresses.

5. The method of claim 1 , wherein in transferring the identified data from the volatile memory to the NVSM, the method further comprises storing metadata in the NVSM including addresses for the identified data.

6. The method of claim 1 , wherein in transferring the identified data from the volatile memory to the NVSM, the method further comprises encrypting the identified data for storage on the disk.

7. The method of claim 1 , wherein after power-up of the DSD following the unexpected power loss, the method further comprises storing on the disk the identified data that was transferred to the NVSM before performing other commands involving the identified data.

8. The method of claim 1 , wherein after power-up of the DSD following the unexpected power loss, the method further comprises storing in the volatile memory the identified data transferred to the NVSM.

9. The method of claim 1 , further comprising maintaining a PSWB log to indicate which of the identified data has been stored on the disk since power-up of the DSD after the unexpected power loss.

10. The method of claim 1 , wherein the NVSM includes a first segment for storing identified data transferred from the volatile memory after a previous unexpected power loss and a second segment for storing identified data transferred from the volatile memory after a current unexpected power loss.

11. A method for managing data stored in a Data Storage Device (DSD), the method comprising:

receiving data from a host into a volatile memory of the DSD for storage on a disk of the DSD;

determining whether to identify the data received in the volatile memory for inclusion in a Power Safe Write Buffer (PSWB), wherein data that is larger than a predetermined size or that is sequentially addressed beyond a predetermined number of addresses is excluded from the PSWB; and

in response to identifying the data received in the volatile memory for inclusion in the PSWB:

sending an indication to the host indicating storage of the identified data before storing the identified data on the disk;

prioritizing the identified data in the volatile memory for storage on the disk over other data stored in a write cache of the volatile memory; and

transferring the identified data from the volatile memory to the Non-Volatile Solid-State Memory (NVSM) of the DSD in the event of an unexpected power loss of the DSD before storing the identified data on the disk.

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

a disk for storing data;

a volatile memory for temporarily storing data to be stored on the disk;

a Non-Volatile Solid-State Memory (NVSM); and

a controller configured to:

receive data from a host into the volatile memory for storage on the disk;

determine whether to identify the data received in the volatile memory for inclusion in a Power Safe Write Buffer (PSWB) based on an amount of data that can be transferred from the volatile memory to the NVSM after an unexpected power loss; and

if the data received in the volatile memory is identified for inclusion in the PSWB:

send an indication to the host indicating storage of the identified data before storing the identified data on the disk;

prioritize the identified data in the volatile memory for storage on the disk over other data stored in a write cache of the volatile memory; and

transfer the identified data from the volatile memory to the NVSM in the event of an unexpected power loss of the DSD before storing the identified data on the disk.

13. The DSD of claim 1 , wherein the controller is further configured to keep track of an amount of data stored in the volatile memory that is identified for inclusion in the PSWB.

14. The DSD of claim 1 , wherein the controller is further configured to identify additional data stored in the write cache of the volatile memory for inclusion in the PSWB.

15. The DSD of claim 1 , wherein in determining whether to identify the data for inclusion in the PSWB, the controller is further configured to exclude data from the PSWB that is larger than a predetermined size or that is sequentially addressed beyond a predetermined number of addresses.

16. The DSD of claim 1 , wherein in transferring the identified data from the volatile memory to the NVSM, the controller is further configured to store metadata in the NVSM including addresses for the identified data.

17. The DSD of claim 1 , wherein in transferring the identified data from the volatile memory to the NVSM, the controller is further configured to encrypt the identified data for storage on the disk.

18. The DSD of claim 1 , wherein after power-up of the DSD following the unexpected power loss, the controller is further configured to store on the disk the identified data that was transferred to the NVSM before performing other commands involving the identified data.

19. The DSD of claim 1 , wherein after power-up of the DSD following the unexpected power loss, the controller is further configured to store in the volatile memory the identified data transferred to the NVSM.

20. The DSD of claim 1 , wherein the controller is further configured to maintain a PSWB log to indicate which of the identified data has been stored on the disk since power-up of the DSD after the unexpected power loss.

21. The DSD of claim 1 , wherein the NVSM includes a first segment for storing identified data transferred from the volatile memory after a previous unexpected power loss and a second segment for storing identified data transferred from the volatile memory after a current unexpected power loss.

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

a disk for storing data;

a volatile memory for temporarily storing data to be stored on the disk;

a Non-Volatile Solid-State Memory (NVSM); and

a controller configured to:

receive data from a host into the volatile memory for storage on the disk;

determine whether to identify the data received in the volatile memory for inclusion in a Power Safe Write Buffer (PSWB), wherein data that is larger than a predetermined size or that is sequentially addressed beyond a predetermined number of addresses is excluded from the PSWB; and

if the data received in the volatile memory is identified for inclusion in the PSWB:

send an indication to the host indicating storage of the identified data before storing the identified data on the disk;

prioritize the identified data in the volatile memory for storage on the disk over other data stored in a write cache of the volatile memory; and

transfer the identified data from the volatile memory to the NVSM in the event of an unexpected power loss of the DSD before storing the identified data on the disk.

23. A non-transitory computer readable medium storing computer executable instructions for managing data stored in a Data Storage Device (DSD), wherein when the computer executable instructions are executed by a controller, the computer executable instructions cause the controller to:

receive data from a host into a volatile memory of the DSD for storage on a disk of the DSD;

determine whether to identify the data received in the volatile memory for inclusion in a Power Safe Write Buffer (PSWB) based on an amount of data that can be transferred from the volatile memory to a Non-Volatile Solid-State Memory (NVSM) of the DSD after an unexpected power loss; and

if the data received in the volatile memory is identified for inclusion in the PSWB:

send an indication to the host indicating storage of the identified data before storing the identified data on the disk;

prioritize the identified data in the volatile memory for storage on the disk over other data stored in a write cache of the volatile memory; and

transfer the identified data from the volatile memory to the NVSM in the event of an unexpected power loss of the DSD before storing the identified data on the disk.

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: 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 →
SECURITY AGREEMENT Recorded May 17, 2016
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 038744/0481 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 14, 2015
From: GOSLA, ASIF F.; SUBRAMANIAM, VIJIYENDRAN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 037286/0294 →