WO2010146715A1 - データ転送方法、コード変換回路及び装置 - Google Patents

データ転送方法、コード変換回路及び装置 Download PDF

Info

Publication number
WO2010146715A1
WO2010146715A1 PCT/JP2009/061235 JP2009061235W WO2010146715A1 WO 2010146715 A1 WO2010146715 A1 WO 2010146715A1 JP 2009061235 W JP2009061235 W JP 2009061235W WO 2010146715 A1 WO2010146715 A1 WO 2010146715A1
Authority
WO
WIPO (PCT)
Prior art keywords
character
data
bit
control
circuit
Prior art date
Application number
PCT/JP2009/061235
Other languages
English (en)
French (fr)
Inventor
誠之 岡田
Original Assignee
富士通株式会社
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by 富士通株式会社 filed Critical 富士通株式会社
Priority to KR1020117030355A priority Critical patent/KR101283844B1/ko
Priority to CN200980159910.1A priority patent/CN102460974B/zh
Priority to JP2011519392A priority patent/JP5382117B2/ja
Priority to PCT/JP2009/061235 priority patent/WO2010146715A1/ja
Priority to EP09846208A priority patent/EP2445112A4/en
Publication of WO2010146715A1 publication Critical patent/WO2010146715A1/ja
Priority to US13/312,462 priority patent/US8723702B2/en

Links

Images

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M7/00Conversion of a code where information is represented by a given sequence or number of digits to a code where the same, similar or subset of information is represented by a different sequence or number of digits
    • H03M7/14Conversion to or from non-weighted codes
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus

