IP Library Granted Patent US 10,289,544
Granted Patent B2
US 10,289,544 · App. 15/214,345 · Granted May 14, 2019

Mapping tables for storage devices

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,289,544
App. No.
15/214,345
Granted
May 14, 2019
Kind
B2
Abstract

In some examples, a storage device includes a first non-volatile memory array configured to store data from a host device and the storage device and a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array. The storage device also includes a controller configured to store a virtual-to-physical mapping table to the first non-volatile memory array and store a portion of the virtual-to-physical mapping table to the second non-volatile memory array.

Claims (64)

1. A storage device comprising:

a first non-volatile memory array configured to store data from a host device and the storage device;

a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array;

a volatile memory configured to store information, including a virtual-to-physical mapping table;

a controller configured to:

process read and write commands using a portion of the virtual-to-physical mapping table during boot up, wherein the portion of the virtual-to-physical mapping table is less than all the virtual-to-physical mapping table, wherein the portion of the virtual-to-physical mapping table is stored in the second non-volatile memory array;

copy the virtual-to-physical mapping table from the first non-volatile memory array to the volatile memory array, wherein in the copying occurs during boot up;

store the virtual-to-physical mapping table to the first non-volatile memory array;

store a portion of the virtual-to-physical mapping table to the second non-volatile memory array;

perform a wear leveling and a garbage collection operation;

reposition data within the second non-volatile memory array based upon the wear leveling and garbage collection; and

update the virtual-to-physical mapping table based upon the repositioned data within the second non-volatile memory array.

2. The storage device of claim 1 , wherein the controller is further configured to, while copying the virtual-to-physical mapping table stored to the first non-volatile memory array to the volatile memory and in response to a read request or write request, access the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

3. The storage device of claim 1 , wherein the controller is further configured to select, using an algorithm, entries from the virtual-to-physical mapping table to store to the second non-volatile memory array.

4. The storage device of claim 3 , wherein the algorithm comprises a machine learning algorithm.

5. The storage device of claim 1 , wherein the controller is configured to store a complete version of the virtual-to-physical mapping table to the first non-volatile memory array, and

wherein the controller is further configured to store, during a boot process, the complete version of the virtual-to-physical mapping table to the volatile memory.

6. The storage device of claim 1 , wherein the controller is further configured to:

determine that the virtual-to-physical mapping table is not accessible in the volatile memory;

determine that an entry is located in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array; and

read the entry from the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

7. The storage device of claim 1 , wherein the controller is further configured to:

determine that the virtual-to-physical mapping table stored to the first non-volatile memory array is not accessible in the volatile memory during a boot process;

determine that an entry is not stored in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array during the boot process; and

read the entry from the virtual-to-physical mapping table when the virtual-to-physical mapping table is accessible in the volatile memory.

8. The storage device of claim 1 ,

wherein the first non-volatile memory array comprises a flash memory array, and

wherein the second non-volatile memory array comprises one of a magnetoresistive random-access memory array or a phase-change memory array.

9. The storage device of claim 1 , wherein the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array comprises a hash table, an associative table, or a tree-based indirection system.

10. The storage device of claim 1 , wherein the controller is configured to update the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array before the storage device powers off.

11. The storage device of claim 1 , wherein the virtual-to-physical mapping table indicates one or more pairs of a logical address and a physical address.

12. The storage device of claim 1 , wherein the second non-volatile memory array is configured to only store data from the storage device and not data from the host device.

13. The storage device of claim 1 , wherein the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array comprises a copy of a portion of the virtual-to-physical mapping table stored to the first non-volatile memory array.

14. The storage device of claim 1 ,

wherein the first non-volatile memory array is located in a mass storage area of the storage device, and

wherein the second non-volatile memory array is located in the controller.

15. A method comprising:

storing, by a volatile memory of a storage device, information including a virtual-to-physical mapping table;

storing, by a controller of a storage device, the virtual-to-physical mapping table to a first non-volatile memory array configured to store data from a host device and the storage device;

