Variable interleave data transmission
View Patent ↗In cable modem termination systems (CMTS) and other information transmission systems, a method for changing the interleave depth associated with each data stream is provided. This may be done dynamically, and for any subset of downstream devices such as modems. The interleave depth may be set on an individual device level. Embodiments may decrease data receiving latency on devices that do not suffer from error rates, such as caused by burst noise, while maintaining throughput on devices with high error rates.
1. A method comprising:
receiving, at a first device, a first data stream destined for the first device, wherein the first data stream is associated with a first interleave depth;
receiving, at the first device, a second data stream destined for a second device different from the first device, wherein the second data stream is associated with a second interleave depth different from the first interleave depth, and wherein each of the first data stream and the second data stream is associated with timeslots based on the first interleave depth and the second interleave depth; and
determining, by the first device, which of the timeslots are associated with the first data stream destined for the first device, and extracting data received during the determined timeslots.
2. The method of claim 1 , further comprising:
receiving, at the first device, a map containing sufficient information to determine which timeslots are associated with each data stream.
3. The method of claim 1 , wherein the first data stream is received at the first interleave depth, and the second data stream is received at the second interleave depth.
4. The method of claim 1 , further comprising:
receiving the first data stream at a third interleave depth associated with the first data stream, the third interleave depth being different from the first interleave depth.
5. The method of claim 1 , further comprising:
transmitting, by the first device, a first error rate associated with the first data stream,
wherein the first error rate is used to determine whether to increase or decrease the first interleave depth associated with the first data stream.
6. A non-transitory computer readable medium storing computer readable instructions which, when read by a computer, instruct the computer to:
receive a first data stream destined for a first device, wherein the first data stream is associated with a first interleave depth;
receive a second data stream destined for a second device different from the first device, wherein the second data stream is associated with a second interleave depth different from the first interleave depth, and wherein each of the first data stream and the second data stream is associated with timeslots based on the first interleave depth and the second interleave depth; and
determine which of the timeslots are associated with the first data stream destined for the first device, and extract data received during the determined timeslots.
7. The non-transitory computer readable medium of claim 6 storing additional computer readable instructions which, when read by the computer, instruct the computer to:
receive a map containing sufficient information to determine which timeslots are associated with each data stream.
8. The non-transitory computer readable medium of claim 6 , wherein the first data stream is received at the first interleave depth, and the second data stream is received at the second interleave depth.
9. The non-transitory computer readable medium of claim 6 storing additional computer readable instructions which, when read by the computer, instruct the computer to:
receive the first data stream at a third interleave depth associated with the first data stream, the third interleave depth being different from the first interleave depth.
10. The non-transitory computer readable medium of claim 6 storing additional computer readable instructions which, when read by the computer, instruct the computer to:
transmit, by the first device, a first error rate associated with the first data stream,
wherein the first error rate is used to determine whether to increase or decrease the first interleave depth associated with the first data stream.
11. An apparatus comprising:
a processor; and
memory storing instructions that, when executed by the processor, cause the apparatus to:
receive a first data stream destined for the apparatus, wherein the first data stream is associated with a first interleave depth;
receive a second data stream destined for a second apparatus different from the apparatus, wherein the second data stream is associated with a second interleave depth different from the first interleave depth, and wherein each of the first data stream and the second data stream is associated with timeslots based on the first interleave depth and the second interleave depth; and
determine which of the timeslots are associated with the first data stream destined for the apparatus, and extract data received during the determined timeslots.
12. The apparatus of claim 11 , wherein the memory stores additional instruction that, when executed by the processor, cause the apparatus to:
receive a map containing sufficient information to determine which timeslots are associated with each data stream.
13. The apparatus of claim 11 , wherein the first data stream is received at the first interleave depth, and the second data stream is received at the second interleave depth.
14. The apparatus of claim 11 , wherein the memory stores additional instruction that, when executed by the processor, cause the apparatus to:
receive the first data stream at a third interleave depth associated with the first data stream, the third interleave depth being different from the first interleave depth.
15. The apparatus of claim 11 , wherein the memory stores additional instruction that, when executed by the processor, cause the apparatus to:
transmit a first error rate associated with the first data stream,
wherein the first error rate is used to determine whether to increase or decrease the first interleave depth associated with the first data stream.