Abstract:
The present invention relates to a testing method for an intermediate circuit between a microprocessor and surrounding circuits comprising a first set of access routes including lines of a data bus (D) and a control bus (C), and a second set of access paths comprising lines (AH) connected to other lines (CS) through a processing circuit (40). This method consists in providing in the intermediate circuit a test register (46) addressable by addresses ignored by the other elements of the circuit; writing test words in the test register through either one of the first and second set of as paths; reading the written words in the test register through the other set of access paths; and checking whether the read words correspond in a predetermined way to the test words.

Description:
This application is a continuation of application Ser. No. 07/872,756 filed Apr. 23, 1992, now abandoned 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention relates to computer systems and in particular to a system for the verification of correct information transfers between certain of the circuits of the system and surrounding circuits. 
     FIG. 1 is a partial diagram of a conventional computer system. This system comprises a computer 10 associated to a network 11 to which are connected various elements, especially servers 12. A server generally comprises an interface board 13 between the network 11 and a system bus SB to which are connected input/output boards 14. The input/output boards 14 are, for example, connected to terminals, to a telephone network and/or to peripheral devices. 
     All of the boards of the server 12 are generally managed by the interface board 13. Each of the server boards comprises a microprocessor managing the board itself and allowing it to achieve various operations, especially testing itself and communicating the test results to the computer system. 
     FIG. 2 is a simplified schematic diagram of a board 14 which is here an input/output board. This board comprises a microprocessor 20 connected to a system bus D,A,C internal to the board, comprising a data bus D, an address bus A and a control bus C. The data bus comprises, for example, 16 lines for transmitting 16 bit words. The address bus comprises, for example, 24 lines for communicating 24 bit addresses. The control bus comprises at least three lines which are a clock line (CK), a read/write line (R/W), and a data reception acknowledgement line (DTACK). In the following description, it will only be referred to line R/W, the functions of the other lines not being necessary for understanding the invention. Line R/W allows, as will be seen later, the microprocessor to establish a reading mode (R) or a writing mode (W). 
     Peripheral devices, not shown, are connected to input/output (I/O) circuits 21. Each I/O circuit can manage a plurality of peripheral devices, for example 8. Each I/O circuit comprises an input connected to a chip-select line CS and an output connected to an interrupt request line IRQ. The CS lines are connected to outputs of an address decoder circuit 23 connected to a plurality of the address bus lines, corresponding to high address lines AH. The IRQ lines are connected to inputs of an interrupt priority level decoder circuit 25 which provides the microprocessor 20 with a binary coded priority level through lines IPL, for example three lines. 
     For normal operation, circuit 23 is only connected to the address bus and circuit 25 is not connected to any bus. But, generally the decoding functions of decoder circuits 23 and 25 are programmable. Therefore, the address decoder circuit 23 is also connected to the data bus and the decoder circuit 25 is connected to low address lines AL, to a chip-select line CS of circuit 23 and to the data bus. 
     Each of the I/O circuits is also connected to a certain number of the data bus lines, for example 8, for transmitting 8 bit words between the board and the peripheral device, and to low address lines AL. 
     FIG. 3 is a partial diagram of internal circuitry of an input/output circuit 21. This input/output circuit is intended to communicate with two non-represented peripheral devices. Three registers are associated with each peripheral device, namely a data transmission register TR, a data reception register RR and a control register CR. Each of the registers is also connected to the control bus C, to the data bus D and to an internal chip-select line CSi allowing an internal address decoder 32 to select the register. Address decoder 32 is connected to the CS line of circuit 21 and to at least three low address lines in order to be able to select the six registers. All the inputs and outputs of the circuit are buffered by buffers 33. 
     Words to be transmitted to the peripheral device are written into register TR; the peripheral device writes words which are to be transferred to the data bus in register RR; and in register CR, is written control information which determines a communication protocol, i.e. how data must be communicated with the peripheral device, such as the communication speed, the number of bits per words, the parity of the words. Registers CR are connected to internal circuitry (not shown) which exploit the data of these registers for managing the communication. 
     In order to read or write in one of the registers of circuit 21, the following operations are performed: 
     setting by the microprocessor the R/W line of the control bus to a logic state, for example &#34;1&#34; to read and &#34;0&#34; to write; 
     issuing by the microprocessor an address on the address bus for selecting the desired register; 
     decoding the high address AH by the decoder circuit 23 which accordingly selects a circuit 21 by setting the associated CS line to an active state, for example &#34;0&#34;; 
     decoding the low address AL by decoder 32 of the selected circuit 21, this decoder selecting the desired register through the associated chip-select line CSi, causing the selected register to write its contents on the data bus if the R/W line is at &#34;0&#34;, or to read a word supplied by the microprocessor to the data bus if the R/W line is at &#34;1&#34;. 
     When a peripheral device wishes to communicate with the system, the associated circuit 21 forces its output IRQ to an active state, for example &#34;0&#34;, which corresponds to an interruption request. The circuitry establishing this interruption request is not described. Decoder circuit 25 converts this request into a priority level IPL as a function of the priority attributed to the concerned circuit 21. According to the priority level, the microprocessor does or does not interrupt operations of the concerned circuit 21. When the microprocessor interrupts operation, the microprocessor searches for the circuit 21 which requested the interruption by sequentially selecting in read mode (line R/W at &#34;1&#34;) the registers RR of circuits 21. The register RR of circuit 21 which requested the interruption writes its contents on the data bus when it is selected and output IRQ of the concerned circuit 21 is then reinitialized. 
     Common failures of a board are due to bad access paths between various circuits of a board. An access path is defined as comprising a conductive track on the board, the soldered connection of the track to a pin of a circuit, the connection of the pin to a buffer of the circuit chip, the connection of the buffer to metallizations of the chip, and eventually connections through various internal circuits of the chip. Defects in the access paths can result, for example, from poor soldering of the pins to their tracks, from destruction of a buffer and/or from poor chip silicon quality. 
     In order to detect some of these defects, the microprocessor periodically executes, for example during power-on, a board test program. One of the tests involves verifying the communication between the board and peripheral devices. Therefore, communications between the microprocessor and the input/output circuits are generally tested. If this test is successful and if the peripheral device misfunctions, the defect is localized to the communication between the input/output circuit and this peripheral device, or in the peripheral device. 
     A conventional test involves checking the connection of the input/output circuit to the data bus, this connection being a common failure source. Register RR is generally read-only, i.e. signals cannot be written in to register RR via the data bus. In register CR, some bits are read-only and the writing in the others of inadequate information can result in an undesirable functioning of the peripheral device. Register TR can be read or written from the data bus and it is in the register that test words are written because it happens to be the most convenient. The written words are then read and compared to the test words whereby it can be determined whether the access paths between the register and the data bus are defective. 
     However, only words corresponding to data which are ignored by the associated peripheral device can be written in register TR because it is undesirable to operate the peripheral device in an uncontrolled manner. Thus, the set of words that can be written in the register is limited and the failure possibilities of all the access paths cannot be exhaustively tested. Moreover, the set of words that can be written in the register depends on the type of peripheral device connected to the register, hence one specific test program per type of peripheral device must be provided. 
     Testing only the input/output circuits does not always allow a failure to be localized. Indeed, if the test program indicates a failure, this failure can be due to a bad connection to the data bus, and, for example, to a failure of the address decoder circuit not sending a chip-select. 
     Testing methods for intermediate circuits in order to better localize failures exist. They consist in simulating peripheral device accesses and the actions of the peripheral devices. Therefore, the previously mentioned transmission and reception registers TR, RR, of the input/output circuits are of a special type. They can be put in a test mode during which their connections to the peripheral devices are interrupted and registers TR are connected to the associated registers RR. The words written into register TR are then transferred to associated register RR where they can be read, which allows checking of whether data, even erroneous, effectively reaches register TR and at the same time if this data generates an interrupt request when it reaches register RR. 
     However, for reliable verification of the intermediate circuits, at least partial correct functioning of the input/output circuits is needed. For example, if all the lines of the data bus arriving at the input/output circuit are interrupted, this circuit also reacts as if it is not selected. In any case, if the input/output circuit does not generate an interrupt request, it will not be known if it is the input/output circuit that is defective or if it is the priority level decoder circuit. Thus, in spite of this test method with special registers TR and RR, in many cases a failure cannot be accurately localized. 
     SUMMARY OF THE INVENTION 
     An object of the invention is to test a microprocessor board by accurately localizing eventual failures. 
     Another object of the invention is to independently test an address decoder circuit. 
     Another object of the invention is to independently test an interrupt priority level decoder circuit. 
     In accordance with the present invention a test register is coupled with programmable registers, as well as address and data lines of a microprocessor means. The test register is written in response to output bits on plural chip select lines and is read out in response to signals on the microprocessor data and address output lines. Preferably the test register is written in response to signals on data and address output lines of the microprocessor means. The test register has output bits which are supplied to certain stages of program registers, which are the same as stages having contents defining priority levels associated with interrupt request input lines. 
     In a preferred embodiment there are M interrupt request input lines and N interrupt priority level output lines. M program registers are provided and the test register is required to include M+N output bits. A controlling means includes a decoder having M inputs and N outputs and is controlled by the contents of the M program registers. A first logic means combines M of the output bits of the test register with binary levels the M interrupt request input lines for deriving M inputs for the decoder. Second logic means combines the remaining N output bits of the test register with the N output bits of the decoder to derive N output bits that are supplied to the N interrupt priority level output lines. 
     A second test register preferably includes first and second sets of plural bits, wherein the states of the first set of bits are supplied to the interrupt request input lines and the states of the second set of bits are supplied to the interrupt priority level output lines. 
     The test register is preferably read out to the microprocessor means so an indication of the output bits on the chip select lines, as stored in the test register, is compared with a desired value of the output bits on the chip select lines. The test register includes plural stages, one for each of the chip select lines. Each of the stages includes a chip select input line selectively coupled to one of plural flip-flops, each having an output coupled to a separate tri-state buffer. The flip-flops and buffer are responsive to different logical combinations of a read/write signal derived by the microprocessor means and a chip enable signal selectively derived in response to outputs of the plural program register means. 
     In a preferred embodiment, plural M chip select output lines and the programmable register means include M program registers, each associated with one chip select line. The controlling means includes a programmable decoder responsive to the address output lines and output signals of the M program registers to derive M output signals for the M chip select output lines. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The foregoing and other objects, features and advantages of the invention will be described in more detail in the following description of preferred embodiments and by referring to the accompanying drawings among which: 
     FIGS. 1, 2 and 3, previously described, are respectively diagrams of a conventional network computer system, a computer system board and a circuit of the board; 
     FIG. 4 is a diagram of a preferred embodiment of an input/output circuit of the invention; 
     FIGS. 5A and 5B are respectively diagrams of preferred embodiments according to the invention of an address decoder circuit and an associated test register; and 
     FIG. 6 is a diagram of an embodiment according to the invention of an interrupt priority level decoder circuit. 
    
    
     DESCRIPTION OF PREFERRED EMBODIMENTS 
     The present invention enables a microprocessor board to be tested to localize eventual failures by first individually testing each of the intermediate circuits and then the input/output circuits. In the following description are successively described how the input/output circuits, an address decoder circuit and an interrupt priority level decoder circuit are tested. 
     An input/output circuit 21 according to the invention, shown in FIG. 4, comprises the same elements as the prior art circuit of FIG. 3 (designated by the same reference numerals) with the inclusion of an additional test register 34 connected to the data bus and to an internal chip-select line CSi. The decoding function of the internal address decoder 32 has been modified in order to be able to select the additional register 34. In the example of FIG. 4, the three low address lines AL provided in the conventional circuit of FIG. 3 are sufficient for also addressing the additional register 34. Indeed, in order to address 6 existing registers, at least three address lines are necessary, which allows eight combinations of which only six were used. Hence, with the additional test register 34, seven combinations are used and it is not necessary to increase the number of address lines reaching the input/output circuit. Generally, in most of the existing input/output circuits, the number of registers that must be addressed is smaller than the possible binary combinations of the address lines reaching the circuit. 
     During a test phase of the connection of circuit 21 to the data bus D, the apparatus of the invention performs the steps of: 
     establishing the write mode, selecting register 34 and supplying a test word to data bus D; 
     establishing the read mode, selecting register 34 and reading the word then present on data bus D. 
     The test words are written and read through tested access paths comprising the connection of the data bus D to circuit 21, buffer 33 and the connection of buffer 33 to the internal data bus of circuit 21. 
     If it is supposed that the absence of a signal on the data bus lines is interpreted as a 0 level by the circuits which receive these lines, some of the comparison results can, for example, be interpreted in the following way. If the test word comprises one bit with a &#34;1&#34; value and if this bit has a &#34;0&#34; value in the word that is read, the access path corresponding to this bit is interrupted. If, in the same case, the read word comprises several bits having &#34;1&#34; values, the access paths corresponding to these &#34;1&#34; bits are shorted. 
     It is also possible to detect inductive couplings between lines of the data bus by trying test words having a significant number of bits having &#34;1&#34; values. Indeed, a significant number of bits having a &#34;1&#34; will, by inductive coupling and during a brief time interval but long enough for erroneous values to be stored in the register, force to &#34;1&#34; the low number of bits normally at &#34;0&#34;. 
     By using test words with a sufficient number of bits at &#34;1&#34;, a sufficient decoupling of the power supply lines can also be tested Indeed, when a sufficient number of bits switch from &#34;0&#34; to &#34;1&#34;, a current surge is generated due to charging of parasitic capacities. If the supply line supplying this current surge is insufficiently decoupled, its voltage drops abruptly during the surge and the bits which must be set at &#34;1&#34; can remain at &#34;0&#34; during this surge which is generally long enough for erroneous data to be stored in the register. 
     FIG. 5A is a diagram of an embodiment of the invention applied to an address decoder circuit 23, such as that shown in FIG. 2. Decoder circuit 23 comprises a programmable decoder 40 responsive to the high address lines AH and feeding the chip-select lines CS through a buffer 42. In order to program the decoding functions, a programmable decoder 40 is connected to one programming register 44 per CS line. Registers 44 are connected to the data and control buses and are selectable by selection lines (not shown) which are controlled by programmable decoder 40. The use and construction of registers 44 are conventional and not described. 
     According to the invention, decode circuit 23 comprises an additional test register 46 having output bits supplied to the data bus, and an input responsive to the R/W line of the control bus and further inputs responsive to each of the CS lines at the output of buffer 42. Decoder 40 has been modified so it can select additional test register 46 with an additional internal chip-select line CSi. It is not necessary to increase the number of address lines feeding decoder 40 to select the additional test register 46 because this number is relatively large (for example 15) and sufficient to control many more than the existing CS lines. 
     FIG. 5B is a diagram of elements of test register 46, FIG. 5A, associated with two CS lines at the output of buffer 42. Each CS line is connected to a set input S of an RS flip-flop 50. Set input S is active low, i.e. the active state &#34;0&#34; of line CS sets flip-flop 50 to The reset inputs R of all flip-flops 50 are connected to the output of NOR gate 52, the inputs of which are connected the R/W line and the internal chip-select line CSi. Output Q of each flip-flop 50 is connected to a respective line of the data bus D through a tri-state buffer 54° All tri-state buffers 54 are controlled by a NOR gate 56, having a first input connected to line CSi and a second input connected to line R/W through inverter 58. Thus, in write mode (R/W at &#34;0&#34;) while register 46 is selected (CSi at &#34;0&#34;), flip-flops 50 are reset. In read mode (R/W at &#34;1&#34;) while register 46 is selected, tri-state buffers 54 are active and the contents of flip-flops 50 are transferred to the data bus. The steps of this test phase are the following: 
     During a test phase, the operation of decoder 40 and buffer 42 are checked in particular. The steps of this test phase are: 
     establish the write mode and present on the address bus an address selecting register 46, whereby flip-flops 50 are reset; 
     issue an address to activate (setting to 0) a CS line, whereby a &#34;1&#34; is written in the corresponding flip-flop 50; 
     establish the read mode and issue an address to again select register 46, whereby the contents of flip-flops 50 are transferred to the data bus; and 
     compare the word then present on the data bus to an expected word. 
     During its normal operation, decoder 40 can only activate one CS line at a time. During the test phase, the functions of decoder 40 are reprogrammed so that all the possible combinations of the states of the CS lines can be tried. Thus, it is possible to deduce from the test results the failures that have previously been described for the input/output circuit tests. 
     During the test phase, while the CS lines are activated, data are preferably not supplied to the data bus in order to avoid actions of peripheral devices. Therefore, the R/W line is set to &#34;1&#34; (read mode). 
     To enhance this test, an additional register can be added to test the connection to the data bus as it is done for the input/output circuits. 
     Thus, an address decoder circuit can be individually tested and many failures localized in this circuit can be detected. 
     Connections of the CS outputs to the surrounding circuits are not specifically tested. However, by carrying out the above test phase, defects in these connections or peripheral devices associated with these connections are determined by detecting if the associated peripheral devices do not respond to an activation. 
     FIG. 6 is a diagram of an embodiment of the invention applied to an interrupt priority level decoder circuit 25 of the type illustrated in FIG. 2. Circuit 25 comprises interrupt request lines IRQ connected to input buffer 60, having outputs selectively coupled to a programmable decoder 62 via AND gates 74. The outputs of decoder 62 are coupled via OR gates 72 to an output inverting buffer 64 which supplies to previously mentioned output lines IPL a multibit interrupt priority level coded in inverted binary; in the example of FIG. 6 there are three IPL lines coded with priority levels between 0 and 7. 
     Programmable decoder 62 is programmed in response to signals in programming registers 66, one of which is provided for each IRQ line. Registers 66 also respond to signals from the data and control buses. Address decoder 68 responds to previously mentioned low address lines AL and to chip select CS line of circuit 25 to enable each of the registers 66 through internal chip-select lines CSi. The use of these registers is conventional and is not described. 
     According to the invention, decoder circuit 25 comprises an additional test register 70 connected to be responsive to data and control buses D, C. Register 70 comprises a first set of latches having outputs feeding the IPL lines at the input of buffer 64 via OR gates 72, and a second set of latches, having outputs feeding the IRQ lines at the output of buffer 60 via AND gates 74. Words written to register 70 are directly, i.e. immediately, coupled to outputs of the register. Address decoder 68 is modified to enable selection of register 70 through an additional internal chip-select line CSi. Address lines AL coupled to the input of decoder 68 are, in most cases, sufficient for selecting the additional register 70. Test register 70 is used during two test phases, a first for testing the connections of lines IPL and a second for testing whether decoder 62 is correctly functioning. It also is convenient during the second test phase to test whether input buffer 60 is correctly functioning. To this end, AND gates, similar to gates 74, are preferably connected to input of buffer 60; however this is not possible with the present technologies. 
     Assume that, during these test phases, no peripheral device requests an interrupt, i.e. the IRQ lines all stay at &#34;1&#34; and the outputs of decoder 62 all stay at 
     The first test phase involves decoder 62 simulating the provision of priority levels, which is performed as follows. Test words corresponding to priority levels are written in the first set of latches of register 70. These words are simultaneously supplied to the inputs of buffer 64 through OR gates 72. A check is then made as to whether the information now on the IPL lines corresponds to the test word. The check is performed in the same way for all the priority levels. At the end of this first test phase, a &#34;0&#34; is written in the latches of the first set of latches. 
     The second test phase involves simulating interrupt requests on lines IRQ, which is performed as follows. Test words comprising only one bit at &#34;0&#34; (which corresponds to one interrupt request) are written in the second set of latches of register 70. These test words are simultaneously supplied to lines IRQ through AND-gates 74. A check is made as to whether the information then present at the IPL outputs is effectively a priority level corresponding to the test word. The test continues this way until an interrupt request has been simulated on all IRQ lines. At the end of this second phase, a &#34;1&#34; is written in the latches of the second set of latches. 
     In the case represented in FIG. 6, there are not enough IRQ lines to simulate all the possible priority levels. Hence, during the second test phase, decoder 62 is reprogrammed through register 66 to supply the missing priority levels to lines IRQ. 
     Connections to the data bus of decoder circuit 25 can also be tested by providing an additional test register for the input/output circuits. 
     The connections of lines IRQ to the surrounding circuits are not tested. However, by carrying out the two preceding test phases, defects in these connections are determined by detecting whether or not the computer system does not or does respond when the peripheral devices associated with these connections are used. 
     The invention can be adapted with minor modifications by adding additional registers to Application Specific Integrated Circuits (ASIC&#39;s); the additional registers occupy only a small amount of space and are connected to existing connections. 
     The invention has been described by referring to the testing of microprocessor boards, but it is also possible to independently test each of the circuits of the board, for example during manufacturing thereof. 
     Many alternatives and modifications of the present invention will appear to those skilled in the art, especially in what concerns the type and the use of the test registers.