Definitions

  • the present invention relates to a data transfer method, a code conversion circuit, and an apparatus.
  • a relatively low-speed parallel data bus has been used for information transmission between large scale integrated circuits (LSIs) or between devices having LSIs.
  • LSIs large scale integrated circuits
  • the parallel data bus allows easy coupling between LSIs or devices, it is difficult to improve the information transmission capability due to skew generated between signals. Therefore, in recent years, a relatively high-speed serial bus has been used for coupling between LSIs or devices.
  • PCI Express Peripheral Component Interconnect Express Express
  • 8B10B method a coding method called 8B10B method is adopted for the purpose of enabling high-speed serial transmission (for example, Patent Document 1).
  • This 8B10B system is adopted not only by PCI Express but also by Ethernet, Fiber Channel, IEEE 1394, and the like.
  • the 8B10B system is roughly divided into the following two features.
  • D characters shown in FIG. 1 and 12 types of control characters called K characters shown in FIG. 2 are multiplexed to make a lookup table LUT of 3 bits and 5 bits. Is converted into a 10-bit symbol code and transmitted.
  • FIG. 1 shows an example in which a 10-bit symbol code is output using a lookup table LUT based on an 8-bit D character, K character, control character valid signal, and disparity value.
  • FIG. 2 shows the code, symbol, name and meaning of the K character.
  • the 10-bit symbol since it is defined that only a maximum of 5 consecutive bit values appear in a 10-bit symbol, the 10-bit symbol always includes at least one bit value transition, Clock recovery at the receiving device is facilitated.
  • the transition of the bit value means that the bit value transitions from 0 to 1 or from 1 to 0.
  • the conventional 8B10B system also has a disadvantage due to the use of the lookup table LUT for data conversion. That is, since the circuit amount of the lookup table LUT used for conversion is relatively large, the delay time becomes relatively large. Specifically, since conversion from 8 bits to 10 bits (and vice versa) requires a conversion table of 3 bits and 5 bits, the delay time becomes relatively large.
  • 8-bit data is divided into 3 bits and 5 bits, and converted into 10-bit symbols using a loop-up table LUT, so that the error resistance deteriorates.
  • a 1-bit error occurs in the transmission path, a maximum 4-bit error will occur when a 10-bit symbol is returned to 8-bit data.
  • FIG. 3 is a diagram for explaining the data flow of the serial bus including the 8B10B code conversion circuit.
  • 8-bit width parallel data is converted into a 10-bit symbol code by the 8B10B code conversion circuit 2.
  • This symbol code is transmitted between the transmission side apparatus 1 and the reception side apparatus 3 via the serial bus 5.
  • the received 10-bit symbol code is converted into 8-bit received data by the 10B8B code conversion circuit 4 in the reverse procedure of the transmitting side device 1.
  • the transmission side data is 57 in hexadecimal (noted as binary 0101111 in FIG. 3).
  • the transmission side data is a D character
  • the result of conversion by the 8B10B conversion circuit 2 is 055 in hexadecimal (indicated as 0001010101 in binary in FIG. 3).
  • this 10-bit symbol code is transmitted via the serial bus 5 as a transmission path, a 1-bit error occurs and the value is changed to 255 in hexadecimal (bit 0 in FIG. 3 changes from 0 to 1).
  • this symbol data is converted by the 10B8B code conversion circuit 4 on the receiving side, the result is 49 in hexadecimal (indicated as 01001001 in binary in FIG. 3).
  • An object of the present invention is to provide a data transfer method, code conversion circuit, and apparatus that can reduce the bus overhead during serial transmission and can effectively use the bandwidth of the bus.
  • a data character having a bit width M (M is a natural number of 3 or more) and a control character having a bit width N (N is a natural number of 1 or more) are multiplexed, and the control character is effective.
  • a first circuit that multiplexes a data character having a bit width M (M is a natural number of 3 or more) and a control character having a bit width N (N is a natural number of 1 or more);
  • a second circuit for generating a symbol code having a larger bit width of M + 1 or N + 3 by adding a control character valid signal indicating whether or not the control character is valid to the output of the first circuit;
  • a code conversion circuit is provided in which the symbol code is converted from parallel data to serial data and output to a transmission line.
  • D character It is a figure explaining K character. It is a figure explaining the flow of data of a serial bus including an 8B10B code conversion circuit. It is a figure explaining the code conversion circuit in one Example of this invention. It is a figure explaining an example of the definition of a symbol code. It is a figure explaining an example of a definition of a control character. It is a figure explaining the other example of a definition of a control character. It is a block diagram which shows the information processing apparatus which can apply the data transfer method, code conversion circuit, and apparatus in an Example. It is a block diagram which shows the code conversion circuit in a transmission side apparatus, and the code conversion circuit in a reception side apparatus.
  • the multiplexed code can be efficiently AC transferred, the bus overhead during serial transfer can be reduced, and the bus bandwidth can be used effectively.
  • AC transfer refers to transferring data using a signal having AC characteristics.
  • the AC characteristics do not depend on the data character to be transferred with respect to the data transferred through the transmission path. For example, even if all bits of the data character are always 0 (All "0"), This symbol code always includes the values “0” and “1”, which means that it is guaranteed that at least one bit value transition occurs.
  • the data having AC characteristics means that the data transferred through the transmission path has such AC characteristics.
  • FIG. 5 is a diagram for explaining an example of the definition of the symbol code.
  • the symbol of the 10-bit symbol code is a D character.
  • the value of bit Bit0 of the D character is 0, and bits S_Bit1 to S_Bit8 indicate the values of bits D_Bit1 to D_Bit8 of the D character.
  • the control bit Cntl is 0 and the symbol code bit S_Bit0 is 1
  • the symbol of the 10-bit symbol code is a D character.
  • the value of bit Bit0 of the D character is 1
  • bits S_Bit1 to S_Bit8 indicate the values of bits D_Bit1 to D_Bit8 of the D character.
  • FIG. 6 is a diagram for explaining an example of the definition of the control character
  • FIG. 7 is a diagram for explaining another example of the definition of the control character.
  • 6 and 7 show a 10-bit symbol code CNtl, S_Bit0 to S_Bit8 corresponding to the name of each control character.
  • FIG. 6 shows the symbol codes of the control characters 1 to 128, and
  • FIG. 7 shows the symbol codes of the control characters 1 to 16.
  • the control character in FIG. 7 is more redundant than the control character in FIG.
  • bit width of the data character is 9
  • the integer value is not limited to bits, and may be an integer value of 3 bits width or more.
  • the bit width of the data character is M (M is a natural number of 3 or more) and the bit width of the control character is N (N is a natural number of 1 or more)
  • the bit width of the symbol code is either M + 1 or N + 3, whichever is larger It becomes the numerical value of.
  • one control bit CNtl is added to a 9-bit wide data character
  • one symbol code CNtl, S0 to S8 transferred by the serial bus has a 10-bit width.
  • 12 or more types of control characters are transferred at a maximum of 16 types in the case of FIG. 7, and 12 types or more are transferred at a maximum of 128 types in the case of FIG.
  • FIG. 7 shows an example in which a 4-bit control character is assigned to a 10-bit symbol code.
  • the control bit CNtl and the symbol code bit S_Bit0 are set to 1
  • the control characters K_Bit0 to K_Bit3 are assigned to the symbol code bits S_Bit1, S_Bit3, S_Bit5, and S_Bit7, respectively.
  • S_Bit2, S_Bit4, S_Bit6, and S_Bit8 values obtained by inverting the values of the symbol code bits S_Bit1, S_Bit3, S_Bit5, and S_Bit7 are set.
  • the receiving side apparatus compares the value of the control bit CNtl and the symbol code bit S_Bit0 according to FIG. If the comparison result does not match, the received symbol code is recognized as a data character, and bits S_Bit0 to S_Bit8 of the symbol code are output as bits D_Bit0 to D_Bit8 of the data character. If the comparison result is coincident and both the bits Cntl and S_Bit0 are 1, the receiving side apparatus recognizes that the received symbol code is a control character.
  • FIG. 8 is a block diagram showing an information processing apparatus to which the data transfer method, code conversion circuit, and apparatus according to this embodiment can be applied.
  • the information processing apparatus 20 shown in FIG. 8 includes a plurality of system boards 21-0 to 21-n (n is a natural number of 1 or more), a crossbar device 22, and a plurality of input / output (IO) devices 23-0 to 23-n, a crossbar bus 24, and an IO bus 25.
  • n is a natural number of 1 or more
  • IO input / output
  • each system board 21-0 to 21-n has the same structure, and a plurality of CPUs (Central Processing Units) 211-0 to 211-m (m is a natural number of 1 or more independent of n) A memory 212, a memory control device 213, a CPU bus 214, and a memory bus 215.
  • CPUs Central Processing Units
  • each CPU 211-0 to 211-m is connected to the memory control device 213 via the CPU bus 214
  • the memory 212 is connected to the memory control device via the memory bus 215. 213 is connected.
  • Each system board 21-0 to 21-n is connected to the crossbar device 22 via the crossbar bus 24, and each IO device 23-0 to 23-n is connected to the crossbar device 22 via the IO bus 25. Yes.
  • Data transfer between each of the CPUs 211-0 to 211-m and the memory control device 213 is performed by a code conversion circuit (not shown) in each of the CPUs 211-0 to 211-m and a code conversion circuit in the memory control device 213 ( (Not shown) via the CPU bus 214.
  • data transfer between the memory 212 and the memory control device 213 is performed between the memory 212 and a code conversion circuit (not shown) in the memory control device 213 by an IO bus. Via H.215.
  • data transfer between the memory control device 213 and the crossbar device 22 is performed by a code conversion circuit (not shown) in the memory control device 213 and a code conversion in the crossbar device 22. This is performed between the circuits (not shown) via the crossbar bus 24.
  • Data transfer between the crossbar device 22 and the IO devices 23-0 to 23-n is performed by a code conversion circuit (not shown) in the crossbar device 22 and the IO devices 23-0 to 23-n. This is performed between code conversion circuits (not shown) via the IO bus 25.
  • FIG. 9 is a block diagram showing a code conversion circuit in the transmission side device and a code conversion circuit in the reception side device.
  • the transmission side device and the reception side device are provided in the CPUs 211-0 to 211-m, the memory control device 213, the crossbar device 22, and the IO devices 23-0 to 23-n, respectively.
  • the transmission side device 31 is provided in the memory control device 213 in the system board 21-0 and the reception side device 32 is provided in the crossbar device 22.
  • the differential transmission path 33 such as a printed board wiring connecting the transmission side apparatus 31 and the reception side apparatus 32 is formed by the crossbar bus 24 in this example.
  • the transmission side device 31 includes a clock oscillator 311, a data transmission circuit 312, a scrambler 313 using an LFSR (Linear Feedback Shift Register), a transmission side control circuit 314, a transmission side code conversion circuit 315, A serial (parallel serial) conversion circuit 316 and an output driver 317 are included.
  • the clock output from the clock oscillator 311 is input to the data transmission circuit 312, the transmission side control circuit 314, the transmission side code conversion circuit 315, and the parallel / serial conversion circuit 31.
  • a data character from the scrambler 313, a control character from the transmission side control circuit 314, and a control character valid signal are input to the transmission side code conversion circuit 315.
  • the output of the transmission side control circuit 314 is also input to the data transmission circuit 312.
  • the parallel data output from the transmission side code conversion circuit 315 is converted into serial data by the parallel / serial conversion circuit 316 and input to the output driver 317.
  • the reception side device 32 includes an input receiver 321, a clock recovery circuit 322, a serial / parallel conversion circuit 323, a reception side code conversion circuit 324, a descrambler 325 using an LFSR, a reception side control circuit 324, and data A receiving circuit 327 is included.
  • the clock recovered from the serial data output from the input receiver 321 by the clock recovery circuit 322 is input to the serial / parallel conversion circuit 323, the reception side code conversion circuit 324, the reception side control circuit 326, and the data reception circuit 327.
  • the serial data output from the input receiver 321 is converted into parallel data by the serial / parallel conversion circuit 323 and input to the reception code conversion circuit 324.
  • the data character output from the receiving side code conversion circuit 324 is input to the descrambler 325.
  • the control character, control character valid signal, and data valid signal output from the reception side code conversion circuit 324 are input to the reception side control circuit 326.
  • Outputs of the descrambler 325 and the receiving side control circuit are input to the data receiving circuit 327.
  • the transmission side control circuit 314 controls the state of the entire transmission side device 31 including the transmission side code conversion circuit 315.
  • the reception side control circuit 326 controls the state of the entire reception side device 32 including the reception side code conversion circuit 324.
  • An example of the control operation of the control circuits 314 and 326 is an initialization process. In the initialization process, a process using a control character called a K character is performed. When initialization processing is necessary, a K character instructing initialization is sent from the transmission side device 31 to the reception side device 32, and an initialization sequence is executed. The K character is a control character necessary for this initialization sequence. Note that the initialization process itself is well-known, and is described in, for example, Non-Patent Document 1. Therefore, the detailed description of the initialization process is omitted in this specification.
  • the parallel-serial conversion circuit 316 of the transmission side device 31 converts the parallel data output from the transmission side code conversion circuit 315 into serial data.
  • the serial / parallel conversion circuit 323 on the reception side converts serial data received by the input receiver 321 into parallel data and inputs the parallel data to the reception side code conversion circuit 324.
  • the parallel / serial conversion circuit 316 and the serial / parallel conversion circuit 323 can be formed by, for example, a high-speed shift register.
  • the output driver 317, the input receiver 321, and the differential transmission path 33 that connects them are circuits that transfer serial data between the transmission-side device 31 and the reception-side device 32 (for example, between LSIs). Since the circuit itself for transferring serial data is well known, detailed description of the circuit for transferring serial data is omitted in this specification.
  • Parallel data is output from the data transmission circuit 312 in accordance with the transmission path valid signal from the transmission-side control circuit 314.
  • the parallel data is converted into random numbers by the scrambler 313 and supplied to the transmission side code conversion circuit 315 as data characters.
  • the transmission side control circuit 314 outputs the control character
  • the transmission side control circuit 314 supplies the control character encoded with the control character valid signal to the transmission side code conversion circuit 315.
  • the scrambler 313 is installed for the purpose of diffusing the frequency component of electromagnetic radiation noise and facilitating EMI countermeasures. More specifically, when the D character to be transferred is a continuation of a specific value, for example, a continuation of a value “0” and a value “1”, a transmission circuit having no scrambler, Therefore, electromagnetic radiation noise having a specific frequency component is likely to be generated. Such noise generally tends to adversely affect other devices.
  • the scrambler 313 has the effect of making it difficult to generate electromagnetic radiation noise having a specific frequency component by converting it into a pseudo-random number even if the D character has the same continuous value, and is installed for this purpose. .
  • the serial data output from the parallel-serial conversion circuit 316 is input to the reception side device 32 via the output driver 317 and the differential transmission path 33.
  • the input receiver 321 outputs the received serial data to the clock recovery circuit 322 and the serial / parallel conversion circuit 323.
  • the differential transmission line 33 is used in FIG. 9, it goes without saying that a transmission line other than the differential transmission line 33 may be used.
  • the clock recovery circuit 322 includes a PLL (Phase Locked Loop) circuit, detects an edge of bit transition that exists at least once in the symbol data, and synchronizes the internal PLL circuit to recover the reception clock. Thus, in order to regenerate the reception clock, it is necessary to have a bit transition in the symbol data.
  • the method of recovering the reception clock in this way is called CDR (Clock Data Recovery) or embedded clock, and is a technique generally used in high-speed serial transfer.
  • the serial / parallel conversion circuit 323 converts the serial data from the input receiver 321 into a symbol code (parallel data) based on the regenerated reception clock and outputs it to the reception side code conversion circuit 324.
  • the reception-side code conversion circuit 324 detects the symbol type by decoding the symbol code, and generates a data character or control character and each valid signal. That is, the receiving side code conversion circuit 324 generates a data character and a data valid signal, or a control character and a control character valid signal.
  • the data character is output to the descrambler 325, and the control character, the control character valid signal, and the data valid signal are output to the receiving side control circuit 326.
  • an error detection signal When decoding the symbol code, an error detection signal may be obtained by detecting a specific error pattern called a symbol error. In this case, the error detection signal may be notified to the reception side control circuit 326 together with the data character or control character valid signal.
  • the descrambler 325 cancels the randomization of the data character using the LFSR and outputs the data character to the data receiving circuit 327.
  • the reception-side control circuit 326 performs each process according to the control character and the error signal, but these processes themselves are not directly related to the gist of the present embodiment, so in this specification, the details of these processes are described. Description of is omitted.
  • K characters can be defined as in the case of the conventional 8B10B system, and in the case of FIG. 7, up to 16 types of K characters can be defined. Therefore, 8B10B control can be used for link layer control such as physical layer control and DLLP. Therefore, the control circuits 314 and 326 can be designed based on the control circuit used in the 8B10B system.
  • the transmission side code conversion circuit 315 will be described with reference to FIG. 10, FIG. 11, and FIG.
  • the bit width of the data character is 9 bits
  • the bit width of the control character is 4 bits
  • the bit width of the symbol code is 10 bits
  • the data character, control character, and symbol code are those bits.
  • the width is not limited.
  • the transmission side code conversion circuit 315 selects one of the data character and the control character and multiplexes it with the control character valid signal, so that the data character and the control character can be separated within the reception side device 32. Embed the pattern in the symbol code. This particular bit pattern also guarantees the occurrence of bit transitions for clock recovery.
  • FIG. 10 is a diagram for explaining input / output of the transmission side code conversion circuit 315.
  • the input of the transmission side code conversion circuit 315 includes a 9-bit data character, a 4-bit control character, and a control character valid signal.
  • the output of the transmission side code conversion circuit 315 is 10-bit parallel data, and this parallel data is input to the parallel / serial conversion circuit 316 as a symbol code.
  • FIG. 11 is a circuit diagram showing an example of the configuration of the transmission side code conversion circuit 315.
  • the transmission side code conversion circuit 315 includes inverter circuits 41-1 to 41-5 and 2-to-1 multiplexers (2: 1 MUX: Multiplexer) 42-1 to 42-10 connected as shown in FIG.
  • Kcode_ENBL_in indicates a control character valid signal, and indicates that the control character is valid when the logic is on (for example, high level).
  • Kcode_in [0: 3] indicates a control character input
  • Dcode_in [0: 8] indicates a data character input.
  • Output Cntl Bit and Output Bit [0: 8] indicate a 10-bit symbol code output.
  • Each multiplexer 42-1 to 42-10 selects and outputs the control character input Kcode_in side input when the control character valid signal Kcode_ENBL_in is on (ON), and the data character input Dcode_in side when it is off (OFF). Select the input of and output.
  • a value “1” is output to the Output Cntl Bit and Output Bit [0].
  • This value “1” is a value for notifying the receiving side that the symbol code output is a control character. Further, the value of the control character input Kcode_in [0] is output to Output Bit [1], and the value obtained by inverting the value of the control character input Kcode_in [0] by the inverter circuit 41-2 is output to Output Bit [2].
  • the value of the control character input Kcode_in [1] is output Bit [3]
  • the value of the control character input Kcode_in [1] is inverted by the inverter circuit 41-3
  • Output Bit [5] is output Bit [4].
  • Output Bit [6] is the value of control character input Kcode_in [2] inverted by inverter circuit 41-4
  • Control Bit is input to Output Bit [7]
  • a value obtained by inverting the value of the control character input Kcode_in [3] by the inverter circuit 41-5 is output to the value of Kcode_in [3] and Output Bit [8].
  • FIG. 12 is a diagram showing a truth table for explaining the operation of the transmission side code conversion circuit 315, and shows the logical operation conditions of the transmission side code conversion circuit 315 of FIG.
  • ⁇ Kcode_in [0] is the inverted value of Kcode_in [0]
  • ⁇ Kcode_in [1] is the inverted value of Kcode_in [1]
  • ⁇ Kcode_in [2] is the inverted value of Kcode_in [2] Value
  • ⁇ Kcode_in [3] indicates the inverted value of Kcode_in [3]
  • ⁇ Dcode_in [0] indicates the inverted value of Dcode_in [0].
  • the transmission side code conversion circuit 315 can reduce the circuit amount and can be realized at low cost as compared with the conventional method using the lookup table. Furthermore, since the delay time of the circuit required for the conversion is the total value of the delay times of the inverter circuit and the 2-to-1 multiplexer (or selector), the delay time can be greatly reduced as compared with the conventional method. As a result, it can be seen that a high-speed conversion operation is possible.
  • the bit width of the data character is 9 bits
  • the bit width of the control character is 4 bits
  • the bit width of the symbol code is 10 bits as in the case of the transmission side code conversion circuit 315.
  • the character, control character, and symbol code are not limited to these bit widths.
  • the bit width of the data character, control character, and symbol code in the reception side code conversion circuit 324 needs to be the same as the bit width in the transmission side code conversion circuit 315.
  • the receiving side code conversion circuit 324 detects a specific bit pattern embedded in the symbol code, and separates the data character and the control character multiplexed based on the specific bit pattern.
  • the receiving side code conversion circuit 324 also detects a specific error pattern called a symbol error.
  • FIG. 13 is a diagram for explaining input / output of the reception side code conversion circuit 324.
  • the input of the receiving side code conversion circuit 324 is a symbol code from the serial / parallel conversion circuit 323.
  • the output of the code conversion circuit 324 on the receiving side is a 9-bit data character, a 4-bit control character, a data character valid signal, a control character valid signal, and an error detection signal obtained by detecting a symbol error. Including.
  • FIG. 14 is a circuit diagram showing an example of the configuration of the receiving side code conversion circuit 324.
  • the reception side code conversion circuit 324 includes a negative exclusive OR (ENOR) circuit 51, a negative logical sum (NOR) circuit 52, and an exclusive logical sum (EOR) circuit 53- connected as shown in FIG. 1 to 53-4, logical product (AND) circuits 54-1 to 54-5, and logical sum (OR) circuit 55.
  • “Input Cntl Bit” and “Input Bit [0: 8]” are symbol code inputs having a total width of 10 bits
  • “Dcode_out [0: 8]” is a data character output
  • “Kcode_out [0: 3]” is a control character output.
  • Dcode_ENBL_out is a data character valid signal indicating that Dcode_out [0: 8] is valid
  • Kcode_ENBL_out is a control character valid signal indicating that Kcode_out [0: 3] is valid
  • Symbol_ERROR_out is defined by the received symbol code It is an error detection signal indicating that the code is other than. When this error detection signal is on (for example, high level), all other output signals output from the reception side code conversion circuit 324 are ignored by the reception side control circuit 326.
  • the symbol code input bits Input Cntl Bit and Input Bit [0] are decoded according to the definition of the symbol code.
  • the ENOR circuit 51 in FIG. 14 detects this mismatch and turns on the data character valid signal Dcode_ENBL_out. If both the bits Input Cntl Bit and Input Bit [0] are “1”, this state is detected by the AND circuit 54-1 in FIG. 14, and the control character valid signal Kcode_ENBL_out is turned on.
  • control character valid signal Kcode_ENBL_out when the control character valid signal Kcode_ENBL_out is ON, that is, when the received symbol code is a control character, Input Bit [1] and Input Bit [2], Input Bit [3] and Input Bit [4 ], EOR circuits 53-1 to 53-4 check whether or not Input Bit [5] and Input Bit [6], and Input Bit [7] and Input Bit [8] are inconsistent. If a mismatch is detected in any of the EOR circuits 53-1 to 53-4 as a result of this inspection, a symbol code error is detected and output via the AND circuits 54-2 to 54-5 and the OR circuit 55. The error detection signal Symbol_ERROR_out is turned on.
  • the value of the symbol input bit Input Bit [0: 8] is the value of the data character bit Dcode_out [0: 8], and the value of the bit Input Bit [1,3,5,7] is directly controlled.
  • FIG. 15 is a diagram showing a truth table for explaining the operation of the reception side code conversion circuit 324, and shows the logical operation conditions of the reception side code conversion circuit 324 of FIG.
  • the reception side code conversion circuit 324 can reduce the circuit amount and can be realized at a low cost as compared with the conventional method using the lookup table. Furthermore, since the delay time of the circuit required for the conversion is the maximum value of the delay times of the ENOR circuit, the NOR circuit, the EOR circuit, the AND circuit, and the OR circuit, the delay time is greatly reduced as compared with the conventional method. As a result, it can be seen that a high-speed conversion operation is possible.
  • FIG. 16 is a block diagram showing a code conversion circuit in the transmission side apparatus and a code conversion circuit in the reception side apparatus in another embodiment of the present invention.
  • a plurality of serial interfaces may be combined to form one logical interface.
  • a single serial interface is called in units called lanes, but in this PCI Express specification, in addition to the 1 lane configuration, 2 lanes, 4 lanes, 8 lanes, 12 lanes, and 16 lanes , And 32 lane configurations are defined.
  • a single serial interface is referred to as one lane as in the PCI Express specification.
  • FIG. 16 shows an example in which one serial interface circuit including a code conversion circuit is combined to form one logical interface. That is, in FIG. 16, the transmission side device 131 and the reception side device 132 connected by the transmission path 133 each have an 8-lane configuration.
  • the transmission side device 131 includes a byte / bit separation circuit 61, transmission side code conversion circuits 62-0 to 62-7, and output units 63-0 to 63-7. Since the configurations of the lanes # 0 to # 7 in the transmission-side apparatus 131 are the same, only the configuration of the lane # 0 is shown.
  • the transmission side code conversion circuits 62-0 to 62-7 have the same configuration as the transmission side code conversion circuit 315 shown in FIG.
  • the output unit 63-0 includes a parallel-serial conversion circuit 316 and an output driver 317 having the same configuration as that in FIG.
  • the reception side device 132 includes input units 71-0 to 71-7, reception side code conversion circuits 72-0 to 72-7, and a bit-to-byte assembly circuit 73. Since the configurations of the lanes # 0 to # 7 in the reception side device 132 are the same, only the configuration of the lane # 0 is shown.
  • the input unit 71-0 includes an input receiver 321 and a serial-parallel conversion circuit 323 having the same configuration as that in FIG.
  • the receiving side code conversion circuits 72-0 to 72-7 have the same configuration as the receiving side code conversion circuit 324 shown in FIG.
  • transmission-side control circuit and the reception-side control circuit can use the same configurations as the transmission-side control circuit 314 and the reception-side control circuit 326 shown in FIG. 9, and FIG. 16 shows these control circuits. And description is abbreviate
  • the separation circuit 51 and the assembly circuit 73 are circuits necessary for a serial interface circuit composed of a plurality of lanes.
  • the separation circuit 51 has a function of receiving a 72-bit width parallel data bus from a data transmitter (not shown) and supplying parallel data to each lane every 9 bits.
  • the assembling circuit 73 has a function reverse to that of the separating circuit, that is, a function of assembling 9-bit parallel data from each lane into a 72-bit parallel data bus and transmitting it to a data receiver (not shown). .
  • FIG. 17 is a diagram illustrating an example of bit allocation for each lane.
  • FIG. 17 shows a bit definition for each lane of each bit of the 72-bit parallel data bus by the separation circuit 61.
  • the vertical axis indicates the symbol code (in this example, 10-bit width) transferred in each lane
  • the horizontal axis indicates each lane number, that is, the serial bus number.
  • bit 00 of the 72-bit parallel data bus is represented as D00.
  • lane number # 0 is a combination of one control bit CNtl and data bits D00 to D08 to form a set of symbol codes.
  • a 72-bit width can be secured as the effective data bus width. Note that one set of control bits, CNtl, must be defined for a set of symbol codes, but it is arbitrary which bit of 72-bit parallel data is assigned to which lane, and data bits other than those shown in FIG. 17 are assigned. Needless to say.
  • FIG. 18 is a diagram for explaining an example of bit allocation of a 72-bit parallel data bus.
  • FIG. 18 shows the definition of data of a 72-bit parallel data bus in the transmission side device 131 and the reception side device 132.
  • bits Bit0 to Bit7 (Bit0 to 7) of the 72-bit parallel data bus are defined as a data byte (Byte) Byte0.
  • the bits Bit64 to Bit71 (Bit64 to 71) of the 72-bit parallel data bus are defined as redundant bits [0: 7].
  • DIMM Dual Inline Memory Module
  • CB Check Bit
  • ECC error correction code
  • the serial interface circuit having the code conversion circuit as in the present embodiment it is possible to handle 72-bit width data in the case of the 8-lane configuration, and therefore, without changing the format of the DIMM data, It can be output to the serial interface bus as it is. Further, since the 1-bit error of the symbol code on the transmission path is directly recognized as a 1-bit error when converted to a D character, the error can be recovered by ECC, and the reliability can be further improved.
  • an 8-bit data character is converted into a 10-bit symbol for transmission, resulting in a 25% bus overhead.
  • a 1-bit control bit is added to convert a 9-bit data character into a 10-bit symbol, so that the bus overhead is 11%.
  • 20% of the bandwidth is overhead in the conventional 8B10B system, but 10% overhead in each of the above embodiments, and the overhead is reduced by 10% compared to the conventional 8B10B system.
  • the bandwidth of the bus can be used effectively.
  • each of the transmission side device and the reception side device can use a control circuit similar to the conventional one.
  • a code conversion circuit having an AC characteristic necessary for clock recovery can be provided. That is, one symbol (10-bit width in this example) always includes at least one bit value transition (transition from 0 to 1, or from 1 to 0). More specifically, when transmitting a data character, the values of the symbol code bits Cntl Bit and S_Bit0 are always exclusive, and when transmitting a control code, at least the symbol code Bits S_Bit1 and S_Bit2 are always exclusive values. Thus, at least one bit transition is always included in one symbol, and the clock recovery can be performed on the receiving device side using the bit value transition timing as in the conventional case.
  • the run length is 5 bits at the maximum, whereas the run length is 9 bits in each of the above embodiments.
  • This run length is closely related to the clock recovery function, and it is considered that when the run length is extended, the clock recovery is adversely affected.
  • the receiving side device can stably Can regenerate the clock.
  • each bit of the D character can be used by being inverted, or can be used as it is as a bit of the symbol code, so it is necessary to use a conventional lookup table. There is no. Thereby, it is possible to reduce the circuit amount accompanying code conversion, to reduce the cost, and further to reduce the delay time.
  • a 1-bit error on the transmission line is recognized as a 5-bit error of a data character at the maximum.
  • the data characters are assigned to the symbol codes in a substantially unchanged form without using a lookup table.
  • the 1-bit error generated in the transmission path is recognized as a data character by the receiving apparatus as it is in the form of 1-bit error.
  • the chance of correcting the error is increased and the error resistance can be improved.
  • all bits on the transmission line are 0 (All ”). 0 ") or a burst error in which all bits are 1 (All" 1 ”) can be detected.
  • the above embodiments provide a kind of 9B10B system as compared to the conventional 8B10B system.

