IP Library Granted Patent US 10,379,755
Granted Patent B2
US 10,379,755 · App. 14/923,000 · Granted Aug 13, 2019

System data storage mechanism providing coherency and segmented data loading

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,379,755
App. No.
14/923,000
Granted
Aug 13, 2019
Kind
B2
Abstract

A data storage subsystem is disclosed that implements a process for storing and/or reconstructing system data, such as a system mapping table. In certain embodiments, table pages are systematically copied, or flushed, to non-volatile memory in a progressive manner, according to a fixed ratio of flushed table pages per table update trigger, thereby facilitating write and/or load efficiency. Full or partial reconstruction of a table may be performed within a bounded number of operations based on the size of the table, the ratio implemented, and/or other characteristics.

Claims (25)

1. A method of storing and recovering a segmented system table having y table pages in a data storage system, the method comprising:

in response to updating a first table page of the segmented system table in a volatile memory:

flushing the updated first table page from the volatile memory to a non-volatile memory; and

flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page;

loading a set of z table pages divided into a plurality of segments from the non-volatile memory to the volatile memory according to individual segments;

determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending;

processing a segment containing the address of the host data access request when it is determined that the host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments;

locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment; and

recovering the segmented system table using a number of load operations less than or equal to twice a size of the segmented system table measured in segments.

2. The method of claim 1 , wherein a first of the individual segments loaded into volatile memory, when no host data access request is pending, comprises a segment of the set of z table pages that were most recently stored to non-volatile memory.

3. The method of claim 1 , wherein a first of the individual segments loaded into volatile memory, when no host data access request is pending, comprises an oldest valid table page of the set of z table pages stored in non-volatile memory.

4. A non-volatile storage system comprising:

a non-volatile memory configured to store data;

a volatile memory; and

a controller configured to store and recover a segmented system table having y table pages by:

in response to updating a first table page of the segmented system table in the volatile memory:

flushing the updated first table page from the volatile memory to the non-volatile memory; and

flushing, from the volatile memory to the non-volatile memory, one or more additional table pages of the segmented system table in the volatile memory based at least on a predetermined ratio of a number of flushed table pages to a number of segmented system table update triggers to keep table pages in the non-volatile memory updated, wherein the one or more additional table pages are different from the first table page;

loading a set of z table pages divided into a plurality of segments from a non-volatile memory to a volatile memory according to individual segments;

determining whether a host data access request accessing an address within a yet-to-be loaded segment of the plurality of segments is pending;

processing a segment containing the address of the host data access request when it is determined that a host data access request is pending and is within the yet-to-be loaded segment of the plurality of segments;

locating and copying into the volatile memory, by individual segment, a most up-to date version of each table page contained in the individual segment; and

recovering the segmented system table using a number of operations less than or equal to twice a size of the segmented system table measured in segments.

5. The non-volatile storage system of claim 4 , wherein a first of the individual segments loaded into volatile memory, when no host data access request is pending, comprises a segment of the set of z table pages that were most recently stored to non-volatile memory.

6. The non-volatile storage system of claim 4 , wherein a first of the individual segments loaded into volatile memory, when no host data access request is pending, comprises an oldest valid table page of the set of z table pages stored in non-volatile memory.

Assignments (8)
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 039389 FRAME 0699 Recorded Feb 8, 2022
From: JPMORGAN CHASE BANK, N.A.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 058965/0553 →