Synchronization circuit for ATM cells
21 claims: 5 independent, 16 dependent
- 1A synchronization circuit for receiving a fixed bit length cell including a m-bit length header with CRC code and payload, comprising; a shift register unit (21) for receiving an input bit stream (B in ) constituting the fixed length cell stream and for temporarily storing the input bit stream; a unit (22) for performing CRC arithmetic over the input bit stream and for outputting a CRC arithmetic result; and a synchronization detector (23) for detecting synchronization of an input bit stream; the shift register unit (21), having at least an m-bit-stage for storing consecutive m bits, being arranged to shift a received bit of the input bit stream from the first stage to the m-th stage; and the synchronization detector (23) being arranged to receive the CRC arithmetic result from the arithmetic unit (22) and to identify the m-bit length header of the fixed length cell in case the received arithmetic result shows a prescribed value; characterised in that said unit (22) for performing CRC arithmetic over the input bit stream and for outputting said CRC arithmetic result is an arithmetic unit (22) comprising:- a first CRC arithmetic unit (31) arranged to deem the overflow bits forced out from said shift register as the term of the m-th order to divide the term of the m-th order by a generator polynomial used for the CRC operation, and to output the remainder which is obtained as a first CRC arithmetic operation result;- a second CRC arithmetic unit (32) arranged to receive as input an input bit train divided at the input stages of the shift register, to deem the bit appearing at the divided input bit train side as the term of the 0-th order, and to output as the second CRC arithmetic operation result the term of the 0-th order plus the remainder obtained by dividing the CRC arithmetic operation result obtained just before by the said generator polynomial;and - a subtraction unit (33) arranged to obtain the difference between said first CRC arithmetic operation result and said second CRC arithmetic operation result;said arithmetic unit (22) being arranged to obtain the said CRC arithmetic operation result (C out ) in a time series manner from said difference obtained by said subtraction unit (33) and to output it to the said synchronization detector (23).
- 6A synchronization circuit for receiving a fixed bit length cell including a m-bit length header with CRC code and payload, comprising; a shift register unit (21) for receiving an input bit stream (B in ) constituting the fixed length cell stream and for temporarily storing the input bit stream; a unit (22) for performing CRC arithmetic over the input bit stream and for outputting a CRC arithmetic result; and a synchronization detector (23) for detecting synchronization of an input bit stream; the shift register unit (21), having at least an m-bit-stage for storing consecutive m bits, being arranged to shift a received bit of the input bit stream from the first stage to the m-th stage; and the synchronization detector (23) being arranged to receive the CRC arithmetic result from the arithmetic unit (22) and to identify the m-bit length header of the fixed length cell in case the received arithmetic result shows a prescribed value; characterised in that said unit (22) for performing CRC arithmetic over the input bit stream and for outputting said CRC arithmetic unit result is an arithmetic unit (22) comprising:- a third CRC arithmetic unit (41) which is arranged to divide the first bit train, delayed by m bits by the said shift register and deemed a term of an m-th order, by the generator polynomial used for the said CRC operation and to output the remainder obtained as the third CRC arithmetic operation result, - a fourth CRC arithmetic unit (42) arranged to divide a second bit train, deemed to be the same bit train as said first bit train with the same bit train as the bit train stored in the said shift register attached to the bottom portion, by said generator polynomial and to output the remainder obtained as the fourth CRC arithmetic operation result, and - a subtraction unit (43) arranged to obtain a difference between said third CRC arithmetic operation result and said fourth CRC arithmetic operation result;said arithmetic unit (22) being arranged to obtain the said CRC arithmetic operation results (C out ) in a time series manner from said difference obtained by said subtraction unit (43) and to output the same to said synchronization control unit (23).
- 11A synchronization circuit for receiving a fixed bit length cell including a m-bit length header with CRC code and payload, comprising; a shift register unit (21) for receiving an input bit stream (B in ) constituting the fixed length cell stream and for temporarily storing the input bit stream; a unit (22) for performing CRC arithmetic over the input bit stream and for outputting a CRC arithmetic result; and a synchronization detector (23) for detecting synchronization of an input bit stream; the shift register unit (21), having at least an m-bit-stage for storing consecutive m bits, being arranged to shift a received bit of the input bit stream from the first stage to the m-th stage; and the synchronization detector (23) being arranged to receive the CRC arithmetic result from the arithmetic unit (22) and to identify the m-bit length header of the fixed length cell in case the received arithmetic result shows a prescribed value; characterised in that said unit for performing CRC arithmetic over the input bit stream and for outputting said CRC arithmetic result is a continuous CRC arithmetic unit (22) comprising:- a wired logic unit (51) which is arranged to receive as input m number of bit outputs (b) from the shift register and to distribute the bit outputs (b) to predetermined bit positions set in advance for the bit outputs (b) among a plurality of bit positions and - a remainder arithmetic unit (52) which is arranged to execute the addition of the bit outputs (b) distributed to each of the plurality of input gates (53) corresponding to the plurality of bit positions and input to each of the input gates (53), to perform an equivalent operation as the said CRC operation on the said input bit train (B in ), and to output said CRC arithmetic operation result (C out ) ;and said continuous CRC arithmetic unit (22) being arranged to output the said CRC arithmetic operation result (C out ) to the said synchronization detector (23).
- 13A synchronization circuit for receiving a fixed bit length cell including a m-bit length header with CRC code and payload, comprising; a shift register unit (21) for receiving an input bit stream (B in ) constituting the fixed length cell stream and for temporarily storing the input bit stream; a unit (22) for performing CRC arithmetic over the input U bit stream and for outputting a CRC arithmetic result; and a synchronization detector (23) for detecting synchronization of an input bit stream; the shift register unit (21), having at least an m-bit-stage for storing consecutive m bits, being arranged to shift a received bit of the input bit stream from the first stage to the m-th stage; and the synchronization detector (23) being arranged to receive the CRC arithmetic result from the arithmetic unit (22) and to identify the m-bit length header of the fixed length cell in case the received arithmetic result shows a prescribed value; characterised in that said unit (22) for performing CRC arithmetic over the input bit stream and for outputting said CRC arithmetic result is an arithmetic unit (22) comprising:- a remainder arithmetic unit (61) which is arranged to receive as input the first stage bit output (D 0 ) and the k-th stage bit output (D 5 ) of the k-stage shift register and the CRC arithmetic operation result (C n-1 ) obtained by the CRC operation just before and to calculate the CRC arithmetic operation result (C n ) and - a delay unit (62) which is arranged to give a delay to the said CRC arithmetic operation result (C n ) output from the remainder arithmetic unit (61) and to return it as the CRC arithmetic operation result (C n-1 ) of the time when obtaining the CRC arithmetic operation result to the remainder arithmetic unit (62);said arithmetic unit (22) being arranged to divide the said CRC arithmetic operation result (C n ) output from the remainder arithmetic unit (61) and to supply it to the said synchronization detector (23).
- 21A communication system comprising a transmitter and a receiver each having a synchronization circuit as claimed in any preceding claim.
Independent claims5
174 paragraphs, as filed
0001The present invention relates to a synchronization circuit for receiving a fixed bit length cell including a m-bit length header with CRC code and payload, comprising, a shift register unit for receiving an input bit stream constituting the fixed length cell stream and for temporarily storing the input bit stream, a unit for performing CRC arithmetic over the input bit stream and for outputting a CRC arithmetic result, and a synchronization detector for detecting synchronization of an input bit stream, the shift register unit, having at least an m-bit-stage for storing consecutive m bits, being arranged to shift a received bit of the input bit stream from the first stage to the m-th stage, and the synchronization detector being arranged to receive the CRC arithmetic result from the arithmetic unit and to identify the m-bit length header of the fixed length cell in case the received arithmetic result shows a prescribed value. Such a circuit is known from US-A-3 336 467. The invention is particularly concerned with a synchronization circuit in an asynchronous transfer mode (ATM) communication system for synchronization of ATM cells connected on the lines in the system, that is, cell synchronization.
0002At the present time, the CCITT is proposing ATM communications suitable for broad band ISDN's etc., that is, data transfer by an asynchronous transfer mode, and is pressing forward with standardization of such systems. One proposal is for use of a full ATM for a layer 1.
0003If full ATM is used for the layer 1 in accordance with that proposal, technology would become necessary for extracting each and every ATM cell, the units of data transferred by the ATM communications network., That is, it would be necessary to establish cell synchronization and detect the positions of the cells (extraction of the cells).
0004To extract cells in this way, cyclic redundancy check (CRC) arithmetic operations are said to be extremely effective. That is, the CRC arithmetic operation is performed on the header of a cell, the cells are detected when the results of the CRC arithmetic operation become fixed values, and cell synchronization is performed. In this case, even detection of errors of the cell header itself can naturally be performed by the inherent CRC function. Note that even when an error is included in a cell, cell synchronization can be sufficiently ensured by so-called front protection and rear protection.
0005Usually, ATM cells are comprised of the above header and a payload for transmitting the inherent information. The header also includes a field known as a header error control (HEC). The result of the CRC arithmetic operation are written into this HEC. The present invention relates to a synchronization circuit which writes, at the transmission side of the ATM cell, the result of the CRC arithmetic operation on the header in the HEC as a cell synchronization establishment signal and detects, at the reception side of the ATM cell, the coincidence of the results of the CRC arithmetic operation on the header of the ATM cell received and the result of the CRC arithmetic operation written at the transmission side in the HEC of the ATM cell received so as to detect if cell synchronization has been achieved and outputs a synchronization detection signal.
0006A detailed explanation will be made later of several conventional CRC arithmetic units referring to the attached figures. Here, in summary, however, conventional CRC arithmetic units basically are constructed to receive input bit trains having definite time series, perform CRC arithmetic operations on the trains, and obtain a CRC arithmetic operation result.
0007On the other hand, in the ATM transmission art, a synchronization circuit of the full ATM transmission system does not cover such input bit trains having definite time series, but cover input bit trains having indefinite time series (ATM cell groups), so it is necessary to shift the input bit trains one bit at a time to continuously obtain CRC arithmetic operation results C<sub>out</sub>.
0008If a conventional CRC arithmetic unit is assembled and designed to perform a CRC arithmetic operation on such input bit trains having indefinite time series (ATM cell groups), the assembled CRC arithmetic operation circuit would enlarge the size of the apparatus (hardware) . Further, if the CRC arithmetic operation is performed on ultrahigh speed data, the problem will arise of an increased processing delay.
0009In addition to the prior art cited in the opening paragraph of the specification, reference is made to IEEE Global Telecommunications Conference, vol. 1, 28.11.1988, Hollywood (US), p. 394-402, Hsing et all: "On cell size and header control of asynchronous transfer mode (ATM)", which is concerned with the use of ATM in B-ISDN services. It examines the need for CRC implementation and concludes that it can correct a single bit error in the cell header, reducing the risk of misdirection of cells.
0010Additionally, reference is made to Electronics Letters, vol. 19, no. 3, 3rd February 1983, Hitchin (GB), pages 109-110, Ely and all: "High-speed decoding technique for slip detection in data transmission systems using modified cyclic block codes", which discloses a synchronisation circuit for receiving a fixed bit length cell including a m-bit length head with CRC code and payload, comprising, a shift register unit for receiving an input bit stream constituting the fixed length cell stream and for temporarily storing the input bit stream, an arithmetic unit for performing CRC arithmetic over the input bit stream and for outputting a CRC arithmetic result, and a synchronization detector for detecting synchronization of an input bit stream.
0011The present invention, in view of the above-mentioned problems, has as its object the provision of a synchronization circuit provided with a CRC arithmetic unit which, in at least some embodiments thereof, can obtain continuous CRC arithmetic operation results from input bit trains comprised of indefinite time series without increasing the processing delay and without increasing the size of the apparatus even in the case of ultrahigh speed data of several 100 Mb/s or more.
0012The invention relates to a communication system as defined in the opening paragraph and is characterised, according to one aspect of the invention, in that said unit for performing CRC arithmetic over the input bit stream and for outputting said CRC arithmetic result is an arithmetic unit comprising, a first CRC arithmetic unit arranged to deem the overflow bits forced out from said shift register as the term of the m-th order to divide the term of the m-th order by a generator polynomial used for the CRC operation, and to output the remainder which is obtained as a first CRC arithmetic operation result, a second CRC arithmetic unit arranged to receive as input an input bit train divided at the input stages of the shift register, to deem the bit appearing at the divided input bit train side as the term of the 0-th order, and to output as the second CRC arithmetic operation result the term of the 0-th order plus the remainder obtained by dividing the CRC arithmetic operation result obtained just before by the said generator polynomial, and a subtraction unit arranged to obtain the difference between said first CRC arithmetic operation result and said second CRC arithmetic operation result, said arithmetic unit being arranged to obtain the said CRC arithmetic operation result in a time series manner from said difference obtained by said subtraction unit and to output it to the said synchronization detector.
0013According to the invention from a second aspect, there is provided a synchronization circuit as claimed in Claim 6.
0014According to the invention from a third aspect, there is provided a synchronization circuit as claimed in Claim 11.
0015According to the invention from a fourth aspect, there is provided a synchronization circuit as claimed in Claim 13.
0016The present invention will be better understood from the following description of preferred embodiments given by way of example and with reference to the accompanying drawings, wherein: <ul id="ul0001" list-style="none" compact="compact"><li>Fig. 1 is a view of a first example of a conventional CRC arithmetic unit;</li><li>Fig. 2 is a view of a second example of a conventional CRC arithmetic unit;</li><li>Fig. 3 is a view of an example of an improvement of the first example of the conventional CRC arithmetic unit;</li><li>Fig. 4 is a view of an input bit train having a definite time series;</li><li>Fig. 5 is a view of an input bit train having an indefinite time series;</li><li>Fig. 6 is a view of a first example of a synchronization circuit handling input bit trains having indefinite time series;</li><li>Fig. 7 is a view of a second example of a synchronization circuit handling input bit trains having indefinite time series;</li><li>Fig. 8 is a block diagram of the principle of the synchronization circuit according to the present invention;</li><li>Fig. 9 is a view of the general format of an ATM cell to which the present invention is applied;</li><li>Fig. 10 is a view of a first embodiment of the present invention;</li><li>Fig. 11 is a view of an example of realization of the first embodiment;</li><li>Fig. 12 is a view of a second embodiment according to the present invention;</li><li>Fig. 13 is a view of an example of realization of the second embodiment;</li><li>Fig. 14 is a view showing a first more detailed example of realization of the first embodiment;</li><li>Fig. 15 is a view showing a second more detailed example of realization of the first embodiment;</li><li>Fig. 16 is a view showing a third more detailed example of realization of the first embodiment;</li><li>Fig. 17 is a view showing a first more detailed example of realization of the second embodiment;</li><li>Fig. 18 is a view showing a second more detailed example of realization of the second embodiment;</li><li>Fig. 19 is a view showing a third more detailed example of realization of the second embodiment;</li><li>Fig. 20 is a view of a third embodiment according to the present invention;</li><li>Fig. 21 is a view of an example of realization of the third embodiment;</li><li>Fig. 22 is a view of the bit pattern for constituting the wired logic unit of Fig. 21;</li><li>Fig. 23 is a view of a fourth embodiment according to the present invention;</li><li>Fig. 24 is a view of the general format of the ATM cell used for explaining the fourth embodiment;</li><li>Fig. 25 is a view of an example of realization of the fourth embodiment;</li><li>Fig. 26 is a timing chart of signals appearing at key portions of Fig. 25;</li><li>Fig. 27 is a view of a detailed example of a remainder arithmetic unit;</li><li>Fig. 28 is a view of the bit pattern for constituting the portion corresponding to the bit output D0 in the wired logic unit of Fig. 27;</li><li>Fig. 29 is a view of the bit pattern for constituting the portion corresponding to the bit output D5 in the wired logic unit of Fig. 27;</li><li>Fig. 30 is a view of the bit pattern for constituting the portion corresponding to the immediately preceding CRC arithmetic operation result C<sub>n-1</sub> in the wired logic unit of Fig. 27;</li><li>Fig. 31 is a block diagram of the principle of a synchronization circuit including a reset means;</li><li>Fig. 32 is a view of an example of application of the reset means to the synchronization circuit of Fig. 14;</li><li>Fig. 33 is a view of an example of a synchronization control unit 23 in Fig. 32;</li><li>Fig. 34 is e timing chart showing the reset signal in Fig. 33;</li><li>Fig. 35 is a view of an example of incorporation of the reset means in the circuit of Fig. 25;</li><li>Fig. 36 is a timing chart of signals appearing at key portions of Fig. 35;</li><li>Fig. 37 is a view of a specific example of a header error correction means;</li><li>Fig. 38 is a timing chart of signals appearing at key portions of Fig. 37;</li><li>Fig. 39 is a view of an example of an S<sub>-1</sub> arithmetic unit in Fig. 37;</li><li>Fig. 40 is a view of the bit pattern for constituting the S<sub>-1</sub> arithmetic unit of Fig. 39;</li><li>Fig. 41 is a view of one example of the S<sub>1</sub> arithmetic unit in Fig. 37;</li><li>Fig. 42 is a view of the bit pattern for constituting the Si arithmetic unit in Fig. 41;</li><li>Fig. 43 is a view of an example of the bit correction unit of Fig. 37;</li><li>Fig. 44 is a timing chart of signals appearing at key portions of Fig. 43;</li><li>Fig. 45 is a block diagram of the principle of a synchronization circuit including a logic inversion means; and</li><li>Fig. 46 is a view of an example of a logic inversion means.</li></ul>
0017Before describing the embodiments of the present invention, the related art and the disadvantageous therein will be described with reference to the related figures.
0018First, an explanation will be made of the conventional CRC arithmetic unit used for the previously mentioned CRC arithmetic operations. Figure 1 is a view of a first example of a conventional CRC arithmetic unit.
0019The first conventional example (Fig. 1) is of a type which reads out the CRC arithmetic operation results by a table and includes a ROM 11 storing the table, that is, a ROM table.
0020All CRC arithmetic operation results C<sub>out</sub> for the bit trains B<sub>in</sub> of the input m number of bits are stored in advance in the ROM table. The input bit trains B<sub>in</sub> are considered as addresses of the ROM 11 and the data read out at this time is the CRC arithmetic operation result sought.
0021Figure 2 is a view of a second example of a conventional CRC arithmetic unit.
0022The second conventional example (Fig. 2) is of a so-called shift register type and includes serially connected shift registers 12 and exclusive OR gates (EX-OR) 13 inserted between the shift registers. The exclusive OR gates 13 have connectors 14 connected to them. The connectors 14 connect or do not connect (truth value set to "0") the CRC arithmetic operation results C<sub>out</sub>' in accordance with the coefficients of each order of the general polynomials used in the CRC arithmetic operation ("1" or "0"). Subtraction by the EX-OR 13 is not performed when the coefficient is "0".
0023Therefore, at the initial state, the values of all shift registers 12 are cleared to "0", then bit trains are successively input from the left side of the figure. The values of all shift registers 12 (χ<sub>0</sub>, χ<sub>1</sub>... χ<sub>n-1</sub>) when the final bit is input to the shift register 12 (χ<sub>0</sub>) at the left side show the CRC arithmetic operation result sought. Therefore, the values of χ<sub>o</sub> to χ<sub>n-1</sub> are read out at that point of time and the arranged value C<sub>out</sub> is the value sought.
0024Figure 3 is a view of an example of an improvement of the first example of the conventional CRC arithmetic unit.
0025The improved version of the first example of the conventional CRC arithmetic unit is a type which reads out the CRC arithmetic operation result and is comprised of a combination of a plurality of ROM tables and a plurality of EX-OR logic gates, with a plurality of ROM's 11 and a plurality of exclusive OR gates (EX-OR) 13 being connected in parallel as illustrated. The contents of these ROM's 11 differ, however, so the ROM's are referred to as the ROM 1, ROM 2···. For example, the ROM 1 contains arithmetic operation results of "XXX···X 000···0" (XXX···X being the α1 bit and 000···0 being the m-α<sub>1</sub> bit), the ROM 2 contains the arithmetic operation result of "XXX···X 0000" (XXX···X being the α<sub>2</sub> bit and 000···0 being the m-α<sub>1</sub>-α<sub>2</sub> bit).
0026The bit train B<sub>in</sub> of the input m number of bits is divided into suitable numbers of bits (shown by α<sub>1</sub>, α<sub>2</sub>···α<sub>p</sub>, for example, each comprised of five bits). The CRC arithmetic operation result read out from the corresponding ROM 11 (each being of 1 number of bits) are input to the EX-OR's 13 as illustrated. The CRC arithmetic operation result C<sub>out</sub> sought is obtained from the final stage EX-OR 13. Note that when the number of bits of the remaining α<sub>p+1</sub> bits is smaller than the number of bits of the generator polynomial, α<sub>p+1</sub> is input to the final stage EX-OR 13 as is as the remainder.
0027According to this improved example, even if the number of bits m increases, the address space sought in the ROM 11 does not increase exponentially as in the first conventional example (Fig. 1). Further, compared with the above-mentioned second conventional example, since the CRC arithmetic operation processing is parallel processing, there is the advantage that a high speed is not required in the logic devices (ROM 1 and EX-OR 13).
0028The examples of the CRC arithmetic units given above are convenient for performing CRC arithmetic operations on segmented bit trains formed by dividing a continuous bit train into certain bit lengths. That is, they are suitable for CRC arithmetic operations on input bit trains having definite time series.
0029Figure 4 is a view of an input bit train having a definite time series. In this figure, for example, a bit train B<sub>in</sub> divided into lengths of m bits is shown. It shows in particular the q-th segmented bit train and the q+1-st segmented bit train.
0030Figure 5 is a view of an input bit train having an indefinite time series. The figure shows the state of shifting the object of the CRC arithmetic operation one bit at a time. That is, the extraction of a cell at the full ATM mentioned above is performed by successively shifting the input bit train B<sub>in</sub> by a bit and executing a CRC arithmetic operation each time. The figure shows the input bit train B<sub>in</sub> covered by the q-th, q+1-st, and q+2-nd CRC arithmetic operations.
0031Figure 6 is a view of a first example of a synchronization circuit handling input bit trains having indefinite time series.
0032Figure 7 is a view of a second example of a synchronization circuit handling input bit trains having indefinite time series. Continuously sought CRC arithmetic operation results C<sub>out</sub> are obtained from these circuits. Note that C<sub>p</sub>, C<sub>p+1</sub>··· in Fig. 7 are issued at respectively inherent timings and all form the C<sub>out</sub>.
0033The first example of the circuit (Fig. 6) corresponds to one based on the improvement of the first conventional example mentioned earlier (Fig. 3) and includes a multiple stage shift register 12 and a CRC arthmitic unit 16. Th CRC arithmetic unit 16 is basically the same in circuit construction as the ones shown in Fig. 1 and Fig. 3.
0034The second example of the circuit (Fig. 7) includes a number of CRC arithmetic units 17 provided in parallel and a control apparatus 18 for controlling the same. The arithmetic units 17 are basically the same in construction as the fore-mentioned second conventional example (Fig. 2).
0035However, when the first conventional example (Fig. 1) is used, an increase in the number of bits m is accompanied by an exponential increase in the address space in the ROM 11 and the problem occurs of a large size of the hardware. When the improvement (Fig. 3) is used, EX-OR's 13 are connected to numerous stages and the operating speed of the layer 1 of the ATM is 620 Mb/s or 155 Mb/s, so the gate (EX-OR) delay during the processing becomes a problem.
0036On the other hand, the second conventional example (Fig. 2) is constructed so that the results appear at the point of time when the input of m bits has ended, so the second example of the circuit (Fig. 7) requires a plurality of CRC arithmetic units 17, resulting in the problems of an increased size of hardware and the need for the control apparatus 18.
0037Below, an explanation will be given on the synchronization circuit of the present invention, which can resolve the above-mentioned problems.
0038Figure 8 is a block diagram of the principle of the synchronization circuit according to the present invention. In the figure, the synchronization circuit 20 according to the present invention includes a shift register unit 12, a continuous CRC arithmetic unit 22, and a synchronization control unit 23.
0039The shift register unit 21 receives and holds in a bit serial fashion the input bit train B<sub>in</sub> constituting the ATM cell (Fig. 9) supplied for the data transmission.
0040The continuous CRC arithmetic unit 22 performs CRC arithmetic operations in accordance with a modified CRC arithmetic operation process comprised of the usual CRC arithmetic operation process modified to reduce the amount of operations.
0041The synchronization control unit 23 receives as input the CRC arithmetic operation result C<sub>out</sub> from the continuous CRC arithmetic unit 22, inserts, at the transmission side of the ATM cell, the CRC arithmetic operation result C<sub>out</sub> as the synchronization establishment signal S<sub>e</sub> in the ATM cell and transmits the same and, at the reception side of the ATM cell, outputs a synchronization detection signal S<sub>d</sub> when the CRC arithmetic operation result C<sub>out</sub> sent from the transmission side and the CRC arithmetic operation result C<sub>out</sub> obtained by operations of the continuous CRC arithmetic unit 22 at the reception side coincide.
0042Figure 9 is a view of the general format of an ATM cell to which the present invention is applied. In the figure, the 1, 2, 3··· 8 at the top show the bit positions from the LSB (1) to the MSB (8), and the 1, 2, 3··· 53 at the right side are octets showing the divisions in the ATM cell (hereinafter simply referred to as "cell"). The cell is divided into a header and a payload (data in the cell). VPI (virtual path identifier) and VCI (virtual circuit identifier) show destinations of the cell. CLP is the cell loss priority. Among these, VPI1 is part of the VPI at NNI and includes information for cell conflict control, known as GFC, when UNI. The previously mentioned HEC is the portion for monitoring the header as a whole.
0043The cell of the structure shown in Fig. 9 continuously flows along the transmission path of the ATM communication network in the order of the first octet MSB -> LSB and second octet MSB -> LSB. The HEC covers from the first octet to the fourth octet. If a CRC arithmetic operation including the HEC is performed, the CRC arithmetic operation results C<sub>out</sub> should be all "0" if the cell is normal. Further, the generator polynomial used is, for example,<maths id="math0001" num="(1)"><math display="block"><mrow><msup><mrow><mtext>G = χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msup><mrow><mtext> + χ</mtext></mrow><mrow><mtext>2</mtext></mrow></msup><msup><mrow><mtext> + χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup><msup><mrow><mtext> + χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0001.tif" /></maths> This all "0" state is detected and cell synchronization continuously secured.
0044The usual CRC arithmetic operation process, mentioned earlier, is as follows:
0045For an input bit train B<sub>in</sub> of a certain time series: ···a<sub>n</sub>, a<sub>n+1</sub>, a<sub>n+2</sub>···a<sub>n+m+1</sub>, a<sub>n+m</sub>, a<sub>n+m+1</sub>, a<sub>n+m+2</sub>··· if the CRC arithmetic operation results from a<sub>n</sub> to a<sub>n+m-1</sub> are C<sub>n</sub>, and the generator polynomial used for the CRC arithmetic operation is for example the above-mentioned G, these can be expressed as<maths id="math0002" num="(2)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> = R[(a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msup><msub><mrow><mtext>+···+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0002.tif" /></maths><maths id="math0003" num="(3)"><math display="block"><mrow><msub><mrow><mtext>F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> = a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msup><msub><mrow><mtext>+···+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mspace linebreak="newline" /><msub><mrow><mtext> = Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>G+C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>(Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><mtext> is a quotient)</mtext></mrow></math><img file="EP0448074B1_D0003.tif" /></maths> Here, R(f/g) is the function for finding the remainder of f/g. Further, the operation is a modulo 2 operation, which is mathematically expressed as R(f/g)=fmod(g).
0046Usually, the amount of operations required for the above function R (f/g) is tremendous, therefore the hardware required for the CRC arithmetic operation becomes large in size and the above-mentioned problem occurs. The present invention greatly reduces the amount of the operations by the shift register unit 21 and the continuous CRC arithmetic unit 22.
0047Figure 10 is a view of a first embodiment of the present invention. In the figure, the first CRC arithmetic unit 31 deems the overflow bit (B1) forced out from the shift register unit 21 to be a term of the m-th order, divides this term of the m-th order by the generator polynomial used for the CRC arithmetic operation, and deems the remainder to be the first CRC arithmetic operation result C1.
0048The second CRC arithmetic unit 32 deems the bit appearing at the second bit train B2 side at the same time as the overflow bit B1 is forced out to be the term of the 0-th order, adds the 0-th order term and the remainder after dividing the immediately preceding CRC arithmetic operation result C<sub>out</sub> by the generator polynomial G, and uses the value as the second CRC arithmetic operation result C2.
0049The difference between the C1 and C2 is then taken by the subtraction unit 33 and is used as the CRC arithmetic operation result C<sub>out</sub> sought.
0050In the above first embodiment, the continuous CRC arithmetic unit 22 was formed based on the point expressed by the following equation:
0051Referring once again to the above-mentioned equation (2) and equation (3), first the CRC arithmetic operation result C<sub>n+1</sub> obtained after shifting the C<sub>n</sub> in equation (2) by one bit is<maths id="math0004" num="(4)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R[F</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><mtext>/G]</mtext></mrow></math><img file="EP0448074B1_D0004.tif" /></maths>
0052F<sub>n+1</sub> is the object of the CRC arithmetic operation shifted one bit from F<sub>n</sub>, so<maths id="math0005" num="(5)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R [(F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ-a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext><mspace linebreak="newline" /><msub><mrow><mtext> =R [(Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>G+C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>)χ-a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>/G]</mtext></mrow></math><img file="EP0448074B1_D0005.tif" /></maths> Breaking this down,<maths id="math0006" num="(6)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R [(Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>Gχ)/G]+R[(C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ-a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0006.tif" /></maths>
0053The first term is the remainder 0, so this is deleted and<maths id="math0007" num="(7)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R[(C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ-a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0007.tif" /></maths>
0054Breaking this down further,<maths id="math0008" num="(8)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R[(C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ)/G]-R[(a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>)/G]+R[(a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0008.tif" /></maths>
0055The C<sub>n</sub> in the operator of the first term corresponds to the value from the feedback line of Fig. 10. The operation of the second term relates to the arithmetic unit 31 and the operation of the third term relates to the arithmetic unit 32. Note that the third term is of a lower order than the generator polynomial G and in actuality is in itself immediately the remainder, so the following expression is possible:<maths id="math0009" num="(9)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext> = R[(C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ)/G]-R[(a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>)/G]+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0009.tif" /></maths>
0056Equation (7) means that to find C<sub>n+1</sub>, one may perform a CRC arithmetic operation on<maths id="math0010" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>χ-a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>.</mtext></mrow></math><img file="EP0448074B1_D0010.tif" /></maths> Further, equation (9) means that to find C<sub>n+1</sub>, one may <ul id="ul0002" list-style="none" compact="compact"><li>[1] perform a CRC arithmetic operation on C<sub>n</sub>χ,</li><li>[2] subtract the results of the CRC arithmetic operation on a<sub>n</sub>χ<sup>m</sup>, and</li><li>[3] add a<sub>n+m</sub>χ<sup>0</sup>.</li></ul>
0057Here, [1] is possible even in the first conventional example (Fig. 1) since the number of bits is small and further, since continuous processing is possible, is possible in the second conventional example (Fig. 2) as well. [2] gives figures which are known in advance since when a<sub>n</sub> is "0", the operation results are all "0" and when a<sub>n</sub> is "1",the operation results are<maths id="math0011" num="(10)"><math display="block"><mrow><msup><mrow><mtext>R=[ χ </mtext></mrow><mrow><mtext>m</mtext></mrow></msup><mtext>/G]</mtext></mrow></math><img file="EP0448074B1_D0011.tif" /></maths> [3] indicates if the results are inverted at the last 1 bit in the results of [1] and [2].
0058If the first embodiment is more practically constructed, it becomes as shown in Fig. 11.
0059Figure 11 is a view of an example of realization of the first embodiment. As illustrated, this includes an m-bit shift register 21, a CRC arithmetic unit 35, and a CRC memory unit 36. The operation will be explained below: <ul id="ul0003" list-style="none" compact="compact"><li>i) In the initial state (state where the data bit train B<sub>in</sub> is not input to the continuous CRC arithmetic unit 22), the shift register 21 and the CRC memory unit 36 are reset to all "0".</li><li>ii) In the state after the initial state, a<sub>1</sub> is input to the LSB of the shift register 21 and the CRC arithmetic unit 35. At this time, in the shift register 21, the data is shifted in direction from the LSB to the MSB. Further, at this time, at the same time, the CRC arithmetic operation result of the state just before (initial state), that is, the all "0" state, from the CRC memory unit 36 and the "0" from the MSB (output) of the shift register 21 are input to the CRC arithmetic unit 35. In this state, the CRC arithmetic unit 35 determines the next CRC arithmetic operation value and sets it in the CRC memory unit 36.</li><li>iii) In the state after ii), a<sub>2</sub> is input to the LSB (input) of the shift register 21 and the CRC arithmetic unit 35. At this time, in the shift register 21, the data is shifted in the direction from the LSB to the MSB. Further, at this time, at the same time, the CRC arithmetic operation value of the state just before (above i) from the CRC memory unit 36 and the "0" from the MSB of the shift register 21 are input to the CRC arithmetic unit 35. In this state, the CRC arithmetic unit 35 determines the next CRC arithmetic operation value and sets it in the CRC memory unit 36.</li><li>iv) When a<sub>m+1</sub> is to be input, a<sub>m+1</sub> is input to the LSB (input) of the shift register 21 and the CRC arithmetic unit 35. At this time, in the shift register 21, the data is shifted in the direction from the LSB to the MSB. Further, at this time, at the same time, the CRC arithmetic operation value of the state just before from the CRC memory unit 36 and the a<sub>1</sub> from the MSB of the shift register 21 are input to the CRC arithmetic unit 35. In this state, the CRC arithmetic unit 35 determines the next CRC arithmetic operation value and sets it in the CRC memory 36.</li><li>v) In the usual state, C<sub>n</sub> (CRC arithmetic operation result from a<sub>n</sub> to a<sub>n+m-1</sub>) is stored. At this point of time, the next data a<sub>n+m</sub> is input to the LSB (input) of the shift register 21 and the CRC arithmetic unit 35. At this time, in the shift register 21, the data is shifted in the direction from the LSB to the MSB. Further, at this time, at the same time, the C<sub>n</sub> from the CRC memory unit 36 and the a<sub>n</sub> from the MSB of the shift register 21 are input to the CRC arithmetic unit 35. In this state, the CRC arithmetic unit 35 determines the next CRC arithmetic operation value C<sub>n+1</sub> and sets it in the CRC memory unit 36.</li></ul>
0060The CRC arithmetic operation of the first embodiment (Fig. 10) mentioned above may be summarized as follows:
0061The shift register unit 21 gives a delay of a length of m bits to the input bit train B<sub>in</sub>.
0062The first CRC arithmetic unit 31 fetches the first bit train B1 forced out from the shift register unit 21 and performs the first CRC arithmetic operation.
0063The second CRC arithmetic unit 32 fetches the second bit train B2 divided at the input stage of the shift register unit 21 and performs the second CRC arithmetic operation.
0064The subtraction unit 33 finds the difference between the first CRC arithmetic operation results C1 and the second CRC arithmetic operation results C2 from the first CRC arithmetic unit 31 and the second CRC arithmetic unit 32. The CRC arithmetic operation result C<sub>out</sub> is obtained from the subtraction unit 33 in a time series.
0065The continuous CRC arithmetic unit 22 of the present invention, referring to Fig. 5, when performing a CRC arithmetic operation of the q+1-st bit train, shifts the bits at the q+1-st place and thereby matches the past bit excluded from the q-th bit train (or the bit train) and the newly entered current bit (or bit train) at the same timing, performs the CRC calculation, and sends out the difference of the CRC arithmetic operation results continuously for each bit.
0066Figure 12 is a view of a second embodiment according to the present invention. In the figure, a third CRC arithmetic unit 41 divides the first bit train B1, which has been delayed by m bits and deemed as the m-th order term, by the generator polynomial used for the CRC arithmetic operation and deems the remainder obtained to be the third CRC arithmetic operation results C3.
0067A fourth CRC arithmetic unit 42 divides the second bit train B2, deemed to be the same bit train as the first bit train B1 with the same bit train as the bit train stored in the shift register 21 attached to the bottom thereof, by the generator polynomial G and deems the remainder obtained to be the fourth CRC arithmetic operation results C4. That is, the third CRC arithmetic unit 41 and the fourth CRC arithmetic unit 42 perform CRC arithmetic operations on the following B1 and B2 for the bit train comprised of a<sub>n-2</sub>, a<sub>n-1</sub>, a<sub>n</sub>, a<sub>n+1</sub>··· a<sub>n+m-1</sub>, a<sub>n+m</sub>, a<sub>n+m+1</sub>: <ul id="ul0004" list-style="none" compact="compact"><li>B1: "···a<sub>n-2</sub>, a<sub>n</sub>00000···0" (wherein there are m number of 0's)</li><li>B2: "···a<sub>n-2</sub>, a<sub>n</sub>, a<sub>n+1</sub>, a<sub>n+2</sub>···a<sub>n+m-1</sub>"</li></ul>
0068Here, the portions "······" in the headers of the above-mentioned B1 and B2 start at the same time positions for both B1 and B2, for example, from a<sub>0</sub> or a<sub>1</sub>.
0069The difference between C3 and C4 is obtained by the subtraction unit 43 and is used as the CRC arithmetic operation result sought.
0070In the above-mentioned second embodiment, the continuous CRC arithmetic unit 22 was formed based on the point expressed by the following equation:
0071In the same way as explained with regard to the first embodiment, if, for an input bit train B<sub>in</sub> of a certain time series: ···a<sub>n</sub>, a<sub>n+1</sub>, a<sub>n+2</sub>···a<sub>n+m-1</sub>, a<sub>n+m</sub>, a<sub>n+m+1</sub>, a<sub>n+m+2</sub>···
0072The CRC arithmetic operation results from a<sub>n</sub> to a<sub>n+m-1</sub> are C<sub>n</sub> and the generator polynomial used for the CRC arithmetic operations is G, they can be expressed by the above-mentioned equations (2) and (3).
0073At this time, C<sub>n</sub> is expressed as<maths id="math0012" num="(11)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>=R[(a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msup><msub><mrow><mtext>+···+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0012.tif" /></maths> The equation (11) may be rewritten in the following way:<maths id="math0013" num="(12)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>=R[(···+a</mtext></mrow><mrow><mtext>n-2</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m+1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msup><msub><mrow><mtext>+···+a</mtext></mrow><mrow><mtext>n+m</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n+m-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup><msub><mrow><mtext>)/G] -R[(···+a</mtext></mrow><mrow><mtext>n-2</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m+1</mtext></mrow></msup><msub><mrow><mtext>+a</mtext></mrow><mrow><mtext>n-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><mtext>)/G]</mtext></mrow></math><img file="EP0448074B1_D0013.tif" /></maths>
0074The principle of derivation of this equation (12) is as follows: Consider the bit train of a<sub>t</sub>, a<sub>t+1</sub>, ···a<sub>n-1</sub>, a<sub>n</sub>, a<sub>n+1</sub>, <b>···</b>a<sub>n+m</sub>, a<sub>n+m+1</sub> divided into the following two bit trains: <ul id="ul0005" list-style="none" compact="compact"><li>B1: a<sub>t</sub>, a<sub>t+1</sub>, <b>···</b>a<sub>n-1</sub>, 0,0,0<b>···</b>0 (wherein there are m number of 0's)</li><li>B2: a<sub>t</sub>, a<sub>t+1</sub>, ···a<sub>n</sub>, a<sub>n+1</sub>, ···a<sub>n+m</sub>, a<sub>n+m+1</sub></li></ul> Equation (12) originally covered the following bit train: B0: a<sub>n</sub>, a<sub>n+1</sub>, ···a<sub>n+m</sub>, a<sub>n+m+1</sub>
0075Therefore, B0 is equivalent to B2-B1. Here, the first term on the right side (R[<b>······</b>]} of equation (12) shows the bit train B2, while the second term (-R[<b>······</b>]) shows the bit train B2. Here, the header bits of the bit trains B1 and B2 are both at, so the bit trains start at the same time position.
0076If the second embodiment is constructed more practically, the result is Fig. 13.
0077Figure 13 is a view of an example of realization of the second embodiment. As illustrated, it includes a m-bit shift register 21, the above-mentioned third CRC arithmetic unit 41 and fourth CRC arithmetic unit 42, and an EX-OR processing unit 44. The operation will be explained below:
0078The third CRC arithmetic unit 41 is for performing the operation of the second term of the equation (12), and the fourth CRC arithmetic unit 42 is for performing the operation of the first term of the equation (12). In modulo 2 operations, the addition and subtraction can be processed by EX-OR, so by finding the EX-OR of the operation results of the CRC arithmetic unit 41 and the CRC arithmetic unit 42 by the EX-OR processing unit 42, the target CRC arithmetic operation results C<sub>out</sub> sought can be obtained.
0079It is possible therefore to continuously obtain CRC arithmetic operation results for input bit trains having indefinite time series while shifting by one bit at a time and the extraction of cells under the above-mentioned full ATM can be easily realized.
0080Below, detailed examples will be given of the above-mentioned first embodiment and second embodiment.
0081Figure 14 is a view showing a first more detailed example of realization of the first embodiment. The CRC arithmetic unit 35 of Fig. 11 is shown as a ROM 35 in this figure. Further, the ROM 35 may be replaced with the parallel connection type of Fig. 3. In the example of Fig. 14, m = 40 bits and 1 (remainder) = 8 bits. 40 = 8 bits x 5 octets.
0082Figure 15 is a view showing a second more detailed example of realization of the first embodiment. This second detailed example was based on the second conventional example (Fig. 2) mentioned earlier. Among the first and second CRC arithmetic units 31 and 32 of Fig. 10, the former (31) is an arithmetic unit with a<sub>n</sub> and the latter (32) corresponds to the CRC arithmetic unit of Fig. 2.
0083The arithmetic unit 31 with a<sub>n</sub> mentioned above finds the EX-OR of<maths id="math0014" num="(13)"><math display="block"><mrow><msup><mrow><mtext>R[χ</mtext></mrow><mrow><mtext>m</mtext></mrow></msup><mtext>/G]</mtext></mrow></math><img file="EP0448074B1_D0014.tif" /></maths> and the output of the shift register when a<sub>n</sub> is "1" and outputs the value of the equation (13) as it is when a<sub>n</sub> is "0". Further, the results (C<sub>n+1</sub>) are reloaded to the shift register 12. Note that the EX-OR gate 13 and connector 14 are as previously explained. In the example of Fig. 15, m = 40 bits and 1 = 8 bits and<maths id="math0015" num="(14)"><math display="block"><mrow><msup><mrow><mtext>R[χ</mtext></mrow><mrow><mtext>40</mtext></mrow></msup><msup><mrow><mtext>/G]=χ</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>6</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0015.tif" /></maths> Further, from the above-mentioned equation (1), the "0", "1", and "2" of the connector 14 are connected while the "3","4", "5", "6", and "7" of the connector 14 (not shown in the figure) are not connected and are fixed at "0".
0084Figure 16 is a view showing a third more detailed example of realization of the first embodiment and is based on the construction of Fig. 15 with some modifications. Of the first and second CRC arithmetic units 31 and 32 of Fig. 10, the former (31) corresponds to the CRC arithmetic unit of Fig. 9 and the latter (32) is comprised of an R(χ<sup>m</sup>/G) output unit.
0085The R(χ<sup>m</sup>/G) output unit 32 outputs the value of the above-mentioned equation (13) when a<sub>n</sub> is "1". Therefore, D<sub>i</sub> outputs the truth value "1" in accordance with R(χ<sup>m</sup>/G) when the header of χ<sup>1</sup> is "1" and a<sub>n</sub> is "1". Further, reference numeral 13 is an EX-OR gate which obtains the EX-OR of the output of the shift register 12 and the corresponding output and D<sub>i</sub> of the connector 14 and outputs the result.
0086Here, the constants are the same as in the case of the above-mentioned second detailed example (Fig. 15). Regarding D<sub>i</sub>,<maths id="math0016" num="(15)"><math display="block"><mrow><msup><mrow><mtext>R[χ</mtext></mrow><mrow><mtext>40</mtext></mrow></msup><msup><mrow><mtext>/G] = χ</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>6</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>1</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0016.tif" /></maths> so D<sub>1</sub>, D<sub>6</sub>, and D<sub>7</sub> are "1" when a<sub>n</sub> is "1" and D<sub>0</sub>, D<sub>2</sub>, D<sub>3</sub>, D<sub>4</sub>, and D<sub>5</sub> are fixed at "0".
0087Figure 17 is a view showing a first more detailed example of realization of the second embodiment. As the CRC arithmetic units 41 and 42 of Fig. 13, use is made of the construction of the ROM 35 and the CRC memory unit 36 of Fig. 14.
0088Figure 18 is a view showing a second more detailed example of realization of the second embodiment. Use is made of a CRC arithmetic unit 45 combining the two CRC arithmetic units 41 and 42 shown in Fig. 17. Note that as the ROM 35 of Fig. 17, use is made of the ROM 35' of a 21+2 bit input and 21 bit output in Fig. 18.
0089Figure 19 is a view showing a third more detailed example of realization of the second embodiment. As the CRC arithmetic unit 41 of Fig. 13, use is made of the construction of Fig. 16, as the CRC arithmetic unit 42 of Fig. 13, use is made of the construction of Fig. 2, and as the EX-OR processing unit 44 of Fig. 13, use is made of the R(χ<sup>m</sup>/G) output unit 46. The constants in Fig. 19 are the same as in the case explained for Fig. 16.
0090Figure 20 is a view of a third embodiment according to the present invention. In the figure, the continuous CRC arithmetic unit 22 includes a wired logic unit 51 and a remainder arithmetic unit 52. The wired logic unit 51 receives as input the m number of bit outputs b corresponding to the bits from the m-bit shift register unit 21 and distributes the m number of bit outputs b to predetermined bit positions set in advance for each of the m bits of output in the plurality of bit positions. The remainder arithmetic unit 52 is provided with a plurality of input gates 53 corresponding to the above-mentioned plurality of bit positions, executes the addition of the above-mentioned bit outputs b input distributed to each of the input gates 53, and calculates the remainder, which is equal to the remainder which would be obtained by dividing the input bit train B<sub>in</sub> by the generator polynomial G. This is given to the synchronization control unit 23 as the CRC arithmetic operation results C<sub>out</sub>.
0091The third embodiment was established taking note of a mathematical method. The explanation of this mathematical method would be somewhat complicated, so first the general image will be briefly explained.
0092Assume that remainder (R) obtained by dividing the decimal number "1013" (corresponding to the input bit train B<sub>in</sub>) by "2" (corresponding to the generator polynomial G) is usually found by the process as follows:<maths id="math0017" num=""><img file="EP0448074B1_D0017.tif" /></maths>
0093Taking note of a certain mathematical property, however, it is possible to similarly find the remainder by adding the remainders of the digits, that is, by making 1013 = 1000 ··· 0 10 ··· 0 3 ··· 1 and adding the remainders of each digit units,<maths id="math0018" num=""><math display="block"><mrow><mtext>0+0+1="1"</mtext></mrow></math><img file="EP0448074B1_D0018.tif" /></maths> so it is possible to obtain the remainder "1".
0094Next, a more detailed explanation will be made of the above-mentioned mathematical method.
0095If the received code of the input bit train B<sub>in</sub> held by the m-bit shift register unit 21 is expressed as the polynomial C(χ), the following equation is obtained:<maths id="math0019" num="(16)"><math display="block"><mrow><msub><mrow><mtext>C(χ)=C</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msub><msub><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-1</mtext></mrow></msub><msub><mrow><mtext>+C</mtext></mrow><mrow><mtext>m-2</mtext></mrow></msub><msub><mrow><mtext>χ</mtext></mrow><mrow><mtext>m-2</mtext></mrow></msub><msub><mrow><mtext>+χ</mtext></mrow><mrow><mtext>m-3</mtext></mrow></msub><msub><mrow><mtext>+··········+C</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0019.tif" /></maths>
0096Next, C(χ) is divided by the generator polynomial G(χ). Here, the explanation will be made of the case of division by the generator polynomial of g+1 bits as the generator polynomial G(χ). If G(χ)=χ8+χ2+χ+1, g=8 (8-th order), but here the explanation will be made of the general method in the case of finding the CRC arithmetic operation result (remainder) R(χ) by performing the CRC arithmetic operation (division) by the generator polynomial of g+1(=9) bits.
0097The operation result R(χ) at this time is expressed by:<maths id="math0020" num=""><img file="EP0448074B1_D0020.tif" /></maths> mod is a modulo 2 operation. Further, p is the order of the input bit train B<sub>in</sub>, for example, p=0 to p=39 (in case of input bit train B<sub>in</sub> of 40 bits).
0098Here, to further develop the equation, a code train E<sub>p</sub>(χ) with a special value is introduced:<maths id="math0021" num="(18)"><math display="block"><mrow><msub><mrow><mtext>E</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msup><mrow><mtext>(χ)=χ</mtext></mrow><mrow><mtext>p</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0021.tif" /></maths> That is, E<sub>p</sub>(χ) is a figure where only the coefficient of the term of the p-th order is 1 and the remainder are all 0 (see above-mentioned 1000 and 10).
0099If the E<sub>p</sub>(χ) is inserted in the above equation (17), then the following is obtained:<maths id="math0022" num="(19)"><math display="block"><mrow><msub><mrow><mtext>R</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><msub><mrow><mtext>(χ)=E</mtext></mrow><mrow><mtext>p</mtext></mrow></msub><mtext>(χ)mod(G(χ))</mtext><mspace linebreak="newline" /><msup><mrow><mtext> =χ</mtext></mrow><mrow><mtext>p-3</mtext></mrow></msup><mtext>mod(G(χ))</mtext></mrow></math><img file="EP0448074B1_D0022.tif" /></maths>
0100The R<sub>p</sub>(χ) of this equation (19) can be expressed as follows:<maths id="math0023" num=""><img file="EP0448074B1_D0023.tif" /></maths><maths id="math0024" num=""><img file="EP0448074B1_D0024.tif" /></maths>
0101Note that g in equation (20) is the above-mentioned g.
0102Therefore, if equation (20) and equation (17) are inserted in equation (19), the following equation (21) is obtained:<maths id="math0025" num=""><img file="EP0448074B1_D0025.tif" /></maths><maths id="math0026" num=""><img file="EP0448074B1_D0026.tif" /></maths>
0103The point to be noted here is the conversion from equation (21) to equation (22). This is based on the known conversion rule that the value does not change even if the order of Σ is switched. The coefficient r<sub>j</sub> of the term of the j-th order of the remainder R(χ) found by this equation (22) may be found by calculating the equation (23):<maths id="math0027" num=""><img file="EP0448074B1_D0027.tif" /></maths> This equation (23) corresponds to finding the sum of the remainders of the digit units in the above-mentioned brief explanation (0+0+1="1").
0104Therefore, the number of the terms where the coefficient of the term of the p-th order (0 to 39) of the received code C(χ) is "1", that is, the term of<maths id="math0028" num=""><math display="block"><mrow><msub><mrow><mtext>r</mtext></mrow><mrow><mtext>pj</mtext></mrow></msub><mtext>=1 (j is 0 to 7)</mtext></mrow></math><img file="EP0448074B1_D0028.tif" /></maths> is counted. If the result of the counting is an odd number, then r<sub>j</sub>=1, while if the result of the counting is an even number, then r<sub>j</sub>=0. This can be easily found by a parity check operation.
0105When incorporating a wired logic unit 51 of Fig. 20 based on the above-mentioned mathematical method, the remainder R(χ) obtained by dividing each of the above-mentioned E<sub>p</sub>(χ) by the generator polynomial G(χ) is decided readily in advance, so by using this it is possible to make the wired logic unit 51 and the remainder arithmetic unit 52 extremely simple in construction and reduce the size of the hardware required.
0106Figure 21 is a view of an example of realization of the third embodiment. In the figure, the wired logic unit 51 is made of the wiring illustrated. The input side is connected to an m-bit shift register 21 (in the figure, m=0 to m=39), each bit part being comprised of a flipflop FF. C<sub>00</sub>, C<sub>01</sub><b>···</b> C<sub>39</sub> correspond to the above-mentioned C(χ). The output side of the wired logic unit 51 enters the input gates 53 of the remainder arithmetic unit 52. The input gates 53 are, for example, comprised of known parity check circuits (PC). The bits (χ<sup>7</sup>,χ<sup>6</sup><b>···</b> χ<sup>0</sup>) output from the parity check circuits PC (for example, comprised of EX-OR gate group) become the CRC arithmetic operation results C<sub>out</sub> (corresponding to the above-mentioned R(χ)) sought. In the same way as the above-mentioned embodiment, this C<sub>out</sub> is input to the synchronization control unit 23.
0107Since the CRC arithmetic operation results for a monomial can be found in advance by calculation, the wired logic unit 51 of Fig. 21 has its internal wiring determined by the calculation results. That is, as mentioned above, the remainder R(χ) obtained by dividing the above-mentioned E<sub>p</sub>(χ)'s one by one by the generator polynomial G(χ) is determined readily in advance, so this is used.
0108Figure 22 is a view of the bit pattern for constituting the wired logic unit of Fig. 21. In the bit pattern diagram, the monomials E<sub>p</sub>(χ) are bit trains with just one of the 40 bits being "1" and the remainder all being "0", with the "1" bit differing in bit position. In the figure, the "1" bits are arranged in a line slanting from the top left to the bottom right. The remainders R(χ)'s obtained by dividing the values of the E<sub>p</sub>(χ)'s corresponding to χ<sup>39</sup>, χ<sup>38</sup>··· χ<sup>00</sup> by the generator polynomial G(χ) become the 8-bit bit trains shown in the right column of the figure. For example, for the term of χ<sup>39</sup>, the remainder becomes: 00110001 For the term of χ<sup>39</sup> , the wiring is performed on the input gates 53 corresponding to the bit positions (3) of the "1" bits among the above-mentioned eight bits (00110001). In Fig. 14, it will be understood, wiring is performed for χ<sup>5</sup> and χ<sup>0</sup> for C<sub>39</sub> (illustration omitted for χ<sup>4</sup>). Further, for example, for the term of χ<sup>38</sup>, the remainder becomes: 10011011 For the term of χ<sup>38</sup>, the wiring is performed on the input gates 53 corresponding to the bit positions (5) of the "1" bits among the above-mentioned eight bits (10011011). In Fig. 14, it will be understood, wiring is performed for χ<sup>7</sup> and χ<sup>0</sup> for C<sub>38</sub> (illustration omitted for χ<sup>1</sup>, χ<sup>3</sup>, and χ<sup>4</sup>).
0109The horizontally extending wiring group and the parity check circuits (PC) receiving the same in the wired logic unit 51 in Fig. 21 are used to perform an operation equivalent to the addition of the bit trains in the right column of Fig. 22 in the lateral direction with the bit positions (j bits) matched and to obtain the desired remainder R(χ).
0110Figure 23 is a view of a fourth embodiment according to the present invention. In the figure, the continuous CRC arithmetic unit 22 is made of a remainder arithmetic unit 61 and a delay unit 62. Further, the shift register unit 21 is comprised of a k-stage shift register. k is a specific number which is larger than 1 and smaller than the number of bits (for example, 8) making up one octet of the ATM cell. The bit output of the first stage of the k-stage shift register and the bit output of the k-th stage form two of the three inputs used for the CRC arithmetic operation in the remainder arithmetic unit 61. The remaining one input is the output from the delay unit 62. From the remainder arithmetic unit 61 is output the CRC arithmetic operation results C<sub>out</sub> successively and continuously in accordance with the shift timing. This C<sub>out</sub> is on the one hand output to the synchronization control unit 23 in the same way as the previously mentioned embodiment and on the other hand is output to the delay unit 62. Therefore, what is given from the delay unit 62 to the input of the remainder arithmetic unit 61 is the CRC arithmetic operation result obtained just before.
0111Therefore, the remainder arithmetic unit 61 executes the predetermined operation receiving these three inputs and produces the CRC arithmetic operation results C<sub>out</sub>.
0112The fourth embodiment is established taking note of a certain mathematical method which will be explained below. First, see Fig. 24.
0113Figure 24 is a view of the general format of the ATM cell used for explaining the fourth embodiment. The figure shows the ATM cell shown in Fig. 9 with the header data in bit units. The following explanation will be made in terms of these bit units.
0114If the time series in the input bit train B<sub>in</sub> is taken out and made W, then it may be expressed as: W:······· ω<sub>n-1</sub> ω<sub>n</sub> ω<sub>n+1</sub> ω<sub>n+2</sub> ω<sub>n+3</sub> ω<sub>n+4</sub> ω<sub>n+5</sub>······· ω<sub>n</sub> is a numeral series expressed by eight factors: ω<sub>n0</sub> ω<sub>n1</sub> ω<sub>n2</sub> ω<sub>n3</sub> ω<sub>n4</sub> ω<sub>n5</sub> ω<sub>n6</sub> ω<sub>n7</sub> That is, if ω<sub>n</sub> is expressed by a polynomial, the result is:<maths id="math0029" num="(24)"><math display="block"><mrow><msub><mrow><mtext>ω</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> = ω</mtext></mrow><mrow><mtext>n0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><msub><mrow><mtext> + ω</mtext></mrow><mrow><mtext>n1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>6</mtext></mrow></msup><msub><mrow><mtext> + ω</mtext></mrow><mrow><mtext>n2</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>5</mtext></mrow></msup><msub><mrow><mtext> + ·········· + ω</mtext></mrow><mrow><mtext>n7</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0029.tif" /></maths>
0115Here, in the above-mentioned time series W, when five octets corresponding to the header of the ATM cell, that is, ω<sub>n</sub> + ω<sub>n+4</sub> are taken out, the CRC arithmetic operation results C<sub>out</sub> are made C<sub>n</sub>. Further, the generator polynomial used for the CRC arithmetic operation is made G. Then, the CRC calculation results C<sub>n</sub> are expressed by<maths id="math0030" num="(25)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> = (F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0030.tif" /></maths> that is, the remainder obtained by dividing F<sub>n</sub> by G. Here, F<sub>n</sub> is expressed by the polynomial shown in the following equation:<maths id="math0031" num="(26)"><math display="block"><mrow><msub><mrow><mtext>F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> = ω</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x4</mtext></mrow></msup><msub><mrow><mtext> + ω</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x3</mtext></mrow></msup><msub><mrow><mtext> + ········· ω</mtext></mrow><mrow><mtext>n+4</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x0</mtext></mrow></msup><mspace linebreak="newline" /><msub><mrow><mtext> = Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>·G+C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext> (Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><mtext> is the quotient)</mtext></mrow></math><img file="EP0448074B1_D0031.tif" /></maths>
0116In equation (26), ω<sub>n</sub>χ<sup>8x4</sup> corresponds to the first octet, ω<sub>n+1</sub>χ<sup>8x3</sup> corresponds to the second octet, ··· and ω<sub>n+4</sub>χ<sup>8x0</sup> corresponds to the fifth octet.
0117Here, if a mathematical inductive method is used and consideration given to the C<sub>n+1</sub> appearing at the timing following C<sub>n</sub>, then C<sub>n+1</sub> can be expressed as follows:<maths id="math0032" num="(27)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><msub><mrow><mtext>=(F</mtext></mrow><mrow><mtext>n+1</mtext></mrow></msub><mtext>)mod(G)</mtext><mspace linebreak="newline" /><msub><mrow><mtext> = (F</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>-ω</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x5</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>n+5</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x0</mtext></mrow></msup><mtext>)mod(G)</mtext><mspace linebreak="newline" /><msub><mrow><mtext> ={(Q</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>·G+C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>)χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>-ω</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x5</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>n+5</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x0</mtext></mrow></msup><mtext>}mod(G)</mtext><mspace linebreak="newline" /><msub><mrow><mtext> =(C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>)mod(G)-(ω</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x5</mtext></mrow></msup><msub><mrow><mtext>)mod(G)+ω</mtext></mrow><mrow><mtext>n+5</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0032.tif" /></maths>
0118Here, the following six initial conditions are set for the equation (27):<maths id="math0033" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>5</mtext></mrow></msub><mtext>=0</mtext></mrow></math><img file="EP0448074B1_D0033.tif" /></maths><maths id="math0034" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>4</mtext></mrow></msub><msub><mrow><mtext>=ω</mtext></mrow><mrow><mtext>0</mtext></mrow></msub></mrow></math><img file="EP0448074B1_D0034.tif" /></maths><maths id="math0035" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>3</mtext></mrow></msub><msub><mrow><mtext>=(ω</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0035.tif" /></maths><maths id="math0036" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>2</mtext></mrow></msub><msub><mrow><mtext>=(ω</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x2</mtext></mrow></msup><msub><mrow><mtext> +ω</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>2</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0036.tif" /></maths><maths id="math0037" num=""><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><msub><mrow><mtext>=(ω</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x3</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x2</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>2</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>+ω</mtext></mrow><mrow><mtext>3</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0037.tif" /></maths><maths id="math0038" num=""><math display="block"><mrow><msub><mrow><mtext>ω</mtext></mrow><mrow><mtext>4</mtext></mrow></msub><msub><mrow><mtext>=ω</mtext></mrow><mrow><mtext>3</mtext></mrow></msub><msub><mrow><mtext>=ω</mtext></mrow><mrow><mtext>2</mtext></mrow></msub><msub><mrow><mtext>=ω</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><mtext>=0</mtext></mrow></math><img file="EP0448074B1_D0038.tif" /></maths>
0119If the above initial conditions are set in the equation (27), the CRC arithmetic operation results C<sub>n</sub> sought are expressed by the following equation:<maths id="math0039" num="(28)"><math display="block"><mrow><msub><mrow><mtext>C</mtext></mrow><mrow><mtext>n</mtext></mrow></msub><msub><mrow><mtext>=(C</mtext></mrow><mrow><mtext>n-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>)mod(G)-(ω</mtext></mrow><mrow><mtext>n-1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x5</mtext></mrow></msup><msub><mrow><mtext>)mod(G)+ω</mtext></mrow><mrow><mtext>n+4</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>8x0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0039.tif" /></maths>
0120As clear from the final conclusion, that is, the above equation (28), the CRC arithmetic operation results C<sub>n</sub> sought can be expressed extremely simply using the three elements C<sub>n-1</sub>, ω<sub>n-1</sub>, and ω<sub>n+4</sub>. These three elements, however, are coefficients of χ<sup>8</sup>, χ<sup>8x5</sup>, and <sub>χ</sub><sup>8x0</sup> and occur at different times from each other, so when the remainder arithmetic unit 61 executes the arithmetic operations on the three elements, the three elements must be obtained at the same timing at the input of the remainder arithmetic unit 61. The k-stage shift register 21 and delay unit 62 shown in Fig. 23 exist for matching the above timings. Note that the three elements C<sub>n-1</sub>, ω<sub>n-1</sub>, and ω<sub>n+4</sub> shown in the above-mentioned equation (28) appear at the portions shown in Fig. 23.
0121Figure 25 is a view of an example of realization of the fourth embodiment. In the figure, the k-stage shift register 21 is comprised of a 6-stage shift register (comprised of six flipflops FF connected in tandem). The above-mentioned element ω<sub>n-1</sub> is supplied from the first stage output receiving the input bit train B<sub>in</sub>, while the above-mentioned element ω<sub>n+4</sub> is supplied from the sixth stage output. These are applied to the remainder arithmetic unit 61. The other element C<sub>n-1</sub> to be input to the remainder arithmetic unit 61 is given from the delay unit 62. This may be comprised of a D-flipflop DFF as illustrated. The clock CLK defining the overall timing is, for example, a speed of 4M. The bit outputs D<sub>0</sub>, D<sub>1</sub>···D<sub>5</sub> are sent out from these FF's in synchronization with this. Further, the reset signal RST is given to the reset inputs of the FF's. The reset signal RST rises at the same time as the reception of the input bit train B<sub>in</sub> (see Fig. 26) and falls when the reception of B<sub>in</sub> is completed.
0122Figure 26 is a timing chart of signals appearing at key portions of Fig. 25. In the figure, the same references (CLK, B<sub>in</sub>···) are given to the rows corresponding to the signals of Fig. 25. The downward facing arrow B<sub>in</sub> in the row of D<sub>0</sub> shows that the above-mentioned three elements (ω<sub>n-1</sub>, ω<sub>n+4</sub>, C<sub>n-1</sub>) are matched at the same time as ω<sub>5</sub>, ω<sub>0</sub>, and C<sub>0</sub> for the first time since being input. The CRC arithmetic operation results sought are C<sub>1</sub>.
0123Next, a detailed explanation will be given of the remainder arithmetic unit 61 in Fig. 25.
0124Figure 27 is a view of a detailed example of a remainder arithmetic unit. In the figure, the remainder arithmetic unit 61 is comprised, for example, of the illustrated wired logic unit 63, the EX-OR gate 64, and 8-bit leading wires 65 for output of the CRC arithmetic operation results. The wired logic unit 63 receives at the input side the above-mentioned three elements ω<sub>n+4</sub>, ω<sub>n-1,</sub> and C<sub>n-1</sub> as the bit outputs D<sub>5</sub> and D<sub>0</sub> of the 6-stage shift register 21 and the output of the delay unit 62 and is connected at the output side to eight EX-OR gates 64 (only three shown) corresponding to the eight bits. The wired logic unit 63 is assembled as shown in Fig. 27 for a similar reason as to why the wired logic unit 51 is assembled as shown in Fig. 21 in the above-mentioned third embodiment. That is, the CRC arithmetic operation results for the inputs D<sub>5</sub> and D<sub>0</sub> and C<sub>n-1</sub> in Fig. 27 can be calculated in advance (see row R(χ) in Fig. 22), so this is used for wiring the wired logic unit 61.
0125Figure 28 is a view of the bit pattern for constituting the portion corresponding to the bit output D<sub>0</sub> in the wired logic unit of Fig. 27, Fig. 29 is a view of the bit pattern for constituting the portion corresponding to the bit output D<sub>5</sub> in the wired logic unit of Fig. 27; and Fig. 30 is a view of the bit pattern for constituting the portion corresponding to the immediately preceding CRC arithmetic operation result C<sub>n-1</sub> in the wired logic unit of Fig. 27.
0126Regarding D<sub>0</sub> of Fig. 28, for example, the line connection corresponding to the "1" bit in the bit train of the order χ<sup>7</sup> becomes the connection point A of the D<sub>0</sub> row in Fig. 27. Further, for D<sub>5</sub> of Fig. 29, for example, the line connection corresponding to the "1" bit in the bit train of the order χ<sup>41</sup> (only the two consecutive bits on the left side shown) becomes the connection point B of the D<sub>5</sub> row of Fig. 27. Further, for C<sub>n-1</sub> of Fig. 30, for example, the line connection corresponding to the "1" bit in the bit train of the order χ<sup>14</sup> (only the two consecutive bits of the left side and the one bit of the right side shown) becomes the connection point C of the row C<sub>n-1</sub> of Fig. 27. After this line connection, connection is made to the corresponding inputs of the EX-OR gate 64 made into bundles of eight corresponding to the 8 bits of the C<sub>n</sub>. The EX-OR gate performs an addition function and the results of the addition are sent out as Cn to the leading wires 65 corresponding to the bits.
0127When the synchronization circuit (20 in Fig. 8) is actually used in an ATM communication system, the synchronization circuit provided at the side receiving the ATM cells must function to provide rear protection and front protection as well. That is, the synchronization control unit (23 in Fig. 8) must include a rear protection and front protection means. Usually, rear protection is provided seven times and front protection six times.
0128Even if cell synchronization is detected for the first time by the above-mentioned CRC arithmetic operation from the header of the ATM cells begun to be received, it is not known if that true cell synchronization is detected. Therefore, if similar cell synchronization is detected continuously seven times, it is deemed that true cell synchronization has been detected and the synchronization detection signal (S<sub>d</sub> in Fig. 8) is started to be supplied. This is what is meant by seven times of rear protection.
0129Once cell synchronization has been established, cell synchronization is continued to be detected during the usual reception of data, but the synchronization detection signal S<sub>d</sub> is not always normally received. Cases when the S<sub>d</sub> is not received include cases where the cell synchronization is lost and S<sub>d</sub> is not obtained and cases where the synchronization detection signal should be obtained, but noise or the like causes the synchronization detection signal to be not received in actuality. In the former case, the reception of data is immediately suspended and cell synchronization must be detected again. In the latter case, however, there is no need for this. This is because the data can continue to be normally received under these conditions. Therefore, once cell synchronization has been established, it is deemed that cell synchronization has really been lost only when cell synchronization cannot be detected six successive times, in which case the supply of the synchronization detection signal S<sub>d</sub> is stopped. This is what is meant by six times of front protection. Therefore, the synchronization circuit 20 of the present invention is preferably provided with a rear protection and front protection function.
0130Figure 31 is a block diagram of the principle of a synchronization circuit including a reset means. The synchronization circuit 20 in the figure is provided with a reset means 70 at the synchronization control unit 23 at the reception side. The reset signal R/S from the reset means 70 is applied to the shift register unit 21 and the continuous CRC arithmetic unit 22.
0131According to the CCITT recommendations, once cell synchronization has been established, it is possible to predict the timing at which the next synchronization detection is possible, so during that period the synchronization detection operation may be suspended. In accordance with this, the rear protection function and the front protection function can be started up at cycles of 53 bytes (53 octets). In this case, the synchronization circuit of the present invention would not function with just the synchronization detection started up every 53 bytes. This is because the synchronization circuit 20 has the shift register unit 21 with the data holding function and the CRC arithmetic unit 22 (CRC memory unit 36 and delay unit 62). That is, it is necessary to reset the past data remaining in the data holding function unit. Therefore, the reset means 70 is provided. This reset means 70 is essential for performing the rear protection and front protection. A detailed example will be provided below:
0132Figure 32 is a view of an example of application of the reset means to the synchronization circuit of Fig. 14. The operation in the figure is as follows: Here, the ROM 35 has written in it the results of calculation of the C<sub>n+1</sub> from a<sub>n</sub>, a<sub>n+40</sub>, and C<sub>n</sub> in advance. <ul id="ul0006" list-style="none" compact="compact"><li>i) When n=-39 (initial state) The synchronization control unit 23 sends the reset signal R to the CRC arithmetic processing unit 71. This resets the internal states of the shift register 21 and the CRC memory unit 36 in the CRC arithmetic processing unit 71. </li><li>ii) When n=-38 The initial data a<sub>1</sub> is input in the LSB of the shift register 21 and the ROM 35. At this time, at the shift register 21, the data is shifted in the direction from the LSB to the MSB (right direction in the figure). Further, at this time, simultaneously the CRC arithmetic operation result of the state just before (initial state), that is, the all "0" state, from the CRC memory unit 36 and, further, the "0" from the MSB of the shift register are input. In this state, the next CRC arithmetic operation result is read from the ROM 35 and is set in the CRC memory unit 36. At this time, data of the number of bits sufficient for performing the desired CRC arithmetic operation is not input to the CRC arithmetic processing unit 71, so the synchronization control unit 23 does nothing. </li><li>iii) When -37≤n≤0 The data a<sub>n+39</sub> is input to the LSB of the shift register 21 and the ROM 35. At this time, in the shift register, the data is shifted in the direction from the LSB to the MSB (right direction in the figure). Further, at this time, simultaneously the CRC arithmetic operation result of the state just before (initial state) from the CRC memory unit 36 and, further, the "0" from the MSB of the shift register are input. In this state, the next CRC arithmetic operation result is read from the ROM 35 and is set in the CRC memory unit 36. At this time, data of the number of bits sufficient for performing the desired CRC arithmetic operation is not input to the CRC arithmetic processing unit 71, so the synchronization control unit 23 does nothing. </li><li>iv) When n=1 The data a<sub>40</sub> is input to the LSB of the shift register 21 and the ROM 35. At this time, in the shift register, the data is shifted in the direction from the LSB to the MSB (right direction in the figure). Further, at this time, simultaneously the CRC arithmetic operation result of the state just before (initial state) from the CRC memory unit 36 and, further, the "0" from the MSB of the shift register are input. In this state, the next CRC arithmetic operation result is read from the ROM 35 and is set in the CRC memory unit 36. Data of the number of bits sufficient for performing the desired CRC arithmetic operation is input to the CRC arithmetic processing unit 71, so the synchronization control unit 23 waits until the desired CRC arithmetic operation results become synchronized. </li><li>v) When n≥2 The data a<sub>n+39</sub> is input to the LSB of the shift register 21 and the ROM 35. At this time, in the shift register, the data is shifted in the direction from the LSB to the MSB (right direction in the figure). Further, at this time, simultaneously the CRC arithmetic operation result of the state just before (initial state) from the CRC memory unit 36 and, further, the a<sub>n-1</sub>, from the MSB of the shift register are input. In this state, the next CRC arithmetic operation result is read from the ROM 35 and is set in the CRC memory unit 36. Data of the number of bits sufficient for performing the desired CRC arithmetic operation is input to the CRC arithmetic processing unit 71, so the synchronization control unit 23 waits until the desired CRC arithmetic operation results become synchronized. </li></ul>
0133In the state after vi) and iv), the synchronization detection signal S<sub>d</sub> is output from the synchronization control unit 23 in the state where the conditions for front protection for synchronization have been met.
0134In the state after vii) and vi), when the desired CRC arithmetic operation results are not synchronized at the desired position, the set signal is output from the synchronization control unit 23. The CRC arithmetic processing unit is set to a state waiting for the same meaning as the internal state desired in the synchronization state (shift register → all "0", CRC memory unit → all "0").
0135In the state of viii) and vi), when loss of synchronization is detected, a reset signal is output from the synchronization control unit 23, the synchronization detection signal disappears, and the state i) is returned to.
0136Figure 33 is a view of an example of a synchronization control unit 23 in Fig. 32. This includes a reset means 70.
0137Figure 34 is a timing chart showing the reset signal in Fig. 33. 424 in the figure means 53 (all octets in ATM cell) x 8 (bits) and 40 means 5 (all octets of header in ATM cell) x 8 (bits). The reset signal R/S is output cyclically as illustrated and is output to the CRC arithmetic processing unit 71 (Fig. 32). <ul id="ul0007" list-style="none" compact="compact"><li>(1) Initial state The hunt processing unit 72 is in a hunting state. </li><li>(2) Hunting state When the reset of the master is released, the CRC arithmetic processing unit 71 starts the CRC arithmetic operation and C<sub>n</sub>'s are successively input to the comparator unit 24. In the comparator unit 24, when C<sub>n</sub> matches the desired value, the coincidence signal is output. At this time, the signal PS showing that the pseudo synchronization has started is output from the hunt processing unit 72, and the rear protection operation is started at the rear protection unit 73. </li><li>(3) Rear protection state The rear protection unit 73 which starts the rear protection operation checks that the coincidence signal is received successively seven times for each 53 bytes from the point of time when the signal PS is input. At this time, the synchronization start signal SS is output to the front protection unit 74. When seven successive coincidence signals cannot be received, the reset signals R2 and R/S are sent to the hunt processing unit 72 and the CRC arithmetic processing unit 71 and the above-mentioned state (2) is returned to. </li><li>(4) Synchronization state Continuing after the above-mentioned state (3), the synchronization state exists while the coincidence signal is input to the front protection unit 74 every 53 bytes. </li><li>(5) Front protection state When the coincidence signal coming every 53 bytes stops, the front protection unit 74 enters the front protection state. At this time, just the synchronization detection signal Sd is output every 53 bytes. When the coincidence signal is not input for six successive times, the front protection unit 74 outputs the reset signals R1 and R/S and the above-mentioned state (1) is returned to. When the coincidence signal is once again input in the 53 x i (i<6) byte, the above-mentioned state (4) is returned to. </li></ul>
0138Figure 35 is a view of an example of incorporation of the reset means in the circuit of Fig. 25.
0139The reset means 70, in brief, executes the CRC arithmetic operation on the 5 octets from the header every 53 octets (length of one ATM cell) and is essential for the rear protection and front protection. A detailed example was given in Fig. 32.
0140The second detailed example shown in Fig. 35 has a reset means 70 built in the synchronization circuit of Fig. 25. The reset means 70 can be extremely easily realized by an AND gate 75. This is also an advantage of the synchronization circuit of Fig. 25.
0141The AND gate 75 receives as input the above-mentioned reset signal RST and the output H of a header counter (not shown) and outputs the reset signal R/S. The reset signal R/S is applied to the sixth stage flipflop FF and the reset inputs of the flipflop forming the delay unit 62. Note that the above-mentioned header counter produces a cyclic output H synchronized with 53 octets.The waveform is shown in the row H of Fig. 36.
0142Figure 36 is a timing chart of signals appearing at key portions of Fig. 35.
0143As mentioned in the beginning, the CRC arithmetic operation is used not only for the detection of cell synchronization, but also for correcting errors in the header itself of the ATM cells. Therefore, the synchronization control unit 23 in the synchronization circuit 20 is provided with a header error correction means in addition to the above-mentioned reset means 70. Below, an example of a header error correction means suitable for being incorporated in the synchronization control unit 23 is shown.
0144As mentioned above, the header error correction means enters the active state after the synchronization circuit enters the synchronization state through the above-mentioned rear protection. Strictly speaking, this is the synchronization state when there is no error in the header of the ATM cell appearing just before. Therefore, consider the definite time series ψ: ψ<sub>0</sub> ψ<sub>1</sub> ψ<sub>2</sub> ψ<sub>3</sub> ψ<sub>4</sub> where ψi is ψ<sub>i0</sub>ψ<sub>i1</sub>ψ<sub>i2</sub>ψ<sub>i3</sub>ψ<sub>i4</sub>ψ<sub>i5</sub>ψ<sub>i6</sub>ψ<sub>i7</sub> Expressing this by a polynomial, the time series ψ is a numerical equation expressed by:<maths id="math0040" num="(29)"><math display="block"><mrow><msub><mrow><mtext>ψ</mtext></mrow><mrow><mtext>i</mtext></mrow></msub><msub><mrow><mtext>=ψ</mtext></mrow><mrow><mtext>i0</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><msub><mrow><mtext>+ψ</mtext></mrow><mrow><mtext>i1</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>6</mtext></mrow></msup><msub><mrow><mtext>+ψ</mtext></mrow><mrow><mtext>i2</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>5</mtext></mrow></msup><msub><mrow><mtext>+···+ψ</mtext></mrow><mrow><mtext>i7</mtext></mrow></msub><msup><mrow><mtext>χ</mtext></mrow><mrow><mtext>0</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0040.tif" /></maths> Here, it is considered that the CRC arithmetic operation results C aimed at are C=0. That is,<maths id="math0041" num="(30)"><math display="block"><mrow><mtext>C=ψmod(G)=0</mtext></mrow></math><img file="EP0448074B1_D0041.tif" /></maths>
0145However, assume that a one-bit error E enters the time series ψ. In this case, E is expressed by<maths id="math0042" num="(31)"><math display="block"><mrow><msup><mrow><mtext>E=χ</mtext></mrow><mrow><mtext>e</mtext></mrow></msup><mtext> (0≤e≤39)</mtext></mrow></math><img file="EP0448074B1_D0042.tif" /></maths> 0≤e≤39 means the range of 5 octets (5x8=40) of the header. This being so, the syndrome S (remainder) when a one-bit error E is included can be expressed by the following equation from equation (30):<maths id="math0043" num="(32)"><math display="block"><mrow><mtext>S=(ψ+E)mod(G)</mtext><mspace linebreak="newline" /><mtext> =ψmod(G)+Emod(G)</mtext><mspace linebreak="newline" /><mtext> =Emod(G)</mtext></mrow></math><img file="EP0448074B1_D0043.tif" /></maths> since ψmod(G) is 0. Therefore, it becomes possible to calculate the syndrome S for correcting the one-bit error E. Here, if<maths id="math0044" num=""><math display="block"><mrow><mtext>0≤e≤7</mtext></mrow></math><img file="EP0448074B1_D0044.tif" /></maths> that is, if there is a one-bit error in the eight bits 0 to 7, then<maths id="math0045" num="(33)"><math display="block"><mrow><mtext>S=Emod(G)=E</mtext></mrow></math><img file="EP0448074B1_D0045.tif" /></maths> and the syndrome S coincides with the bit error E of the monomial.
0146On the other hand, analyzing the generator polynomial G, the general generator polynomial G (=χ<sup>8</sup>+χ<sup>2</sup>+χ+<sup>1</sup>) becomes<maths id="math0046" num="(34)"><math display="block"><mrow><msup><mrow><mtext>G=(χ+1)(χ</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>6</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>5</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>4</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>3</mtext></mrow></msup><msup><mrow><mtext>+χ</mtext></mrow><mrow><mtext>2</mtext></mrow></msup><mtext>+1)</mtext></mrow></math><img file="EP0448074B1_D0046.tif" /></maths> so the period τ becomes<maths id="math0047" num=""><math display="block"><mrow><msup><mrow><mtext>τ=2</mtext></mrow><mrow><mtext>7</mtext></mrow></msup><mtext>-1=127</mtext></mrow></math><img file="EP0448074B1_D0047.tif" /></maths> Therefore, when the code length of the time series covered is deemed to be 127, if the bit train (ψ+E) of the time series ψ including the one-bit error E is cyclically replaced to the higher order side by i bits (i being a natural number less than 127), then (ψ+E) becomes (ψ+E)'. Here, (ψ+E)' can be rewritten to the following equation:<maths id="math0048" num="(35)"><math display="block"><mrow><msup><mrow><mtext>(ψ+E)'=[χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>(ψ+E)]mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><mtext>-1)</mtext><mspace linebreak="newline" /><msup><mrow><mtext> =(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>ψ)mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><msup><mrow><mtext>-1)+(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>ψ)mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><mtext>-1)</mtext></mrow></math><img file="EP0448074B1_D0048.tif" /></maths> Therefore, the syndrome S' for this (ψ+E)' becomes:<maths id="math0049" num="(36)"><math display="block"><mrow><msup><mrow><mtext>S'=[(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>ψ)mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><msup><mrow><mtext>-1)+(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>E)mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><mtext>-1)]mod(G)</mtext><mspace linebreak="newline" /><msup><mrow><mtext> =[(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><msup><mrow><mtext>E)mod(χ</mtext></mrow><mrow><mtext>127</mtext></mrow></msup><mtext>-1)]mod(G)</mtext><mspace linebreak="newline" /><msup><mrow><mtext> =(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><mtext>E)mod(G)</mtext><mspace linebreak="newline" /><msup><mrow><mtext> =χ</mtext></mrow><mrow><mtext>(i+e)mod(127)</mtext></mrow></msup><mtext>mod(G)</mtext></mrow></math><img file="EP0448074B1_D0049.tif" /></maths> The term of (χ<sup>i</sup>ψ)mod(χ<sup>127</sup>-1) in the above does not include an error, so is 0.
0147In equation (36), if the value i which gives<maths id="math0050" num=""><math display="block"><mrow><mtext>0≤(i+e)mod(127)≤7</mtext></mrow></math><img file="EP0448074B1_D0050.tif" /></maths> is selected, the syndrome S' can be simply found. That is,<maths id="math0051" num="(37)"><math display="block"><mrow><msup><mrow><mtext>S'=χ</mtext></mrow><mrow><mtext>(i+e)mod(127)</mtext></mrow></msup></mrow></math><img file="EP0448074B1_D0051.tif" /></maths> and error correction becomes possible.
0148Here, as a result, it is known that<maths id="math0052" num=""><math display="block"><mrow><msup><mrow><mtext>S'=(χ</mtext></mrow><mrow><mtext>i</mtext></mrow></msup><mtext>S)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0052.tif" /></maths> so with respect to the syndrome S, the following is found:<maths id="math0053" num="(38)"><math display="block"><mrow><msup><mrow><mtext>S'=(χ</mtext></mrow><mrow><mtext>95+8χm</mtext></mrow></msup><mtext>S)mod(G) (where m=0, 1, 2, 3, 4)</mtext></mrow></math><img file="EP0448074B1_D0053.tif" /></maths> This becomes:<maths id="math0054" num="(39)"><math display="block"><mrow><msup><mrow><mtext>S'=χ</mtext></mrow><mrow><mtext>(95+8χm+e)mod(127)</mtext></mrow></msup><mspace linebreak="newline" /><mtext> (where, 0≤(95+8m+e)mod(127)≤7)</mtext></mrow></math><img file="EP0448074B1_D0054.tif" /></maths> and the error can be easily detected. Note that this is not applicable to a plurality of bit errors.
0149Next, the following are found:<maths id="math0055" num="(40)"><math display="block"><mrow><msub><mrow><mtext>S=C</mtext></mrow><mrow><mtext>p0</mtext></mrow></msub></mrow></math><img file="EP0448074B1_D0055.tif" /></maths><maths id="math0056" num="(41)"><math display="block"><mrow><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>-1</mtext></mrow></msub><msup><mrow><mtext>=(χ</mtext></mrow><mrow><mtext>87</mtext></mrow></msup><mtext>S)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0056.tif" /></maths><maths id="math0057" num="(42)"><math display="block"><mrow><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>i</mtext></mrow></msub><msup><mrow><mtext>=(χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>i-1</mtext></mrow></msub><mtext>)mod(G)(0≤i≤4)</mtext></mrow></math><img file="EP0448074B1_D0057.tif" /></maths> Note that C<sub>p0</sub> is shown in Fig. 38.
0150S in equation (40) shows the initial state of the data and may be illustrated as follows:<maths id="math0058" num=""><img file="EP0448074B1_D0058.tif" /></maths>
0151Note that [1] to [5] correspond to the first octet to fifth octet of the header of the ATM cell. Further, the code length is 127 bits.
0152The above-mentioned equation (41) means that the 87 bits of the header in the S: of the above figure are moved to the right in the bit train. As a result, the header is cyclically replaced to the higher order side as shown by the following S<sub>-1</sub>:<maths id="math0059" num=""><img file="EP0448074B1_D0059.tif" /></maths>
0153Next, if the first octet [1] of the header is moved to the right, the following S<sub>0</sub> is obtained. This S<sub>0</sub> has the i in the above equation (42) made i=0.<maths id="math0060" num=""><math display="block"><mrow><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><msup><mrow><mtext>=(χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>-1</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0060.tif" /></maths><maths id="math0061" num=""><img file="EP0448074B1_D0061.tif" /></maths>
0154Below, similarly if another octet is moved to the right, S<sub>1</sub>, becomes<maths id="math0062" num=""><math display="block"><mrow><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>1</mtext></mrow></msub><msup><mrow><mtext>=(χ</mtext></mrow><mrow><mtext>8</mtext></mrow></msup><msub><mrow><mtext>S</mtext></mrow><mrow><mtext>0</mtext></mrow></msub><mtext>)mod(G)</mtext></mrow></math><img file="EP0448074B1_D0062.tif" /></maths> and can be expressed as the following S<sub>1</sub>:<maths id="math0063" num=""><img file="EP0448074B1_D0063.tif" /></maths>
0155Therefore, finally the following results: <ul id="ul0008" list-style="none" compact="compact"><li>a) When S=0 (or S<sub>-1</sub>=0) -> no error.</li><li>b) When S<sub>i</sub> = χ<sup>j</sup> (0≤j≤7) -> the processing of ω<sub>i(7- j)</sub><-1+ω<sub>i(7-j)</sub> becomes necessary (bit inversion).</li><li>c) When (0≤j≤4) and the condition in the previous two terms are not met -> cell disposal is indicated.</li></ul>
0156Here, one of the error correction information a), b), and c) are obtained.
0157An example of the specific constitution of the header error correction means based on the above will be explained below:
0158Figure 37 is a view of a specific example of a header error correction means. However, this is an example of application to the synchronization circuit shown in Fig. 35. Further, Fig. 38 is a timing chart of signals appearing at key portions of Fig. 37. The example will be explained referring to these figures. First, in Fig. 37, the portion other than the bit correction unit 89 is the bit error detection unit. The bit error detection unit is comprised of the illustrated circuit elements 82 to 88. The flipflops 82, 83, 85, and 88 in the figure are mainly provided to match the timing and match with the timing of D'' and S''' at the two inputs of the bit correction unit 89. Further, the S<sub>-1</sub>, arithmetic unit 84 and the S<sub>i</sub> arithmetic unit 87 execute the bit shift mentioned above.
0159Figure 39 is a view of an example of the S<sub>-1</sub> arithmetic unit in Fig. 37. Figure 40 is a view of the bit pattern for constituting the S<sub>-1</sub> arithmetic unit of Fig. 39. Figure 41 is a view of one example of the S<sub>1</sub> arithmetic unit in Fig. 37. Figure 42 is a view of the bit pattern for constituting the S<sub>i</sub> arithmetic unit in Fig. 41.
0160Next, an explanation will be made of the bit correction unit 89 of Fig. 37.
0161Figure 43 is a view of an example of the bit correction unit of Fig. 37. Figure 44 is a timing chart of signals appearing at key portions of Fig. 43.
0162In Fig. 43, 91 is an arithmetic circuit, 92 to 94 are flipflops, and 95 is an EX-OR gate. A header error is detected at the stage in front of the block 89 in Fig. 37. After this, the error is corrected by the bit correction unit 89 of Fig. 43 by the operation of Fig. 44. In the header error correction here, by obtaining the EX-OR E of the data when Si has a one-bit error and ω<sub>i</sub> by the EX-OR gate 95, the corrected data bit T is obtained. Here, first, consideration will be given to the arithmetic circuit 91.
0163The arithmetic circuit 91 <ul id="ul0009" list-style="none" compact="compact"><li>(i) outputs "1" when S<sub>i</sub>=0 or when S<sub>i</sub> has a one-bit error and</li><li>(ii) outputs "0" when S<sub>i</sub> has two or more bits of error.</li></ul>
0164The construction of the arithmetic circuit 91 will be discussed later, but here note that the corrected data bit T is obtained by resetting the D-flipflop 92 by the output R<sub>c</sub> of the circuit 91. This is because the EX-OR can be obtained only when S<sub>i</sub>=0 or S<sub>i</sub> has a one-bit error.
0165On the other hand, looking at the RS flipflop 93, the Q output U <ul id="ul0010" list-style="none" compact="compact"><li>i) becomes "1" when S<sub>i</sub>=0 or S<sub>i</sub> has a one-bit error and</li><li>ii) becomes "0" when S<sub>i</sub> has two or more bits of error.</li></ul> Therefore, when S<sub>i</sub> includes two or more bits of error, U<sub>4</sub> still shows "0". At this time, the ATM cell is discarded. Note that the RS flipflop 93 is set by S1 showing the header of the ATM cell.
0166The above-mentioned arithmetic circuit 91 will be explained in further detail below. Here, assume that the S<sub>i</sub> mentioned above is expressed by S<sub>i</sub>: s<sub>10</sub> s<sub>11</sub> s<sub>12</sub> s<sub>13</sub> s<sub>14</sub> s<sub>15</sub> s<sub>16</sub> s<sub>17</sub><ul id="ul0011" list-style="none" compact="compact"><li>i) When S<sub>i</sub>=0<maths id="math0064" num="(43)"><math display="block"><mrow><msub><mrow><mtext>R</mtext></mrow><mrow><mtext>ca</mtext></mrow></msub><mtext>=</mtext><msub><mrow><mover accent="true"><mrow><mtext>S</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>10</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>11</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>12</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>13</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>14</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>15</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>16</mtext></mrow></msub><mtext>∩</mtext><msub><mrow><mover accent="true"><mrow><mtext>s</mtext></mrow><mo>¯</mo></mover></mrow><mrow><mtext>17</mtext></mrow></msub></mrow></math><img file="EP0448074B1_D0064.tif" /></maths> becomes "1". R<sub>ca</sub> is the first result in the arithmetic circuit 91.</li><li>ii) When <maths id="math0065" num=""><math display="inline"><mrow><mover accent="true"><mrow><mtext>S</mtext></mrow><mo>¯</mo></mover></mrow></math><img file="EP0448074B1_D0065.tif" /></maths><sub>i</sub> has a one-bit error<maths id="math0066" num=""><img file="EP0448074B1_D0066.tif" /></maths><maths id="math0067" num=""><img file="EP0448074B1_D0067.tif" /></maths> becomes "1". R<sub>cb</sub> is the second result in the arithmetic circuit 91.</li></ul>
0167Other than the above, there are two or more bits of error.
0168In the final analysis, the output R<sub>c</sub> of the arithmetic circuit 91 becomes the logical OR output of the above-mentioned R<sub>ca</sub> and R<sub>cb</sub>.
0169The ATM cells are continuously sent in from the transmission side on the transmission channel. If this transmission channel is disconnected, the all "0" or all "1" data appears at the reception side. If the all "0" data appears, the CRC arithmetic operation result also becomes "0" and the reception side enters a state equivalent to one where synchronization is established. This is the pseudo synchronization detection state.
0170Therefore, it has been proposed at the CCITT that an offset bit train be mapped at the HEC region (HEC in Fig. 9) in the header of the ATM cells at the transmission side in advance. This offset bit train would, for example, be as follows: 01010101 To deal with the case of mapping of such an offset bit train, a logic inversion means is introduced in the present invention.
0171Figure 45 is a block diagram of the principle of a synchronization circuit including a logic inversion means. Reference numeral 100 in the figure is a logic inversion means. For "1", the bit corresponding to the CRC arithmetic operation result is inverted in logic. On the other hand, for "0", the bit corresponding to the CRC arithmetic operation result is passed with its logic as is. Showing this operation by a numerical equation, looking at the above-mentioned equation (17),<maths id="math0068" num=""><math display="block"><mrow><mtext>R(χ)=[C(χ)+offset(χ)]mod(G(χ))</mtext></mrow></math><img file="EP0448074B1_D0068.tif" /></maths>
0172Figure 46 is a view of an example of a logic inversion means. The logic inversion means 100 is applied to the continuous CRC arithmetic unit 22 of Fig. 21 (third embodiment). The logic inversion means of Fig. 45 is comprised of a group of invertors 101. The invertor 101 is connected at the bit position corresponding to "1" in the above-mentioned offset bit train.
0173As explained above, according to the present invention, it is possible to perform a CRC arithmetic operation continuously on the header portion of bit trains of continuously input ATM cells and to detect synchronization at a high speed. Further, the hardware for this can be extremely simply realized based on a mathematical method.
0174Reference signs in the claims are intended for better understanding and shall nct limit the scope.
110 sheets
Sheet 1 Sheet 2 Sheet 3 Sheet 4 Sheet 5 Sheet 6 Sheet 7 Sheet 8 Sheet 9 Sheet 10 Sheet 11 Sheet 12 Sheet 13 Sheet 14 Sheet 15 Sheet 16 Sheet 17 Sheet 18 Sheet 19 Sheet 20 Sheet 21 Sheet 22 Sheet 23 Sheet 24 Sheet 25 Sheet 26 Sheet 27 Sheet 28 Sheet 29 Sheet 30 Sheet 31 Sheet 32 Sheet 33 Sheet 34 Sheet 35 Sheet 36 Sheet 37 Sheet 38 Sheet 39 Sheet 40 Sheet 41 Sheet 42 Sheet 43 Sheet 44 Sheet 45 Sheet 46 Sheet 47 Sheet 48 Sheet 49 Sheet 50 Sheet 51 Sheet 52 Sheet 53 Sheet 54 Sheet 55 Sheet 56 Sheet 57 Sheet 58 Sheet 59 Sheet 60 Sheet 61 Sheet 62 Sheet 63 Sheet 64 Sheet 65 Sheet 66 Sheet 67 Sheet 68 Sheet 69 Sheet 70 Sheet 71 Sheet 72 Sheet 73 Sheet 74 Sheet 75 Sheet 76 Sheet 77 Sheet 78 Sheet 79 Sheet 80 Sheet 81 Sheet 82 Sheet 83 Sheet 84 Sheet 85 Sheet 86 Sheet 87 Sheet 88 Sheet 89 Sheet 90 Sheet 91 Sheet 92 Sheet 93 Sheet 94 Sheet 95 Sheet 96 Sheet 97 Sheet 98 Sheet 99 Sheet 100 Sheet 101 Sheet 102 Sheet 103 Sheet 104 Sheet 105 Sheet 106 Sheet 107 Sheet 108 Sheet 109 Sheet 110
Every citation, both ways
| Document | Relation | Office |
|---|---|---|
| EP0280914A | Cites | European Patent Office (EPO) |
| US3336467A | Cites | United States of America |
| IEEE GLOBAL TELECOMMUNICATIONS CONFERENCE vol. 1, 28 November 1988, HOLLYWOOD (US) pages 394 - 402 D.P. HSING ET AL. 'On cell size and header error control of asynchronous transfer mode (ATM).' | Non-patent | – |
| ELECTRONIC LETTERS vol. 19, no. 3, 3 February 1983, HITCHIN (GB) pages 109 - 110 S.R. ELY ET AL. 'High-speed decoding technique for slip detection in data transmission systems using modified cyclic block codes.' | Non-patent | – |
9 members in 5 offices; this record represents the family
Priority claims4
| Document | Office | Kind | Date |
|---|---|---|---|
| 6804990 | Japan | A | |
| 6804990 | Japan | – | |
| JP19900068049 | – | – | – |
| 6804990 | – | – | – |
Members9
| Document | Office | Kind | |
|---|---|---|---|
| CA2038592A1 | Canada | A1 | |
| EP0448074A2 | European Patent Office (EPO) | A2 | |
| JPH04211547A | Japan | A | |
| EP0448074A3 | European Patent Office (EPO) | A3 | |
| US5282215A | United States of America | A | |
| CA2038592C | Canada | C | |
| EP0448074B1This record | European Patent Office (EPO) | B1 | |
| DE69129558D1 | Germany | D1 | |
| DE69129558T2 | Germany | T2 |
26 legal events, as 3 offices reported them to INPADOC
Over the term
Point at a mark for the eventEvents
| Event | Code | Office | |
|---|---|---|---|
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Gb: european patent ceased through non-payment of renewal feeCeasedGBPC | GBPC | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Notification of lapseLapsedST | ST | FR | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Lapsed in a contracting state [announced via postgrant information from national office to epo]LapsedPG25 | PG25 | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| Annual fee paid to national office [announced via postgrant information from national office to epo]GrantedPGFP | PGFP | EP | |
| European patent in force as of 2002-01-01IF02 | IF02 | GB | |
| No opposition filedOpposition26N | 26N | EP | |
| No opposition filed within time limitOppositionORIGINAL CODE: 0009261PLBE | PLBE | EP | |
| Information on the status of an ep patent application or granted ep patentGrantedSTATUS: NO OPPOSITION FILED WITHIN TIME LIMITSTAA | STAA | EP | |
| Fr: translation filedET | ET | EP | |
| Corresponds to:REF | REF | EP | |
| Designated contracting statesAK | AK | EP | |
| (expected) grantORIGINAL CODE: 0009210GRAA | GRAA | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| Despatch of communication of intention to grant a patentORIGINAL CODE: EPIDOS IGRAGRAH | GRAH | EP | |
| Despatch of communication of intention to grantORIGINAL CODE: EPIDOS AGRAGRAG | GRAG | EP | |
| First examination report despatched17Q | 17Q | EP | |
| Request for examination filed17P | 17P | EP | |
| Designated contracting statesAK | AK | EP | |
| Search report despatchedORIGINAL CODE: 0009013PUAL | PUAL | EP | |
| Designated contracting statesAK | AK | EP | |
| Public reference made under article 153(3) epc to a published international application that has entered the european phaseORIGINAL CODE: 0009012PUAI | PUAI | EP |
Numbers
- Publication
- 0448074
- Publication, DOCDB
- 0448074
- Publication, EPODOC
- EP0448074
- Application
- 91104331
- Application, DOCDB
- 91104331
- Application, EPODOC
- EP19910104331
Titles3
- German
- Synchronisierungsanordnung für nach einem asynchronen Transfermodus übertragenen Zellen
- English
- Synchronization circuit for ATM cells
- French
- Dispositif de synchronisation de cellules transmises en mode de transfert asynchrone
Classification
- CPC, 4
- H04Q11/0478
- H04L7/048
- H04L2012/5673
- H04L2012/5674
- IPC, 7
- G06F11 10
- H03M13 00
- H04L7 00
- H04L7 04
- H04L7 08
- H04L12 70
- H04Q11 04
Designated states3
- Contracting states, 3
- Germany
- France
- United Kingdom
