IP Library Granted Patent US 11,789,860
Granted Patent B2
US 11,789,860 · App. 17/694,470 · Granted Oct 17, 2023

Logical to physical mapping management using low-latency non-volatile memory

Inventors: Amir Hossein Gholamipour (Anaheim, CA); Mark David Myran (Trabuco Canyon, CA); Chandan Mishra (Irvine, CA); Namhoon Yoo (Anaheim, CA); Jun Tao (Ladera Ranch, CA)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F12/0246G06F11/1441G06F11/1471G06F12/0804G06F2201/81G06F2201/84G06F2212/1024G06F2212/7201G06F2212/7203
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 11,789,860
App. No.
17/694,470
Granted
Oct 17, 2023
Kind
B2
Abstract

Disclosed are systems and methods for providing logical to physical (L2P) table management using low-latency NVM to reduce solid state drive (SSD) random access memory (RAM) footprint. A method includes determining a logical to physical (L2P) mapping of a logical address to a physical address in a flash storage, for an operation directed to the logical address. The method also includes adding a data entry, comprising the L2P mapping, to an open journal structure in RAM. The method also includes adding a log entry, comprising the L2P mapping, to a buffer in the RAM. The method also includes flushing the buffer to a low-latency NVM storage in response to determining that the buffer has satisfied a size threshold. Reads, snapshotting and L2P table recovery are also described.

Claims (72)

1. A method for a data storage system comprising a first storage, a second storage and a third storage, the method comprising:

providing a first-type entry, comprising a logical to physical (L2P) mapping, to an open journal structure in the third storage, wherein the L2P mapping is a mapping of a logical address to a physical address in the first storage;

providing a second-type entry, comprising the L2P mapping, to a memory in the third storage;

converting the open journal structure to a closed journal structure;

obtaining a first snapshot, corresponding to an L2P table of the first storage, from a first location in the second storage;

combining the first snapshot with the closed journal structure to generate a second snapshot; and

writing the second snapshot at a second location in the second storage, wherein the second location is different from the first location.

2. The method of claim 1 , comprising:

flushing the memory into the second storage when the memory has satisfied a size threshold, wherein the second storage has lower latency than the first storage,

wherein the converting comprising converting the open journal structure to the closed journal structure when the open journal structure is full.

3. The method of claim 1 , wherein the open journal structure is configured to store up to a predetermined number of entries that is less than or equal to one eighth of a maximum logical page index for the first storage.

4. The method of claim 1 ,

wherein the L2P mapping is for an operation directed to the logical address, and

wherein the method comprises:

receiving a request for a second L2P mapping of a read operation directed to a second logical address;

obtaining the second L2P mapping from a third snapshot in the second storage when the second L2P mapping is not found in the open journal structure; and

causing a commencement of the read operation based on the second L2P mapping.

5. The method of claim 4 , wherein the method comprises searching a cache entry tree for a cache address that corresponds to the L2P mapping.

6. The method of claim 1 , wherein:

the L2P table of the first storage for the first snapshot is consistent with a first time; and

the second snapshot corresponds to an L2P table of the first storage consistent with a second time after the first time.

7. The method of claim 1 , comprising:

determining that a power failure has occurred and the data storage system has restarted in an offline mode;

rebuilding a plurality of journal structures, including the open journal structure, in the third storage based on parsing a first journal in the second storage; and

restoring the memory from a copy stored in a non-volatile memory in response to the power failure.

8. The method of claim 1 , wherein the first storage comprises a first type of flash memory, the second storage comprises a second type of flash memory, and the third storage comprises volatile memory having lower latency than the second storage.

9. The method of claim 1 , wherein:

the L2P mapping is for an operation directed to the logical address; and

the first-type entry and the second-type entry are provided when the operation is committed to the first storage.

10. A data storage system, comprising:

a first storage, a second storage, a third storage, and one or more controllers,

wherein the one or more controllers are configured to cause:

providing a first-type entry, comprising a logical to physical (L2P) mapping, to an open journal structure in the third storage, wherein the L2P mapping is a mapping of a logical address to a physical address in the first storage;