Abstract

 データ転送方法において、ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化すると共に、前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成し、前記シンボルコードをパラレルデータからシリアルデータに変換して伝送路へ出力することでデータ転送を行う。

Description

データ転送方法、コード変換回路及び装置
 本発明は、データ転送方法、コード変換回路及び装置に関する。
 従来、大規模集積回路(LSI:Large Scale Integrated circuit)間、又は、LSIを有する装置間の情報伝送には、比較的低速なパラレルデータバスが用いられていた。しかし、パラレルデータバスは、簡易にLSI間又は装置間を結合可能にするものの、信号間に発生するスキューのため情報伝送能力を向上することは難しかった。そこで、近年はLSI間又は装置間の結合に比較的高速なシリアルバスを用いるようになった。
 高速シリアル伝送を行う典型的な例として、PCI(Peripheral Component Interconnect)エクスプレス(以下、PCI Expressと言う)が知られている。このPCI Expressでは、高速シリアル伝送を可能にする目的で、8B10B方式と呼ばれるコード化方式が採用されている(例えば、特許文献1)。この8B10B方式は、PCI Expressの他に、イーサーネット(Ethernet)、ファイバチャネル(Fiber Channel)、IEEE 1394等で採用されている。
 8B10B方式は、大きく分けて以下の2つの特徴を有する。第1に、図1に示すDキャラクタと呼ばれる256種類の8ビットのデータキャラクタと、図2に示す12種類のKキャラクタと呼ばれる制御キャラクタを多重化して、3ビット及び5ビットのルックアップテーブルLUTを用いて10ビットのシンボルコードに変換して伝送する。図1は、一例として8ビットのDキャラクタ、Kキャラクタ、制御キャラクタ有効信号、及びディスパリティ値に基づいてルックアップテーブルLUTを用いて10ビットのシンボルコードを出力する場合を示す。図2は、Kキャラクタのコード、シンボル、名称及び意味を示す。第2に、10ビットシンボル中では最大で5ビットの連続するビット値しか出現しない様に定義されているので、10ビットシンボル中には必ず1回以上のビット値の遷移が含まれており、受信側装置でのクロック再生が容易になる。尚、ビット値の遷移とは、ビットの値が0から1、又は、1から0に遷移することを意味する。
 しかし、従来の8B10B方式では、シリアル転送時のオーバーヘッドが比較的大きいため、シリアルバスの帯域幅を比較的多く消費してしまう。具体的には8ビットのデータキャラクタを10ビットに変換するので、帯域幅が25%増加してしまう。
 又、従来の8B10B方式では、データの変換にルックアップテーブルLUTを用いることに起因する不都合もある。つまり、変換に用いるルックアップテーブルLUTの回路量が比較的大きいため、遅延時間が比較的大きくなってしまう。具体的には、8ビットから10ビット(及びその逆)への変換には3ビット及び5ビットの変換テーブルが必要であるため遅延時間が比較的大きくなってしまう。
 更に、従来の8B10B方式では、8ビットデータを3ビットと5ビットに分割し、ルップアップテーブルLUTを用いて10ビットシンボルに変換しているため、エラー耐性が悪化してしまう。つまり、伝送路で1ビットのエラーが発生した場合、10ビットシンボルを8ビットデータに戻した時に最大で4ビットエラーが発生してしまう。
 図3は、8B10Bコード変換回路を含む、シリアルバスのデータの流れを説明する図である。送信側装置1では、8ビット幅のパラレルデータを8B10Bコード変換回路2により10ビットシンボルコードに変換する。このシンボルコードは、シリアルバス5を介して送信側装置1と受信側装置3との間で伝送される。受信側装置3では、受信した10ビットのシンボルコードを10B8Bコード変換回路4により送信側装置1とは逆の手順で8ビットの受信データに変換する。
 説明の便宜上、送信側データは16進数で57(図3中2進数で01010111と表記)であるものとする。この送信側データがDキャラクタの場合、8B10B変換回路2で変換した結果は、16進数で055(図3中2進数で0001010101と表記)になる。この10ビットシンボルコードが伝送路であるシリアルバス5を介して伝送されている際に1ビットエラーが発生して16進数で255に変化(図3中ビット0が0から1に変化)したものと仮定すると、このシンボルデータが受信側の10B8Bコード変換回路4で変換された結果は、16進数で49(図3中2進数で01001001と表記)になる。送信側データである2進数01010111と受信側データである2進数01001001を比較すると、4ビットが変化していることがわかる。即ち、シリアルバス5での1ビットのエラーが送受信データで見ると4ビットエラーになり、エラービットが増加する。
