Method and apparatus for processing bit-interleaved data traffic in a communication network
09729360 · 2017-08-08
Assignee
Inventors
- Nagaraj Prasanth Anthapadmanabhan (Bridgewater, NJ, US)
- Dusan Suvakovic (Pleasanton, CA, US)
- Hungkei Keith Chow (Livingston, NJ, US)
- Doutje T. Van Veen (New Providence, NJ, US)
Cpc classification
International classification
Abstract
A manner of processing bit-interleaved data traffic in a communication network. In the increasingly-common scenario where data traffic is bit interleaved and scrambled using a PRBS (pseudo-random binary sequence) before it is transmitted from a sender to a receiver, the receiver is configured to receive the transmitted bit stream and decimate it, that is, remove the bits of the bit stream that are allocated for the receiver, prior to descrambling. To accomplish this, the receiver employs an LFSR (linear feedback shift register) similar or identical to the one used by the sender to scramble the data. The LFSR is initialized by employing helper bits inserted by the sender or an initialization unit, and may employ other techniques for phase adjustment or state skipping depending on the nature of the transmitted bit stream.
Claims
1. A communication system comprising a first receiver, the first receiver comprising: a network interface for receiving a scrambled bit stream interleaved to include bits allocated for the first receiver and bits allocated for at least a second receiver; a extractor downstream of the network interface configured to extract from the interleaved bit stream only bits allocated for the first receiver; and a descrambler downstream of the extractor for descrambling the allocated bits extracted from the interleaved bit stream.
2. The communication system of claim 1, further comprising a transmitter, the transmitter comprising a bit stream scrambler.
3. The communication system of claim 2, wherein the bit stream scrambler comprises an m-bit LFSR (linear feedback shift register).
4. The communication system of claim 1, wherein the first receiver is an ONU.
5. The communication system of claim 1, wherein the first receiver is a wireless device.
6. The communication system of claim 1, wherein the descrambler comprises an m-bit LFSR having a feedback loop comprising at least one XOR gate adder having as a first input the output of the m.sup.th register of the LFSR and having as a second input an LFSR tap positioned between the first register of the LFSR and the m.sup.th register of the LFSR.
7. The communication system of claim 6, wherein the at least one XOR gate adder comprises a plurality of XOR gate adders in series, each XOR gate adder having as a second input an LFSR tap positioned between the first register of the LFSR and the m.sup.th register of the LFSR.
8. The communication system of claim 6, wherein the received interleaved bit stream has been scrambled using a PRBS (pseudo-random binary sequence) characterized by an MLS (maximum length sequence).
9. The communication system of claim 8, wherein the LFSR comprises an input selector having as a first input the output of the feedback loop and as a second input the extracted bit stream from the decimator, wherein input selector selects the input to the first register of the LFSR.
10. The communication system of claim 9, wherein the input selector is configured to select the second input for the first m bits of the extracted bit stream corresponding to a data frame and to select the first input otherwise.
11. The communication system of claim 10, wherein the descrambler further comprises an output XOR gate adder having as a first input the output of the feedback loop and as a second input the allocated bit stream from the decimator, wherein the output of the output XOR gate adder is the descrambled data.
12. The communication system of claim 11, wherein the descrambler further comprises: an output selector having as a first input the output of the m.sup.th register of the LFSR and having as a second input the output of the feedback loop; and as a second input the allocated bit stream from the decimator, wherein the output of the output of the output selector is provided to the output XOR gate adder.
13. The communication system of claim 1, further comprising an initialization unit.
14. The communication system of claim 13, further comprising a plurality of input selectors, each input selector having as a first input the output of a preceding register of the LFSR and having as a second input an output of the initialization unit.
15. The communication system of claim 1, further comprising a phase shift computation unit.
16. A method of processing bit-interleaved traffic in a communication system, comprising: receiving at a first receiver a scrambled bit stream interleaved to include bits allocated for the first receiver and bits allocated for at least a second receiver; extracting by the first receiver from the interleaved bit stream only bits allocated for the first receiver; and descrambling the allocated bits extracted from the interleaved bit stream.
17. The method of claim 16, wherein the received interleaved bit stream has been scrambled using a PRBS characterized by an MLS. wherein the received interleaved bit stream has been scrambled using a PRBS (pseudo-random binary sequence) characterized by an MLS (maximum length sequence).
18. The method of claim 17, wherein the descrambler comprises an m-bit LFSR and further comprising initializing the LFSR.
19. The method of claim 18, wherein the bit stream comprises helper bits and initializing the LFSR comprises loading the bits of the received allocation corresponding to the helper bits into the LFSR registers.
20. The method of claim 18, wherein initializing the LFSR comprises loading bits from an initialization unit.
21. The method of claim 16, further comprising discarding by the receiver received bit-stream bits not allocated for the first receiver.
22. The method of claim 16, further comprising interleaving, by a transmitter, a plurality of receiver bit streams to form the interleaved bit stream, scrambling the interleaved bit stream, and transmitting the scrambled interleaved bit stream.
Description
BRIEF DESCRIPTION OF THE DRAWINGS
(1) A more complete understanding of the present invention may be obtained by reference to the following detailed description when taken in conjunction with the accompanying drawings wherein:
(2)
(3)
(4)
(5)
(6)
(7)
(8)
(9)
(10)
(11)
(12)
(13)
(14)
(15)
(16)
(17)
(18)
DETAILED DESCRIPTION
(19) The present invention is directed to a manner of processing bit-interleaved data traffic in a communication network. Specifically, the present invention may be used to advantage where bit-interleaved traffic is scrambled using a PRBS (pseudo-random binary sequence). As mentioned above, bit-interleaved and scrambled data traffic may be advantageously employed in PtMP (point to multi-point) environments, where a single sending unit transmits to multiple receivers that each extract that portion of the data frames that are intended for them. Note, however, that the present invention may be useful and implemented in other environments as well, for example those employing PtP (point to point) communications (which may be viewed as a special case of PtMP).
(20) Although bit interleaving brings some efficiency to a communication environment, it introduces some inefficiencies as well. In the conventional approach, illustrated in
(21) As noted in
(22) The inventors have discovered that this efficiency may be extended by proper configuration and operation of the receiver, especially in a PtMP environment where bit interleaving provides advantages. Several embodiments of this configuration will now be described in further detail.
(23) FIG.4 is a simplified block diagram illustrating selected components of a receiver 100 operational according to an embodiment of the present invention. In this embodiment, receiver 100 includes a network interface 105 that receives bit interleaved and scrambled bit stream 101. Note that the network interface will vary depending on the transmission medium, and may be essentially the same or similar to the network interface 41 depicted in
(24) In the embodiment of
(25) In this embodiment, descrambler 115 then descrambles only the allocated bit stream 111 provided to it, a process further described below. Notably, while the transmitted bit stream 101 arrives at the receiver 100 at the rate R.sub.t, the descrambling process is performed at the much lower rate R.sub.i. This is possible because the descrambler 115 only has to descramble the allocated bit stream 111, which is received from decimator 110 at the lower rate. An increase in the efficiency is expected in all or almost all implementations. Note, however, that no particular rate differential or efficiency increase is a requirement of the present invention unless explicitly recited in a particular embodiment. The decimated and descrambled bit stream 120 is then passed along to downstream elements (not shown) of receiver 100 for further processing.
(26) Note that in most implementations, there are multiple receivers of the bit stream 35, in many cases each processing the bit-interleaved and scrambled bit stream in the same fashion. While this is not a requirement, it is preferred, and for convenience the invention will be described herein based on a network in which all receivers are operating according to the same principle.
(27) Some notation may be assigned for use herein. In its general form, a bit-interleaved frame (for example frame 20 shown in
(28) Note that the allocation may be static or dynamic. Dynamic allocations can vary every frame or after several frames, and not necessarily in a periodic manner As mentioned above, the header field allocation is typically static and regular, and frequently any dynamic allocation is communicated to the relevant receiver or receivers in the header field of the transmission frame, although other mechanisms may be used. Some manner of ascertaining the allocation is of course necessary for the decimator to properly remove the allocated bits.
(29) In implementing the present invention, it is of course desirable that the decimation and descrambling be done properly. The decimated bit stream must accurately include those bits intended for the receiver performing the decimation. As mentioned above this can be assured by allotment information that is either agreed upon in advance or extracted from the transmitted frames themselves, normally from the header portion.
(30) Descrambling after the decimation may be successfully performed by processing the bit stream in a number of different ways, several of which will now be described as separate embodiments. The desirability of each of these embodiments may vary according to factors such as whether the data frame payload allotment is static or dynamic and the selection of the allocation interval K.sub.i.
(31) Note that all mathematical operations described herein are over the binary field unless stated otherwise or clear from the context.
(32) First Embodiment
(33) In a first embodiment, a modified (interleaved, scrambled) bit stream is transmitted by the sending device and received by the receiver, for example at interface 105 of receiver 100 shown in
(34)
(35) In the embodiment of
(36) Note that the PRBS generated by the sending device (see
(37) In the embodiment of
(38) Note that as used herein, “memory” and “memory device” refer to physical data storage device that is non-transitory in the sense of being not merely a propagating signal.
(39) Finally, in this embodiment descrambler 200 includes an output XOR gate adder 225 for combining the output of the LFSR 210, which is feedback loop 215, with the allocated bit stream as it is received at the descrambler 200. The output of XOR gate 225 is the descrambled allocated bit stream, which is provided to the remainder of the receive train (not shown) of the receiver. Operation of the descrambler 200 will now be explained.
(40)
(41) At S
(42) The process then begins with the insertion of helper bits (step 255) into the interleaved frame (or during the interleaving process). Presuming that an m-bit LFSR is used at the scrambler of the sending device (and descrambler of the receiver), the sending device inserts m bits with value 0 at the beginning of the payload for each receiver. To be specific, these m bits are inserted exactly in the allocation for each receiver i, that is, at intervals of K.sub.i bits starting at position S.sub.i. In this embodiment, helper bits are inserted in the payload for all receivers in every transmitted frame. This bit-interleaved frame is then provided to the scrambler for scrambling (step 260), and the scrambled bit stream is then transmitted (step 265).
(43) In the embodiment of
(44) In this embodiment, when the payload section of a frame of the allocated bit stream is received in the descrambler, it is first used to initialize the LFSR. This can be accomplished, for example, by operation (not separately shown) of an input selector, such as the input selector 205 shown in
(45) In the embodiment of
(46) Note that this first embodiment may be used to advantage when the PRBS generated by the scrambler in the sending unit is an MLS (maximal length sequence) and K.sub.i is a power of 2. It is a property of the PRBS that when K.sub.i is a power of 2, the decimated MLS can be generated using the same LFSR as in the scrambler with an appropriate initialization. This property is applied in a novel manner in the present invention.
(47) For convenience, the properties of this type of PRBS are reviewed here considering an m-bit LFSR where the active taps in the feedback path are determined by the recurrence relationship that the PRBS follows. If x.sub.0, . . . , x.sub.m−1 is the first m bits of the PRBS, that is the LFSR registers are initialized as Register 1=x.sub.m−1, Register 2=x.sub.m−2, . . . , Register m=x.sub.0, the recurrence is given by
(48)
The recurrence is alternately described by the generator polynomial g(X) given by
(49)
The coefficients g.sub.j determine the active taps. In the embodiment of
(50) Again, however, when the helper bits are used to initialize the LFSR, the first m bits of the LFSR output need to be skipped because they are not needed to descramble the received data. So, the LFSR output after the XOR gates in the feedback path is used as it has the same effect of skipping the first m output bits.
(51) Note that for the helper bits, instead of inserting m 0s, the sender can also insert any m-bit string that is also known to the receiver. In this case, the receiver XORs the first m received bits with the known string to obtain the initialization (not shown).
(52) Second Embodiment
(53) The second embodiment is in many respects similar to the first, and may also be used to advantage when the PRBS generated by the scrambler in the sending unit is an MLS (maximal length sequence) and K.sub.i is a power of 2. It is also highly suitable for dynamic payload allocations. This embodiment, however, addresses an implementation where helper bits are inserted in the payload for a receiver i in the current frame only if the dynamic allocation to receiver i changes in the current frame with respect to the previous frame.
(54)
(55) More specifically, the descrambler 300 of
(56) The XOR gate adder 225 of
(57) Operation of the descrambler 300 in this embodiment generally follows that shown in
(58) Again, it is presumed that the receiver knows its allocation with respect to the payload, for example from the header portion of a frame. It can therefore detect in which frames there is a change in its dynamic (payload) allocation. This is sometimes made even easier by the presence of a dedicated bit in the header to indicate the allocation change.
(59) In this embodiment, when the payload section of a frame of the allocated bit stream is received in the descrambler 300, it is first used to initialize the LFSR only when there has been a change in the allocation. Again, this can be accomplished, for example, by operation (not separately shown) of an input selector, such as the input selector 205 shown in
(60) Finally, the output sequence of feedback loop 215 is selected by output selector 230 if the dynamic allocation changes in the current frame. As with the embodiment of
(61) Note again that this second embodiment, like the first, may also be used to advantage when the PRBS generated by the scrambler in the sending unit is an MLS (maximal length sequence) and K.sub.i is a power of 2.
(62) Third Embodiment
(63) This embodiment is highly suitable for static allocations. Initially, in this embodiment it is presumed that each receiver i=1, . . . , N has a known static allocation (S.sub.i, T.sub.i, K.sub.i), where K.sub.i is a power of 2, and that the initial state of the LFSR in the scrambler is a fixed and known m-bit sequence. This is true, for example, for some existing standards such as GPON (gigabit PON). Finally, it is presumed that each receiver has an ID (typically in binary format) that is programmed into its hardware. For example, using a simple representation where receiver i has its ID given by i−1 in binary format, each receiver has an ID of length ceil(log.sub.2/N) bits. Under these conditions, an efficient descrambler may be configured as follows.
(64) Reference is made here to
(65) More specifically, the descrambler 320 of
(66) In this embodiment, some processing is performed initially and offline, that it, before the transmission of interleaved data occurs. Given a scrambling polynomial and its initial state, the following processing is performed offline: 1. The m-bit LFSR used by the scrambler (not shown) is simulated or emulated (for example by executing stored software program instructions) with the given initial state to collect the bits x.sub.0.sup.(i), . . . , x.sub.m−1.sup.(i) at positions S.sub.i, S.sub.i+K.sub.i, . . . , S.sub.i+(m−1)K.sub.i respectively from the generated sequence for each receiver i=1, . . . , N. The collected bits x.sub.0.sup.(i), . . . , x.sub.m−1.sup.(i) are the first m bits of the decimated MLS corresponding to the allocation of receiver i. 2. An initialization unit, for example initialization unit 335 shown in
(67) In a related embodiment, processing above can alternately be performed mathematically instead of simulation. For each receiver i=1, . . . , N, determine the first m bits x.sup.(i)=x(S.sub.i, K.sub.i)=(x(S.sub.i, K.sub.i).sub.0, . . . , x(S.sub.i, K.sub.i).sub.m−1).sup.T of the decimated MLS for receiver i by computing
x.sup.(i)=x(S.sub.i, K.sub.i)=H.sub.s.sub.
where H.sub.s.sub.
(68)
Next, obtain H.sub.S.sub.
(69) Note that in this embodiment, there is no change in the sender operation. It does not need to insert any bits as in embodiments one and two described above. This is very advantageous because static allocations are normally used in header fields where it would either be impossible or would be unreasonable to insert additional bits as headers are relatively very short compared to the payload.
(70) In operation, the receiver descrambler implementation is very similar to the scrambler and uses the same LFSR as in the scrambler. The only difference is in the initialization of the LFSR in the descrambler. Instead of using a fixed m-bit sequence as in the scrambler, the descrambler employs the initialization unit designed during offline processing to find the initial state of the LFSR as shown in
Thus, after initially powering ON the receiver, the initialization unit does not have any dynamic power consumption once the initial state is determined.
(71) Note also that this third embodiment, like the first two, may also be used to advantage when the PRBS generated by the scrambler in the sending unit is an MLS (maximal length sequence) and K.sub.i is a power of 2.
(72) Fourth Embodiment
(73) This method is highly suitable for static and regular allocations. As described above, a static and regular allocation is a special case of static allocations In this embodiment it is presumed that the decimation factor K for the static-regular allocation is a power of 2, and that the initial state of the LFSR in the scrambler is a fixed and known m-bit sequence as is currently true for some standards such as GPON. Finally, it is presumed that each receiver has an ID (typically in binary format) which is programmed into its hardware. For example, using a simple representation where receiver i has its ID given by i−1 in binary format, each receiver has an ID of length ceil(log.sub.2N) bits. Under these conditions, we can design an efficient descrambler as follows.
(74) In this embodiment, some processing is performed initially and offline, that it, before the transmission of interleaved data occurs. Given a scrambling polynomial and its initial state, the following processing is performed offline: 1. The m-bit LFSR used by the scrambler (not shown) is simulated or emulated (for example, by executing stored software program instructions) to collect the bits x.sub.0.sup.(i), . . . , x.sub.m−1.sup.(i) at positions S.sub.i, S.sub.i+K.sub.i, . . . , S.sub.i+(m−1)K.sub.i respectively from the generated sequence for each receiver i=1, . . . , N. The collected bits x.sub.0.sup.(i), . . . , x.sub.m−1.sup.(i) are the first m bits of the decimated MLS corresponding to the allocation of receiver i. Note that, instead of simulation or emulation, this step can also be performed by applying the mathematical equations (8) and (9) as explained above. 2. The m-bit scrambler LFSR is re-initialized to the given initial state. The LFSR is again simulated in software to find for each receiver i=1, . . . , N, the position p.sup.(i) in the generated sequence where the m-bit pattern x.sub.0.sup.(i), . . . , x.sub.m−1.sup.(i) occurs. Then, the phase shift corresponding to receivers i=1, . . . , N is computed as p.sup.(i)−1. 3. A phase shift computation unit (also not shown) which takes the receiver ID as input (typically in binary format), and outputs the phase shift corresponding to that receiver (found from step 2, immediately above) is designed. This can be implemented using a look-up table or combinational logic.
(75) Note that again in this embodiment, there is no change in the sender operation. It does not need to insert any bits as in embodiments one and two described above. This is very advantageous because static allocations are normally used in header fields where it would either be impossible or would be unreasonable to insert additional bits as headers are relatively very short compared to the payload
(76) In operation, the descrambler implementation is similar to the scrambler and uses the same LFSR as in the scrambler. The only difference is in the initialization of the LFSR in the descrambler. Instead of using a fixed m-bit sequence as in the scrambler, the descrambler computes the initial state corresponding to the receiver ID with the help of the phase shift computation unit designed during offline processing. The receiver operation is summarized in the flowchart in
(77) Note that there may be a delay in running the descrambler for a number of cycles equal to the phase shift (that is, step 365 of
(78) It is noted that the third and fourth embodiments are similar. It would be expected that the third embodiment has lower power consumption than this one (the fourth embodiment). However, this embodiment may potentially have an area benefit compared with the third embodiment if it is designed intelligently. The initial state of the scrambler, for example, can be picked intelligently so as to make the phase shift computation unit very simple. This can be accomplished by a simple trial and error method where the preprocessing steps are repeated for different scrambler initial states until a simple relationship between the receiver ID and phase shift is found. This is illustrated below. In this case, since the phase shift computation is simple and the remaining part of the initialization is accomplished using the same LFSR, there can be a potential savings in chip area.
(79) The following examples 1 and 2 illustrate some sample results from the preprocessing stage. In the examples below, the starting position S.sub.i=i and the receiver ID is i−1 for each of the receivers i=1, . . . , N. The decimation factor K is the same as the number of receivers N. The phase shift corresponding to each receiver ID is computed using software simulations. These results are then used to derive a mathematical relationship between the phase shift and receiver ID. This mathematical formula can then be used to design the phase shift computation unit.
EXAMPLE 1
(80) Presume that N=K=32 and the scrambling polynomial (i.e., the polynomial which specifies the length and taps of the LFSR used by the scrambler) is 1+x.sup.6+x.sup.7. Note that this is the same scrambling polynomial that is used by GPON. If the initial state of the scrambler is all 1s, i.e., Register 1=1, . . . , Register 7=1, as specified by GPON, then the corresponding relationship between the receiver ID and the phase shift is given in
Phase shift=2.sup.2×Receiver ID+109 if Receiver ID<=4,
2.sup.2×Receiver ID−18 if Receiver ID>=5,
or
Phase shift=(2.sup.2×Receiver ID+109) mod (2.sup.7−1),
to describe the relationship in
(81) On the other hand, by experimenting with different initial states for the scrambler, we can find a much simpler relationship between the receiver ID and phase shift. If the scrambler initial state is set as [0, 0, . . . , 0, 1], i.e., Register 1=0, Register 2=0, . . . , Register 7=1, then the corresponding relationship between the receiver ID and the phase shift is given in
Phase shift=2.sup.2×Receiver ID.
The multiplication of the receiver ID by a power of 2 can be easily implemented in hardware by a simple left shift operation. Therefore, we obtain a very simple implementation of the phase shift computation unit.
EXAMPLE 2
(82) Suppose that N=K=256 and the scrambling polynomial (i.e., the polynomial which specifies the length and taps of the LFSR used by the scrambler) is 1+x.sup.18+x.sup.23. If the initial state of the scrambler is all 1s, i.e., Register 1=1, . . . , Register 23=1, then the corresponding relationship between the receiver ID and the phase shift is given in
Phase shift=2.sup.15×Receiver ID+5615754 if Receiver ID<=84,
2.sup.15×Receiver ID−2772853 if Receiver ID>=85,
or
Phase shift=(2.sup.2×Receiver ID+109) mod (2.sup.7−1),
to describe the relationship in
(83) On the other hand, by experimenting with different initial states for the scrambler, we can find a much simpler relationship between the receiver ID and phase shift. If the scrambler initial state is set as [0, 0, . . . , 0, 1], i.e., Register 1=0, Register 2=0, . . . , Register 23=1, then the corresponding relationship between the receiver ID and the phase shift is given in
Phase shift=2.sup.15×Receiver ID.
The multiplication of the receiver ID by a power of 2 can be easily implemented in hardware by a simple left shift operation. Therefore, we obtain a very simple implementation of the phase shift computation unit.
(84) Note that if the initial state of the scrambler is not fixed, then the method of the fourth embodiment may be modified at the cost of some additional complexity. In the offline processing stage, simulations or emulations can be used to design a phase shift computation unit that takes both the receiver ID and the scrambler initial state as inputs, and outputs the phase shift of the decimated MLS corresponding to the receiver and scrambler initialization.
(85) Finally, note that in this fourth embodiment, to compute the initialization the phase shift corresponding to each receiver is computed in preprocessing, that is, offline. Once the phase shift is known, the correct initialization to generate the decimated MLS can be found by using the scrambler initial state in the LFSR and running the LFSR for a number of cycles equal to the phase shift. Using the LFSR state after so many cycles as the initial state at the descrambler, we generate the same MLS with the correct phase shift, i.e., we generate exactly the decimated MLS as needed. This embodiment is suitable for implementations where the decimation factor K for all receivers is a power of 2, since the decimated MLS in this case for each receiver is the same as the original MLS except for a phase shift. Therefore, the decimated MLS can be generated using the same LFSR as in the scrambler with an appropriate initialization.
(86) Fifth Embodiment
(87) As background for this embodiment and the two that follow, recall that the descrambling methods previously described may be used where (a) the PRBS used by the scrambler is a maximal length sequence (MLS); and (b) at any receiver i where the decimation factor K.sub.i is a power of 2.
(88) Although these conditions are inherently true in many situations, or the system may be designed such that they are true, there remains the possibility that we can be forced to a situation where at least one of the above conditions is not true. The method proposed in this embodiment does not impose or rely on any of these above conditions (a) or (b). This advantage, however, comes at the price of relatively higher complexity. Furthermore, the method of this embodiment may be used in combination with the previously described fourth embodiment.
(89) The state of the descrambler is given by the vector r=(r.sub.m, . . . r.sub.1) where r.sub.i is the bit value stored in register i. Indeed, given the state is r, the first m bits generated by the LFSR are exactly (x.sub.0, . . . , x.sub.m−1)=(r.sub.m, . . . , r.sub.1).
(90) First, a method is described to implement a descrambler that skips a fixed number S states ahead from the current state (with respect to the original LFSR in the scrambler) during each clock cycle. Note that S is not necessarily a power of 2, and the LFSR used in the scrambler can generate any PRBS, which is not necessarily an MLS. The general implementation of the skipping descrambler is shown in
r(e.sub.i, S)=(r.sub.m(e.sub.i, S), . . . , r.sub.1(e.sub.i, S)) of the descrambler after S cycles is found using simulation or emulation. 2. The transfer function/matrix for computing the descrambler state S cycles ahead as a function of its current state is obtained as follows:
(91)
r′=C.sub.S r. 3. The logic for implementing the state skipping is then determined from C.sub.S. Such implementation is possible in several ways. As an example, the new descrambler state r′=(r′.sub.m, . . . , r′.sub.1).sup.T after S cycles from the current state r=(r.sub.m, . . . , r.sub.1).sup.T can be computed as follows:
(92)
Note that the matrix C.sub.S in step 2 above can alternately be calculated mathematically using equations (2) and (5) of the following:
It is possible to compute the special cases: (a) x(S, 1) i.e., the first m bits of the MLS starting at position S and taking every bit (i.e., no decimation) of the original MLS; and (b) x(0, K) i.e., the first m bits of the MLS that is decimated by factor K starting from the first bit. The equations have the following structure:
x(S, 1)=C.sub.S x, (2)
x(0, K)=D.sub.K x, (3)
where C.sub.S and D.sub.K are m×m matrices which depend on the starting position S and decimation factor K respectively. The matrices C.sub.S and D.sub.K are calculated as follows. Let α be a root of the polynomial g(X). Then, we have
(93)
To compute C.sub.S: First, we use equation (4) to compute an expression for α.sup.S+j, j=0, 1, . . . , m−1, in terms of α.sup.l, l=0, 1, . . . , m−1 to obtain
(94)
Further, C.sub.S may be obtained by taking the jth row of the matrix to contain the entries c.sub.j,0, . . . , c.sub.j,m−1, where the m rows of C.sub.S are numbered j=0, 1, . . . , m−1.
And to compute D.sub.K: First, use equation (4) to compute an expression for α.sup.jK,j=0, 1, . . . , m−1, in terms of α.sup.l, l=0, 1, . . . , m−1 to obtain
(95)
Next, obtain D.sub.K by taking the jth row of the matrix to contain the entries d.sub.j,0, . . . , d.sub.j,m−1, where the m rows of D.sub.K are numbered j=0, 1, . . . , m−1.
(96) Also note the following. If the recurrence relation for the LFSR is given by construct the m×m matrix G as follows: ′
(97)
where 0.sub.m−1 is the column vector with m−1 zeros and l.sub.m−1 is the (m−1)×(m−1) identity matrix. Then, C.sub.S can also be computed using the relation
C.sub.S=G.sup.S.
Sixth Embodiment
(98) This embodiment is related to the fifth, described above. The method proposed in this embodiment does not impose or rely on the conditions (a) the PRBS used by the scrambler is a maximal length sequence (MLS); or (b) where the decimation factor K.sub.i is a power of 2. This advantage, however, again comes at the price of relatively higher complexity. Furthermore, the method of this embodiment may be used in combination with the previously described fourth and fifth embodiments.
(99) The state of the descrambler is again given by the vector r=(r.sub.m, . . . r.sub.1) where r.sub.i is the bit value stored in register i. Indeed, given the state is r, the first m bits generated by the LFSR are exactly (x.sub.0, . . . , x.sub.m−1)=(r.sub.m, . . . , r.sub.1).
(100) In this embodiment a method is proposed for skipping a variable number of cycles ahead. Initially, presume the descrambler required to skip a variable number S states ahead from the current state. Suppose that S can be any value that is at most S.sub.max (given). The trivial way is of course to implement the logic for fixed skipping for each S that is at most S.sub.max and use one of them as desired. The method of this embodiment is believed to be more efficient and is proposed below. 1. The number of bits to represent S.sub.max in binary format is computed as p=ceil(log.sub.2(S.sub.max+1)). 2. The logic for skipping a fixed number of cycles ahead is implemented for every S′=2.sup.i, where i=0, 1, 2, . . . , p−1. This logic may be based on the fifth embodiment, above, but can be based on other schemes as well. 3. In order to skip S cycles ahead, where S is at most S.sub.max, a combination of the fixed skipping logic in step 2 are cascaded as needed. This is achieved by taking the binary representation of S and cascading the logic corresponding to S′=2.sup.i if the bit position i (with least significant bit having position 0) in the binary representation of S is 1. This is shown in
(101) As an example, presume S.sub.max=250. Then, p=ceil(log.sub.2(251))=8. In this case, the logic for skipping 1, 2, 2.sup.2, . . . , 2.sup.7 cycles are each implemented. Suppose we wish to skip S=200 cycles ahead at some point. The binary representation for 200 is given by 11001000. So, skipping 200 cycles ahead is accomplished by cascading the logic for skipping ahead by 2.sup.7, 2.sup.6 and 2.sup.3 cycles.
(102) Note that minor variations of steps 2 and 3, immediately above, are possible. For example, instead of implementing the logic skipping for 2.sup.i cycles separately, this can also be done by skipping 2.sup.i−1 cycles twice. Other variations are possible based on the decomposition property (see equation 11, below; eighth embodiment), as will be explained below in further detail.
(103) Seventh Embodiment
(104) This embodiment is related to the fifth and sixth, described above. The method proposed in this embodiment does not impose or rely on the conditions (a) the PRBS used by the scrambler is a maximal length sequence (MLS); or (b) where the decimation factor K.sub.i is a power of 2. This advantage, however, again comes at the price of relatively higher complexity. Furthermore, the method of this embodiment may be used in combination with the previously described fourth, fifth, and sixth embodiments.
(105) The state of the descrambler is again given by the vector r=(r.sub.m, . . . r.sub.1) where r.sub.i is the bit value stored in register i. Indeed, given the state is r, the first m bits generated by the LFSR are exactly (x.sub.0, . . . , x.sub.m−1)=(r.sub.m, . . . , r.sub.1).
(106) In this embodiment a method is proposed for descrambling bit-interleaved traffic. Initially, suppose the allocation for receiver i is (S.sub.i, T.sub.i, K.sub.i). In order to produce the bits for descrambling receiver i's allocation, use the method for skipping a variable number of cycles as follows: 1. The registers are initialized to the original initial state used by the scrambler. 2. As outlined in the sixth embodiment, the logic for skipping a fixed number of cycles ahead is implemented for every S′=2.sup.i, where i=0, 1, 2, . . . , p−1. We can set S.sub.max for example as S.sub.max=max (S.sub.i, K.sub.1, . . . , S.sub.N, K.sub.N). 3. The logic to skip ahead by S.sub.i cycles is activated once (by cascading) to obtain the initial state corresponding to receiver i. This initial state is stored and is used directly for future frames. For static allocations, this computation is done only once. For dynamic allocations, the initial state is updated whenever there is a change in S.sub.i. 4. After initializing to the state corresponding to S.sub.i, the logic to skip ahead by K.sub.i cycles is activated continuously (by cascading) to produce the bits needed to descramble the traffic obtained by receiver i. See
Eighth Embodiment
(107) As background to the eighth embodiment, suppose an m-bit LFSR is used in the scrambler and consider a receiver i with allocation (S.sub.i, T.sub.i, K.sub.i) where K.sub.i is a power of 2. In order to produce the decimated MLS corresponding to receiver i using the same LFSR, it needs to be initialized appropriately.
(108) The appropriate initialization of the LFSR is given by the first m bits x(S.sub.i, K.sub.i)=(x(S.sub.i, K.sub.i).sub.0, . . . , x(S.sub.i, K.sub.i).sub.m−1).sup.T of the decimated MLS for receiver i. This can be mathematically computed as x(S.sub.i, K.sub.i) using equations (8) and (9), above. These computations depend on the allocation parameters S.sub.i, K.sub.i, but it is manageable if the allocations are static. However, if S.sub.i and K.sub.i vary dynamically, a practical method to perform the computations is desirable.
(109) This embodiment outlines how such an initialization unit can be designed for dynamic allocations. The function of the initialization unit in a descrambler according to this embodiment is shown in
(110) First, observe that the following property is true:
x(S.sub.i, K.sub.i)=H.sub.S.sub.
where D.sub.Ki and C.sub.Si are determined by equations (2)-(6). This is because x′=C.sub.Si x provides the first m bits of the MLS starting at position S.sub.i. Now, considering the MLS starting with x′ (i.e., at position S.sub.i of the original MLS), computing D.sub.Ki x′ provides the first m bits of the MLS decimated by factor K.sub.i. Thus, equation (10) provides a decomposition of the computation where C.sub.Si accounts for skipping the first S.sub.i positions and D.sub.Ki accounts for the decimation by factor K.sub.i.
(111) In general, the logic for multiplying a binary m×m matrix A by a binary vector x=(x.sub.0, . . . , x.sub.m−1).sup.T
x′=A x
is simple to implement and this is possible in several ways. As an example
(112)
where a.sub.ij, with i,j=1, . . . , m, is the entry in A in row i and column j. The main problem in the implementation of equation (10) is that S.sub.i and K.sub.i can vary.
(113) Now, in order to support varying values of S.sub.i, the ideas described in embodiment six, above, can be used. Presume that S.sub.i can be any value that is at most S.sub.max and p=ceil(log.sub.2(S.sub.max+1)). The logic for skipping a fixed number of cycles (i.e., positions in the original MLS) ahead is implemented for every S′=2.sup.i, where i=0, 1, 2, . . . , p−1. This logic may be based on the fifth embodiment, above, but can be based on other schemes as well. In order to skip S.sub.i=(b.sub.p−1, b.sub.p−2, . . . , b.sub.0) cycles ahead, where (b.sub.p−1, b.sub.p−2, . . . , b.sub.0) denotes the binary representation of S.sub.i, a combination of the fixed skipping logic are cascaded as needed. Specifically, the logic corresponding to skipping S′=2.sup.i cycles is cascaded if b.sub.i=1.
(114) The decomposition of S.sub.i to support varying values using its binary representation as described above is quite convenient especially in hardware. More generally, the decomposition is based on the following basic property:
If S.sub.i=a+b, then C.sub.Si=C.sub.a.Math.C.sub.b where a, b are positive integers. (11)
Based on this property, there are several possible decompositions, one of which may suit the particular application. For example, the logic for skipping a fixed number of cycles can be implemented for S′=10.sup.i, for i=0, 1, 2, . . . . Then, in order to skip, say S.sub.i=154 cycles, we call the logic for skipping S′=10.sup.2, 10.sup.1, 10.sup.0 cycles once, five times, and four times respectively in a cascade manner.
(115) In order to support varying values of K.sub.i, we use the following decomposition property which holds when K.sub.i is a power of 2:
If K.sub.i=a.Math.b with a=2.sup.a′ and b=2.sup.b′, then D.sub.Ki=D.sub.a.Math.D.sub.b. (12)
Thus, in the simplest implementation, it is only necessary to realize the logic for D.sub.2, i.e, decimation by factor 2. Then, decimation by any K.sub.i=2.sup.k can be realized by calling the logic for D.sub.2 in a cascade manner for k times since D.sub.2^k=(D.sub.2).sup.k. In a more sophisticated implementation, the decimation logic for D.sub.K′ where K′=2.sup.x, 2.sup.y, 2.sup.z, . . . can be implemented. Then, in order to decimate by factor K.sub.1=2.sup.x+y+z, we cascade the logic for decimation by K′=2.sup.x, 2.sup.y and 2.sup.z; to decimate by factor K.sub.2=2.sup.x+y, we cascade the logic for decimation by K′=2.sup.x and 2.sup.y; and so on.
To summarize, the initialization unit of the descrambler operates in the following steps, which is also illustrated in
(116) Finally, the m bits output from the initialization unit are used to initialize the LFSR (which is the same as in the scrambler) to produce exactly the decimated MLS required for descrambling the data.
(117) Note that the sequences of operation illustrated in the drawings and explained herein by reference to them represent exemplary embodiments; some variation is possible within the spirit of the invention. For example, additional operations may be added to those shown, and in some implementations one or more of the illustrated operations may be omitted. In addition, the operations of the method may be performed in any logically-consistent order unless a definite sequence is recited in a particular embodiment. The same is true for the skipping logic and the decimating logic illustrated in the drawings, for example
(118) Although multiple embodiments of the present invention have been illustrated in the accompanying Drawings and described in the foregoing Detailed Description, it should be understood that the present invention is not limited to the disclosed embodiments, but is capable of numerous rearrangements, modifications and substitutions without departing from the invention as set forth and defined by the following claims. For example, consider a sender that broadcasts the same information to all N receivers. Note that all N receivers are interested in the same information in this example. So, a broadcast scheme rather than a multiplexing scheme is used. Suppose the sender broadcasts at a high rate of, say, 10 Gbps. Further, suppose that some of the receivers can handle only smaller rates of reception, say, 1 Gbps, 2.5 Gbps etc. In this case, each such receiver obtains a set of intermittent bits from the original transmission at a rate corresponding to the receiver's limit. Once again, the receiver is faced with the problem of descrambling a set of intermittent bits. Our techniques will be applicable in this situation too.