IP Library Granted Patent US 10,895,991
Granted Patent B2
US 10,895,991 · App. 16/191,193 · Granted Jan 19, 2021

Solid state device with improved sustained data writing speed

Inventors: Vishwas Saxena (Bangalore, IN); Abhijit K. Rao (Bangalore, IN); Saifullah Mohiddin Nalatwad (Bangalore, IN); Sameer Hiware (Bangalore, IN)
Assignee: WESTERN DIGITAL TECHNOLOGIES, INC.
G06F3/0613G06F3/0631G06F3/0644G06F3/0659G06F3/0679G06F12/0246G06F2212/1024G06F2212/171G06F2212/214G06F2212/7202
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,895,991
App. No.
16/191,193
Granted
Jan 19, 2021
Kind
B2
Abstract

Aspects of the disclosure provide a data storage apparatus that includes a non-volatile memory (NVM) and a controller. The NVM includes a first NVM portion and a second NVM portion. The first NVM portion includes a plurality of first cell types. The first NVM portion includes a first sub-portion that is allocated to store file management data. The second NVM portion includes a plurality of second cell types. The controller is coupled to the NVM. The controller is configured to receive a plurality of payload data and a plurality of file management data; store the plurality of file management data at the first sub-portion of the first NVM portion; and store the plurality of payload data at the NVM.

Claims (89)

1. A data storage apparatus comprising:

a non-volatile memory (NVM) comprising:

a first NVM portion that includes a plurality of first cell types, wherein the first NVM portion comprises:

a first sub-portion that is allocated to store file management data; and

a second sub-portion that is allocated to store only payload data, wherein payload data does not include File Allocation Table (FAT) data; and

a second NVM portion that includes a plurality of second cell types; and

a controller coupled to the NVM, the controller configured to:

receive a plurality of payload data and a plurality of file management data;

store the plurality of file management data at the first sub-portion of the first NVM portion; and

store the plurality of payload data at the NVM.

2. The data storage apparatus of claim 1 , wherein the first sub-portion is allocated to only store FAT data.

3. The data storage apparatus of claim 1 , wherein storing the plurality of payload data at the NVM comprises storing the plurality of payload data at the second sub-portion of the first NVM.

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

determine whether there is space available for storing data at the second sub-portion of the first NVM portion; and

store one or more payload data at the second NVM portion, when there is no space available for storing data at the second sub-portion of the first NVM portion.

5. The data storage apparatus of claim 1 , wherein the controller is further configured to perform garbage collection at the first NVM portion.

6. The data storage apparatus of claim 1 , wherein the file management data includes File Allocation Table (FAT) data.

7. The data storage apparatus of claim 1 ,

wherein the plurality of first cell types comprises a plurality of single-level cells (SLCs), and

wherein the plurality of second cell types comprises a plurality of multi-level cells (MLCs) and/or a plurality of triple level cells (TLCs).

8. The data storage apparatus of claim 1 , wherein the data storage apparatus is a memory card.

9. The data storage apparatus of claim 1 , wherein the first NVM portion includes a first die and the second NVM portions includes a second die.

10. A data storage apparatus comprising:

a non-volatile memory (NVM) comprising:

a first NVM portion that includes a plurality of first cell types, wherein the first NVM portion comprises:

a first sub-portion that is allocated to store file management data; and

a second sub-portion that is allocated to store payload data,

a second NVM portion that includes a plurality of second cell types; and

a controller coupled to the NVM, the controller configured to:

receive a plurality of payload data and a plurality of file management data;

store the plurality of file management data at the NVM, wherein storing the plurality of file management data comprises:

determining whether there is space available for storing data at the first sub-portion of the first NVM portion;

storing one or more file management data at the first sub-portion of the first NVM portion, when there is space available for storing data at the first sub-portion of the first NVM portion; and

storing one or more file management data at the second NVM portion, when there is no space available for storing data at the first sub-portion of the first NVM portion; and

store the plurality of payload data at the NVM, wherein storing the plurality of payload data comprises:

determining whether there is space available for storing data at the second sub-portion of the first NVM portion;

storing one or more payload data at the second sub-portion of the first NVM portion, when there is space available for storing data at the second sub-portion of the first NVM portion; and

storing one or more payload data at the second NVM portion, when there is no space available for storing data at the second sub-portion of the first NVM portion.

11. A method for operating a data storage apparatus, comprising:

receiving data, at a controller coupled to a non-volatile memory (NVM), wherein the NVM comprises:

a plurality of first cell types comprising:

a first plurality of addresses allocated to store only file management data; and

a second plurality of addresses allocated to store only payload data wherein payload data does not include File Allocation Table (FAT) data; and