特開昭59-10056号公報 特開2004-80300号公報 特表2006-502679号公報 特開2007-32526号公報
PCI Express Base Specification Revision 2.0, PCI-SIG, December 20, 2006
 従来の8B10B方式を用いたデータ転送方法では、シリアル伝送時のバスのオーバーヘッドを減少させ、バスの帯域幅を有効利用することは難しいという問題があった。
 そこで、本発明は、シリアル伝送時のバスのオーバーヘッドを減少させ、バスの帯域幅を有効利用することが可能なデータ転送方法、コード変換回路及び装置を提供することを目的とする。
 本発明の一観点によれば、ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化すると共に、前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成し、前記シンボルコードをパラレルデータからシリアルデータに変換して伝送路へ出力することでデータ転送を行うデータ転送方法が提供される。
 本発明の一観点によれば、ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化する第1の回路と、前記第1の回路の出力に前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成する第2の回路を備え、前記シンボルコードはパラレルデータからシリアルデータに変換されて伝送路へ出力されるコード変換回路が提供される。
 本発明の一観点によれば、ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化する第1の回路と、前記第1の回路の出力に前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成する第2の回路を有するコード変換回路と、前記シンボルコードをパラレルデータからシリアルデータに変換して伝送路へ出力する変換回路を備えた装置が提供される。
 開示のデータ転送方法、コード変換回路及び装置によれば、シリアル伝送時のバスのオーバーヘッドを減少させ、バスの帯域幅を有効利用することが可能となる。
