This application is based upon and claims the benefit of priority of the prior Japanese Patent Application No. 2012-116146 filed on May 22, 2012 in Japan, the entire contents of which are hereby incorporated by reference.
The embodiment discussed herein is directed to an information processing apparatus, a method of measuring delay difference, and a computer readable recording medium recorded with a delay difference measuring program.
An information processing apparatus illustrated in
The high-speed serial transmission path 300A connects a transmitting and receiving unit (IP: intellectual property) 101A of the master 100 with a transmitting and receiving unit (IP) 201A of the target 200A. Similarly, the high-speed serial transmission path 300B connects a transmitting and receiving unit (IP) 101B of the master 100 with a transmitting and receiving unit (IP) 201B of the target LSI 200B. The transmitting and receiving units 101A, 101B, 201A, and 201B each include a parallel/serial (P/S) converting unit (transmitting unit) to be described with reference to
In the information processing apparatus illustrated in
A detailed configuration example of the targets 200A and 200B operable as described above will be described with reference to
In the target 200A, when the packets are received by the transmitting and receiving unit 201A and are stored in the packet synchronization RAM 202A, the fact that the transmitting and receiving unit 201A receives the packets is reported to the adjustment unit 205 from the packet synchronization RAM 202A.
Further, in the target 200B, when the packets are received by the transmitting and receiving unit 201B and are stored in the packet synchronization RAM 202B, the fact that the transmitting and receiving unit 201B receives the packets is transmitted to the target 200A from the packet synchronization RAM 202B through the pass 210. Further, in the target 200A, the report from the target 200B is notified to the adjustment unit 205 after the clock synchronization processing is performed by the clock synchronization circuit 204A.
When the adjustment unit 205 is reported from both of the packet synchronization RAM 202A and the packet synchronization RAM 202B about the fact that the transmitting and receiving unit 201A and the transmitting and receiving unit 201B receives the packets simultaneously transmitted from the master 100, the adjustment unit 205 transmits an instruction to write the same packets in the DIMMs 230A and 230B to the DIMM controllers 203A and 203B. That is, the same instruction is directly notified to the DIMM controller 203A from the adjustment unit 205, but is transmitted to the target 200B from the adjustment unit 205 through the parallel IF 220. Then, in the target 200B, the instruction from the target 200A is notified to the DIMM controller 203B after the clock synchronization processing is performed by the clock synchronization circuit 204B. The DIMM controllers 203A and 203B notified with the same instruction write the packets stored in the packet synchronization RAMS 202A and 202B in the DIMMs 230A and 230B.
In the configuration illustrated in
In order to realize the high-speed processing by removing the confirmation operation, it may be considered that the master 100 performs the transmission control of packets so that the packets from the master 100 simultaneously or almost simultaneously arrive at each of the targets 200A and 200B. In this case, as illustrated in
As a method of measuring the one-way latency, as illustrated in
However, for the following reason, the accurate one-way latency cannot be obtained by simply making the reciprocal latency (time difference) half. When using the high-speed serial transmission as communication between the master 100 and each of the targets 200A and 200B, there is a considerable deviation in the time (latency) when the packets pass through the transmitting and receiving units 101A and 101B of the master 100 or the transmitting and receiving units 201A and 201B of the targets 200A and 200B. Therefore, even when the reciprocal latency is made to be merely a half, the accurate one-way latency cannot be obtained.
Here, the deviation will be described with reference to
The transmitting IP illustrated in
Meanwhile, the receiving IP illustrated in
In the example illustrated in
In the transmitting IP illustrated in
Hereinafter, the example of the latency occurring in the transmitting IP and the receiving IP will be described. Note that τ is one control period.
The transmitting side latency (PCS+PMA) is 4 to 6τ [1τ at 156.25 MHz is 6.4 ns].
The latency of the synchronization RAM at the transmitting side is 3 to 4τ [1 τ at 156.25 MHz is 6.4 ns].
The receiving side latency (PCS+PMA) is 6 to 8τ [1τ at 156.25 MHz is 6.4 ns].
The latency of the synchronization RAM at the receiving side is 3 to 4τ [1τ at 156.25 MHz is 6.4 ns].
Therefore, the latency of the transmitting IP (including the synchronization RAM) is 7 to 10τ, that is, 44.8 to 64.0 ns and the latency of the receiving IP (including the synchronization RAM) is 9 to 12τ, that is, 57.6 to 76.8 ns. Therefore, the one-way latency that does not include the transmission delay from the transmitting IP to the receiving IP becomes 16 to 22τ, that is, 102.4 to 140.8 ns and the deviation width (maximum difference) of the latency occurring in the transmitting IP and the receiving IP becomes 6τ=38.4 ns. Here, the maximum difference becomes 38.4 ns at the time of converting into the clock (156.25 MHz) for IP, but when the operating clock for the internal logic is, for example, 500 MHz, the maximum difference (38.4 ns) becomes about 19τ at the time of converting into 500 MHz (one control period of 2 ns).
Since the deviations in the latency as described above exist in the transmitting IP and the receiving IP, even when the reciprocal latency is made to be merely a half, the accurate one-way latency cannot be obtained.
As the method of directly measuring the accurate one-way latency without using the reciprocal latency, the following method can be considered. That is, all of the master 100 and the plurality of targets 200A and 200B include a previously synchronized watch or a counter and the master 100 transmits the specific packets to each of the targets 200A and 200B. Then, the difference between the transmission time of the corresponding packets obtained by the master 100 or the count value at the time of transmitting the corresponding packets by the master 100 and the reception time of the corresponding packets obtained by each of the targets 200A and 200B or the count value at the time of receiving the corresponding packets by each of the targets 200A and 200B can be measured as the one-way latency.
As described above, in order to directly measure the accurate one-way latency, there is a need to synchronize a watch or a counter that is included in all of the master 100 and the plurality of targets 200A and 200B. In order to synchronize the watch or the counter, the packets are transmitted and received between the master 100 and each of the targets 200A and 200B through the high-speed serial transmission paths 300A and 300B. However, the considerable deviations as described above exist in the latency of the transmitting IP or the receiving IP forming the transmitting and receiving units 101A, 101B, 201A, and 201B, such that each of the targets 200A and 200B cannot obtain the accurate receiving time or the count value at the time of the receiving. Therefore, the synchronous error occurs since the one-way latency (transmitting delay difference) cannot be measured with high accuracy.
[Patent Literature 1] Japanese Laid-Open Patent Publication No. 2004-222088
[Patent Literature 2] Japanese Laid-Open Patent Publication No. 09-312633
[Patent Literature 3] Japanese Patent No. 3031292
An aspect of the embodiments provides an information processing apparatus, including: a first processing unit; and a plurality of second processing units each being operable according to a signal from the first processing unit, wherein each of the plurality of second processing units includes: a counter that counts a count value in synchronization with such a counter included in each remaining second processing unit; a register that holds the count value of the counter; and a control unit that stores the count value, which is counted by the counter when receiving a measurement instruction from the first processing unit, as a receipt-timing count value into the register and notifies the first processing unit of the receipt-timing count value held in the register, and the first processing unit calculates one or more differences between a plurality of the receipt-timing count values notified from the plurality of second processing units as a transmitting delay difference from the first processing unit to each of the plurality of second processing units.
Another aspect of the embodiments provides a method of measuring, in an information processing apparatus including a first processing unit and a plurality of second processing units each being operable according to a signal from the first processing unit, a transmitting delay difference from the first processing unit to each of the plurality of second processing units, the method including: at each of the plurality of second processing units, counting a count value by a counter included in each of the plurality of second processing units in synchronization with such a counter included in each remaining second processing unit, storing the count value, which is counted by the counter when receiving a measurement instruction from the first processing unit, as a receipt-timing count value into a register, and notifying the first processing unit of the receipt-timing count value held by the register, and at the first processing unit, calculating one or more differences between a plurality of the receipt-timing count values notified from the plurality of second processing units as the transmitting delay difference from the first processing unit to each of the plurality of second processing units.
Yet another aspect of the embodiments provides a computer-readable recording medium storing therein a program that causes an information processing apparatus, including a first processing unit and a plurality of second processing units each being operable according to a signal from the first processing unit, to execute a process of measuring a transmitting delay difference from the first processing unit to each of the plurality of second processing units, the process including: at each of the plurality of second processing units, counting a count value by a counter included in each of the plurality of second processing units in synchronization with such a counter included in each remaining second processing unit; storing the count value, which is counted by the counter when receiving a measurement instruction from the first processing unit, as a receipt-timing count value into a register; and notifying the first processing unit of the receipt-timing count value held by the register, and at the first processing unit, calculating one or more differences between a plurality of the receipt-timing count values notified from the plurality of second processing units as the transmitting delay difference from the first processing unit to each of the plurality of second processing units. (Medium claim for US)
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.
Hereinafter, embodiments will be described with reference to the accompanying drawings.
[1-1] Basic Configuration of Information Processing Apparatus According to the Embodiment
A basic configuration of an information processing apparatus 1 according to one embodiment will be described with reference to
The information processing apparatus 1 illustrated in
The high-speed serial transmission path 30A connects a transmitting and receiving unit (IP) 11A of the master 10 with a transmitting and receiving unit (IP) 21A of the target 20A. Similarly, the high-speed serial transmission path 30B connects a transmitting and receiving unit (IP) 11B of the master 10 with a transmitting and receiving unit (IP) 21B of the target LSI 20B. The transmitting and receiving units 11A, 11B, 21A, and 21B each include the foregoing P/S converting unit (transmitting unit) and the S/P converting unit (receiving unit).
The target 20A includes a counter 22A, a register 23A, and a control unit 24A and similarly, the target 20B includes a counter 22B, a register 23B, and a control unit 24B.
The counters 22A and 22B are each controlled by the control units 24A and 24B and count the same count values (time) as other counters 22B and 22A in other targets 20B and 20A. That is, the count values by the counters 22A and 22B in the two targets 20A and 20B are synchronized with each other as described below.
The registers 23A and 23B are each controlled by the control units 24A and 24B to hold the count values of the counters 22A and 22B.
The control units 24A and 24B each store the count values, which are counted by the counters 22A and 22B when the transmitting and receiving units 21A and 21B receive the measurement instruction (specific packet) from the master 10, as a receipt-timing count value into the registers 23A and 23B. Further, the control units 24A and 24B each notify the master 10 of the receipt-timing count values held by the registers 23A and 23B through the transmitting and receiving units 21A and 21B and the high-speed serial transmission paths 30A and 30B.
Further, the control units 24A and 24B each control the counters 22A and 22B or the registers 23A and 23B followed by the measurement of the one-way latency difference (transmitting delay difference) by the master 10 at the time of starting the system, thereby performing the synchronous setting of the count values so that the counters 22A and 22B simultaneously count the same count values. Therefore, the control unit 24A of the target 20A and the control unit 24B of the target 20B are connected with each other by one dedicated transmitting and receiving signal line 25 to transmit and receive a specific signal (pulse signal) between the control units 24A and 24B. The signal line 25 is wired so as to connect between one terminal of the target LSI 20A and one terminal of the target LSI 20B at a shortest wiring length. The control units 24A and 24B are configured to transmit and receive information by transmitting and receiving the pulse signal using the signal line 25, without using the transmitting and receiving units 11A, 11B, 21A, and 21B including the P/S converting unit or the S/P converting unit having considerable deviations in latency.
The control units 24A and 24B transmit and receive the pulse signals therebetween through the signal line 25 and control the counters 22A and 22B and the registers 23A and 23B according to the transmitting timing or the receiving timing of the pulse signal. Therefore, the control units 24A and 24B may perform the synchronous setting of the count values so as for the counters 22A and 22B to simultaneously count the same count values, without passing through the transmitting and receiving units 11A, 11B, 21A, and 21B including the P/S converting unit or the S/P converting unit having the considerable deviations in latency. As such, when the pulse signals are transmitted and received between the control units 24A and 24B through one signal line 25, the time required for the pulse signals to reach the control unit 24B from the control unit 24A is substantially the same as the time required for the pulse signals to reach the control unit 24A from the control unit 24B. Therefore, the reciprocal latency (time difference) between the control unit 24A and the control unit 24B is made to be merely a half, such that it is possible to obtain the accurate one-way latency. Note that, the detailed configuration of the control units 24A and 24B for setting the count values of the counters 22A and 22B to be the same value will be described below with reference to
Meanwhile, the master 10 has a function (see reference numeral 13 of
[1-2] Basic Operation of Information Processing Apparatus According to the Embodiment
Next, the basic operation of the information processing apparatus 1 illustrated in
First, the measurement order of the transmitting delay difference (one-way latency difference) due to the information processing apparatus 1 will be described with reference to reference numerals (1) to (8) in
At the time of starting the system including the information processing apparatus 1, the control units 24A and 24B perform (see reference numeral (1) of
The master 10 generates the packets for measuring latency by the high-speed serial transmission, that is, the specific packet instructing the measurement so as to measure the difference in one-way latency after the synchronous setting of the counters 22A and 22B is completed. Further, the master 10 simultaneously issues and transmits the generated packet for measuring latency to each of the targets 20A and 20B through the transmitting and receiving units 11A and 11B and the high-speed serial transmission paths 30A and 30B (see reference numerals (3), (3A), and (3B) of
In the target 20A, the count value, which is counted by the counter 22A when the counter 22A receives the packet for measuring the corresponding latency from the master 10, is written, saved and held in the register 23A by the control unit 24A (see reference numerals 4A and 5A of
The count value of the counter 22A held in the register 23A is notified to the master 10 through the transmitting and receiving unit 21A and the high-speed serial transmission path 30A by the control unit 24A (see reference numeral (6A) of
In the master 10, when the count value from the target 20A and the count value from the target 20B are received through the transmitting and receiving units 11A and 11B (see reference numerals (7A) and (7B) of
Herein, the master 10 does not include the counters, and the like that are synchronized with the count values (time) of the counters 22A and 22B in the targets 20A and 20B. Therefore, in the master 10, the count values from the targets 20A and 20B each are the one-way latency (transmitting delay) in appearance from the master 10 to each of the targets 20A and 20B. Meanwhile, the packets for measuring latency are simultaneously issued to the targets 20A and 20B from the master 10 and the counters 22A and 22B of the targets 20A and 20B are synchronized with each other. Therefore, the difference calculated in step S6 becomes the absolute difference in one-way latency (transmitting delay difference) between the targets 20A and 20B.
Further, the master 10 determines (see step S7 of
Next, the basic synchronous setting order of the counters 22A and 22B in the targets 20A and 20B of the information processing apparatus 1 will be described with reference to the flowcharts (step S11 to S13) illustrated in
Each of the target LSIs 20A and 20B in the information processing apparatus 1 to which the method for measuring one-way latency difference according to the embodiment is applied previously includes the counters 22A and 22B, the registers 23A and 23B, and the control units 24A and 24B that are described above. Further, as described above, the control unit 24A of the target 20A and the control unit 24B of the target 20B are previously connected with each other at the shortest wiring length by one signal line 25 transmitting and receiving the pulse signals between the control units 24A and 24B (step S11).
Further, the pulse signals are mutually transmitted and received between the control units 24A and 24B through the signal line 25 (step S12). The counters 22A and 22B and the registers 23A and 23B are controlled by the control units 24A and 24B according to the transmitting timing or the receiving timing of the pulse signals. Therefore, the synchronous setting and the synchronous confirmation of the count values are performed so as for the counters 22A and 22B to simultaneously count the same count values, without using the transmitting and receiving units 11A, 11B, 21A, and 21B including the P/S converting unit or the S/P converting unit having the considerable deviations in latency (step S13). Note that, in steps S12 and S13, the detailed operation of the control units 24A and 24B performing the synchronous setting and the synchronous confirmation will be described below with reference to
As such, referring to
Therefore, the master 10 may appropriately determine the timing when the packets are transmitted to each of the targets 20A and 20B by the high-speed serial transmission without generating unnecessary standby time, thereby implementing the high-speed operation of the system.
The apparatus illustrated in
Here, the detailed configuration example of the system to which the information processing apparatus 1 is applied will be described with reference to
[2-1] Detailed Configuration of Information Processing Apparatus According to the Embodiment
Hereinafter, the detailed configuration of the control units 24A and 24B will be described with reference to
As illustrated in
Similarly, the target 20B includes the transmitting and receiving unit 21B, the counter 22B, the register 23B, and the control unit 24B that are described above. The counter 22B outputs count values (counts D0 to D3) performing the count operation according to an internal clock of the LSI 20B to the register 23B. The register 23B holds the count value of the counter 22B when the count value of the counter 22B is input to the data writing terminal W_DT and an enable signal is input to a write terminal and outputs a held count value from a data reading terminal R_DT when the enable signal is input to a read terminal.
In the embodiment, the target 20A has a function corresponding to the adjustment unit 205 illustrated in
The control unit (one control unit) 24A of the target 20A includes a pulse transmitting and receiving circuit 241A, a counter control circuit 242A, a register control circuit 243A, a comparison circuit 244A, and a packet generation circuit 245A. Similarly, the control unit (another control unit) 24B of the target 20B includes a pulse transmitting and receiving circuit 241B, a counter control circuit 242B, a register control circuit 243B, a comparison circuit 244B, and a packet generation circuit 245B.
As illustrated in
As described below, the counter control circuits 242A and 242B each perform the control of the start of the reset and count of the counters 22A and 22B according to the transmitting and receiving timing of the pulse signals by the pulse transmitting and receiving circuits 241A and 241B. The counter control circuits 242A and 242B each input the enable signals to RESET terminals of the counters 22A and 22B to perform the start of the reset and count of the counters 22A and 22B.
The register control circuits 243A and 243B each input the enable signals to the write terminal/read terminals of the registers 23A and 23B to control the writing and holding of the count values in the registers 23A and 23B and the reading of the held count values from the registers 23A and 23B.
The register control circuits 243A and 243B each store the count values by the counters 22A and 22B at the time of receiving the corresponding packets into the registers 23A and 23B, at the timing when the transmitting and receiving units 21A and 21B receive the packets for measuring latency from the master 10. Further, the register control circuits 243A and 243B each read the count values held in the registers 23A and 23B according to the reception of the corresponding packets and transmit the read count values to the packet generation circuits 245A and 245B.
Further, as described below, the register control circuits 243A and 243B each control the writing and holding of the count values in the registers 23A and 23B and the reading of the held count values from the registers 23A and 23B according to the transmitting and receiving timing of the pulse signals by the pulse transmitting and receiving circuits 241A and 241B.
Further, the register control circuit 243A of the target 20A has a function of outputting a shift instruction to the register 23A so that the count value held in the register 23A is a half value at the time of receiving a second pulse signal to be described below. When receiving the shift instruction from the register control circuit 243A, the register 23A shifts (shift by 1 bit in a right direction) the count value held in the register 23A by 1 bit in a least significant bit direction to set the corresponding count value to be a half value, such that the register 23A has a function of holding the corresponding half value.
As described below, the comparison circuits 244A and 244B each compare the count values by the counters 22A and 22B with the count values held in the registers 23A and 23B.
The comparison circuit 244A of the target 20A compares the count value by the counter 22A with the half value held in the register 23A so as to detect the timing when the counts of the counters 22A and 22B simultaneously start (see steps S32 to S33 of
Further, the comparison circuit 244A of the target 20A has a comparison function for detecting the timing when the synchronous confirmation of the counters 22A and 22B start, that is, the timing earlier by the half value than the timing when the counter 22A overflows. The corresponding comparison function compares the count value by the counter 22A with a value obtained by subtracting the half value from the overflow value of the counter 22A (see steps S38 and S39 of
Meanwhile, the comparison circuit 244B of the target 20B compares the count value by the counter 22B with 0 held in the register 23A so as to perform the synchronous confirmation at the timing when the counter 22B overflows (see step S43 of
When receiving the count values by the counters 22A and 22B when receiving the packets for measuring latency from the registers 23A and 23B, the packet generation circuits 245A and 245B generate the packets including the corresponding count values. The packet generation circuits 245A and 245B each transmit the generated packets to the master 10 through the transmitting and receiving units 21A and 21B and the high-speed serial transmission paths 30A and 30B. Further, as described below, the packet generation circuits 245A and 245B each also include a function of generating the packets including the comparison results by the comparison circuits 244A and 244B and transmitting the generated packets to the master 10 through the transmitting and receiving units 21A and 21B and the high-speed serial transmission paths 30A and 30B.
[2-2] Detailed Function and Operation of Information Processing Apparatus According to the Embodiment
Next, the detailed synchronous setting order and synchronous confirmation order of the counters 22A and 22B in the target LSIs 20A and 20B having the control units 24A and 24B configured as described above, that is, the detailed function of the control units 24A and 24B will be described with reference to
The pulse transmitting and receiving circuit 241A of the control unit 24A and the pulse transmitting and receiving circuit 241B of the control unit 24B are previously connected with each other at the shortest wiring length by one signal line 25 transmitting and receiving first to fifth pulse signals between the pulse transmitting and receiving circuits 241A and 241B. Then, the synchronous setting of the counters 22A and 22B is performed as follows according to steps S20 to S36B (timings t1 to t9 of
In the target 20A receiving the instruction of the synchronous setting, first, the counter control circuit 242A resets the count value of the counter 22A to 0 (see step S20 of
In the target 20B, the pulse transmitting and receiving circuit 241B returns the second pulse signal (second specific signal), which is a signal returning as soon as receiving the first pulse signal (see step S23 of
In the target 20A, when the pulse transmitting and receiving circuit 241A receives the second pulse signal from the target 20B (see step S25 of
The register control circuit 243A stores the count value into the register 23A and outputs the shift instruction to the register 23A to shift the corresponding count value by 1 bit in the least significant bit direction, thereby making the corresponding count value a half value and storing the corresponding half value into the register 23A (see step S27 of
Note that, when the count value corresponding to the reciprocal latency is odd, one bit shift is performed while disregarding 1 that is a least significant bit. In the example illustrated in
When the corresponding half value is held in the register 23A, the counter control circuit 242A resets the counter 22A to 0 (see step S28 of
After transmitting the third pulse signal, in the target 20A, the comparison circuit 244A compares the count value by the counter 22A with the half value held in the register 23A (see step S32 of
In the target 20B, when the pulse transmitting and receiving circuit 241B receives the third pulse signal (see step S34 of
Meanwhile, in the target 20A, as the comparison result by the comparison circuit 244A, when the count value of the counter 22A reaches the half value of the register 23A (YES route of step S33 of
As such, in the embodiment, the third pulse signal reaches the target 20B from the target 20A by consuming the time corresponding to the one-way latency and when the target 20B receives the third pulse signal, the count of the counter 22B starts. Meanwhile, in the target 20A, the control unit 24A transmits the third pulse signal, waits for the time corresponding to the one-way latency, and then starts the count of the counter 22A. Therefore, the counter 22A of the target 20A and the counter 22B of the target 20B simultaneously start the count (see t9 of
Further, the synchronous setting of the counters 22A and 22B is performed as follows according to steps S37 to S45 (timings t10 to t12 of
After the count operation of the counters 22A and 22B starts, in the target 20A, the comparison circuit 244A compares (see step S38 of
When the count value by the counter 22A coincides with the value FFFDh (YES route of step S39 of
In the target 20B, the pulse transmitting and receiving circuit 241B returns a fifth pulse signal (fifth specific signal), which is a signal returning as soon as receiving the fourth pulse signal (see step S41 of
In addition, when the pulse transmitting and receiving circuit 241B receives the fourth pulse signal, the comparison circuit 244B compares the count value of the counter 22B at the timing when receiving the fourth pulse signal with 0 so as to confirm whether the count value of the counter 22B at the timing when receiving the fourth pulse signal is 0 (see step S43 of
In the target 20A, when the pulse transmitting and receiving circuit 241A receives the fifth pulse signal (see step S44 of
When receiving the comparison results of the comparison circuits 244A and 244B, the master 10 determines whether the count value of the counter 22A is equal to the half value while the count value of the counter 22B is 0, based on the received comparison results. When the count value of the counter 22A is equal to the half value while the count value of the counter 22B is 0, the master 10 determines that the synchronization between the count value of the counter 22A and the count value of the counter 22B is confirmed. Then, the master 10 simultaneously issues the packets for measuring latency to the targets 20A and 20B as described below with reference to
Meanwhile, when the comparison circuit 244B confirms that the count value of the counter 22B is not 0 or the comparison circuit 244A confirms that the count value of the counter 22A is not equal to the half value, the control unit 24B or the control unit 24A determines that the count value of the counter 22A and the counter value of the counter 22B are not synchronized with each other. Then, the control unit 24B or the control unit 24A notifies the user and the like of the error or performs the synchronization setting of the counters 22A and 22B again. Note that, the master 10 can also confirm that the count value of the counter 22B is not 0 or the count value of the counter 22A is not equal to the half value, based on the received comparison results. When the master 10 performs the confirmation, the master 10 notifies a user and the like, of the error or transmits the instruction to perform the synchronous setting of the counters 22A and 22B again to the targets 20A and 20B through the high-speed serial transmission paths 30A and 30B.
When the synchronization of the counters 22A and 22B is confirmed by the processing (steps S37 to S45) as described above, the master 10 starts to measure the difference in one-way latency (transmitting delay difference) to be described below with reference to
As such, according to the embodiment, the master 10 may use the overflow timing to confirm whether the counters 22A and 22B are correctly synchronized with each other until the counters 22A and 22B overflow, thereby certainly synchronizing the count operation of the counters 22A and 22B.
In the foregoing example, the case in which the information processing apparatus 1 has two target LSIs 20A and 20B has been described. Hereinafter, in the case in which the information processing apparatus 1 has at least three target LSIs, the basic configuration and the detailed operation of main components in each target LSI 20A to 20C will be described with reference to
[3-1] Configuration of Information Processing Apparatus Having at Least Three Target LSIs
The information processing apparatus 1 illustrated in
The target 20A has a counter 22AB, a register 23AB, and a control unit 24AB for the target 20B and has a counter 22AC, a register 23AC, and a control unit 24AC for the target 20C. The counter 22AB, the register 23AB, and the control unit 24AB for the target 20B each are configured to be the same as the counter 22A, the register 23A, and the control unit 24A as described above, and therefore the description thereof will not be repeated. Similarly, the counter 22AC, the register 23AC, and the control unit 24AC for the target 20C each are configured to be the same as the counter 22A, the register 23A, and the control unit 24A as described above, and therefore the description thereof will not be repeated. Herein, the control unit 24AB for the target 20B and the control unit 24AC for the target 20C each are provided, but the control unit 24AB and the control unit 24AC are common and thus may be configured to be the same as the foregoing one control unit 24A.
The target 20B includes the counter 22B, the register 23B, and the control unit 24B that are described above. Further, the control unit 24AB of the target 20A and the control unit 24B of the target 20B are connected with each other by the one dedicated transmitting and receiving signal line 25 to transmit and receive the pulse signal between the control units 24AB and 24B.
Similarly, the target 20C includes the counter 22C, the register 23C, and the control unit 24C that are configured to be the same as the counter 22B, the register 23B, and the control unit 24B that are described above. Further, the control unit 24AC of the target 20A and the control unit 24C of the target 20C are connected with each other by the one dedicated transmitting and receiving signal line 25 to transmit and receive the pulse signal between the control units 24AC and 24C.
[3-2] Detailed Operation of Information Processing Apparatus Having at Least Three Target LSIs
Next, the synchronous setting order of the counters 22A to 22C in the target LSIs 20A to 20C configured as described above will be described with reference to
First, an order (first measuring order) to measure the one-way latency between the target 20A (control unit 24AB) and the target 20B (control unit 24B) will be described with reference to the timing chart (timings t21 to t25) illustrated in
That is, in the target 20A receiving the instruction of the synchronous setting, the control unit 24AB resets the count value of the counter 22A to 0 (see t21). After the reset of the counter 22AB, the control unit 24AB transmits the first pulse signal to the control unit 24B of the target 20B through the signal line 25 (see t22). The control unit 24AB starts the count operation of the counter 22AB simultaneously with the transmission of the first pulse signal (see t22).
In the target 20B, the control unit 24B returns the second pulse signal, which is a signal returning as soon as receiving the first pulse signal, to the control unit 24AB of the target 20A through the signal line 25 (see t23). Since the signal returns through the one signal line 25, the time is required to switch the signal transmitting direction, but even in the timing chart illustrated in
In the target 20A, when the control unit 24AB receives the second pulse signal from the target 20B, the control unit 24AB saves and stores the count value of the counter 22AB at the timing when receiving the second pulse signal into the register 23AB (see t24). Here, the count value saved and held in the register 23AB is a value corresponding to the reciprocal latency between the control unit 24AB and the control unit 24B and is, for example, 0008h in the timing chart illustrated in
Then, the control unit 24AB stores the count value into the register 23AB and outputs the shift instruction to the register 23AB to shift the corresponding count value by 1 bit in the least significant bit direction, thereby making the corresponding count value a half value and store the corresponding half value into the register 23AB (see t25). Here, the held half value is a value corresponding to the one-way latency between the control unit 24AB and the control unit 24B and is, for example, 0004h in the timing chart illustrated in
Therefore, the reciprocal latency (time difference) between the control unit 24AB and the control unit 24B is made to be merely a half, such that it is possible to obtain the accurate one-way latency.
Further, an order (second measuring order) to measure the one-way latency between the target 20A (control unit 24AC) and the target 20C (control unit 24C) will be described with reference to the timing chart (timings t31 to t35) illustrated in
That is, in the target 20A receiving the instruction of the synchronous setting, the control unit 24AC resets the count value of the counter 22AC to 0 (see t31). After the reset of the counter 22AC, the control unit 24AC transmits the first pulse signal to the control unit 24C of the target 20C through the signal line 25 (see t32). The control unit 24AC starts the count operation of the counter 22AC simultaneously with the transmission of the first pulse signal (see t32).
In the target 20C, the control unit 24C returns the second pulse signal, which is a signal returning as soon as receiving the first pulse signal, to the control unit 24AC of the target 20A through the signal line 25 (see t33). Since the signal returns through the one signal line 25, the time is required to switch the signal transmitting direction, but even in the timing chart illustrated in
In the target 20A, when the control unit 24AC receives the second pulse signal from the target 20C, the control unit 24AC saves and stores the count value of the counter 22AC at the timing when receiving the second pulse signal into the register 23AC (see t34). Here, the count value saved and held in the register 23AC is a value corresponding to the reciprocal latency between the control unit 24AC and the control unit 24C and is, for example, 000Ah in the timing chart illustrated in
Then, the control unit 24AC stores the count value into the register 23AC and outputs the shift instruction to the register 23AC to shift the corresponding count value by 1 bit in the least significant bit direction, thereby making the corresponding count value a half value and storing the corresponding half value into the register 23AC (see t35). Here, the held half value is a value corresponding to the one-way latency between the control unit 24AC and the control unit 24C and is, for example, 0005h in the timing chart illustrated in
As described above, after the measurement of the one-way latency (0004h) between the control unit 24AB and the control unit 24B, and the measurement of the one-way latency (0005h) between the control unit 24AC and the control unit 24C are performed, the synchronous setting of the counters 22A to 22C by the linkage of the control units 24AB, 24AC, 24B, and 24C is performed as follows. The synchronous setting order will be described with reference to the timing chart (timings t41 to t44) illustrated in
From the measurement result of the one-way latency illustrated in
Therefore, in the target 20A, the control unit 24AC resets the counter 22AC to 0 earlier by 1τ than the control unit 24AB to (see t41) and starts the count operation of the counter 22AC (see t42). Simultaneously with starting the count operation of the counter 22AC, the control unit 24AC transmits the third pulse signal to the control unit 24C of the target 20C through the signal line 25 (see t42). After the third pulse signal is transmitted to the control unit 24C, when the count value by the counter 22AC reaches a value (0005h) held in the register 23AC, the control unit 22AC resets the counter 22AC to 0 (see t44) and starts the count operation of the counter 22AC (see t45).
Similarly, in the target 20A, the control unit 24AB resets the counter 22AB to 0 slower by 1τ than the control unit 24AB (see t42) and starts the count operation of the counter 22AB (see t43). Simultaneously with the start of the count operation of the counter 22AB, the control unit 24AB transmits the third pulse signal to the control unit 24B of the target 20B through the signal line 25 (see t43). After the third pulse signal is transmitted to the control unit 24B, when the count value by the counter 22AB reaches a value (0004h) held in the register 23AB, the control unit 22AB resets the counter 22AB to 0 (see t44) and starts the count operation of the counter 22AB (see t45).
Meanwhile, in the target 20B, when the control unit 24B receives the third pulse signal, the control unit 24B resets the counter 22B to 0 (see t44) and starts the count operation of the counter 22B (see t45).
Similarly, in the target 20C, when the control unit 24C receives the third pulse signal, the control unit 24C resets the counter 22C to 0 (see t44) and starts the count operation of the counter 22C (see t45).
According to the above order, as illustrated in
After the counters 22AB, 22AC, 22B, and 22C are synchronized with one another, the master 10 simultaneously issues and transmits the packets for measuring latency to all the targets 20A to 20C through the high-speed serial transmission paths 30A to 30C and measures the difference in one-way latency in the same order as steps S3 to S7 of
That is, in the target 20A, the count value, which is counted by the counter 22AB or 22AC when receiving the corresponding packet for measuring latency from the master 10, is written, saved, and held as a receipt-timing count value in the register 23AB or 23AC by the control unit 24AB or 24AC.
Similarly, in the targets 20B and 20C, the count values, which are counted by the counters 22B and 22C when receiving the corresponding packets for measuring latency from the master 10, are written, saved, and held in the registers 23B and 23C as a receipt-timing count value by the control units 24B and 24C.
The count value of the counter 22AB or 22AC written in the register 23AB or 23AC is notified to the master 10 by the control unit 24AB or 24AC through the transmitting and receiving unit 21A and the high-speed serial transmission path 30A. Similarly, the count values of the counters 22B and 22C held in the registers 23B and 23C each are notified to the master 10 by the control units 24B and 24C through the transmitting and receiving units 21B and 21C and the high-speed serial transmission paths 30B and 30C.
When receiving the count values from the targets 20A to 20C through the transmitting and receiving units 11A to 11C, the master 10 calculates, for example, the difference between the count value from the target 20A and the count value from the target 20B and the difference between the count value from the target 20A and the count value from the target 20C. Herein, the master 10 does not include the counters, and the like that are synchronized with the count values (time) of the counters 22AB, 22AC, 22B, and 22C in the targets 20A to 20C. Therefore, in the master 10, the count values from the targets 20A to 20C each are the one-way latency (transmitting delay) in appearance from the master 10 to each of the targets 20A to 20C. Meanwhile, the packets for measuring latency are simultaneously issued to the targets 20A to 20C from the master 10 and the counters 22AB, 22AC, 22B, and 22C of the targets 20A to 20C are synchronized with one another. Therefore, the difference calculated as described above becomes the absolute difference in one-way latency (transmitting delay difference) between the targets 20A and 20B or between the targets 20A and 20C.
Then, the master 10 determines the transmitting timing of the packets to each of the targets 20A to 20C, that is, the proper transmitting timing when the corresponding packets simultaneously or almost simultaneously reach each of the targets 20A to 20C, based on the calculated difference in one-way latency. Next, the master 10 transmits the packets to each of the targets 20A to 20C through the transmitting and receiving units 11A to 11C and the high-speed serial transmission paths 30A to 30C at the determined transmitting timing.
Note that, in
Next, the detailed configuration and order for performing the measurement of the difference in one-way latency in the information processing apparatus 1 having two targets LSIs 20A and 20B will be described with reference to
[4-1] Detailed Configuration for Performing Measurement of Difference in One-Way Latency
The information processing apparatus 1 illustrated in
The master LSI 10 includes a transmitting instruction circuit 12, a packet generation circuit 13 for measuring latency, a difference calculation circuit 14, a difference holding register 15, and a packet transmitting timing determination circuit 16, in addition to the foregoing transmitting and receiving units 11A and 11B.
When receiving the measurement start instruction of the difference in one-way latency after the synchronous setting of the counters 22A and 22B is completed, the transmitting instruction circuit 12 performs the transmitting instruction of the packets for measuring latency.
When receiving the transmitting instruction from the transmitting instruction circuit 12, the packet generation circuit 13 for measuring latency generates the packets for measuring latency and simultaneously issues and transmits the same packets to the targets 20A and 20B through the transmitting and receiving units 11A and 11B and the high-speed serial transmission paths 30A and 30B.
The difference calculation circuit 14 calculates the difference between the receipt-timing count value notified from the target 20A through the high-speed serial transmission path 30A and the receipt-timing count value notified from the target 20B through the high-speed serial transmission path 30B. The difference is the transmitting delay difference from the master 10 to each of the targets 20A and 20B, that is, the absolute difference in one-way latency between the targets 20A and 20B.
The difference holding register 15 holds the difference (difference in one-way latency) calculated by the difference calculation circuit 14.
The packet transmitting timing determination circuit 16 determines the transmitting timing of packets to the targets 20A and 20B, that is, the transmitting timing when the corresponding packets simultaneously or almost simultaneously reach the targets 20A and 20B, based on the difference in one-way latency held in the difference holding register 15.
[4-2] Detailed Measurement Order of Difference in One-Way Latency
Next, the measurement order of the difference in one-way latency by the information processing apparatus 1 configured as described above will be described with reference to reference numerals (11) to (19) of
Here, prior to performing the measurement order of the difference in one-way latency illustrated in
After the synchronous setting and synchronous confirmation of the counters 22A and 22B are completed, the signal to instruct the measurement start is input to an external terminal of the master 10 (see reference numeral (11)).
When receiving the corresponding signal, the transmitting instruction circuit 12 performs the transmitting instruction of the packets for measuring latency to the packet generation circuit 13 (see reference numeral (12)).
When receiving the transmitting instruction from the transmitting instruction circuit 12, the packet generation circuit 13 generates the packets for measuring latency by the high-speed serial transmission, that is, the specific packet to instruct the measurement. Then, the packet generation circuit 13 simultaneously issues and transmits the generated packets for measuring latency to each of the targets 20A and 20B through the transmitting and receiving units 11A and 11B and the high-speed serial transmission paths 30A and 30B (see reference numeral (13)).
In the target 20A, when receiving the measurement packets (see reference numeral (14A)), the register control unit 243A inputs the enable signal to the write terminal of the register 23A and stores the count value by the counter 22A at the time of receiving the measurement packet into the register 23A (see reference numeral (15A)). In the example illustrated in
Similarly, in the target 20B, when receiving the measurement packets (see reference numeral (14B)), the register control unit 243B inputs the enable signal to the write terminal of the register 23B and stores the count value by the counter 22B at the time of receiving the measurement packet into the register 23B (see reference numeral (15B)). In the example illustrated in
Meanwhile, in the master 10, when the count value (0038h) from the target 20A and the count value (003Ah) from the target 20B are received through the transmitting and receiving units 11A and 11B (see reference numerals (18A) and (18B)), the difference (02h) between the count value (0038h) from the target 20A and the count value (003Ah) from the target 20B is calculated. The calculated difference is stored in the register 15 as the absolute difference in one-way latency (transmitting delay difference) between the respective targets 20A and 20B (see reference numeral (19)). In the example illustrated in
Then, the packet transmitting timing determination circuit 16 determines the transmitting timing of packets to each of the targets 20A and 20B, that is, the proper transmitting timing when the corresponding packets simultaneously or almost simultaneously reach each of the targets 20A and 20B, based on the difference in one-way latency held in the register 15. For example, as illustrated in
The preferred embodiments of the present invention are described in detail, but the present invention is not limited to the specific embodiments and can be variously modified and changed without departing from the gist of the present invention.
All or a part of the functions of the foregoing control units 24A to 24C and 24AB and 24AC or the circuits 12 to 14, 16, 241A to 245A, and 241B to 245B is realized by executing a predetermined application program (delay difference measurement program) by the functions as a computer (CPU, and the like) in the LSIs 10 and 20A to 20C.
The program is provided in a form recorded in computer-readable recording media such as, for example, a flexible disk, CDs (CD-ROM, CD-R, CD-RW, and the like), DVDs (DVD-ROM, DVD-RAM, DVD-R, DVD-RW, DVD+R, DVD+RW, and the like), a Blu-ray Disc, and the like. In this case, the computer reads the program from the recording media, and transmits the read program to internal memory devices or external memory devices so as to be stored and used therein.
Here, the computer is a concept including hardware and an operating system (OS) and means hardware operated under the control of OS. Further, in the case of operating hardware with an application program alone without the OS, the hardware itself corresponds to the computer. The hardware at least includes a microprocessor such as a CPU, and the like, and a unit reading a computer program recorded in a recording medium. The delay difference measuring program includes a program code so that all or a part of the functions of the foregoing control units 24A to 24C, 24AB, and 24AC or the circuits 12 to 14, 16, 241A to 245A, and 241B to 245B are realized by executing a predetermined application program (delay difference measurement program) executing functions of the LSIs 10 and 20A to 20C in the foregoing computer. Further, a part of the functions may be realized by OS, not the application program.
According to the embodiment of the present invention, the transmitting delay difference from the first processing unit to the plurality of second processing units is measured with high accuracy.
All examples and conditional language recited herein are intended for the 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 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 one or more embodiments of the present inventions 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.
Number | Date | Country | Kind |
---|---|---|---|
2012-116146 | May 2012 | JP | national |