IP Library Granted Patent US 10,838,629
Granted Patent B2
US 10,838,629 · App. 16/140,163 · Granted Nov 17, 2020

Solid state device with fast boot after ungraceful shutdown

Inventors: Sridhar Prudvi Raj Gunda (Bangalore, IN); Lalit Mohan Soni (Bangalore, IN); Vijaya Janarthanam (Bangalore, IN); Judah Gamliel Hahn (Ofra, IL)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0617G06F3/068G06F3/0659G06F9/4401G06F12/0246G06F12/1009
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,838,629
App. No.
16/140,163
Granted
Nov 17, 2020
Kind
B2
Abstract

After an ungraceful shutdown (UGSD) event, a data storage apparatus restores a fast boot-up table from a copy stored in a non-volatile memory (NVM), and receives a first read command from a host. The first read command includes a request to read data from a logical block address (LBA). The apparatus maintains a fast boot-up table that includes a plurality of entries, and each entry includes an LBA and an associated physical block address of the NVM. If the LBA is contained in the fast boot-up table, the apparatus determines a first physical block address associated with the LBA using the fast boot-up table. The apparatus reads data from the NVM at the first physical block address, prior to completing an initialization process of the data storage apparatus, and transmits the data read from the NVM to the host.

Claims (100)

1. A data storage apparatus comprising:

a non-volatile memory (NVM);

a volatile memory configured to store a fast boot-up table comprising a plurality of entries, each entry comprising a logical block address (LBA); and

a controller operatively coupled to the NVM and the volatile memory,

wherein the controller is configured to:

restore, after an ungraceful shutdown (UGSD) event of the data storage apparatus, the fast boot-up table from a copy stored in the NVM;

receive a first read command from a host via a host interface after the UGSD event;

locate an entry in the fast boot-up table having an LBA indicated by the first read command;

read data associated with the LBA from the NVM prior to completing an initialization process of the data storage apparatus; and

transmit the data read from the NVM to the host.

2. The data storage apparatus of claim 1 , wherein the controller is further configured to:

during the initialization process, scan open blocks of the NVM to determine a last good page of each open block.

3. The data storage apparatus of claim 1 , wherein the controller is further configured to:

receive a second read command from the host after receiving the first read command;

read data from the NVM based on the second read command after completing the initialization process; and

transmit the data read from the NVM to the host.

4. The data storage apparatus of claim 3 , wherein the controller is configured to:

translate an LBA of the second read command to a physical block address of the NVM using a logical to physical (L2P) mapping table that is different from the fast boot-up table.

5. The data storage apparatus of claim 1 , wherein the controller is further configured to:

determine that no entry in the fast boot-up table matches the LBA indicated by the first read command; and

add an entry to the fast boot-up table for the LBA and an associated physical block address of the NVM.

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

determine that no entry in the fast boot-up table matches the LBA indicated by the first read command; and

replace an oldest entry in the fast boot-up table with a new entry for the LBA and an associated physical block address of the NVM.

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

receive a write command from the host;

write data to the NVM at a physical block address mapped to an LBA indicated by the write command; and

update the fast boot-up table to include an entry for the LBA of the write command.

8. The data storage apparatus of claim 7 , wherein the controller is further configured to:

synchronize the fast boot-up table to a copy in the NVM after completing the write command prior to performing further write commands from the host.

9. A method of operating a data storage apparatus comprising a non-volatile memory (NVM), comprising:

restoring, after an ungraceful shutdown (UGSD) event of the data storage apparatus, a fast boot-up table from a copy stored in the NVM;

receiving a first read command from a host after the UGSD event, the first read command comprising a request to read data from a logical block address (LBA);

determining whether or not the LBA is contained in the fast boot-up table that comprises a plurality of entries, each entry comprising an LBA and an associated physical block address of the NVM;

determining, if the LBA is contained in the fast boot-up table, a first physical block address associated with the LBA using the fast boot-up table;

reading data from the NVM at the first physical block address, prior to completing an initialization process of the data storage apparatus; and

transmitting the data read from the NVM to the host.

10. The method of claim 9 , further comprising:

if the LBA is not contained in the fast boot-up table, completing the initialization process; and

determining a second physical block address associated with the LBA using a logical to physical (L2P) mapping table that is different from the fast boot-up table;

reading data from the NVM at the second physical block address; and

transmitting the data read from the NVM to the host.

11. The method of claim 9 , further comprising:

receiving a second read command from the host after receiving the first read command, the second read command comprises a request to read data from an LBA;

determining a second physical block address associated with the LBA of the second read command using a logical to physical (L2P) mapping table that is different from the fast boot-up table;

reading data from the NVM at the second physical block address; and

