System for checking comparison check function of information processing apparatus
This application is a continuation of application Ser. No. 07/531,086, filed May 31, 1990, now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     The present invention generally relates to check systems, and more particularly to a check system for checking a comparison check function of an information processing apparatus such as a work station which is provided with dual microprocessors to improve reliability. 
     FIG. 1 generally shows a conventional information processing apparatus 510. The information processing apparatus 510 includes dual microprocessing units (MPUs) 511 and 513, a comparison check circuit 515 for comparing outputs of the MPUs 511 and 513, a memory 517 which stores programs for carrying out processes of the information processing apparatus 510, a bus controller 519 for controlling a bus 523, and an input/output channel 521 which controls input/output of data. Although not shown in FIG. 1, a cathode ray tube (CRT) display device for displaying data, a keyboard for entering data, a memory device for storing data and the like are coupled to the input/output channel 521. 
     As a part of the RAS mechanism, the information processing apparatus 510 is provided with two identical MPUs 511 and 513. The MPUs 511 and 513 independently execute the same program which is stored in the memory 517 in response to common data which is entered. A processed result including an address output from the MPU 511 and a processed result including an address output from the MPU 513 are supplied to the comparison check circuit 515. The comparison check circuit 515 compares the two processed results from the MPUs 511 and 513 and generates a warning when the two processed results differ, so as to interrupt the process of the information processing apparatus 510. It is possible to detect a fault in the MPUs 511 and 513 based on the warning generated from the comparison check circuit 515. 
     However, the MPUs 511 and 513 which are installed in the conventional information processing apparatus carry out identical operations. For this reason, the MPUs 511 and 513 output identical processed results and there is no means of checking the comparison check function of the information processing apparatus 510. 
     The checking of the comparison check function is made before the MPUs 511 and 513 are installed in the information processing apparatus 510. Alternatively, a pseudo error generation signal is supplied to the comparison check circuit 515 as a substitute for checking the comparison check function after the MPUs 511 and 513 are installed in the information processing apparatus 510. But in any case, there is a problem in that there is no means of accurately checking the comparison check function after the MPUs 511 and 513 are installed in the information processing apparatus 510. 
     SUMMARY OF THE INVENTION 
     Accordingly, it is a general object of the present invention to provide a novel and useful check system in which the problems described above are eliminated. 
     Another and more specific object of the present invention is to provide a check system for checking a comparison check function of an information processing apparatus which includes first and second microprocessors, comprising check means for supplying mutually different data to the first and second microprocessors when checking the comparison check function, and comparing means for comparing data which are output from the first and second microprocessors in response to data supplied to the first and second microprocessors, where the comparing means generates an alarm when the data output from the first and second microprocessors are mutually different, so that a correct comparison check function is indicated by the alarm when checking the comparison check function. According to the check system of the present invention, it is possible to accurately check the comparison check function even where the first and second microprocessors are installed in the information processing apparatus. 
     Other objects and further features of the present invention will be apparent from the following detailed description when read in conjunction with the accompanying drawings. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     FIG. 1 is a system block diagram showing an example of a conventional information processing apparatus provided with dual microprocessors; 
     FIG. 2 is a system block diagram for explaining an operating principle of a check system according to the present invention; 
     FIG. 3 is a system block diagram of an embodiment of the check system according to the present invention; 
     FIG. 4 is a system block diagram of an embodiment of a check processing part 225 of a comparing part 221 shown in FIG. 3. 
     FIG. 5 is a system block diagram of an embodiment of a comparison check circuit 223 of the comparing part 221 shown in FIG. 3 together with a part of the check processing part 225; 
     FIG. 6 is a system block diagram of an embodiment of a comprising part 221 shown in FIG. 3; and 
     FIG. 7 is a register map for explaining an operation of the comparing part shown in FIG. 6. 
    
    
     DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     First, a description will be given of an operating principle of a check system according to the present invention, by referring to FIG. 2. In FIG. 2, an information processing apparatus includes two microprocessors 111 and 113, a check means 115 and a comparing means 117. The two microprocessors 111 and 113 carry out identical operations, and one is used for normal operation while the other is used for making the operation check. The check means 115 supplies mutually different data to the two microprocessors 111 and 113. The comparing means 117 compares outputs of the two microprocessors 111 and 113 with respect to the data from the check means 115. Accordingly, mutually different data are output from the two microprocessors 111 and 113. 
     In other words, the check means 115 supplies the mutually different data to the two microprocessors 111 and 113 which execute the same program, and the comparing means 117 compares the outputs of the two microprocessors 111 and 113 to detect that mutually different data are output from the two microprocessors 111 and 113. Using this method, it is possible to check the operation of the comparing means 117. 
     Next, a description will be given of an embodiment of the check system according to the present invention, by referring to FIG. 3. In FIG. 3, an information processing apparatus 210 includes dual MPUs 211 and 213, a memory 215, an input/output channel 217, a bus controller 219 and a comparing part 221 which are coupled via a system address bus AB and a system data bus DB. The comparing part 221 includes a comparison check circuit 223 and a check processing part 225. 
     The MPUs 211 and 213 respectively correspond to the microprocessors 111 and 113 shown in FIG. 2. The check processing part 225 corresponds to the check means 115 shown in FIG. 2. In addition, the comparison check circuit 223 corresponds to the comparing means 117 shown in FIG. 2. 
     In FIG. 3, the memory 215 stores programs for carrying out processes of the information processing apparatus 210. The input/output channel 217 controls input/output of data on the system data bus DB, and the bus controller 219 controls a system bus which is made up of the system address bus AB and the system data bus DB. 
     The comparing part 221 checks the operations of the MPUs 211 and 213. The comparison check circuit 223 of the comparing part 221 compares the outputs of the MPUs 211 and 213. On the other hand, the check processing part 225 of the comparing part 221 supplies data to the MPUs 221 and 213 for checking the operation of the comparison check circuit 223. 
     Although not shown in FIG. 3, a CRT display device for displaying data, a keyboard for entering data, a memory device for storing data and the like are coupled to the input/output channel 217. 
     The MPU 211 is used for normal operation, and is coupled to other parts of the information processing apparatus 210 via the system bus. The MPU 213 is used to realize the RAS mechanism. This MPU 213 has a structure identical to that of the MPU 211 and carries out operations identical to those of the MPU 211. 
     FIG. 4 shows an embodiment of the check processing part 225. The check processing part 225 includes three control registers 227, 229 and 231. An access can be made to each of the three control registers 227, 229 and 231 from the MPUs 211 and 213 by making an appropriate address designation. For the sake of convenience, addresses &#34;a&#34;, &#34;b&#34; and &#34;c&#34; are respectively assigned to the three control registers 227, 229 and 231. 
     The control registers 227 and 229 are both used for writing data therein. On the other hand, the control register 231 is used for reading data therefrom, and is provided as a virtual register for reading mutually different data into the MPUs 211 and 213. 
     FIG. 5 shows an embodiment of the comparison check circuit 223 together with a part of the check processing part 225. The comparison check circuit 223 generally includes a multiplexer 233 and selectors 235 and 237. Although not shown in FIG. 5, outputs of various registers are coupled to an input of the multiplexer 233. The multiplexer 233 selects an output of one of the various registers and supplies this output to one input terminal of each of the selectors 235 and 237. The output of the control register 227 is supplied to the other input terminal of the selector 235, and the output of the control register 229 is supplied to the other input terminal of the selector 237. 
     An output of the selector 235 is coupled to the MPU 211, while an output of the selector 237 is coupled to the MPU 213. The selection operation of the selectors 235 and 237 is controlled by a read signal which is output from the MPU 211 when the MPU 211 makes a read operation using the control register 231. 
     During normal operation, the output of the multiplexer 233 is selected by the selectors 235 and 237. Hence, identical data are supplied to the MPUs 211 and 213 from the respective selectors 235 and 237. 
     On the other hand, when the MPUs 211 and 213 make a read operation using the control register 231, the selectors 235 and 237 supply mutually different data to the corresponding MPUs 211 and 213. 
     When the MPUs 211 and 213 designate the address &#34;c&#34; and make the read operation, the read signal is supplied to the selectors 235 and 237. The selector 235 supplies the data from the control register 227 to the MPU 211 when the read signal is received. Similarly, the selector 237 supplies the data from the control register 229 to the MPU 213 when the read signal is received. 
     Next, a description will be given of the operation of the information processing apparatus 210 as it relates to the comparison check circuit 223. For example, the MPU 213 executes a test program stored in the memory 215 so as to carry out the following check operation. 
     First, the MPUs 211 and 213 designate the address &#34;a&#34; of the control register 227 and write a predetermined data A. Then, the MPUs 211 and 213 designate the address &#34;b&#34; of the control register 229 and write another data B which is different from the predetermined data A. 
     When the address &#34;c&#34; of the control register 231 is designated and the MPUs 211 and 213 make the read operation after writing the mutually different data A and B to the control registers 227 and 229, the data A stored in the control register 227 is read into the MPU 211 while the data B stored in the control register 229 is read into the MPU 213. 
     The MPUs 211 and 213 carry out the same process based on the mutually different data A and B read therein. Processed results from the MPUs 211 and 213 are supplied to the comparison check circuit 223. 
     Because the data A and B supplied to the MPUs 211 and 213 are mutually different, mutually different processed results (outputs) are supplied to the comparison check circuit 223. 
     In a case where the comparison check circuit 223 is operating correctly, the comparison check circuit 223 generates an alarm because of the mutually different outputs of the MPUs 211 and 213. 
     When the alarm is generated during the normal operation, the operations of the MPUs 211 and 213 are stopped. However, during the check operation of the comparison check circuit 223, the MPUs 211 and 213 continue to execute the test program without stopping the operations thereof. 
     Therefore, when the check processing part 225 supplies mutually different data to the MPUs 211 and 213, the MPUs 211 and 213 supply mutually different data to the comparison check circuit 223. Hence, it is possible to test the operation of the comparison check circuit 223. 
     Next, a more detailed description will be given of an embodiment of the comparing part 221 shown in FIG. 3, by referring to FIG. 6. 
     In FIG. 6, the comparison check circuit 233 generally includes an address comparing circuit 21 and a data comparing circuit 22. The address comparing circuit 21 is coupled to the system address bus AB and a check address bus CAB, and the data comparing circuit 22 is coupled to the system data bus DB and a check data bus CDB. The address comparing circuit 21 constantly compares the addresses from the buses AB and CAB when the MPUs 211 and 213 obtain the right to use the system bus. The data comparing circuit 22 constantly compares the data from the buses DB and CDB when the MPUs 211 and 213 obtain the right to use the system bus and make a write operation. 
     In FIG. 6, the check processing part 225 generally includes an address decoder 31, multiplexers 32 and 33, and registers 34 and 35. The registers 34 and 35 respectively correspond to the control registers 227 and 229. The address decoder 31 decodes the address from the system address bus AB. When a write access is made to the register 34 from the MPU 211, the data is set in the register 34 via a path PA. When a write access is made to the register 35 from the MPU 213, the data is set in the register 35 via a path PB. On the other hand, when a read access is made from the MPUs 211 and 213, the data is read from the register 34 via a path Ca and supplied to the MPU 211 while the data is read from the register 35 via a path Cb and supplied to the MPU 213. When making a read access to other units, the data identical to the data on the system data bus DB is also read into the MPU 213 via a path P1. When making a read access to an internal register within the same unit, identical data are read into the MPUs 211 and 213 via a path P2. 
     FIG. 7 shows a register map within the check processing part 225 shown in FIG. 6. Thirty-two bits are provided at each of the addresses &#34;a&#34;, &#34;b&#34; and &#34;c&#34;. As described before, the data set at the address &#34;a&#34; (control register 227) is the data which is to be read into the MPU 211 when the read access is made to the address &#34;c&#34; (control register 231) from the MPU 211. Similarly, the data set at the address &#34;b&#34; (control register 229) is the data which is to be read into the MPU 213 when the read access is made to the address &#34;c&#34; from the MPU 213. The address &#34;c&#34; (control register 231) is provided to read mutually different data into the MPUs 211 and 213. 
     The check sequence is as follows. The diagnostic data A is written into the address &#34;a&#34;, and the diagnostic data B is written into the address &#34;b&#34;. Up to this point in time, the operations of the MPUs 211 and 213 are identical. Then, the MPUs 211 and 213 make a read access to the address &#34;c&#34; and read mutually different data A and B into the respective internal registers R00. The MPUs 211 and 213 carry out identical operations on the mutually different diagnostic data A and B. Next, when the MPUs 211 and 213 make a write operation to write the contents of the respective internal registers R00, the data comparing circuit 22 shown in FIG. 6 should generate an error signal. Thus, the data comparing circuit 22 can be checked to ensure its proper operation. Similarly, when an access is made using the contents of the internal registers R00 of the MPUs 211 and 213 as addresses, the address comparing circuit 21 shown in FIG. 6 should generate an error signal. Thus, the address comparing circuit 21 can be checked to ensure its proper operation. After the difference in the contents of the internal registers R00 of the MPUs 211 and 213 is eliminated such as by reading the data from an address other than the address &#34;c&#34;, the MPUs 211 and 213 can continue to carry out identical operations. 
     As a modification of this embodiment, it is possible to provide thirty-two bits at only the address &#34;a&#34; and provide only five bits at the address &#34;b&#34;. When the read access is made to the address &#34;c&#34; from the MPU 211, the 32-bit data stored at the address &#34;a&#34; is read out and supplied to the MPU 211. On the other hand, when the read access is made to the address &#34;c&#34; from the MPU 213, one of the 32 bits of the data stored at the address &#34;a&#34; is inverted depending on the bit location indicated by the 5-bit data stored at the address &#34;b&#34; and supplied to the MPU 213. According to this modification, it is possible to reduce the number of bits of the register 229. 
     In the described embodiment, the control registers 227 and 229 are provided to supply the mutually different data to the MPUs 211 and 213. However, when supplying mutually different fixed data to the MPUs 211 and 213, it is possible to simplify the system structure by making a connection to a power source line or a ground line. 
     Further, the present invention is not limited to these embodiments, but various variations and modifications may be made without departing from the scope of the present invention.