WO2012127575A1 - 伝送遅延差補正方法,通信装置および通信システム - Google Patents

伝送遅延差補正方法,通信装置および通信システム Download PDF

Info

Publication number
WO2012127575A1
WO2012127575A1 PCT/JP2011/056601 JP2011056601W WO2012127575A1 WO 2012127575 A1 WO2012127575 A1 WO 2012127575A1 JP 2011056601 W JP2011056601 W JP 2011056601W WO 2012127575 A1 WO2012127575 A1 WO 2012127575A1
Authority
WO
WIPO (PCT)
Prior art keywords
lane
delay difference
unit
transmission delay
receiving
Prior art date
Application number
PCT/JP2011/056601
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 PCT/JP2011/056601 priority Critical patent/WO2012127575A1/ja
Priority to JP2013505636A priority patent/JP5633636B2/ja
Publication of WO2012127575A1 publication Critical patent/WO2012127575A1/ja
Priority to US14/026,619 priority patent/US20140013179A1/en

Links

Images

Classifications

    • 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
    • G06F13/40Bus structure
    • G06F13/4004Coupling between buses
    • G06F13/4027Coupling between buses using bus bridges
    • G06F13/4045Coupling between buses using bus bridges where the bus bridge performs an extender function
    • HELECTRICITY
    • H04ELECTRIC COMMUNICATION TECHNIQUE
    • H04LTRANSMISSION OF DIGITAL INFORMATION, e.g. TELEGRAPHIC COMMUNICATION
    • H04L1/00Arrangements for detecting or preventing errors in the information received
    • H04L1/004Arrangements for detecting or preventing errors in the information received by using forward error control
    • H04L1/0045Arrangements at the receiver end
    • GPHYSICS
    • G01MEASURING; TESTING
    • G01RMEASURING ELECTRIC VARIABLES; MEASURING MAGNETIC VARIABLES
    • G01R31/00Arrangements for testing electric properties; Arrangements for locating electric faults; Arrangements for electrical testing characterised by what is being tested not provided for elsewhere
    • G01R31/28Testing of electronic circuits, e.g. by signal tracer
    • G01R31/317Testing of digital circuits
    • G01R31/31725Timing aspects, e.g. clock distribution, skew, propagation delay

