IP Library Granted Patent US 11,675,509
Granted Patent B2
US 11,675,509 · App. 17/084,540 · Granted Jun 13, 2023

Multiple open block families supporting multiple cursors of a memory device

Inventors: Shane Nowell (Boise, ID); Michael Sheperek (Longmont, CO); Larry J Koudele (Erie, CO); Bruce A Liikanen (Berthoud, CO); Steve Kientz (Westminster, CO)
Assignee: Micron Technology, Inc.
G06F3/064G06F3/0604G06F3/0688
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,675,509
App. No.
17/084,540
Granted
Jun 13, 2023
Kind
B2
Abstract

An example memory sub-system includes a memory device and a processing device, operatively coupled to the memory device. The processing device is configured to open a first block family associated with the memory device; assign a first cursor of a plurality of cursors of the memory device to the first block family; responsive to programming a first block associated with the first cursor, associate the first block with the first block family; open, while the first block family is open, a second block family associated with the memory device; assign a second cursor of the plurality of cursors of the memory device to the second block family; and responsive to programming a second block associated with the second cursor, associate the second block with the second block family.

Claims (53)

1. A system comprising:

a memory device; and

a processing device, operatively coupled to the memory device, to perform operations comprising:

opening a first block family associated with the memory device;

assigning a first cursor of a plurality of cursors of the memory device to the first block family;

responsive to programming a first block associated with the first cursor, associating the first block with the first block family;

opening, while the first block family is open, a second block family associated with the memory device;

assigning a second cursor of the plurality of cursors of the memory device to the second block family; and

responsive to programming a second block associated with the second cursor, associating the second block with the second block family,

wherein each cursor of the plurality of cursors of the memory device is associated with a respective data stream associated with a respective set of characteristics, and

wherein the respective set of characteristics comprises at least one of a performance requirement of the data stream, a workload of the data stream, or expected garbage collection parameter of the data stream.

2. The system of claim 1 , wherein the operations further comprises:

responsive to opening the first block family, initializing a first timeout associated with the first block family; and

responsive to detecting expiration of the first timeout, ending the first block family.

3. The system of claim 2 , wherein the operations further comprises:

responsive to opening the second block family, initializing a second timeout associated with the second block family, wherein the second timeout is different than the first timeout; and

responsive to detecting expiration of the second timeout, ending the second block family.

4. The system of claim 1 , wherein the first cursor is associated with a first data stream and the second cursor is associated with a second data stream, wherein a first set of characteristics of the first data stream is different than a second set of characteristics of the second data stream, wherein a distance between a first vector corresponding to a first set of characteristics of the first data stream and a second vector corresponding to a second set of characteristics of the second data stream exceeds a threshold.

5. The system of claim 1 , wherein the operations further comprises:

detecting that a third cursor of the plurality of cursors is associated with a first data stream;

responsive to determining that a first set of characteristics of the first data stream are similar to a second set of characteristics of a second data stream associated with the first cursor, assigning the third cursor to the first block family, wherein determining that the first set of characteristics and the second set of characteristics are similar comprises determining that a distance between a first vector corresponding to the first set of characteristics and a second vector corresponding to the second set of characteristics does not exceed a threshold.

6. The system of claim 1 , wherein the operations further comprises:

merging the first block family and a third block family, wherein the first block family is associated with a set of cursors and the third block family is associated with the set of cursors.

7. A method comprising:

detecting a first open block family associated with a memory device, the first open block family associated with a first cursor of a plurality of cursors of the memory device; and

responsive to determining that a second cursor of the plurality of cursors is associated with a first set of characteristics that are different than a second set of characteristics associated with the first cursor:

opening a second block family associated with the memory device; and

assigning the second cursor of the plurality of cursors to the second block family,

wherein each cursor of the plurality of cursors of the memory device is associated with a respective data stream, the respective data stream associated with a respective set of characteristics, and

wherein the respective set of characteristics of the respective data stream comprises at least one of performance requirements of the data stream, workload of the data stream, or expected garbage collection of the data stream.

8. The method of claim 7 further comprising:

responsive to detecting expiration of a timeout associated with the first open block family, ending the first open block family.

9. The method of claim 7 further comprising:

detecting that a third cursor of the plurality of cursors is associated with a first data stream;

responsive to determining that a third set of characteristics of the first data stream are similar to the second set of characteristics associated with the first cursor, assigning the third cursor to the first block family, the second set of characteristics associated with a second data stream.

10. The method of claim 7 further comprising:

merging the first block family and a third block family, wherein the first block family is associated with a set of cursors and the third block family is associated with the set of cursors.

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

open a first block family associated with the memory device;

assign a first cursor of a plurality of cursors of the memory device to the first block family;

responsive to programming a first block associated with the first cursor, associate the first block with the first block family;

open, while the first block family is open, a second block family associated with the memory device;

assign a second cursor of the plurality of cursors of the memory device to the second block family; and

responsive to programming a second block associated with the second cursor, associate the second block with the second block family,

wherein each cursor of the plurality of cursors of the memory device is associated with a respective data stream, the respective data stream associated with a respective set of characteristics, and

wherein the respective set of characteristics of the respective data stream comprises at least one of performance requirements of the data stream, workload of the data stream, or expected garbage collection of the data stream.

12. The non-transitory computer-readable storage medium of claim 11 , wherein the processing device is further to:

responsive to opening the first block family, initialize a first timeout associated with the first block family; and

responsive to detecting expiration of the first timeout, end the first block family.

13. The non-transitory computer-readable storage medium of claim 11 , wherein the processing device is further to:

responsive to opening the second block family, initialize a second timeout associated with the second block family, wherein the second timeout is different than the first timeout; and

responsive to detecting expiration of the second timeout, end the second block family.

14. The non-transitory computer-readable storage medium of claim 11 , wherein the first cursor is associated with a first data stream and the second cursor is associated with a second data stream, wherein a first set of characteristics of the first data stream is different than a second set of characteristics of the second data stream.

Assignments (2)
CORRECTIVE ASSIGNMENT TO CORRECT THE THE 3RD INVENTOR'S NAME PREVIOUSLY RECORDED AT REEL: 055598 FRAME: 0066. ASSIGNOR(S) HEREBY CONFIRMS THE ASSIGNMENT. Recorded Mar 8, 2023
From: NOWELL, SHANE; SHEPEREK, MICHAEL; KOUDELE, LARRY J; LIIKANEN, BRUCE A; KIENTZ, STEVEN MICHAEL
To: MICRON TECHNOLOGY, INC.
Reel/Frame 062992/0660 →
ASSIGNMENT OF ASSIGNOR'S INTEREST Recorded Mar 15, 2021
From: NOWELL, SHANE; SHEPEREK, MICHAEL; KOUDELE, LARRY K; LIIKANEN, BRUCE A; KIENTZ, STEVEN MICHAEL
To: MICRON TECHNOLOGY, INC.
Reel/Frame 055598/0066 →
Continuity (1)
Related Publication 20220137814A1 · May 5, 2022