providing a second-type entry, comprising the L2P mapping, to a memory in the third storage;

converting the open journal structure to a closed journal structure;

obtaining a first snapshot, corresponding to an L2P table of the first storage, from a first location in the second storage;

combining the first snapshot with the closed journal structure to generate a second snapshot; and

writing the second snapshot at a second location in the second storage, wherein the second location is different from the first location.

11. The data storage system of claim 10 , wherein the one or more controllers are configured to cause: flushing the memory into the second storage when the memory has satisfied a size threshold, wherein the second storage has lower latency than the first storage, and

wherein the converting comprising converting the open journal structure to the closed journal structure when the open journal structure is full.

12. The data storage system of claim 10 , wherein the open journal structure is configured to store up to a predetermined number of entries that is less than or equal to one eighth of a maximum logical page index for the first storage.

13. The data storage system of claim 10 ,

wherein the L2P mapping is for an operation directed to the logical address, and

wherein the one or more controllers are configured to cause:

receiving a request for a second L2P mapping of a read operation directed to a second logical address;

obtaining the second L2P mapping from a third snapshot in the second storage when the second L2P mapping is not found in the open journal structure; and

causing a commencement of the read operation based on the second L2P mapping.

14. The data storage system of claim 13 , wherein the one or more controllers are configured to cause searching a cache entry tree for a cache address that corresponds to the L2P mapping.

15. The data storage system of claim 10 , wherein:

the L2P table of the first storage for the first snapshot is consistent with a first time; and

the second snapshot corresponds to an L2P table of the first storage consistent with a second time after the first time.

16. The data storage system of claim 10 , wherein the one or more controllers are configured to cause:

determining that a power failure has occurred and the data storage system has restarted in an offline mode;

rebuilding a plurality of journal structures, including the open journal structure, in the third storage based on parsing a first journal in the second storage; and

restoring the memory from a copy stored in a non-volatile memory in response to the power failure.

17. The data storage system of claim 10 , wherein the first storage comprises a first type of flash memory, the second storage comprises a second type of flash memory, and the third storage comprises volatile memory having lower latency than the second storage.

18. The data storage system of claim 10 , wherein:

the L2P mapping is for an operation directed to the logical address; and

the first-type entry and the second-type entry are provided when the operation is committed to the first storage.

19. An apparatus, comprising:

a first storage;

a second storage;

a third storage;

means for providing a first-type entry, comprising a logical to physical (L2P) mapping, to an open journal structure in the third storage, wherein the L2P mapping is a mapping of a logical address to a physical address in the first storage;

means for providing a second-type entry, comprising the L2P mapping, to a memory in the third storage;

means for converting the open journal structure to a closed journal structure;

means for obtaining a first snapshot, corresponding to an L2P table of the first storage, from a first location in the second storage;

means for combining the first snapshot with the closed journal structure to generate a second snapshot; and

means for writing the second snapshot at a second location in the second storage, wherein the second location is different from the first location.

20. The apparatus of claim 19 , comprising:

means for flushing the memory into the second storage when the memory has satisfied a size threshold, wherein the second storage has lower latency than the first storage,

wherein the means for converting comprising means for converting the open journal structure to the closed journal structure when the open journal structure is full.

Assignments (9)
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/0001 →
PARTIAL RELEASE OF SECURITY INTERESTS Recorded Apr 25, 2025
From: JPMORGAN CHASE BANK, N.A., AS AGENT
To: SANDISK TECHNOLOGIES, INC.
Reel/Frame 071382/0001 →
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 - A&R LOAN AGREEMENT Recorded Aug 21, 2023
From: WESTERN DIGITAL TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A.
Reel/Frame 064715/0001 →
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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 5, 2022
From: TAO, JUN
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 061099/0765 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Apr 5, 2022
From: GHOLAMIPOUR, AMIR HOSSEIN; MYRAN, MARK DAVID; MISHRA, CHANDAN; YOO, NAMHOON
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 060363/0931 →