The present invention relates to an information processing apparatus, a transmitting device and a control method of the information processing apparatus.
Some of information processing apparatuses are shipped as products in a way that changes, in response to a variety of needs, system architectures specified by types and the number of CPUs (Central Processing Units) serving as arithmetic processing devices to be mounted or specified by types and the numbers of boards, etc. It is desired of tests of the information processing apparatuses having such a multiplicity of system architectures, e.g., a test for shipping the product or a mass-production test to check the operation after activating circuits included in the system architecture in order to detect defects of components, e.g., a defect of a chip of the CPU etc or a defect of the board.
In
The information processing apparatus in
Accordingly, in the example of
In the case of testing each of the information processing apparatuses having the system architectures as in
Even if the configuration of the information processing apparatus when shipped is not the maximum configuration, such a case exists that the CPU or the board is extended after being shipped. For example, the case is such that the information processing apparatus in
In the mass-production test, generally the test is implemented in a state of being approximate to the maximum configuration to the greatest possible degree in order to reduce the defects when extended. In the case of detecting the defect in the mass-production test with the maximum configuration, however, there increase a labor and a cost for an analysis, a repair, etc. It is therefore desired to detect as many defects as possible by inspecting the component such as the CPU in a state of being as close to a single component unit as possible. The inspection in this case entails performing the check efficiently within a short period of time, and hence it is desired to implement the inspection with the simple configuration to the greatest possible degree. On the other hand, even in the inspection of the information processing apparatus with the simple configuration to the greatest possible degree, it is desired that the operation can be checked in a state of being closely equal to the information processing apparatus with a complicated configuration after being extended.
One aspect of the technology of the disclosure can be exemplified as a transmitting device connected to a first receiving device possessed by an information processing apparatus.
This transmitting device includes a first input unit to input data, a second input unit to input data and a first information processing unit to output data based on information processing of the data input by the first input unit or the data input by the second input unit. The transmitting device further includes a first retaining unit to retain the data output by the first information processing unit, a second retaining unit to retain the data output by the first information processing unit and a control information retaining unit to retain control information. The transmitting device still further includes a first selection unit to select, based on the control information retained in the control information retaining unit, any one of the data retained in the first retaining unit and the data retained in the second retaining unit, and a first output unit to turn the data selected by the first selection unit back to the first input unit on the basis of the control information retained in the control information retaining unit.
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.
An information processing apparatus according to one embodiment will hereinafter be described with reference to the drawings. A configuration of the embodiment is an exemplification, and the present information processing apparatus is not limited to the configuration of the embodiment.
Further, the processing unit 10-1 includes a data processing unit 11-1, data transfer units 12A-1, 12B-1 and a control information retaining unit 13-1. The processing unit 10-2 has the same configuration as the processing unit 10-1 has. The processing unit 10-2 includes a data processing unit 11-2, data transfer units 12A-2, 12B-2 and a control information retaining unit 13-2. The data processing units 11-1, 11-2 are, when generically termed, referred to as the data processing unit 11. Further, the data transfer units 12A-1, 12B-1, 12A-2, 12B-2 are, when generically termed, referred to as the data transfer unit 12. The control information retaining units 13-1, 13-2 are, when generically termed, referred to as the control information retaining unit 13.
The processing unit 10-1 is one example of a transmitting device. Further, the processing unit 10-2 is one example of a receiving device. Still further, the data transfer unit 12A-1 is one example of a first output unit. Furthermore, the data processing unit 11-1 is one example of a first information processing unit. Still furthermore, the data processing unit 11-2 is one example of a second information processing unit.
The data processing unit 11 can be exemplified as, e.g., a processor serving as an arithmetic processing device or a circuit unit that executes data processing on the board etc including the processor, or a component. The data processing unit 11 includes components such as a CPU (Central Processing Unit) and a main storage device.
Further, the data transfer unit 12 can be exemplified as, e.g., a crossbar switch serving as a data transfer device, a processor, or a circuit unit that executes a data transfer on the board etc including the processor, or a component. The data transfer unit 12 includes, e.g., a buffer, a register, etc, which temporarily retain the data to be transferred. Moreover, the data transfer unit 12 includes a drive circuit for transmitting the data on the buffer or the register via a transmission link. Furthermore, the data transfer unit 12 includes a control circuit that controls the buffer and the register which temporarily retain the data, or the drive circuit etc that transfers the data. The control circuit includes a data switching circuit like, e.g., a switch.
In the configuration of
The control information retaining unit 13 stores control information for controlling the data transfer unit 12. The control information retaining unit 13 includes a storage circuit called a latch, a register, etc. The data transfer unit 12 executes the data transfer according to the information stored by the control information retaining unit 13.
It is noted that
The data transfer unit 12A-1 has data buffers DB1, DB3 that retain the data received from other processing units (10-2 etc). Herein, “other processing units” may further include one or more processing units in addition to the processing unit 10-2 depicted in
Further, the data transfer unit 12A-1 has data buffers DB2, DB4 for temporarily retaining the data in order to input the data in the data buffers DB1, DB3 to the data processing unit 11-1. The data buffer DB2 may, however, serve also as the data buffer DB1. Moreover, the data buffer DB4 may serve also as the data buffer DB3.
Further, the data transfer unit 12A-1 has data buffers DB5, DB7 for temporarily retaining the data processed by the data processing unit 11-1. Still further, the data transfer unit 12A-1 has data buffers DB6, DB8 for temporarily retaining the data in order to transfer the data in the data buffers DB5, DB7 to other processing units 10-2 etc. In
The switch SW1 connects any one of the data buffers DB5, DB7 to the data buffer DB6. Moreover, the switch SW1 connects any one of the data buffers DB5, DB7 to the data buffer DB8. For example, as a first connection, the switch SW1 connects the data buffer DB5 to the data buffer DB6, and connects the data buffer DB7 to the data buffer DB8. The data processing unit 11-1 outputs the data transferred to other processing units 10-2 etc to each of the data buffers DB5, DB7, in which configuration the first connection is applied.
Moreover, as a second connection, the switch SW1 connects the data buffer DB5 to both of the data buffers DB6, DB8. The data processing unit 11-1 outputs the data transferred to other processing units 10-2 etc to the data buffer DB5 but does not output the data to the data buffer DB7, in which configuration the second connection is applied to when testing the information processing apparatus 1. Namely, in the case of the second connection, the data in the data buffer DB5 is transferred to the data buffer DB6 and is, after being copied, transferred also to the data buffer DB8. That is, in
Note that a configuration of data transfer unit 12B-1 is, though not illustrated, the same as the configuration of the data transfer unit 12A-1. For example, the data transfer unit 12B-1 has the same configuration as the configuration of the switch SW1, the data buffer DB5 and the data buffer DB7.
Moreover, as a third connection, the switch SW1 connects the data buffer DB7 to both of the data buffers DB6, DB8. The data processing unit 11-1 outputs the data transferred to other processing units 10-2 etc to the data buffer DB7 but does not output the data to the data buffer DB5, in which configuration the third connection is applied to when testing the information processing apparatus 1. Namely, in the case of the third connection, the data in the data buffer DB7 is transferred to the data buffer DB8 and is, after being copied, transferred also to the data buffer DB6. That is, the switch SW1 provides the signal copy function.
Furthermore, in the data transfer unit 12A-1, the data output from the data buffers DB6, DB8 are transferred to other processing units 10-2 etc and, after being diverged along loopback lines L2, L3, input to switches SW2, SW3, respectively. The switch SW2 outputs any one of the data from other processing units 10-2 etc and the data from the loopback line L2 (the data buffer DB6) to the data buffer DB1. Further, the switch SW3 outputs any one of the data from other processing units 10-2 etc and the data from the loopback line L3 (the data buffer DB8) to the data buffer DB3.
The control information retaining unit 13-1 retains instruction bits that control switching of the switches SW1, SW2, SW3. In the example of
Moreover, a second instruction bit is a bit used for the switch SW1 to control the output signal to the data buffer DB8. Corresponding to the second bit, the switch SW1 outputs the data from any one of the data buffer DB5 and the data buffer DB7 to the data buffer DB8.
Furthermore, a third instruction bit is a bit used for the switch SW2 to control the output signal to the data buffer DB1. Corresponding to the third bit, the switch SW2 outputs the data from any one of other processing units 10-2 etc and the data buffer DB6 to the data buffer DB1.
Still further, a fourth instruction bit is a bit used for the switch SW3 to control the output signal to the data buffer DB3. Corresponding to the fourth bit, the switch SW3 outputs the data from any one of other processing units 10-2 etc and the data buffer DB8 to the data buffer DB3.
With the configuration such as this, in the processing unit 10-1, as the instruction bits set in the control information retaining unit 13-1, the data transfer unit 12A-1 operates as follows:
(1) Case of Processing Unit Taking Maximum Configuration; The “case of the maximum configuration” is a case where the data from other processing units are input to both of the data buffers DB1, DB3, and both of the data buffers DB6, DB8 output the data to other processing units. In
In the case of the maximum configuration, it follows that both of the data buffer for inputting the data and the data buffer for outputting the data are connected to other processing units 10-2 etc. In this instance, it may be sufficient that the switch SW1 connects the data buffer DB5 to the data buffer DB6. Further, it may be sufficient that the switch SW1 also connects the data buffer DB7 to the data buffer DB8. Moreover, it may be sufficient that the switch SW2 inputs the data from other processing units 10-2 etc to the data buffer DB1. Still further, it may be sufficient that the switch SW3 inputs the data from other processing units 10-2 etc to the data buffer DB3. Accordingly, in this case, the data diverged by the loopback lines L2, L3 are discarded by the switches SW2, SW3 but not used.
In a case where the number of the processing units is smaller than the number in the maximum configuration, it follows that at least one of the data buffers DB1, DB3 for inputting the data is not connected to other processing units 10-2 etc. In
Described herein, by way of one example, is a case where the data buffer DB3 for inputting the data and the data buffer DB8 for outputting the data are not connected to other processing units 10-2 etc. In this case, it follows that a data input path inclusive of the data buffers DB3, DB4 is not used. Further, it is assumed that a path inclusive of the data buffer DB5, the switch SW1 and the data buffer DB6 is used for outputting the data. In this case, it follows that a path inclusive of the data buffer DB7, the switch SW1 and the data buffer DB8 is not used.
In this instance, on the occasion of testing the information processing apparatus 1, the first instruction bit of the control information retaining unit 13-1 is set to connect the data buffer DB5 to the data buffer DB6. Moreover, the second instruction bit is set to connect the data buffer DB5 to the data buffer DB8. That is, the data in the data buffer DB5 is copied and then output to the data buffer DB8.
Further, the third instruction bit is set to input the data from other processing units 10-2 to the data buffer DB1. Still further, the fourth instruction bit is set to input the data from the data buffer DB8 to the data buffer DB3. Accordingly, the data retained in the data buffer DB5 is transferred to other processing units 10-2 via the data buffer DB6 and is, after being copied by the switch SW1, returned to the data buffer DB3 via the switch SW3. The data buffer DB8 and the switch SW3 are given as one example of a first output unit.
As already described, the configuration of the data transfer unit 12B-1 is the same as the configuration of the data transfer unit 12A-1. Therefore, for instance, the data transfer unit 12B-1 has the same configuration as the configuration of the data buffer DB8 and the switch SW3.
Accordingly, a path inclusive of the data buffers DB3, DB4 is, even when not connected to other processing units 10-2 etc, enabled to input the data simulatively or in a pseudo manner by use of the data that is processed by the data processing unit 11-1 and is output to the data buffer DB5. The data input to the path inclusive of the data buffers DB3, DB4 is verified by an existing data verifying unit, e.g., a CRC (Cyclic Redundancy Check) checker, a parity checker and a protocol checker, etc.
Furthermore, the data retained in the data buffer DB8 for outputting the data is also verified by the existing data verifying unit on the path inclusive of the data buffers DB3, DB4. Moreover, the setting of the control information retaining unit 13-1 is changed to connect the data buffer DB7 in place of the data buffer DB5 to other processing units 10-2 etc, thereby enabling the test to be implemented between the data buffer DB7 and other processing units 10-2 etc similarly to the case of the data buffer DB5.
What has been discussed so far is the description of the case where the data buffer DB3 for inputting the data and the data buffer DB8 for outputting the data are not connected to other processing units 10-2 etc. The same test as described above can be implemented also in the case where the data buffer DB1 for inputting the data and the data buffer DB6 for outputting the data are not connected to other processing units 10-2 etc.
Further, what has been discussed so far is the description by taking the data transfer unit 12A-1 for example. The process, the function and the operation of the data transfer unit 12B-1 defined as the second output unit are, however, the same as those of the data transfer unit 12A-1. Moreover, what has been discussed so far is the description by taking mainly the processing unit 10-1 as the transmitting device for example. However, the process, the function and the operation of the processing unit 10-2 defined as the receiving device are the same as those of the processing unit 10-1. For instance, the processing unit 10-2 includes the data processing unit 11-2 as a second information processing unit and provides the same function as the function of the processing unit 10-1.
In the example of
The fifth instruction bit is used for the control to enable or disable the output of, e.g., the data buffer DB2. For example, it may be sufficient that the fifth instruction bit is used for controlling a cut-off circuit such as a TRI-STATE buffer for cutting off between the input and the output of the data buffer DB2 in a high impedance state and an AND gate. Alternatively, the fifth instruction bit may be made to function as, e.g., a valid flag for indicating valid/invalid states of the output of the data buffer DB2.
Similarly, the sixth instruction bit is used for controlling the output of, e.g., the data buffer DB4 to be enabled or disabled. Further, the sixth instruction bit may be made to function as, e.g., the valid flag for indicating the valid/invalid states of the output of the data buffer DB4.
With this configuration, for instance, when the data in the data buffers DB5, DB7, etc are turned back and thus input to the path inclusive of the data buffer DB3, it may be sufficient that the data in the data buffer DB4 is invalidated by the sixth instruction bit. Similarly, when the data in the data buffers DB5, DB7, etc are turned back and thus input to the path inclusive of the data buffer DB1, it may be sufficient that the data in the data buffer DB2 is invalidated by the fifth instruction bit.
The cut-off circuit which cuts off between the input and the output of the data buffer DB2 or DB4 etc in the high impedance state or the valid flag for indicating the valid/invalid states of the outputs of the data buffers DB2, DB4, etc, is given by way of an example of an invalidating unit.
As discussed above, the information processing apparatus 1 according to the first working example can, with the contrivance that the number of the processing units 10 is not the number in the maximum configuration, implement the test in the state approximate to the case of extending the processing units but actually with no extension of the processing units even in the case of including the unused interface circuits, e.g., the data buffers DB3, DB7, DB8, etc in
The configuration such as this is provided in each of the data transfer units 12A-1, 12B-1, 12A-2, 12B-2, etc of the processing units 10-1, 10-2 illustrated in
Moreover, the test described above can be simply controlled through the switchover of the switches SW1 to SW3 and the invalidation of the data buffers DB2, DB4, etc by setting the instruction bits of the control information retaining unit 13-1.
The first working example has demonstrated the example in which the control information retaining unit 13 indicates the switchover of the switches SW1-SW3 by use of the first through sixth instruction bits representing the connections of the switches and indicates whether the data buffers DB2, DB4, etc are invalidated or not in
It may be sufficient that the test is implemented, in which the control information retaining unit 13 predetermines the switchover of the switches SW1-SW3 and whether the data buffers DB2, DB4, etc are invalidated or not on the basis of the instruction bits of the control information retaining unit 13 described above. For example, if all bits of TEST_MODE[0:3] are “0”, this indicates that the processing unit 10-1 is connected to all other processing units 10-i (i=2, 3, 4, 5). In this case, it may be sufficient that the switch SW1 connects, without copying the signal, the data buffer DB5 directly to the data buffer DB6 and the data buffer DB7 directly to the data buffer DB8.
Further, it may be sufficient that the switches SW2, SW3, etc connect not the signals from the loopback lines L2, L3 but the signals from other data processing units 10 directly to the data buffers DB1, DB3, etc. Moreover, it may be sufficient that the signals are not invalidated in the data buffers DB2, DB4, etc.
While on the other hand, for instance, if any one or more of bits of TEST_MODE[0:3] are “1”, it follows that the data processing unit 10-1 is not connected to any one or more of other data processing units 10. In this case, any one of the data buffers DB6, DB8, etc on the data output side is not connected to other data processing units 10. Further, any one of the data buffers DB1, DB3, etc on the data input side is not connected to other data processing units 10. In this instance, it may be sufficient that the switch SW1 copies the signals of the data buffer, corresponding to the bit position of TEST_MODE[0] through TEST_MODE[3] with the bit “0” being set, to the data buffer corresponding to the bit position with the bit “1” being set. For example, when TEST_MODE[0]=0 and if all bits of TEST_MODE[1:3] are “1”, it may be sufficient that the signals of the data buffer DB5 corresponding to the bits of TEST_MODE[0] are input to the data buffer DB6 and, in addition, copied to other data buffers DB8 etc.
On the other hand, it may be sufficient that the switch SW3 etc corresponding to TEST_MODE[1:3] select the signals on the loopback line L2 etc. Moreover, it may be sufficient that the data buffer DB4 etc corresponding to TEST_MODE[1:3] etc invalidate the signals. As described above, it may be sufficient to switch between (1) receiving the signals from other data processing units 10 and (2) using the signals from the paths through a series of processes of copying, turning back and invalidating the signals, depending on TEST_MODE[i] indicating whether connected to other data processing units 10 or not.
The information processing apparatus 1 according to a second working example will be described with reference to
As in
The CPU CORE0 etc executes processing the data in the CPU00 by use of a computer program deployed in an executable manner on the main storage device or the DIMM 30. In the data processing, the CPU CORE0 etc accesses the main storage device via the MC 22. For example, the CPU CORE0 etc, if processing target data does not exist on the unillustrated cache, requests the MC 22 to acquire the data.
The MC 22 retains the storage destination of the data requested for its acquisition. Then, the MC 22 executes a process of reading the data from the storage destination of the acquisition requested data as a data acquisition requesting destination. For example, the MC 22 reads, if the destination of the data acquisition request given from the CPU CORE0 etc is the main storage device in the CPU00 or the DIMM 30, the data from an acquisition requested address, and hands over the readout data to the requester CPU CORE0 etc. Further, the MC 22 hands over the data acquisition request to the router 21 if the destinations of the data acquisition request given from the CPU CORE0 etc are other CPU01 through CPU03 or other CPUs connected via the XB0.
The router 21 specifies, based on logical information of the CPU designated as the data acquisition destination set in the data acquisition request given from the MC, the I/O interface connected to the designated CPU. For example, if the CPU01 is designated as the data acquisition destination, the router 21 outputs the data acquisition request addressed to the CPU01 to an output interface DLOUT0. The data requested for its acquisition is input to, e.g., an input interface DLIN0 from the CPU01, and hence the router 21 hands the data input to the input interface DLIN0 over to the MC 22.
Further, e.g., the CPU CORE0 etc requests the MC 22 to save the processed data in the main storage device or the main storage device of another CPU. The MC 22 retains the storage destination of the data requested to be saved. Then, the MC 22 executes a process of writing the data to the storage destination of the data requested to be saved as a data write request destination. For example, the MC 22 writes, if the destination of the data write request given form the CPU CORE0 etc is the main storage device in the CPU00 or the DIMM 30, the data to an address requested for writing. Moreover, the MC 22 hands over the data write request to the router 21 if the destinations of the data write request given from the CPU CORE0 etc are other CPU01 through CPU03 or other CPUs connected via the XB0.
The router 21 specifies, based on the logical information of the CPU designated in the data write request given from the MC, the I/O interface connected to the designated CPU. For instance, if the CPU01 is designated as the data write request destination, the router 21 outputs the write request target data addressed to the CPU01 to the output interface DLOUT0.
The same processing as done for the interfaces DLIN0 and DLOUT0 is applied to other input interfaces DLIN1 through DLIN3 and other output interfaces DLOUT1 through DLOUT3. The output interfaces DLOUT0 through DLOUT3 and the input interfaces DLIN0 through DLIN3 correspond to functions of a data link layer of, e.g., a communication protocol hierarchy.
In
As already explained in
Each of the output interfaces DLOUT0-3 may be a hardware circuit including the buffer and may also be a function provided by the DSP executing the computer program. In
The converting unit SerDes0 has a switch SW20 and a loopback line L20 that diverges and turns back the data OD transferred to another CPU to the switch SW20. Namely, the converting unit SerDes0 executes the parallel/serial conversion that is already explained in
Further, the switch SW20 selects any one of input data ID input from another CPU and turn-back data from the loopback line L20, and hands over the selected data to the input interface DLIN0. The converting unit SerDes0 is one example of a first output unit. Similarly, the converting unit SerDes1 is one example of a second output unit.
The processes of other input interfaces DLIN1-3, the output interfaces DLOUT1-3 and the converting units SerDes1-3 are the same as those of the input interface DLIN0, the output interface DLOUT0 and the converting unit SerDes0.
As in
Still further, the router 21 includes registers R4-7 that receive the packets from the input interfaces DLIN0-3, buffers IBUF0-3 for storing the received packets, receiving control units RCV-CTRL0-3 that control writing the packets to the IBUFs and transmitting the packets to the MC 22, and an arbitration circuit AR that processes a conflict of reading the packets from the IBUF0-3. Furthermore, the router 21 has the control information retaining unit 13 for setting whether in the test mode or not. The control information retaining unit 13 includes a latch stored with test mode bits TEST_MODE[0:3].
The registers R4-7 are provided corresponding to the input interfaces DLIN0-3 and retain the data given from the input interfaces DLIN0-3. Each of the registers R4-7 is, e.g., a latch that retains the data for one packet.
Moreover, for instance, the buffer IBUF0 is connected at a stage next to the register R4. It may be sufficient that the register R4 retains the data for one packet, while the buffer IBUF0 retains the data for a plurality of packets. Herein, “one packet” contains a data field (payload) to which a predetermined bit count such as 8 bits, 16 bits, 32 bits and 64 bits is allocated.
Further, a data verifying unit PCC (Parity & Protocol checker) is provided at the next stage to the buffer IBUF0. The data verifying unit PCC executes the CRC (Cyclic Redundancy Check) check, the parity check and executes checking whether the data format and the data transmission procedure are based on a predetermined protocol with respect to the data handed over to the MC 22 from the buffer IBUF0. The data verifying unit PCC can be exemplified as a hardware circuit that executes arithmetic operations of the CRC check, the parity check, the protocol check, etc. The DSP (Data Signal Processor) etc may, however, function as the data verifying unit PCC by executing the computer program.
Moreover, as in
The arbiter AR in
Moreover, as in
The same process is applied to other AND gates, e.g., the AND gate A2 connected to the receiving control unit RCV-CTRL1 and the AND gate A3 connected to the path inclusive of the register R5, the buffer IBUF1 and the data verifying unit PCC. Further, the same process is applied to the AND gate A4 connected to the receiving control unit RCV-CTRL2 and the AND gate A5 connected to the path inclusive of the register R6, the buffer IBUF2 and the data verifying unit PCC. Still further, the same process is applied to the AND gate A6 inclusive of the receiving control unit RCV-CTRL3 and the AND gate A7 connected to the path inclusive of the register R7, the buffer IBUF3 and the data verifying unit PCC. In
The output buffers OB0-3 retain the data supplied to the registers R0-3. Then, for instance, the transmitting control unit SEND-CTRL0, when the output data exists in the output buffer OB0, executes controlling to read the data for one packet to the register R0. The process of the transmitting control unit SEND-CTRL0 may be carried out by the hardware circuit and may also be carried out in such a manner that the DSP executes the computer program.
Each of the bus selectors S0-S3 selects the data from any one of the registers R0-R3 and outputs the selected data to the respective output interfaces DLOUT0-3. The register R is one example of a first retaining unit. Further, the register R1 is one example of a second retaining unit.
Next, a packet transmission process when in a normal operation of the CPU00 depicted in
The packet received by the SerDes0 of the CPU1 is transferred to the DLIN0 of the CPU01 and is, after the packet has been confirmed normal by the CRC check etc, transmitted to the R4 of the CPU01. The packet transmitted to the R4 of the CPU01 is written to the buffer IBUF0 and then transmitted to the MC 22 according to the operation flow illustrated in
Next, a process of the packet transmission when in the testing operation of the CPU00 will hereinafter be described. The testing operation of the CPU00 becomes valid by setting a value in the test mode bit TEST_MODE[0:3] of the control information retaining unit 13. The bus selectors S0-S3, the converting units SerDes0-3 and the receiving control units RCV-CTRL0-3 are notified of the value of TEST_MODE[0:3], and each of the function blocks changes its operation based on the value of TEST_MODE[0:3]. The setting of the value with respect to the control information retaining unit 13 is done from outside by making use of an interface with a testing function provided in a JTAG-LSI and I2C (Inter-Integrated Circuit)-LSI. It does not, however, mean that the setting of the value with respect to the control information retaining unit 13 is limited to JTAG and I2C.
The JTAG is defined as the standards by which the internal circuit of the LSI chip performs communications with a device outside the LSI chip. The interior of the LSI chip that conforms to the JTAG standards is prepared with signal terminals for indicating a clock, a data input, a data output and status control, and the test called a boundary scan test is implemented over the LSI chip through these signal terminals. The I2C is defined as standards by which the interior of the LSI etc performs serial communications with the device etc outside the LSI chip. Note that 4 bits are exemplified as the bit count retained in the control information retaining unit 13 in the second working example. It does not, however, mean that the bit count retained in the control information retaining unit 13 is limited to 4 bits. Namely, it may be sufficient that the bit count of the test mode bit TEST_MODE is determined corresponding to the number of the CPUs of the peer device to which the CPUs (on this side) are connected.
TEST_MODE[0:3] is the set value per interface, in which “0” is set for the interface with the connecting destination on which actually the chip (peer CPU) exists, and “1” is set for the interfaces with no connecting destination of an actual existing chip.
When in the normal operation, the test mode bits are set such as TEST_MODE[0:3]=0000. Now, for instance, a CPU00-CPU01 path inclusive of DLIN0 and DLOUT0 is called an interface 0. Further, generally, a CPU00-CPU0i path inclusive of DLINi and DLOUTi is called an interface i. Herein, the value “i” is 1 or 2 or 3. The interface 0 is set in the normal operation, while other interfaces 1, 2, 3 are set in the test mode, in which case the test mode bits are set such as TEST_MODE[0:3]=0111. The number of the interfaces, however, depends on the number of the CPUs of the connectable peer device, and hence it does not mean that the number of the interfaces is limited to “4”.
An operation when TEST_MODE[0:3]=0111 will hereinafter be demonstrated. TEST_MODE[0:3]=0111 is demonstrated in the configuration of
On the other hand, because of TEST_MODE[1:3]=111, the signals of the register R0 are copied in the bus selectors S1, S2, S3 and handed over to the output interface DLOUT1, DLOUT2, DLOUT3. Moreover, the signals of the output interface DLOUT1 are turned back at the converting unit SerDes1 and returned to the input interface DLIN1. Similarly, the signals of the output interface DLOUT2 are turned back at the converting unit SerDes2 and returned to the input interface DLIN2. Further similarly, the signals of the output interface DLOUT3 are turned back at the converting unit SerDes3 and returned to the input interface DLIN3.
In the case of forwarding the packet to the CPU01 from the CPU00, the packet is written first to the output buffer OB0 from the MC 22 of the CPU00. Next, the packet transmitting control unit SEND-CTRL0 of the CPU00 transmits the packet to the output interface DLOUT0 via the register R0 in accordance with the operation flow illustrated in
The packets forwarded to the respective output interface DLOUT0-3 are transmitted to the converting units SerDes0-3. As described above, the converting units SerDes0-3 become the loopback mode to turn back the transmission signals of the converting units themselves when the bits, corresponding to their interface numbers, of TEST_MODE[0:3] are “1”. It may be sufficient that the loopback function involves using the circuit that is generally provided in the converting unit. If there is no circuit of the loopback function, however, it may be sufficient to incorporate a circuit including a diverging line and a loopback line for the loopback to the input interface DLIN from the output interface DLOUT when in the test mode. As a result, the packets sent to the converting unit SerDes0 of the CPU00 are transmitted to the converting unit SerDes0 of the CPU01. On the other hand, the packets sent to the converting units SerDes1-3 of the CPU00 are transmitted to the input interface DLIN1-3 of the CPU00.
The packets sent to the converting unit SerDes0 of the CPU01 are, similarly to when in the normal operation, transmitted to the MC 22 via the input interface DLIN0 and the buffer IBUF0 of the CPU01. The packet sent to the input interfaces DLIN1-3 of the CPU00 are transmitted to the registers R5-R7 of the CPU00 and then written to the buffers IBUF1-3 according to the flowchart in
At this time, the packets written to the buffers IBUF1-3 are the packets originally transmitted to the CPU01 by the CPU00 and are therefore the packets that may not be received when viewed from a standpoint of the CPU00. If making an attempt to process these packets intact in the CPU00, there is a possibility that the operation is determined abnormal. Such being the case, according to TEST_MODE[1:3]=111, the AND gates A2-A7 on the ingress side of the MC 22 in
(Processing Flow)
An operation sequence of the hardware circuit when implementing the test illustrated in
In this process, the transmitting control unit SEND-CTRL0 determines whether or not the packet standing by for the transmission exists in the output buffer (OB1 etc) (S11). If the packet standing by for the transmission exists in the output buffer (OB1 etc), it is determined whether capacities of the retry buffer and the buffer IBUF of the transmitting destination are sufficient or not (S12). Herein, the capacity of the buffer IBUF of the transmitting destination is a capacity of the buffer IBUF0 of the CPU01 depicted in
If both of the determination results in S11 and S12 are “true” (YES), the transmitting control unit SEND-CTRL0 reads the packet into the register R0 and transmits the packet to the CPU01 via the output interface DLOUT0 and the converting unit SerDes0 (S13).
Whereas if any one of the determination results in S11 and S12 is “false” (NO), the transmitting control unit SEND-CTRL0 finishes processing without executing the process in S13.
In this process, the receiving control unit RCV-CTRL0 determines whether the packet arrives at the register R4 or not (S21). It is to be noted that the registers R5-R7 become the determination target components in the receiving control units RCV-CTRL1-3.
When the packet reaches the register R4, the receiving control unit RCV-CTRL0 writes the packet received by R4 to the buffer IBUF0 (S22). Note that the buffers IBUF1-3 become the writing destinations in the receiving control units RCV-CTRL1-3.
Then, the receiving control unit RCV-CTRL0 determines whether the packet exists in the buffer IBUF0 or not (S23). Note that the buffers IBUF1-3 become the determination target components in the receiving control units RCV-CTRL1-3.
If the packet exists in the buffer IBUF0, the receiving control unit RCV-CTRL0 determines whether the test mode bit TEST_MODE[0] of the control information retaining unit 13 is “1” or not (S24). Note that TEST_MODE[1:3] becomes the determination target element in the receiving control units RCV-CTRL1-3.
When determining in S24 that the test mode bit TEST_MODE[0] is “1”, the receiving control unit RCV-CTRL0, by the data verifying unit PCC, extracts the packet and checks whether the packet is normal or not (S26). Whereas if the packet is not normal (N in S27), normal error processing is carried out in the information processing apparatus 1 (S28). In the error processing, for instance, the receiving control unit RCV-CTRL0 notifies the unillustrated computer etc for the system control of the error through a return value to the JTAG command of the CPU00. Moreover, if normal, the processing directly comes to an end. In this case, as depicted in
Moreover, when determining in S24 that the test mode bit TEST_MODE[0] is “0”, TEST_MODE[0]=0 is input to the AND gates A0, A1 in
Then, if the right of packet transmission is acquired, the receiving control unit RCV-CTRL0 extracts the packet from the buffer IBUF0 according to the normal procedure. Subsequently, the receiving control unit RCV-CTRL0, by the data verifying unit PCC, checks whether the extracted packet is normal or not (S29). Subsequently, if the packet is normal (Y in S2A), the receiving control unit RCV-CTRL0 transmits the packet to the MC 22 via the arbiter AR (S2B). Whereas if the packet is not normal (N in S2A), normal error processing is executed in the information processing apparatus 1 (S28).
The bus selector S0 preferentially determines whether TEST_MODE[0]=0 is established or not (S31). Then, if TEST_MODE[0]=0 is established (Y in S31), the bus selector S0 selects the path extending from the register R0 (S32). This is the case of being connected to the peer CPU01 via the interfaces 0, i.e., the input interface DLIN0 and the output interface DLOUT0.
Whereas when determining in S31 that TEST_MODE[0]=0 is not established, the bus selector S0 determines next whether TEST_MODE[1]=0 is established or not (S33). Then, if TEST_MODE[1]=0 is established (Y in S33), the bus selector S0 selects the path extending from the register R1 (S34). This is the case of being connected to the peer CPU01 via the interfaces 1, i.e., the input interface DLIN1 and the output interface DLOUT1.
Further, when determining in S33 that TEST_MODE[1]=0 is not established, the bus selector S0 determines next whether TEST_MODE[2]=0 is established or not (S35). Then, if TEST_MODE[2]=0 is established (Y in S35), the bus selector S0 selects the path extending from the register R2 (S36). This is the case of being connected to the peer CPU02 via the interfaces 2, i.e., the input interface DLIN2 and the output interface DLOUT2.
Further, when determining in S35 that TEST_MODE[2]=0 is not established, the bus selector S0 selects the path extending from the register R3 (S37). This is the case of being connected to the peer CPU03 via the interfaces 3, i.e., the input interface DLIN3 and the output interface DLOUT3.
Note that the determination is made in the sequence of TEST_MODE[0]=0, TEST_MODE[1]=0, TEST_MODE[2]=0, TEST_MODE[3]=0 in
Namely, the bus selector S1 preferentially determines whether TEST_MODE[1]=0 is established or not (S41). Then, if TEST_MODE[1]=0 is established (Y in S41), the bus selector S1 selects the path extending from the register R1 (S42).
Whereas when determining in S41 that TEST_MODE[1]=0 is not established, the bus selector S1 determines next whether TEST_MODE[0]=0 is established or not (S43). Then, if TEST_MODE[0]=0 is established (Y in S43), the bus selector S1 selects the path extending from the register R0 (S44).
Further, when determining in S43 that TEST_MODE[0]=0 is not established, the bus selector S1 determines next whether TEST_MODE[2]=0 is established or not (S45). Then, if TEST_MODE[2]=0 is established (Y in S45), the bus selector S1 selects the path extending from the register R2 (S46). Still further, when determining in S45 that TEST_MODE[2]=0 is not established, the bus selector S1 selects the path extending from the register R3 (S47).
Namely, the bus selector S2 preferentially determines whether TEST_MODE[2]=0 is established or not (S51). Then, if TEST_MODE[2]=0 is established (Y in S51), the bus selector S2 selects the path extending from the register R2 (S52).
Whereas when determining in S51 that TEST_MODE[2]=0 is not established, the bus selector S2 determines next whether TEST_MODE[0]=0 is established or not (S53). Then, if TEST_MODE[0]=0 is established (Y in S53), the bus selector S2 selects the path extending from the register R0 (S54).
Further, when determining in S53 that TEST_MODE[0]=0 is not established, the bus selector S2 determines next whether TEST_MODE[1]=0 is established or not (S55). Then, if TEST_MODE[1]=0 is established (Y in S55), the bus selector S2 selects the path extending from the register R1 (S56). Still further, when determining in S55 that TEST_MODE[1]=0 is not established, the bus selector S2 selects the path extending from the register R3 (S57).
Namely, the bus selector S3 preferentially determines whether TEST_MODE[3]=0 is established or not (S61). Then, if TEST_MODE[3]=0 is established (Y in S61), the bus selector S3 selects the path extending from the register R3 (S62).
Whereas when determining in S61 that TEST_MODE[3]=0 is not established, the bus selector S3 determines next whether TEST_MODE[0]=0 is established or not (S63). Then, if TEST_MODE[0]=0 is established (Y in S63), the bus selector S3 selects the path extending from the register R0 (S64).
Further, when determining in S63 that TEST_MODE[0]=0 is not established, the bus selector S3 determines next whether TEST_MODE[1]=0 is established or not (S65). Then, if TEST_MODE[1]=0 is established (Y in S65), the bus selector S3 selects the path extending from the register R1 (S66). Still further, when determining in S65 that TEST_MODE[1]=0 is not established, the bus selector S3 selects the path extending from the register R2 (S67).
(Operation Sequence)
The validity of the turned-back packet and the validity of the operation of each function block are checked by (1) the CRC checker possessed by the input interfaces DLIN1-3 and by (2) the parity checker, the protocol checker, etc possessed by the buffers IBUF1-3 and the receiving control units RCV-CTRL0-3. These checkers operate for checking, even when in the normal operation, whether the hardware gets into failure or not. As a result, it is feasible to test simultaneously the interface circuit units of the CPU02, the CPU03, the XB0, XB1, etc even in the state of implementing the test by connecting the CPU00 and the CPU01 together. The test may be conducted by use of a test program for executing the data transfer between, e.g., the CPU00 and the CPU01.
<Effects>
Owing to the architecture described above, the operation check for the interfaces other than the interfaces to be used actually can be done even with the simple configuration in the configurations that can be taken by the information processing apparatus 1. For example, as illustrated in
For example, as depicted in
Furthermore, in the second working example described above, the test mode bits TEST_MODE[0:3] of the control information retaining unit 13 designate the selection of the bus selectors S0-3, the loopback or non-loopback at the converting units SerDes0-3 and the enable/disable setting for the input to the arbiter AR. Accordingly, an operator etc, who performs testing the information processing apparatus 1, can simply implement the test by setting the control information in the test mode bits TEST_MODE[0:3] of the control information retaining unit 13 by use of, e.g., the JTAG commands etc from on the computer for system management that controls the information processing apparatus 1. Further, it may be sufficient that the operator reads and checks the test result by the JTAG commands etc.
The packets transmitted by the information processing apparatus 1 described in the second working example become the packets used for the actual communications between the CPUs when running the test program on the CPUs. Moreover, the packet issuance timing is influenced by a variety of hardware statuses such as the status of the cache, “BUSY” of the buffer (an event of “buffer busy waits”) and the conflict of resources on the CPU. The test can be therefore implemented at the timing and with the data pattern, which are close to the environment of the actual operation.
The architecture described above is provided in the respective CPUs included in the information processing apparatus 1, such as the CPU00-03 and other CPUs connected via the crossbar switches XB0 illustrated in
All examples and conditional language provided 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 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 one or more 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 application of International Application PCT/JP2011/057253, filed on Mar. 24, 2011, and designated the U.S., the entire contents of which are incorporated herein by reference.
Number | Date | Country | |
---|---|---|---|
Parent | PCT/JP2011/057253 | Mar 2011 | US |
Child | 14022555 | US |