Definitions

  • This case relates to a transmission delay difference correction method, a communication device, and a communication system.
  • multi-bit parallel data is transmitted between a transmission module and a reception module.
  • a transmission delay difference skew
  • the transmission delay difference of the data transmitted through each signal line is such that the multi-bit parallel data is received at the same timing in the reception module. Need to absorb. Therefore, when the number of bits of parallel data increases, a process for absorbing a transmission delay difference must be performed for a large number of signal lines.
  • the transmission side divides the multi-bit parallel data into a plurality of partial data, and each of the divided partial data is transmitted from the transmission side by a plurality of lanes arranged in parallel between the transmission side and the reception side. Transmission as serial data to the receiving side is performed. Also in this case, a transmission delay difference (skew) occurs between lanes due to a difference in transmission path length and the like. For this reason, when the transmission delay difference does not fall within one period of the reception side clock, the transmission of the data transmitted in each lane so that the data transmitted by the plurality of lanes is received at the same timing on the reception side. It is necessary to absorb the delay difference.
  • skew transmission delay difference
  • a device 100 such as a server having a data transmission function shown in FIG. 38
  • parallel data of a plurality of bits (for example, 64 bits) is transmitted between the transmission module 110 and the reception module 120.
  • the multi-bit parallel data is divided into a plurality of partial data.
  • the divided partial data is transmitted from the transmission module 110 to the reception module 120 by n + 1 (n is a natural number) lanes [0] to [n] arranged in parallel between the transmission module 110 and the reception module 120, respectively. Is transmitted as serial data.
  • the receiving module 120 restores a plurality of bits of parallel data from the plurality of partial data.
  • the transmission units 110-1 to 110-n are included in the transmission module 110, and the reception units 120-1 to 120-n are included in the reception module 120.
  • Each transmission unit 110-i performs parallel / serial conversion on the divided partial data (for example, 8-bit data) and sends the serial data to the transmission line 130-i.
  • Each transmission line 130-i is a serial transmission line typified by PCI (Peripheral Component Interconnect) Express, and transmits serial data sent from the transmission unit 110-i to the reception unit 120-i.
  • PCI Peripheral Component Interconnect
  • each receiving unit 120-i performs serial / parallel conversion on the serial data received from the transmission path 130-i to restore the partial data.
  • the transmission delay difference of each lane [i] is absorbed by an inter-lane transmission delay difference absorption buffer 124 (described later) in which the data reading position is set in advance. Then, parallel data of a plurality of bits is restored from the partial data after absorption of the transmission delay difference.
  • the reception module 120 includes an inter-lane transmission delay difference absorption control circuit (hereinafter simply referred to as “control circuit”) 120a and a processing module 120b in addition to the reception units 120-0 to 120-7. It is out.
  • Each receiving unit 120-i includes a serial / parallel (S / P) conversion circuit 121, a bit boundary detection circuit 122, a clock transfer buffer 123, an inter-lane transmission delay difference absorption buffer (hereinafter simply referred to as “buffer”) 124, and a pattern A detection circuit 125 is included.
  • the control circuit 120a is connected to the receiving units 120-0 to 120-7 (pattern detection circuit 125) via signal lines SL0 to SL7, respectively, and in cooperation with the receiving units 120-0 to 120-7, the lane [0]. Controls the setting process to absorb the transmission delay difference between ⁇ [7]. Details of the function of the control circuit 120a will be described later.
  • the processing module 120b executes a process such as a protocol check on the parallel data restored from the partial data obtained by the receiving units 120-0 to 120-n.
  • the S / P conversion circuit (DeSerializer) 121 converts the serial data received from the transmission line 130-i into 8-bit parallel data (8-bit data).
  • the bit boundary detection circuit 122 has the same pattern as the boundary detection pattern by comparing the 8-bit data from the S / P conversion circuit 121 with a boundary detection pattern predetermined on the transmission side and the reception side. 8-bit data is detected as the first 8-bit data.
  • the leading 8-bit data detected by the bit boundary detection circuit 122 is a correct delimiter position of data every 8 bits, that is, a bit boundary (byte boundary).
  • the bit boundary detection circuit 122 detects a bit boundary, the bit boundary detection circuit 122 generates a write enable signal for writing 8-bit data into the clock transfer buffer 123 at the detection timing and outputs the write enable signal to the clock transfer buffer 123.
  • the serial data received from the transmission line 130-i is converted into meaningful 8-bit data by the S / P conversion circuit 121 and the bit boundary detection circuit 122 described above.
  • the clock transfer buffer 123 When receiving the write enable signal, the clock transfer buffer 123 absorbs the clock frequency difference between the transmission module 110 and the reception module 120 by sequentially writing and temporarily holding 8-bit data. The 8-bit data held in the clock transfer buffer 123 is sequentially read by the clock of the receiving module 120.
  • the buffer 124 absorbs the transmission delay difference between the lanes [0] to [7] by temporarily holding the 8-bit data from the clock transfer buffer 123.
  • the holding time (reading position) of the 8-bit data in the buffer 124 is adjusted and set as described later by the pattern detection circuit 125 and the control circuit 120a during the initialization period.
  • the buffer 124 has a buffer stage number that can absorb the maximum transmission delay difference that is expected based on the design information of the transmission path.
  • the pattern detection circuit 125 compares the 8-bit data read from the clock transfer buffer 123 with a specific pattern predetermined on the transmission side and the reception side to determine whether the 8-bit data is the specific pattern. It has the function to judge.
  • the pattern detection circuit 125 has a function of notifying the control circuit 120a of a pattern detection signal through the signal line SLi when detecting that the 8-bit data is a specific pattern.
  • the pattern detection circuit 125 has a counter function for detecting the transmission delay difference of lane [i]. This counter function counts the transmission delay difference of lane [i] by starting the increment by the clock signal at the detection timing of the specific pattern and stopping the increment according to the stop signal (described later) from the control circuit 120a. Detect as value. Further, the pattern detection circuit 125 has a function of setting the read position (read timing) of 8-bit data from the buffer 124 in the lane [i] based on the transmission delay difference of the lane [i] detected by the counter function. is doing.
  • control circuit 120a is connected to the receiving units 120-0 to 120-7 via the signal lines SL0 to SL7, and receives the pattern detection signal from the pattern detection circuit 125 of each receiving unit 120-i. Received by the signal line SLi. In addition, the control circuit 120a receives the pattern detection signals from the pattern detection circuits 125 of all the reception units 120-0 to 120-7, that is, when the logical product (AND) of the received pattern detection signals becomes “1”. At the received timing, a stop signal is transmitted to the pattern detection circuit 125 of each receiver 120-i through the signal line SLi.
  • the setting process for absorbing the transmission delay difference between the lanes [0] to [7] is executed as follows.
  • the transmission module 110 and the reception module 120 are equipped with an initialization circuit (not shown) that performs initialization that synchronizes both of the modules 110 and 120.
  • the initialization state machine synchronizes the transmission module 110 and the reception module 120 by transmitting a specific pattern from the transmission side and recognizing reception of the specific pattern on the reception side during an initialization period when the apparatus 100 is activated.
  • Setting processing for absorbing the transmission delay difference between the lanes [0] to [7] is also executed within this initialization period.
  • the initialization state machine When executing a setting process for absorbing a transmission delay difference between lanes [0] to [7], first, data including a specific pattern is transmitted from the transmission module 110 to all lanes [0] to [7]. Sent.
  • the initialization state machine simultaneously enables the receiving units 120-0 to 120-7, and each receiving unit 120-i receives data including a specific pattern.
  • the pattern detection circuit 125 of each receiving unit 120-i starts incrementing by the counter function when detecting that the received 8-bit data (see reference numeral s1 in FIG. 39) is a specific pattern. At the same time, the pattern detection circuit 125 transmits a pattern detection signal to the control circuit 120a through the signal line SLi.
  • the pattern detection signals (see reference numeral s2 in FIG. 39) from the pattern detection circuit 125 in all the lanes [0] to [7] are collected in one control circuit 120a shared by all the lanes [0] to [7].
  • the control circuit 120a sends a stop signal (see symbol s3 in FIG. 39) to each reception unit 120-i via the signal line SLi. To the pattern detection circuit 125.
  • the pattern detection circuit 125 of each receiving unit 120-i stops incrementing by the counter function, and acquires the count value at the time of stop as the transmission delay difference of lane [i].
  • the count values counted by the counter functions of all the lanes [0] to [7] are the same value.
  • the count value of the lane in which the specific pattern is detected at an earlier timing becomes larger than the count values of the other lanes.
  • the count value of the lane in which the specific pattern is detected at a later timing is smaller than the count values of the other lanes.
  • Such a count value is set by the pattern detection circuit 125 as a data read start position (read pointer initial value) from the buffer 124 of each lane [i] (see symbol s4 in FIG. 39).
  • the pattern detection circuit 125 of each lane [i] has the data of the buffer 124 adjusted so as to match the data read timing of the buffer 124 in the lane with the largest transmission delay difference in order to cancel the transmission delay difference of each lane [i]. Adjust the number of readout stages. Since the number of data read stages of the buffer 124 depends on the difference in transmission path length of each lane [i], once it is determined within the initialization period, it does not need to be changed thereafter and is fixed.
  • one control circuit 120a existing as a common unit for all lanes [0] to [7] is connected to the receiving units for all lanes [0] to [7] by signal lines SL0 to SL7.
  • Pattern detection signals s2 from 120-0 to 120-7 are collected.
  • the stop signal s3 is sent from the one control circuit 120a to the receiving units 120-0 to 120-7 in all the lanes [0] to [7] through the signal lines SL0 to SL7. For this reason, the following problems have occurred.
  • the amount of information of the pattern detection signal from each lane [i] is small at 1 bit.
  • the control circuit 120a at least signal lines corresponding to the number of lanes are collected. For this reason, when the number of lanes increases, the wiring layout and noise countermeasures between each lane [i] and the control circuit 120a become extremely difficult.
  • the present invention is not limited to the above-mentioned object, and is an operational effect derived from each configuration shown in the best mode for carrying out the invention described later, and has an operational effect that cannot be obtained by conventional techniques. It can be positioned as one of the purposes.
  • the transmission delay difference correction method of the present case has a receiving unit corresponding to each of a plurality of transmission paths, adjacent receiving sections are connected by a signal line, and data from a transmission side device is transmitted via the plurality of transmission paths.
  • a method for correcting a transmission delay difference between transmission paths in a communication apparatus that receives a signal information indicating that the signal has been received is mutually notified via the signal line between two adjacent receiving units that receive the same signal.
  • a process for correcting the transmission delay difference is performed, and one of the adjacent receiving units, Among the receiving units adjacent to the receiving unit, the selection of the receiving unit that has not performed correction processing with the one receiving unit and the transmission delay difference correction processing between the selected receiving units are sequentially performed. .
  • the communication device of the present case is connected to the transmission device through a plurality of transmission paths, and in the communication device that receives information from the transmission device via the plurality of transmission paths, a plurality of transmission devices provided for each transmission path
  • a receiving unit and a signal line connecting adjacent receiving units each of the plurality of receiving units detects a signal received via a corresponding transmission line, and between adjacent receiving units
  • the control unit corrects the transmission delay difference between the receiving units based on the detection time difference between the detecting unit that transmits and receives the detection results of the signals via the signal line and the adjacent receiving unit and itself.
  • a control unit, and the control unit notifies the control unit of the adjacent receiving unit of its correction processing status, and a control unit that is not performing the correction process receives a notification from the control unit of the adjacent receiving unit. Open its own correction process accordingly. To.
  • the communication system of the present case includes a communication device that is connected to the transmission device via a plurality of transmission paths and receives information from the transmission device via the plurality of transmission paths. It is comprised similarly to a communication apparatus.
  • the setting process (correction process) for correcting the transmission delay difference is reliably executed while enabling wiring layout, noise countermeasures, and circuit speedup. be able to.
  • (A)-(F) is a figure for demonstrating the absorption setting process (correction process) of the transmission delay difference between lanes in the transmission delay difference absorption apparatus of this embodiment. It is a figure for demonstrating the lane pair selection operation
  • FIG. 1 Configuration of transmission delay difference absorbing device (communication device)
  • FIG. 1-1 Configuration of device (communication system) to which transmission delay difference absorbing device (communication device) is applied
  • FIG. 1 It is a block diagram which shows the structure of the apparatus (communication system) 1 which has this.
  • the transmission module transmission side; transmission device
  • the reception module reception side; communication device
  • parallel data of a plurality of bits for example, 64 bits
  • the transmission module 10 the multi-bit parallel data is divided into a plurality of partial data.
  • Each of the divided partial data is transmitted from the transmission module 10 to the reception module 20 by n + 1 (n is a natural number) lanes [0] to [n] arranged in parallel between the transmission module 10 and the reception module 20. Is transmitted as serial data. Then, the receiving module 20 restores a plurality of bits of parallel data from the plurality of partial data.
  • the transmission units 10-1 to 10-n are included in the transmission module 10
  • the reception units 20-1 to 20-n are included in the reception module 20 together with the processing module 20a, the initialization state machine 20b, and the termination logic 20c. include.
  • Each transmitting unit 10-i performs parallel / serial conversion on the divided partial data (for example, 8-bit data), and sends it as serial data to the transmission line 30-i.
  • Each transmission line 30-i is a serial transmission line typified by PCI_Express, and transmits serial data sent from the transmission unit 10-i to the reception unit 20-i.
  • each receiving unit 20-i performs serial / parallel conversion on the serial data received from the transmission path 30-i to restore the partial data.
  • the transmission delay difference of each lane [i] is corrected by an inter-lane transmission delay difference absorbing buffer 24 (described later) whose data reading position is set in advance. Then, the multi-bit parallel data is restored from the partial data after the transmission delay difference correction.
  • a processing module 20a is connected to each receiving unit 20-i, and the processing module 120b executes a process such as a protocol check on the parallel data restored from the partial data.
  • Adjacent lanes [i] and [i + 1] (or [i-1] and [i]) in a plurality of lanes [0] to [n] are connected by a signal line SL, and between adjacent lanes.
  • the transmission delay difference absorption setting process (correction process) information (described later) can be exchanged.
  • the circuit 25 and the inter-lane transmission delay difference absorption control circuit 26 are connected by a signal line SL.
  • the initialization state machine 20b is connected to the lane [0] at one end via the signal line SL.
  • the initialization state machine 20b performs initialization to synchronize both the transmission module 10 and the reception module 20, and performs a function of executing lane pair selection start processing and termination processing, which will be described later, on the lane [0].
  • the termination logic 20c is connected to the other lane [n] via the signal line SL.
  • the termination logic 20c is a logic circuit that causes the lane [n] to perform a lane pair selection loopback operation to be described later. Specific functions and operations of the initialization state machine 20b and the termination logic 20c will be described later with reference to FIGS. 2, 3, and 11 to 37.
  • Each receiving unit 20-i includes an inter-lane transmission delay difference absorbing buffer 24, a pattern detection circuit 25, and the like which will be described later with reference to FIGS.
  • An absorption processing unit (control unit) including an inter-lane transmission delay difference absorption control circuit 26 is provided.
  • the absorption processing unit functions to sequentially shift and select two adjacent lanes from among a plurality of lanes [0] to [n].
  • the absorption processing unit exchanges information (described later) related to transmission delay difference correction setting processing (correction processing) between the two lanes using the signal line SL, and A setting process (correction process) for correcting a transmission delay difference between lanes is executed.
  • two adjacent lanes that are sequentially shifted and selected are called “lane pairs”, one lane is called “primary lane”, and the other lane is called “secondary lane”.
  • the absorption processing unit includes an absorption processing unit (pattern detection circuit 25 and inter-lane transmission delay difference absorption control circuit 26 provided in the reception unit 20- (i-1) or 20- (i + 1) in the adjacent lane. ),
  • the setting process (correction process) is executed.
  • the absorption processing unit sequentially shifts and selects two lanes from the lane [0] at one end to the lane [n] at the other end in the plurality of lanes [0] to [n].
  • the setting process is executed. Thereafter, the absorption processing unit sequentially shifts the two lanes from the other lane [n] to the one lane [0] in the plurality of lanes [0] to [n] subjected to the setting process.
  • the pattern detection signals in each lane subject to transmission delay difference absorption are once aggregated in one control circuit 120a, and then transmitted from one control circuit 120a to the receiving units in all lanes. A stop signal is being sent.
  • the receiving units 20-0 to 20-n of the plurality of lanes [0] to [n] are connected in a bead shape through the signal line SL as shown in FIG. Yes.
  • the pattern detection circuit 25 in the adjacent lane / the transmission delay difference absorption control circuit 26 between lanes corrects the transmission delay difference between adjacent lanes while exchanging information related to the transmission delay difference absorption setting process (described later).
  • a setting process correction process
  • the setting process refers to the data reading position of the inter-lane transmission delay difference absorption buffer 24 by the pattern detection circuit 25 and the inter-lane transmission delay difference absorption control circuit 26 during the initialization period of the apparatus 1. It is a process to set.
  • the data read position is, for example, the number of read buffer stages specified by the read pointer as described later with reference to FIG.
  • the pattern detection circuit 25 and the inter-lane transmission delay difference absorption control circuit 26 in the lanes connected in a bead shape are selected by sequentially shifting the lane pair and selecting the transmission delay difference absorption setting process.
  • Information (described later) is collected.
  • the absorption processing unit with the smaller transmission delay difference in the lane pair determines the data read timing of its own inter-lane transmission delay difference absorption buffer 24 in the lane with the larger transmission delay difference.
  • the transmission delay difference absorption buffer 24 is adjusted.
  • the setting process (correction process) for correcting the transmission delay difference between the lane pairs can be performed for all the lanes [0] to [n] without using one shared control circuit 120a as shown in FIG. ] Are executed sequentially.
  • FIG. 2 is a block diagram showing the configuration of the receiving module 20 and the receiving unit 20-i for each lane [i], and FIG. 3 shows the main part of the receiving module 20 and the lanes [0] to [n].
  • FIG. 3 shows the wiring state of signal line SL. 2 and 3, the detailed configuration of the receiving units 20-0 to 20-2 for lanes [0] to [2] is shown. However, the receiving units for lanes [3] to [n] are shown. 20-3 to 20-n are similarly configured.
  • each receiving unit 120-i in the receiving module 120 includes an S / P conversion circuit 21, a bit boundary detection circuit 22, a clock transfer buffer 23, an inter-lane transmission delay difference absorption buffer (hereinafter referred to as “the transmission delay difference absorbing buffer”). 24), a pattern detection circuit 25, and an inter-lane transmission delay difference absorption control circuit (hereinafter simply referred to as “control circuit”) 26.
  • the S / P conversion circuit 21, the bit boundary detection circuit 22, and the clock transfer buffer 23 are equivalent to the S / P conversion circuit 121, the bit boundary detection circuit 122, and the clock transfer buffer 123 described above with reference to FIG. Therefore, detailed description thereof is omitted.
  • the buffer 24 is equivalent to the buffer 124 shown in FIG. 39, and absorbs the transmission delay difference between the lanes [0] to [n] by temporarily holding the partial data from the clock transfer buffer 23. .
  • the partial data holding time (data reading position) in the buffer 24 is set by the pattern detection circuit 25 and the control circuit 26 during the initialization period.
  • the buffer 24 has the number of buffer stages that can absorb the maximum transmission delay difference that is expected based on the design information of the transmission path. The specific configuration of the buffer 24 will be described later with reference to FIG.
  • the pattern detection circuit (detection unit) 25 functions as a pattern detection unit 25a and a transmission delay difference detection unit 25b, which will be described later with reference to FIG.
  • the control circuit 26 has functions as a transmission delay difference absorption setting unit 26a, a lane control unit 26b, and an OR gate 26c, which will be described later with reference to FIGS.
  • each lane [i] is used to correct a transmission delay difference between adjacent lanes as shown in FIGS.
  • a control circuit 26 that enables the initial setting of the number of buffer stages is provided.
  • the control circuit 26 for each lane [i] is connected to the pattern detection circuit 25 in the same lane [i], and controls the adjacent lanes [i-1] and [i + 1] via the signal line SL. 26 is also connected.
  • the pattern detection circuit 25 of each lane [i] uses a signal line to collect information (pattern detection signal) related to transmission delay difference absorption setting processing from adjacent lanes [i-1] and [i + 1]. It is connected to the pattern detection circuit 25 of adjacent lanes [i-1] and [i + 1] via SL.
  • the pattern detection signal of the adjacent lane [i-1] and the pattern detection signal of the adjacent lane [i + 1] are used as information related to the transmission delay difference absorption setting process. Entered.
  • the pattern detection circuit 25 of each lane [i] uses the pattern detection signal of its own lane [i] as information related to the transmission delay difference absorption setting process, and the pattern of the adjacent lanes [i-1] and [i + 1]. Output to the detection circuit 25.
  • the adjacent lane [i ⁇ 1] may be expressed as “adjacent lane A” and the adjacent lane [i + 1] may be expressed as “adjacent lane B”.
  • lane [0] at one end is arranged at the end and is not connected to a lane corresponding to the adjacent lane [i-1]. Therefore, “0” is always input to the pattern detection circuit 25 of the lane [0] as the pattern detection signal of the lane corresponding to the adjacent lane [i ⁇ 1].
  • the line for outputting the pattern detection signal of the own lane [0] to the lane corresponding to the adjacent lane [i-1] is open.
  • the lane [n] at the other end is arranged at the end and is not connected to a lane corresponding to the adjacent lane [i + 1].
  • the 2-bit signal LE (Lane Enable) 2 [1: 0] of the adjacent lane [i-1] is input as the 2-bit signal LE1 [1: 0].
  • the 1-bit signal CL (Clear) 4 of [i-1] is input as the 1-bit signal CL3.
  • the control circuit 26 of each lane [i] outputs the 2-bit signal LE4 [1: 0] as the 2-bit signal LE3 [1: 0] of the adjacent lane [i-1], and outputs the 1-bit signal CL2. Output as 1-bit signal CL1 of adjacent lane [i-1].
  • the 2-bit signal LE4 [1: 0] of the adjacent lane [i + 1] is input as the 2-bit signal LE3 [1: 0] to the control circuit 26 of each lane [i], and the adjacent lane [i] +1] 1-bit signal CL2 is input as 1-bit signal CL1.
  • the control circuit 26 of each lane [i] outputs the 2-bit signal LE2 [1: 0] as the 2-bit signal LE1 [1: 0] of the adjacent lane [i + 1], and outputs the 1-bit signal CL4. Output as 1-bit signal CL3 of adjacent lane [i + 1].
  • lane [0] at one end is arranged at the end and is not connected to a lane corresponding to the adjacent lane [i-1]. Therefore, an initialization state machine 20b is connected to the control circuit 26 of the lane [0] as the control circuit 26 of the lane corresponding to the adjacent lane [i-1], and is initialized with the control circuit 26 of the lane [0]. Signals LE1-LE4 and CL1-CL4 are exchanged with the state machine 20b. Similarly, the lane [n] at the other end is arranged at the end and is not connected to a lane corresponding to the adjacent lane [i + 1].
  • the termination logic 20c is connected to the control circuit 26 of the lane [n] as the control circuit 26 of the lane corresponding to the adjacent lane [i + 1], and the control circuit 26 and the termination logic 20c of the lane [n] Signals LE1-LE4 and CL1-CL4 are exchanged.
  • the control circuit 26 of lane [n] when the lane pair selection is turned back, the control circuit 26 of lane [n] is set with a flag “complete1” of the lane control unit 26b described later.
  • a set signal SC1 for setting is input from the termination logic 20c as adjacent lane transmission delay information.
  • the control circuit 26 of the lane [0] has a flag “complete2” of a lane control unit 26 b described later.
  • a set signal SC2 for setting "" is input from the initialization state machine 20b as adjacent lane transmission delay information.
  • signals (information) exchanged between the pattern detection circuit 25 and the control circuit 26 in each lane [i] are as follows.
  • a count value by a delay detection counter 255 described later is transmitted from the pattern detection circuit 25 to the control circuit 26 as transmission delay difference absorption information
  • a logical product result by an AND gate 258 described later is transmitted from the pattern detection circuit 25 as adjacent lane transmission delay difference information. It is transmitted to the control circuit 26.
  • a logical sum result by an OR gate 2623 described later is transmitted from the control circuit 26 to the pattern detection circuit 25 as a 2-bit signal LS (Lane Select) [1: 0].
  • signals LE1 and LE3 from adjacent lanes [i-1] and [i + 1] are input to the pattern detection circuit 25 of each lane [i]. Further, as described later with reference to FIGS. 4 and 5, the delay setting information of the own lane [i] by the transmission delay difference absorption setting unit 26 a of the control circuit 26 is input to the buffer 24 of each lane [i].
  • various signals can be exchanged between adjacent lanes via the signal line SL, so that the delay of the buffer 24 is delayed for each lane pair while sequentially selecting lane pairs from lane [0] to lane [n]. Settings are made. Further, when the lane pair selection shift direction is turned back by the termination logic 20c, the delay setting of the buffer 24 is performed for each lane pair while sequentially selecting lane pairs from lane [n] to lane [0]. By setting the delay of the buffer 24 by reciprocating the lane pair selection shift in this way, setting processing (correction processing) for correcting the transmission delay difference between all the lanes [0] to [n] is performed.
  • the period in which the lane pair shifts from lane [0] to lane [n] is referred to as “outward”, and the period in which the lane pair shifts from lane [n] to lane [0] is referred to as “return”. is there.
  • FIG. 4 is a block diagram showing the configuration of the pattern detection circuit 25 and the configuration of the inter-lane transmission delay difference absorption control circuit 26. As shown in FIG. 4, the pattern detection circuit 25 includes a pattern detection unit 25a and a transmission delay difference detection unit 25b between adjacent lanes.
  • the pattern detection unit 25a compares the partial data read from the clock transfer buffer 23 (for example, 8-bit data) with a specific pattern predetermined on the transmission side and the reception side, so that the partial data has a specific pattern. It fulfills the function of determining whether or not there is.
  • the pattern detection unit 25a includes a transmission delay detection pattern storage unit 251, a comparator 252, a determination circuit 253, and an AND gate 254.
  • the transmission delay detection pattern storage unit 251 stores a specific pattern predetermined on the transmission side and the reception side.
  • the specific pattern is, for example, 8-bit parallel data.
  • the comparator 252 compares the 8-bit data read from the clock transfer buffer 23 with the specific pattern in the transmission delay detection pattern storage unit 251, and outputs “1” when the 8-bit data matches the specific pattern. Otherwise, “0” is output.
  • the determination circuit 253 When the lane enable signal LE1 [1: 0] or LE3 [1: 0] from the adjacent lane [i-1] or [i + 1] becomes “01” or “10”, the determination circuit 253 “ It outputs “1” and outputs “0” in other cases, and is configured by a logic circuit.
  • the lane enable signal LE1 [1: 0] or LE3 [1: 0] becomes “01” or “10” when the own lane [i] is selected as a lane pair.
  • the AND gate 254 outputs a logical product of the output of the comparator 252 and the output of the determination circuit 253. That is, in the AND gate 254, the signal LE1 [1: 0] or LE3 [1: 0] becomes “01” or “10” and the 8-bit data read from the clock transfer buffer 23 has a specific pattern. In this case, “1” is output, and “0” is output in other cases. More specifically, the AND gate 254 outputs “1” when the own lane [i] is selected as a lane pair and a specific pattern is detected.
  • the transmission delay difference detection unit (transmission delay difference detection unit) 25b between adjacent lanes detects the specific pattern detection timing of the own lane [i] and the detection timing of the specific pattern in the adjacent lane [i-1] or [i + 1]. Based on the above, the transmission delay difference between the own lane [i] and the adjacent lane [i-1] or [i + 1] is detected.
  • the transmission delay difference detection unit between adjacent lanes includes a delay detection counter 255, an OR gate 256, a selector 257, and an AND gate 258.
  • the delay detection counter 255 starts incrementing (counting) when the output of the AND gate 254 becomes “1”, that is, when the own lane [i] is selected as a lane pair and a specific pattern is detected.
  • the delay detection counter 255 stops the counting operation at the rise of the output of an AND gate 258 described later. Note that the initial value of the count value of the delay detection counter 255 is set to “0”. Further, the delay detection counter 255 shown in FIG. 4 outputs the count value as, for example, 4-bit data.
  • the OR gate 256 outputs the logical sum of the four bit data, which is the output (count value) of the delay detection counter 255, as a pattern detection signal for its own lane [i]. More specifically, the OR gate 256 outputs “0” in a state where the delay detection counter 255 does not start counting, that is, in a state where the initial value “0000” is output. The OR gate 256 outputs “1” when the delay detection counter 255 starts counting, that is, when at least one of the four bit data is “1”.
  • the OR gate 256 outputs a pattern detection signal indicating that a specific pattern has been detected in its own lane [i] at the timing when the delay detection counter 255 starts counting and the count value becomes 1, and the adjacent lane [ Notify [i-1] and [i + 1].
  • the selector 257 displays the pattern of the adjacent lane [i + 1] (the adjacent lane B in FIG. 4) when the lane select signal LS [1: 0] from the control circuit 26 (a lane control unit 26b described later) is “01”. Select the detection signal and output it. As described later, the lane select signal LS [1: 0] becomes “01” when the own lane [i] is the primary of the forward lane pair or the secondary of the lane pair on the return path. . On the other hand, the selector 257, when the lane select signal LS [1: 0] from the control circuit 26 (lane control unit 26b described later) is “10”, is adjacent lane [i-1] (adjacent lane A in FIG. 4).
  • the pattern detection signal is selected and output.
  • the lane select signal LS [1: 0] becomes “10” when the own lane [i] is the secondary of the forward lane pair or the primary of the lane pair on the return path, as will be described later. .
  • the AND gate 258 outputs a logical product of the output of the OR gate 256 and the output of the selector 257 as adjacent lane transmission delay difference information. That is, the AND gate 258 detects the pattern of the adjacent lane [i-1] or [i + 1] that forms a lane pair with the own lane [i] when the pattern detection signal of the own lane [i] becomes “1”. When the signal becomes “1”, “1” is output, otherwise “0” is output.
  • the adjacent lane transmission delay difference information which is the output of the AND gate 258, is input to the delay detection counter 255 as a count stop signal and also input to the control circuit 26 (OR gate 26c described later).
  • the delay detection counter 255 stops the counting operation when the output of the AND gate 258 becomes “1”, and the count value at the time of the stop, that is, the transmission delay difference of the own lane [i] is transmitted to the own lane [i]. It outputs to the control circuit 26 (transmission delay difference absorption setting part 26a mentioned later) as delay difference absorption information (4-bit data).
  • the pattern detection signal for each lane is output when the delay counter 255 increments once and the output of the delay counter 255 changes from “0” to “1”.
  • the transmission delay difference obtained by the delay detection counter 255 for each lane is counted by one more. Therefore, before using the count value of the delay detection counter 255 in the transmission delay difference absorption setting unit 26a in the subsequent stage, a process of subtracting 1 from the count value is executed by the subtractor 261 described later.
  • the count value counted by the delay detection counter 255 described above is “1” when the transmission delay difference between the own lane [i] and the adjacent lane [i ⁇ 1] or [i + 1] is 0. become.
  • a counter stop signal is received immediately after the counter 255 starts counting, and the delay detection counter
  • the count value counted by 255 is “1”.
  • the counter 255 starts counting, and then the adjacent lane [i-1] or [i + Counting is performed until a pattern detection signal is received from [1].
  • the count value counted by the delay detection counter 255 is set to 1 to the count value corresponding to the transmission delay difference between the own lane [i] and the adjacent lane [i-1] or [i + 1]. The added value.
  • Inter-lane transmission delay difference absorption control circuit 26 includes transmission delay difference absorption setting unit 26a, lane control unit 26b, and OR as shown in FIG. A gate 26c is included.
  • the OR gate 26c outputs a logical sum of adjacent lane transmission delay information from the AND gate 258 of the transmission delay difference detection unit 25b and a signal SC described later.
  • the signal SC input to the OR gate 26c of the lanes [1] to [n-1] is fixed to “0”.
  • a set signal SC2 for setting the flag “complete2” of the lane control unit 26b when the setting process is completed is sent from the initialization state machine 20b. It is input (see FIG. 34 and FIG. 35).
  • the output of the OR gate 26c is input to the determination circuits 2602 and 2604 of the lane control unit 26b as adjacent lane transmission delay difference information, as will be described later.
  • the transmission delay difference absorption setting unit (buffer control unit) 26a transmits the transmission delay difference detected by the transmission delay difference detection unit 25b until the lane pair selection reaches the lane [n] from the lane [0]. It has a function of temporarily storing it as delay difference absorption information. Also, the transmission delay difference absorption setting unit 26a detects the transmission delay difference stored and the transmission delay detected by the transmission delay difference detection unit 25b before the lane pair selection reaches the lane [0] from the lane [n]. It has a function of adding the difference. Further, the transmission delay difference absorption setting unit 26 a has a function of setting a reading position of partial data from the buffer 24 so that the value (transmission delay difference) obtained by addition is absorbed by the buffer 24. A detailed configuration of the transmission delay difference absorption setting unit 26a that performs the above function will be described later with reference to FIG.
  • the lane control unit 26b exchanges signals with the lane control unit 26b of the adjacent lane via the signal line SL, thereby performing the following functions in cooperation with the lane control unit 26b of the adjacent lane. That is, the lane control unit 26b sequentially selects lane pairs on the forward path from lane [0] to lane [n]. Then, each time a lane pair is selected, the lane control unit 26b causes the pattern detection unit 25a, the transmission delay difference detection unit 25b, and the buffer control unit 26a to execute a setting process for correcting the transmission delay difference of the selected lane pair. .
  • the lane control unit 26b sequentially selects lane pairs on the return path from the lane [n] to the lane [0] in the lanes [0] to [n] subjected to the setting process. Each time the lane control unit 26b selects a lane pair, the pattern detection unit 25a, the transmission delay difference detection unit 25b, and the buffer control unit 26a again execute a setting process for correcting the transmission delay difference of the selected lane pair.
  • the lane control unit 26b of the lane [i] receives the lane enable signal LE2 [1: 0] and the clear signal CL2 while receiving the lane enable signal LE1 [1: 0] and the clear signal CL1 from the adjacent lane. Output to adjacent lane.
  • the lane enable signal LE1 [1: 0] is the lane enable signal LE2 [1: 0] of the adjacent lane [i-1]
  • the clear signal CL1 is the clear signal CL2 of the adjacent lane [i + 1]. It is.
  • the lane enable signal LE2 [1: 0] is output as the lane enable signal LE1 [1: 0] of the adjacent lane [i + 1], and the clear signal CL2 is the clear signal CL1 of the adjacent lane [i-1]. Is output as These signals LE1 [1: 0], LE2 [1: 0], CL1, and CL2 are used in the forward path in which the lane pair is shifted from lane [0] to lane [n], and the lane pair is changed from lane [n] to lane [ It is fixed at “0” on the return path shifting to [0].
  • the lane control unit 26b of the lane [i] receives the lane enable signal LE3 [1: 0] and the clear signal CL3 from the adjacent lane, while the lane enable signal LE4 [1: 0] and the clear signal CL4. Is output to the adjacent lane.
  • the lane enable signal LE3 [1: 0] is the lane enable signal LE4 [1: 0] of the adjacent lane [i + 1]
  • the clear signal CL3 is the clear signal CL4 of the adjacent lane [i-1]. It is.
  • the lane enable signal LE4 [1: 0] is output as the lane enable signal LE3 [1: 0] of the adjacent lane [i-1], and the clear signal CL4 is the clear signal CL3 of the adjacent lane [i + 1]. Is output as These signals LE3 [1: 0], LE4 [1: 0], CL3, and CL4 are used in the return path in which the lane pair shifts from lane [n] to lane [0], and the lane pair is changed from lane [0] to lane [0]. It is fixed at “0” in the forward shift to n].
  • the lane control unit 26b outputs the lane select signal LS [1: 0] to the selector 257 of the pattern detection circuit 25 and outputs the delay setting information of the own lane [i] to the transmission delay difference absorption setting unit 26a. .
  • a detailed configuration of the lane control unit 26b that performs such a function will be described later with reference to FIGS.
  • the lane pair is selected to make one round trip while shifting between the lane [0] and the lane [n]. .
  • a setting process for correcting the transmission delay difference of the selected lane pair is executed. For example, after the lanes [0] and [1] are selected and the setting process is executed, the lanes [1] and [2] are selected and the setting process is executed. After repeating this and selecting the lanes [n-1] and [n] and executing the setting process, the termination logic 20c performs the lane pair selection loopback operation.
  • the lanes [n] and [n-1] are selected and the setting process is executed.
  • the lanes [n-1] and [n-2] are selected and the setting process is executed. This is repeated, and after the lanes [1] and [0] are selected and the setting process is executed, the initialization state machine 20b executes the lane pair selection termination process.
  • the setting processing for correcting the transmission delay difference of all lanes [0] to [n] is executed.
  • FIG. 5 is a block diagram showing the configuration of the inter-lane transmission delay difference absorption buffer 24 and the configuration of the transmission delay difference absorption setting unit 26a in the control circuit 26. is there.
  • the inter-lane transmission delay difference absorbing buffer 24 includes four stages of buffers (D) 241 to 244 and a selector 245.
  • the buffer 24 has a number of stages that can absorb the transmission delay difference of the transmission line. The number of stages is determined in advance as one of the design elements of the transmission path.
  • the four-stage buffers 241 to 244 are connected in series to the output line of the clock transfer buffer 23 and receive 8-bit data from the clock transfer buffer 23.
  • the selector 245 is connected to a line L0 that bypasses the four-stage buffers 241 to 244 from the output line of the clock transfer buffer 23, and to the output lines L1 to L4 of the four-stage buffers 241 to 244, respectively. .
  • the selector 245 selectively selects data from one of the five lines L0 to L4 according to a value held in a holding FF (flip-flop) 263 (described later) of the transmission delay difference absorption setting unit 26a. Switch to output.
  • the value held in the holding FF 263 is, for example, 3-bit data indicating the transmission delay difference between the own lane [i] and the adjacent lane, and is used as a read pointer of the buffer 24.
  • the selector 245 selects the line L0 and outputs the 8-bit data from the clock transfer buffer 23 without delay.
  • the selector 245 selects the line L 1, that is, the first-stage buffer 241 as the data read position, and delays 8-bit data from the clock transfer buffer 23 by one clock by the buffer 241. Output.
  • the selector 245 selects the line L 2, that is, the second-stage buffer 242 as the data reading position, and the 8-bit data from the clock transfer buffer 23 is divided into two clocks by the buffers 241 and 242 Output with delay.
  • the selector 245 selects the line L 3, that is, the third-stage buffer 243 as the data reading position, and the 8-bit data from the clock transfer buffer 23 is output for 3 clocks by the buffers 241 to 243. Output with delay.
  • the selector 245 selects the line L4, that is, the fourth-stage buffer 244 as the data reading position, and the 8-bit data from the clock transfer buffer 23 is output by the buffers 241 to 244 for four clocks. Output with delay.
  • the transmission delay difference absorption setting unit 26a includes a subtractor 261, a selector 262, a holding FF 263, and an adder 264.
  • the subtracter 261 subtracts 1 from the transmission delay difference absorption information of the pattern detection circuit 26, that is, the count value by the delay detection counter 255.
  • the process of subtracting 1 from the count value by the subtractor 261 is performed because the transmission delay difference obtained by the delay detection counter 255 is counted by 1 as described above with reference to FIG. This is because even if there is no difference, the transmission delay difference is “1”.
  • the present apparatus can be realized even if the subtracter 261 is provided.
  • the count value by the delay detection counter 255 is 4-bit data
  • the data output from the subtractor 261 is 3-bit data by subtracting one.
  • the selector 262 is connected to a line L10 from the subtracter 261, a line L11 from an adder 264 described later, and a line L12 from a holding FF 263 described later.
  • the selector 262 selects data from one of the three lines L10 to L12 according to the output value (switching signal) of the delay difference absorption state control decoder (third decoder; described later) 2621 of the lane control unit 26b. Are switched and output to the holding FF 263.
  • the output value of the decoder 2621 is 2-bit data as will be described later with reference to FIGS. 6 and 8, for example.
  • the selector 262 selects the line L10, outputs the value from the subtractor 261, and holds it in the holding FF 263.
  • the selector 262 selects the line L11, outputs the value from the adder 264, and holds it in the holding FF 263.
  • the selector 262 selects the line L12, outputs the value of the holding FF 263, and holds it again in the holding FF 263. That is, when the output value of the decoder 2621 is “10” or “11”, the holding FF 263 continues to hold the same value.
  • the holding FF 263 holds the value output from the selector 262 as the transmission delay difference (transmission delay difference absorption information) of the own lane [i], and uses the value as the delay setting information of the own lane [i]. Output to H.245.
  • the value held in the holding FF 263 is used as the read pointer of the buffer 24 as described above.
  • the adder 264 outputs the value obtained by adding the value from the subtractor 261 and the value from the holding FF 263 to the selector 262 through the line L11.
  • the transmission delay difference absorption processing (correction processing) in each lane [i] is executed a total of four times at the following timing so that there is no leakage. That is, when lane [i] is selected as the secondary lane on the outbound path, when lane [i] is selected as the primary lane on the outbound path, and when lane [i] is selected as the secondary lane on the outbound path, This is a total of four times when lane [i] is selected as the primary lane on the return path.
  • the output value of the delay difference absorption state control decoder 2621 becomes “00” (see FIG. 8), and the transmission delay value from the line L10, that is, the subtractor 261 is selected by the selector 245. It is stored in the holding FF 263 as the first transmission delay difference absorption information.
  • the output value of the delay difference absorption state control decoder 2621 is “01” (see FIG. 8), and the transmission delay value from the line L11, that is, the adder 264 is selected by the selector 245. It is stored in the holding FF 263 as second transmission delay difference absorption information.
  • the transmission delay value newly obtained by the subtracter 261 and the first transmission delay value held in the holding FF 263 are added by the adder 264, and the added value is the second transmission delay difference. It is stored in the holding FF 263 as absorption information.
  • the output value of the delay difference absorption state control decoder 2621 becomes “01” (see FIG. 8), and the transmission delay value from the line L11, that is, the adder 264 is selected by the selector 245. It is stored in the holding FF 263 as third transmission delay difference absorption information. That is, the transmission delay value newly obtained by the subtracter 261 and the second transmission delay value held in the holding FF 263 are added by the adder 264, and the added value is the third transmission delay difference. It is stored in the holding FF 263 as absorption information.
  • the output value of the delay difference absorption state control decoder 2621 becomes “01” (see FIG. 8), and the transmission delay value from the line L11, that is, the adder 264 is selected by the selector 245. It is stored in the holding FF 263 as the fourth transmission delay difference absorption information. That is, the transmission delay value newly obtained by the subtracter 261 and the third transmission delay value held in the holding FF 263 are added by the adder 264, and the added value is the fourth transmission delay difference. It is stored in the holding FF 263 as absorption information.
  • the output value of the delay difference absorption state control decoder 2621 becomes “01” (see FIG. 8), and the transmission delay value from the line L12, that is, the holding FF 263 is selected by the selector 245, and the transmission delay It is stored again in the holding FF 263 as difference absorption information. That is, the holding FF 263 continues to hold the same value. Even when “11” is erroneously input to the selector 262 as the output value of the delay difference absorption state control decoder 2621, the line L12 is selected by the selector 245, and the holding FF 263 continues to hold the same value.
  • the pattern detection circuit 25, the buffer 24, and the transmission delay difference absorption setting unit 26a configured as described above will be briefly described.
  • the count value by the counter 255 of lane [0] is “2”
  • the transmission delay difference absorption setting of lane [0] is set. “001” is held in the holding FF 263 of the unit 26a. Since the value in the holding FF 263 becomes the read pointer of the buffer 24, the first stage buffer 241 is selected by the selector 245 in the lane [0], and data is read from the buffer 241.
  • the counter 255 of lane [1] receives adjacent lane transmission delay difference information (pattern detection signal of lane [0]) from the AND gate 258 when “1” is counted, stops the counting operation, and “000” is held in the holding FF 263 of the transmission delay difference absorption setting unit 26a.
  • the bypass line L0 is selected by the selector 245, and the data is read out by bypassing the buffers 241 to 244.
  • FIG. 6 is a block diagram showing the configuration of the lane control unit 26b in the inter-lane transmission delay difference absorption control circuit 26.
  • the lane control unit 26b includes determination circuits 2601 to 2612, flag holding registers 2613 to 2618, a first decoder 2619, a second decoder 2620, a third decoder 2621, an inverter 2622, and an OR gate 2623. Yes.
  • Determination circuits 2601 and 2602, flag holding registers 2613 and 2614 and first decoder 2619 are used in the forward path
  • determination circuits 2603 and 2604, flag holding registers 2615 and 2616 and second decoder 2620 are used in the backward path.
  • the determination circuits 2605 to 2612, flag holding registers 2617 and 2618, the third decoder 2621, the inverter 2622 and the OR gate 2623 are used in both the forward path and the backward path.
  • the determination circuit 2601 receives the lane enable signal LE1 [1: 0], determines whether the signal LE1 [1: 0] is “01”, and the signal LE1 [1: 0] is “01”. If it is determined that the flag has become, the flag “current1” is set in the flag holding register 2613.
  • the lane enable signal LE1 [1: 0] is the lane enable signal LE2 [1: 0] of the adjacent lane [i-1] as described above.
  • the flag holding register 2613 When the determination circuit 2601 sets the flag “current1”, the flag holding register 2613 outputs “1” as the signal sigA1.
  • the clear signal CL1 is input to the flag holding register 2613.
  • the flag holding register 2613 clears the flag “current1” and outputs “0” as the signal sigA1.
  • the clear signal CL1 is the clear signal CL2 of the adjacent lane [i + 1] as described above.
  • the flag “current1” indicates that the own lane [i] is selected as a lane pair in the forward path.
  • the determination circuit 2602 receives the output sigA1 of the flag holding register 2613 and the adjacent lane transmission delay difference information from the OR gate 26c, and whether the output sigA1 becomes “1” and the adjacent lane transmission delay information becomes “1”. Determine whether or not. If the determination circuit 2602 determines that the output sigA1 is “1” and the adjacent lane transmission delay information is “1”, the determination circuit 2602 sets the flag “complete1” in the flag holding register 2614. When the flag “complete1” is set by the determination circuit 2602, the flag holding register 2614 outputs “1” as the signal sigA2. The flag “complete1” indicates that the own lane [i] has completed the transmission delay difference absorption processing in the forward path.
  • the first decoder (Lane EN decoder1) 2619 receives the signal sigA1 (current1) from the register 2613 and the signal sigA2 (complete1) from the register 2614, decodes these signals sigA1 and sigA2, and outputs a lane enable signal LE2 [ 1: 0] and a clear signal CL2 are generated and output.
  • the contents decoded by the first decoder 2619, that is, the relationship between the signals sigA1 and sigA2 and the output signals LE2 [1: 0] and CL2 are as shown in the logic (truth table) shown in FIG.
  • the lane enable signal LE2 [1: 0] is output as the lane enable signal LE1 [1: 0] of the adjacent lane [i + 1], and the clear signal CL2 is output from the adjacent lane [i-1]. Is output as the clear signal CL1.
  • Determination circuits 2603, 2604, flag holding registers 2615, 2616 and second decoder 2620 used in the return path correspond to determination circuits 2601, 2602, flag holding registers 2613, 2614 and first decoder 2619 used in the forward path, respectively.
  • the lane enable signals LE3 [1: 0] and LE4 [1: 0] correspond to the lane enable signals LE1 [1: 0] and LE2 [1: 0], respectively, and the clear signals CL3 and CL4 are respectively the clear signal CL1.
  • CL2 is supported.
  • the flags “current2” and “complete2” correspond to the flags “current1” and “complete1”, respectively, and the signals sigB1 and sigB2 correspond to the signals sigA1 and sigA2, respectively.
  • the determination circuit 2603 receives the lane enable signal LE3 [1: 0], determines whether the signal LE3 [1: 0] is “01”, and the signal LE3 [1: 0] is “01”. If it is determined that it has become 01 ", the flag" current2 "is set in the flag holding register 2615. Note that the lane enable signal LE3 [1: 0] is the lane enable signal LE4 [1: 0] of the adjacent lane [i + 1] as described above.
  • the flag holding register 2615 When the flag “current2” is set by the determination circuit 2603, the flag holding register 2615 outputs “1” as the signal sigB1.
  • the clear signal CL3 is input to the flag holding register 2615.
  • the flag holding register 2615 clears the flag “current2” and outputs “0” as the signal sigB1.
  • the clear signal CL3 is the clear signal CL4 of the adjacent lane [i-1] as described above.
  • the flag “current2” indicates that the own lane [i] is selected as a lane pair on the return path.
  • the determination circuit 2604 receives the output sigB1 of the flag holding register 2615 and the adjacent lane transmission delay difference information from the OR gate 26c, whether the output sigB1 has become “1” and the adjacent lane transmission delay information has become “1". Determine whether or not. If the determination circuit 2604 determines that the output sigB1 is “1” and the adjacent lane transmission delay information is “1”, the determination circuit 2604 sets the flag “complete2” in the flag holding register 2616. When the determination circuit 2604 sets the flag “complete2”, the flag holding register 2616 outputs “1” as the signal sigB2. The flag “complete2” indicates that the own lane [i] has completed the transmission delay difference absorption processing in the return path.
  • the second decoder (Lane EN decoder2) 2620 receives the signal sigB1 (current2) from the register 2615 and the signal sigB2 (complete2) from the register 2616, decodes these signals sigB1 and sigB2, and outputs a lane enable signal LE4 [ 1: 0] and a clear signal CL4 are generated and output.
  • the contents decoded by the second decoder 2620, that is, the relationship between the signals sigB1, sigB2 and the output signals LE4 [1: 0], CL4 are as shown in the logic (truth table) shown in FIG. However, when the truth table shown in FIG.
  • the signals sigA1 and sigA2 are replaced with the signals sigB1 and sigB2, respectively, and the lane enable signal LE2 [1: 0] and the clear signal CL2 are each replaced with the lane. It is replaced with an enable signal LE4 [1: 0] and a clear signal CL4.
  • the lane enable signal LE4 [1: 0] is output as the lane enable signal LE3 [1: 0] of the adjacent lane [i-1], and the clear signal CL4 is output from the adjacent lane [i + 1]. Is output as the clear signal CL3.
  • the determination circuit 2605 receives the lane enable signal LE1 [1: 0], determines whether the signal LE1 [1: 0] is “01”, and the signal LE1 [1: 0] is “01”. When it is determined that the flag has become, the flag “Primary” is set in the flag holding register 2617.
  • the determination circuit 2606 receives the lane enable signal LE1 [1: 0], determines whether the signal LE1 [1: 0] is “00”, and the signal LE1 [1: 0] is “00”. When it is determined that the flag has become, the flag “Primary” in the flag holding register 2617 is cleared.
  • the determination circuit 2607 receives the lane enable signal LE3 [1: 0], determines whether the signal LE3 [1: 0] is “01”, and the signal LE3 [1: 0] is “01”. When it is determined that the flag has become, the flag “Primary” is set in the flag holding register 2617.
  • the determination circuit 2608 receives the lane enable signal LE3 [1: 0], determines whether the signal LE3 [1: 0] is “00”, and the signal LE3 [1: 0] is “00”. When it is determined that the flag has become, the flag “Primary” in the flag holding register 2617 is cleared.
  • the flag holding register (hereinafter referred to as “primary register”) 2617 is configured by a set priority FF so that it can be set when the lane enable signal LE1 [1: 0] or LE3 [1: 0] is “01”.
  • the primary register 2617 outputs “1” when the flag “Primary” is set by the determination circuit 2605 in the forward path or when the flag “Primary” is set by the determination circuit 2607 in the return path.
  • the primary register 2617 outputs “0” when the flag “Primary” is cleared by the determination circuit 2606 in the forward path or when the flag “Primary” is cleared by the determination circuit 2608 in the return path.
  • the flag “Primary” indicates that the own lane [i] is selected as the primary lane of the lane pair in the forward or return path and the transmission delay difference is being adjusted.
  • the determination circuit 2609 receives the lane enable signal LE1 [1: 0], determines whether the signal LE1 [1: 0] is “10”, and the signal LE1 [1: 0] is “10”. When it is determined that the flag has become, the flag “Secondary” is set in the flag holding register 2618.
  • the determination circuit 2610 receives the lane enable signal LE1 [1: 0], determines whether the signal LE1 [1: 0] is “01”, and the signal LE1 [1: 0] is “01”. If it is determined that the flag has become, the flag “Secondary” in the flag holding register 2618 is cleared.
  • the determination circuit 2611 receives the lane enable signal LE3 [1: 0], determines whether the signal LE3 [1: 0] is “10”, and the signal LE3 [1: 0] is “10”. When it is determined that the flag has become, the flag “Secondary” is set in the flag holding register 2618.
  • the determination circuit 2612 receives the lane enable signal LE3 [1: 0], determines whether the signal LE3 [1: 0] is “01”, and the signal LE3 [1: 0] is “01”. If it is determined that the flag has become, the flag “Secondary” in the flag holding register 2618 is cleared.
  • the flag holding register (hereinafter referred to as “secondary register”) 2618 is configured by a clear priority FF, and is configured to be surely cleared.
  • the secondary register 2618 outputs “1” when the flag “Secondary” is set by the determination circuit 2609 in the forward path or when the flag “Secondary” is set by the determination circuit 2611 in the return path.
  • the secondary register 2618 outputs “0” when the flag “Secondary” is cleared by the determination circuit 2610 in the forward path or when the flag “Secondary” is cleared by the determination circuit 2612 in the return path.
  • the flag “Secondary” indicates that the own lane [i] is selected as the secondary lane of the lane pair in the forward or return path and the transmission delay difference is being adjusted.
  • the third decoder (Decoder 3) 2621 functions as a delay difference absorption state control decoder shown in FIG. That is, the third decoder 2621 correctly holds the transmission delay difference absorption information (output from the delay detection counter 255 shown in FIG. 4) indicating the transmission delay difference absorption amount of the own lane [i] in the holding FF 263 shown in FIG. A switching signal for switching the selector 262 is generated.
  • the third decoder 2621 outputs “00” for the first time (when its own lane [i] is the secondary lane of the forward path), selects the output of the subtractor 261, that is, the transmission delay value, and stores it in the holding FF 263.
  • the third decoder 2621 outputs “01” for the second time (when its own lane [i] is the forward primary lane), and calculates the sum of the output of the adder 264, that is, the output of the subtractor 261 and the value of the holding FF 263. Select and store in the holding FF 263.
  • the third decoder 2621 outputs “01” for the third time (when its own lane [i] is the return secondary lane), and calculates the sum of the output of the adder 264, that is, the output of the subtractor 261 and the value of the holding FF 263. Select and store in the holding FF 263.
  • the third decoder 2621 outputs “01” for the fourth time (when its own lane [i] is the primary lane of the return path), and calculates the sum of the output of the adder 264, that is, the output of the subtractor 261 and the value of the holding FF 263. Select and store in the holding FF 263.
  • the third decoder 2621 When the own lane [i] is not selected as the lane pair, the third decoder 2621 outputs “10”, selects the line L12, and causes the holding FF 263 to hold the same value as the currently held value.
  • the third decoder 2621 outputs flags “current1”, “complete1”, “current2”, “Primary”, and the like from the flag holding registers 2613 to 2615, 2617, and 2618 to output a switching signal for switching the selector 262 as described above. “Secondary” is entered. The third decoder 2621 then decodes these flags to generate a switching signal and outputs it to the selector 262. The decoding contents by the third decoder 2621, that is, the relationship between the flags “current1”, “complete1”, “current2”, “Primary”, “Secondary” and the switching signal is as shown in the logic (truth table) shown in FIG. is there.
  • the inverter 2622 inverts the value of each bit of the lane enable signal LE3 [1: 0] and outputs the result.
  • the OR gate 2623 generates a logical sum of the lane enable signal LE1 [1: 0] and the inverted signal of the lane enable signal LE3 [1: 0] from the inverter 2622, and serves as the lane select signal LS [1: 0]. Output.
  • the lane select signal LS [1: 0] is a signal for switching the selector 257 and selecting the pattern detection signal of the adjacent lane [i + 1] or [i-1]. Used.
  • the 2-bit lane enable signal LE2 [1: 0] of the control circuit 26 of lane [0] and the 2-bit lane enable signal LE1 [1: 0] of the control circuit 26 of lane [1] are connected.
  • bit [0] is a bit indicating the primary lane
  • bit [1] is a bit indicating the secondary lane.
  • the data including the specific pattern is transmitted from the transmission module 10 to the reception module 20 with the comparator 252 enabled.
  • the delay detection counter 255 is activated only in the lanes [0] and [1] in which the comparator 252 is enabled, and adjacent lane transmission delay difference information is acquired in each of the lanes [0] and [1].
  • the transmission delay difference is measured and stored in the holding FF 263 (step S14).
  • the transmission delay difference stored in the holding FF 263 is output to the selector 245 of the buffer 24 as the delay setting information of the own lane [i], and is used as the read pointer of the buffer 24 (step S15).
  • the lane enable signals LE2 [1: 0] of the lanes [0] and [1] are set so that the lanes [1] and [2] are selected as lane pairs (step S16). That is, when the transmission delay difference absorption setting between the lanes [0] and [1] is completed, the lane control unit 26b of the lane [0] transmits the clear signal CL2 to the initialization state machine 20b (see FIG. 12). . Accordingly, the lane enable signal LE1 [1: 0] from the initialization state machine 20b changes from “01” to “00”, and the lane enable signal LE2 [1: 0] of lane [0] changes from “10” to “10”.
  • the lane enable signal LE2 [1: 0] of lane [1] is changed from“ 00 ”to“ 10 ”(see FIG. 13). Accordingly, lane [1] is set as the primary lane and lane [2] is set as the secondary lane.
  • the lane control unit 26b of each lane [i] performs lane enable signals LE1 [1: 0], LE2 [1: 0] and clear signals CL1, CL2. Interact with adjacent lanes.
  • the lane pair shift selection is executed until the lanes [n-1] and [n] are selected as lane pairs in the forward path, and the transmission delay difference absorption process (correction process) is performed each time the lane pair is selected. It is executed (steps S17 and S18).
  • the termination logic 20c performs a lane pair selection return operation (step S19). Further, as will be described later with reference to FIGS.
  • the lane control unit 26b of each lane [i] performs lane enable signals LE3 [1: 0], LE4 [1: 0] and clear signals CL3, CL4. Interact with adjacent lanes.
  • the lane pair is sequentially shifted and selected from lanes [n] and [n-1] to lanes [1] and [0], and each time a lane pair is selected, transmission delay difference absorption processing is executed. (Step S20). Note that the absorption process for the first lane pair [n], [n-1] after the return overlaps with the absorption process for the last lane pair [n-1], [n] in the forward path, and is omitted. You may start from [n-1] and [n-2].
  • FIG. 10A to FIG. 10F schematically show transmission data transmitted by a transmission apparatus configured with four serial lanes [0] to [3].
  • the data that reaches the receiving side in each lane has a time difference due to the difference in the transmission line length and the manufacturing variation of the device between the transmitter and the receiver.
  • FIGS. 10A to 10F show the state of received data after sampling with the clock on the receiving side.
  • alphabets A to H in the figure are data for one bit that should be synchronized between lanes, that is, received at the same timing (clock edge).
  • FIG. 10A shows a state before the transmission delay difference absorption setting process is executed.
  • lanes having the shortest line length are lanes [1] and [3]
  • lanes having the longest line length are lanes [2].
  • the data of lane [0] is 1 clock more than the data of lane [1]. Arrives late.
  • the reception timing of the lane [2] having the maximum line length and the like are as follows.
  • the read timing (read pointer) from the buffer 24 of each lane [0], [1], [3] is adjusted and set so that the reception timing of the lanes [0], [1], [3] matches.
  • the setting process for correcting the transmission delay difference is performed on the lane configuration shown in FIG. 10A, first, as shown in FIG. 10B, the primary lane [0] and the secondary lane [1] A lane pair is selected, and setting processing for these lanes [0] and [1] is performed.
  • the line length of lane [1] is shorter than that of lane [0], and the data of lane [1] reaches the receiving side before the data of lane [0].
  • the pattern detection is performed before the pattern detection in the lane [0].
  • the lane [1] receives the pattern detection signal from the lane [0] when “2” is counted by the counter 255 of the lane [1], and generates the adjacent lane transmission delay difference information by the AND gate 258.
  • Lane [0] first receives the pattern detection signal on the lane [1] side as the pattern detection signal for adjacent lane B, receives the pattern detection signal for its own lane [0] one clock later, and receives an AND gate 258. Adjacent lane transmission delay difference information is generated. At this time, the count value by the counter 255 of the lane [0] becomes “1”, and the count value by the counter 255 of the lane [2] becomes “2”.
  • the data in lane [0] arrives one clock later than the data in lane [1].
  • This delay is also detected with a delay of one clock in the pattern detection unit 25a of lanes [0] and [1].
  • the adjacent lane transmission delay difference information which is the logical product of the pattern detection signals of lanes [0] and [1] generated by the AND gate 258, is a signal for stopping the delay detection counter 255 of the own lane, as shown in FIG. It becomes. That is, the counting operation by the counter 255 started when the transmission delay difference detection pattern is detected is stopped by the adjacent lane transmission delay difference information.
  • the count value by the counter 255 is the transmission delay difference absorption information shown in FIG. This information is determined for each lane. For example, when the data of lane [0] arrives one clock earlier than the data of lane [1], the count value of lane [0] is one more than the count value of lane [1]. Conversely, when the data of lane [1] arrives earlier by one clock than the data of lane [0], the count value of lane [1] is one more than the count value of lane [0].
  • the count value in each lane of the lane pair is sent as transmission delay difference absorption information to the transmission delay difference absorption setting unit 26a of the own lane in the control circuit 26 of each lane.
  • a value obtained by subtracting “1” from the count value by the counter 255 is held in the holding FF 263.
  • “000” is held in the holding FF 263 of the lane [0].
  • “001” is held in the holding FF 263 of [1].
  • the delay setting information held in the holding FFs 263 of the lanes [0] and [1] is used as the read pointer of the buffer 24 of each lane, and the selector 245 selects one of the lines L0 to L4 corresponding to the read pointer. The data from one is selected and output. As a result, the line L0 is selected in the buffer 24 of the lane [0], and the selector 245 outputs the data as it is without delay (refer to the data A to H of the lane [0] in FIG. 10B). In the buffer 24 in lane [1], the line L1, that is, the first-stage buffer 241 is selected, and the selector 245 outputs the data delayed by one clock with respect to the data in lane [0] [FIG. (See data A ′ to H ′ in lane [1] of (B)).
  • primary lane [1] and secondary lane [2] are selected as lane pairs, and the same setting process as described above is performed for these lanes [1] and [2].
  • the output value of the third decoder 2621 of the lane control unit 26b is “01” (see FIG. 8), and the selector 262 selects the output of the adder 264.
  • the delay value “001” obtained by the subtractor 261 in this processing and the value “001” already held in the holding FF 263 are added by the adder 264, and the added value “ 010 ′′ is held in the holding FF 263 of the lane [1].
  • the output value of the third decoder 2621 of the lane control unit 26b is “00” (see FIG. 8), and the selector 262 selects the output of the subtractor 261. Therefore, “000” is held in the holding FF 263 of the lane [2].
  • the line L2 that is, the second-stage buffer 242 is selected, and the selector 245 outputs the data delayed by one clock with respect to the data of the lane [2] [FIG. 10 (C), see data A ′ to H ′ in lane [1]].
  • the line L0 is selected in the buffer 24 of the lane [2], and the selector 245 outputs the data as it is without delay (refer to the data A to H of the lane [2] in FIG. 10C).
  • primary lane [2] and secondary lane [3] are selected as lane pairs, and the same setting process as described above is performed for these lanes [2] and [3].
  • the output value of the third decoder 2621 of the lane control unit 26b is “01” (see FIG. 8), and the selector 262 selects the output of the adder 264.
  • the delay value “000” obtained by the subtractor 261 in this processing and the value “000” already held in the holding FF 263 are added by the adder 264, and the added value “ 000 ′′ is held in the holding FF 263 of the lane [2].
  • the output value of the third decoder 2621 of the lane control unit 26b is “00” (see FIG. 8), and the selector 262 selects the output of the subtractor 261. Therefore, in lane [3], the count value “011” from the counter 255 is subtracted by “1” by the subtractor 261, and the subtracted value “010” is held in the holding FF 263. As a result, the line L0 is selected in the buffer 24 of the lane [2], and the selector 245 outputs the data as it is without delay (refer to the data A to H of the lane [2] in FIG. 10D).
  • the line L2 that is, the second-stage buffer 242 is selected, and the selector 245 outputs the data delayed by two clocks with respect to the data of the lane [2] [FIG. (See data A ′ to H ′ in lane [3] in (D)).
  • the setting process for correcting the transmission delay difference is performed for all lanes [0] to [3].
  • lane [0] receives data one clock earlier than other lanes [1] to [3]. It remains.
  • the setting process similar to the above is performed not only in the forward path for shifting the lane pair from lane [0] to lane [3], but also in the lane pair as described below. It is also executed on the return path to shift from lane [0] to lane [0].
  • the read pointer setting process is performed so that the transmission delay differences of all the lanes [0] to [3] are corrected.
  • a flag “complete1” indicating that the forward path setting process has been completed is set in the lane control units 26b of the lanes [0] to [3] to be set for the backward path setting process.
  • the primary lane [3] and the secondary lane [2] are selected as lane pairs, and the second (return) setting process is performed.
  • the transmission delay difference absorption information of the counter 255 is “001” in both lanes [3] and [2].
  • a value obtained by subtracting “1” from the transmission delay difference absorption information “001” by the subtractor 261 is “000”.
  • the output value of the third decoder 2621 of the lane control unit 26b is “01” (see FIG. 8), and the selector 262 selects the output of the adder 264. . Therefore, in lane [3], “010” is continuously held in the holding FF 263, and “000” is held in the holding FF 263 in lane [2].
  • the primary lane [2] and the secondary lane [1] are selected as lane pairs, and the second (return) setting process is performed.
  • the transmission delay difference absorption information of the counter 255 is “001” in both lanes [2] and [1].
  • a value obtained by subtracting “1” from the transmission delay difference absorption information “001” by the subtractor 261 is “000”.
  • the output value of the third decoder 2621 of the lane control unit 26b is “01” (see FIG. 8), and the selector 262 selects the output of the adder 264. . Therefore, in lane [2], “000” continues to be held in the holding FF 263, and in lane [1], “010” continues to be held in the holding FF 263.
  • the primary lane [1], the secondary lane [0], and the lane pair are selected, and the second (return) setting process is performed.
  • the count value by the counter 255 of the lane [1] becomes “001”, and the counter of the lane [0]
  • the count value by 255 is “010”.
  • the output value of the third decoder 2621 of the lane control unit 26b is “01” (see FIG. 8), and the selector 262 selects the output of the adder 264. .
  • the line L2 that is, the second-stage buffer 242 is selected, and the selector 245 outputs the data with a delay of two clocks with respect to the data of the lane [2] [FIG. 10 (F) lane [1] data A ′ to H ′).
  • the line L1 that is, the first-stage buffer 241 is selected, and the selector 245 outputs the data delayed by one clock with respect to the data in lane [2] [FIG. (See data A ′ to H ′ in lane [0] in (F)).
  • the flags “Primary” and “Secondary” in each lane are included.
  • the states of the flags “Primary”, “Secondary”, “current1”, “complete1”, “current2”, and “complete2” in each lane are respectively blocks P, S, cu1, Shown by co1, cu2, co2.
  • the flag is set, the corresponding block is shaded, and when the flag is not set (cleared), the corresponding block is blank.
  • the flags “current2” and “complete2” in each lane are not shown, but these flags are all unset.
  • FIGS. 25 to 37 the flags “current1” and “complete1” in each lane are not shown, but as shown in FIG. 24, all the flags “current1” are cleared and all the flags “complete1” are set. Has been.
  • the four lanes [0] to [3] are arranged between the initialization state machine 20b and the termination logic 20c, as in the apparatus shown in FIGS.
  • the signal lines SL are connected in series (beaded).
  • initializing is performed at each operation stage (1) to (27) below the signal line SL connecting the initialization state machine 20b, the lanes [0] to [3] and the termination logic 20c.
  • the state (2-bit data) of the lane enable signals LE1 [1: 0] and LE2 [1: 0] input / output to / from the linking state machine 20b, the lanes [0] to [3] and the termination logic 20c is shown. ing.
  • the lane pair selection operations (1) to (8) in the forward path will be described with reference to FIGS.
  • the primary lane [0] performs the setting process in the forward path.
  • the flag co1 is set in the lane [0]
  • both the flag cu1 and the flag co1 are set in the lane [0]. Accordingly, lane [0] transmits a clear signal CL2 to the initialization state machine 20b.
  • the flags P and cu1 of the lane [1] are set, the flag S is cleared, and further from the lane [1]
  • the lane enable signal LE1 [1: 0] input to the lane [2] is switched from “00” to “10”.
  • the flag S of the lane [2] is set.
  • lane [0] is deactivated, and a lane pair having lane [1] as the primary lane and lane [2] as the secondary lane is selected.
  • the initialization state machine 20b waits for the lane enable signal LE4 [1: 0] from the lane [0] to switch from “00” to “10”.
  • the lanes [1] and [2] receive the adjacent lane transmission delay difference information after the above operation (4), that is, the primary lane [1] performs the setting process in the forward path.
  • the flag co1 is set in the lane [1]
  • both the flag cu1 and the flag co1 are set in the lane [1].
  • the lane [1] outputs the clear signal CL2 to the lane [0], and the clear signal CL2 is input as the clear signal CL1 of the lane [0].
  • the lanes [2] and [3] receive the adjacent lane transmission delay difference information after the above operation (7), that is, the primary lane [2] performs the setting process in the forward path.
  • the flag co1 is set in the lane [2]
  • both the flag cu1 and the flag co1 are set in the lane [2].
  • the lane [2] outputs the clear signal CL2 to the lane [1], and the clear signal CL2 is input as the clear signal CL1 of the lane [1].
  • the lane pair selection loopback operation that is, the operations (9) to (15) for switching the lane pair selection from the forward path to the return path will be described with reference to FIGS.
  • the operations (9) and (10) shown in FIGS. 19 and 20 when the clear signal CL1 is input to the lane [1] from the lane [2], the flag cu1 of the lane [1] is cleared.
  • the lane enable signal LE1 [1: 0] input from the lane [1] to the lane [2] is switched from “01” to “00”.
  • the flag P of lane [2] is cleared.
  • the lane enable signal LE1 [1: 0] switches from “10” to “01”.
  • the lane enable signal LE1 [1: 0] “01” is input to the lane [3]
  • the flags P and cu1 of the lane [3] are set and the flag S is cleared.
  • lane [2] is deactivated and lane [3] is set to the primary lane.
  • the termination logic 20c sets the flag co1 of the lane [3].
  • Set signal SC1 is input to lane [3] as adjacent lane transmission delay information.
  • the flag co1 is set in the lane [3]
  • both the flag cu1 and the flag co1 are set in the lane [3]. Is set. Accordingly, the lane [3] outputs the clear signal CL2 to the lane [2], and the clear signal CL2 is input as the clear signal CL1 of the lane [2].
  • the termination logic 20c inputs the clear signal CL1 to the lane [3].
  • the lane enable signal LE3 [1: 0] input to the lane [3] is switched from “00” to “10”. Accordingly, the flag cu1 of the lane [3] is cleared and the flag S of the lane [3] is set.
  • the lane enable signal LE2 [1: input from the lane [3] to the termination logic 20c. 0] switches from “01” to “00”. Accordingly, the termination logic 20c switches the lane enable signal LE3 [1: 0] input to the lane [3] from “10” to “01”.
  • the lane pair selection operations (16) to (27) in the return path will be described with reference to FIGS.
  • the lanes [3] and [2] receive adjacent lane transmission delay difference information after the above operation (15), that is, the primary lane [3] performs the setting process in the return path.
  • the flag co2 is set in the lane [3]
  • both the flag cu2 and the flag co2 are set in the lane [3].
  • the lane [3] outputs the clear signal CL4 to the termination logic 20c, and the clear signal CL4 is input to the termination logic 20c.
  • the flags P and cu2 of the lane [2] are set, the flag S is cleared, and further from the lane [2]
  • the lane enable signal LE3 [1: 0] input to the lane [1] is switched from “00” to “10”.
  • the flag S of the lane [1] is set.
  • the lane [3] is deactivated, and a lane pair having the lane [2] as the primary lane and the lane [1] as the secondary lane is selected.
  • the lanes [2] and [1] receive the adjacent lane transmission delay difference information after the above operation (18), that is, the primary lane [2] performs the setting process in the return path.
  • the flag co2 is set in the lane [2]
  • both the flag cu2 and the flag co2 are set in the lane [2].
  • the lane [2] outputs the clear signal CL4 to the lane [3], and the clear signal CL4 is input as the clear signal CL2 of the lane [3].
  • the initialization state machine 20b displays the flag of the lane [0].
  • a set signal SC2 for setting co2 is input as adjacent lane transmission delay information for lane [0].
  • the flag co2 is set in the lane [0]
  • the flags cu2 and co2 are set in the lane [0]. Both are set. Accordingly, the lane [0] outputs the clear signal CL4 to the lane [1], and the clear signal CL4 is input as the clear signal CL3 of the lane [1].
  • the transmission delay difference absorbing device (communication device) described above, the transmission delay is performed while the lane pairs are sequentially shifted and selected by the pattern detection circuit 25 and the control circuit 26 (lane control unit 26b) in the lanes connected in a bead shape.
  • Information related to the difference absorption setting process (transmission delay difference) is collected.
  • the control circuit 26 having the smaller transmission delay difference in the lane pair determines the data read timing of its own inter-lane transmission delay difference absorbing buffer 24 in the lane having the larger transmission delay difference.
  • Setting processing is performed so as to match 24.
  • the setting process is executed not only on the forward path that shifts the lane pair from lane [0] to lane [n], but also on the return path that shifts the lane pair from lane [n] to lane [0].
  • the lane [0] has 1 data more than the other lanes [1] to [3]. It is possible to reliably prevent the setting process from being completed in a state of receiving the clock earlier.
  • the read pointer is set so that the transmission delay differences of all the lanes [0] to [n] are absorbed without concentrating information in one control circuit as in the conventional case. Processing is performed reliably. Therefore, even if the number of lanes to be processed increases, setting processing for all lanes is possible simply by connecting the lanes in a bead shape (in series), and setting processing for correcting the transmission delay difference between lanes is possible. It is also possible to realize wiring layout, noise countermeasures, and circuit speedup while reliably executing.
  • Equipment with data transmission function 10 Transmission module 10-0 to 10-n Transmission unit for lanes [0] to [n] 20 Reception module (communication device) 20-0 to 20-n Lane [0] to [n] receiver 20a Processing module 20b Initialization state machine 20c Termination logic 21 Serial / parallel (S / P) conversion circuit 22 Bit boundary detection circuit 23 Clock transfer buffer 24 Inter-lane transmission delay difference absorption buffer (buffer; absorption processing unit; control unit) 241 to 244 Buffer 245 Selector 25 Pattern detection circuit (absorption processing unit; control unit) 25a pattern detector 25b transmission delay difference detector between adjacent lanes (transmission delay difference detector; detector) 251 Transmission delay detection pattern storage unit 252 Comparator 253 Determination circuit 254 AND gate 255 Delay detection counter 256 OR gate 257 Selector 258 AND gate 26 Interlane transmission delay difference absorption control circuit (absorption processing unit; control unit) 26a Transmission delay difference absorption setting unit (buffer control unit) 26b Lane control unit 26c OR gate 261 subtractor 262 selector 263

Landscapes

  • Engineering & Computer Science (AREA)
  • General Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Computer Networks & Wireless Communication (AREA)
  • Signal Processing (AREA)
  • Synchronisation In Digital Transmission Systems (AREA)
  • Communication Control (AREA)
  • Dc Digital Transmission (AREA)

Abstract

 同一信号を受信する隣接する2つの受信部(20)間で、信号を受信した旨の情報を信号線(SL)を介して互いに通知し、他方の受信部(20)からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、隣接する受信部のうちの一方の受信部と、一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行なう。これにより、処理対象のレーン数が増大しても、配線レイアウト,ノイズ対策,回路の高速化を可能にしながら、伝送遅延差を確実に吸収補正することができる。

Description

伝送遅延差補正方法,通信装置および通信システム
 本件は、伝送遅延差補正方法,通信装置および通信システムに関する。
 一般に、サーバ等の装置の内部では、送信モジュールと受信モジュールとの間で複数ビットのパラレルデータの伝送が行なわれる。複数ビットのパラレルデータをビット数分の信号線によりパラレルに伝送する場合、伝送経路長の違い等により信号線間に伝送遅延差(skew)が発生する。このため、伝送遅延差が受信側クロックの1周期内に収まらない場合、複数ビットのパラレルデータが、受信モジュールにおいて同一タイミングで受信されるように、各信号線で伝送されるデータの伝送遅延差を吸収する必要がある。従って、パラレルデータのビット数が増大すると、多数の信号線について、伝送遅延差を吸収する処理を行なわなければならない。
 そこで、送信側で複数ビットのパラレルデータを複数の部分データに分割し、分割された複数の部分データを、それぞれ、送信側と受信側との間に並設された複数のレーンによって送信側から受信側へシリアルデータとして伝送することが行なわれている。この場合も、伝送経路長の違い等によりレーン間に伝送遅延差(skew)が発生する。このため、伝送遅延差が受信側クロックの1周期内に収まらない場合、複数のレーンによって伝送されるデータが、受信側において同一タイミングで受信されるように、各レーンで伝送されるデータの伝送遅延差を吸収する必要がある。
 しかし、部分データを転送する場合には、パラレルデータのビット数より数が少ないレーン毎に伝送遅延差の吸収処理が行なわれるので、ビット数分の信号線について伝送遅延差の吸収処理が行なわれる場合に比べ、処理量が大幅に削減される。例えば64ビットのパラレルデータを8のレーンにより送信側から受信側へ送信する際、64ビットのパラレルデータが8組の8ビットデータに分割され、各8ビットデータが、パラレル/シリアル変換され、シリアルデータとして各レーンにより伝送される。従って、64ビット分の信号線について伝送遅延差の吸収処理を行なう代わりに8のレーンについて伝送遅延差の吸収処理を行なうだけで、64ビットのパラレルデータが受信側で同一タイミングで受信されるようになる。
 より具体的に、図38に示す、データ伝送機能を有するサーバ等の装置100では、送信モジュール110と受信モジュール120との間で複数ビット(例えば64ビット)のパラレルデータの伝送が行なわれる。このとき、送信モジュール110では、複数ビットのパラレルデータが複数の部分データに分割される。分割された複数の部分データは、それぞれ、送信モジュール110と受信モジュール120との間に並設されたn+1(nは自然数)のレーン[0]~[n]によって、送信モジュール110から受信モジュール120へシリアルデータとして伝送される。そして、受信モジュール120において、複数の部分データから複数ビットのパラレルデータが復元される。
 各レーン[i](i=0~n)は、レーン[i]用送信部110-iと、レーン[i]用受信部120-iと、レーン[i]用伝送路130-iとを含んでいる。また、送信部110-1~110-nは送信モジュール110に含まれ、受信部120-1~120-nは受信モジュール120に含まれている。
 各送信部110-iは、分割された部分データ(例えば8ビットデータ)をパラレル/シリアル変換しシリアルデータとして伝送路130-iへ送出する。
 各伝送路130-iは、PCI (Peripheral Component Interconnect) Expressに代表されるシリアル伝送路で、送信部110-iから送出されたシリアルデータを受信部120-iへ伝送する。
 各受信部120-iは、図39を参照しながら後述するごとく、伝送路130-iから受信したシリアルデータをシリアル/パラレル変換して部分データを復元する。また、各受信部120-iでは、データの読出位置を予め設定されたレーン間伝送遅延差吸収バッファ124(後述)により、各レーン[i]の伝送遅延差が吸収される。そして、伝送遅延差吸収後の部分データから、複数ビットのパラレルデータが復元される。
 図39を参照しながら、図38に示す装置100の受信モジュール120および各レーン[i]用受信部120-iの構成について説明する。なお、図39では、レーン[0]用受信部120-0の詳細構成のみが示されているが、各レーン[i]用受信部120-iもレーン[0]用受信部120-0と同様に構成されている。また、図39では、n=7の場合、つまりレーン数(伝送路数)が8の場合が示されている。
 図39に示すように、受信モジュール120は、受信部120-0~120-7のほかに、レーン間伝送遅延差吸収制御回路(以下、単に「制御回路」という)120aおよび処理モジュール120bを含んでいる。各受信部120-iは、シリアル/パラレル(S/P)変換回路121,ビット境界検出回路122,クロック乗換バッファ123,レーン間伝送遅延差吸収バッファ(以下、単に「バッファ」という)124およびパターン検出回路125を含んでいる。
 制御回路120aは、受信部120-0~120-7(パターン検出回路125)にそれぞれ信号線SL0~SL7を介して接続され、受信部120-0~120-7と連携してレーン[0]~[7]間の伝送遅延差を吸収するための設定処理を制御する。制御回路120aの機能の詳細については後述する。
 処理モジュール120bは、受信部120-0~120-nで得られた部分データから復元されたパラレルデータに対する、プロトコルチェック等の処理を実行する。
 S/P変換回路(DeSerializer)121は、伝送路130-iから受信したシリアルデータを8ビットのパラレルデータ(8ビットデータ)に変換する。
 ビット境界検出回路122は、S/P変換回路121からの8ビットデータを、送信側と受信側とで予め決められた境界検出用パターンと比較することにより、境界検出用パターンと同じパターンをもつ8ビットデータを、先頭の8ビットデータとして検出する。ビット境界検出回路122により検出される先頭の8ビットデータは、8ビット毎のデータの正しい区切り位置つまりビット境界(バイト境界)である。ビット境界検出回路122は、ビット境界を検出すると、その検出タイミングで、8ビットデータをクロック乗換バッファ123に書き込むためのライトイネーブル信号を生成してクロック乗換バッファ123へ出力する。上述したS/P変換回路121およびビット境界検出回路122によって、伝送路130-iから受信したシリアルデータが、意味のある8ビットデータに変換される。
 クロック乗換バッファ123は、前記ライトイネーブル信号を受けると、8ビットデータを順次書き込まれて一時的に保持することにより、送信モジュール110と受信モジュール120とでのクロック周波数差を吸収する。クロック乗換バッファ123に保持された8ビットデータは、受信モジュール120のクロックによって順次読み出される。
 バッファ124は、クロック乗換バッファ123からの8ビットデータを一時的に保持することにより、レーン[0]~[7]間の伝送遅延差を吸収する。バッファ124での8ビットデータの保持時間(読出位置)は、初期化期間に、パターン検出回路125および制御回路120aによって、後述するごとく調整され設定される。なお、バッファ124は、伝送路の設計情報に基づいて予想される最大の伝送遅延差を吸収可能なバッファ段数を有している。
 パターン検出回路125は、クロック乗換バッファ123から読み出された8ビットデータを、送信側と受信側とで予め決められた特定パターンと比較することにより、8ビットデータが特定パターンであるか否かを判断する機能を有している。パターン検出回路125は、8ビットデータが特定パターンであることを検出すると、パターン検出信号を信号線SLiにより制御回路120aに通知する機能を有している。
 また、パターン検出回路125は、レーン[i]の伝送遅延差を検出するカウンタ機能を有している。このカウンタ機能は、特定パターンの検出タイミングでクロック信号によるインクリメントを開始し、制御回路120aからの停止信号(後述)に応じてインクリメントを停止することにより、レーン[i]の伝送遅延差を、カウント値として検出する。さらに、パターン検出回路125は、カウンタ機能によって検出されたレーン[i]の伝送遅延差に基づき、レーン[i]におけるバッファ124からの8ビットデータの読出位置(読出タイミング)を設定する機能も有している。
 制御回路120aは、前述したように、信号線SL0~SL7を介してそれぞれ受信部120-0~120-7に接続され、各受信部120-iのパターン検出回路125からのパターン検出信号を、信号線SLiによって受信する。また、制御回路120aは、受信したパターン検出信号の論理積(AND)が“1”となったタイミング、つまり、全ての受信部120-0~120-7のパターン検出回路125からパターン検出信号を受信したタイミングで、停止信号を、信号線SLiによって各受信部120-iのパターン検出回路125へ送信する。
 上述のごとく構成された装置100では、レーン[0]~[7]間の伝送遅延差を吸収するための設定処理が、以下のように実行される。
 送信モジュール110および受信モジュール120には、これらのモジュール110,120の双方を同期動作させる初期化を行なう回路(図示略)が、初期化ステートマシンとして搭載されている。初期化ステートマシンは、装置100起動時の初期化期間に、特定パターンを送信側から送出し受信側で特定パターンの受信を認識することにより、送信モジュール110と受信モジュール120との同期をとる。この初期化期間内に、レーン[0]~[7]間の伝送遅延差を吸収するための設定処理も実行される。
 レーン[0]~[7]間の伝送遅延差を吸収するための設定処理を実行する際、まず、特定パターンを含むデータが、送信モジュール110から全レーン[0]~[7]に対して送信される。受信モジュール120では、初期化ステートマシンが受信部120-0~120-7を一斉にイネーブル状態にして、各受信部120-iが、特定パターンを含むデータを受信する。
 各受信部120-iのパターン検出回路125は、受信した8ビットデータ(図39の符号s1参照)が特定パターンであることを検出すると、カウンタ機能によるインクリメントを開始する。同時に、パターン検出回路125は、パターン検出信号を信号線SLiにより制御回路120aに送信する。
 全レーン[0]~[7]におけるパターン検出回路125からのパターン検出信号(図39の符号s2参照)は、全レーン[0]~[7]によって共用される一の制御回路120aに集約される。制御回路120aは、全レーン[0]~[7]のパターン検出回路125からパターン検出信号を受信したタイミングで、停止信号(図39の符号s3参照)を信号線SLiによって各受信部120-iのパターン検出回路125へ送信する。
 各受信部120-iのパターン検出回路125は、制御回路120aから停止信号を受信すると、カウンタ機能によるインクリメントを停止し、停止時のカウント値をレーン[i]の伝送遅延差として取得する。
 このとき、全レーン[0]~[7]間に伝送遅延差がない場合、全レーン[0]~[7]のカウンタ機能によって計数されたカウント値は同じ値になる。しかし、レーン[0]~[7]間に伝送遅延差が生じている場合、より早いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも大きくなる。一方、より遅いタイミングで特定パターンを検出したレーンのカウント値は、他のレーンのカウント値よりも小さくなる。このようなカウント値が、各レーン[i]のバッファ124からのデータ読出開始位置(リードポインタの初期値)としてパターン検出回路125により設定される(図39の符号s4参照)。
 これにより、早いタイミングで特定パターンを検出したレーンではバッファ124の深い位置からデータが読み出され、遅いタイミングで特定パターンを検出したレーンではバッファ124の浅い位置からデータが読み出される。従って、全レーン[0]~[7]間の伝送遅延差が吸収される。
 つまり、各レーン[i]のパターン検出回路125は、各レーン[i]の伝送遅延差を相殺すべく、伝送遅延差が最大のレーンにおけるバッファ124のデータ読出タイミングに合わせるようにバッファ124のデータ読み出し段数を調整する。バッファ124のデータ読み出し段数は、各レーン[i]の伝送路長の差に依存するため、初期化期間内に一旦決定されると以後変更する必要がなく固定される。
特開2009-219097号公報 特開2004-289567号公報
 図39に示すように、全レーン[0]~[7]に対し共通部として存在する一の制御回路120aには、信号線SL0~SL7によって、全レーン[0]~[7]の受信部120-0~120-7からのパターン検出信号s2が集約される。また、一の制御回路120aからは、信号線SL0~SL7によって、全レーン[0]~[7]の受信部120-0~120-7へ停止信号s3が送り出される。このため、以下のような不具合が生じている。
 各レーン[i]からのパターン検出信号の情報量は1ビットで少ない。しかし、制御回路120aでは、少なくともレーン数分の信号線が集約される。このため、レーンの数が増大すると、各レーン[i]と制御回路120aとの間における配線レイアウトやノイズ対策が極めて困難になる。
 また、レーン数が多くなると、制御回路120aから物理的に遠く離れた位置に配置されたレーンが出てくる。このように離れた位置に配置されたレーンを含む全レーンの同期を取りながら伝送遅延差を吸収するための設定処理を実行するために、回路の動作周波数を上げることが困難になる。逆に言うと、伝送遅延差を吸収するための設定処理に際し制御回路120aから物理的に遠く離れたレーンが存在する場合、回路が高速化すると、制御回路120aと離れたレーンとの間でパターン検出信号s2や停止信号s3を1クロックでやり取りすることが困難になる。
 上述したように、図39に示す装置100では、複数のレーンからの情報を一の制御回路120aに集約していたため、伝送遅延差吸収処理対象のレーン数が増大すると、信号線の配線レイアウトやノイズ対策の観点および回路の動作周波数の観点から、回路作成が困難になっている。
 一つの側面で、本件は、処理対象のレーン数が増大しても、配線レイアウト,ノイズ対策,回路の高速化を可能にしながら、伝送遅延差を補正するための設定処理を確実に実行できるようにすることを目的とする。
 なお、前記目的に限らず、後述する発明を実施するための最良の形態に示す各構成により導かれる作用効果であって、従来の技術によっては得られない作用効果を奏することも本件の他の目的の一つとして位置付けることができる。
 本件の伝送遅延差補正方法は、複数の伝送路それぞれに対応する受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行なう。
 また、本件の通信装置は、複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、前記伝送路毎に設けられた複数の受信部と、隣接する受信部同士を接続する信号線とを有し、前記複数の受信部の各々は、対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始する。
 さらに、本件の通信システムは、複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、前記通信装置は、上述した通信装置と同様に構成される。
 開示の技術では、処理対象のレーン数が増大しても、配線レイアウト,ノイズ対策,回路の高速化を可能にしながら、伝送遅延差を補正するための設定処理(補正処理)を確実に実行することができる。
一実施形態のデータ伝送機能を有する装置(通信システム)の構成を示すブロック図である。 本実施形態の伝送遅延差吸収装置を含む受信モジュール(通信装置)および各レーン用受信部の構成を示すブロック図である。 本実施形態の伝送遅延差吸収装置を含む受信モジュール(通信装置)の要部およびレーン間の信号線の配線状態を示すブロック図である。 本実施形態のパターン検出回路の構成およびレーン間伝送遅延差吸収制御回路の構成を示すブロック図である。 本実施形態のレーン間伝送遅延差吸収制御回路におけるレーン間伝送遅延差吸収バッファの構成および伝送遅延差吸収設定部の構成を示すブロック図である。 本実施形態のレーン間伝送遅延差吸収制御回路におけるレーン制御部の構成を示すブロック図である。 図6に示す第1および第2デコーダの論理(真理値表)を示す図である。 図6に示す第3デコーダの論理(真理値表)を示す図である。 本実施形態の伝送遅延差吸収装置(通信装置)によるレーン間伝送遅延差の吸収設定処理(補正処理)手順を説明するためのフローチャートである。 (A)~(F)は本実施形態の伝送遅延差吸収装置におけるレーン間伝送遅延差の吸収設定処理(補正処理)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(1)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(2)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(3)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(4)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(5)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(6)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(7)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(8)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(9)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(10)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(11)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(12)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(13)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(14)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(15)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(16)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(17)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(18)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(19)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(20)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(21)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(22)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(23)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(24)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(25)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(26)を説明するための図である。 本実施形態の伝送遅延差吸収装置におけるレーンペア選択動作(27)を説明するための図である。 データ伝送機能を有する装置の構成を示すブロック図である。 図38に示す装置の受信モジュールおよび各レーン用受信部の構成を示すブロック図である。
 以下、図面を参照して実施の形態を説明する。
 〔1〕伝送遅延差吸収装置(通信装置)の構成
 〔1-1〕伝送遅延差吸収装置(通信装置)を適用される装置(通信システム)の構成
 図1は、一実施形態のデータ伝送機能を有する装置(通信システム)1の構成を示すブロック図である。図1に示すように、本実施形態の装置1においても、図38に示した装置100と同様、送信モジュール(送信側;送信装置)10と受信モジュール(受信側;通信装置)20との間で複数ビット(例えば64ビット)のパラレルデータの伝送が行なわれる。このとき、送信モジュール10では、複数ビットのパラレルデータが複数の部分データに分割される。分割された複数の部分データは、それぞれ、送信モジュール10と受信モジュール20との間に並設されたn+1(nは自然数)のレーン[0]~[n]によって、送信モジュール10から受信モジュール20へシリアルデータとして伝送される。そして、受信モジュール20において、複数の部分データから複数ビットのパラレルデータが復元される。
 各レーン[i](i=0~n)は、レーン[i]用送信部10-iと、レーン[i]用受信部20-iと、レーン[i]用伝送路30-iとを含んでいる。また、送信部10-1~10-nは、送信モジュール10に含まれ、受信部20-1~20-nは、処理モジュール20a,初期化ステートマシン20bおよび終端ロジック20cとともに、受信モジュール20に含まれている。
 各送信部10-iは、分割された部分データ(例えば8ビットデータ)をパラレル/シリアル変換しシリアルデータとして伝送路30-iへ送出する。
 各伝送路30-iは、PCI_Expressに代表されるシリアル伝送路で、送信部10-iから送出されたシリアルデータを受信部20-iへ伝送する。
 各受信部20-iは、図2を参照しながら後述するごとく、伝送路30-iから受信したシリアルデータをシリアル/パラレル変換して部分データを復元する。また、各受信部20-iでは、データの読出位置を予め設定されたレーン間伝送遅延差吸収バッファ24(後述)により、各レーン[i]の伝送遅延差が補正される。そして、伝送遅延差補正後の部分データから、複数ビットのパラレルデータが復元される。各受信部20-iには、処理モジュール20aが接続されており、処理モジュール120bは、部分データから復元されたパラレルデータに対する、プロトコルチェック等の処理を実行する。
 複数のレーン[0]~[n]における隣接するレーン[i],[i+1](または[i-1],[i])どうしは、信号線SLによって接続され、隣接するレーン間で、伝送遅延差の吸収設定処理(補正処理)に係る情報(後述)をやり取り可能に構成されている。具体的には、図2や図3を参照しながら後述するごとく、受信部20-iのパターン検出回路25およびレーン間伝送遅延差吸収制御回路26と、受信部20-(i+1)のパターン検出回路25およびレーン間伝送遅延差吸収制御回路26とが、信号線SLによって接続されている。
 なお、一端のレーン[0]には、初期化ステートマシン20bが信号線SLを介して接続されている。初期化ステートマシン20bは、送信モジュール10および受信モジュール20の双方を同期動作させる初期化を行なうほか、後述するレーンペア選択の開始処理および終端処理をレーン[0]に対して実行する機能を果たす。また、他端のレーン[n]には、終端ロジック20cが信号線SLを介して接続されている。終端ロジック20cは、後述するレーンペア選択の折り返し動作をレーン[n]に実行させる論理回路である。初期化ステートマシン20bおよび終端ロジック20cの具体的な機能や動作については、図2,図3および図11~図37を参照しながら後述する。
 〔1-2〕伝送遅延差吸収装置(通信装置)の概要
 各受信部20-iには、図2~図6を参照しながら後述するレーン間伝送遅延差吸収バッファ24,パターン検出回路25およびレーン間伝送遅延差吸収制御回路26を含む吸収処理部(制御部)がそなえられている。吸収処理部は、複数のレーン[0]~[n]の中から、隣接する2つのレーンを順次シフト選択する機能を果たす。また、吸収処理部は、2つのレーンを選択する都度、当該2つのレーン間で信号線SLにより伝送遅延差の補正設定処理(補正処理)に係る情報(後述)をやり取りして、当該2つのレーン間の伝送遅延差を補正するための設定処理(補正処理)を実行する。なお、以下、順次シフト選択される、隣接する2つのレーンを「レーンペア」と呼び、一方のレーンを「プライマリレーン」と呼び、他方のレーンを「セカンダリレーン」と呼ぶ。
 より具体的に、吸収処理部は、隣接レーンにおける受信部20-(i-1)または20-(i+1)にそなえられた吸収処理部(パターン検出回路25およびレーン間伝送遅延差吸収制御回路26)と連携して、前記設定処理(補正処理)を実行する。このとき、吸収処理部は、複数のレーン[0]~[n]における一端のレーン[0]から他端のレーン[n]に到達するまで2つのレーンを順次シフト選択し、2つのレーンを選択する都度、前記設定処理を実行する。この後、吸収処理部は、前記設定処理を施された複数のレーン[0]~[n]における他端のレーン[n]から一端のレーン[0]に到達するまで2つのレーンを順次シフト選択し、2つのレーンを選択する都度、前記設定処理を再度実行する。吸収処理部に含まれるレーン間伝送遅延差吸収制御回路26のレーン制御部26b(後述)によるレーンペア選択動作については、図10~図37を参照しながら後述する。
 図39を参照しながら説明した設定処理では、伝送遅延差吸収対象の各レーンでのパターン検出信号が一の制御回路120aに一旦集約されてから、一の制御回路120aから全レーンの受信部へ停止信号が送信されている。
 これに対し、本実施形態では、複数のレーン[0]~[n]の受信部20-0~20-nが、図1に示すように、信号線SLを介して数珠状に接続されている。これにより、隣接レーンにおけるパターン検出回路25/レーン間伝送遅延差吸収制御回路26どうしが、伝送遅延差の吸収設定処理に係る情報(後述)をやり取りしながら、隣接レーン間の伝送遅延差を補正するための設定処理(補正処理)を実行している。ここで、設定処理(補正処理)とは、装置1の初期化期間中において、レーン間伝送遅延差吸収バッファ24のデータ読出位置を、パターン検出回路25およびレーン間伝送遅延差吸収制御回路26によって設定する処理である。データ読出位置は、例えば図5を参照しながら後述するごとく、リードポインタによって指定される読出バッファ段数である。
 つまり、本実施形態では、数珠状に接続されたレーンにおけるパターン検出回路25およびレーン間伝送遅延差吸収制御回路26により、レーンペアを順にシフトさせて選択しながら、伝送遅延差の吸収設定処理に係る情報(後述)が収集される。そして、収集された情報に基づき、レーンペアのうち伝送遅延差が小さい方の吸収処理部が、自身のレーン間伝送遅延差吸収バッファ24のデータ読出タイミングを、伝送遅延差が大きい方のレーンにおけるレーン間伝送遅延差吸収バッファ24に合わせる。これにより、図39に示すように共用された一の制御回路120aを用いることなく、レーンペア間の伝送遅延差を補正するための設定処理(補正処理)が、全てのレーン[0]~[n]に対し順次実行される。
 〔1-3〕受信モジュールの構成
 次に、図2および図3を参照しながら、本実施形態の伝送遅延差吸収装置を含む受信モジュール(通信装置)20の構成について説明する。ここで、図2は、受信モジュール20および各レーン[i]用受信部20-iの構成を示すブロック図、図3は、受信モジュール20の要部およびレーン[0]~[n]間の信号線SLの配線状態を示すブロック図である。なお、図2および図3では、レーン[0]~[2]用の受信部20-0~20-2の詳細構成が示されているが、レーン[3]~[n]用の受信部20-3~20-nも同様に構成されている。
 図2および図3に示すように、受信モジュール120における各受信部120-iは、S/P変換回路21,ビット境界検出回路22,クロック乗換バッファ23,レーン間伝送遅延差吸収バッファ(以下、単に「バッファ」という)24,パターン検出回路25およびレーン間伝送遅延差吸収制御回路(以下、単に「制御回路」という)26を含んでいる。なお、S/P変換回路21,ビット境界検出回路22およびクロック乗換バッファ23は、それぞれ、図39を参照しながら前述したS/P変換回路121,ビット境界検出回路122およびクロック乗換バッファ123と同等の機能を有しているので、その詳細な説明は省略する。
 バッファ24は、図39に示したバッファ124と同等のもので、クロック乗換バッファ23からの部分データを一時的に保持することにより、レーン[0]~[n]間の伝送遅延差を吸収する。バッファ24での部分データの保持時間(データ読出位置)は、初期化期間に、パターン検出回路25および制御回路26によって設定される。なお、バッファ24は、伝送路の設計情報に基づいて予想される最大の伝送遅延差を吸収可能なバッファ段数を有している。また、バッファ24の具体的な構成については、図5を参照しながら後述する。
 パターン検出回路(検出部)25は、図4を参照しながら後述するパターン検出部25aおよび伝送遅延差検出部25bとしての機能を有している。
 制御回路26は、図4~図6を参照しながら後述する伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cとしての機能を有している。
 そして、本実施形態では、図39に示す一の制御回路120aに代え、図2および図3に示すように、各レーン[i]が、隣接レーンとの間の伝送遅延差を補正するためのバッファ段数の初期設定を可能にする制御回路26をそなえている。各レーン[i]の制御回路26は、同一レーン[i]内のパターン検出回路25に接続されるとともに、信号線SLを介して隣接レーン[i-1],[i+1]の制御回路26にも接続されている。また、各レーン[i]のパターン検出回路25は、隣接レーン[i-1],[i+1]から伝送遅延差の吸収設定処理に係る情報(パターン検出信号)を収集すべく、信号線SLを介して隣接レーン[i-1],[i+1]のパターン検出回路25に接続されている。
 〔1-4〕レーン間の信号および信号接続関係
 ここで、図3を参照しながら、各レーン[i]において、信号線SLによってパターン検出回路25および制御回路26に入力される信号と、信号線SLによってパターン検出回路25および制御回路26から出力される信号とについて説明する。また、各レーン[i]と隣接レーン[i-1],[i+1]との間の信号接続関係について説明する。
 各レーン[i]のパターン検出回路25には、隣接レーン[i-1]のパターン検出信号と隣接レーン[i+1]のパターン検出信号とが、伝送遅延差の吸収設定処理に係る情報として入力される。各レーン[i]のパターン検出回路25は、自レーン[i]のパターン検出信号を、伝送遅延差の吸収設定処理に係る情報として、隣接レーン[i-1],[i+1]のパターン検出回路25へ出力する。なお、図中や以下の説明では、隣接レーン[i-1]を「隣接レーンA」と表記し、隣接レーン[i+1]は「隣接レーンB」と表記する場合がある。
 なお、一端のレーン[0]は、端部に配置され、隣接レーン[i-1]に相当するレーンに接続されていない。このため、レーン[0]のパターン検出回路25には、隣接レーン[i-1]に相当するレーンのパターン検出信号として“0”が常時入力される。また、自レーン[0]のパターン検出信号を隣接レーン[i-1]に相当するレーンへ出力するラインは開放されている。同様に、他端のレーン[n]は、端部に配置され、隣接レーン[i+1]に相当するレーンに接続されていない。このため、レーン[n]のパターン検出回路25には、隣接レーン[i+1]に相当するレーンのパターン検出信号として“0”が常時入力される。また、自レーン[n]のパターン検出信号を隣接レーン[i+1]に相当するレーンへ出力するラインは開放されている。
 各レーン[i]の制御回路26には、隣接レーン[i-1]の2ビット信号LE (Lane Enable) 2[1:0]が2ビット信号LE1[1:0]として入力され、隣接レーン[i-1]の1ビット信号CL (Clear) 4が1ビット信号CL3として入力される。また、各レーン[i]の制御回路26は、2ビット信号LE4[1:0]を隣接レーン[i-1]の2ビット信号LE3[1:0]として出力し、1ビット信号CL2を、隣接レーン[i-1]の1ビット信号CL1として出力する。
 同様に、各レーン[i]の制御回路26には、隣接レーン[i+1]の2ビット信号LE4[1:0]が2ビット信号LE3[1:0]として入力され、隣接レーン[i+1]の1ビット信号CL2が1ビット信号CL1として入力される。また、各レーン[i]の制御回路26は、2ビット信号LE2[1:0]を隣接レーン[i+1]の2ビット信号LE1[1:0]として出力し、1ビット信号CL4を、隣接レーン[i+1]の1ビット信号CL3として出力する。
 なお、一端のレーン[0]は、端部に配置され、隣接レーン[i-1]に相当するレーンに接続されていない。このため、レーン[0]の制御回路26には、隣接レーン[i-1]に相当するレーンの制御回路26として初期化ステートマシン20bが接続され、レーン[0]の制御回路26と初期化ステートマシン20bとの間で信号LE1-LE4, CL1-CL4がやり取りされる。同様に、他端のレーン[n]は、端部に配置され、隣接レーン[i+1]に相当するレーンに接続されていない。このため、レーン[n]の制御回路26には、隣接レーン[i+1]に相当するレーンの制御回路26として終端ロジック20cが接続され、レーン[n]の制御回路26と終端ロジック20cとの間で信号LE1-LE4, CL1-CL4がやり取りされる。
 また、図4,図6,図20および図21を参照しながら説明するごとく、レーンペア選択の折り返し時に、レーン[n]の制御回路26には、後述するレーン制御部26bのフラグ“complete1”を設定するためのセット信号SC1が、隣接レーン伝送遅延情報として、終端ロジック20cから入力される。同様に、図4,図6,図34および図35を参照しながら説明するごとく、前記設定処理の完了時に、レーン[0]の制御回路26には、後述するレーン制御部26bのフラグ“complete2”を設定するためのセット信号SC2が、隣接レーン伝送遅延情報として、初期化ステートマシン20bから入力される。
 また、各レーン[i]のパターン検出回路25と制御回路26との間でやり取りされる信号(情報)は以下の通りである。後述する遅延検出カウンタ255によるカウント値が伝送遅延差吸収情報としてパターン検出回路25から制御回路26へ送信され、後述するANDゲート258による論理積結果が隣接レーン伝送遅延差情報としてパターン検出回路25から制御回路26へ送信される。後述するORゲート2623による論理和結果が2ビット信号LS (Lane Select)[1:0]として制御回路26からパターン検出回路25へ送信される。
 さらに、各レーン[i]のパターン検出回路25には、図4を参照しながら後述するごとく、隣接レーン[i-1],[i+1]からの信号LE1,LE3が入力される。また、各レーン[i]のバッファ24には、図4および図5を参照しながら後述するごとく、制御回路26の伝送遅延差吸収設定部26aによる自レーン[i]の遅延設定情報が入力される。
 上述のように隣接レーン間で信号線SLを介して各種信号をやり取り可能に構成することにより、レーン[0]からレーン[n]までレーンペアを順次シフト選択しながら、レーンペア毎にバッファ24の遅延設定が行なわれる。さらに、終端ロジック20cでレーンペア選択のシフト方向が折り返されると、レーン[n]からレーン[0]までレーンペアを順次シフト選択しながら、レーンペア毎にバッファ24の遅延設定が行なわれる。このようにレーンペア選択のシフトを往復させてバッファ24の遅延設定を行なうことで、全レーン[0]~[n]間の伝送遅延差を補正するための設定処理(補正処理)が行なわれる。なお、以下では、レーンペアがレーン[0]からレーン[n]までシフトする期間を「往路」と呼び、レーンペアがレーン[n]からレーン[0]までシフトする期間を「復路」と呼ぶ場合がある。
 〔1-5〕吸収処理部の構成
 以下では、全レーン[0]~[n]間の伝送遅延差を補正するための設定処理(補正処理)を実行する吸収処理部の詳細な構成や機能、つまり各レーン[i]におけるバッファ24,パターン検出回路25および制御回路26の構成や機能について、図4~図8を参照しながら説明する。
 〔1-5-1〕パターン検出回路25の構成
 図4は、パターン検出回路25の構成およびレーン間伝送遅延差吸収制御回路26の構成を示すブロック図である。
 図4に示すように、パターン検出回路25は、パターン検出部25aおよび隣接レーン間伝送遅延差検出部25bを含んでいる。
 パターン検出部25aは、クロック乗換バッファ23から読み出された部分データ(例えば8ビットデータ)を、送信側と受信側とで予め決められた特定パターンと比較することにより、部分データが特定パターンであるか否かを判断する機能を果たす。当該機能を実現すべく、パターン検出部25aは、伝送遅延検出パターン記憶部251,比較器252,判定回路253およびANDゲート254を含んでいる。
 伝送遅延検出パターン記憶部251は、送信側と受信側とで予め決められた特定パターンを記憶する。特定パターンは、例えば8ビットのパラレルデータである。
 比較器252は、クロック乗換バッファ23から読み出された8ビットデータと伝送遅延検出パターン記憶部251の特定パターンとを比較し、8ビットデータと特定パターンとが一致した場合に“1”を出力し、それ以外の場合に“0”を出力する。
 判定回路253は、隣接レーン[i-1]または[i+1]からのレーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”または“10”になった場合に“1”を出力し、それ以外の場合に“0”を出力するもので、論理回路によって構成される。なお、レーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”または“10”になるのは、自レーン[i]がレーンペアとして選択されている時である。
 ANDゲート254は、比較器252の出力と判定回路253の出力との論理積を出力する。つまり、ANDゲート254は、信号LE1[1:0]またはLE3[1:0]が“01”または“10”になり且つクロック乗換バッファ23から読み出された8ビットデータが特定パターンになった場合に“1”を出力し、それ以外の場合に“0”を出力する。より具体的に、ANDゲート254は、自レーン[i]がレーンペアとして選択され且つ特定パターンが検出された場合に“1”を出力する。
 隣接レーン間伝送遅延差検出部(伝送遅延差検出部)25bは、自レーン[i]の特定パターンの検出タイミングと隣接レーン[i-1]または[i+1]での特定パターンの検出タイミングとに基づき、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差を検出する機能を果たす。当該機能を実現すべく、隣接レーン間伝送遅延差検出部は、遅延検出カウンタ255,ORゲート256,セレクタ257およびANDゲート258を含んでいる。
 遅延検出カウンタ255は、ANDゲート254の出力が“1”になった時、つまり自レーン[i]がレーンペアとして選択され且つ特定パターンが検出されたタイミングでインクリメント(計数)を開始する。遅延検出カウンタ255は、後述するANDゲート258の出力の立ち上がりによって計数動作を停止する。なお、遅延検出カウンタ255のカウント値の初期値は“0”に設定されている。また、図4に示す遅延検出カウンタ255は、カウント値を例えば4ビットデータとして出力する。
 ORゲート256は、遅延検出カウンタ255の出力(カウント値)である4つのビットデータの論理和を自レーン[i]のパターン検出信号として出力する。より具体的に、ORゲート256は、遅延検出カウンタ255が計数を開始していない状態つまり初期値“0000”を出力している状態で“0”を出力する。また、ORゲート256は、遅延検出カウンタ255が計数を開始した状態つまり4つのビットデータのうちの少なくとも一つが“1”である状態で“1”を出力する。これにより、ORゲート256は、遅延検出カウンタ255が計数を開始しカウント値が1になったタイミングで、自レーン[i]で特定パターンが検出されたことを示すパターン検出信号を、隣接レーン[i-1]および[i+1]に対して通知する。
 セレクタ257は、制御回路26(後述するレーン制御部26b)からのレーンセレクト信号LS[1:0]が“01”の時、隣接レーン[i+1](図4では隣接レーンB)のパターン検出信号を選択して出力する。レーンセレクト信号LS[1:0]が“01”になるのは、後述するごとく、自レーン[i]が、往路上のレーンペアのプライマリの時、または、復路上のレーンペアのセカンダリの時である。一方、セレクタ257は、制御回路26(後述するレーン制御部26b)からのレーンセレクト信号LS[1:0]が“10”の時、隣接レーン[i-1](図4では隣接レーンA)のパターン検出信号を選択して出力する。レーンセレクト信号LS[1:0]が“10”になるのは、後述するごとく、自レーン[i]が、往路上のレーンペアのセカンダリの時、または、復路上のレーンペアのプライマリの時である。
 ANDゲート258は、ORゲート256の出力とセレクタ257の出力との論理積を隣接レーン伝送遅延差情報として出力する。つまり、ANDゲート258は、自レーン[i]のパターン検出信号が“1”になり、且つ、自レーン[i]とレーンペアを成す隣接レーン[i-1]または[i+1]のパターン検出信号が“1”になった場合に“1”を出力し、それ以外の場合に“0”を出力する。
 ANDゲート258の出力である隣接レーン伝送遅延差情報は、計数停止信号として遅延検出カウンタ255に入力されるとともに、制御回路26(後述するORゲート26c)に入力される。
 また、遅延検出カウンタ255は、ANDゲート258の出力が“1”になると計数動作を停止し、停止時点でのカウント値つまり自レーン[i]の伝送遅延差を、自レーン[i]の伝送遅延差吸収情報(4ビットデータ)として制御回路26(後述する伝送遅延差吸収設定部26a)へ出力する。ただし、本実施形態では、上述したように、各レーンのパターン検出信号は、遅延カウンタ255が1回インクリメントを行なって遅延カウンタ255の出力が“0”から“1”になった時点で出力される。このため、各レーンの遅延検出カウンタ255によって得られる伝送遅延差は、1だけ多く計数されている。したがって、後段の伝送遅延差吸収設定部26aで遅延検出カウンタ255のカウント値を用いる前には、後述する減算器261より、同カウント値から1だけ減じる処理が実行される。
 上述した遅延検出カウンタ255によって計数されるカウント値は、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差が0である場合には“1”になる。また、自レーン[i]のデータ伝送が隣接レーン[i-1]または[i+1]よりも遅い場合、カウンタ255が計数を開始した直後に計数停止信号を受けることになり、遅延検出カウンタ255によって計数されるカウント値は“1”になる。一方、自レーン[i]のデータ伝送が隣接レーン[i-1]または[i+1]よりも速い場合、カウンタ255は、計数を開始した後、隣接レーン[i-1]または[i+1]からパターン検出信号を受信するまで計数を行なうことになる。これにより、遅延検出カウンタ255によって計数されるカウント値は、自レーン[i]と隣接レーン[i-1]または[i+1]との間の伝送遅延差に応じたカウント値に、1を加算した値になる。
 〔1-5-2〕レーン間伝送遅延差吸収制御回路26の構成
 レーン間伝送遅延差吸収制御回路26は、図4に示すように、伝送遅延差吸収設定部26a,レーン制御部26bおよびORゲート26cを含んでいる。
 ORゲート26cは、伝送遅延差検出部25bのANDゲート258からの隣接レーン伝送遅延情報と後述する信号SCとの論理和を出力する。ここで、レーン[1]~[n-1]のORゲート26cに入力される信号SCは“0”に固定される。一端のレーン[0]のORゲート26cに入力される信号SCとしては、前記設定処理の完了時にレーン制御部26bのフラグ“complete2”を設定するためのセット信号SC2が、初期化ステートマシン20bから入力される(図34および図35参照)。また、他端のレーン[n]のORゲート26cに入力される信号SCとしては、レーンペア選択の折り返し時にレーン制御部26bのフラグ“complete1”を設定するためのセット信号SC1が、終端ロジック20cから入力される(図20および図21参照)。そして、ORゲート26cの出力は、後述するごとく、隣接レーン伝送遅延差情報として、レーン制御部26bの判定回路2602,2604に入力される。
 伝送遅延差吸収設定部(バッファ制御部)26aは、レーンペアの選択がレーン[0]からレーン[n]に到達するまでの間に伝送遅延差検出部25bによって検出された伝送遅延差を、伝送遅延差吸収情報として一時的に記憶する機能を有する。また、伝送遅延差吸収設定部26aは、記憶した伝送遅延差と、レーンペアの選択がレーン[n]からレーン[0]に到達するまでの間に伝送遅延差検出部25bによって検出された伝送遅延差とを加算する機能を有する。さらに、伝送遅延差吸収設定部26aは、加算して得られた値(伝送遅延差)をバッファ24で吸収するように、バッファ24からの部分データの読出位置を設定する機能を有する。以上のような機能を果たす伝送遅延差吸収設定部26aの詳細な構成については、図5を参照しながら後述する。
 レーン制御部26bは、隣接レーンのレーン制御部26bと信号線SLを介して信号のやり取りを行なうことにより隣接レーンのレーン制御部26bと連携し、以下のような機能を果たす。つまり、レーン制御部26bは、レーン[0]からレーン[n]に到達するまでの往路上で、レーンペアを順次選択する。そして、レーン制御部26bは、レーンペアを選択する都度、パターン検出部25a,伝送遅延差検出部25bおよびバッファ制御部26aに、選択されたレーンペアの伝送遅延差を補正するための設定処理を実行させる。この後、レーン制御部26bは、当該設定処理を施されたレーン[0]~[n]におけるレーン[n]からレーン[0]に到達するまでの復路上で、レーンペアを順次選択する。そして、レーン制御部26bは、レーンペアを選択する都度、パターン検出部25a,伝送遅延差検出部25bおよびバッファ制御部26aに、選択されたレーンペアの伝送遅延差を補正するための設定処理を再度実行させる。
 なお、レーン[i]のレーン制御部26bは、レーンイネーブル信号LE1[1:0]およびクリア信号CL1を隣接レーンから入力される一方で、レーンイネーブル信号LE2[1:0]およびクリア信号CL2を隣接レーンへ出力する。このとき、レーンイネーブル信号LE1[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE2[1:0]であり、クリア信号CL1は、隣接レーン[i+1]のクリア信号CL2である。また、レーンイネーブル信号LE2[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE1[1:0]として出力され、クリア信号CL2は、隣接レーン[i-1]のクリア信号CL1として出力される。これらの信号LE1[1:0],LE2[1:0],CL1,CL2は、レーンペアがレーン[0]からレーン[n]へシフトする往路で用いられ、レーンペアがレーン[n]からレーン[0]へシフトする復路では“0”に固定される。
 同様に、レーン[i]のレーン制御部26bは、レーンイネーブル信号LE3[1:0]およびクリア信号CL3を隣接レーンから入力される一方で、レーンイネーブル信号LE4[1:0]およびクリア信号CL4を隣接レーンへ出力する。このとき、レーンイネーブル信号LE3[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE4[1:0]であり、クリア信号CL3は、隣接レーン[i-1]のクリア信号CL4である。また、レーンイネーブル信号LE4[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE3[1:0]として出力され、クリア信号CL4は、隣接レーン[i+1]のクリア信号CL3として出力される。これらの信号LE3[1:0],LE4[1:0],CL3,CL4は、レーンペアがレーン[n]からレーン[0]へシフトする復路で用いられ、レーンペアがレーン[0]からレーン[n]へシフトする往路では“0”に固定される。
 さらに、レーン制御部26bは、レーンセレクト信号LS[1:0]をパターン検出回路25のセレクタ257へ出力するとともに、自レーン[i]の遅延設定情報を伝送遅延差吸収設定部26aへ出力する。
 このような機能を果たすレーン制御部26bの詳細な構成については、図6~図8を参照しながら後述する。
 また、上述のような機能を果たすレーン間伝送遅延差吸収制御回路26を用いることにより、レーンペアが、レーン[0]とレーン[n]との間でシフトさせながら1往復するように選択される。そして、レーンペアが選択される都度、選択されたレーンペアの伝送遅延差を補正するための設定処理が実行される。例えば、レーン[0],[1]を選択して設定処理が実行された後は、レーン[1],[2]を選択して設定処理が実行される。これを繰り返し、レーン[n-1],[n]を選択して設定処理が実行された後は、終端ロジック20cによりレーンペア選択の折り返し動作が実行される。この後、レーン[n],[n-1]を選択して設定処理が実行された後は、レーン[n-1],[n-2]を選択して設定処理が実行される。これを繰り返し、レーン[1],[0]を選択して設定処理が実行された後は、初期化ステートマシン20bによりレーンペア選択の終端処理が実行される。以上の処理によって、全レーン[0]~[n]の伝送遅延差を補正するための設定処理が実行されることになる。
 〔1-5-3〕レーン間伝送遅延差吸収バッファ24の構成
 図5は、制御回路26におけるレーン間伝送遅延差吸収バッファ24の構成および伝送遅延差吸収設定部26aの構成を示すブロック図である。
 図5に示すように、レーン間伝送遅延差吸収バッファ24は、4段のバッファ(D)241~244およびセレクタ245を含んでいる。このバッファ24は、伝送路の伝送遅延差を吸収しうる段数を有している。この段数は、伝送路の設計要素の1つとして予め取り決めがなされる。
 4段のバッファ241~244は、クロック乗換バッファ23の出力ラインに直列接続され、クロック乗換バッファ23からの8ビットデータを入力される。
 セレクタ245には、クロック乗換バッファ23の出力ラインから4段のバッファ241~244を迂回するラインL0が接続されるとともに、4段のバッファ241~244の出力ラインL1~L4がそれぞれ接続されている。
 セレクタ245は、伝送遅延差吸収設定部26aの保持FF(flip-flop)263(後述)に保持された値に応じて、5つのラインL0~L4のうちの一つからのデータを選択的に切り換えて出力する。保持FF263に保持される値は、自レーン[i]と隣接レーンとの間の伝送遅延差を示す、例えば3ビットのデータで、バッファ24のリードポインタとして用いられる。保持FF263の値が“000”の時、セレクタ245は、ラインL0を選択し、クロック乗換バッファ23からの8ビットデータを遅延させることなくそのまま出力する。保持FF263の値が“001”の時、セレクタ245は、ラインL1つまり1段目のバッファ241をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241により1クロック分遅延させて出力する。保持FF263の値が“010”の時、セレクタ245は、ラインL2つまり2段目のバッファ242をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241,242により2クロック分遅延させて出力する。保持FF263の値が“011”の時、セレクタ245は、ラインL3つまり3段目のバッファ243をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241~243により3クロック分遅延させて出力する。保持FF263の値が“100”の時、セレクタ245は、ラインL4つまり4段目のバッファ244をデータ読出位置として選択し、クロック乗換バッファ23からの8ビットデータをバッファ241~244により4クロック分遅延させて出力する。
 〔1-5-4〕伝送遅延差吸収設定部26aの構成
 図5に示すように、伝送遅延差吸収設定部26aは、減算器261,セレクタ262,保持FF263および加算器264を含む。
 減算器261は、パターン検出回路26の伝送遅延差吸収情報、つまり遅延検出カウンタ255によるカウント値から1を減じる。減算器261によりカウント値から1を減じる処理を行なうのは、図4を参照しながら前述した通り、遅延検出カウンタ255によって得られる伝送遅延差は1だけ多く計数され、2つのレーン間に伝送遅延差が無い場合でも伝送遅延差が“1”となるからである。したがって、遅延検出カウンタ255において上述のようなレイテンシが生じなければ、減算器261をそなえくても、本装置は実現可能である。なお、本実施形態では、遅延検出カウンタ255によるカウント値が4ビットデータで、減算器261から出力されるデータは、1を減じることにより、3ビットデータとなっている。
 セレクタ262には、減算器261からのラインL10と、後述する加算器264からのラインL11と、後述する保持FF263からのラインL12とが接続されている。
 セレクタ262は、レーン制御部26bの遅延差吸収状態制御デコーダ(第3デコーダ;後述)2621の出力値(切換信号)に応じて、3つのラインL10~L12のうちの一つからのデータを選択的に切り換えて保持FF263に出力する。デコーダ2621の出力値は、例えば図6および図8を参照しながら後述するような2ビットデータである。デコーダ2621の出力値が“00”の時、セレクタ262は、ラインL10を選択し、減算器261からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“01”の時、セレクタ262は、ラインL11を選択し、加算器264からの値を出力して保持FF263に保持させる。デコーダ2621の出力値が“10”または“11”の時、セレクタ262は、ラインL12を選択し、保持FF263の値を出力して保持FF263に再度保持させる。つまり、デコーダ2621の出力値が“10”または“11”の時、保持FF263は、同じ値を保持し続けることになる。
 保持FF263は、セレクタ262から出力された値を自レーン[i]の伝送遅延差(伝送遅延差吸収情報)として保持し、その値を、自レーン[i]の遅延設定情報としてバッファ24のセレクタ245に出力する。保持FF263に保持される値は、前述のごとくバッファ24のリードポインタとして用いられる。
 加算器264は、減算器261からの値と保持FF263からの値とを加算して得られた値を、ラインL11を通じてセレクタ262へ出力する。
 ここで、レーン制御部26bの遅延差吸収状態制御デコーダ2621の出力値に応じた、伝送遅延差吸収設定部26aの動作について説明する。
 各レーン[i]での伝送遅延差吸収処理(補正処理)は、漏れの無いように、以下のタイミングで計4回実行される。つまり、レーン[i]が往路でセカンダリレーンとして選択された時と、レーン[i]が往路でプライマリレーンとして選択された時と、レーン[i]が復路でセカンダリレーンとして選択された時と、レーン[i]が復路でプライマリレーンとして選択された時との計4回である。
 1回目(往路セカンダリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“00”となり(図8参照)、セレクタ245により、ラインL10つまり減算器261からの伝送遅延値が選択され、1回目の伝送遅延差吸収情報として保持FF263に記憶される。
 2回目(往路プライマリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、2回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている1回目の伝送遅延値とが、加算器264によって加算され、その加算値が、2回目の伝送遅延差吸収情報として保持FF263に記憶される。
 3回目(復路セカンダリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、3回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている2回目の伝送遅延値とが、加算器264によって加算され、その加算値が、3回目の伝送遅延差吸収情報として保持FF263に記憶される。
 4回目(復路プライマリ時)には、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL11つまり加算器264からの伝送遅延値が選択され、4回目の伝送遅延差吸収情報として保持FF263に記憶される。つまり、減算器261により新たに得られた伝送遅延値と、保持FF263に保持されている3回目の伝送遅延値とが、加算器264によって加算され、その加算値が、4回目の伝送遅延差吸収情報として保持FF263に記憶される。
 上述した4回のタイミング以外では、遅延差吸収状態制御デコーダ2621の出力値は“01”となり(図8参照)、セレクタ245により、ラインL12つまり保持FF263からの伝送遅延値が選択され、伝送遅延差吸収情報として保持FF263に再度記憶される。つまり、保持FF263は、同じ値を保持し続ける。なお、遅延差吸収状態制御デコーダ2621の出力値として誤って“11”がセレクタ262に入力された場合も、セレクタ245により、ラインL12が選択され、保持FF263は、同じ値を保持し続ける。
 ここで、上述のごとく構成されたパターン検出回路25,バッファ24および伝送遅延差吸収設定部26aによる具体的な動作について、簡単に説明する。
 例えばレーン[0]のデータがレーン[1]のデータよりも1クロック分早く到着する場合、レーン[0]のカウンタ255によるカウント値は“2”となり、レーン[0]の伝送遅延差吸収設定部26aの保持FF263には“001”が保持される。保持FF263における値がバッファ24のリードポインタとなるため、レーン[0]ではセレクタ245により1段目のバッファ241が選択され、このバッファ241からデータが読み出されることになる。一方、レーン[1]のカウンタ255は、“1”を計数したときにANDゲート258から隣接レーン伝送遅延差情報(レーン[0]のパターン検出信号)を受け取り、計数動作を停止し、レーン[1]の伝送遅延差吸収設定部26aの保持FF263には“000”が保持される。その結果、レーン[1]ではセレクタ245によりバイパスラインL0が選択され、データは、バッファ241~244をバイパスして読み出されることになる。
 〔1-5-5〕レーン制御部26bの構成
 図6は、レーン間伝送遅延差吸収制御回路26におけるレーン制御部26bの構成を示すブロック図である。
 図6に示すように、レーン制御部26bは、判定回路2601~2612,フラグ保持レジスタ2613~2618,第1デコーダ2619,第2デコーダ2620,第3デコーダ2621,インバータ2622およびORゲート2623を含んでいる。
 判定回路2601,2602,フラグ保持レジスタ2613,2614および第1デコーダ2619は往路で用いられ、判定回路2603,2604,フラグ保持レジスタ2615,2616および第2デコーダ2620は復路で用いられる。また、判定回路2605~2612,フラグ保持レジスタ2617,2618,第3デコーダ2621,インバータ2622およびORゲート2623は、往路および復路の両方で用いられる。
 まず、往路で用いられる構成について説明する。
 判定回路2601は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2613にフラグ“current1”をセットする。なお、レーンイネーブル信号LE1[1:0]は、前述した通り、隣接レーン[i-1]のレーンイネーブル信号LE2[1:0]である。
 フラグ保持レジスタ2613は、判定回路2601によりフラグ“current1”をセットされると、信号sigA1として“1”を出力する。フラグ保持レジスタ2613にはクリア信号CL1が入力されており、このクリア信号CL1が“1”になると、フラグ保持レジスタ2613は、フラグ“current1”をクリアし、信号sigA1として“0”を出力する。なお、クリア信号CL1は、前述した通り、隣接レーン[i+1]のクリア信号CL2である。フラグ“current1”は、自レーン[i]が往路でレーンペアとして選択されていることを示す。
 判定回路2602は、フラグ保持レジスタ2613の出力sigA1とORゲート26cからの隣接レーン伝送遅延差情報とを入力され、出力sigA1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったか否かを判定する。判定回路2602は、出力sigA1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったと判定すると、フラグ保持レジスタ2614にフラグ“complete1”をセットする。
 フラグ保持レジスタ2614は、判定回路2602によりフラグ“complete1”をセットされると、信号sigA2として“1”を出力する。フラグ“complete1”は、自レーン[i]が往路での伝送遅延差吸収処理を完了したことを示す。
 第1デコーダ(Lane EN decoder1)2619は、レジスタ2613からの信号sigA1(current1)とレジスタ2614からの信号sigA2(complete1)とを入力され、これらの信号sigA1, sigA2をデコードし、レーンイネーブル信号LE2[1:0]とクリア信号CL2とを生成して出力する。第1デコーダ2619によるデコード内容、つまり信号sigA1, sigA2と出力信号LE2[1:0], CL2との関係は、図7に示す論理(真理値表)の通りである。なお、前述した通り、レーンイネーブル信号LE2[1:0]は、隣接レーン[i+1]のレーンイネーブル信号LE1[1:0]として出力され、クリア信号CL2は、隣接レーン[i-1]のクリア信号CL1として出力される。
 ついで、復路で用いられる構成について説明する。
 復路で用いられる判定回路2603,2604,フラグ保持レジスタ2615,2616および第2デコーダ2620は、それぞれ、往路で用いられる判定回路2601,2602,フラグ保持レジスタ2613,2614および第1デコーダ2619に対応している。レーンイネーブル信号LE3[1:0], LE4[1:0]は、それぞれレーンイネーブル信号LE1[1:0], LE2[1:0]に対応し、クリア信号CL3, CL4は、それぞれクリア信号CL1, CL2に対応している。また、フラグ“current2”,“complete2”はそれぞれフラグ“current1”,“complete1”に対応し、信号sigB1, sigB2はそれぞれ信号sigA1, sigA2に対応している。
 つまり、判定回路2603は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2615にフラグ“current2”をセットする。なお、レーンイネーブル信号LE3[1:0]は、前述した通り、隣接レーン[i+1]のレーンイネーブル信号LE4[1:0]である。
 フラグ保持レジスタ2615は、判定回路2603によりフラグ“current2”をセットされると、信号sigB1として“1”を出力する。フラグ保持レジスタ2615にはクリア信号CL3が入力されており、このクリア信号CL3が“1”になると、フラグ保持レジスタ2615は、フラグ“current2”をクリアし、信号sigB1として“0”を出力する。なお、クリア信号CL3は、前述した通り、隣接レーン[i-1]のクリア信号CL4である。フラグ“current2”は、自レーン[i]が復路でレーンペアとして選択されていることを示す。
 判定回路2604は、フラグ保持レジスタ2615の出力sigB1とORゲート26cからの隣接レーン伝送遅延差情報とを入力され、出力sigB1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったか否かを判定する。判定回路2604は、出力sigB1が“1”になり且つ隣接レーン伝送遅延情報が“1”になったと判定すると、フラグ保持レジスタ2616にフラグ“complete2”をセットする。
 フラグ保持レジスタ2616は、判定回路2604によりフラグ“complete2”をセットされると、信号sigB2として“1”を出力する。フラグ“complete2”は、自レーン[i]が復路での伝送遅延差吸収処理を完了したことを示す。
 第2デコーダ(Lane EN decoder2)2620は、レジスタ2615からの信号sigB1(current2)とレジスタ2616からの信号sigB2(complete2)とを入力され、これらの信号sigB1, sigB2をデコードし、レーンイネーブル信号LE4[1:0]とクリア信号CL4とを生成して出力する。第2デコーダ2620によるデコード内容、つまり信号sigB1, sigB2と出力信号LE4[1:0], CL4との関係は、図7に示す論理(真理値表)の通りである。ただし、第2デコーダ2620で図7に示す真理値表を用いる場合、信号sigA1, sigA2がそれぞれ信号sigB1, sigB2に置き換えられ、且つ、レーンイネーブル信号LE2[1:0]およびクリア信号CL2がそれぞれレーンイネーブル信号LE4[1:0]およびクリア信号CL4に置き換えられる。なお、前述した通り、レーンイネーブル信号LE4[1:0]は、隣接レーン[i-1]のレーンイネーブル信号LE3[1:0]として出力され、クリア信号CL4は、隣接レーン[i+1]のクリア信号CL3として出力される。
 ついで、往路および復路の両方で用いられる構成について説明する。
 判定回路2605は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2617にフラグ“Primary”をセットする。
 判定回路2606は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“00”であるか否かを判定し、信号LE1[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
 判定回路2607は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2617にフラグ“Primary”をセットする。
 判定回路2608は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“00”であるか否かを判定し、信号LE3[1:0]が“00”になったと判定すると、フラグ保持レジスタ2617のフラグ“Primary”をクリアする。
 フラグ保持レジスタ(以下「プライマリレジスタ」という)2617は、レーンイネーブル信号LE1[1:0]またはLE3[1:0]が“01”の時にセット可能になるようにセット優先FFによって構成される。プライマリレジスタ2617は、往路で判定回路2605によりフラグ“Primary”をセットされた場合または復路で判定回路2607によりフラグ“Primary”をセットされた場合、“1”を出力する。また、プライマリレジスタ2617は、往路で判定回路2606によりフラグ“Primary”をクリアされた場合または復路で判定回路2608によりフラグ“Primary”をクリアされた場合、“0”を出力する。フラグ“Primary”は、自レーン[i]が往路または復路でレーンペアのプライマリレーンとして選択され伝送遅延差を調整中であることを示す。
 判定回路2609は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“10”であるか否かを判定し、信号LE1[1:0]が“10”になったと判定すると、フラグ保持レジスタ2618にフラグ“Secondary”をセットする。
 判定回路2610は、レーンイネーブル信号LE1[1:0]を入力され、この信号LE1[1:0]が“01”であるか否かを判定し、信号LE1[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
 判定回路2611は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“10”であるか否かを判定し、信号LE3[1:0]が“10”になったと判定すると、フラグ保持レジスタ2618にフラグ“Secondary”をセットする。
 判定回路2612は、レーンイネーブル信号LE3[1:0]を入力され、この信号LE3[1:0]が“01”であるか否かを判定し、信号LE3[1:0]が“01”になったと判定すると、フラグ保持レジスタ2618のフラグ“Secondary”をクリアする。
 フラグ保持レジスタ(以下「セカンダリレジスタ」という)2618は、クリア優先FFによって構成され、確実にクリアが行なわれるように構成される。セカンダリレジスタ2618は、往路で判定回路2609によりフラグ“Secondary”をセットされた場合または復路で判定回路2611によりフラグ“Secondary”をセットされた場合、“1”を出力する。また、セカンダリレジスタ2618は、往路で判定回路2610によりフラグ“Secondary”をクリアされた場合または復路で判定回路2612によりフラグ“Secondary”をクリアされた場合、“0”を出力する。フラグ“Secondary”は、自レーン[i]が往路または復路でレーンペアのセカンダリレーンとして選択され伝送遅延差を調整中であることを示す。
 第3デコーダ(Decoder3)2621は、図5に示す遅延差吸収状態制御デコーダとして機能するものである。つまり、第3デコーダ2621は、自レーン[i]の伝送遅延差吸収量を示す伝送遅延差吸収情報(図4に示す遅延検出カウンタ255からの出力)を、図5に示す保持FF263に正しく保持させるように、セレクタ262を切り換える切換信号を生成する。
 具体的に、第3デコーダ2621は、1回目(自レーン[i]が往路のセカンダリレーンである時)“00”を出力し、減算器261の出力つまり伝送遅延値を選択して保持FF263に記憶させる。第3デコーダ2621は、2回目(自レーン[i]が往路のプライマリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。第3デコーダ2621は、3回目(自レーン[i]が復路のセカンダリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。第3デコーダ2621は、4回目(自レーン[i]が復路のプライマリレーンである時)“01”を出力し、加算器264の出力つまり減算器261の出力と保持FF263の値との和を選択して保持FF263に記憶させる。自レーン[i]がレーンペアとして選択されていない場合、第3デコーダ2621は、“10”を出力し、ラインL12を選択して保持FF263に、現在保持している値と同じ値を保持させる。
 第3デコーダ2621は、上述のようにセレクタ262を切り換える切換信号を出力すべく、フラグ保持レジスタ2613~2615,2617,2618からのフラグ“current1”,“complete1”,“current2”,“Primary”,“Secondary”を入力される。そして、第3デコーダ2621は、これらのフラグをデコードして切換信号を生成しセレクタ262へ出力する。第3デコーダ2621によるデコード内容、つまりフラグ“current1”,“complete1”,“current2”,“Primary”,“Secondary”と切換信号との関係は、図8に示す論理(真理値表)の通りである。
 インバータ2622は、レーンイネーブル信号LE3[1:0]の各ビットの値を反転させて出力する。
 ORゲート2623は、レーンイネーブル信号LE1[1:0]と、インバータ2622からのレーンイネーブル信号LE3[1:0]の反転信号との論理和を生成し、レーンセレクト信号LS[1:0]として出力する。レーンセレクト信号LS[1:0]は、図4を参照しながら前述した通り、セレクタ257を切り換え、隣接レーン[i+1]または[i-1]のパターン検出信号を選択するための信号として用いられる。
 レーンセレクト信号LS[1:0]は、自レーン[i]が往路のプライマリレーンである時(信号LE1[1:0]=“01”の時)または復路のセカンダリレーンである時(信号LE3[1:0]=“10”の時)に“01”となる。また、レーンセレクト信号LS[1:0]は、自レーン[i]が往路のセカンダリレーンである時(信号LE1[1:0]=“10”の時)または復路のプライマリレーンである時(信号LE3[1:0]=“01”の時)に“10”となる。
 〔2〕伝送遅延差吸収装置(通信装置)の動作
 次に、上述のごとく構成された伝送遅延差吸収装置(通信装置)による処理について、図9~図37を参照しながらより具体的に説明する。
 〔2-1〕レーンペアの選択手法
 図3および図6を参照しながら、往路でのレーンペアの選択手法について説明する。上述したように、隣接する2つのレーンをレーンペアとして選択する際、便宜上、2つのレーンの一方がプライマリレーンとして取り扱われ、他方がセカンダリレーンとして取り扱われる。プライマリレーンとセカンダリレーンとでは、レーン間伝送遅延差の吸収処理を行なう動作に差異は無いが、レーン制御部26bから隣接レーンに対して出力されるレーンイネーブル信号の内容に差異がある。
 レーンイネーブル信号LE1[1:0]=“01”を入力されたレーンは、プライマリレジスタ2617にフラグ“Primary”を設定され、プライマリレーンになる。
 レーンイネーブル信号LE1[1:0]=“10”を入力されたレーンは、セカンダリレジスタ2618にフラグ“Secondary”を設定され、セカンダリレーンになる。
 プライマリレーンは、レーンイネーブル信号LE2[1:0]=“10”を出力する。つまり、プライマリレーンがレーン[i]である場合、レーン[i]のレーンイネーブル信号LE2[1:0]=“10”は、レーンイネーブル信号LE1[1:0]=“10”としてレーン[i+1]に入力され、レーン[i+1]はセカンダリレーンになる。
 セカンダリレーンは、レーンイネーブル信号LE2[1:0]=“00”を出力する。つまり、セカンダリレーンがレーン[i+1]である場合、レーン[i+1]のレーンイネーブル信号LE2[1:0]=“00”は、レーンイネーブル信号LE1[1:0]=“00”としてレーン[i+2]に入力される。レーンイネーブル信号LE1[1:0]=“00”を入力されたレーンは、非活性化され、レーンペアに含まれず、レーン間伝送遅延差の吸収処理の対象外である。
 例えば、レーン[0]の制御回路26の2ビットのレーンイネーブル信号LE2[1:0]とレーン[1]の制御回路26の2ビットのレーンイネーブル信号LE1[1:0]とが接続される。レーンイネーブル信号LE2[1:0],LE1[1:0]において、ビット[0]はプライマリレーンを指示するビットであり、ビット[1]がセカンダリレーンを指示するビットである。
 〔2-2〕レーン間伝送遅延差の吸収設定処理手順
 図9に示すフローチャート(ステップS11~S20)を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)によるレーン間伝送遅延差の吸収設定処理手順について説明する。
 レーン間伝送遅延差の吸収設定処理を開始する場合、まず、初期ステートマシン20bからレーン[0]のレーン制御部26bに対しレーンイネーブル信号LE1[1:0]=“01”が入力される(ステップS11)。これにより、レーン[0]はプライマリレーンに設定される。
 プライマリレーンに設定されたレーン[0]のレーン制御部26bは、レーン[1]に対し、レーンイネーブル信号LE2[1:0]=“10”を出力する。レーン[0]のレーンイネーブル信号LE2[1:0]はレーン[1]のレーンイネーブル信号LE1[1:0]に接続されているので、レーン[1]のレーンイネーブル信号LE1[1:0]=“10”となり、レーン[1]はセカンダリレーンに設定される。これにより、レーン[0],[1]が、レーンペア1として選択される(ステップS12)。セカンダリレーンに設定されたレーン[1]のレーン制御部26bは、レーン[2]へレーンイネーブル信号LE2[1:0]=“00”を出力し、レーン[2]を非活性化する。
 レーン[0],[1]がレーンペア1として選択されると、レーン[0]においてレーン制御部26bからレーンセレクト信号LS[1:0]=“01”がパターン検出回路25のセレクタ257に出力される。また、レーン[1]においてレーン制御部26bからレーンセレクト信号LS[1:0]=“10”がパターン検出回路25のセレクタ257に出力される。さらに、レーン[0],[1]において、判定回路253の出力が“1”になるため、比較器252の比較結果がANDゲート254を通過可能になり、比較器252が有効化される(ステップS13)。
 比較器252を有効化した状態で、特定パターンを含むデータが、送信モジュール10から受信モジュール20に対して送信される。このとき、比較器252が有効化されているレーン[0],[1]においてのみ遅延検出カウンタ255が起動され、レーン[0],[1]のそれぞれにおいて、隣接レーン伝送遅延差情報が取得され、伝送遅延差が計測されて保持FF263に記憶される(ステップS14)。そして、保持FF263に記憶された伝送遅延差が、自レーン[i]の遅延設定情報としてバッファ24のセレクタ245に出力され、バッファ24のリードポインタとして用いられる(ステップS15)。
 この後、レーン[1],[2]をレーンペアとして選択するように、レーン[0],[1]のレーンイネーブル信号LE2[1:0]が設定される(ステップS16)。つまり、レーン[0],[1]間の伝送遅延差の吸収設定が終わると、レーン[0]のレーン制御部26bは、初期化ステートマシン20bにクリア信号CL2を送信する(図12参照)。これに伴い、初期化ステートマシン20bからのレーンイネーブル信号LE1[1:0]は“01”から“00”に、レーン[0]のレーンイネーブル信号LE2[1:0]は“10”から“01”に、レーン[1]のレーンイネーブル信号LE2[1:0]は“00”から“10”になる(図13参照)。これにより、レーン[1]がプライマリレーンに、レーン[2]がセカンダリレーンに設定される。
 以下、図11~図18を参照しながら後述するように、各レーン[i]のレーン制御部26bが、レーンイネーブル信号LE1[1:0],LE2[1:0]およびクリア信号CL1, CL2を隣接レーンとやり取りする。これにより、往路で、レーン[n-1],[n]がレーンペアとして選択されるまで、レーンペアのシフト選択が実行され、レーンペアが選択される都度、伝送遅延差の吸収処理(補正処理)が実行される(ステップS17,S18)。この後、図19~図25を参照しながら後述するように、終端ロジック20cによりレーンペア選択の折り返し動作が行なわれる(ステップS19)。さらに、図26~図37を参照しながら後述するように、各レーン[i]のレーン制御部26bが、レーンイネーブル信号LE3[1:0],LE4[1:0]およびクリア信号CL3, CL4を隣接レーンとやり取りする。これにより、復路で、レーンペアがレーン[n],[n-1]からレーン[1],[0]まで順次シフト選択され、レーンペアが選択される都度、伝送遅延差の吸収処理が実行される(ステップS20)。なお、折り返し後、最初のレーンペア[n],[n-1]に対する吸収処理は、往路最後のレーンペア[n-1],[n]に対する吸収処理と重複することになるので省略し、レーン[n-1],[n-2]から開始してもよい。
 〔2-3〕レーン間伝送遅延差の吸収設定処理の具体例
 レーンペアとして選択されたプライマリレーンおよびセカンダリレーンは、それぞれ、両方のパターン検出信号を受信し、隣接レーン伝送遅延差情報(図4のANDゲート258の出力参照)に基づき、自レーンの遅延設定情報(図4,図5の設定部26aの出力参照)を決定する。ここで、隣接レーンの伝送遅延差情報やレーン間伝送遅延差の吸収設定処理の具体例について、図10(A)~図10(F)を参照しながら説明する。なお、図10(A)~図10(F)は、4つのシリアルレーン[0]~[3]で構成された伝送装置で伝送されている伝送データを模式的に示している。
 各レーンにおいて受信側に届くデータには、伝送路の線長差や、送信器と受信器との間のデバイスの製造バラツキにより、時間的差異が生じる。データを受信側のクロックでサンプリングする際、隣接するレーンにおいて同じクロックエッジでデータがサンプリングされた場合、時間的差異は無いと認識される。一方、隣接するレーンにおいて異なるクロックエッジでデータサンプリングされた場合、時間的差異があると認識される。
 図10(A)~図10(F)は、受信側のクロックでサンプリングした後の受信データの様子を示している。なお、図中のアルファベットA~Hは、レーン間で同期すべき、つまり同じタイミング(クロックエッジ)で受信されるべき1ビット分のデータとする。
 図10(A)は、伝送遅延差吸収設定処理を実行する前の状態を示す。図10(A)に示すレーン構成において、最も短い線路長を持つレーンはレーン[1]およびレーン[3]で、最も長い線路長を持つレーンはレーン[2]である。また、レーン[0]のデータとレーン[1]のデータとの間には1ビット分つまり1クロック分の差異があり、レーン[0]のデータがレーン[1]のデータよりも1クロック分遅れて到着する。レーン[1]のデータとレーン[2]のデータとの間には2ビット分つまり2クロック分の差異があり、レーン[1]のデータがレーン[2]のデータよりも2クロック分先に到着する。レーン[2]のデータとレーン[3]のデータとの間にも2ビット分つまり2クロック分の差異があり、レーン[2]のデータがレーン[3]のデータよりも2クロック分遅れて到着する。このようなクロックの差異が伝送遅延差吸収情報となる。
 図10(A)に示すレーン構成に対し、本実施形態のレーン間伝送遅延差の吸収処理を行なった場合、以下のようにして、最大線路長を持つレーン[2]の受信タイミングと、他のレーン[0],[1],[3]の受信タイミングとが合うように、各レーン[0],[1],[3]のバッファ24からの読出タイミング(リードポインタ)が調整設定される。
 図10(A)に示すレーン構成に対し伝送遅延差を補正するための設定処理を行なう場合、まず、図10(B)に示すように、プライマリレーン[0]とセカンダリレーン[1]とがレーンペアとして選択され、これらのレーン[0],[1]に対する設定処理が行なわれる。このとき、レーン[1]の方がレーン[0]よりも線路長が短く、レーン[1]のデータがレーン[0]のデータよりも先に受信側に到達するので、レーン[1]でのパターン検出がレーン[0]でのパターン検出よりも先に行なわれる。レーン[1]は、レーン[1]のカウンタ255により“2”を計数した時にレーン[0]からのパターン検出信号を受信し、ANDゲート258により隣接レーン伝送遅延差情報を生成する。レーン[0]は、先にレーン[1]側のパターン検出信号を隣接レーンBのパターン検出信号として受信しており、1クロック後に自レーン[0]のパターン検出信号を受け、ANDゲート258により隣接レーン伝送遅延差情報を生成する。この時点で、レーン[0]のカウンタ255によるカウント値は“1”となり、レーン[2]のカウンタ255によるカウント値は“2”となる。
 このとき、図10(A)に示すように、レーン[0]のデータがレーン[1]のデータよりも1クロック分遅れて到着している。この遅れは、レーン[0],[1]のパターン検出部25aでも1クロック分遅れて検出される。ANDゲート258によって生成されるレーン[0]および[1]のパターン検出信号の論理積である隣接レーン伝送遅延差情報は、図4に示すように、自レーンの遅延検出カウンタ255を停止させる信号となる。つまり、伝送遅延差検出パターンの検出を契機に開始されたカウンタ255による計数動作は、隣接レーン伝送遅延差情報によって停止される。これにより、レーンペアのうちの早い方のレーンにおけるカウント値に基づいて、早い方のレーンのデータをどれだけ遅延させれば、両レーンのデータの受信タイミングを一致させることができるかを決定することができる。本実施形態では、カウンタ255による計数値が、図4に示す伝送遅延差吸収情報となる。この情報は、各レーンで決定される。例えば、レーン[0]のデータがレーン[1]のデータよりも1クロック分早く到着する場合、レーン[0]のカウント値がレーン[1]のカウント値よりも1つ多くなる。逆に、レーン[1]のデータがレーン[0]のデータよりも1クロック分早く到着する場合、レーン[1]のカウント値がレーン[0]のカウント値よりも1つ多くなる。また、レーン[0]のデータとレーン[1]のデータとが同時に到着する場合、両レーンのカウント値は同じ値となる。このようなカウント値に基づく遅延設定情報を、レーン間伝送遅延差吸収バッファ24のリードポインタとしてセットすることで、レーン間伝送遅延差を補正するための設定が行なわれる。
 さて、レーンペアの各レーンにおけるカウント値は、伝送遅延差吸収情報として、各レーンの制御回路26内の自レーンの伝送遅延差吸収設定部26aに送られる。伝送遅延差吸収設定部26aでは、カウンタ255によるカウント値から“1”を減算した値が、保持FF263に保持される。例えば図10(B)に示すレーンペア[0],[1]に対し伝送遅延差を補正するための設定処理を行なった場合、レーン[0]の保持FF263には“000”が保持され、レーン[1]の保持FF263には“001”が保持される。レーン[0]および[1]それぞれの保持FF263に保持された遅延設定情報は、各レーンのバッファ24のリードポインタとして用いられ、セレクタ245は、リードポインタに応じたラインL0~L4のうちの一つからのデータを選択して出力することになる。これにより、レーン[0]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(B)のレーン[0]のデータA~H参照〕。また、レーン[1]のバッファ24では、ラインL1つまり1段目のバッファ241が選択され、セレクタ245は、データを、レーン[0]のデータに対し1クロック分遅延させて出力する〔図10(B)のレーン[1]のデータA′~H′参照〕。
 次に、図10(C)に示すように、プライマリレーン[1]とセカンダリレーン[2]とがレーンペアとして選択され、これらのレーン[1],[2]に対し上述と同様の設定処理が行なわれる。ただし、この場合、プライマリレーン[1]では、レーン制御部26bの第3デコーダ2621の出力値が“01”となり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[1]では、今回の処理で減算器261により得られた遅延値“001”と既に保持FF263に保持された値“001”とが加算器264により加算され、その加算値“010”がレーン[1]の保持FF263に保持される。一方、セカンダリレーン[2]では、レーン制御部26bの第3デコーダ2621の出力値が“00”となり(図8参照)、セレクタ262は減算器261の出力を選択している。このため、レーン[2]の保持FF263には“000”が保持される。これにより、レーン[1]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し1クロック分遅延させて出力する〔図10(C)のレーン[1]のデータA′~H′参照〕。また、レーン[2]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(C)のレーン[2]のデータA~H参照〕。
 次に、図10(D)に示すように、プライマリレーン[2]とセカンダリレーン[3]とがレーンペアとして選択され、これらのレーン[2],[3]に対し上述と同様の設定処理が行なわれる。この場合、プライマリレーン[2]では、レーン制御部26bの第3デコーダ2621の出力値が“01”となり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[2]では、今回の処理で減算器261により得られた遅延値“000”と既に保持FF263に保持された値“000”とが加算器264により加算され、その加算値“000”がレーン[2]の保持FF263に保持される。一方、セカンダリレーン[3]では、レーン制御部26bの第3デコーダ2621の出力値が“00”となり(図8参照)、セレクタ262は減算器261の出力を選択している。このため、レーン[3]では、カウンタ255からのカウント値“011”が減算器261により“1”だけ減算され、その減算された値“010”が保持FF263に保持される。これにより、レーン[2]のバッファ24ではラインL0が選択され、セレクタ245は、データを遅延させることなくそのまま出力する〔図10(D)のレーン[2]のデータA~H参照〕。また、レーン[3]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し2クロック分遅延させて出力する〔図10(D)のレーン[3]のデータA′~H′参照〕。
 ここまでの設定処理により、全てのレーン[0]~[3]について伝送遅延差を補正するための設定処理が行なわれている。しかし、実際には、図10(D)~図10(F)に示すように、レーン[0]が、他のレーン[1]~[3]よりもデータを1クロック分早く受信する状態で残ってしまっている。このような状態で設定処理を終わらせないために、上述と同様の設定処理が、レーンペアをレーン[0]からレーン[3]までシフトさせる往路のみならず、後述のごとくレーンペアをレーン[3]からレーン[0]までシフトさせる復路でも実行される。設定処理を1往復させることで、全てのレーン[0]~[3]の伝送遅延差が補正されるようにリードポインタの設定処理が行なわれる。なお、復路の設定処理対象となる各レーン[0]~[3]のレーン制御部26bには、往路の設定処理を完了していることを示すフラグ“complete1”がセットされている。
 次に、図10(D)に示すように、プライマリレーン[3]とセカンダリレーン[2]とがレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[3]および[2]は、既に相互に伝送遅延差の無い状態に設定されているので、両レーン[3],[2]においてカウンタ255の伝送遅延差吸収情報は“001”となる。この伝送遅延差吸収情報“001”から減算器261により“1”を減算して得られた値は“000”となる。ここで、両レーン[3],[2]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[3]では、保持FF263に“010”が保持され続けるとともに、レーン[2]では、保持FF263に“000”が保持され続ける。
 ついで、図10(E)に示すように、プライマリレーン[2]とセカンダリレーン[1]とがレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[2]および[1]も、既に相互に伝送遅延差の無い状態に設定されているので、両レーン[2],[1]においてカウンタ255の伝送遅延差吸収情報は“001”となる。この伝送遅延差吸収情報“001”から減算器261により“1”を減算して得られた値は“000”となる。ここで、両レーン[2],[1]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[2]では、保持FF263に“000”が保持され続けるとともに、レーン[1]では、保持FF263に“010”が保持され続ける。
 最後に、図10(F)に示すように、プライマリレーン[1]とセカンダリレーン[0]とレーンペアとして選択され、2回目(復路)の設定処理が行なわれる。このとき、レーン[1]のデータがレーン[1]のデータよりも1クロック分早く受信されているので、レーン[1]のカウンタ255によるカウント値は“001”となり、レーン[0]のカウンタ255によるカウント値は“010”となる。ここで、両レーン[1],[0]においてレーン制御部26bの第3デコーダ2621の出力値は“01”であり(図8参照)、セレクタ262は加算器264の出力を選択している。このため、レーン[1]では、カウント値“001”から減算器261により“1”を減算して得られた値“000”と既に保持FF264に保持された値“010”とが加算器264により加算され、その加算値“010”が保持FF263に保持される。また、レーン[0]では、カウント値“010”から“1”を減算して得られた値“001”と保持FF264に保持された値“000”とが加算器264により加算され、その加算値“001”が保持FF263に保持される。これにより、レーン[1]のバッファ24では、ラインL2つまり2段目のバッファ242が選択され、セレクタ245は、データを、レーン[2]のデータに対し2クロック分遅延させて出力する〔図10(F)のレーン[1]のデータA′~H′参照〕。また、レーン[0]のバッファ24では、ラインL1つまり1段目のバッファ241が選択され、セレクタ245は、データを、レーン[2]のデータに対し1クロック分遅延させて出力する〔図10(F)のレーン[0]のデータA′~H′参照〕。
 以上のような設定処理を行なうことにより、図10(A)に示すレーン構成に対し、レーン[0]の保持FF263には“001”が保持され、レーン[1]の保持FF263には“010”が設定され、レーン[2]の保持FF263には“000”が設定され、レーン[3]の保持FF263には“010”が保持される。そして、各保持FF263に保持された値に応じて、バッファ24におけるバッファ段数が選択される。これにより、最大線路長を持つレーン[2]の受信タイミングと、他のレーン[0],[1],[3]の受信タイミングとが合うように、各レーン[0],[1],[3]のバッファ24からの読出タイミング(リードポインタ)が調整設定される。
 〔2-4〕レーンペア選択動作の具体例
 図11~図37を参照しながら、本実施形態の伝送遅延差吸収装置(通信装置)におけるレーンペア選択動作(1)~(27)を具体的に説明する。
 図11~図37においては、初期化ステートマシン(I)20bと、終端ロジック(TL)20cと、4つのレーン[0]~[3]とをそなえた伝送装置に、本実施形態の伝送遅延差吸収装置(通信装置)を適用した場合の、レーンペア選択動作(1)~(27)が具体的に示されている。
 特に、図11~図18においては、レーン[0]~[3]間の伝送遅延差を補正するための設定処理が開始されてから、往路でレーンペアとしてレーン[0],[1]、レーン[1],[2]、レーン[2],[3]が順次シフト選択されるまでの動作(1)~(8)が示されている。また、図19~図25においては、レーンペア選択の折り返し動作(9)~(15)が示されている。図26~図37においては、折り返し後に、復路でレーンペアとしてレーン[3],[2]、レーン[2],[1]、レーン[1],[0]が順次シフト選択され、設定処理が完了されるまでの動作(16)~(27)が示されている。
 なお、各図のレーン[0]~[3]には、各動作段階(1)~(27)での各レーン(レーン制御26bのフラグ保持レジスタ2613~2618)におけるフラグ“Primary”,“Secondary”,“current1”,“complete1”,“current2”,“complete2”の設定状態が示されている。具体的に、図11~図37では、各レーンにおけるフラグ“Primary”,“Secondary”,“current1”,“complete1”,“current2”,“complete2”の状態が、それぞれブロックP, S, cu1, co1, cu2, co2によって示されている。そして、フラグがセットされている場合、対応ブロック内に斜線網掛けが付され、フラグがセットされていない場合(クリアされた場合)、対応ブロック内は空白となっている。また、図11~図22では、各レーンにおけるフラグ“current2”,“complete2”の図示は省略されているが、これらのフラグは全て未設定状態である。図25~図37では、各レーンにおけるフラグ“current1”,“complete1”の図示は省略されているが、図24に示すように、フラグ“current1”は全てクリアされ、フラグ“complete1”は全てセットされている。
 また、図11~図37に示す伝送装置において、4つのレーン[0]~[3]は、図1~図3に示す装置と同様、初期化ステートマシン20bと終端ロジック20cとの間において、信号線SLによって直列(数珠状)に接続されている。そして、図11~図37においては、初期化ステートマシン20b,レーン[0]~[3]および終端ロジック20cを接続する信号線SLの下に、各動作段階(1)~(27)で初期化ステートマシン20b,レーン[0]~[3]および終端ロジック20cのそれぞれに入出力されるレーンイネーブル信号LE1[1:0],LE2[1:0]の状態(2ビットデータ)が示されている。
 さらに、図11~図37において各レーン[0]~[3]を示すブロック内には、各動作段階(1)~(27)での各レーンの状態を示す符号“P”,“S”,“n”のいずれか一つが記入されている。ここで、“P”が記入されている場合、“P”を記入されたレーンが、レーンペアのプライマリレーンとして選択されていることを示す。“S”が記入されている場合、“S”を記入されたレーンが、レーンペアのセカンダリレーンとして選択されていることを示す。“n”が記入されている場合、“n”を記入されたレーンが、レーンペアとして選択されていないこと、つまり非活性化されていることを示す。
 まず、図11~図18を参照しながら、往路でのレーンペアの選択動作(1)~(8)について説明する。
 図11に示す動作(1)では、レーン間伝送遅延差の吸収設定処理を開始する際、まず、初期ステートマシン20bからレーン[0]に対しレーンイネーブル信号LE1[1:0]=“01”が入力される。これに伴い、レーン[0]のフラグP, cu1が設定され、レーン[0]はプライマリレーンに設定される。プライマリレーンに設定されたレーン[0]は、レーン[1]に対しレーンイネーブル信号LE2[1:0]=“10”を出力し、同信号がレーン[1]のレーンイネーブル信号LE1[1:0]=“10”として入力される。これにより、レーン[1]のフラグSが設定され、レーン[1]はセカンダリレーンに設定され、レーン[0],[1]が、レーンペアとして選択される。セカンダリレーンに設定されたレーン[1]は、レーン[2]へレーンイネーブル信号LE2[1:0]=“00”を出力することで、以降のレーン[2],[3]を非活性化する。
 図12に示す動作(2)では、上記動作(1)後にレーン[0],[1]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[0]が往路での設定処理を完了すると、レーン[0]においてフラグco1が設定され、レーン[0]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[0]は、初期化ステートマシン20bにクリア信号CL2を送信する。
 図13および図14に示す動作(3),(4)では、初期化ステートマシン20bがレーン[0]からクリア信号CL2を受信すると、初期ステートマシン20bからレーン[0]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[0]のフラグPがクリアされる。また、上記動作(2)でレーン[0]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[0]からレーン[1]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[1]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[1]のフラグP, cu1が設定され、フラグSがクリアされ、さらに、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“00”から“10”に切り換わる。レーン[2]にレーンイネーブル信号LE1[1:0]=“10”が入力されると、レーン[2]のフラグSが設定される。これにより、図14に示すように、レーン[0]は非活性化され、レーン[1]をプライマリレーンとしレーン[2]をセカンダリレーンとするレーンペアが選択される。なお、この後、初期化ステートマシン20bは、レーン[0]からのレーンイネーブル信号LE4[1:0]が“00”から“10”に切り換わるのを待機する。
 図15に示す動作(5)では、上記動作(4)後にレーン[1],[2]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[1]が往路での設定処理を完了すると、レーン[1]においてフラグco1が設定され、レーン[1]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[1]は、レーン[0]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[0]のクリア信号CL1として入力される。
 図16および図17に示す動作(6),(7)では、レーン[0]がレーン[1]からクリア信号CL1を入力されると、レーン[0]のフラグcu1がクリアされる。これに応じ、レーン[0]からレーン[1]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[1]のフラグPがクリアされる。また、上記動作(5)でレーン[1]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[2]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[2]のフラグP, cu1が設定され、フラグSがクリアされ、さらに、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“00”から“10”に切り換わる。レーン[3]にレーンイネーブル信号LE1[1:0]=“10”が入力されると、レーン[3]のフラグSが設定される。これにより、図17に示すように、レーン[1]は非活性化され、レーン[2]をプライマリレーンとしレーン[3]をセカンダリレーンとするレーンペアが選択される。
 図18に示す動作(8)では、上記動作(7)後にレーン[2],[3]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[2]が往路での設定処理を完了すると、レーン[2]においてフラグco1が設定され、レーン[2]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[2]は、レーン[1]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[1]のクリア信号CL1として入力される。
 ついで、図19~図25を参照しながら、レーンペア選択の折り返し動作、つまりレーンペア選択を往路から復路に切り換える動作(9)~(15)について説明する。
 図19および図20に示す動作(9),(10)では、レーン[1]がレーン[2]からクリア信号CL1を入力されると、レーン[1]のフラグcu1がクリアされる。これに応じ、レーン[1]からレーン[2]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[2]のフラグPがクリアされる。また、上記動作(8)でレーン[2]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“10”から“01”に切り換わる。レーン[3]にレーンイネーブル信号LE1[1:0]=“01”が入力されると、レーン[3]のフラグP, cu1が設定され、フラグSがクリアされる。これにより、図20に示すように、レーン[2]は非活性化され、レーン[3]はプライマリレーンに設定された状態になる。
 そして、図20に示す動作(10)では、終端ロジック20cにレーンイネーブル信号LE1[1:0]=“10”が入力されると、終端ロジック20cは、レーン[3]のフラグco1を設定するためのセット信号SC1を、レーン[3]に対し隣接レーン伝送遅延情報として入力する。
 図21に示す動作(11)では、レーン[3]が終端ロジック20cからセット信号SC1を受けると、レーン[3]においてフラグco1が設定され、レーン[3]においてフラグcu1およびフラグco1の両方が設定される。これに伴い、レーン[3]は、レーン[2]に対してクリア信号CL2を出力し、同クリア信号CL2がレーン[2]のクリア信号CL1として入力される。
 図22に示す動作(12)では、レーン[2]がレーン[3]からクリア信号CL1を入力されると、レーン[2]のフラグcu1がクリアされる。これに応じ、レーン[2]からレーン[3]に対して入力されるレーンイネーブル信号LE1[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[3]のフラグPがクリアされる。また、上記動作(11)でレーン[3]のフラグcu1およびフラグco1の両方が設定されることに伴い、レーン[3]から終端ロジック20cに対し入力されるレーンイネーブル信号LE2[1:0]は、“10”から“01”に切り換わる。
 図23に示す動作(13)では、終端ロジック20cにレーンイネーブル信号LE1[1:0]=“01”が入力されると、終端ロジック20cは、レーン[3]に対してクリア信号CL1を入力するとともに、レーン[3]に入力されるレーンイネーブル信号LE3[1:0]を“00”から“10”に切り換える。これに伴い、レーン[3]のフラグcu1がクリアされるとともに、レーン[3]のフラグSが設定される。
 図24および図25に示す動作(14),(15)では、レーン[3]のフラグcu1がクリアされると、レーン[3]から終端ロジック20cに対し入力されるレーンイネーブル信号LE2[1:0]は、“01”から“00”に切り換わる。これに伴い、終端ロジック20cは、レーン[3]に入力されるレーンイネーブル信号LE3[1:0]を“10”から“01”に切り換える。レーン[3]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[3]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[2]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[2]のフラグSが設定される。これにより、図25に示すように、レーン[3]をプライマリレーンとしレーン[2]をセカンダリレーンとするレーンペアが選択される。以上により、レーンペア選択の折り返しが完了する。
 ついで、図26~図37を参照しながら、復路でのレーンペアの選択動作(16)~(27)について説明する。
 図26に示す動作(16)では、上記動作(15)後にレーン[3],[2]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[3]が復路での設定処理を完了すると、レーン[3]においてフラグco2が設定され、レーン[3]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[3]は、終端ロジック20cに対してクリア信号CL4を出力し、同クリア信号CL4が終端ロジック20cに入力される。
 図27および図28に示す動作(17),(18)では、終端ロジック20cがレーン[3]からクリア信号CL4を入力されると、終端ロジック20cからレーン[3]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[3]のフラグPがクリアされる。また、上記動作(16)でレーン[3]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[2]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[2]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[1]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[1]のフラグSが設定される。これにより、図28に示すように、レーン[3]は非活性化され、レーン[2]をプライマリレーンとしレーン[1]をセカンダリレーンとするレーンペアが選択される。
 図29に示す動作(19)では、上記動作(18)後にレーン[2],[1]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[2]が復路での設定処理を完了すると、レーン[2]においてフラグco2が設定され、レーン[2]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[2]は、レーン[3]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[3]のクリア信号CL2として入力される。
 図30および図31に示す動作(20),(21)では、レーン[3]がレーン[2]からクリア信号CL3を入力されると、レーン[3]のフラグcu2がクリアされる。これに応じ、レーン[3]からレーン[2]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[2]のフラグPがクリアされる。また、上記動作(19)でレーン[2]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[1]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[1]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“00”から“10”に切り換わる。レーン[0]にレーンイネーブル信号LE3[1:0]=“10”が入力されると、レーン[0]のフラグSが設定される。これにより、図31に示すように、レーン[2]は非活性化され、レーン[1]をプライマリレーンとしレーン[0]をセカンダリレーンとするレーンペアが選択される。
 図32に示す動作(22)では、上記動作(21)後にレーン[1],[0]が相互に隣接レーン伝送遅延差情報を受けると、つまりプライマリレーン[1]が復路での設定処理を完了すると、レーン[1]においてフラグco2が設定され、レーン[1]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[1]は、レーン[2]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[2]のクリア信号CL3として入力される。
 図33および図34に示す動作(23),(24)では、レーン[2]がレーン[1]からクリア信号CL3を入力されると、レーン[2]のフラグcu2がクリアされる。これに応じ、レーン[2]からレーン[1]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[1]のフラグPがクリアされる。また、上記動作(22)でレーン[1]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“10”から“01”に切り換わる。レーン[0]にレーンイネーブル信号LE3[1:0]=“01”が入力されると、レーン[0]のフラグP, cu2が設定され、フラグSがクリアされ、さらに、レーン[0]から初期化ステートマシン20bに対して入力されるレーンイネーブル信号LE4[1:0]は、“00”から“10”に切り換わる。
 そして、図34に示す動作(24)では、初期化ステートマシン20bにレーンイネーブル信号LE4[1:0]=“10”が入力されると、初期化ステートマシン20bは、レーン[0]のフラグco2を設定するためのセット信号SC2を、レーン[0]に対し隣接レーン伝送遅延情報として入力する。
 図35に示す動作(25)では、レーン[0]が初期かステートマシン20bからセット信号SC2を受けると、レーン[0]においてフラグco2が設定され、レーン[0]においてフラグcu2およびフラグco2の両方が設定される。これに伴い、レーン[0]は、レーン[1]に対してクリア信号CL4を出力し、同クリア信号CL4がレーン[1]のクリア信号CL3として入力される。
 図36に示す動作(26)では、レーン[1]がレーン[0]からクリア信号CL3を入力されると、レーン[1]のフラグcu2がクリアされる。これに応じ、レーン[1]からレーン[0]に対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わる。これに伴い、レーン[0]のフラグPがクリアされる。また、上記動作(25)でレーン[0]のフラグcu2およびフラグco2の両方が設定されることに伴い、レーン[0]から初期化ステートマシン20bに対し入力されるレーンイネーブル信号LE4[1:0]は、“10”から“01”に切り換わる。初期化ステートマシン20bは、レーン[0]からレーンイネーブル信号LE4[1:0]=“01”を入力されると、レーン[0]に対してクリア信号CL3を入力する。
 図37に示す動作(27)では、レーン[0]が初期化ステートマシン20bからクリア信号CL3を入力されると、レーン[0]のフラグcu2がクリアされる。これに応じ、レーン[0]から初期化ステートマシン20bに対して入力されるレーンイネーブル信号LE3[1:0]は、“01”から“00”に切り換わり、復路でのレーンペアの選択動作が完了する。
 以上のようにして、一連のレーンペア選択動作、つまりはレーン間伝送遅延差の吸収設定処理が完了する。
 上述した伝送遅延差吸収装置(通信装置)によれば、数珠状に接続されたレーンにおけるパターン検出回路25および制御回路26(レーン制御部26b)により、レーンペアを順にシフトさせて選択しながら伝送遅延差の吸収設定処理に係る情報(伝送遅延差)が収集される。そして、収集された情報に基づき、レーンペアのうち伝送遅延差が小さい方の制御回路26が、自身のレーン間伝送遅延差吸収バッファ24のデータ読出タイミングを、伝送遅延差が大きい方のレーンにおけるバッファ24に合わせるように、設定処理が行なわれる。
 このとき、設定処理が、レーンペアをレーン[0]からレーン[n]までシフトさせる往路のみならず、レーンペアをレーン[n]からレーン[0]までシフトさせる復路でも実行される。このように設定処理を1往復させることで、例えば図10(D)~図10(F)に示すように、レーン[0]が、他のレーン[1]~[3]よりもデータを1クロック分早く受信する状態で設定処理が終わってしまうことを確実に抑止することができる。
 これにより、本実施形態によれば、従来のごとく一箇所の制御回路に情報を集約させることなく、全てのレーン[0]~[n]の伝送遅延差が吸収されるようにリードポインタの設定処理が確実に行なわれる。したがって、処理対象のレーン数が増大しても、レーンを数珠状(直列)に接続するだけで全てのレーンに対する設定処理が可能であり、レーン間の伝送遅延差を補正するための設定処理を確実に実行しながら、配線レイアウト,ノイズ対策,回路の高速化を実現することも可能になる。
 〔3〕その他
 以上、本発明の好ましい実施形態について詳述したが、本発明は、係る特定の実施形態に限定されるものではなく、本発明の趣旨を逸脱しない範囲内において、種々の変形、変更して実施することができる。
 例えば、図10~図37を参照しながら上述した実施形態の具体例では、レーン数が4である場合について説明したが、本件は、これに限定されるものではない。
 1  データ伝送機能を有する装置(通信システム)
 10  送信モジュール
 10-0~10-n  レーン[0]~[n]用送信部
 20  受信モジュール(通信装置)
 20-0~20-n  レーン[0]~[n]用受信部
 20a  処理モジュール
 20b  初期化ステートマシン
 20c  終端ロジック
 21  シリアル/パラレル(S/P)変換回路
 22  ビット境界検出回路
 23  クロック乗換バッファ
 24  レーン間伝送遅延差吸収バッファ(バッファ;吸収処理部;制御部)
 241~244  バッファ
 245  セレクタ
 25  パターン検出回路(吸収処理部;制御部)
 25a  パターン検出部
 25b  隣接レーン間伝送遅延差検出部(伝送遅延差検出部;検出部)
 251  伝送遅延検出パターン記憶部
 252  比較器
 253  判定回路
 254  ANDゲート
 255  遅延検出カウンタ
 256  ORゲート
 257  セレクタ
 258  ANDゲート
 26  レーン間伝送遅延差吸収制御回路(吸収処理部;制御部)
 26a  伝送遅延差吸収設定部(バッファ制御部)
 26b  レーン制御部
 26c  ORゲート
 261  減算器
 262  セレクタ
 263  保持FF(フリップフロップ)
 264  加算器
 2601~2612  判定回路
 2613~2618  フラグ保持レジスタ
 2619  第1デコーダ
 2620  第2デコーダ
 2621  第3デコーダ
 2622  インバータ
 2623  ORゲート
 100  データ伝送機能を有する装置
 110  送信モジュール
 110-0~110-n  レーン[0]~[n]用送信部
 120  受信モジュール
 120-0~120-n  レーン[0]~[n]用受信部
 120a  レーン間伝送遅延差吸収制御回路
 120b  処理モジュール
 121  シリアル/パラレル(S/P)変換回路
 122  ビット境界検出回路
 123  クロック乗換バッファ
 124  レーン間伝送遅延差吸収バッファ
 125  パターン検出回路
 SL,SL0~SL7  信号線

Claims (14)

  1.  複数の伝送路それぞれに対応する受信部を有し、隣接された受信部同士が信号線で接続され、前記複数の伝送路を介して送信側装置からのデータを受信する通信装置における伝送路間の伝送遅延差を補正する方法において、
     同一信号を受信する隣接する2つの受信部間で、前記信号を受信した旨の情報を前記信号線を介して互いに通知し、
     他方の受信部からの通知と、自身の信号受信との時間差に応じて、伝送遅延差を補正する処理を実行し、
     前記隣接する受信部のうちの一方の受信部と、前記一方の受信部に隣接する受信部のうち、当該一方の受信部との間で補正処理を行なっていない方の受信部との選択と、選択された受信部間の伝送遅延差補正処理とを順次行なうことを特徴とする、伝送遅延差補正方法。
  2.  前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
     前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、請求項1記載の伝送遅延差補正方法。
  3.  複数の伝送路により送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置において、
     前記伝送路毎に設けられた複数の受信部と、
     隣接する受信部同士を接続する信号線とを有し、
     前記複数の受信部の各々は、
     対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
     隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
     前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信装置。
  4.  前記制御部は、
     隣接する受信部の制御部と連携し、
     前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
     前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、請求項3記載の通信装置。
  5.  前記制御部は、
     前記送信装置からの複数のデータを一時的に保持するバッファと、
     前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
     前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
     前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、請求項4記載の通信装置。
  6.  前記制御部は、
     前記送信装置からの複数のデータを一時的に保持するバッファを有し、
     自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、請求項4記載の通信装置。
  7.  前記バッファ制御部は、
     2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、請求項5記載の通信装置。
  8.  前記制御部は、
     隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、請求項5または請求項7に記載の通信装置。
  9.  送信装置と、
     複数の伝送路により前記送信装置に接続され、前記複数の伝送路を介して前記送信装置からの情報を受信する通信装置とをそなえ、
     前記通信装置は、
     前記伝送路毎に設けられた複数の受信部と、
     隣接する受信部同士を接続する信号線とを有し、
     前記複数の受信部の各々は、
     対応する伝送路を介して受信した信号を検出するとともに、隣接する受信部との間で各々の当該信号の検出結果を前記信号線を介して授受する検出部と、
     隣接する受信部と自身との前記信号の検出時間差より、当該受信部間の伝送遅延差を補正する制御を行なう制御部とを備え、
     前記制御部は、自身の補正処理状況を隣接する受信部の制御部に通知するとともに、補正処理を行なっていない制御部は、隣接する受信部の制御部からの通知に応じて自身の補正処理を開始することを特徴とする、通信システム。
  10.  前記制御部は、
     隣接する受信部の制御部と連携し、
     前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を実行した後、
     前記補正処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記補正処理を再度実行する、請求項9記載の通信システム。
  11.  前記制御部は、
     前記送信装置からの複数のデータを一時的に保持するバッファと、
     前記補正処理の実行時に、前記送信装置からの特定パターンを有するデータを検出するパターン検出部と、
     前記補正処理の実行時に、前記パターン検出部による前記特定パターンの検出タイミングと、前記信号線によって送信される隣接する受信部での前記特定パターンの検出タイミングとに基づき、自身と隣接する受信部との間の伝送遅延差を検出する伝送遅延差検出部と、
     前記伝送遅延差検出部によって検出された前記伝送遅延差を吸収補正するように前記バッファからの前記データの読出位置を設定するバッファ制御部と、を有する、請求項10記載の通信システム。
  12.  前記制御部は、
     前記送信装置からの複数のデータを一時的に保持するバッファを有し、
     自身の信号受信が前記隣接する受信部による信号受信よりも遅い場合に、前記バッファからの前記データの読み出し位置を変更することを特徴とする、請求項10記載の通信システム。
  13.  前記バッファ制御部は、
     2つの受信部の選択が前記複数の受信部における一端の受信部から他端の受信部に到達するまでの間に前記前記伝送遅延差検出部によって検出された伝送遅延差と、2つの受信部の選択が前記他端の受信部から前記一端の受信部に到達するまでの間に前記伝送遅延差検出部によって検出された伝送遅延差とを加算した値を吸収補正するように前記バッファからの前記データの読出位置を設定する、請求項11記載の通信システム。
  14.  前記制御部は、
     隣接する受信部にそなえられた前記制御部と連携し、前記複数の受信部における一端の受信部から他端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記設定処理を実行させる一方、前記設定処理を施された前記複数の受信部における前記他端の受信部から前記一端の受信部に到達するまで2つの受信部を順次選択し、2つの受信部を選択する都度、前記パターン検出部,前記伝送遅延差検出部および前記バッファ制御部に前記補正処理を再度実行させるレーン制御部を有する、請求項11または請求項13に記載の通信システム。
PCT/JP2011/056601 2011-03-18 2011-03-18 伝送遅延差補正方法,通信装置および通信システム WO2012127575A1 (ja)

Priority Applications (3)

Application Number Priority Date Filing Date Title
PCT/JP2011/056601 WO2012127575A1 (ja) 2011-03-18 2011-03-18 伝送遅延差補正方法,通信装置および通信システム
JP2013505636A JP5633636B2 (ja) 2011-03-18 2011-03-18 伝送遅延差補正方法,通信装置および通信システム
US14/026,619 US20140013179A1 (en) 2011-03-18 2013-09-13 Transmission delay difference correction method, communication device, and communication system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
PCT/JP2011/056601 WO2012127575A1 (ja) 2011-03-18 2011-03-18 伝送遅延差補正方法,通信装置および通信システム

Related Child Applications (1)

Application Number Title Priority Date Filing Date
US14/026,619 Continuation US20140013179A1 (en) 2011-03-18 2013-09-13 Transmission delay difference correction method, communication device, and communication system

Publications (1)

Publication Number Publication Date
WO2012127575A1 true WO2012127575A1 (ja) 2012-09-27

Family

ID=46878772

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/JP2011/056601 WO2012127575A1 (ja) 2011-03-18 2011-03-18 伝送遅延差補正方法,通信装置および通信システム

Country Status (3)

Country Link
US (1) US20140013179A1 (ja)
JP (1) JP5633636B2 (ja)
WO (1) WO2012127575A1 (ja)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015536073A (ja) * 2012-09-24 2015-12-17 ザイリンクス インコーポレイテッドXilinx Incorporated 非同期バッファを用いたクロック領域境界交差

Families Citing this family (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20160284595A1 (en) * 2015-03-26 2016-09-29 Qualcomm Incorporated Selective analog and radio frequency performance modification
US9882653B2 (en) * 2015-04-10 2018-01-30 Arista Networks, Inc. System and method of de-skewing electrical signals
JP2017050730A (ja) * 2015-09-02 2017-03-09 富士通株式会社 無線装置および基地局システム
JP7094952B2 (ja) * 2017-06-09 2022-07-04 ソニーセミコンダクタソリューションズ株式会社 受信装置、制御方法、プログラム、および送受信システム
JP7037035B2 (ja) * 2017-09-01 2022-03-16 富士通株式会社 データ伝送装置、演算処理装置及びデータ伝送装置の制御方法
US10445265B2 (en) * 2017-10-20 2019-10-15 Cisco Technology, Inc. Method and apparatus for deskewing decentralized data streams
CN111083309B (zh) * 2018-10-18 2022-04-01 北京魔门塔科技有限公司 一种多传感器数据的时间对齐方法及数据采集设备
US11178055B2 (en) * 2019-06-14 2021-11-16 Intel Corporation Methods and apparatus for providing deterministic latency for communications interfaces
CN115932351B (zh) * 2023-03-09 2023-07-04 深圳市鼎阳科技股份有限公司 一种示波器级联的延时校正方法、示波器、终端及介质

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003204318A (ja) * 2002-01-07 2003-07-18 Fujitsu Ltd 伝送システム
JP2004289567A (ja) * 2003-03-24 2004-10-14 Nippon Telegr & Teleph Corp <Ntt> フレーム信号符号化通信方法及び符号化装置並びに符号化送信装置及び符号化受信装置
JP2009219097A (ja) * 2008-02-12 2009-09-24 Mitsubishi Electric Corp デスキュー方式

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100601149B1 (ko) * 1998-03-12 2006-07-13 가부시키가이샤 히타치세이사쿠쇼 데이터 전송장치
US6735397B2 (en) * 2001-03-14 2004-05-11 Blaze Network Products, Inc. Skew discovery and compensation for WDM fiber communications systems using 8b10b encoding
JP2005244479A (ja) * 2004-02-25 2005-09-08 Fujitsu Ltd 伝送装置
US7500131B2 (en) * 2004-09-07 2009-03-03 Intel Corporation Training pattern based de-skew mechanism and frame alignment
JP4543981B2 (ja) * 2005-03-22 2010-09-15 日本電気株式会社 時間差調整回路及び方法

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2003204318A (ja) * 2002-01-07 2003-07-18 Fujitsu Ltd 伝送システム
JP2004289567A (ja) * 2003-03-24 2004-10-14 Nippon Telegr & Teleph Corp <Ntt> フレーム信号符号化通信方法及び符号化装置並びに符号化送信装置及び符号化受信装置
JP2009219097A (ja) * 2008-02-12 2009-09-24 Mitsubishi Electric Corp デスキュー方式

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP2015536073A (ja) * 2012-09-24 2015-12-17 ザイリンクス インコーポレイテッドXilinx Incorporated 非同期バッファを用いたクロック領域境界交差

Also Published As

Publication number Publication date
US20140013179A1 (en) 2014-01-09
JP5633636B2 (ja) 2014-12-03
JPWO2012127575A1 (ja) 2014-07-24

Similar Documents

Publication Publication Date Title
JP5633636B2 (ja) 伝送遅延差補正方法,通信装置および通信システム
US8862925B2 (en) Pseudo synchronous serial interface synchronization method
US7434114B2 (en) Method of compensating for a byte skew of PCI express and PCI express physical layer receiver for the same
US8356240B2 (en) Data transfering apparatus
US20060193395A1 (en) Combined alignment scrambler function for elastic interface
US7461287B2 (en) Elastic interface de-skew mechanism
US8045667B2 (en) Deserializer and data recovery method
US8401138B2 (en) Serial data receiver circuit apparatus and serial data receiving method
US8464145B2 (en) Serial interface devices, systems and methods
US20140101356A1 (en) Transmission device, transmission system, and control method for transmission device
CN102546084B (zh) 异步串行通信数据接收时的抗干扰纠错采样系统和方法
WO2005015864A1 (en) Auto realignment of multiple serial byte-lanes
EP2351303A2 (en) Method, apparatus, and system for automatic data aligner for multiple serial receivers
JP2017011470A (ja) シリアル通信装置及びシリアル通信方法
US9058266B2 (en) Deskew apparatus and method for peripheral component interconnect express
US8161349B2 (en) Data parallelizing receiver
JP4336860B2 (ja) シリアルインタフェース回路、及びシリアル受信器
JP2008172657A (ja) 受信装置
CN108170616B (zh) 利用锁存器实现跨时钟域信号传输的系统
US7443940B2 (en) Alignment mode selection mechanism for elastic interface
US20080168338A1 (en) Parity error detecting circuit and method
JP2016042218A (ja) エラー検出装置及びエラー検出方法
JPS6362427A (ja) デ−タ通信における誤り検出方式
RU2516586C1 (ru) Способ автосинхронизации приема и обработки потока данных по стартовому символу и устройство для его осуществления
KR20030052020A (ko) 패리티 에러 검출 회로

Legal Events

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

Ref document number: 11861365

Country of ref document: EP

Kind code of ref document: A1

ENP Entry into the national phase

Ref document number: 2013505636

Country of ref document: JP

Kind code of ref document: A

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 11861365

Country of ref document: EP

Kind code of ref document: A1