The present invention relates to modem communications in general, and more particularly to interleaving in a modem pool environment.
The use of Forward Error Correction (FEC) techniques in the design of digital communications and storage systems is well known. FEC is used to find and correct limited errors caused by a transport or storage system in order to ensure the validity of the received message without requiring retransmissions. Some conventional FEC encoding techniques provide data redundancy by adding extra code symbols to a transmitted message which provide the necessary detection and correction information. The number of redundant symbols is determined by the amount and type of error correction required. In general, r redundant symbols per code word are required to detect and correct up to r/2 incorrect symbols.
Since for any given FEC encoder and decoder the number of correctable errors is limited, the introduction of error bursts may cause the number of errors in a code word to be so great so as to be uncorrectable. To prevent such error bursts from causing decoder failure, interleaving techniques may be used to spread the transmission of each code word over a greater time frame such that an error burst will cause a correctable number of errors per code word.
In an environment where a data stream is split up and transmitted via multiple modems in a modem pool to another modem pool, transmitting each code word in a frame via a different modem risks unrecoverable loss of data in the event of a failure of one or more modems even if conventional interleaving techniques are used. Furthermore, error bursts may affect multiple modems at the same time, also resulting in unrecoverable data loss. Interleaving techniques that address both modern failure and cross-modem error bursts in a modem pool environment would therefore be advantageous.
The present invention seeks to provide interleaving techniques that address both modem failure and cross-modem error bursts in a modem pool environment that overcomes disadvantages and limitations of the prior art.
In one aspect of the present invention a method is provided for interleaving a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, the method including assigning the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, and moving any of the code word symbols assigned to one of the time frames to another of the time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the assigning step includes assigning such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the assigning step includes assigning such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the assigning step includes assigning where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the moving step includes moving any of the code word symbols assigned to a modem time slot in one of the time frames to the same modem time slot in another of the time frames.
In another aspect of the present invention the moving step includes moving such that each of the time frames includes code word symbols from a plurality of the data frames.
In another aspect of the present invention the moving step includes moving such that the code word symbols are divided as evenly as possible among the time frames.
In another aspect of the present invention the method further includes deriving a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the time frames, and transmitting via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the time frames.
In another aspect of the present invention a method is provided for interleaving a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, the method including assigning the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, constructing a matrix having a plurality of rows and columns, each row including a different one of the data frames and each column corresponding to one of the modems via which the code word symbols in the column are assigned, and changing the order of the code word symbols in any of the columns of the matrix such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the assigning step includes assigning such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the assigning step includes assigning such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the assigning step includes assigning where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the changing step includes rotating each column in the matrix downward by CN modulo F rows, where CN is the column number of the column, F is the number of rows in the matrix, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column.
In another aspect of the present invention the changing step includes inversely ordering the columns prior to the rotating.
In another aspect of the present invention the changing step includes rotating each column element in the matrix downward by (A+B*CN) modulo F rows, where F is the number of rows in the matrix, A is a predetermined integer, B is a predetermined integer which is coprime to F, CN is the column number of the column, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column,
In another aspect of the present invention the changing step includes rotating such that a column element in the column CN and row R is moved to row (R+A+B*CN) modulo F.
In another aspect of the present invention the method further includes deriving a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the rows, and transmitting via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the rows.
In another aspect of the present invention a system is provided for interleaving a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, the system including a coder operative to encode a data stream into the plurality of code words, and an interleaver operative to assign the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, and move any of the code word symbols assigned to one of the time frames to another of the time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the interleaver is operative to assign such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the interleaver is operative to assign such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the interleaver is operative to assign where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the interleaver is operative to move any of the code word symbols assigned to a modem time slot in one of the time frames to the same modem time slot in another of the time frames.
In another aspect of the present invention the interleaver is operative to move such that each of the time frames includes code word symbols from a plurality of the data frames.
In another aspect of the present invention the interleaver is operative to move such that the code word symbols are divided as evenly as possible among the time frames.
In another aspect of the present invention the system further includes a demultiplexor operative to derive a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the time frames, and transmit via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the time frames.
In another aspect of the present invention a system is provided for interleaving a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, the system including a coder operative to encode a data stream into the plurality of code words, and an interleaver operative to assign the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, construct a matrix having a plurality of rows and columns, each row including a different one of the data frames and each column corresponding to one of the modems via which the code word symbols in the column are assigned, and change the order of the code word symbols in any of the columns of the matrix such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the interleaver is operative to assign such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the interleaver is operative to assign such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the interleaver is operative to assign where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the interleaver is operative to rotate each column in the matrix downward by CN modulo F rows, where CN is the column number of the column, F is the number of rows in the matrix, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column.
In another aspect of the present invention the interleaver is operative to inversely order the columns prior to the rotating.
In another aspect of the present invention the interleaver is operative to rotate each column element in the matrix downward by (A+B*CN) modulo F rows, where F is the number of rows in the matrix, A is a predetermined integer, B is a predetermined integer which is coprime to F, CN is the column number of the column, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column.
In another aspect of the present invention the interleaver is operative to rotate such that a column element in the column CN and row R is moved to row (R+A+B*CN) modulo F.
In another aspect of the present invention the system further includes a demultiplexor operative to derive a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the rows, and transmit via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the rows.
In another aspect of the present invention in a system including a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, interleaving apparatus is provided including means for assigning the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, and means for moving any of the code word symbols assigned to one of the time frames to another of the time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the means for assigning is operative to assign such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the means for assigning is operative to assign such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the means for assigning is operative to assign where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the means for moving is operative to move any of the code word symbols assigned to a modem time slot in one of the time frames to the same modem time slot in another of the time frames.
In another aspect of the present invention the means for moving is operative to move such that each of the time frames includes code word symbols from a plurality of the data frames.
In another aspect of the present invention the means for moving is operative to move such that the code word symbols are divided as evenly as possible among the time frames.
In another aspect of the present invention the apparatus further includes means for deriving a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the time frames, and means for transmitting via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the time frames.
In another aspect of the present invention in a system including a plurality of data frames for transmission via a plurality of modems in a modem pool, where each of the data frames includes a plurality of code words having a predefined level of error correction, interleaving apparatus is provided including means for assigning the plurality of data frames to a corresponding plurality of modem time frames, where a plurality of code word symbols in each of the data frames is assigned to a plurality of time slots in the modems in the corresponding time frames such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of modem loss or malfunction, means for constructing a matrix having a plurality of rows and columns, each row including a different one of the data frames and each column corresponding to one of the modems via which the code word symbols in the column are assigned, and means for changing the order of the code word symbols in any of the columns of the matrix such that the predefined level of error correction is sufficient to correct error or loss caused to any of the symbols given a predefined level of cross-modem error burst while preserving the predefined level of error correction sufficient to correct error or loss caused to any of the symbols given the predefined level of modem loss or malfunction.
In another aspect of the present invention the means for assigning is operative to assign such that each of the modems is assigned symbols from a plurality of code words.
In another aspect of the present invention the means for assigning is operative to assign such that the code word symbols are divided as evenly as possible among the modems.
In another aspect of the present invention the means for assigning is operative to assign where the plurality of data frames number at least X/Y, where X is the maximum number of expected errors in a code word given either of the predefined level of modem loss and the predefined level of cross-modem error burst, and Y is the maximum number of symbols that may be corrected in any given code word given the predefined level of error correction.
In another aspect of the present invention X is the maximum number of expected errors in a code word if interleaving is not employed.
In another aspect of the present invention the means for changing is operative to rotate each column in the matrix downward by CN modulo F rows, where CN is the column number of the column, F is the number of rows in the matrix, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column.
In another aspect of the present invention the means for changing is operative to inversely order the columns prior to the rotating.
In another aspect of the present invention the means for changing is operative to rotate each column element in the matrix downward by (A+B*CN) modulo F rows, where F is the number of rows in the matrix, A is a predetermined integer, B is a predetermined integer which is coprime to F, CN is the column number of the column, and column elements that are rotated past the bottom of the matrix are rotated to the top of the column.
In another aspect of the present invention the means for changing is operative to rotate such that a column element in the column CN and row R is moved to row (R+A+B*CN) modulo F.
In another aspect of the present invention the apparatus further includes means for deriving a modem assignment vector for each of the data frames corresponding to the assignment of the code word symbols to the modems in any of the rows, and means for transmitting via the plurality of modems in the modem pool the code word symbols corresponding to the modem assignment vector in each of the rows.
The disclosures of all patents, patent applications, and other publications mentioned in this specification and of the patents, patent applications, and other publications cited therein are hereby incorporated by reference in their entirety.
The present invention will be understood and appreciated more fully from the following detailed description taken in conjunction with the appended drawings in which:
Reference is now made to
Reference is now made to
In
It may be seen in
The round-robin symbol-to-modem assignment shown in
While the round-robin symbol-to-modem assignment described hereinabove may maximize protection against modem loss or malfunction,
Although standard interleaving techniques may be used at this point to provide protection against such cross-modem error bursts, doing so is likely to come at the expense of losing protection against modem loss or malfunction. This may be understood with reference to
Thus, in order to provide protection against both modem loss or malfunction and cross-modem error bursts, the method of
To better distinguish between the code word symbols of the different frames represented by the various modem assignment vectors in matrix 320, and for the purpose of better illustrating the present invention, a matrix 322, as is shown in
In order to provide protection against both modem loss or malfunction and cross-modem error bursts, one of more code word symbols assigned to a modem time slot in one time frame may be reassigned to the same modem time slot in another time frame, thus assigning the code word symbols from each code word to two or more frames and to two or more modems, preferably such that the code word symbols are divided as evenly as possible among the frames, and also divided as evenly as possible among the modems. Thus, the method of
Alternatively, as is shown in
Once the order within the columns of
The net effect of the method of
Reference is now made to
At the receiving end the demultiplexed code word portions are received by modems in a modem pool 510, multiplexed back into interleaved code words at a multiplexer 512, and deinterleaved at a deinterleaver 514 into code words 516 corresponding to code words 502. Code words 516 are then preferably fed into a decoder 518 which detects and corrects any errors in code words 516 in accordance with conventional techniques.
It is appreciated that one or more of the steps of any of the methods described herein may be omitted or carried out in a different order than that shown, without departing from the true spirit and scope of the invention.
While the present invention has been described with reference to one or more specific embodiments, the description is intended to be illustrative of the invention as a whole and is not to be construed as limiting the invention to the embodiments shown. It is appreciated that various modifications may occur to those skilled in the art that, while not specifically shown herein, are nevertheless within the true spirit and scope of the invention.
| Number | Name | Date | Kind |
|---|---|---|---|
| 5056105 | Darmon et al. | Oct 1991 | A |
| 5191576 | Pommier et al. | Mar 1993 | A |
| 5299208 | Blaum et al. | Mar 1994 | A |
| 5400305 | Sadanaka | Mar 1995 | A |
| 5483541 | Linsky | Jan 1996 | A |
| 5572548 | Pirez et al. | Nov 1996 | A |
| 5636224 | Voith et al. | Jun 1997 | A |
| 5799033 | Baggen | Aug 1998 | A |
| 5898710 | Amrany | Apr 1999 | A |
| 5968200 | Amrany | Oct 1999 | A |
| 5983174 | Wong et al. | Nov 1999 | A |
| 5983388 | Friedman et al. | Nov 1999 | A |
| 6065149 | Yamanaka | May 2000 | A |
| 6366776 | Wright et al. | Apr 2002 | B1 |
| 6424637 | Pecen et al. | Jul 2002 | B1 |
| 6598198 | Furuta et al. | Jul 2003 | B1 |
| Number | Date | Country | |
|---|---|---|---|
| 20030074625 A1 | Apr 2003 | US |