The embodiments discussed herein are related to a transmission device, a transmission system, and a control method for the transmission device.
There is a known conventional technology in which transmission devices transmit and receive data via multiple paths. An example of such a transmission device is that of the known technology associated with the Peripheral Component Interconnect express (PCIe) standard in which a transmission device is connected to opposing transmission devices via multiple paths and transmits and receives data by linking these multiple paths.
Because the transmission device that uses the technology associated with the PCIe standard operates at different clocks for each port that transmits and receives data, a difference is present between the clock frequency at which a port on the transmission side operates and the clock frequency at which a port on the reception side operates. When such a difference is present, because the transmitted and received data is lost or is read twice, the transmission device on the transmission side performs the following process.
Namely, the transmission device on the transmission side periodically creates fixed-length data called a skip (SKP) ordered set (hereinafter, referred to as a skip ordered set) and simultaneously inserts the created skip ordered set into the data that is to be transmitted via each path. Specifically, the transmission device on the transmission side inserts skip ordered set that has a length of four symbols and in which one “C (COM)” symbol and three “S (SKIP)” symbols are included. Then, the transmission device on the transmission side transmits, to an opposing transmission device, the data into which the skip ordered set is inserted.
In contrast, the transmission device on the reception side includes, for each transmission path, multiple elastic buffers that store therein the received data. Furthermore, the transmission device on the reception side stores, in each of the elastic buffers, the data received from the transmission device on the transmission side. When the transmission device on the reception side reads the data stored in each of the elastic buffers, in order to prevent overflow or underflow in each of the elastic buffers due to a difference in the clock frequency, the transmission device performs the following process for each elastic buffer.
Namely, when the amount of data stored in an elastic buffer is equal to or greater than a predetermined threshold, the transmission device on the reception side deletes one or some of the “S” symbols included in the skip ordered set that is inserted into the data. Furthermore, when the amount of data stored in an elastic buffer is equal to or greater than the predetermined threshold, the transmission device on the reception side reads a “S” symbol included in the skip ordered set that is inserted into the data, thereby adding a part of the skip ordered set.
However, in the above-described technology for periodically inserting a fixed-length of skip ordered set into all of the lanes, the deletion or the addition of the “S” symbol is independently performed for each elastic buffer. Consequently, the logic of the deskewing process, in which the tops of the data that are read from the elastic buffers are aligned, becomes complicated.
Specifically, because the transmission device on the reception side independently performs, for each elastic buffer, the addition or the deletion of the “S” symbol, if only the positions of the “C” symbols in the detected skip ordered sets are aligned, it is not difficult to perform the deskewing process on each of the data. Thus, the transmission device on the reception side detects a skip ordered set that is inserted into each of the data and then aligns the positions of the “C” symbols in the detected skip ordered sets. Then, the transmission device on the reception side performs a process of aligning the symbol lengths of each skip ordered set by comparing the symbol length of the skip ordered set that is inserted into each of the data and then deleting or adding one of the symbols included in the skip ordered set.
In the following, an example of a process performed by such a transmission device will be described with reference to the drawings.
Furthermore, the data transmitted via the serial transmission paths #1 to #8 is referred to as data #1 to #8, respectively. Furthermore, it is assumed that the transmission device 51 includes elastic buffers (hereinafter, referred to as ESs) #1 to #8 that store therein the data #1 to #8 received via the serial transmission paths #1 to #8, respectively.
As illustrated at (A) in
Then, as illustrated at (B) in
Namely, as illustrated at (C) in
Specifically, in the example illustrated at (D) in
As described above, because the transmission device on the reception side performs a complicated deskewing process, the process delay becomes large. Furthermore, because the transmission device on the reception side includes, for each lane, a data buffer that is used to add or delete a symbol, the size of the circuit becomes large.
According to an aspect of an embodiment, a transmission device includes a plurality of transmitting units that transmit data to an opposing device via different paths, a determining unit that compares a first speed of an operation clock for the opposing device with a second speed of an operation clock for the transmission device to determine which of the operation clock speeds is higher, and an inserting unit that inserts, when the determining unit determines that the first speed is same as the second speed, first difference absorbing data that has a predetermined data length into the data to be transmitted by each of the transmitting units, that inserts, when the determining unit determines that the first speed is higher, second difference absorbing data that has a data length smaller than the predetermined data length into the data to be transmitted by each of the transmitting units, and that inserts, when the determining unit determines that the second speed is higher, third difference absorbing data that has a data length greater than the predetermined data length into the data to be transmitted by each of the transmitting units.
The object and advantages of the invention will be realized and attained by means of the elements and combinations particularly pointed out in the claims.
It is to be understood that both the foregoing general description and the following detailed description are exemplary and explanatory and are not restrictive of the invention, as claimed.
Preferred embodiments of the present invention will be explained with reference to accompanying drawings.
In a first embodiment described below, an example of an information processing system that includes a transmission device will be described with reference to
As illustrated in
Furthermore, the data transmission device 3 includes transmission devices 10 and 10a; the switch 5 includes transmission devices 10b to 10d; and the input/output devices 6 to 6b include transmission devices 10e to 10g. Furthermore, the data transmission device 3 is connected to the switch 5 via the transmission devices 10 and 10b and is connected to an input/output device 6 via the transmission devices 10a and 10e. The switch 5 is connected to the input/output device 6b via the transmission devices 10c and 10f and is connected to the input/output device 6a via the transmission devices 10d and 10g.
The transmission devices 10 to 10g are connected to each other via eight serial links and transmits and receives data by using a protocol conforming to the PCIe standard. Furthermore, each of the transmission devices 10 to 10g links the eight serial links, thereby transmitting and receiving data. It is assumed that the transmission devices 10a to 10g have the same function as that performed by the transmission device 10; therefore, descriptions of the transmission devices 10a to 10g will be omitted.
In the following, an example of the transmission device 10 will be described with reference to the drawings. In the following, a description will be given, as an example, with the assumption that the transmission device 10 and the transmission device 10b transmit and receive data. Furthermore, it is assumed that the data transmitted to the transmission device 10b by the transmission device 10 are transmission data #1 to #8 and it is assumed that the data received from the transmission device 10b by the transmission device 10 are reception data #1 to #8.
The MAC unit 20 includes a skip inserting unit 21, a scrambler 23, a slip detecting unit 22, a deskewing unit 24, a descrambler 25, and a control unit 26. The PCS unit 30 includes eight PCS layers 30a to 30h. The PCS layer 30a includes an encoder 31, a loopback unit 32, a polarity inversion unit 33, an aligning unit 34, an elastic buffer 35, a decoder 36, and a receive status determining unit 37. It is assumed that each of the PCS layers 30a to 30h performs the same process; therefore, descriptions of the PCS layers 30b to 30h other than the PCS layer 30a will be omitted.
The skip inserting unit 21 receives the transmission data #1 to #8 that is transmitted from the higher layer 11 to the transmission device 10b. The skip inserting unit 21 inserts, into the received data, a skip ordered set by which a difference between the transmission device 10 and the transmission device 10b is absorbed. Then, the skip inserting unit 21 transmits, to the scrambler 23, the data into which the skip ordered set is inserted.
In the following, a description will be specifically given of a process for inserting a skip ordered set into data performed by the skip inserting unit 21.
The buffers 21a to 21h are First In First Out (FIFO) buffers and receive the transmission data #1 to #8, respectively, from the higher layer 11. Then, the buffers 21a to 21h transmit the received transmission data #1 to #8, respectively, to the skip insertion selector 21j. The creating unit 21i creates a skip ordered set that is stored in each of the transmission data #1 to #8 in accordance with the frequency of the operation clock for the transmission device 10 and the frequency of the operation clock for the transmission device 10b.
Specifically, the creating unit 21i receives, from the slip detecting unit 22, a notification that the speed of the operation clock for the transmission device 10 is high, a notification that the speed of the operation clock for the transmission device 10b is high, or a notification that there is no difference between the operation clocks. When the creating unit 21i receives one of the above notifications from the slip detecting unit 22, the creating unit 21i performs the following process, which will be described with reference to
A description will be given here by referring back to
Thereafter, when the skip insertion selector 21j receives a notification from the control unit 21k indicating that the path will be changed again, the skip insertion selector 21j again transmits the transmission data received from the buffers 21a to 21h to the scrambler 23. Specifically, by changing the path to the buffers 21a to 21h and the path to the creating unit 21i, the skip insertion selector 21j inserts each of the transmission data #1 to #8 and the skip ordered set created by the creating unit 21i.
The control unit 21k controls the skip insertion selector 21j. Specifically, the control unit 21k periodically creates a SKP Ins instruction that indicates when a skip ordered set is inserted and then the control unit 21k transmits the created SKP Ins instruction to the slip detecting unit 22. Furthermore, the control unit 21k receives a notification from the slip detecting unit 22 indicating that the speed of the operation clock for the transmission device 10 is high, a notification that the speed of the operation clock for the transmission device 10b is high, or a notification that there is no difference between operation clocks.
If the control unit 21k receives a notification that there is no difference between operation clocks, the control unit 21k performs the following process when the control unit 21k creates a SKP Ins instruction. Namely, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that a path will be changed. After a time period for which the creating unit 21i transmits a skip ordered set that has a length of four symbols has elapsed, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that the path will be changed again.
Furthermore, when the control unit 21k receives a notification that the speed of the operation clock for the transmission device 10 is high, the control unit 21k performs the following process when the control unit 21k creates a SKP Ins instruction. Namely, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that a path will be changed. After a time period for which the creating unit 21i transmits a skip ordered set that has a length of 5 symbols has elapsed, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that the path will be changed again.
Furthermore, when the control unit 21k receives a notification indicating that the speed of the operation clock for the transmission device 10b is high, the control unit 21k performs the following process when the control unit 21k creates a SKP Ins instruction. Namely, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that a path will be changed. After a time period for which the creating unit 21i transmits a skip ordered set that has a length of three symbols has elapsed, the control unit 21k transmits a notification to the skip insertion selector 21j indicating that the path will be changed again.
A description will be given here by referring back to
In the following, a description will be given of an example of a process in which the slip detecting unit 22 compares a recovery clock with an operation clock for the transmission device 10.
The gray code counter 22a receives a recovery clock from the SerDes 40. Then, the gray code counter 22a periodically counts the rising edge of the received recovery clock. For example, every time the rising edges of a recovery clock is input, the gray code counter 22a periodically counts the values “0” to “3”, e.g., “00 (0)”, “01 (1)”, “11 (2)”, “10 (3)”, and “00 (0)”. Then, the gray code counter 22a inputs the counted value to a D terminal of the flip-flop 22c.
The gray code counter 22b receives a system clock that is an operation clock for the transmission device 10. Then, the gray code counter 22b periodically counts the rising edge of the received system clock. For example, every time the rising edge of a system clock is input, the gray code counter 22b periodically counts the values “0” to “3”, e.g., “00 (0)”, “01 (1)”, “11 (2)”, “10 (3)”, and “00 (0)”. Then, when the counted value is “0”, the gray code counter 22b inputs a signal that indicates a check timing to a C terminal of the flip-flop 22c.
The flip-flop 22c operates as follows in accordance with the rising edge of the system clock. Specifically, at the timing at which the value that was input to the C terminal is shifted from “0” to “1”, the flip-flop 22c retains the value that is input to the D terminal and then outputs the retained value to the shift register 22d.
In the following, a value output from the flip-flop 22c will be described with reference to
As illustrated in
Then, the flip-flop 22c retains the output of the gray code counter 22a, i.e., the RCNT, at the timing of the falling edge at which the check timing is shifted from “High” to “Low”. In the example illustrated in
A description will be given here by referring back to
The comparing unit 22e receives, from the shift register 22d, the value that is output from the flip-flop 22c immediately previously and the value that is output from the flip-flop 22c this time. Then, the comparing unit 22e compares the value that is output from the flip-flop 22c immediately previously with the value that is output from the flip-flop 22c this time and then determines whether the value output this time is greater than the value output immediately previously. When it is determined that the value output from the flip-flop 22c this time is greater than the value output from the flip-flop 22c immediately previously, the comparing unit 22e transmits a notification to the skip inserting unit 21 indicating that the speed of the operation clock for the transmission device 10b is high.
In contrast, when it is determined that the value output from the flip-flop 22c immediately previously is greater than that this time, the comparing unit 22e transmits a notification to the skip inserting unit 21 indicating that the speed of the operation clock for the transmission device 10 is high. Furthermore, when it is determined that the value output from the flip-flop 22c this time is the same as that immediately previously, the comparing unit 22e transmits a notification to the skip inserting unit 21 indicating that there is no difference between the operation clocks.
In the following, an example of a value stored in the shift register 22d and an example of a determining process performed by the comparing unit 22e will be described with reference to
In the example illustrated in
Consequently, the comparing unit 22e determines that an increase or a decrease in the RCNT value obtained this time with respect to the RCNT value obtained immediately previously is “null”, “+1”, “±0”, “+1”, “±0”, “+1”, “+1”, “±0”, and “+1”. Then, when there is an increase or a decrease in the RCNT value obtained this time with respect to the RCNT value obtained immediately previously is a positive value, i.e., is “+1” in the example illustrated in
Furthermore, when the RCNT value immediately previously and the RCNT value at this time are the same, i.e., is “±0” in the example illustrated in
In the PCIe standard, a difference of an operation clock is defined to be within “±300 ppm”. Consequently, when a clock difference on the transmission side is “−300 ppm” and when a clock difference on the reception side is “300 ppm”, a difference of “600 ppm” is present between both sides. When a difference of “600 ppm” is present, a slip occurs at about every 1666 cycles of an operation clock. When a slip occurs, if the speed of an operation clock for the transmission device on the transmission side is high, a data loss occurs in the transmission device on the reception side, whereas, if the speed of an operation clock for the transmission device on the reception side is high, duplication of data occurs in the transmission device on the reception side.
In order to avoid such a data loss or duplication due to a slip occurring, the transmission device 10 performs a difference absorbing process by using a skip ordered set. At this time, when the transmission device 10 performs the difference absorbing process by using a skip ordered set, the transmission device 10 needs to identify whether the operation clock for the transmission side or for the reception side is high, i.e., determine the direction of a slip and occurrence frequency of the slip. Consequently, by using the slip detecting unit 22, the transmission device 10 detects the direction of the slip and the occurrence frequency of the slipping.
A description will be given here by referring back to
The deskewing unit 24 performs a deskewing process on the data received from the PCS unit 30. Specifically, the deskewing unit 24 receives, from the PCS unit 30, multiple reception data #1 to #8. Then, the deskewing unit 24 performs, due to a transmission delay difference, a skewing process on transmission paths or performs, due to the difference between the processing timings in the elastic buffers 35, which will be described later, a deskewing process that absorbs a delay difference.
Specifically, the deskewing unit 24 detects skip ordered sets that are inserted into the received reception data #1 to #8. Then, from among the skip ordered sets inserted into the reception data #1 to #8, the deskewing unit 24 aligns the positions of the “COM” symbols. For example, the deskewing unit 24 detects the “COM” symbol in each of the reception data #1 to #8.
When the position of the “COM” symbol in the reception data #8 is behind the positions of the “COM” symbol of the reception data #1 to #7 by one symbol, the deskewing unit 24 delays the output of each of the reception data #1 to #7 by one symbol. Then, the deskewing unit 24 transmits, to the descrambler 25, all of the reception data #1 to #8 subjected to the deskewing process.
When the descrambler 25 receives the reception data #1 to #8 from the deskewing unit 24, the descrambler 25 performs the descrambling process on the received reception data #1 to #8. Then, the descrambler 25 transmits, to the higher layer 11, the reception data #1 to #8 that have been subjected to the descrambling.
The control unit 26 acquires a reception status related to the reception data #1 from the receive status determining unit 37 in the PCS unit 30. Then, on the basis of the acquired reception status, the control unit 26 determines whether the reception data #1 is correctly received. If it is determined that the reception data #1 is not correctly received, the control unit 26 transmits a polarity inversion instruction to the polarity inversion unit 33. Furthermore, because the control unit 26 has already received the reception status on the reception data #1 to #8 from each of the receive status determining units in the PCS layers 30a to 30h in the PCS unit 30, the control unit 26 independently transmits a polarity inversion instruction for each polarity inversion unit in the PCS layers 30a to 30h.
In the following, a description will be given here of a process performed by each unit and the SerDes 40 included in the PCS unit 30. The encoder 31 encodes the data, which was received from the scrambler 23, from 8-bit data to 10-bit data. This is performed by the SerDes 40 in order to acquire an operation clock for the transmission device 10b by using a technique, such as a clock data recovery (CDR) technique. Then, the encoder 31 transmits the encoded 10-bit data to the loopback unit 32.
The loopback unit 32 is a selecting unit that selects data that is to be transmitted to the transmission device 10b. Specifically, in addition to the transmission data #1, the data received from the transmission device 10b is input to the loopback unit 32. When the loopback unit 32 does not perform a loopback, the loopback unit 32 transmits, to the SerDes 40, the transmission data #1 that is encoded as the 10-bit data by the encoder 31.
Furthermore, when the loopback unit 32 receives an instruction to perform a loopback, the loopback unit 32 transmits, to the SerDes 40, the data that was read by the elastic buffer 35, which will be described later, i.e., the data that was received from the transmission device 10b via the serial link. An arbitrary method can be used for setting whether the loopback unit 32 performs a loopback process. Furthermore, in the following description, it is assumed that the data received from the transmission device 10b via the serial link is the reception data #1 to #8.
Furthermore, a description has been given of a process performed by the encoder 31 and the loopback unit 32 in the PCS layer 30a; however, it is assumed that the encoders and the loopback units included in the other PCS layers 30b to 30h also perform the same process.
The SerDes 40 receives, from each of the PCS layers 30a to 30h in the PCS unit 30, the transmission data #1 to #8 or receives the reception data #1 to #8 that are loop backed to the transmission device 10b. Then, the SerDes 40 converts the received transmission data #1 to #8 or the reception data #1 to #8 to serial data and then transmits the converted serial data to the transmission device 10b via different paths.
Furthermore, the SerDes 40 receives the reception data #1 to #8 from the transmission device 10b. Then, the SerDes 40 transmits the reception data #1 to #8 to the polarity inversion units in the PCS layers 30a to 30h. Furthermore, when the SerDes 40 receives the reception data #1 to #8 from the transmission device 10b, the SerDes 40 acquires an operation clock for the transmission device 10b by using a technique, such as a clock data recovery (CDR) technique.
Then, the SerDes 40 transmits the acquired operation clock as a recovery clock to the polarity inversion unit, the aligning unit, and the elastic buffer, which are included in each of the PCS layers 30a to 30h, and to the slip detecting unit 22, which is included in the MAC unit 20. For example, the SerDes 40 transmits the recovery clock to the polarity inversion unit 33, the aligning unit 34, the elastic buffer 35, and the slip detecting unit 22 in the PCS layer 30a.
The polarity inversion unit 33 is a polarity inversion device that operates in accordance with a recovery clock. When the polarity inversion unit 33 receives a polarity inversion instruction from the control unit 26, the polarity inversion unit 33 inverses the polarity of the reception data #1 received from the SerDes 40. Then, the polarity inversion unit 33 transmits the reception data #1 to the aligning unit 34.
The aligning unit 34 performs a process, in accordance with a recovery clock, for establishing symbol synchronization. Specifically, in order to store the reception data #1, which was received from the polarity inversion unit 33, in the elastic buffer 35, the aligning unit 34 aligns the data width of the reception data #1 with the data width of the data that is to be stored in the elastic buffer 35. Then, the aligning unit 34 transmits, to the elastic buffer 35, the reception data #1 whose data width is aligned.
The elastic buffer 35 is a buffer for changing between the clock for the transmission device 10b and that for the transmission device 10. Specifically, the elastic buffer 35 is a buffer that is used to absorb any difference between the operation clock for the transmission device 10 and the operation clock for the transmission device 10b. More specifically, because the transmission device 10 receives the reception data #1 to #8 in accordance with the operation clock for the transmission device 10b, the transmission device 10 temporarily stores the reception data #1 to #8 in the elastic buffer 35. Then, by reading the reception data #1 to #8 stored in the elastic buffer 35 by using the operation clock for the transmission device 10, the transmission device 10 changes clocks.
Furthermore, when storing the reception data #1 and reading the stored reception data #1, the elastic buffer 35 detects the skip ordered set that is inserted into the reception data #1. When the elastic buffer 35 detects a skip ordered set that has a length equal to or greater than four symbols, the elastic buffer 35 corrects the length of symbols in the detected skip ordered set to a length of four symbols and stores therein the reception data #1 in which the skip ordered set is corrected.
Furthermore, when reading the stored reception data #1, the elastic buffer 35 detects a skip ordered set that has a length equal to or less than four symbols. Then, the elastic buffer 35 corrects the length of symbols in the detected skip ordered set to a length of four symbols and transmits, to the decoder 36, the reception data #1 in which the skip ordered set is corrected.
Specifically, when the elastic buffer 35 stores therein the reception data #1, if the elastic buffer 35 detects a skip ordered set in which one “COM” symbol and four “SKP” symbols are included, the elastic buffer 35 deletes a single “SKP” symbol. Then, the elastic buffer 35 stores therein the reception data #1 into which a skip ordered set that includes therein one “COM” symbol and three “SKP” symbols is inserted.
Furthermore, when the elastic buffer 35 reads the reception data #1, if the elastic buffer 35 detects a skip ordered set in which one “COM” symbol and two “SKP” symbols are included, the elastic buffer 35 reads the “SKP” symbols twice, thus duplicating the symbols. Then, the elastic buffer 35 transmits, to the decoder 36, the reception data #1 into which the skip ordered set that includes therein one “COM” symbol and three “SKP” symbols is inserted.
As described above, when the elastic buffer 35 stores therein the reception data #1, if the elastic buffer 35 detects a skip ordered set that has a length equal to or greater than four symbols, the elastic buffer 35 corrects the detected skip ordered set to a skip ordered set that has a length of four symbols and then stores therein the reception data #1. Furthermore, when the elastic buffer 35 reads the reception data #1, if the elastic buffer 35 detects a skip ordered set that has a length equal to or less than four symbols, by reading the “SKP” symbols in the detected skip ordered set twice, the elastic buffer 35 corrects the detected skip ordered set to a skip ordered set that has a length of four symbols. Furthermore, the elastic buffer 35 transmits, to the receive status determining unit 37, the presence or absence of an error or the nature of the process for writing or reading the reception data #1.
The decoder 36 decodes the reception data #1 that is read from the elastic buffer 35 from 10-bit data to 8-bit data. Then, the decoder 36 transmits the decoded reception data #1 to the deskewing unit 24 in the MAC unit 20. Furthermore, the decoder 36 transmits, to the receive status determining unit 37, the presence or absence of an error in the decoding process.
Depending on the presence or absence of an error or the nature of the process for writing or reading the reception data #1 received from the elastic buffer 35 and the decoder 36, the receive status determining unit 37 determines whether the reception data #1 has been received normally. Then, the receive status determining unit 37 transmits the determination result as the reception status to the control unit 26 in the MAC unit 20.
In the following, an example of a process performed by the elastic buffer 35 will be described with reference to
In the example illustrated in
In this example, the write control unit 35b monitors the reception data #1 that is transmitted from the aligning unit 34 to the clock change data register 35a and detects a skip ordered set that has a length equal to or greater than four symbols. Then, when the write control unit 35b detects the skip ordered set that has a length equal to or greater than four symbols, the write control unit 35b discards the last symbol, i.e., the “SKP” symbol, instead of storing the last symbol in the clock change data register 35a.
Furthermore, the read control unit 35c is a control unit that controls, in accordance with the system clock for the transmission device 10, the reading of the reception data #1 from the clock change data register 35a. Specifically, the read control unit 35c detects, from the reception data #1 that is read from the clock change data register 35a, a skip ordered set that has a length equal to or less than three symbols.
When the read control unit 35c detects the skip ordered set that has that has a length equal to or less than three symbols, by reading the last “SKP” symbol in the detected skip ordered set twice, the read control unit 35c corrects the length of symbols in the detected skip ordered set to a length of four symbols. Then, the decoder 36 decodes the reception data #1 that has been read by the read control unit 35c to 8-bit data and then transmits the decoded data to the deskewing unit 24.
The deskewing unit 24 includes a delay absorbing data register 24a and a deskew control unit 24b. First, the delay absorbing data register 24a receives the reception data #1 to #8 from the PCS unit 30 and temporarily stores therein the reception data #1 to #8. Then, the deskew control unit 24b detects each of the “COM” symbols from the reception data #1 to #8 stored in the delay absorbing data register 24a. Then, the deskew control unit 24b aligns the positions of the detected “COM” symbols and then outputs the reception data #1 to #8.
For example, the deskew control unit 24b detects the positions of the “COM” symbols in the reception data #1 to #8 and then determines that the “COM” symbol in the skip ordered set in the reception data #2 is located at the end position. In such a case, the deskew control unit 24b delays the output timing of the other reception data #1 and #3 to #8. Then, the deskew control unit 24b controls the delay absorbing data register 24a such that the “COM” symbols in the other reception data #1 and #3 to #8 are output at the same time as the “COM” symbol in the skip ordered set in the reception data #2 is output.
The skip inserting unit 21, the slip detecting unit 22, the scrambler 23, the deskewing unit 24, the descrambler 25, the control unit 26, the encoder 31, the loopback unit 32, the polarity inversion unit 33, the aligning unit 34, the decoder 36, and the receive status determining unit 37 are, for example, electronic circuits. Examples of the electronic circuits used here include integrated circuits, such as application specific integrated circuits (ASICs) or field programmable gate arrays (FPGAs), central processing units (CPUs), or micro processing units (MPUs).
Furthermore, the elastic buffer 35 is implemented by the combination of a semiconductor memory device, such as a random access memory (RAM), read only memory (ROM), and a flash memory, and an electronic circuit or the like.
In the following, how the skip ordered set that is inserted by the transmission device 10 is processed by the transmission device 10b will be described with reference to
First, how a skip ordered set that has a length of four symbols and is transmitted when there is no difference between operation clocks will be described with reference to
In the example illustrated in
In the following, how the process is performed on a skip ordered set that has a symbol length of 5 symbols and which is inserted when the speed of the operation clock for the transmission device 10 is higher than that for the transmission device 10b will be described with reference to
In such a case, when the transmission device 10b stores the transmission data #1 to #8 in an elastic buffer, by discarding the last “SKP” symbol, the transmission device 10b corrects the length of symbols in the inserted skip ordered set to a length of four symbols.
In the following, how the process is performed on a skip ordered set that has a symbol length of three symbols and which is inserted when the speed of the operation clock for the transmission device 10b is higher than that for the transmission device 10 will be described with reference to
In such a case, when the transmission device 10b reads the transmission data #1 to #8 from an elastic buffer, the transmission device 10b reads the last “SKP” symbol twice, thereby duplicating the “SKP” symbol and correcting the symbol length of an inserted skip ordered set to a symbol length of an inserted skip ordered set that has a symbol length of four symbols.
As described above, when the speed of the operation clock for the transmission device 10 is the same as that for the transmission device 10b, the transmission device 10 inserts, as a normal skip ordered set, a skip ordered set that has a symbol length of four symbols into the transmission data #1 to #8. Furthermore, when the speed of the operation clock for the transmission device 10 is higher than that for the transmission device 10b, the transmission device 10 inserts, into the transmission data #1 to #8, a skip ordered set that has a symbol length of five symbols and that is longer than the normal skip ordered set.
Furthermore, when the speed of the operation clock for the transmission device 10b is higher than that for the transmission device 10, the transmission device 10 inserts, into the transmission data #1 to #8, a skip ordered set that has a symbol length of three symbols and that is shorter than the normal skip ordered set. Consequently, the transmission device 10 can absorb the clock difference between the transmission device 10 and the transmission device 10b.
Furthermore, instead of correcting, for each of the transmission data #1 to #8, the symbol length of a skip ordered set, the transmission device 10b corrects the length of a skip ordered set to the normal length. Consequently, because the transmission device 10 easily corrects the symbol length of a skip ordered set, the transmission device 10 simplifies the logic of the deskewing process.
Furthermore, the transmission device 10 does not need to correct the length of symbols in a skip ordered set when the transmission device 10b performs the deskewing process. Consequently, the transmission device 10 does not need the data register that is used to correct the length of symbols. Thus, the transmission device 10 can reduce the size of the circuit that is used to perform the deskewing process.
In the following, the flow of a process for inserting a skip ordered set performed by the transmission device 10 will be described with reference to
In the example illustrated in
At this point, as illustrated at (C) in
Then, as illustrated at (G) in
Namely, as illustrated at (I) in
In the following, how a process is performed on the skip ordered set that has been transmitted to the transmission device 10b will be described with reference to
For example, as illustrated at (M) in
Consequently, as illustrated at (O) in
Furthermore, as illustrated at (Q) in
As described above, the transmission device 10 transmits multiple transmission data #1 to #8 to the transmission device 10b via different paths. At this point, the transmission device 10 compares the speed of the operation clock for the transmission device 10 with that for the transmission device 10b.
When the transmission device 10 determines that the speed of the operation clock for the transmission device 10 is higher than that for the transmission device 10b, the transmission device 10 inserts, into each of the transmission data #1 to #8, a skip ordered set that has a length of five symbols and that is longer than the normal skip ordered set. Furthermore, when the transmission device 10 determines that the speed of the operation clock for the transmission device 10b is higher than that for the transmission device 10, the transmission device 10 inserts, into each of the transmission data #1 to #8, a skip ordered set that has a length of three symbols and that is shorter than the normal skip ordered set. Consequently, the transmission device 10 can absorb a difference between the speed of the operation clock for the transmission device 10 and the operation clock for the transmission device 10b.
Furthermore, simply by correcting the symbol length of the skip ordered set inserted into each of the transmission data #1 to #8 to a length of four symbols that is the normal symbol length, the transmission device 10b can align the symbol length of the skip ordered set that is inserted into each of the transmission data #1 to #8. Consequently, because the transmission device 10 does not need to perform detection or comparison of the symbol length of a skip ordered set in the deskewing process performed on the transmission device 10b, the transmission device 10 can use a simplified logic in the deskewing process. Furthermore, by simplifying the logic of the deskewing process, the transmission device 10 can reduce the size of its circuit and the verification or the design of the circuit can be simplified.
Furthermore, the transmission device 10 includes the gray code counter 22b that periodically operates in accordance with its own operation clock and the gray code counter 22a that periodically operates in accordance with the operation clock for the transmission device 10b. When the value of the gray code counter 22b becomes “0”, the transmission device 10 acquires the value of the gray code counter 22a and then determines whether the acquired value is greater than that acquired immediately previously, whereby the transmission device 10 compares its own operation clock with the operation clock for the transmission device 10b. Consequently, even when the difference between the operation clock for the transmission device 10 and the operation clock for the transmission device 10b is small, the transmission device 10 can appropriately change the skip ordered set that is to be inserted into each of the transmission data #1 to #8 on the basis of the accumulated difference.
Furthermore, the transmission device 10 detects a skip ordered set from the received data and, when the length of the detected skip ordered set is shorter than that of the normal skip ordered set, the transmission device 10 duplicates a part of the skip ordered set. Furthermore, when the detected skip ordered set is longer than a predetermined skip ordered set, the transmission device 10 deletes a part of the skip ordered set. Consequently, the transmission device easily absorbs any difference between its own operation clock and the operation clock for the transmission device 10b.
In the first embodiment described above, a description has been given of the transmission device 10 that inserts, into each of the transmission data #1 to #8, a skip ordered set that has a different length of symbols depending on the difference between the operation clock for the transmission device 10 and that for the transmission device 10b; however, the embodiment is not limited thereto. For example, the transmission device 10 may also insert a different type of skip ordered set. In the following, a description will be given by assuming that a transmission device at the transmission source of the transmission data #1 to #8 is a transmission device 10h and a transmission device at the transmission destination thereof is a transmission device 10i.
For example, when there is no difference between the operation clock for the transmission device 10h and the operation clock for the transmission device 10i according to the second embodiment, the transmission device 10h simultaneously inserts, into each of the transmission data #1 to #8, a skip ordered set that has a length of four symbols, i.e., one “COM” symbol and three “SKP” symbols. Furthermore, when the speed of the operation clock for the transmission device 10h is higher than that for the transmission device 10i that is the destination of the transmission data #1 to #8, the transmission device 10h performs the following process.
Namely, as illustrated in
Furthermore, when the speed of the operation clock for the transmission device 10i is higher than that for the transmission device 10h, the transmission device 10h performs the following process. Namely, as illustrated in
In such a case, the transmission device 10i can easily correct the skip ordered set. Specifically, when storing each of the transmission data #1 to #8n an elastic buffer, the transmission device 10i detects only the symbol “RMV” that is inserted into each of the transmission data #1 to #8 and deletes the detected “RMV” without counting the number of skip ordered sets. Furthermore, when reading each of the transmission data #1 to #8 from the corresponding elastic buffer, the transmission device 10i detects only the symbol “ADD” and converts the detected “ADD” to two “SKP” symbols.
As described above, when the transmission device 10h simultaneously inserts the skip ordered set illustrated in
In the following, how a process is performed by the transmission device 10i on a skip ordered set that is simultaneously inserted into each of the transmission data #1 to #8 by the transmission device 10h will be described with reference to
In the example illustrated in
In contrast,
In such a case, the transmission device 10i stores each of the transmission data #1 to #8 in an elastic buffer and then detects, when each of the transmission data #1 to #8 is read, only the “ADD” symbol. Then, the transmission device 10i converts the detected “ADD” symbol to two “SKP” symbols.
In order to define such a skip ordered set, the disparities in the transmission device 10i and the transmission device 10h are defined to be neutral codes. Specifically, when performing serial transmission using PCIe, data is converted from 8-bit data to 10-bit data at the time of transmission and the converted data is decoded from 10-bit data to 8-bit data at the time of reception. At this point, in a single 8-bit code, two types of associated 10-bit codes (Current RD− and Current RD+) are present, one of the codes is selected depending on the content of the 10-bit code obtained in the immediately previous encoding process.
Here, the rule of disparity in an 8B/10B encoding process is set out. Specifically, on the transmission side, after the power supply is turned on, the initial value of the running disparity is set to negative (−). Then, the transmission side calculates the value of a new running disparity on the basis of the content of the transmitted 10-bit code. When the number of “1s” is greater than that of “0s” in the data bits that have been transmitted, the running disparity is positive (+), whereas when the number of “0s” is greater than that of “1s”, the running disparity is negative (−). Furthermore, when the number of “0s” in the data bits that have been transmitted is the same as that of the “1s”, i.e., when they are neutral, the running disparity does not vary. Under this rule, when the transmission side converts an 8-bit code to a 10-bit code, the transmission side selects the 10-bit code in accordance with the running disparity.
In contrast, on the reception side, after the power supply is turned on, it is conceivable that the initial value of the running disparity is either positive (+) or negative (−). The reception side determines whether the received 10-bit code is valid or invalid and then calculates, on the basis of the content of the received 10-bit code, the value of the new running disparity. Furthermore, when the received 10-bit code is present in the current running disparity table, the reception side recognizes that the received 10-bit code is valid and then decodes the 10-bit code to an 8-bit code. In contrast, when the received 10-bit code is not present in the current running disparity table, the reception side recognizes that the received 10-bit code is invalid.
Under this rule, when the “ADD” symbol and the “RMV” symbol described above are not neutral codes, the running disparity varies when the “ADD” symbol or the “RMV” symbol is transmitted. In this state, when the “RMV” symbol is deleted on the reception side, because the running disparity does not vary, a disparity error may possibly occur in the symbol that is received subsequent to the “RMV” symbol. Consequently, the “ADD” symbol and the “RMV” symbol are defined to be codes having a neutral disparity.
As described above, when the speed of the operation clock for the transmission device 10h is higher than that for the transmission device 10i, the transmission device 10h simultaneously inserts, into each of the transmission data #1 to #8, a skip ordered set in which a symbol that is to be deleted by the transmission device 10i is added to the skip ordered set that has a normal length of four symbols. Furthermore, when the speed of the operation clock for the transmission device 10i is higher than that for the transmission device 10h, the transmission device 10h simultaneously inserts, into each of the transmission data #1 to #8, a skip ordered set that has a length of three symbols, that is shorter than the normal length, and that includes a symbol duplicated by the transmission device 10i.
Consequently, because the transmission device 10h can absorb the difference between the operation clock for the transmission device 10h and the operation clock for the transmission device 10i on the reception side without correcting the length of the skip ordered set by the transmission device 10i, the transmission device 10h simplifies the logic of the deskewing process. Furthermore, the transmission device 10i can detect both the “RMV” symbol and the “ADD” symbol without detecting the length of symbols in a skip ordered set and can align, when a process is performed in accordance with the detected symbol, the lengths of the symbols in the skip ordered set that are inserted into the transmission data #1 to #8, respectively. Consequently, the transmission device 10h can further simplify the process, performed on the reception side, for aligning the lengths of the symbols in the skip ordered sets.
Each of the transmission devices 10 to 10i simplifies the process performed by the transmission device on the destination side; however, the embodiment is not limited thereto. For example, each of the transmission devices 10 to 10i may also further perform a process that simplifies the process that is performed when each of the transmission data #1 to #8 sent back by a loopback process is received. In the following, a description will be given by assuming that a transmission device at the transmission source of the transmission data #1 to #8 is a transmission device 10j and a transmission device at the transmission destination thereof is a transmission device 10k.
For example, when storing each of the transmission data #1 to #8 in an elastic buffer, each of the transmission device 10j and the transmission device 10k detects an “RMV” symbol and deletes the detected “RMV” symbol. Furthermore, when reading each of the transmission data #1 to #8 from the corresponding elastic buffer, each of the transmission device 10j and the transmission device 10k detects an “ADD” symbol and corrects the detected “ADD” symbol to the “SKP” symbol and to the “ADD” symbol. Furthermore, when reading each of the transmission data #1 to #8 from an elastic buffer, each of the transmission device 10j and the transmission device 10k detects the “ADD-r” symbol and corrects the detected “ADD-r” symbol to the “SKP” symbol and to the “RMV” symbol.
In other words, the “SKP” symbol mentioned here is a symbol that is neither added nor deleted. The “RMV” symbol mentioned here is a symbol that is deleted when the symbol is stored in an elastic buffer. The “ADD” symbol mentioned here is a symbol to which a single symbol that is neither added nor deleted when the symbol is read from an elastic buffer is added. The “ADD-r” symbol mentioned here is a symbol that is converted, when it is read from an elastic buffer, to a single symbol that is neither added nor deleted and converted to a single symbol that is deleted when the symbol is stored in an elastic buffer.
As illustrated in
Furthermore, as illustrated in
In the following, how the transmission device 10k performs a process on the skip ordered set that is simultaneously inserted into each of the transmission data #1 to #8 will be described with reference to
As illustrated in
Furthermore, when reading each of the transmission data #1 to #8 from an elastic buffer, the transmission device 10k corrects the “ADD” symbol to a “SKP” symbol and to the “ADD” symbol. Specifically, the transmission device 10k adds an “SKP” symbol. Then, the transmission device 10k loops back the transmission data #1 to #8 that are read from elastic buffers to the transmission device 10j.
In contrast, the transmission device 10j stores each of the looped back transmission data #1 to #8 in an elastic buffer. Then, when reading each of the transmission data #1 to #8 from an elastic buffer, the transmission device 10j corrects the “ADD” symbol to the “SKP” symbol and the “ADD” symbol. Consequently, the transmission device 10j can acquire the transmission data #1 to #8 in each of which stores therein a skip ordered set that has the same length of symbols, i.e., five symbols, as that inserted by the transmission device 10j.
In contrast, when storing each of the looped back transmission data #1 to #8 in the corresponding elastic buffer, the transmission device 10j deletes the “RMV” symbol that is inserted into each of the transmission data #1 to #8. Then, the transmission device 10j acquires each of the transmission data #1 to #8 stored in the corresponding elastic buffer. Specifically, the transmission device 10j can acquire the transmission data #1 to #8 in each of which stores therein a skip ordered set that has the same length of symbols, i.e., three symbols, as that inserted by the transmission device 10j.
In the following, the flow of processes performed by the transmission device 10j and the transmission device 10k will be described with reference to
First, an example of the flow of a process performed by the transmission device 10k will be described with reference to
The transmission device 10k acquires the reception data #1 to #8 in each of which includes therein a skip ordered set including the “RMV” symbol, as illustrated at (R) in
In the following, an example of the flow of a process performed by the transmission device 10j will be described with reference to
In the example illustrated in
Then, as illustrated at (W) in
Then, as illustrated at (X) in
Similarly to the “RMV” symbol and the “ADD” symbol according to the second embodiment, the “ADD” symbol, the “RMV” symbol, and the “ADD-r” symbol according to the third embodiment are defined as a code having a neutral disparity.
As described above, when the speed of the operation clock for the transmission device 10j is higher than that for the transmission device 10k, the transmission device 10j simultaneously inserts, into each of the transmission data #1 to #8, a skip ordered set in which “COM”, “SKP”, “ADD”, “RMV”, and “RMV” symbols are included. Furthermore, when the speed of the operation clock for the transmission device 10k is higher than that for the transmission device 10j, the transmission device 10j simultaneously inserts, into each of the transmission data #1 to #8, a skip ordered set in which the “COM”, “SKP”, and “ADD-r” symbols are included.
Consequently, the transmission device 10j can absorb the difference between the operation clock for the transmission device 10j and the operation clock for the transmission device 10k. Furthermore, simply by detecting the “ADD” symbol and the “RMV” symbol and without performing a complicated process, the following advantage can be provided for the transmission device 10j. Namely, the transmission device 10j can makes the number of symbols in the skip ordered set that is inserted into each of the transmission data #1 to #8 that is sent back by a loopback process and the number of symbols in the skip ordered set inserted by the transmission device 10j the same. Furthermore, the transmission device 10j simply performs the deskewing process on the transmission data #1 to #8 that are sent back by the loopback process.
Furthermore, the transmission device 10j can simplify the deskewing process in the transmission device 10k. Consequently, when performing the loopback process, the transmission device 10j can make the logic of the deskewing process on the transmission side and the reception side simple and reduce the size of its circuit and the verification or the design of the circuit can be simplified. Furthermore, the transmission device 10j can reduce any delay in the deskewing process.
Furthermore, when performing a loopback process, the transmission device 10k can transmit, to the transmission device 10j without comparing the operation clock for the transmission device 10k with the operation clock for the transmission device 10j that is the destination, data into which an appropriate skip ordered set is inserted. Consequently, the transmission device 10j can further reduce the size of the circuits in the transmission devices 10j and 10k.
In the above explanation, a description has been given of the embodiments according to the present invention; however, the embodiments are not limited thereto and can be implemented with various kinds of embodiments other than the embodiments described above. Therefore, another embodiment will be described as a fourth embodiment below.
(1) The Number of Transmission Paths
In the embodiments described above, the descriptions have been given with the assumption that each of the transmission devices 10 to 10k described above are connected to the other transmission devices via eight serial links. However, the embodiments are not limited thereto. For example, each of the transmission devices 10 to 10k may also be connected to the other transmission devices via an arbitrary number of transmission paths.
(2) Symbol
Each of the transmission devices 10 to 10k described above defines the “COM” symbol, the “SKP” symbol, the “ADD” symbol, the “RMV” symbol, and the “ADD-r” symbol as the symbols to be stored in a skip ordered set; however, the embodiment is not limited thereto. For example, any symbol may also be defined as long as, when each of the transmission devices 10 to 10k detects a symbol, the same process as that performed in the first, second, and third embodiments is performed.
According to an aspect of an embodiment, the logic of the deskewing process performed by a transmission device on the reception side is simplified.
All examples and conditional language recited herein are intended for pedagogical purposes of aiding the reader in understanding the invention and the concepts contributed by the inventor to further the art, and are not to be construed as limitations to such specifically recited examples and conditions, nor does the organization of such examples in the specification relate to a showing of the superiority and inferiority of the invention. Although the embodiments of the present invention have been described in detail, it should be understood that the various changes, substitutions, and alterations could be made hereto without departing from the spirit and scope of the invention.
This application is a continuation of International Application No. PCT/JP2011/064979, filed on Jun. 29, 2011, the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2011/064979 | Jun 2011 | US |
Child | 14102581 | US |