Abstract:
A redundant maintenance architecture for general purpose, digital computer systems. The architecture has both redundant maintenance controllers and redundant maintenance interfaces. This invention provides uninterrupted maintenance control over a distributed system despite any single hardware failure. This is accomplished by providing a low level hardware fault detection and correction apparatus which does not require expensive test hardware or software. The low level hardware apparatus detects faults within a primary maintenance controller or interface and transfer control of the maintenance functions of the computer system to a secondary maintenance controller and interface. All of this is accomplished on-the-fly and does not require that the computer system be switched into a test mode or otherwise interrupted from normal operation.

Description:
CROSS REFERENCE TO CO-PENDING APPLICATIONS 
     Commonly assigned U.S. patent application Ser. No. 08/000,290, filed Jan. 4, 1993, and entitled &#34;SITE CONFIGURATION MANAGEMENT SYSTEM&#34; is incorporated herein by reference. Commonly assigned U.S. patent application Ser. No. 08/173,408, filed Dec. 23, 1993, and entitled &#34;MICRO-ENGINE DIALOGUE INTERFACE&#34; is also incorporated herein by reference. 
    
    
     CROSS REFERENCE TO CO-PENDING APPLICATIONS 
     Commonly assigned U.S. patent application Ser. No. 08/000,290, filed Jan. 4, 1993, and entitled &#34;SITE CONFIGURATION MANAGEMENT SYSTEM&#34; is incorporated herein by reference. Commonly assigned U.S. patent application Ser. No. 08/173,408, filed Dec. 23, 1993, and entitled &#34;MICRO-ENGINE DIALOGUE INTERFACE&#34; is also incorporated herein by reference. 
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The present invention is generally related to general purpose, stored program, digital computers and more particularly relates to computer architectures having maintenance paths to improve system reliability. 
     2. Description of the Prior Art 
     A key element in the design of today&#39;s digital data processing equipment is the factor of testability. In the past twenty years, the complexity of integrated circuits and computer systems has increased exponentially with time. As a result, current computer systems often have internal circuitry which cannot be controlled or observed from accessible I/O pins. 
     One technique for improving the testability of today&#39;s computer systems is to provide maintenance circuitry within the computer system which allows the internal circuity to be controlled and observed. An examples of this technique is a Serial SCAN architecture. SCAN providing serial scan registers and serial scan paths within the design. These components allow the internal nodes to become controllable and observable via a plurality of serial scan input ports and a plurality of serial scan output port. 
     A typical method of testing a system which employs SCAN is to use computer generated serial scan test vectors. The scan registers are first placed in a &#34;test&#34; mode. Then, a serial scan vector is serially clocked into the scan registers via a scan-data-in port. The scan registers are then switched into functional mode. At this point, the data contained in the registers trickle through the logic between registers until they reach the input of a receiving scan register. The test controller then clocks the functional clock once capturing the data that just trickled through said logic. The resulting contents are serially clocked out via a scan-data-out port and compared to an expected result. This process is repeated until a predetermined fault coverage is reached. This process is carried out via high level interfaces connected to external test equipment, controllers or even operating systems. Therefore, costly test hardware and/or software is required to utilize this methodology. 
     The SCAN methodology can be coupled to a Built-in-Self-Test (BIST) algorithm which allows the computer system to perform self tests. However, BIST algorithms required either a special BIST processor within the design or the use of external test hardware to perform the tests. In addition, BIST requires that the computer system be placed in a &#34;test&#34; mode thereby allowing the registers within the design to be serially scanned. 
     Finally, the SCAN and/or BIST techniques can be combined with self correcting algorithms. That is, once a fault is detected, algorithms can be used to isolate which devices or interconnect lines within the system are faulty. This allows the system designer to design in redundant components which can replace the detected faulty components. However, systems which employ this methodology require the backup components to be activated through higher level interfaces, controllers or even operating systems. Therefore, costly test hardware and/or software is required to utilize this methodology. In addition, these systems require that the system be taken out of the functional mode and placed into a &#34;test&#34; mode in order to detect any faults and to replace any faulty components. This results in a period of time where the system is functionally inoperable. 
     Finally, some computer systems employ maintenance architectures which provide maintenance processors and maintenance interfaces. The maintenance processors are responsible for directing all maintenance activity within the computer system. The maintenance interfaces are used to direct the maintenance commands from the maintenance processors to the various computer components. The typical mode for testing the maintenance processor and maintenance interfaces would be through scan vectors as discussed above. 
     SUMMARY OF THE INVENTION 
     The present invention overcomes the disadvantages found in the prior art by providing a low level hardware orientated fault detector which operates continuously even when in functional mode. In addition, a plurality of redundant components are provided within the system which can be activated by the low level hardware orientated fault detector. The advantages of the present invention include allowing the detection and replacement of a faulty component or interface without requiring mostly supporting hardware and/or software. Furthermore, because of the redundant components, redundant interface lines and the low level hardware detector, the system can replace a faulty set of components on-the-fly and therefore no system down time is experienced. 
     The preferred embodiment of the present invention was designed for a computer system comprising a primary maintenance processor (NIM), a secondary maintenance processor, a primary maintenance interface (DBI interface), a secondary maintenance interface, and one maintenance chip (MNT1) per XPC module (two XPC modules per backpanel). The maintenance chips are connected together via the primary and secondary maintenance interfaces in a daisy chain fashion. The maintenance chip (MNT1) resides on the Clk/Maint card within the XPC. The primary maintenance processor (NIM) and the primary maintenance interface (DBI interface) are active as long as no failure in the maintenance path is detected. 
     If a failure is detected, the primary maintenance processor and the primary interface are deactivated and replaced by the secondary maintenance processor (NIM) and the secondary interface (DBI interface). This is done on-the-fly via a low level hardware detection circuit. Although the maintenance processors (NIMs) can be coupled to external computer hardware through a 802.5 token ring LAN interface, the external hardware is not required for minimum maintenance functions. Only the maintenance processor (NIM) is required for minimum maintenance, which includes system fault detection and recovery. Therefore, the present invention provides a mechanism to switch to a backup maintenance processor without a high level user interface or controller. 
     The preferred embodiment accomplishes this by providing a low level hardware circuit which is implemented in each maintenance controller. The low level hardware circuit comprises a NIM switch timer circuit which is reset periodically with a low level polling routine. If the primary maintenance controller (NIM) or the primary maintenance path (DBI) fail, the timer will expire and the secondary maintenance controller and secondary maintenance interface will be activated and will replace the primary components. The primary NIM and primary DBI interface are ignored by all system elements thereafter (or until a computer technician can repair the damaged component). The preferred embodiment also checks to ensure that the clock signals within the maintenance controller and maintenance interface are active. 
     Because the preferred embodiment of the present invention comprises redundant maintenance interface paths and redundant maintenance controllers, this invention provides uninterrupted maintenance control over a distributed system despite any single hardware failure. In addition, this invention provides a method for fixing any broken maintenance path without interrupting maintenance functions in the rest of the system. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     Other objects of the present invention and many of the attendant advantages of the present invention will be readily appreciated as the same becomes better understood by reference to the following detailed description when considered in connection with the accompanying drawings, in which like reference numerals designate like parts throughout the figures thereof and wherein: 
     FIG. 1 is a block diagram of the maintenance controller (NIM) interconnections to the XPC modules; 
     FIG. 2 is a block diagram of the maintenance chip; 
     FIG. 3 is a block diagram of the preferred embodiment of the low level hardware NIM switch circuit. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENT 
     FIG. 1 is a block diagram of the maintenance controller (NIM) interconnections to the XPC modules. The preferred embodiment of the present invention was designed for the Extended Processor Complex (XPC). Further details concerning the XPC are available in the above referenced and commonly assigned U.S. Patent Applications entitled &#34;MICRO-ENGINE DIALOGUE INTERFACE&#34; and &#34;SITE CONFIGURATION MANAGEMENT SYSTEM&#34;. 
     The maintenance system for the XPC consists of primary and secondary maintenance processors (NIMs), primary and secondary maintenance interfaces (DBI interfaces), and one maintenance chip (MNT1) per XPC module (two XPC modules per back panel). NIM module-0 89 is the primary maintenance processor while NIM module-1 91 is the secondary maintenance processor. During normal operation NIM module-0 89 is in control of all maintenance functions. When a fault is detected in NIM module-0 89 or any of the primary maintenance interfaces, control is given to NIM module-1 91. 
     The XPC system consists of a plurality of back panel subcircuits. FIG. 1 illustrates the maintenance interfaces for backpanel-0 through backpanel-7. Each back panel contains up to two XPC modules. The first XPC module within a backpanel is in a different power domain than is the second XPC module. Each XPC module also has a clock/maintenance card. Each clock/maintenance card contains one maintenance chip (MNT1). 
     Backpanel-0 1 is coupled to NIM module-0 89 via primary diagnostic bus interface (DBI) 77. Backpanel-0 1 is further coupled to backpanel-2 3 via primary DBI interface 17. Backpanel-2 3 is coupled to backpanel-4 5 via primary DBI interface 19. Backpanel-4 5 is coupled to backpanel-6 7 via primary DBI interface 21. Note that backpanel-0 through backpanel-6 are connected in a daisy chain fashion. Backpanel-1 9 is coupled to NIM module-0 89 via primary DBI interface 79. Backpanel-1 9 is further coupled to backpanel-3 11 via primary DBI interface 31. Backpanel-5 13 is coupled to backpanel-3 11 via primary DBI interface 35. Backpanel-7 15 is coupled to backpanel-5 13 via primary DBI interface 39. Note that backpanel-1 9, backpanel-3 11, backpanel-5 13 and backpanel-7 15 are coupled together in a daisy chain fashion. Backpanel-0 1 is coupled to NIM module-1 91 via back-up DBI interface 73. Backpanel-2 3 is coupled to backpanel-0 1 via back-up DBI interface 29. Backpanel-4 5 is coupled to backpanel-2 3 via back-up DBI interface 33. Backpanel-6 7 is coupled to backpanel-4 5 via back-up DBI interface 37. Note that backpanel-0 1, backpanel-2 3, backpanel-4 5 and backpanel-6 7 are coupled in a daisy chain fashion. Backpanel-1 9 is coupled to NIM module-1 91 via back-up DBI interface 75. Backpanel-3 11 is coupled to backpanel-1 9 via back-up DBI interface 23. Backpanel-5 13 is coupled to backpanel-3 11 via back-up DBI interface 25. Finally, backpanel-7 15 is coupled to backpanel-5 13 via back-up DBI interface 27. Note that backpanel-1 9, backpanel-3 11, backpanel-5 13 and backpanel-7 15 are coupled together in a daisy chain fashion. 
     Primary DBI interface 81 is coupled to backpanels 8, 10, 12 and 14 in a daisy chain manner (not shown). Likewise, primary DBI interface 83 is coupled to backpanels 9, 11, 13 and 15 in a daisy chain manner (not shown). Back-up DBI interface 85 is coupled to backpanel 8, 10, 12 and 14 in a daisy chain manner (not shown). Finally, back-up DBI interface 87 is coupled to backpanel 9, 11, 13 and 15 in a daisy chain manner (not shown). 
     Clock/maintenance control signal interfaces 41, 43, 49, 53, 57, 61, 65 and 69 are controlling when NIM module-0 89 is active. Clock/maintenance control interfaces 45, 47, 51, 55, 59, 63, 67 and 71 are controlling when NIM module-1 91 is active. 
     During normal operation NIM module-0 89 controls backpanel-0 1, backpanel-2 3, backpanel-4 5 and backpanel-6 7 via primary DBI interfaces 77, 17, 19 and 21. In addition NIM module-0 89 further controls backpanel-1 9, backpanel-3 11, backpanel-5 13 and backpanel-7 15 via primary DBI interfaces 79, 31, 35 and 39. If a failure is detected in either NIM module-0 89 or any of the primary DBI interfaces, then a special low level hardware circuit (see FIG. 3) switches control from NIM module-0 89 to NIM module-1 91. All system elements ignore all signals emanating from NIM module-0 89 thereafter. 
     Note that after control is switched from the primary NIM to the secondary NIM, the defective XPC module may be powered down separately from the rest of the system, because it is no longer part of the daisy chain. That is, it is on a separate finger extending from its partner XPC module in the same back panel. This allows the broken maintenance path to be fixed, while no loss of maintenance is observed in the rest of the system. After the detected fault is fixed (e.g. by a technician), the fixed XPC module can be brought back into the system and the primary NIM can either resume control or wait in a &#34;stand-by&#34; mode until a failure occurs in the &#34;new&#34; primary NIM. 
     In the preferred mode of the present invention, NIM module-0 89 and NIM module-1 91 can be coupled to a 802.5 LAN token ring via wires 99 and 100, respectively. The LAN token ring 93 can be coupled to a PC console 95 via interface 97. The NIM modules have the capability to accept commands from the PC console. In fact, more robust testing can be accomplished with the PC console because of the additional hardware and software present. It is anticipated that the PC console will be used for performing periodic robust testing of the entire system. The NIM modules would be responsible for monitoring and correcting system failures which occur between these periodic robust tests. 
     FIG. 2 is a block diagram of the maintenance chip (MNT1). There is one maintenance chip per XPC module and therefore two maintenance chips per back panel. The maintenance chip is located on the clock/maintenance card. There are two clock/maintenance cards per back panel (see FIG. 1). The maintenance chips are coupled directly to the DBI interfaces and provide the interface between the NIM modules and the XPC circuitry. 
     In the event of a DBI interface failure, all of the XPC modules at or below the failure level will be inactive from a maintenance perspective because of the daisy chain configuration. If a failure is detected, the back-up NIM takes control of all MNT1s in the system (the actual NIM switch mechanism and associated logic is discussed in FIG. 3). The maintenance chip (MNT1) control logic responds only to the back-up NIM and ignores all commands from the primary NIM thereafter. The primary DBI interface and the secondary DBI interface are incorporated to insure that the back-up path would be functional if the primary interface failed. FIG. 2 is block diagram of the DBI interfaces and associated control logic within the maintenance chip (MNT1) chip. 
     DBI interface 110 receives as inputs, Same Power Group NIM Interface 122 and Other Power Group NIM interface 124. DBI interface 110 forces outputs DBI Interface Back Panel Cross Over 126 and DBI Interface Next Back Panel 128. DBI Selection and Register Address 112 receives as input DBI Address 120. DBI Selection and Register Address 112 is further coupled to DBI interface 110 via connections 130 and 132. DBI Selection and Register Address 112 determines if the particular maintenance function is intended for this particular XPC module by comparing DBI Address 120 to a predetermined XPC module address. If the addresses match then the maintenance function is intended for this XPC module. Register Control 116 is coupled to DBI interface 110 via wires 134 and 136. Register Control 116 is further coupled to DBI Selection and Register Address 112 via connection 138. The &#34;SEL&#34; input of Register Control 116 selects the active DBI interface. Register control 116 delivers both data and control bits to DBI Registers 118 via interfaces 142 and 144, respectively. DBI Registers 118 receives an address from DBI Selection and Register 112 via interface 140. DBI Registers 118 drives all maintenance functions to the XPC module via interfaces 146, 148, 150, 152 and 154. 
     FIG. 3 is block diagram of the preferred embodiment of the low level NIM switch circuit. Timer 162 is coupled to a 100 nanosecond clock signal via interface 186. In addition, Timer 162 has a reset pin which is coupled to three input or-gate 172 via interface 208. Three input or-gate 172 is coupled to the &#34;1&#34; and &#34;3&#34; output of decoder 164 via interface 212 and interface 210, respectively. Or-gate 172 provides a low level polling routine for determining if the primary NIM or maintenance path have failed. If or-gate 172 detects a failure then Timer 162 expires. Or-gate 172 is further coupled to inverter 170. Inverter 170 is coupled to the output of enable NIM timer flip-flop 166. The &#34;enable&#34; input pin of Timer 162 is also coupled to the output of the Enable NIM Timer flip-flop 166 via interface 206. Enable NIM Timer flip-flop 166 is used to disable NIM time-outs during system initiation or when the NIM is being fixed. Decoder 164 is coupled to bit ten of DBI Write Data 188 via interface 190. Decoder 164 is also coupled to bit eleven of DBI write Data 188 via interface 192. Finally, Decoder 164 is enabled by Write Register 1 via interface 194. The &#34;data&#34; input of Enable NIM Timer flip-flop 166 is coupled to bit nine of DBI Write Data 188 via interface 196. The &#34;enable&#34; input of Enable NIM Timer flip-flop 166 is coupled to and-gate 168 via interface 198. And-gate 168 is coupled to bit eight of DBI Write Data 188 via interface 200 and further coupled to Write Register 1 via interface 202. 
     Clock Error Detect 160 is coupled to a 100 nanosecond clock in the present power domain via interface 186 and further coupled to a clock from the other power group via interface 184. Therefore, this hardware detects a problem if the timer in the other power group is not functioning by comparing the clocks from both power domains. If the clocks do not compare, the timer from the MNT1 in the other power group may not be functioning and the NIM time-out interrupt will be activated. Or-gate 174 is coupled to the output of Clock Error Detect 160 via interface 216 and further coupled to the output of Timer 162 via interface 218. And-gate 176 is coupled to the time-out from MNT1 in the other power domain via interface 182 and further coupled to the output of or-gate 174 via interface 220. Therefore, if Timer 162 expires along with the timer from the MNT1 in the XPC module in the same back panel, the NIM wake-up interrupt will be activated. The data input of NIM Time-out Service Request Lock/Clear 178 is coupled to and-gate 176 via interface 228. In addition, the &#34;clear&#34; input of NIM Time-out Service Request and Lock/Clear 178 is coupled to the number &#34;3&#34; output of decoder 164 via interface 210. Finally, the output of NIM Time-out Service Request and Lock/Clear 178 is fed back to a lock input via interface 222. Therefore, if and-gate 176 presents a one to the data input of NIM Time-out Service Request and Lock/Clear 178, indicating that there is a fault, then the output of NIM Time-out Service Request and Lock/Clear 178 will also go to a one and will feed back to the &#34;lock&#34; input via interface 222 and will lock the output to that value. The only way to clear the locked value is by forcing bit ten and bit eleven of DBI Write Data 188 to a 1--1 state, thus causing decoder 164 to present a one on interface 210 and therefore to the &#34;clear&#34; input of NIM Time-out Service Request and Lock/Clear 178. 
     The data input of NIM Master flip-flop 180 is coupled to decoder 164 via interface 214. The &#34;enable&#34; input of NIM Master flip-flop 180 is coupled to Address Register bit 0 via interface 204. The output of NIM Master flip-flop 180 is coupled to DBI logic via interface 226. When the back-up NIM is awakened, it must execute a special sequence to take control of each MNT1 within the system. NIM Master flip-flop 180 must be written by setting Address Register bit 0 to a value of one. In addition, bit ten and bit eleven of DBI Write Data 188 must be set such that output &#34;2&#34; of Decoder 164 is set high. After this sequence, the XPC module will only accept commands from the backup NIM, ignoring anything from the failed primary NIM. 
     Note that the maintenance chip (MNT1) service request logic routes only the special NIM wake-up interrupt to the back-up NIM. All other interrupts are routed to the primary NIM until the NIM Master flip-flop 180 is set. When this occurs, all interrupts except the NIM time-out interrupt are routed to the back-up NIM. 
     There is also a PC console command for the NIM switch. This command is used when the PC console is active and attached to the system. 
     Having thus described the preferred embodiments of the present invention, those of skill in the art will readily appreciate that yet other embodiments may be made and used within the scope of the claims hereto attached.