Adaptive assignment of open logical erase blocks to data streams
First Claim
1. A computer-implemented method, comprising:
- assigning data having a first heat to a first data stream;
assigning data having a second heat to a second data stream;
determining an anticipated throughput of each of the first and second data streams;
assigning a first number of logical erase blocks of non-volatile memory to the first data stream based on the anticipated throughput of the first data stream;
assigning a second number of logical erase blocks of non-volatile memory to the second data stream based on the anticipated throughput of the second data stream; and
performing wear leveling on open logical erase blocks, wherein performing the wear leveling includes;
assigning at least some of the open logical erase blocks to a queue,wherein open logical erase blocks having health values less than a health value of other logical erase blocks by a predetermined amount are skipped over during the assigning of open logical erase blocks to the queue, wherein the first and second numbers of logical erase blocks are assigned to the first and second data streams, respectively, from the queue.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer-implemented method is provided, which includes: assigning data having a first heat to a first data stream, assigning data having a second heat to a second data stream, determining an anticipated throughput of each of the first and second data streams, assigning a first number of logical erase blocks of non-volatile memory to the first data stream based on the anticipated throughput of the first data stream, and assigning a second number of logical erase blocks of non-volatile memory to the second data stream based on the anticipated throughput of the second data stream. Wear-leveling may be performed on open logical erase blocks, including assigning at least some open of the logical erase blocks to a queue. Open logical erase blocks having health values less than a health value of other logical erase blocks by a predetermined amount may be skipped over during the assigning of open logical erase blocks to the queue. The number of logical erase blocks assigned to the data streams may be statically assigned, or may be adjusted dynamically based on at least one of temporal stream throughput and stream stall events.
51 Citations
19 Claims
-
1. A computer-implemented method, comprising:
-
assigning data having a first heat to a first data stream; assigning data having a second heat to a second data stream; determining an anticipated throughput of each of the first and second data streams; assigning a first number of logical erase blocks of non-volatile memory to the first data stream based on the anticipated throughput of the first data stream; assigning a second number of logical erase blocks of non-volatile memory to the second data stream based on the anticipated throughput of the second data stream; and performing wear leveling on open logical erase blocks, wherein performing the wear leveling includes; assigning at least some of the open logical erase blocks to a queue, wherein open logical erase blocks having health values less than a health value of other logical erase blocks by a predetermined amount are skipped over during the assigning of open logical erase blocks to the queue, wherein the first and second numbers of logical erase blocks are assigned to the first and second data streams, respectively, from the queue. - View Dependent Claims (2, 3, 4, 5, 6, 7, 8)
-
-
9. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, the program instructions readable and/or executable by a controller to cause the controller to:
-
assign, by the controller, data having a first heat to a first data stream; assign, by the controller, data having a second heat to a second data stream; determine, by the controller, an anticipated throughput of each of the first and second data streams; assign, by the controller, a first number of logical erase blocks of non-volatile memory to the first data stream based on the anticipated throughput of the first data stream; assign, by the controller, a second number of logical erase blocks of non-volatile memory to the second data stream based on the anticipated throughput of the second data stream; and perform, by the controller, wear leveling on open logical erase blocks, wherein performing the wear leveling includes; assigning at least some of the open logical erase blocks to a queue; wherein open logical erase blocks having health values less than a health value of other logical erase blocks by a predetermined amount are skipped over during the assigning of open logical erase blocks to the queue, wherein the first and second numbers of logical erase blocks are assigned to the first and second data streams, respectively, from the queue. - View Dependent Claims (10, 11, 12, 13, 14, 15)
-
-
16. A system, comprising:
-
a plurality of non-volatile random access memory blocks configured to store data; and a processor and logic integrated with and/or executable by the processor, the logic being configured to; assign data having a first heat to a first data stream; assign data having a second heat to a second data stream; determine an anticipated throughput of each of the first and second data streams; assign a first number of logical erase blocks of non-volatile memory to the first data stream based on the anticipated throughput of the first data stream; assign a second number of logical erase blocks of non-volatile memory to the second data stream based on the anticipated throughput of the second data stream; and perform wear leveling on open logical erase blocks, wherein performing the wear leveling includes; assigning at least some of the open logical erase blocks to a queue; wherein the first and/or second number of logical erase blocks are statically assigned to each of the first and/or second data streams in response to receiving a first one of the data having the first heat and the data having the second heat, wherein open logical erase blocks having health values less than a health value of other logical erase blocks by a predetermined amount are skipped over during the assigning of open logical erase blocks to the queue, wherein the first and second numbers of logical erase blocks are assigned to the first and second data streams, respectively, from the queue. - View Dependent Claims (17, 18, 19)
-
Specification