transmitting the data stored at the second physical block address to the host.

12. The method of claim 9 , further comprising:

updating, if no entry in the fast boot-up table matches the LBA indicated by the first read command, the fast boot-up table to include an entry for the LBA, the updating comprising:

adding an entry to the fast boot-up table for the LBA and an associated physical block address of the NVM; or

replacing an oldest entry in the fast boot-up table with a new entry for the LBA and an associated physical block address of the NVM.

13. The method of claim 9 , further comprising:

receiving a write command from the host;

writing data to the NVM at a physical block address mapped to an LBA indicated by the write command;

updating the fast boot-up table to include an entry for the LBA of the write command; and

synchronizing the fast boot-up table to a copy in the NVM after completing the write command prior to performing further write commands from the host.

14. A data storage apparatus comprising:

a non-volatile memory (NVM);

means for, after an ungraceful shutdown (UGSD) event of the data storage apparatus, restoring a fast boot-up table from a copy stored in the NVM;

means for receiving a first read command from a host after the UGSD event, the first read command comprises a request to read data from a logical block address (LBA);

means for determining whether or not the LBA is contained in the fast boot-up table that comprises a plurality of entries, each entry comprising an LBA and an associated physical block address of the NVM;

means for, if the LBA is contained in the fast boot-up table, determining a first physical block address associated with the LBA using the fast boot-up table;

means for reading data from the NVM at the first physical block address, prior to completing an initialization process of the data storage apparatus; and

means for transmitting the data read from the NVM to the host.

15. The data storage apparatus of claim 14 , further comprising:

means for completing the initialization process comprising scanning open blocks of the NVM and determining a last good page of each open block.

16. The data storage apparatus of claim 14 , further comprising:

means for, if the LBA is not contained in the fast boot-up table, completing the initialization process; and

means for determining a second physical block address associated with the LBA using a logical to physical (L2P) mapping table that is different from the fast boot-up table;

means for reading data from the NVM at the second physical block address; and

means for transmitting the data read from the NVM to the host.

17. The data storage apparatus of claim 14 , further comprising:

means for receiving a second read command from the host after receiving the first read command, the second read command comprises a request to read data from an LBA;

means for determining a second physical block address associated with the LBA of the second read command using a logical to physical (L2P) mapping table that is different from the fast boot-up table;

means for reading data from the NVM at the second physical block address; and

means for transmitting the data of the second physical block address to the host.

18. The data storage apparatus of claim 14 , further comprising:

means for, if no entry in the fast boot-up table matches the LBA indicated by the first read command, adding an entry to the fast boot-up table for the LBA and an associated physical block address of the NVM.

19. The data storage apparatus of claim 14 , further comprising:

means for, if that no entry in the fast boot-up table matches the LBA indicated by the first read command, replacing an oldest entry in the fast boot-up table with a new entry for the LBA and an associated physical block address of the NVM.

20. The data storage apparatus of claim 14 , further comprising:

means for receiving a write command from the host;

means for writing data to the NVM at a physical block address mapped to an LBA indicated by the write command; and

means for updating the fast boot-up table to include an entry for the LBA of the write command.

21. The data storage apparatus of claim 20 , further comprising:

means for synchronizing the fast boot-up table to a copy in the NVM after completing the write command prior to performing further write commands from the host.

22. A data storage apparatus, comprising:

a non-volatile memory (NVM);

a volatile memory configured to store a fast boot-up table comprising a plurality of entries, each entry comprising a logical block address (LBA);

a host command handler configured to receive a first read command from a host after an ungraceful shutdown (UGSD) event of the data storage apparatus;

an LBA locator configured to locate an entry in the fast boot-up table having an LBA indicated by the first read command;

a NVM reader configured to read data associated with the LBA from the NVM prior to completing an initialization process of the data storage apparatus; and

a host transmitter configured to transmit the data read from the NVM to the host.

23. The data storage apparatus of claim 22 , further comprising:

an open block scanner configured to, during the initialization process, scan open blocks of the NVM to determine a last good page of each open block.

24. The data storage apparatus of claim 22 , wherein:

the host command handler is further configured to receive a second read command from the host after receiving the first read command; and

the NVM reader is further configured to read data from the NVM based on the second read command after completing the initialization process.

25. The data storage apparatus of claim 24 , further comprising:

a flash translation layer configured to translate an LBA of the second read command to a physical block address of the NVM using a logical to physical (L2P) mapping table that is different from the fast boot-up table.

Assignments (10)
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 - 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 Sep 24, 2018
From: GUNDA, SRIDHAR PRUDVI RAJ; SONI, LALIT MOHAN; JANARTHANAM, VIJAYA; HAHN, JUDAH GAMLIEL
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 046955/0043 →