Reducing write amplification in solid-state drives by separating allocation of relocate writes from user writes
First Claim
1. A computer-implemented method, comprising:
- maintaining, by a processor, a first open logical erase block for user writes;
maintaining, by the processor, a second open logical erase block for relocate writes, wherein the first and second open logical erase blocks are different logical erase blocks;
receiving, by the processor, a first data stream having the user writes;
transferring, by the processor, the first data stream to the first open logical erase block;
receiving, by the processor, a second data stream having the relocate writes;
transferring, by the processor, the second data stream to the second open logical erase block;
receiving a third data stream;
and mixing the third data stream with the first data stream, the second data stream and/or another data stream in response to determining that an open logical erase block is not available for assignment to the third data stream, wherein mixing the third data stream with the first data stream, the second data stream and/or another data stream is based on a comparison between information associated with the first data stream, the second data stream and/or another data stream, the information being selected from a group consisting of;
a speed of the data streams, a number of open logic erase blocks, a number and/or size of cache, and a temperature of data.
1 Assignment
0 Petitions
Accused Products
Abstract
A computer-implemented method, according to one embodiment, includes: maintaining, by a processor, a first open logical erase block for user writes; maintaining, by the processor, a second open logical erase block for relocate writes; receiving, by the processor, a first data stream having the user writes; transferring, by the processor, the first data stream to the first open logical erase block; receiving, by the processor, a second data stream having the relocate writes; and transferring, by the processor, the second data stream to the second open logical erase block. Moreover, the first and second open logical erase blocks are different logical erase blocks. Other systems, methods, and computer program products are described in additional embodiments.
-
Citations
16 Claims
-
1. A computer-implemented method, comprising:
-
maintaining, by a processor, a first open logical erase block for user writes; maintaining, by the processor, a second open logical erase block for relocate writes, wherein the first and second open logical erase blocks are different logical erase blocks; receiving, by the processor, a first data stream having the user writes; transferring, by the processor, the first data stream to the first open logical erase block; receiving, by the processor, a second data stream having the relocate writes; transferring, by the processor, the second data stream to the second open logical erase block; receiving a third data stream; and mixing the third data stream with the first data stream, the second data stream and/or another data stream in response to determining that an open logical erase block is not available for assignment to the third data stream, wherein mixing the third data stream with the first data stream, the second data stream and/or another data stream is based on a comparison between information associated with the first data stream, the second data stream and/or another data stream, the information being selected from a group consisting of;
a speed of the data streams, a number of open logic erase blocks, a number and/or size of cache, and a temperature of data. - View Dependent Claims (2, 3, 4, 5, 6)
-
-
7. A computer program product comprising a computer readable storage medium having program instructions embodied therewith, wherein the computer readable storage medium is not a transitory signal per se, the program instructions readable and/or executable by a processor to cause the processor to perform a method comprising:
-
receiving, by the processor, a first data stream and a second data stream concurrently, wherein the first data stream includes user writes, wherein the second data stream includes relocate writes; identifying, by the processor, a first open logical erase block; transferring, by the processor, the first data stream having the user writes to the first open logical erase block; terminating, by the processor, the transfer of the first data stream to the first open logical erase block; causing, by the processor, transfer of the second data stream having the relocate writes either (a) to a second open logical erase block that is different than the first logical erase block, or (b) to the first open logical erase block after the transfer of the first data stream to the first open logical erase block is terminated and the first open logical erase block is reassigned to the second data stream; assigning, by the processor, a first timeout value to the first open logical erase block; assigning, by the processor, a second timeout value to the second open logical erase block, receiving, by the processor, a third data stream; and
mixing, by the processor, the third data stream with the first data stream, the second data is not available for assignment to the third data stream, wherein mixing the third data stream with the first data stream, the second data stream and/or another data stream is based on a comparison between information associated with the first data stream, the second data stream and/or another data stream, the information being selected from a group consisting of a speed of the data streams, a number of open logic erase blocks, a number and/or size of cache, and a temperature of data. - View Dependent Claims (8, 9, 10, 11)
-
-
12. A system, comprising:
-
a processor and logic integrated with and/or executable by the processor, the logic being configured to; maintain a first open logical erase block for user writes; maintain a second open logical erase block for relocate writes, wherein the first and second open logical erase blocks are different logical erase blocks; receive a first data stream having the user writes; transfer an entirety of the first data stream to the first open logical erase block; receive a second data stream having the relocate writes; transfer an entirety of the second data stream to the second open logical erase block; receive a third data stream; and mix the third data stream with the first data stream, the second data stream and/or another data stream in response to determining that an open logical erase block is not available for assignment to the third data stream, wherein mixing the third data stream with the first data stream, the second data stream and/or another data stream is based on a comparison between information associated with the first data stream, the second data stream and/or another data stream, the information being selected from a group consisting of a speed of the data streams, a number of open logic erase blocks, a number and/or size of cache, and a temperature of data. - View Dependent Claims (13, 14, 15, 16)
-
Specification