IP Library Granted Patent US 10,509,599
Granted Patent B2
US 10,509,599 · App. 15/922,702 · Granted Dec 17, 2019

Stack management in memory systems

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,509,599
App. No.
15/922,702
Granted
Dec 17, 2019
Kind
B2
Abstract

A memory system having a stack memory, a set of media. and a controller. The controller divides the stack memory into a plurality of stacks, measures usages of the stacks in a period of time of operating on the set of media, and adjusts partitioning of the stack memory into the plurality of stacks according to the measured usages.

Claims (43)

1. A memory system, comprising:

a stack memory;

a set of media; and

a controller, wherein the controller divides the stack memory into a plurality of stacks, measures usages of the stacks in a period of time, and adjusts partitioning of the stack memory into the plurality of stacks according to the measured usages,

wherein the controller fills unused portions of the stacks with a predetermined value pattern and measures the usages based on binary searching for boundaries between portions of the stacks having the predetermined value pattern and portions of the stacks not having the predetermined value pattern.

2. The memory system of claim 1 , wherein the set of media includes a flash memory.

3. The memory system of claim 2 , wherein the memory system is a solid state drive.

4. The memory system of claim 2 , wherein the controller operates the stacks to store data in the flash memory and retrieve data from the flash memory in accordance with requests from a host system.

5. The memory system of claim 1 , wherein the predetermined value pattern is a predetermined value.

6. The memory system of claim 1 , wherein the predetermined value pattern includes a value stored in a location of the stack memory having a predetermined relation with the location.

7. The memory system of claim 1 , wherein the binary search includes:

identifying a memory region that contains a boundary between a portion storing the predetermined value pattern and a portion not storing the predetermined value pattern;

retrieving from a middle of the memory region a value, the storage location of the value dividing the memory region into two regions;

determining whether the value agrees with the predetermined value pattern; and

identifying one of the two regions as having the boundary based on whether the value agrees with the predetermined value pattern.

8. A method in a memory system, comprising:

partitioning, by a stack manager, a stack memory of the memory system into a plurality of stacks;

operating the stacks to process requests related to storing data in a set of media of the memory system and retrieving data from the set of media;

measuring, by the stack manager, usages of the stacks during a period of time;

re-partitioning, by the stack manager, the stack memory into the plurality of stacks according to the measured usages; and

filling, by the stack manager, unused portions of the stacks with a predetermined value pattern,

wherein the measuring of the usages includes binary searching for boundaries between portions of the stacks having the predetermined value pattern and portions of the stacks not having the predetermined value pattern.

9. The method of claim 8 , wherein the set of media includes a flash memory; and the memory system is a solid state drive.

10. The method of claim 9 , further comprising:

receiving, from a host system, the requests, wherein the stacks are operated in response to the read and write requests.

11. The method of claim 8 , wherein the predetermined value pattern includes a predetermined value or a value stored in a location of the stack memory having a predetermined relation with the location.

12. The method of claim 8 , wherein the searching includes:

identifying a memory region that contains a boundary between a portion storing the predetermined value pattern and a portion not storing the predetermined value pattern;

retrieving from a middle of the memory region a value, the storage location of the value dividing the memory region into two regions;

determining whether the value matches with the predetermined value pattern; and

identifying one of the two regions as having the boundary based on whether the value matches with the predetermined value pattern.

13. A non-transitory computer storage medium storing instructions which when executed by a controller of a memory system cause the memory system to perform a method, the method comprising:

dividing a stack memory of the memory system into a plurality of stacks, wherein the memory system is a solid state drive;

after the stacks are used to process requests related to storing data in a set of media of the memory system and retrieving data from the set of media, measuring usages of the stacks during a period of time, wherein the set of media includes a flash memory;

adjusting partitioning of the stack memory into the plurality of stacks according to the measured usages; and

filling, by the stack manager, unused portions of the stacks with a predetermined value pattern;

wherein the measuring of the usages includes searching for boundaries between portions of the stacks having the predetermined value pattern and portions of the stacks not having the predetermined value pattern,

wherein the searching includes:

identifying a memory region that contains a boundary between a portion storing the predetermined value pattern and a portion not storing the predetermined value pattern;

retrieving from a middle of the memory region a value, the storage location of the value dividing the memory region into two regions;

determining whether the value matches with the predetermined value pattern; and

identifying one of the two regions as having the boundary based on whether the value matches with the predetermined value pattern.

14. The medium of claim 13 , wherein the predetermined value pattern includes a predetermined value or a value stored in a location of the stack memory having a predetermined relation with the location.

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 Sep 26, 2018
From: FROLIKOV, ALEX
To: MICRON TECHNOLOGY, INC.
Reel/Frame 046977/0908 →
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 →