Dキャラクタを説明する図である。 Kキャラクタを説明する図である。 8B10Bコード変換回路を含む、シリアルバスのデータの流れを説明する図である。 本発明の一実施例におけるコード変換回路を説明する図である。 シンボルコードの定義の一例を説明する図である。 制御キャラクタの定義の一例を説明する図である。 制御キャラクタの定義の他の例を説明する図である。 実施例におけるデータ転送方法、コード変換回路及び装置を適用可能な情報処理装置を示すブロック図である。 送信側装置内のコード変換回路と受信側装置内のコード変換回路を示すブロック図である。 送信側コード変換回路の入出力を説明する図である。 送信側コード変換回路の構成の一例を示す回路図である。 送信側コード変換回路の動作を説明するための真理値表を示す図である。 受信側コード変換回路の入出力を説明する図である。 受信側コード変換回路の構成の一例を示す回路図である。 受信側コード変換回路の動作を説明するための真理値表を示す図である。 本発明の他の実施例における送信側装置内のコード変換回路及び受信側装置内のコード変換回路を示すブロック図である。 レーン毎のビット割り当ての一例を説明する図である。 72ビットパラレルデータバスのビット割り当ての一例を説明する図である。
 開示のデータ転送方法、コード変換回路及び装置では、シリアルパラレル変換を伴うシリアル転送において所望の転送効率(又は、伝送効率)を実現するために、転送(又は、送信)するキャラクタに対して制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加することでデータキャラクタと制御キャラクタを多重化して転送(又は、送信)する。
 データキャラクタを転送する場合は、データキャラクタの所定のビットの反転値を制御キャラクタ有効信号ビットの値とし、制御キャラクタを転送する場合は、制御キャラクタ有効信号ビットとデータキャラクタの所定のビットを同一の値とし、これら以外のビットで制御キャラクタを表現する。
 これにより、多重化されたコードを効率良くAC転送することができ、シリアル転送時のバスのオーバーヘッドを減少させ、バスの帯域幅を有効利用することが可能となる。
 尚、AC転送とは、AC特性を持った信号を使用してデータを転送することを言う。又、AC特性とは、伝送路を転送されるデータに関して、転送されるデータキャラクタに依存せず、例えば常時データキャラクタの全てのビットが0(All"0")であっても、コード変換後のシンボルコードには必ず値「0」と値「1」が含まれており、必ず1回以上のビット値の遷移が発生することが保証されていることを言う。つまり、データがAC特性を有するとは、伝送路を転送されるデータがこのような交流特性を持っていることを言う。
 以下に、開示のデータ転送方法、コード変換回路及び装置の各実施例を図面と共に説明する。
 図4は、本発明の一実施例におけるコード変換回路を説明する図である。図4に示すコード変換回路11には、例えば転送データ(又は、送信データ)としての9ビットのデータキャラクタ(Dキャラクタ)D0~D8、4ビットの制御キャラクタ(Kキャラクタ)K0~K3、及び制御キャラクタ有効信号が入力される。又、コード変換回路11からは、10ビットのシンボルコードCntl,S0~S8が出力される。尚、以下の説明では、便宜上DキャラクタのビットBit0をD0又はD_Bit0、KキャラクタのビットBit0をK0又はK_Bit0、シンボルコードのビットBit0をS0又はS_Bit0と表現する。
 図5は、シンボルコードの定義の一例を説明する図である。コントロールビットCntlが1でシンボルコードのビットS_Bit0が0の場合、10ビットのシンボルコードのシンボルは、Dキャラクタである。この場合、DキャラクタのビットBit0の値は0であり、ビットS_Bit1~S_Bit8でDキャラクタのビットD_Bit1~D_Bit8の値を示す。コントロールビットCntlが0でシンボルコードのビットS_Bit0が1の場合、10ビットのシンボルコードのシンボルは、Dキャラクタである。この場合、DキャラクタのビットBit0の値は1であり、ビットS_Bit1~S_Bit8でDキャラクタのビットD_Bit1~D_Bit8の値を示す。コントロールビットCntlが1でシンボルコードのビットS_Bit0が1の場合、10ビットのシンボルコードのシンボルはKキャラクタである。この場合、ビットS_Bit2~S_Bit8で最大128種類のコードを表現し、ビットS_Bit1はビットS_Bit2の反転値を示す。又、コントロールビットCntlが0でシンボルコードのビットS_Bit0が0の場合、コードが無効(Invalid)シンボルであることを示す。
 図6は、制御キャラクタの定義の一例を説明する図であり、図7は、制御キャラクタの定義の他の例を説明する図である。図6及び図7は、各制御キャラクタの名称に対応する10ビットのシンボルコードCntl,S_Bit0~S_Bit8を示す。図6は制御キャラクタ1~128のシンボルコードを示し、図7が制御キャラクタ1~16のシンボルコードを示す。図7の制御キャラクタは、図6の制御キャラクタに比べると冗長性が高められている。
 図4~図7では、一例として9ビット幅(又は、ビット長)のデータキャラクタと、4ビット幅(又は、ビット長)の制御キャラクタを転送するものとしているが、データキャラクタのビット幅は9ビットに限定されず、3ビット幅以上の整数値であれば良い。データキャラクタのビット幅をM(Mは、3以上の自然数)制御キャラクタのビット幅をN(Nは1以上の自然数)とした場合、シンボルコードのビット幅はM+1、或いは、N+3の何れか大きい方の数値となる。
 図4~図7の例では、9ビット幅のデータキャラクタに対して1ビットのコントロールビットCntlを付加するので、シリアルバスで転送される1つのシンボルコードCntl,S0~S8は10ビット幅となる。更に、制御キャラクタは、PCI Express仕様と同様に図7の場合であれば12種類以上、最大で16種類転送され、図6の場合であれば12種類以上、最大で128種類転送される。
 送信側装置においてデータキャラクタを転送する場合は、図5に定義された通り、データキャラクタの所定のビットD_Bit0の値の反転値をコントロールビットCntlの値とする。制御キャラクタを送信する場合は、コントロールビットCntlとデータキャラクタの所定のビットD_Bit0の位置を同一とし、所定のビットD_Bit0以外のビットで制御キャラクタを表現する。図5では、制御キャラクタを送信する場合はコントロールビットCntlとシンボルコードのビットS_Bit0の値を共に1に設定しているが、両方のビットの値を0にしても良いことは言うまでもない。制御キャラクタのビットK_Bit0の反転値をシンボルコードのビットS_Bit1の値とし、S_Bit 2から S_Bit 8の7ビットで128種類の制御キャラクタを表現する。
 図6に示す制御キャラクタの定義の場合、最大で128種類の制御キャラクタを定義可能である。実際に必要とする制御キャラクタの種類が128種類より大幅に少ない場合、例えばPCI Expressの様に12種類しか必要としない場合、図7に示す制御キャラクタの定義のように冗長ビットを設けることで耐故障性を向上することも可能である。

 図7は、4ビットの制御キャラクタを10ビットのシンボルコードにアサインした例を示す。図7の例では、コントロールビットCntlとシンボルコードのビットS_Bit0の値を1に設定し、制御キャラクタのK_Bit0からK_Bit3を夫々シンボルコードのビットS_Bit1,S_Bit3,S_Bit5,S_Bit7にアサインし、シンボルコードのビットS_Bit2,S_Bit4,S_Bit6,S_Bit8には夫々シンボルコードのビットS_Bit1,S_Bit3,S_Bit5,S_Bit7の値を反転した値をセットしている。
 
 一方、受信側装置においては、図5に従ってコントロールビットCntlとシンボルコードのビットS_Bit0の値を比較する。比較の結果が不一致であれば、受信したシンボルコードはデータキャラクタであると認識し、シンボルコードのビットS_Bit0からS_Bit8をデータキャラクタのビットD_Bit0からD_Bit8として出力する。又、比較の結果が一致であり、更に、両方のビットCntl,S_Bit0とも値が1であると、受信したシンボルコードは制御キャラクタであると受信側装置は認識する。
 図8は、本実施例におけるデータ転送方法、コード変換回路及び装置を適用可能な情報処理装置を示すブロック図である。図8に示す情報処理装置20は、複数のシステムボード21-0~21-n(nは1以上の自然数)、クロスバ装置22、複数の入出力(IO:Input and Output)装置23-0~23-n、クロスババス24、及びIOバス25を有する。図8の例では、各システムボード21-0~21-nは同じ構造を有し、複数のCPU(Central Processing Unit)211-0~211-m(mはnに依存しない1以上の自然数)、メモリ212、メモリ制御装置213、CPUバス214、及びメモリバス215を有する。各システムボード21-0~21-nにおいて、各CPU211-0~211-mは、CPUバス214を介してメモリ制御装置213に接続されており、メモリ212はメモリバス215を介してメモリ制御装置213に接続されている。各システムボード21-0~21-nは、クロスババス24を介してクロスバ装置22に接続されており、各IO装置23-0~23-nはIOバス25を介してクロスバ装置22に接続されている。
 各CPU211-0~211-mとメモリ制御装置213との間のデータ転送は、各CPU211-0~211-m内のコード変換回路(図示せず)とメモリ制御装置213内のコード変換回路(図示せず)の間で、CPUバス214を介して行われる。各システムボード21-0~21-nにおいて、メモリ212とメモリ制御装置213との間のデータ転送は、メモリ212とメモリ制御装置213内のコード変換回路(図示せず)の間で、IOバス215を介して行われる。各システムボード21-0~21-nにおいて、メモリ制御装置213とクロスバ装置22との間のデータ転送は、メモリ制御装置213内のコード変換回路(図示せず)とクロスバ装置22内のコード変換回路(図示せず)の間で、クロスババス24を介して行われる。又、クロスバ装置22と各IO装置23-0~23-nとの間のデータ転送は、クロスバ装置22内のコード変換回路(図示せず)と各IO装置23-0~23-n内のコード変換回路(図示せず)の間で、IOバス25を介して行われる。
 図9は、送信側装置内のコード変換回路と受信側装置内のコード変換回路を示すブロック図である。送信側装置及び受信側装置は、夫々CPU211-0~211-m、メモリ制御装置213、クロスバ装置22、及びIO装置23-0~23-n内に設けられる。ここでは説明の便宜上、送信側装置31がシステムボード21-0内のメモリ制御装置213に設けられたものであり、受信側装置32がクロスバ装置22に設けられたものであるものとする。従って、送信側装置31と受信側装置32を接続するプリント板配線等の差動型伝送路33は、この例ではクロスババス24により形成される。
 図9に示すように、送信側装置31は、クロック発振器311、データ送信回路312、LFSR(Linear Feedback Shift Register)を用いたスクランブラ313、送信側制御回路314、送信側コード変換回路315、並列直列(パラレルシリアル)変換回路316、及び出力ドライバ317を有する。クロック発振器311が出力するクロックは、データ送信回路312、送信側制御回路314、送信側コード変換回路315、及び並列直列変換回路31に入力される。送信側コード変換回路315には、スクランブラ313からのデータキャラクタと、送信側制御回路314からの制御キャラクタ及び制御キャラクタ有効信号が入力される。送信側制御回路314の出力は、データ送信回路312にも入力される。送信側コード変換回路315が出力するパラレルデータは、並列直列変換回路316によりシリアルデータに変換されて出力ドライバ317に入力される。
 一方、受信側装置32は、入力レシーバ321、クロック再生回路322、直列並列(シリアルパラレル)変換回路323、受信側コード変換回路324、LFSRを用いたデスクランブラ325、受信側制御回路324、及びデータ受信回路327を有する。クロック再生回路322により入力レシーバ321が出力するシリアルデータから再生されたクロックは、直列並列変換回路323、受信側コード変換回路324、受信側制御回路326、及びデータ受信回路327に入力される。入力レシーバ321が出力するシリアルデータは、直列並列変換回路323によりパラレルデータに変換されて受信コード変換回路324に入力される。受信側コード変換回路324が出力するデータキャラクタはデスクランブラ325に入力される。受信側コード変換回路324が出力する制御キャラクタ、制御キャラクタ有効信号、及びデータ有効信号は、受信側制御回路326に入力される。デスクランブラ325及び受信側制御回路の出力は、データ受信回路327に入力される。
 データ送信回路312及びデータ受信回路327は、例えばPCI Expressのデータリンク層に相当する。スクランブラ313及びデスクランブラ325は、転送データを乱数化することで差動型伝送路33で発生するEMI(Electro Magnetic Interference)を低減するために設けられているが、省略しても良い。
 送信側制御回路314は、送信側コード変換回路315を含む送信側装置31全体の状態を制御する。同様に、受信側制御回路326は、受信側コード変換回路324を含む、受信側装置32全体の状態を制御する。制御回路314,326の制御動作の一例として、初期化処理がある。初期化処理では、Kキャラクタと呼ばれる制御キャラクタを用いた処理が行われる。初期化処理が必要な場合は、送信側装置31から受信側装置32に対して初期化を指示するKキャラクタが送られ初期化シーケンスが実行される。Kキャラクタは、この初期化シーケンスに必要な制御キャラクタである。尚、初期化処理自体は周知であり、例えば非特許文献1に記載されているので、本明細書では初期化処理の詳細についての説明は省略する。
 送信側装置31の並列直列変換回路316は、送信側コード変換回路315から出力されたパラレルデータをシリアルデータに変換する。一方、受信側の直列並列変換回路323は、入力レシーバ321が受信したシリアルデータをパラレルデータに変換して受信側コード変換回路324に入力する。並列直列変換回路316及び直列並列変換回路323は、例えば高速シフトレジスタで形成可能である。
 出力ドライバ317、入力レシーバ321、及びこれらを接続する差動型伝送路33は、送信側装置31と受信側装置32の間(例えば、LSI間)でシリアルデータを転送する回路である。シリアルデータを転送する回路自体は周知であるため、本明細書ではシリアルデータを転送する回路の詳細についての説明は省略する。
 次に、送信側装置31から受信側装置32へのデータ転送を説明する。データ送信回路312からは、送信側制御回路314からの伝送路有効信号に応じてパラレルデータが出力される。パラレルデータは、スクランブラ313により乱数化されてデータキャラクタとして送信側コード変換回路315に供給される。送信側制御回路314が制御キャラクタを出力する場合は、送信側制御回路314が制御キャラクタ有効信号と共にコード化された制御キャラクタを送信側コード変換回路315に供給する。
 スクランブラ313は、電磁放射ノイズの周波数成分を拡散させ、EMI対策を取り易くすることが目的で設置される。より具体的には、転送するDキャラクタが特定の値の連続であった場合、例えば値「0」と値「1」の連続であった場合、スクランブラを持たない送信回路の場合、伝送路上からは特定の周波数成分を持った電磁放射ノイズが発生し易くなる。この様なノイズは一般的には他の装置への悪影響を与え易い。スクランブラ313は、Dキャラクタが連続する同じ値であっても、疑似乱数化することで特定の周波数成分を持った電磁放射ノイズの発生をし辛くする効果があり、これを目的として設置される。
 送信側コード変換回路315では、スクランブラ313からのデータキャラクタ及び送信側制御回路314からの制御キャラクタと制御キャラクタ有効信号とを、シンボルコードと呼ばれるパラレルデータに変換して並列直列変換回路316に供給する。並列直列変換回路316では、クロック発振器311が出力するクロック(送信クロック)に同期してパラレルデータをシリアルデータに変換して出力する。尚、クロック発信器311は、この送信クロックの他に、パラレルデータの転送を制御する低速クロックも出力して送信側装置31内の各部に供給する。低速クロックは、送信クロックに比べて低速、即ち、周波数が低い。
 並列直列変換回路316から出力されたシリアルデータは、出力ドライバ317及び差動型伝送路33を介して受信側装置32に入力される。入力レシーバ321は、受信したシリアルデータをクロック再生回路322及び直列並列変換回路323に出力する。尚、図9では差動型伝送路33が用いられているが、差動型伝送路33以外の伝送路を用いても良いことは言うまでもない。
 クロック再生回路322は、PLL(Phase Locked Loop)回路を内蔵しており、シンボルデータ中に最低1回は存在するビット遷移のエッジを検出して内蔵PLL回路を同期化して受信クロックを再生する。このように受信クロックを再生するためには、シンボルデータ中にビット遷移が存在する必要がある。このようにして受信クロックを再生する方法は、CDR(Clock Data Recovery)又はエンベデッドクロック(Embedded Clock)と呼ばれ、高速シリアル転送では一般的に用いられる技術である。
 直列並列変換回路323では、再生された受信クロックに基づいて入力レシーバ321からのシリアルデータをシンボルコード(パラレルデータ)に変換して受信側コード変換回路324に出力する。受信側コード変換回路324は、シンボルコードをデコードしてシンボルのタイプ(種類)を検出し、データキャラクタ又は制御キャラクタと、各々の有効信号を生成する。つまり、受信側コード変換回路324は、データキャラクタとデータ有効信号、又は、制御キャラクタと制御キャラクタ有効信号を生成する。データキャラクタはデスクランブラ325に出力され、制御キャラクタ、制御キャラクタ有効信号、及びデータ有効信号は受信側制御回路326に出力される。
 尚、シンボルコードをデコードする際に、シンボルエラーと呼ばれる特定のエラーパターンを検出してエラー検出信号を求めるようにしても良い。この場合、エラー検出信号は、データキャラクタ又は制御キャラクタの有効信号と共に受信側制御回路326に通知すれば良い。
 デスクランブラ325は、LFSRを用いてデータキャラクタの乱数化を解除してデータキャラクタをデータ受信回路327に出力する。受信側制御回路326は、制御キャラクタ及びエラー信号に応じて各々の処理を行うが、これらの処理自体は本実施例の要旨と直接は関係がないので、本明細書ではこれらの処理の詳細についての説明は省略する。
 本実施例では、従来の8B10B方式の場合と同様にKキャラクタを定義可能であり、図7の場合であれば最大16種類のKキャラクタを定義可能である。このため、物理層制御、DLLP等のリンク層制御には、8B10B方式の制御を利用可能である。従って、制御回路314,326は、8B10B方式の場合に使用する制御回路に基づいて設計可能である。
 次に、図10、図11及び図12を用いて、送信側コード変換回路315のより詳細な動作を説明する。ここでは一例として、データキャラクタのビット幅が9ビット、制御キャラクタのビット幅が4ビット、シンボルコードのビット幅が10ビットの場合について説明するが、データキャラクタ、制御キャラクタ及びシンボルコードがこれらのビット幅に限定されないことは前述した通りである。
 送信側コード変換回路315は、データキャラクタと制御キャラクタとの一方を選択して制御キャラクタ有効信号と多重化し、データキャラクタ及び制御キャラクタが受信側装置32内で分離が可能な様に、特定のビットパターンをシンボルコードに埋め込む。この特定のビットパターンは、クロック回復のためのビット遷移の発生を保証するものでもある。
 図10は、送信側コード変換回路315の入出力を説明する図である。送信側コード変換回路315の入力は、9ビットのデータキャラクタ、4ビットの制御キャラクタ、及び制御キャラクタ有効信号を含む。又、送信側コード変換回路315の出力は、10ビットのパラレルデータであり、このパラレルデータがシンボルコードとして並列直列変換回路316に入力される。
 図11は、送信側コード変換回路315の構成の一例を示す回路図である。送信側コード変換回路315は、図11に示す如く接続されたインバータ回路41-1~41-5、及び2対1マルチプレクサ(2:1MUX:Multiplexer)42-1~42-10を有する。図11中、Kcode_ENBL_inは制御キャラクタ有効信号を示し、論理オン(例えば、ハイレベル)である場合に制御キャラクタが有効であることを示す。又、Kcode_in[0:3]は制御キャラクタ入力を示し、Dcode_in[0:8]はデータキャラクタ入力を示す。更に、Output Cntl Bit及びOutput Bit[0:8]は10ビットのシンボルコード出力を示す。各マルチプレクサ42-1~42-10は、制御キャラクタ有効信号Kcode_ENBL_inがオン(ON)の場合に制御キャラクタ入力Kcode_in側の入力を選択して出力し、オフ(OFF)の場合にデータキャラクタ入力Dcode_in側の入力を選択して出力する。
 マルチプレクサ42-1~42-10において、制御キャラクタ入力Kcode_in側の入力が選択された場合、Output Cntl Bit及びOutput Bit[0]には、値「1」が出力される。この値「1」は、シンボルコード出力が制御キャラクタであることを受信側に通知する値である。又、Output Bit[1]には制御キャラクタ入力Kcode_in[0]の値、Output Bit[2]には制御キャラクタ入力Kcode_in[0]の値をインバータ回路41-2で反転した値が出力される。以後、Output Bit[3]には制御キャラクタ入力Kcode_in[1]の値、Output Bit[4]には制御キャラクタ入力Kcode_in[1]の値をインバータ回路41-3で反転した値、Output Bit[5]には制御キャラクタ入力Kcode_in[2]の値、Output Bit[6]には制御キャラクタ入力Kcode_in[2]の値をインバータ回路41-4で反転した値、Output Bit[7]には制御キャラクタ入力Kcode_in[3]の値、Output Bit[8]には制御キャラクタ入力Kcode_in[3]の値をインバータ回路41-5で反転した値が出力される。
 又、マルチプレクサ42-1~42-10において、データキャラクタ入力Dcode_in側の入力が選択された場合、Output Cntl BitにはDcode_in[0]の値をインバータ回路41-1で反転した値、Output Bit[0]にはDcode_in[0]の値が出力される。これらの値、即ち、Output Cntl Bitの値とOutput Bit[0]の値が不一致である状態は、シンボルコード出力がデータキャラクタであることを受信側に通知する値である。又、Output Bit[1:8]にはデータキャラクタ入力Dcode_in[1:8]の値が出力される。
 尚、Output Cntl Bitに出力する値は、この例ではDcode_in[0]としているが、受信側コード変換回路324と合意が取れている場合には、他のデータビットを選択することも可能である。
 図12は、送信側コード変換回路315の動作を説明するための真理値表を示す図であり、図11の送信側コード変換回路315の論理動作条件を示している。図12中、^Kcode_in[0]はKcode_in[0]の値の反転値、^Kcode_in[1]はKcode_in[1]の値の反転値、^Kcode_in[2]はKcode_in[2]の値の反転値、^Kcode_in[3]はKcode_in[3]の値の反転値、^Dcode_in[0]はDcode_in[0]の値の反転値を夫々示す。
 このように、送信側コード変換回路315は、従来のルックアップテーブルを用いる方法と比較すると、回路量を減少させることができると共に低コストで実現可能であることが判る。更に、変換に必要な回路の遅延時間は、インバータ回路と2対1のマルチプレクサ(又は、セレクタ)の遅延時間の合計値であるため、従来の方法と比較すると大幅に遅延時間を短縮することができ、この結果高速変換動作が可能であることが判る。
 次に図13、図14及び図15を用いて、受信側コード変換回路324のより詳細な動作を説明する。ここでは一例として、送信側コード変換回路315の場合と同様にデータキャラクタのビット幅が9ビット、制御キャラクタのビット幅が4ビット、シンボルコードのビット幅が10ビットの場合について説明するが、データキャラクタ、制御キャラクタ及びシンボルコードがこれらのビット幅に限定されないことは前述した通りである。ただし、受信側コード変換回路324におけるデータキャラクタ、制御キャラクタ及びシンボルコードのビット幅は、送信側コード変換回路315におけるビット幅と同じである必要がある。
 受信側コード変換回路324は、シンボルコードに埋め込まれている特定のビットパターンを検出し、特定のビットパターンに基づいて多重化されているデータキャラクタと制御キャラクタを分離する。受信側コード変換回路324は、シンボルエラーと呼ばれる特定のエラーパターンも検出する。
 図13は、受信側コード変換回路324の入出力を説明する図である。受信側コード変換回路324の入力は、直列並列変換回路323からのシンボルコードである。又、受信側コード変換回路324の出力は、9ビット幅のデータキャラクタ、4ビット幅の制御キャラクタ、データキャラクタ有効信号、制御キャラクタ有効信号、及びシンボルエラーを検出することで得られるエラー検出信号を含む。
 図14は、受信側コード変換回路324の構成の一例を示す回路図である。受信側コード変換回路324は、図14に示す如く接続された否定排他的論理和(ENOR:Exclusive-NOR)回路51、否定論理和(NOR)回路52、排他的論理和(EOR)回路53-1~53-4、論理積(AND)回路54-1~54-5、及び論理和(OR)回路55を有する。図14中、Input Cntl Bit及びInput Bit[0:8]は合計で10ビット幅のシンボルコード入力、Dcode_out[0:8]はデータキャラクタ出力、Kcode_out[0:3]は制御キャラクタ出力を示す。更に、Dcode_ENBL_outはDcode_out[0:8]が有効であることを示すデータキャラクタ有効信号、Kcode_ENBL_outはKcode_out[0:3]が有効であることを示す制御キャラクタ有効信号、Symbol_ERROR_outは受信したシンボルコードが規定以外のコードであることを示すエラー検出信号である。このエラー検出信号がオン(例えば、ハイレベル)であると、受信側コード変換回路324から出力される他の全ての出力信号は受信側制御回路326において無視される。
 受信側コード変換回路324において、シンボルコード入力のビットInput Cntl Bit,Input Bit[0]は、シンボルコードの定義に従ってデコードされる。両ビットInput Cntl Bit,Input Bit[0]が不一致の場合、図14中のENOR回路51でこの不一致が検出されてデータキャラクタ有効信号Dcode_ENBL_outがオンになる。又、両ビットInput Cntl Bit,Input Bit[0]が共に値「1」の場合、図14中のAND回路54-1でこの状態が検出されて制御キャラクタ有効信号Kcode_ENBL_outがオンになる。尚、両ビットInput Cntl Bit,Input Bit[0]がこれら以外の場合、即ち、両ビットInput Cntl Bit,Input Bit[0]が共に値「0」の場合、このビットパターンはシンボルコードエラーであるため、図14中のNOR回路52によりこのシンボルコードエラーが検出されてOR回路55が出力するエラー検出信号Symbol_ERROR_outがオンになる。更に、制御キャラクタ有効信号Kcode_ENBL_outがオン、即ち、受信したシンボルコードが制御キャラクタである場合、シンボルコードの定義に従ってInput Bit[1]とInput Bit[2]、Input Bit[3]とInput Bit[4]、Input Bit[5]とInput Bit[6]、Input Bit[7]とInput Bit[8]が夫々不一致であるか否かをEOR回路53-1~53-4により検査する。この検査の結果、EOR回路53-1~53-4のいずれかにおいて不一致が検出されると、シンボルコードエラーであるため、AND回路54-2~54-5及びOR回路55を介して出力されるエラー検出信号Symbol_ERROR_outがオンになる。
 シンボルコード入力のビットInput Bit[0:8]の値はそのままデータキャラクタのビットDcode_out[0:8]の値になり、更に、ビットInput Bit[1,3,5,7]の値はそのまま制御キャラクタのビットKcode_out[0:3]の値になる。
 図15は受信側コード変換回路324の動作を説明するための真理値表を示す図であり、図14の受信側コード変換回路324の論理動作条件を示している。
 このように、受信側コード変換回路324は、従来のルックアップテーブルを用いる方法と比較すると、回路量を減少させることができると共に低コストで実現可能であることが判る。更に、変換に必要な回路の遅延時間は、最大でENOR回路、NOR回路、EOR回路、AND回路、及びOR回路の遅延時間の合計値であるため、従来の方法と比較すると大幅に遅延時間を短縮することができ、この結果高速変換動作が可能であることが判る。
 次に、本発明の他の実施例について図16と共に説明する。図16は、本発明の他の実施例における送信側装置内のコード変換回路及び受信側装置内のコード変換回路を示すブロック図である。
 コード変換回路が高速シリアルインタフェース回路に適用されており、より高帯域のバス性能が必要である場合、複数のシリアルインタフェースを組み合わせて1つの論理インタフェースを形成する場合がある。PCI Express仕様では、単独のシリアルインタフェースをレーン(Lane)と呼ばれる単位で呼称しているが、このPCI Express仕様では1レーン構成の他に、2レーン、4レーン、8レーン、12レーン、16レーン、及び32レーンの構成が定義されている。以下の説明では、このPCI Express仕様と同様に単独のシリアルインタフェースを1レーンと呼称するものとする。
 図16は、コード変換回路を含むシリアルインタフェース回路を8個組み合わせて1つの論理インタフェースを構成した例を示す。即ち、図16において、伝送路133により接続された送信側装置131及び受信側装置132は、夫々8レーン構成である。送信側装置131は、バイト/ビット(Byte-to-Bit)分離回路61、送信側コード変換回路62-0~62-7、及び出力部63-0~63-7を有する。送信側装置131内の各レーン#0~#7の構成は同じであるため、レーン#0の構成のみを示す。送信側コード変換回路62-0~62-7は、夫々図9に示す送信側コード変換回路315と同じ構成を有する。出力部63-0は、図9と同じ構成の並列直列変換回路316及び出力ドライバ317を有する。一方、受信側装置132は、入力部71-0~71-7、受信側コード変換回路72-0~72-7、及びビット/バイト(Bit-to-Byte)組み立て回路73を有する。受信側装置132内の各レーン#0~#7の構成は同じであるため、レーン#0の構成のみを示す。入力部71-0は、図9と同じ構成の入力レシーバ321及び直列並列変換回路323を有する。受信側コード変換回路72-0~72-7は、夫々図9に示す受信側コード変換回路324と同じ構成を有する。尚、送信側制御回路及び受信側制御回路は、図9に示す送信側制御回路314及び受信側制御回路326と同じ構成のものとを使用可能であるため、図16ではこれらの制御回路の図示及び説明は省略する。
 上記実施例と共に説明したように、コード変換回路は9ビットのデータキャラクタを10ビットのシンボルコードに変換する。このため、送信側装置131から見ると、1レーン当たり9ビットのパラレルデータバスを有するので、8レーン構成の場合は9ビット×8レーン=72ビットのパラレルデータバス、即ち、伝送路133を有する構成となる。
 一方、従来び8B10Bコード変換回路を有するシリアルインタフェースでは、伝送路の帯域幅が同等である場合、即ち、1レーンのシンボルコード長が本実施例と同様の10ビットである場合、送信側装置からみて1レーン当たり8ビットのパラレルデータバスを有することになるので、8レーン構成の場合は8ビット×8レーン=64ビットのパラレルデータバスを有する構成となる。
 分離回路51及び組み立て回路73は、複数レーンで構成されるシリアルインタフェース回路の場合に必要となる回路である。分離回路51は、データ送信機(図示せず)からの72ビット幅のパラレルデータバスを受け取り、9ビット毎に各レーンにパラレルデータを供給する機能を有する。又、組み立て回路73は、分離回路と逆の操作、即ち、各レーンからの9ビットパラレルデータを72ビット幅のパラレルデータバスに組み立てて、データ受信機(図示せず)に送信する機能を有する。
 図17は、レーン毎のビット割り当ての一例を説明する図である。図17は、分離回路61による、72ビットパラレルデータバスの各ビットのレーン毎のビット定義を示す。図17中、縦軸は各レーンで転送されるシンボルコード(この例では10ビット幅)を示し、横軸は各レーン番号、即ち、シリアルバス番号を示す。又、図17では、72ビットパラレルデータバスのビット00をD00と表記している。一例を示すと、レーン番号#0には、1ビットのコントロールビットCntlとデータビットD00~D08を組み合わせて一組のシンボルコードとしている。この例では、有効データバス幅として72ビット幅を確保することができる。尚、一組のシンボルコードに1ビットのコントロールビットCntlを定義する必要があるが、72ビットパラレルデータのどのビットをどのレーンに割り当てるかは任意であり、図17に示す以外のデータビットを割り当てても良いことは言うまでもない。
 図18は、72ビットパラレルデータバスのビット割り当ての一例を説明する図である。図18は、送信側装置131及び受信側装置132での72ビットのパラレルデータバスのデータの定義を示す。例えば、72ビットのパラレルデータバスのビットBit0~Bit7(Bit0~7)は、データバイト(Byte)Byte0と定義される。尚、72ビットのパラレルデータバスのビットBit64~Bit71(Bit64~71)は、冗長ビット[0:7]と定義される。
 高信頼性の情報処理装置では、8バイトのデータに対して8ビットの冗長ビットを割り当てて、耐故障性能を向上させることが一般的である。このように耐故障性能を向上する一例として、DIMM(Dual Inline Memory Module)が挙げられる。72ビット幅のDIMMの利用形態では、図18と同様に8バイトのデータ、即ち、64ビットのデータに対してエラー訂正コード(ECC:Error Correction Code)等によるチェックビット(CB:Check Bit)を8ビット割り当てることで、1ビット故障を修正し、更に、2ビット故障を検出することを可能として耐故障性能を向上させている。
 上記の如く、8B10Bコード変換回路を有する従来のシリアルインタフェース回路では、8レーン構成であっても64ビット幅のパラレルデータバスしか実現できないので、DIMMに入力する例えば72ビットのDIMMデータを扱う場合、冗長ビットを廃棄するか、或いは、DIMMデータを何らかの形式に変形する等の対策が必要である。
 更に、従来の8B10Bコード変換回路では、データキャラクタをルックアップテーブルを用いてシンボルコードに変換しているので、伝送路上の1ビットエラーが最大で4ビットのエラーになってしまう。一般的に、64ビットのデータに対して8ビットのCBを割り当てた場合、3ビット以上の複数ビットの故障は検知できない可能性が高い。従って、72ビットのDIMMデータを従来のシリアルインタフェース回路で転送した場合、伝送路上で1ビットエラーが発生すると、回復不能の多ビットエラーに変化してしまう可能性があった。
 これに対して、本実施例の如きコード変換回路を有するシリアルインタフェース回路では、8レーン構成の場合、72ビット幅のデータを扱うことが可能であるため、DIMMデータの形式を変更せずに、そのままシリアルインタフェースバスに出力することが可能となる。又、伝送路上のシンボルコードの1ビットエラーは、Dキャラクタに変換した際、そのまま1ビットエラーとして認識されるので、ECCによりエラー回復が可能となり、より信頼性を向上することができる。
 従来の8B10B方式では、8ビットのデータキャラクタを送信するために10ビットのシンボルに変換するので、25%のバスのオーバーヘッドとなる。これに対し、上記各実施例では、9ビットのデータキャラクタを送信するために1ビットのコントロールビットを付加して10ビットのシンボルに変換するので、バスのオーバーヘッドは11%となる。伝送路の帯域幅で言うと、従来の8B10B方式では帯域の20%がオーバーヘッドになるのに対し、上記各実施例では10%のオーバーヘッドとなり、従来の8B10B方式と比較してオーバーヘッドが10%減少し、バスの帯域幅を有効利用することができる。
 又、上記各実施例によれば、データキャラクタと制御キャラクタを多重化して送信することが可能である。つまり、データキャラクタと12種類以上の制御キャラクタを多重化して転送することが可能である。これにより、送信側装置及び受信側装置の各々では、従来と同様の制御回路を使用することが可能となる。
 更に、上記各実施例によれば、クロック再生に必要なAC特性を有するコード変換回路を提供することができる。つまり、1シンボル(この例では10ビット幅)中に、必ず1回以上のビット値遷移(0から1、又は1から0に遷移すること)が含まれている。より具体的には、データキャラクタを送信する場合は、シンボルコードのビットCntl Bit,S_Bit0の値が必ず排他的な関係の値になり、更に、制御コードを送信する場合は、最低でもシンボルコードのビットS_Bit1,S_Bit2が必ず排他的な関係の値になる。これにより、1シンボル中に必ず1回以上はビット遷移が含まれることになり、従来と同様にビット値の遷移タイミングを用いて受信装置側でクロック再生が可能となる。
 尚、従来は、最大で5ビットのランレングス(Run Length)であるのに対して、上記各実施例では最大で9ビットのランレングスとなる。このランレングスは、クロック再生機能と密接な関係があり、ランレングスが伸びた場合、クロック再生に悪影響が発生すると考えられる。
 これに対しては、例えば特許文献4にて提案されている受信側装置の入力レシーバ内のイコライザを用いることで、ランレングスが5ビットから9ビットに伸びた場合でも安定して受信側装置内でクロックを再生できる。
 更に、上記各実施例によれば、Dキャラクタの各ビットは、反転して用いられるか、或いは、そのままシンボルコードのビットとして用いることが可能であるため、従来のようなルックアップテーブルを用いる必要はない。これにより、コード変換に伴う回路量を減少させることが可能となり、コストを削減し、更には遅延時間を減少させることが可能となる。
 又、従来は、ルックアップテーブルを用いるため、伝送路上での1ビットエラーは最大でデータキャラクタの5ビットエラーとして認識される。これに対し、上記各実施例によれば、ルックアップテーブルを用いることなく、データキャラクタは略そのままの形式でシンボルコードにアサインされる。従って、伝送路で発生した1ビットエラーは、そのまま1ビットエラーの形でデータキャラクタとして受信側装置で認識される。このように、従来は5ビットエラーであったものが1ビットエラーとなるので、エラーを補正する機会が増加してエラー耐性を向上することが可能となる。更に、上記実施例であれば、シンボルコード中には必ず1個以上の値「0」と1個以上の値「1」が含まれているので、伝送路上で全てのビットが0(All"0")又は全てのビットが1(All"1")となるようなバーストエラーをも検出可能となる。
 以上説明したように、従来の8B10B方式に対し、上記各実施例は一種の9B10B方式とも言える方式を提供するものである。
 以上、開示のデータ転送方法及びコード変換回路を実施例により説明したが、本発明は上記実施例に限定されるものではなく、本発明の範囲内で種々の変形及び改良が可能であることは言うまでもない。
