IP Library Granted Patent US 9,817,577
Granted Patent B2
US 9,817,577 · App. 15/275,670 · Granted Nov 14, 2017

Methods, devices and systems for two stage power-on map rebuild with free space accounting in a solid state drive

Inventors: Andrew J. Tomlin (Irvine, CA); Justin Jones (Irvine, CA); Rodney N. Mullendore (San Jose, CA)
Assignees: Western Digital Technologies, Inc.; Skyera, LLC
G06F3/0607G06F3/0659G06F3/0688G06F12/0246G06F12/02G06F12/0292G06F2212/7201G06F2212/7205
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,817,577
App. No.
15/275,670
Granted
Nov 14, 2017
Kind
B2
Abstract

A data storage device comprises a non-volatile memory comprising a plurality of blocks, each configured to store a plurality of physical pages at predetermined physical locations. A controller programs and reads data stored in a plurality of logical pages. A volatile memory comprises a logical-to-physical address translation map configured to enabling determination of the physical location, within one or more physical pages, of the data stored in each logical page. A plurality of journals may be stored, each comprising a plurality of entries associating one or more physical pages to each logical page. At startup, the controller may read at least some of the plurality of journals in an order and rebuild the map; indicate a readiness to service data access commands after the map is rebuilt; rebuild a table from the map and, based thereon, select block(s) for garbage collection after having indicated the readiness to process the commands.

Claims (23)

1. A data storage device controller configured to couple to a non-volatile memory comprising a plurality of blocks, each block being configured to store a plurality of physical pages at predetermined physical locations, the controller comprising:

a processor configured to program data to and read data from the non-volatile memory, the data being stored in a plurality of logical pages;

a volatile memory comprising a logical-to-physical address translation map configured to enable the processor to a physical location, within one or more physical pages, of the data stored in each logical page; and

a plurality of journals stored in the non-volatile memory, each journal comprising a plurality of journal entries associating one or more physical pages to each logical page, wherein each of the plurality of journals covers a predetermined range of physical pages within one of the plurality of blocks;

wherein the controller is configured, upon startup, to:

read each of the plurality of journals in an order and to rebuild the map in the volatile memory from the read plurality of journals;

indicate a readiness to process data access commands after the map is rebuilt; and

rebuild a table from the map and select, based on the rebuilt table, at least one of the plurality of blocks for garbage collection after having indicated the readiness to process data access commands, wherein the table is configured to specify free space in each of the plurality of blocks.

2. The data storage device controller of claim 1 , wherein the table is configured to specify free space in each of the plurality of blocks, wherein each of the blocks has a predetermined size and wherein the processor is configured to calculate the amount of free space by subtracting a size of valid data in each block obtained from reading the map from the predetermined size.

3. The data storage device controller of claim 2 , wherein the processor is further configured to read sequentially through the map to determine, for each block, a size of valid data and to update a valid size information table with the determined size of valid data.

4. The data storage device controller of claim 3 , wherein the processor is further configured to carry out a separate free space accounting operation to update a free space for a block storing a logical page corresponding to an already read entry of the map that is updated after having indicated the readiness to service data access commands.

5. The data storage controller of claim 3 , wherein the processor is further configured to refrain from carrying out a separate free space accounting operation to update a free space for a block storing a logical page corresponding to a yet-to-be-read entry of the map that is updated after having indicated the readiness to service data access commands.

6. A method of controlling a data storage device comprising a non-volatile memory comprising a plurality of blocks, each block being configured to store a plurality of physical pages at predetermined physical locations, the method comprising:

programming data to and reading data from the non-volatile memory, the data being stored in a plurality of logical pages;

maintaining, in a volatile memory, a logical-to-physical address translation map configured to enable a determination of a physical location, within one or more physical pages, of the data stored in each logical page; and

maintaining, in the non-volatile memory, a plurality of journals, each journal comprising a plurality of journal entries associating one or more physical pages to each logical page, wherein each of the plurality of journals covers a pre-determined range of physical pages within one of the plurality of blocks and, upon startup:

reading each of the plurality of journals in an order and rebuilding the map in the volatile memory from the read plurality of journals;

indicating a readiness to process data access commands after the map is rebuilt; and

one of the plurality of blocks for garbage collection after having indicated the readiness to process data access command, wherein the table is configured to specify an amount of free space in each of the plurality of blocks, wherein the table is configured to specify an amount of free space in each of the plurality of blocks.

7. The method of claim 6 , wherein each of the blocks has a predetermined size and wherein the method further comprises calculating the amount of free space by subtracting a size of valid data in each block obtained from reading the map from the predetermined size.

8. The method of claim 7 , further comprising reading sequentially through the map to determine, for each block, a size of valid data and updating a valid size information table with the determined size of valid data.

9. The method of claim 8 , further comprising carrying out a separate free space accounting operation to update a free space for a block storing a logical page corresponding to an already read entry of the map that is updated after having indicated the readiness to service data access commands.

10. The method of claim 7 , further comprising refraining from carrying out a separate free space accounting operation to update a free space for a block storing a logical page corresponding to a yet-to-be-read entry of the map that is updated after having indicated the readiness to service data access commands.

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 - 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 →
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 May 29, 2018
From: SKYERA, LLC
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046726/0328 →
Continuity (2)
Division 13786352 · Mar 5, 2013
Related Publication 20170010823A1 · Jan 12, 2017