Efficient utilization of turbo-write buffers
A method of shuffling turbo-write buffers of a universal flash storage system is described. The method includes periodically determining a performance index of each turbo-write buffer allocated to a unique logical unit number of the universal flash storage system. The method also includes shifting a position of at least two of the turbo-write buffers according to the performance index of each of the turbo-write buffers and a threshold performance level.
1. A method of shuffling turbo-write buffers of a universal flash storage system, the method comprising:
periodically determining a performance index of each turbo-write buffer allocated to a unique logical unit number of the universal flash storage system; and
shifting a position of at least two of the turbo-write buffers according to the performance index of each of the turbo-write buffers and a threshold performance level.
2. The method of claim 1 , further comprising:
allocating a dedicated turbo-write buffer to each unique logical unit number of the universal flash storage system; and
setting a time interval “T” to periodically request the performance index of each of the turbo-write buffers.
3. The method of claim 2 , further comprising:
performing a dummy write transaction to each of the turbo-write buffers to determine the performance index of the turbo-write buffers during an idle mode;
assigning a rank to each of the turbo-write buffers according to their respective performance index value;
increasing the time interval “T” when a performance of each of the turbo-write buffers is greater than a predetermined value; and
decreasing the time interval “T” when the performance of one of the turbo-write buffers is less than the predetermined value.
4. The method of claim 1 , in which shifting comprises swapping the turbo-write buffer having a highest use with the turbo-write buffer having a lowest use.
5. The method of claim 1 , in which shifting comprises:
detecting a turbo-write buffer exhibiting a low performance level;
selecting a turbo-write buffer having a high performance level; and
switching positions of the detected turbo-write buffer and the selected turbo-write buffer.
6. The method of claim 5 , in which switching positions comprises remapping the logical unit numbers associated with the detected turbo-write buffer and the selected turbo-write buffer.
7. A non-transitory computer-readable medium having program code recorded thereon for shuffling turbo-write buffers of a universal flash storage system, the program code executed by a processor and comprising:
program code to periodically determine a performance index of each of the turbo-write buffers allocated to the unique logical unit number of the universal flash storage system; and
program code to shift a position of at least two of the turbo-write buffers according to the performance index of each of the turbo-write buffers and a threshold performance level.
8. The non-transitory computer-readable medium of claim 7 , further comprising:
program code to allocate a dedicated turbo-write buffer to each unique logical unit number of the universal flash storage system; and
program code to set a time interval “T” to periodically request the performance index of each of the turbo-write buffers.
9. The non-transitory computer-readable medium of claim 8 , further comprising:
program code to perform a dummy write transaction to each of the turbo-write buffers to determine the performance index of the turbo-write buffers during an idle mode;
program code to assign a rank to each of the turbo-write buffers according to their respective performance index value;
program code to increase the time interval “T” when a performance of each of the turbo-write buffers is greater than a predetermined value; and
program code to decrease the time interval “T” when the performance of one of the turbo-write buffers is less than the predetermined value.
10. The non-transitory computer-readable medium of claim 7 , in which the program code to shift further comprises program code to swap the turbo-write buffer having a highest use with the turbo-write buffer having a lowest use.
11. The non-transitory computer-readable medium of claim 7 , in which the program code to shift further comprises:
program code to detect a turbo-write buffer exhibiting a low performance level;
program code to select a turbo-write buffer having a high performance level; and
program code to switch positions of the detected turbo-write buffer and the selected turbo-write buffer.
12. The non-transitory computer-readable medium of claim 11 , in which the program code to switch positions further comprises program code to remap the logical unit numbers associated with the detected turbo-write buffer and the selected turbo-write buffer.
13. A apparatus configured to shuffle turbo-write buffers of a universal flash storage (UFS) system, the apparatus comprising:
a memory comprising turbo-write buffers allocated to unique logical unit numbers of the UFS system; and
at least one processor coupled to the memory, the processor configured:
to periodically determine a performance index of each of the turbo-write buffers allocated to the unique logical unit numbers of the universal flash storage system; and
to shift a position of at least two of the turbo-write buffers according to the performance index of each of the turbo-write buffers and a threshold performance level.
14. The apparatus of claim 13 , in which the processor is further configured:
to allocate a dedicated turbo-write buffer to each of the unique logical unit numbers of the universal flash storage system; and
to set a time interval “T” to periodically request the performance index of each of the turbo-write buffers.
15. The apparatus of claim 14 , in which the processor is further configured:
to perform a dummy write transaction to each of the turbo-write buffers to determine the performance index of the turbo-write buffers during an idle mode;
to assign a rank to each of the turbo-write buffers according to their respective performance index value;
to increase the time interval “T” when a performance of each of the turbo-write buffers is greater than a predetermined value; and
to decrease the time interval “T” when the performance of one of the turbo-write buffers is less than the predetermined value.
16. The apparatus of claim 13 , in which to shift the processor is further configured to swap the turbo-write buffer having a highest use with the turbo-write buffer having a lowest use.
17. The apparatus of claim 13 , in which to shift the processor is further configured:
to detect a turbo-write buffer exhibiting a low performance level;
to select a turbo-write buffer having a high performance level; and
to switch positions of the detected turbo-write buffer and the selected turbo-write buffer.
18. The apparatus of claim 17 , in which to switch positions the processor is further configured to remap the logical unit numbers associated with the detected turbo-write buffer and the selected turbo-write buffer.
19. The apparatus of claim 13 , further comprising one of a computing system, mobile computing device, Internet of Things device, or virtual reality or augmented reality system, incorporating the processor and the memory.