20   情報処理装置

21-0~21-n   システムボード

22   クロスバ装置

23-0~23-n   IO装置

31,131   送信側装置

32,132   受信側装置

33,133   伝送路

62-0~62-7,315   送信側コード変換回路

72-0~72-7,324   受信側コード変換回路

211-0~211-m   CPU

212   メモリ

213   メモリ制御装置

Claims (13)


  1.  ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化すると共に、前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成し、

     前記シンボルコードをパラレルデータからシリアルデータに変換して伝送路へ出力することでデータ転送を行う、データ転送方法。

  2.  M=9、N=4であり、

     前記制御キャラクタ有効信号は1ビットであり、

     前記シンボルコードのビット幅は10ビットである、請求項1記載のデータ転送方法。

  3.  前記データキャラクタを転送する場合は前記データキャラクタの所定のビットの反転値を前記制御キャラクタ有効信号の値とし、前記制御キャラクタを転送する場合は前記制御キャラクタ有効信号と前記データキャラクタの前記所定のビットを同じ値にして前記所定ビット以外のビットで前記制御キャラクタを表現する、請求項1又は2記載のデータ転送方法。

  4.  前記伝送路から入力される前記シリアルデータ中に存在するビット遷移のエッジからクロックを再生し、

     前記伝送路から入力される前記シリアルデータを前記クロックに基づいてパラレルデータである前記シンボルコードに変換し、

     前記シンボルコードをデコードしてシンボルのタイプを検出し、データキャラクタ又は制御キャラクタと、データキャラクタ及び制御キャラクタの有効信号を生成する、請求項1乃至3のいずれか1項記載のデータ転送方法。

  5.  前記データキャラクタはPCI ExpressのDキャラクタであり、前記制御キャラクタは前記PCI ExpressのKキャラクタである、請求項1乃至4のいずれか1項記載のデータ転送方法。

  6.  ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化する第1の回路と、

     前記第1の回路の出力に前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成する第2の回路を備え、

     前記シンボルコードはパラレルデータからシリアルデータに変換されて伝送路へ出力される、コード変換回路。

  7.  M=9、N=4であり、

     前記制御キャラクタ有効信号は1ビットであり、

     前記シンボルコードのビット幅は10ビットである、請求項6記載のコード変換回路。

  8.  前記第1の回路は、前記データキャラクタを転送する場合は前記データキャラクタの所定のビットの反転値を前記制御キャラクタ有効信号の値とし、前記制御キャラクタを転送する場合は前記制御キャラクタ有効信号と前記データキャラクタの前記所定のビットを同じ値にして前記所定ビット以外のビットで前記制御キャラクタを表現する、請求項6又は7記載のコード変換回路。

  9.  前記データキャラクタはPCI ExpressのDキャラクタであり、前記制御キャラクタは前記PCI ExpressのKキャラクタである、請求項6乃至8のいずれか1項記載のコード変換回路。

  10.  ビット幅M(Mは3以上の自然数)のデータキャラクタとビット幅N(Nは1以上の自然数)の制御キャラクタを多重化する第1の回路と、前記第1の回路の出力に前記制御キャラクタが有効であるか否かを示す制御キャラクタ有効信号を付加してM+1又はN+3の何れか大きい方のビット幅を有するシンボルコードを生成する第2の回路を有するコード変換回路と、

     前記シンボルコードをパラレルデータからシリアルデータに変換して伝送路へ出力する変換回路を備えた、装置。

  11.  M=9、N=4であり、

     前記制御キャラクタ有効信号は1ビットであり、

     前記シンボルコードのビット幅は10ビットである、請求項10記載の装置。

  12.  前記第1の回路は、前記データキャラクタを転送する場合は前記データキャラクタの所定のビットの反転値を前記制御キャラクタ有効信号の値とし、前記制御キャラクタを転送する場合は前記制御キャラクタ有効信号と前記データキャラクタの前記所定のビットを同じ値にして前記所定ビット以外のビットで前記制御キャラクタを表現する、請求項10又は11記載の装置。

  13.  前記データキャラクタはPCI ExpressのDキャラクタであり、前記制御キャラクタは前記PCI ExpressのKキャラクタである、請求項10乃至12のいずれか1項記載の装置。
