This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2015-133786, filed on Jul. 2, 2015, the entire contents of which are incorporated herein by reference.
The embodiment discussed herein relates to a transfer device and a data processing method.
A transfer standard called the optical transport network (OTN) is prescribed in the G.709 of the International Telecommunication Union Telecommunication Standardization Sector (ITU-T) as a method for effectively transferring signals over a transmission line in an optical transfer network. The OTN frame format includes forward error correction (FEC) in which the Reed-Solomon (255, 239) code (written below as “RS (255, 239)”) is used, for example, for correcting errors in order to improve the quality of long-distance transmission.
A transfer device in the optical transfer network computes the FEC in conformance with the ITU-T G.709. In the case of the RS (255, 239), the transfer device adds a 16-symbol FEC to the input data of 239 symbols with 1 symbol equaling 8 bits. Error correction is carried out up to a maximum of 8 symbols in the RS (255,239).
Related techniques are disclosed in Japanese Laid-open Patent Publication No. 10-041830 and Japanese Laid-open Patent Publication No. 11-136136.
According to an aspect of the invention, a transfer device includes: a plurality of calculators configured to perform an encoding operation on split input data obtained by splitting input data in a specific unit in parallel; a plurality of storages configured to store respective results of the encoding operation; and a generator configured to add the results of the encoding operation stored in the plurality of storages and generate an error correcting code to be added to the input data.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
In processing to generate FECs to be added to input data, a processing result from the rear stage of a clock timing that is an operation clock for FEC generation is incorporated at the front stage of a next clock timing. In this case, a timing error may occur due to signal delays in each stage of the FEC generation. In order to avoid timing errors, the amount of data to be processed in one clock is increased and the operation clock is reduced to lengthen the clock cycle. In this case, FEC generation is carried out in parallel in a plurality of circuits in order to increase the amount of data to be processed in one clock. The processing result from the rear stage of the clock timing that is the operation clock for FEC generation is incorporated at the front stage of the next clock timing in the lengthened clock cycle.
When carrying out FEC generation in parallel with a plurality of circuits, the processing result of the rear stage of the FEC generation is incorporated at the front stage. As a result, when the processing result of the rear stage of the FEC generation is incorporated at the front stage, the number of stages of the FEC generation is increased in order to carry out the FEC generation with the plurality of circuits and timing errors may occur due to signal delays in each stage of the FEC generation.
In the following explanation, the explanation of overlapping or similar configurations or processing may be omitted. The following embodiment is not intended to limit the techniques disclosed herein. The embodiment may be combined as appropriate within a consistent scope.
The transfer device 10A has a client-side interface (IF) unit 1A, a switch (SW) unit 4A, and a network-side IF unit 5A. The client-side IF unit 1A has mapping units 2A-1 to 2A-n and overhead (OH) inserting units 3A-1 to 3A-n. Here, n represents a natural number. The network-side IF unit 5A has FEC encoding units 6A-1 to 6A-n, and a multiplexer unit 7A. The FEC encoding units 6A-1 to 6A-n hold an element list table 6t (see
The mapping units 2A-1 to 2A-n and the overhead (OH) inserting units 3A-1 to 3A-n are respectively coupled to clients 9A-1 to 9A-n. The mapping units 2A-1 to 2A-n map user data from the respective clients 9A-1 to 9A-n to payload regions in OTN frames. The OH inserting units 3A-1 to 3A-n insert overheads into the OTN frames subjected to the mapping into the payload regions by the respective mapping units 2A-1 to 2A-n.
The SW unit 4A inputs the OTN frames output by the OH inserting units 3A-1 to 3A-n into any of the FEC encoding units 6A-1 to 6A-n of the network-side IF unit 5A through path switching. The FEC encoding units 6A-1 to 6A-n generate forward error correction (FEC) codes based on Reed-Solomon of RS (255, 239), for example, and add the codes to the inputted OTN frames. The multiplexer unit 7A multiplexes the OTN frames provided with the FECs from the FEC encoding units 6A-1 to 6A-n and transmits the frames to the network 200. The FEC encoding units 6A-1 to 6A-n may include a field-programmable gate array (FPGA) or an application specific integrated circuit (ASIC) for example.
The transfer device 10B has a network-side IF unit 5B, a SW unit 4B, and a client-side IF unit 1B. The network-side IF unit 5B has a demultiplexer unit 7B and FEC decoding units 6B-1 to 6B-n. The client-side IF unit 1B has OH terminating units 3B-1 to 3B-n, and demapping units 2B-1 to 2B-n. Each of the OH terminating units 3B-1 to 3B-n and the demapping units 2B-1 to 2B-n are respectively coupled to clients 9B-1 to 9B-n.
The demultiplexer unit 7B inputs each of OTN frames in which signals received from the network 200 are demultiplexed into the respective FEC decoding units 6B-1 to 6B-n. The FEC decoding units 6B-1 to 6B-n carry out error correcting of the OTN frames based on, for example, the Reed-Solomon forward error correcting (FEC) code RS (255, 239) added to the input OTN frames. Error correcting using the FECs may be called decoding. The FEC encoding units 6B-1 to 6B-n hold the element list table 6t (see
The SW unit 4B inputs the OTN frames input from the FEC decoding units 6B-1 to 6B-n into any of the OH terminating units 3B-1 to 3B-n of the client-side IF unit 1B through path switching. The OH terminating units 3B-1 to 3B-n remove the OTU-OH, ODU-OH, and OPU-OH overheads from the input OTN frames. The demapping units 2B-1 to 2B-n demap the user data from the payload region of the OTN frames in which the overheads were removed by the OH terminating units 3B-1 to 3B-n, and transmits the user data to the clients 9B-1 to 9B-n.
In FEC operations, signals are handled as Reed-Solomon symbols defined according to a Galois field GF (28). The Galois field GF (28) is a finite field where 28 =256 elements exist. The primitive polynomial expression of the Galois field GF (28) includes x8+x4+x3+x2+1. When one primitive element of the Galois field GF (28) is assumed to be α, the power of a becomes all of the elements of the Galois field GF (28). αi (0≦i≦254) is calculated from the primitive polynomial expression x8+x4+x3+x2+1 by using the relationship α8+α4+α3+α2+1 =0 or α8 =α4+α3+α2+1. When “0” is further added to αi (0≦i≦254), all of the elements in the Galois field GF (28) expressed by 8 bits are generated as indicated in
Addition in the Galois field GF (28) is defined by considering each digit in a binary expression of the elements in the Galois field GF (28) as the components of a vector and by adding the components in a Galois field GF (2). For example, addition is defined as Exclusive-OR (Ex-OR) for each bit in the binary expressions of the elements in the Galois field GF (28). For example, α3 =(00001000), α5 =(00100000), and (00001000)+(00100000)=(00101000)=α53 when referring to
Multiplication in the Galois field GF (28) is defined by adding the exponents (indexes) of the elements in the Galois field GF (28) with a remainder (mod255) when divided by 255 (28−1). For example, α123×α231=α(123+231)mod255=α99 when referring to
In this way, the FEC encoding units 6A-1 to 6A-n divide the input data with generator polynomials and insert the remainders thereof in the FEC region.
The FEC decoding units 6B-1 to 6B-n carry out syndrome arithmetic (division through generator polynomials) on the received data and calculate equations for specifying error positions based on the results thereof. The equations are simultaneous equations and therefore the values and the positions where the errors occur can be understood by solving the simultaneous equations. The data resulting from carrying out error correction processing on the data made to wait for the series of operations, is output.
As illustrated in
The even number operation unit 6a carries out the encoding operation based on the operation results from the immediately preceding clock stored in the storage unit 6b, and from first data of 16 bits which includes higher order 8 bits and lower order 8 bits all of which are set as “0” from among the 16-bit input data of the current clock, and stores the operation results in the storage unit 6b. The odd number operation unit 6c carries out the encoding operation based on the operation results from the immediately preceding clock stored in the storage unit 6d, and from second data of 16 bits which includes higher order 8 bits and lower order 8 bits all of which are set as “0” from among the 16-bit input data of the current clock, and stores the operation results in the storage unit 6d. The FEC encoding unit 6 adds each of the operation results stored in the storage unit 6b and 6d with the adder 6e when generating the output data. The selector 6f switches and sequentially outputs the input data and the FECs which are the addition results from the adder 6e so that the FECs are added to the input data in the rear stage.
For example, as illustrated in
For example, the input data I_DT[15:0] for each one clock of the certain clock I-CLK is divided by a generator polynomial in the even number operation unit 6a or the odd number operation unit 6c that includes a multiplier and an adder for FEC operations, among the input data I_DT subject to the FEC addition. The division results (remainders) are held in the storage units 6b and 6d at the point in time when all of the input data I_DT subject to the FEC addition is input. The adder 6e generates the FECs to be added to the data subject to the FEC addition by adding the division results held in the storage units 6b and 6d. The I_DT and the outputs of the adder 6e are selected by the selector 6f whereby the data to which the FECs have been added to the output data O_DT is output.
The even number operation unit 6a has an adder 6a-1 and an AND gate 6a-2. The even number operation unit 6a has multipliers 6a-3 to 6a-6. The even number operation unit 6a has adders 6a-7 to 6a-9. The even number operation unit 6a has an AND gate 6a-10. Furthermore, the even number operation unit 6a has multipliers 6a-11 to 6a-14.
The storage unit 6b has FFs 6b-2 to 6b-5. The storage unit 6b has adders 6b-6 to 6b-8.
The odd number operation unit 6c has an AND gate 6c-2. The odd number operation unit 6c has multipliers 6c-3 to 6c-6. The odd number operation unit 6c has adders 6c-7 to 6c-9. The odd number operation unit 6c has an AND gate 6c-10. The odd number operation unit 6c has multipliers 6c-11 to 6c-14.
The storage unit 6b has the FFs 6b-2 to 6b-5 and the adders 6b-6 to 6b-8. The storage unit 6d has FFs 6d-2 to 6d-5 and adders 6d-1 and 6d-6 to 6d-8.
The adder 6a-1 outputs, to the AND gate 6a-2, the addition result of adding the I_DT[15:8] which is the higher order 8 bits of the 16-bit input data I_DT[15:0] to the output of the FF 6b-5. The I_DT[15:8] which is the higher order 8 bits of the 16-bit input data I_DT[15:0] is an element of the 8-bit Galois field GF (28) and may correspond to the data of the even number positions. The AND gate 6a-2 takes the logical product of the input from the adder 6a-1 and an enable signal I_EN and outputs the logical product to the multipliers 6a-3 to 6a-6. The enable signal I_EN indicates the input data region with “H”, indicates the FEC region with “L” and is used for controlling the selection of the input data I_DT[15:0] and the FEC operation result.
The multiplier 6a-3 outputs the multiplication result from the input from the AND gate 6a-2 and α120 =(00111011) to the adder 6b-6. The multiplier 6a-4 outputs the multiplication result from the input from the AND gate 6a-2 and α225=(00100100) to the adder 6a-7. The adder 6a-7 outputs the addition result from the input from the FF 6b-2 and the input from the multiplier 6a-4 to the adder 6b-7.
The multiplier 6a-5 outputs the multiplication result from the input from the AND gate 6a-2 and α194=(00110010) to the adder 6a-8. The adder 6a-8 outputs the addition result from the input from the FF 6b-3 and the input from the multiplier 6a-5 to the adder 6b-8.
The multiplier 6a-6 outputs the multiplication result from the input from the AND gate 6a-2 and α182=(01100010) to the adder 6a-9. The adder 6a-9 outputs the addition result from the input from the FF 6b-4 and the input from the multiplier 6a-6 to the AND gate 6a-10 and the adder 6e-2.
The AND gate 6a-10 takes the logical product of the input from the adder 6a-9 and an enable signal I_EN and outputs the logical product to the multipliers 6a-11 to 6a-14.
The multiplier 6a-11 outputs the multiplication result from the input from the AND gate 6a-10 and α120=(00111011) to the FF 6b-2. The multiplier 6a-12 outputs the multiplication result from the input from the AND gate 6a-10 and α225=(00100100) to the adder 6b-6. The adder 6b-6 outputs the addition result from the input from the multiplier 6a-3 and the input from the multiplier 6a-12 to the FF 6b-3.
The multiplier 6a-13 outputs the multiplication result from the input from the AND gate 6a-10 and α194=(00110010) to the adder 6b-7. The adder 6b-7 outputs the addition result from the input from the adder 6a-7 and the input from the multiplier 6a-13 to the FF 6b-4.
The multiplier 6a-14 outputs the multiplication result from the input from the AND gate 6a-10 and α182=(01100010) to the adder 6b-8. The adder 6b-8 outputs the addition result from the input from the adder 6a-8 and the input from the multiplier 6a-14 to the FF 6b-5. The FF 6b-5 outputs the information to be stored to the adder 6e-1.
The AND gate 6c-2 takes the logical product of the input from the FF 6d-5 and the enable signal I_EN and outputs the logical product to the multipliers 6c-3 to 6c-6.
The multiplier 6c-3 outputs the multiplication result from the input from the AND gate 6c-2 and α120=(00111011) to the adder 6d-6. The multiplier 6c-4 outputs the multiplication result from the input from the AND gate 6c-2 and α225=(00100100) to the adder 6c-7. The adder 6c-7 outputs the addition result from the input from the FF 6d-2 and the input from the multiplier 6c-4 to the adder 6d-7.
The multiplier 6c-5 outputs the multiplication result from the input from the AND gate 6c-2 and α194=(00110010) to the adder 6c-8. The adder 6c-8 outputs the addition result from the input from the FF 6d-3 and the input from the multiplier 6c-5 to the adder 6d-8.
The multiplier 6c-6 outputs the multiplication result from the input from the AND gate 6c-2 and α182=(01100010) to the adder 6c-9. The adder 6c-9 outputs the addition result from the input from the FF 6d-4 and the input from the multiplier 6c-6 to the adder 6d-1 and the adder 6e-2.
The adder 6d-1 outputs, to the AND gate 6c-10, the addition result of adding the I_DT[7:0] which is the lower order 8 bits of the 16-bit input data I_DT[15:0] to the output of the adder 6c-9. The I_DT[7:0] which is the lower order 8 bits of the 16-bit input data I_DT[15:0] is an element of the 8-bit Galois field GF (28) and may correspond to the data of the odd number positions. The AND gate 6c-10 takes the logical product of the input from the adder 6d-1 and the enable signal LEN and outputs the logical product to the multipliers 6c-11 to 6c-14.
The multiplier 6c-11 outputs the multiplication result from the input from the AND gate 6c-10 and α120=(00111011) to the FF 6d-2. The multiplier 6c-12 outputs the multiplication result from the input from the AND gate 6c-10 and α225=(00100100) to the adder 6d-6. The adder 6d-6 outputs the addition result from the input from the multiplier 6c-3 and the input from the multiplier 6c-12 to the FF 6d-3.
The multiplier 6c-13 outputs the multiplication result from the input from the AND gate 6c-10 and α194=(00110010) to the adder 6d-7. The adder 6d-7 outputs the addition result from the input from the adder 6c-7 and the input from the multiplier 6c-13 to the FF 6d-4.
The multiplier 6c-14 outputs the multiplication result from the input from the AND gate 6c-10 and α182=(01100010) to the adder 6d-8. The adder 6d-8 outputs the addition result from the input from the adder 6c-8 and the input from the multiplier 6c-14 to the FF 6d-5. The FF 6d-5 outputs the information to be stored to the adder 6e-1.
The adder 6e-1 outputs the addition result from the input from the FF 6b-5 and the input from the FF 6d-5 to the selector 6f. The adder 6e-2 outputs the addition result from the input from the adder 6a-9 and the input from the adder 6d-9 to the selector 6f.
The selector 6f switches the input from the adder 6e-1 or 6e-2 with the input data I_DT[15:0] and outputs the result sequentially to the FF 6g. The FF 6g outputs output data O_DT[15:0] in which the FEC that is the remainder derived by dividing the input data I_DT[15:0] by the generator polynomial is added to the input data I_DT[15:0].
For example in
As illustrated in
Similar to the encoding for the FEC generation in
The encoding for computing the forward error correcting (FEC) codes in the Reed-Solomon method during transmission of OTN frames is encoding by splitting even number position symbols and odd number position symbols among different circuits. As a result, the data transfer speed is increased and the FECs which are forward error correcting codes in the Reed-Solomon method are added to the OTN frames without the occurrence of data delays even when the circuit operation clocks do not follow the data transfer speed. Because encoding without causing data delays can be carried out even when using inexpensive devices that do not have the level of performance desired to follow the data transfer speed, the component costs may be reduced.
For example, one symbol equals eight bits and the input data to receive the FECs inputted in 2-symbol units is split into 1-symbol units. A polynomial expression made up of odd-order members using odd number position symbols as coefficients and a polynomial expression made up of even-order members using even number position symbols as coefficients are generated. Two operation units made up of the odd-number operation unit that divides the polynomial expression made up of the odd-order members with the generator polynomial and the even-number operation unit that divides the polynomial expression made up of the even-order members with the generator polynomial derive the respective remainders concurrently. The FEC to be added to the input data is generated by adding the remainders.
For example, assuming that N is a natural integer of 2 or greater, the input data to receive the FEC inputted in units of N-symbols is split into 1-symbol units. N number of polynomial expressions made up of members of each i-order using, as coefficients, the congruent symbols in which the input sequence i (where i is a natural number) in symbol units have N as the modulo. Remainders are derived in parallel in the N-number of operation units that divide each of the N-number of polynomial expressions with the generator polynomial. The FECs to be added to the input data may be generated by adding the remainders. An example in which N equals 2 is depicted in the above embodiment.
For example, if N equals 3, the input data of five symbols (for example, α0, α1, α2, α3, α4 which are inputted in this order as data units of (α0, αl, α2), (α3, α4)) to be added to the FECs inputted in 3-symbol units is split into 1-symbol units. Three polynomial expressions (for example, α2x2, α4x4+α1x1, α3x3+α0) are generated made up of each degree using, as a coefficient, the congruent symbols in which the input sequence for each symbol unit has 3 as the modulo. α2x2 is a polynomial expression made up of members of the order of the remainder 2 with the modulo 3. α4x4+α1x1 is the polynomial expression made up of the members of the coset of the remainder 1 using the modulo 3. α3x3+α1x1 is the polynomial expression made up of the members of the order of the remainder 0 using the modulo 3. For example, a first operation unit calculates a first remainder by dividing α2x2 by the generator polynomial. For example, a second operation unit calculates a second remainder by dividing α4x4+α1x1 by the generator polynomial. For example, a third operation unit calculates a third remainder by dividing α3x3+α0 by the generator polynomial. The result of adding the first to third remainders yields the derived FEC.
The FEC encoding units 6A-1 to 6A-n may be provided in the network-side IF unit 5A of the transfer device 10A on the transmission side. Moreover, the FEC decoding units 6B-1 to 6B-n may be provided in the network-side IF unit 5B of the transfer device 10B on the receiving side. The FEC encoding units and the FEC decoding units may be provided in any of the client-side IF unit 1A and the network-side IF unit 5A in the transfer device 10A of the transmission side, or the client-side IF unit 1B and the network-side IF unit 5B of the transfer device 10B on the receiving side.
The transfer system 100 may be an OTN which carries out data transmission with OTN frames. The transfer system 100 may carry out data transmission with frames from WiMAX (trademark) which is a broadband wireless communication standard conforming to IEEE 802.16 or with frames from DVB (trademark)-x which is a digital television broadcasting standard. The transfer system 100 may carry out data transmission with frames of a broadband wireless access network standard based on the European Telecommunications Standards Institute-Broadband Radio Access Network (ETSI-BRAN), or with frames of the Consultative Committee for Space Data Systems (CCSDS) which is a space data system.
All of or a portion of the constituent elements in each of the illustrated devices may be functionally or physically distributed or integrated in arbitrary units in accordance with the various loads or usage conditions and the like.
All of or arbitrary portions of the various functional processes carried out by the devices may be executed by a central processing unit (CPU). All of or arbitrary portions of the various processing functions carried out by the devices may be executed by a network processor (NP), a microprocessing unit (MPU), a microcontroller unit (MCU), or by a microcomputer such as an ASIC or a FPGA. All of or arbitrary portions of the various processing functions may also be executed on a program that executes analysis with a CPU (or a microcomputer such as an MPU or MCU), or on hardware based on wired logic. For example, a program executed by a CPU or a microcomputer may be stored in a memory.
All examples and conditional language recited herein are intended for pedagogical purposes to aid the reader in understanding the invention and the concepts contributed by the inventor to furthering the art, and are to be construed as being without limitation to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiment of the present invention has been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
Number | Date | Country | Kind |
---|---|---|---|
2015-133786 | Jul 2015 | JP | national |