a plurality of second cell types comprising a third plurality of addresses;

determining whether the received data includes payload data or file management data;

storing the received data at one or more addresses from the first plurality of addresses, when the received data includes file management data; and

storing the received data at one or more addresses from the second plurality of addresses, when the received data includes payload data.

12. The method of claim 11 , wherein storing the received data at one or more addresses from the first plurality of addresses, when the received data includes file management data, comprises:

determining whether there is space available for storing data at the first plurality of addresses;

storing the received data at one or more addresses from the first plurality of addresses, when there is space available for storing data at the first plurality of addresses; and

storing the received data at one or more addresses from the third plurality of addresses, when there is no space available for storing data at the first plurality of addresses.

13. The method of claim 11 , further comprising:

determining whether the received data is associated with a Force Unit Access (FUA) command and/or a read modify write (RMW) command; and

storing the received data at one or more addresses from a fourth plurality of addresses of the plurality of first cell types, when the received data is associated with the FUA command and/or the RMW command.

14. The method of claim 13 , storing the received data at one or more addresses from the fourth plurality of addresses, when the received data is associated with the FUA command and/or the RMW command, comprises storing the received data in a buffer of the plurality of first cell types.

15. A method for operating a data storage apparatus, comprising:

receiving data, at a controller coupled to a non-volatile memory (NVM), wherein the NVM comprises:

a plurality of first cell types comprising:

a first plurality of addresses allocated to store file management data; and

a second plurality of addresses allocated to store payload data; and

a plurality of second cell types comprising a third plurality of addresses;

determining whether the received data includes payload data or file management data;

storing the received data at one or more addresses from the first plurality of addresses, when the received data includes file management data, wherein storing the received data at one or more addresses from the first plurality of addresses, when the received data includes file management data, comprises:

determining whether there is space available for storing data at the first plurality of addresses;

storing the received data at one or more addresses from the first plurality of addresses, when there is space available for storing data at the first plurality of addresses; and

storing the received data at one or more addresses from the third plurality of addresses, when there is no space available for storing data at the first plurality of addresses; and

storing the received data at one or more addresses from the second plurality of addresses, when the received data includes payload data, wherein storing the received data at one or more addresses from the first plurality of addresses, when the received data includes payload data, comprises:

determining whether there is space available for storing data at the second plurality of addresses;

storing the received data at one or more addresses from the second plurality of addresses, when there is space available for storing data at the second plurality of addresses; and

storing the received data at one or more addresses from the third plurality of addresses, when there is no space available for storing data at the second plurality of addresses.

16. A data storage apparatus comprising:

means for non-volatile storing of data comprising:

means for first non-volatile storing of data, wherein the means for first non-volatile storing of data includes a plurality of first cell types, the means for first non-volatile storing of data, comprising:

a first plurality of addresses allocated to store file management data; and

a second plurality of addresses allocated to store only payload data, wherein payload data does not include File Allocation Table (FAT) data; and

means for second non-volatile storing of data, wherein the means for second non-volatile storing of data includes a plurality of second cell types, the means for second non-volatile storing of data, comprising a third plurality of addresses; and

means for controlling the means for non-volatile storing of data, wherein the means for controlling the means for non-volatile storing of data includes:

means for receiving data;

means for determining whether the received data includes payload data or file management data;

means for storing the received data at one or more addresses from the first plurality of addresses, when the received data includes file management data; and

means for storing the received data at one or more addresses from the second plurality of addresses, when the received data includes payload data.

17. The data storage apparatus of claim 16 , wherein the means for first non-volatile storing of data includes a plurality of single level cells (SLCs).

18. The data storage apparatus of claim 16 , wherein the means for second non-volatile storing of data includes a plurality of multi-level cells (MLCs).

19. The data storage apparatus of claim 16 , wherein the means for second non-volatile storing of data includes a plurality of triple-level cells (TLCs).

20. The data storage apparatus of claim 16 , wherein means for controlling the means for non-volatile storing of data further includes:

means for determining whether there is space available for storing the received data at the second plurality of addresses;

means for storing the received data at the third plurality of addresses, when there is no space available for storing data at the second plurality of addresses and the received data includes payload data;

means for determining whether there is space available for storing the received data at the first plurality of addresses; and

means for storing the received data at the third plurality of addresses, when there is no space available for storing data at the first plurality of addresses and the received data includes file management data.

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 - 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 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Nov 14, 2018
From: SAXENA, VISHWAS; RAO, ABHIJIT K.; NALATWAD, SAIFULLAH MOHIDDIN; HIWARE, SAMEER
To: WESTERN DIGITAL TECHNOLOGIES, INC.
Reel/Frame 047505/0740 →