PCT/JP2009/061235 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置 WO2010146715A1 (ja)

Priority Applications (6)

Application Number Priority Date Filing Date Title
KR1020117030355A KR101283844B1 (ko) 2009-06-19 2009-06-19 데이터 전송 방법, 코드 변환 회로 및 장치
CN200980159910.1A CN102460974B (zh) 2009-06-19 2009-06-19 数据传送方法,码元转换电路以及装置
JP2011519392A JP5382117B2 (ja) 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置
PCT/JP2009/061235 WO2010146715A1 (ja) 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置
EP09846208A EP2445112A4 (en) 2009-06-19 2009-06-19 DATA TRANSFER METHOD, CODE CONVERSION CIRCUIT, AND DEVICE
US13/312,462 US8723702B2 (en) 2009-06-19 2011-12-06 Data transfer method, and code conversion circuit and apparatus

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2009/061235 WO2010146715A1 (ja) 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US13/312,462 Continuation US8723702B2 (en) 2009-06-19 2011-12-06 Data transfer method, and code conversion circuit and apparatus

Publications (1)

Publication Number Publication Date
WO2010146715A1 true WO2010146715A1 (ja) 2010-12-23

Family

ID=43356053

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2009/061235 WO2010146715A1 (ja) 2009-06-19 2009-06-19 データ転送方法、コード変換回路及び装置