storing, by the controller, a portion of the virtual-to-physical mapping table to a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array;

performing, by a controller a wear leveling and a garbage collection operation;

repositioning data within the non-volatile memory array based upon the wear leveling and garbage collection;

updating, by the controller the virtual-to-physical mapping table based upon the repositioned data within the second non-volatile memory array;

processing, by the controller, read and write commands using a portion of the virtual-to-physical mapping table during boot up, wherein the portion of the virtual-to-physical mapping table is less than all the virtual-to-physical mapping table, wherein the portion of the virtual-to-physical mapping table is stored in the second non-volatile memory array; and

copying, by the controller the virtual-to-physical mapping table from the first non-volatile memory array to the volatile memory array, wherein in the copying occurs during boot up.

16. The method of claim 15 , further comprising, while copying the virtual-to-physical mapping table stored to the first non-volatile memory array to a volatile memory array and in response to a read request or write request, access the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

17. The method of claim 15 , further comprising:

selecting, by the controller and using an algorithm, entries from the virtual-to-physical mapping table to store to the second non-volatile memory array.

18. The method of claim 15 , further comprising:

determining, by the controller, that the virtual-to-physical mapping table is not accessible in a volatile memory array;

determining, by the controller, that an entry is located in the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array; and

reading, by the controller, the entry from the portion of the virtual-to-physical mapping table stored to the second non-volatile memory array.

19. The method of claim 15 ,

wherein the first non-volatile memory array comprises a flash memory array, and

wherein the second non-volatile memory array comprises one of a magneto resistive random-access memory array or a phase-change memory array.

20. A computer-readable storage device comprising instructions that, when executed, configure one or more processors of the storage device to:

store information including a virtual-to-physical mapping table to a volatile memory configured to store data from the storage device;

store a virtual-to-physical mapping table to a first non-volatile memory array configured to store data from a host device and the storage device;

store a portion of the virtual-to-physical mapping table to a second non-volatile memory array configured to store data from the storage device, wherein the second non-volatile memory array is separate from the first non-volatile memory array; and

perform a wear leveling and a garbage collection operation;

reposition data within the second non-volatile memory array based upon the wear leveling and garbage collection;

update the virtual-to-physical mapping table based upon the repositioned data within the second non-volatile memory array;

process read and write commands using a portion of the virtual-to-physical mapping table during boot up, wherein the portion of the virtual-to-physical mapping table is less than all the virtual-to-physical mapping table, wherein the portion of the virtual-to-physical mapping table is stored in the second non-volatile memory array; and

copy the virtual-to-physical mapping table from the first non-volatile memory array to the volatile memory array, wherein in the copying occurs during boot up.

Assignments (13)
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 →
SECURITY AGREEMENT Recorded Apr 25, 2025
From: SANDISK TECHNOLOGIES, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 071050/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 - 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 →
CORRECTIVE ASSIGNMENT TO CORRECT THE INCORRECT SERIAL NO 15/025,946 PREVIOUSLY RECORDED AT REEL: 040831 FRAME: 0265. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Sep 15, 2017
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 043973/0762 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Dec 6, 2016
From: HGST NETHERLANDS B.V.
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 040831/0265 →
CORRECTIVE ASSIGNMENT TO CORRECT THE EXECUTION DATE FOR THE 4TH INVENTOR PREVIOUSLY RECORDED ON REEL 039192 FRAME 0772. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Nov 8, 2016
From: GEML, ADAM CHRISTOPHER; MCCAMBRIDGE, COLIN CHRISTOPHER; SANDERS, PHILIP JAMES; SENDELBACH, LEE ANTON
To: HGST NETHERLANDS B.V.
Reel/Frame 040576/0046 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Jul 19, 2016
From: GEML, ADAM CHRISTOPHER; MCCAMBRIDGE, COLIN CHRISTOPHER; SANDERS, PHILIP JAMES; SENDELBACH, LEE ANTON
To: HGST NETHERLANDS B.V.
Reel/Frame 039192/0772 →