IP Library Granted Patent US 10,628,044
Granted Patent B2
US 10,628,044 · App. 15/996,303 · Granted Apr 21, 2020

Dynamic allocation of volatile memory to storage management components of a non-volatile storage device

Inventors: Steven Gaskill (Campbell, CA); Yin Feng Zhang (Shanghai, CN); Dan Z. Tupy (Roseville, CA)
Assignee: MICRON TECHNOLOGY, INC.
G06F3/0608G06F3/068G06F3/0632G06F3/0638G06F3/0656G06F12/0802G06F2212/1044G06F2212/205
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,628,044
App. No.
15/996,303
Granted
Apr 21, 2020
Kind
B2
Abstract

Exemplary methods, apparatuses, and systems include firmware for the non-volatile storage device, during boot up, dynamically allocating volatile memory to a plurality of storage management components. The allocation includes detecting an indicator of a total amount of volatile memory to be allocated to the storage management components. The firmware maps the indicator to a first amount of volatile memory to allocate to a first set of one or more components and allocates the first amount of the volatile memory to the first set of components. The firmware allocates remaining volatile memory to a flash translation layer.

Claims (43)

1. A method, comprising:

allocating volatile memory to a plurality of storage management components of a non-volatile storage device during boot up of firmware for the non-volatile storage device, wherein the allocating of volatile memory includes:

detecting an indicator of a total amount of volatile memory to be allocated to the plurality of storage management components;

mapping the indicator to a first amount of volatile memory to allocate to a first set of one or more components of the plurality of storage management components, wherein the first amount is a proper subset of the total amount of volatile memory to be allocated;

allocating the first amount of the volatile memory to the first set of components; and

allocating remaining volatile memory to a flash translation layer.

2. The method of claim 1 , further comprising:

initializing a data structure to indicate free space in a volatile memory; and

in response to allocating the first amount of volatile memory, updating the data structure to indicate an amount of free space in volatile memory remaining for allocation to the flash translation layer.

3. The method of claim 1 , wherein the first set of components includes a serial communication port and the first amount of the volatile memory allocates one or more buffers for the serial communication port.

4. The method of claim 1 , wherein allocating the first amount of the volatile memory includes allocating a firmware download buffer, a command buffer, or a combination thereof.

5. The method of claim 1 , wherein the indicator is one of: a product identifier for the non-volatile storage device, an amount of non-volatile storage, or an amount of volatile storage.

6. The method of claim 1 , wherein the allocation of the volatile memory to the plurality of storage management components is a one-time process performed during an initial boot up of the firmware.

7. The method of claim 1 , wherein the allocation of the volatile memory to the plurality of storage management components is performed prior to execution of the flash translation layer.

8. A non-transitory computer-readable storage medium comprising instructions that, when executed by a processing device, cause the processing device to:

allocate volatile memory to a plurality of storage management components of a non-volatile storage device during boot up of firmware for the non-volatile storage device, wherein the allocating of volatile memory includes:

detecting an indicator of a total amount of volatile memory to be allocated to the plurality of storage management components;

mapping the indicator to a first amount of volatile memory to allocate to a first set of one or more components of the plurality of storage management components, wherein the first amount is a proper subset of the total amount of volatile memory to be allocated;

allocating the first amount of the volatile memory to the first set of components; and

allocating remaining volatile memory to a flash translation layer.

9. The non-transitory computer-readable medium of claim 8 , wherein the processing device is further to:

initialize a data structure to indicate free space in a volatile memory; and

in response to allocating the first amount of volatile memory, update the data structure to indicate an amount of free space in volatile memory remaining for allocation to the flash translation layer.

10. The non-transitory computer-readable medium of claim 8 , wherein the first set of components includes a serial communication port and the first amount of the volatile memory allocates one or more buffers for the serial communication port.

11. The non-transitory computer-readable medium of claim 8 , wherein allocating the first amount of the volatile memory includes allocating a firmware download buffer, a command buffer, or a combination thereof.

12. The non-transitory computer-readable medium of claim 8 , wherein the indicator is one of: a product identifier for the non-volatile storage device, an amount of non-volatile storage, or an amount of volatile storage.

13. The non-transitory computer-readable medium of claim 8 , wherein the allocation of the volatile memory to the plurality of storage management components is a one-time process performed during an initial boot up of the firmware.

14. The non-transitory computer-readable medium of claim 8 , wherein the allocation of the volatile memory to the plurality of storage management components is performed prior to execution of the flash translation layer.

15. A system comprising:

a memory component; and

a processing device, operatively coupled with the memory component, to:

allocate volatile memory to a plurality of storage management components of a non-volatile storage device during boot up of firmware for the non-volatile storage device, wherein the allocating of volatile memory includes:

detecting an indicator of a total amount of volatile memory to be allocated to the plurality of storage management components;

mapping the indicator to a first amount of volatile memory to allocate to a first set of one or more components of the plurality of storage management components, wherein the first amount is a proper subset of the total amount of volatile memory to be allocated, and wherein the first set of components includes a serial communication port and the first amount of the volatile memory allocates one or more buffers for the serial communication port;

allocating the first amount of the volatile memory to the first set of components; and

allocating remaining volatile memory to a flash translation layer.

16. The system of claim 15 , wherein the processing device is further to:

initialize a data structure to indicate free space in a volatile memory; and

in response to allocating the first amount of volatile memory, update the data structure to indicate an amount of free space in volatile memory remaining for allocation to the flash translation layer.

17. The system of claim 15 , wherein allocating the first amount of the volatile memory includes allocating a firmware download buffer, a command buffer, or a combination thereof.

18. The system of claim 15 , wherein the indicator is one of: a product identifier for the non-volatile storage device, an amount of non-volatile storage, or an amount of volatile storage.

19. The system of claim 15 , wherein the allocation of the volatile memory to the plurality of storage management components is a one-time process performed during an initial boot up of the firmware.

20. The system of claim 15 , wherein the allocation of the volatile memory to the plurality of storage management components is performed prior to execution of the flash translation layer.

Assignments (5)
RELEASE OF SECURITY INTEREST Recorded Nov 12, 2019
From: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
Reel/Frame 051028/0001 →
RELEASE OF SECURITY INTEREST Recorded Oct 11, 2019
From: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
To: MICRON TECHNOLOGY, INC.
Reel/Frame 050713/0001 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Aug 29, 2018
From: GASKILL, STEVEN; ZHANG, YIN FENG; TUPY, DAN Z.
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046739/0322 →
SUPPLEMENT NO. 9 TO PATENT SECURITY AGREEMENT Recorded Aug 9, 2018
From: MICRON TECHNOLOGY, INC.
To: MORGAN STANLEY SENIOR FUNDING, INC., AS COLLATERAL AGENT
Reel/Frame 047282/0463 →
SECURITY INTEREST Recorded Jul 13, 2018
From: MICRON TECHNOLOGY, INC.; MICRON SEMICONDUCTOR PRODUCTS, INC.
To: JPMORGAN CHASE BANK, N.A., AS COLLATERAL AGENT
Reel/Frame 047540/0001 →
Continuity (1)
Related Publication 20190369876A1 · Dec 5, 2019