a system allocates shared memory by transmitting / receiving a message specifying a maximum number of bytes of memory that are available to be allocated to an interleaver . the system determines an amount of memory required by the interleaver to interleave a first plurality of rs coded data bytes within a shared memory and allocates a first number of bytes of the shared memory to the interleaver to interleave the first plurality of rs coded data bytes for transmission at a first data rate . the system also allocates a second number of bytes of the shared memory to a deinterleaver to deinterleave a second plurality of rs coded data bytes received at a second data rate and interleaves the first plurality of rs coded data bytes within the shared memory allocated to the interleaver and deinterleaves the second plurality of rs coded data bytes within the shared memory allocated to the deinterleaver .