IP Library Granted Patent US 11,755,214
Granted Patent B2
US 11,755,214 · App. 17/702,217 · Granted Sep 12, 2023

Sequential data optimized sub-regions in storage devices

Inventors: David Aaron Palmer (Boise, ID); Sean L. Manion (Boise, ID); Jonathan Scott Parry (Boise, ID); Stephen Hanna (Fort Collins, CO); Qing Liang (Boise, ID); Nadav Grosz (Broomfield, CO); Christian M. Gyllenskog (Meridian, ID); Kulachet Tanpairoj (Santa Clara, CA)
G06F3/0631G06F3/061G06F3/0679G06F12/0246G06F2212/7201G06F2212/7204
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 11,755,214
App. No.
17/702,217
Granted
Sep 12, 2023
Kind
B2
Abstract

Apparatus and methods are disclosed, including using a memory controller to partition a memory array into a first portion and a second portion, the first portion and second portion having non-overlapping logical block addressing (LBA) ranges. The memory controller assigns a first granularity of a first logical-to-physical (L2P) mapping table entry for the first portion of the memory array designated for a first usage, and a second granularity of a second L2P mapping table entry for the second portion of the memory array designated for a second usage, where the second granularity is not equal to the first granularity. The memory controller stores the first granularity and the second granularity in the memory array, and stores at least a portion of the first L2P mapping table entry and the second L2P mapping table entry in an L2P cache of the memory controller.

Claims (37)

1. A storage system comprising:

a memory array;

a random access memory configured to store at least a portion of one or more logical-to-physical (L2P) mapping tables; and

a memory controller including processing circuitry including one or more processors, wherein the memory controller is configured to perform operations including:

partitioning the memory array into multiple portions having non-overlapping logical block addressing (LBA) ranges;

assigning performance levels to multiple mapping table entries respectively corresponding to the multiple portions of the memory array based on usage designations for the multiple portions, where a first at least one of the performance levels is not equal to a second at least one of the performance levels;

storing at least a portion of the multiple mapping table entries in the random access memory.

2. The system of claim 1 , wherein partitioning the memory array into the multiple portions includes partitioning the memory array at startup or during runtime.

3. The system of claim 1 , wherein partitioning the memory array into the multiple portions includes partitioning the memory array at startup and re-partitioning the memory array during runtime.

4. The system of claim 1 , wherein partitioning the memory array comprises establishing memory regions having respective granularities of LBA partitioning in the memory array, each region having LBA addresses mapped to a respective different number of physical memory addresses.

5. The system of claim 4 , wherein the memory controller is further configured to perform operations including:

storing data indicative of the performance levels in a region lookup table identifying the memory regions having the respective granularities in the memory array.

6. The system of claim 1 , wherein at least two of the multiple portions are different memory types.

7. The system of claim 1 , wherein a third at least one of the performance levels is not equal to the first at least one of the performance levels and the second at least one of the performance levels.

8. The system of claim 1 , wherein the performance levels include at least one of a read performance level or a write performance level.

9. A method comprising:

partitioning, by a memory controller, a memory array into multiple portions having non- overlapping logical block addressing (LBA) ranges;

assigning, by the memory controller, performance levels to multiple mapping table entries respectively corresponding to the multiple portions of the memory array based on usage designations for the multiple portions, where a first at least one of the performance levels is greater than a second at least one of the performance levels;

and

storing, by the memory controller, at least a portion of the multiple mapping table entries in a random access memory.

10. The method of claim 9 , wherein the partitioning the memory array into the multiple portions includes partitioning the memory array at startup or during runtime.

11. The method of claim 9 , wherein partitioning the memory array into the multiple portions includes partitioning the memory array at startup and re-partitioning the memory array during runtime.

12. The method of claim 9 , wherein partitioning the memory array comprises establishing memory regions having respective granularities of LBA partitioning in the memory array, each region having LBA addresses mapped to a respective different number of physical memory addresses.

13. The method of claim 12 , further comprising:

storing data indicative of the performance levels in a region lookup table identifying the memory regions having the respective granularities in the memory array.

14. The method of claim 9 , wherein at least two of the multiple portions are different memory types.

15. A non-transitory computer readable medium comprising instructions thereon that, when executed by a processor, cause the processor to perform operations comprising:

partitioning a memory array into multiple portions having non-overlapping logical block addressing (LBA) ranges;

assigning performance levels to multiple mapping table entries respectively corresponding to the multiple portions of the memory array based on usage designations for the multiple portions, where a first at least one of the performance levels is greater than a second at least one of the performance levels;

and

storing at least a portion of the multiple mapping table entries in a random access memory.

16. The computer readable medium of claim 15 , wherein partitioning the memory array into the multiple portions includes partitioning the memory array at startup or during runtime.

17. The computer readable medium of claim 15 , wherein partitioning the memory into the multiple portions includes partitioning the memory array at startup and re-partitioning the memory array during runtime.

18. The computer readable medium of claim 15 , wherein partitioning the memory array comprises establishing memory regions having respective granularities of LBA partitioning in the memory array, each region having LBA addresses mapped to a respective different number of physical memory addresses.

19. The computer readable medium of claim 18 , further comprising instructions thereon that, when executed by the processor, cause the processor to perform operations comprising:

storing data indicative of the performance levels in a region lookup table identifying the memory regions having the respective granularities in the memory array.

20. The computer readable medium of claim 15 , wherein at least two of the multiple portions are different memory types.

Assignments (1)
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Sep 11, 2023
From: MICRON TECHNOLOGY, INC.
To: LODESTAR LICENSING GROUP, LLC
Reel/Frame 064857/0152 →
Continuity (3)
Continuation 17129087 · Dec 21, 2020
Continuation 16237134 · Dec 31, 2018
Related Publication 20220214821A1 · Jul 7, 2022