IP Library Granted Patent US 10,496,535
Granted Patent B2
US 10,496,535 · App. 16/011,569 · Granted Dec 3, 2019

Power-safe data management system

Inventors: Lyndon S. Chiu (Irvine, CA); Frederick H. Adi (Costa Mesa, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0804G06F3/0619G06F3/0647G06F3/0659G06F3/0685G06F3/0689G06F11/1441G06F12/0246G06F2212/1032G06F2212/2022
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,496,535
App. No.
16/011,569
Granted
Dec 3, 2019
Kind
B2
Abstract

Embodiments of the invention include systems and methods for recovering the system status and maintaining drive coherency after an unexpected power loss. In particular, these systems and methods reduce overhead for maintaining drive coherency by providing for pre-allocation of groups of write addresses and recording the pre-allocated groups of addresses to the non-volatile memory. Write processes can write to the pre-allocated group of addresses while the next group of addresses are pre-allocated and recorded to non-volatile memory.

Claims (86)

1. A method comprising:

loading a master record stored in a non-volatile memory after a power loss event occurred for a data storage system comprising the non-volatile memory;

determining, based on the master record, a first superblock of addresses in the non-volatile memory;

determining whether a last written page is detected from the first superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the first superblock of addresses in the non-volatile memory:

determining, based on the detected last written page, an address in the non-volatile memory; and

setting the address as a next write location for a write process associated with the first superblock of addresses in the non-volatile memory.

2. The method of claim 1 , further comprising:

in response to determining that the last written page is not detected from the first superblock of addresses in the non-volatile memory:

determining, based on the master record, a second superblock of addresses in the non-volatile memory;

determining whether the last written page is detected from the second superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the second superblock of addresses in the non-volatile memory:

determining, based on the detected last written page, an second address in the non-volatile memory; and

setting the second address as the next write location for a write process associated with the second superblock of addresses in the non-volatile memory.

3. The method of claim 2 , wherein the second address is an address within the second superblock of addresses in the non-volatile memory.

4. The method of claim 1 , wherein the address is an address within the first superblock of addresses in the non-volatile memory.

5. The method of claim 1 , further comprising:

determining, based on log data in the master record, a last logged page of the non-volatile memory; and

determining, based on the last logged page, the first superblock of addresses in the non-volatile memory.

6. The method of claim 5 , further comprising:

determining, based on the last logged page, the write process associated with the first superblock of addresses in the non-volatile memory; and

determining, based on the write process, the first superblock of addresses in the non-volatile memory.

7. The method of claim 1 , further comprising:

scanning the first superblock of addresses in the non-volatile memory; and

detecting, based on the scanning the first superblock of addresses in the non-volatile memory, the last written page.

8. The method of claim 7 , further comprising:

determining, based on the scanning the first superblock of addresses in the non-volatile memory, data operations performed at the first superblock of addresses in the non-volatile memory; and

updating log data in the master record with the determined data operations.

9. The method of claim 1 , wherein the first superblock of addresses in the non-volatile memory is designated as a previous superblock in the master record.

10. The method of claim 1 , wherein the first superblock of addresses in the non-volatile memory is designated as a current superblock in the master record.

11. A storage system comprising:

a non-volatile memory; and

a controller;

wherein the controller is configured to:

load a master record stored in a non-volatile memory after a power loss event occurred for a data storage system comprising the non-volatile memory;

determine, based on the master record, a first superblock of addresses in the non-volatile memory;

determine whether a last written page is detected from the first superblock of addresses in the non-volatile memory; and

when the last written page is detected from the first superblock of addresses in the non-volatile memory,

determine an address within the first superblock of addresses in the non-volatile memory, and

set the address as a next write location for a write process associated with the first superblock of addresses.

12. The storage system of claim 11 , wherein the controller is configured to:

when the last written page is not detected from the first superblock of addresses in the non-volatile memory,

determine a second superblock of addresses in the non-volatile memory;

determine whether the last written page is detected from the second superblock of addresses in the non-volatile memory; and

when the last written page is detected from the second superblock of addresses in the non-volatile memory,

determine an second address in the non-volatile memory, and

set the second address as the next write location for a write process associated with the second superblock of addresses.

13. The storage system of claim 12 , wherein the second address is an address within the second superblock of addresses in the non-volatile memory.

14. The storage system of claim 11 , wherein the controller is configured to:

determine a last logged page of the non-volatile memory based on log data in the master record; and

determine the first superblock of addresses in the non-volatile memory based on the last logged page.

15. The storage system of claim 14 , wherein the controller is configured to:

determine the write process associated with the first superblock of addresses in the non-volatile memory based on the last logged page; and

determine the first superblock of addresses in the non-volatile memory based on the write process.

16. The storage system of claim 11 , wherein the controller is configured to:

detect, based on a scan of the first superblock of addresses in the non-volatile memory, the last written page.

17. The storage system of claim 16 , wherein the controller is configured to:

determine data operations performed at the first superblock of addresses in the non-volatile memory based on the scan of the first superblock of addresses in the non-volatile memory; and

update log data in the master record with the data operations determined from the scan of the first superblock of addresses in the non-volatile memory.

18. A system comprising:

means for loading a master record stored in a non-volatile memory after a power loss event occurred for a data storage system comprising the non-volatile memory;

means for determining, based on the master record, a first superblock of addresses in the non-volatile memory;

means for determining whether a last written page is detected from the first superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the first superblock of addresses in the non-volatile memory:

means for determining, based on the detected last written page, an address in the non-volatile memory; and

means for setting the address as a next write location for a write process associated with the first superblock of addresses in the non-volatile memory.

19. The system of claim 18 , further comprising:

in response to determining that the last written page is not detected from the first superblock of addresses in the non-volatile memory:

means for determining, based on the master record, a second superblock of addresses in the non-volatile memory;

means for determining whether the last written page is detected from the second superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the second superblock of addresses in the non-volatile memory:

means for determining, based on the detected last written page, an second address in the non-volatile memory; and

means for setting the second address as the next write location for a write process associated with the second superblock of addresses in the non-volatile memory.

20. A non-transitory machine-readable medium including machine-executable instructions thereon that, when executed by a processor, perform a method comprising:

loading a master record stored in a non-volatile memory after a power loss event occurred for a data storage system comprising the non-volatile memory;

determining, based on the master record, a first superblock of addresses in the non-volatile memory;

determining whether a last written page is detected from the first superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the first superblock of addresses in the non-volatile memory:

determining, based on the detected last written page, an address in the non-volatile memory; and

setting the address as a next write location for a write process associated with the first superblock of addresses in the non-volatile memory;

in response to determining that the last written page is not detected from the first superblock of addresses in the non-volatile memory:

determining a second superblock of addresses in the non-volatile memory;

determining whether the last written page is detected from the second superblock of addresses in the non-volatile memory; and

in response to determining that the last written page is detected from the second superblock of addresses in the non-volatile memory:

determining, based on the detected last written page, an second address in the non-volatile memory; and

setting the second address as the next write location for a write process associated with the second superblock of addresses in the non-volatile memory.

Assignments (10)
SECURITY AGREEMENT (SUPPLEMENTAL) Recorded Nov 14, 2024
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 069411/0208 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Oct 11, 2024
From: SANDISK TECHNOLOGIES, INC.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 069168/0273 →
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 12, 2018
From: CHIU, LYNDON S.; ADI, FREDERICK H.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047152/0295 →