Host and method for interleaving data in a storage system for enhanced quality of service
A host and method for interleaving data in a storage system for enhanced quality of service are provided. In one embodiment, a host is provided comprising an interface configured to communicate with a storage system comprising a memory. The processor is configured to determine a skip length for interleaving data to be stored in the storage system; interleave data according to the determined skip length; and send the interleaved data to the storage system for storage. Other embodiments are provided.
1. A host comprising:
an interface configured to communicate with a storage system comprising a memory; and
a processor configured to:
determine a skip length for interleaving data to be stored in the storage system;
interleave the data according to the determined skip length;
send the interleaved data to the storage system for storage, wherein the storage system is unware that the data is interleaved;
read the interleaved data from the storage system; and
de-interleave the interleaved data.
2. The host of claim 1 , wherein the processor is further configured to determine the skip length based on a frame size of the data.
3. The host of claim 1 , wherein the processor is further configured to determine the skip length based on a size of a group of pictures (GOP) of the data.
4. The host of claim 1 , wherein the processor is further configured to determine the skip length based on an archive status of the data.
5. The host of claim 1 , wherein the processor is further configured to determine the skip length based on a threshold number of frames of a codec.
6. The host of claim 1 , wherein the processor is further configured to determine the skip length based on a history of failures.
7. The host of claim 1 , wherein the storage system comprises a three-dimensional memory.
8. The host of claim 1 , wherein the storage system is configured to be integrated in the host.
9. The host of claim 1 , wherein the storage system is configured to be removably connected with the host.
10. The host of claim 1 , wherein the skip length is configured to maintain a quality of service above a threshold level when there are errors in portions of the memory storing the interleaved data.
11. The host of claim 10 , wherein the errors comprise burst errors.
12. A method for interleaving data, the method comprising:
performing the following in a host in communication with a storage system comprising a memory:
determining how far apart to store consecutive units of data in the memory;
rearranging the data such that consecutive units of data are spaced as far apart as determined;
sending the rearranged data to the storage system for storage, wherein the storage system is unware that the data is rearranged;
reading the rearranged data from the storage system; and
restoring the rearranged data back to its original form where consecutive units of data are not spaced apart.
13. The method of claim 12 , wherein determining how far apart to store consecutive units of data in the memory is based on a frame size of the data.
14. The method of claim 12 , wherein determining how far apart to store consecutive units of data in the memory is based on a size of a group of pictures (GOP) of the data.
15. The method of claim 12 , wherein determining how far apart to store consecutive units of data in the memory is based on an archive status of the data.
16. The method of claim 12 , wherein determining how far apart to store consecutive units of data in the memory is based on a threshold number of frames of a codec.
17. The method of claim 12 , wherein determining how far apart to store consecutive units of data in the memory is based on a history of failures.
18. The method of claim 12 , wherein consecutive units of data are spaced far enough apart to maintain a quality of service above a threshold level when there are errors in portions of the memory storing the rearranged data.
19. The method of claim 18 , wherein the errors comprise burst errors.
20. A host comprising:
an interface configured to communicate with a storage system comprising a memory;
means for determining a skip length for interleaving data to be stored in the storage system;
means for interleaving the data according to the determined skip length;
means for sending the interleaved data to the storage system for storage, wherein the storage system is unware that the data is interleaved;
means for reading the interleaved data from the storage system; and
means for de-interleaving the interleaved data.