Country Status (6)

Country Link
US (1) US8723702B2 (ja)
EP (1) EP2445112A4 (ja)
JP (1) JP5382117B2 (ja)
KR (1) KR101283844B1 (ja)
CN (1) CN102460974B (ja)
WO (1) WO2010146715A1 (ja)

Cited By (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
CN103067162A (zh) * 2012-11-15 2013-04-24 新浪技术(中国)有限公司 一种数据传输的方法及装置
EP2634983A2 (en) 2012-02-29 2013-09-04 Fujitsu Limited Data transmission apparatus, data transmission system and data transmission method
JP2015144392A (ja) * 2014-01-31 2015-08-06 ローム株式会社 シリアルデータの送信回路および受信回路、それらを用いた伝送システム、電子機器、シリアルデータの伝送方法
JP2016167125A (ja) * 2015-03-09 2016-09-15 沖電気工業株式会社 メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置
JP2017505020A (ja) * 2013-12-27 2017-02-09 インテル コーポレイション 高速短距離入出力(i/o)

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US9319178B2 (en) 2014-03-14 2016-04-19 Qualcomm Incorporated Method for using error correction codes with N factorial or CCI extension
CN107222218B (zh) * 2017-05-26 2020-11-03 四川九洲电器集团有限责任公司 一种并行数据的产生电路、方法及电子设备

Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910056A (ja) 1982-06-30 1984-01-19 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン コ−ド生成方法
JPS60130236A (ja) * 1983-12-19 1985-07-11 Nec Corp 復号器
JPH05336193A (ja) * 1991-11-10 1993-12-17 Hewlett Packard Co <Hp> ハンドシェーク信号の直列伝送方法
JP2002280991A (ja) * 2001-03-02 2002-09-27 Akara Corp データマッパおよびデータマッピング方法
JP2004080300A (ja) 2002-08-15 2004-03-11 Fuji Xerox Co Ltd 符号化装置およびその方法
JP2006502679A (ja) 2002-10-02 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 低レイテンシ・ラジオ/ベースバンド・インターフェイス・プロトコル
JP2006250824A (ja) * 2005-03-11 2006-09-21 Nec Electronics Corp 半導体集積回路およびその半導体集積回路におけるデータ解析方法
JP2007032526A (ja) 2005-07-29 2007-02-08 Nissan Motor Co Ltd 燃料噴射制御装置

Family Cites Families (14)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5914953A (en) * 1992-12-17 1999-06-22 Tandem Computers, Inc. Network message routing using routing table information and supplemental enable information for deadlock prevention
US5930399A (en) * 1997-04-03 1999-07-27 Microsoft Corporation Data encoding for a communication channel supporting a subset of the characters to be transmitted
US6181821B1 (en) * 1997-04-30 2001-01-30 Massachusetts Institute Of Technology Predictive source encoding and multiplexing
US6484167B1 (en) * 1997-11-12 2002-11-19 John P. Tarlano Method and apparatus for providing calendar year dates by forming hexadecimal dates having two digits
JP3166692B2 (ja) * 1997-12-09 2001-05-14 日本電気株式会社 符号化回路
US6275587B1 (en) * 1998-06-30 2001-08-14 Adobe Systems Incorporated Secure data encoder and decoder
US6915352B2 (en) * 2001-06-01 2005-07-05 Inventec Appliances Corp. Infrared transmission system with automatic character identification
US7069464B2 (en) * 2001-11-21 2006-06-27 Interdigital Technology Corporation Hybrid parallel/serial bus interface
US6867713B2 (en) * 2002-09-09 2005-03-15 Seagate Technology Llc DC free code design with state dependent mapping
US7061407B1 (en) * 2005-06-14 2006-06-13 Xilinx, Inc. Encoding of 8B10B control characters
JP2007096903A (ja) * 2005-09-29 2007-04-12 Rohm Co Ltd パラレルシリアル変換回路およびそれを用いた電子機器
US7487426B2 (en) * 2005-10-17 2009-02-03 Enigma Semiconductor, Inc. 64b/66b coding apparatus and method
US20080033974A1 (en) * 2006-08-07 2008-02-07 International Characters, Inc. Method and Apparatus for XML Parsing Using Parallel Bit streams
JP5336193B2 (ja) 2006-11-02 2013-11-06 株式会社三徳 金属リチウムの製造方法

Patent Citations (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS5910056A (ja) 1982-06-30 1984-01-19 インタ−ナシヨナル ビジネス マシ−ンズ コ−ポレ−シヨン コ−ド生成方法
JPS60130236A (ja) * 1983-12-19 1985-07-11 Nec Corp 復号器
JPH05336193A (ja) * 1991-11-10 1993-12-17 Hewlett Packard Co <Hp> ハンドシェーク信号の直列伝送方法
JP2002280991A (ja) * 2001-03-02 2002-09-27 Akara Corp データマッパおよびデータマッピング方法
JP2004080300A (ja) 2002-08-15 2004-03-11 Fuji Xerox Co Ltd 符号化装置およびその方法
JP2006502679A (ja) 2002-10-02 2006-01-19 コーニンクレッカ フィリップス エレクトロニクス エヌ ヴィ 低レイテンシ・ラジオ/ベースバンド・インターフェイス・プロトコル
JP2006250824A (ja) * 2005-03-11 2006-09-21 Nec Electronics Corp 半導体集積回路およびその半導体集積回路におけるデータ解析方法
JP2007032526A (ja) 2005-07-29 2007-02-08 Nissan Motor Co Ltd 燃料噴射制御装置

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
"PCI Express Base Specification Revision 2.0", PCI-SIG, 20 December 2006 (2006-12-20)
See also references of EP2445112A4 *

Cited By (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP2634983A2 (en) 2012-02-29 2013-09-04 Fujitsu Limited Data transmission apparatus, data transmission system and data transmission method
US8824581B2 (en) 2012-02-29 2014-09-02 Fujitsu Limited Data transmission apparatus, data transmission system and data transmission method
CN103067162A (zh) * 2012-11-15 2013-04-24 新浪技术(中国)有限公司 一种数据传输的方法及装置
CN103067162B (zh) * 2012-11-15 2016-08-03 新浪技术(中国)有限公司 一种数据传输的方法及装置
JP2017505020A (ja) * 2013-12-27 2017-02-09 インテル コーポレイション 高速短距離入出力(i/o)
US10396840B2 (en) 2013-12-27 2019-08-27 Intel Corporation High speed short reach input/output (I/O)
JP2015144392A (ja) * 2014-01-31 2015-08-06 ローム株式会社 シリアルデータの送信回路および受信回路、それらを用いた伝送システム、電子機器、シリアルデータの伝送方法
JP2016167125A (ja) * 2015-03-09 2016-09-15 沖電気工業株式会社 メモリ装置へのデータ書き込み/読み出し制御方法及びメモリ装置

Also Published As

Publication number Publication date
JPWO2010146715A1 (ja) 2012-11-29
CN102460974A (zh) 2012-05-16
EP2445112A4 (en) 2012-11-14
US20120075127A1 (en) 2012-03-29
CN102460974B (zh) 2014-08-13
KR101283844B1 (ko) 2013-07-08
JP5382117B2 (ja) 2014-01-08
EP2445112A1 (en) 2012-04-25
US8723702B2 (en) 2014-05-13
KR20120024797A (ko) 2012-03-14

Similar Documents

Publication Publication Date Title
JP5382117B2 (ja) データ転送方法、コード変換回路及び装置
JP4639194B2 (ja) 透明マルチモードpamインタフェース
US8903000B2 (en) Transmission circuit, reception circuit, transmission method, reception method, communication system and communication method therefor
CA2233906C (en) Transition-controlled digital encoding and signal transmission system
US8000404B2 (en) Method and apparatus to reduce the effect of crosstalk in a communications interface
US7899111B2 (en) Link interface technique including data indicator symbols
KR20180073578A (ko) Mipi csi-2 c-phy 에 대한 의사-무작위 2진 시퀀스 시드들을 교번시키기
US20070101241A1 (en) 64b/66b Coding apparatus and method
US20090097588A1 (en) Digital data encoding and decoding method and system
US20070168835A1 (en) Serial communications system and method
US9031241B2 (en) Link and physical coding sub-layer protocols
US7876900B1 (en) Hybrid scrambled transmission coding
WO2010146714A1 (ja) データ転送方法、コード変換回路及び装置
US11777765B2 (en) Signal transmission system, transmitter encoding apparatus and receiver decoding apparatus
CN103051415A (zh) 用于通信系统的将比特编码为符号的设备和方法
KR101038112B1 (ko) 디스플레이 포트의 디지털 엔코더 및 디지털 디코더
US20060015790A1 (en) Low overhead coding techniques
WO2024095739A1 (ja) 受信装置
CN116032420A (zh) 用于数据传输的方法
KR20230044078A (ko) 데이터 전송 방법 및 데이터 복원 방법
WO2007126821A2 (en) Method and apparatus to reduce the effect of crosstalk in a communications interface

Legal Events

Date Code Title Description
WWE Wipo information: entry into national phase

Ref document number: 200980159910.1

Country of ref document: CN

121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 09846208

Country of ref document: EP

Kind code of ref document: A1

WWE Wipo information: entry into national phase

Ref document number: 2011519392

Country of ref document: JP

WWE Wipo information: entry into national phase

Ref document number: 2009846208

Country of ref document: EP

ENP Entry into the national phase

Ref document number: 20117030355

Country of ref document: KR

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE