Abstract:
In a system wherein a system master (11) communicates with a plurality of subsystems (13, 25, 27, 29), each subsystem (13, 25, 27, 29) is associated with a unique reset address and a reset circuit which recognizes that reset address and generates a reset signal. Each reset circuit includes an address decoder (15) for decoding the reset address to produce a signal which closes a logic gate switch (19). The logic gate switch (19) is repeatedly closed in response to repeated assertions of the address to successively discharge the voltage on a capacitor (C). When the capacitor voltage is discharged to a selected level, a buffer level detector circuit (23) generates the reset signal.

Description:
This is a continuation of application Ser. No. 610,727, filed Nov. 8, 1990, now abandoned which was a continuation of application Ser. No. 269,931, filed Nov. 10, 1988 now abandoned. 
    
    
     BACKGROUND OF THE INVENTION 
     1. Field of the Invention 
     The subject invention relates generally to computer systems, and more particularly to a method of resetting subsystems connected to a system master computer in response to error conditions, using address dependent RC discharge circuitry. 
     2. Description of Related Art 
     Most computer systems and subsystems rely on a power up reset, typically timed by an RC network, to begin an orderly execution of their primary tasks with well-known initial conditions. When an error condition (fault) occurs from which the system has no way of recovering, the faulty system or its faulty subsystem will completely stop execution of its primary task, or worse, begin to behave in an unpredictable manner. 
     There are two methods in which most systems handle such faults. According to one method, task execution is halted and an error message identifying the faulty subsystem is transmitted to the system operator. The system operator may respond by powering down the entire system and then powering it up again to allow the system master and its subsystems to restart in an orderly manner. Alternatively, the system operator may respond by manually pushing a mechanical switch located on the faulty subsystem, which discharges an RC-timing network, thus simulating a power up reset on the faulty subsystem. After resetting the faulty subsystem, the operator commands the system master to continue task execution. In the second method, the system master detects the fault condition, for example, through an error message or time-out, and communicates a reset command to the faulty subsystem. The faulty subsystem then executes the command and resets itself. 
     There are problems with the above recovery processes. In the first method, intervention by a human operator is needed, making the system less than fully automatic and slow to recover from a fault condition. Also, powering down the entire system forces all the subsystems to reset, which unnecessarily interrupts subsystems which are operating properly. In the second method, where the system master automatically communicates a recovery command to the faulty subsystem, the faulty subsystem may be unable to interpret the command because of the nature of the subsystem fault. Additionally, in some cases, the second method is not practical because some subsystem microprocessors cannot assert a reset signal to reset themselves and supporting circuitry to a known initial condition. 
     SUMMARY OF THE INVENTION 
     It is therefore an object of the invention to improve computer system fault recovery techniques; 
     It is another object of the invention to minimize system operator attention to system faults; 
     It is another object of the invention to permit one or more particular subsystems at fault to be automatically reset, while other properly operating subsystems continue to perform their assigned tasks; and 
     It is another object of the invention to increase the speed of recovery of a computer system in response to subsystem faults. 
     According to the invention, a system master detects a subsystem fault, for example, through receipt of an error message or detection of a time-out condition, and forces only the faulty subsystem to begin an electronic and software initialization identical to a power-up reset. The other subsystems are left unaffected, still executing their tasks. The selectivity required to reset only the faulty subsystem is achieved by sending out an address signal containing an address recognized only by the faulty subsystem. The address signal is repeatedly sent to the subsystem and is used to cause a stored voltage in the subsystem to move toward a selected value. When the selected value is reached, a reset signal is generated. The preferred method is to discharge a capacitor voltage toward a reset level in response to the address signal. 
    
    
     BRIEF DESCRIPTION OF THE DRAWINGS 
     The just-summarized invention will now be described in detail in conjunction with the drawings, of which: 
     FIG. 1 is a schematic circuit diagram of the preferred embodiment; and 
     FIG. 2 is a waveform diagram illustrating an address strobe according to the preferred embodiment. 
    
    
     DETAILED DESCRIPTION OF THE PREFERRED EMBODIMENTS 
     According to the preferred embodiment of FIG. 1, a system master 11 is connected over a system address bus 12 to a number of subsystems 13, 25, 27, 29. The system master 11 and each subsystem 13, 25, 27, 29 may be, for example, conventional microprocessors. The address bus 12 provides a parallel multibit input to each subsystem 13, 25, 27, 29. 
     The reset circuitry of the first subsystem 13 according to the preferred embodiment is shown in detail in FIG. 1. The remaining subsystems 25, 27, 29 each include reset circuitry configured identically to that of the subsystem 13 in order to achieve reset of the respective subsystems 25, 27, 29. 
     The reset circuitry of the subsystem 13 includes an address decoder 15, a logic gate switch 19, a resistor R ch , a capacitor C, and a buffer level detector integrated circuit 23. The logic gate switch 19 includes a discharge resistance, represented by R dis . 
     The address decoder 15 outputs a signal over an output line 16 to the logic gate switch 19. The address decoder 15 is a conventional digital decoder, which activates the output line 16 in response to a binary reset address code received at its parallel input 18. The address decoder 15 may, and typically will, decode other addresses on the input 18 to activate other functions within the subsystem 13. 
     The output of the logic gate switch 19 is connected to a common node 20 between the resistor R ch  and the capacitance C in order to discharge the capacitance C through the logic gate switch resistance R dis . The terminal of the resistor R ch  opposite the common node 20 is connected to a logic voltage level V 1 , which may be, for example, 5 volts. The terminal of the capacitance C opposite the common node 20 is connected to logic ground 22. The common node 20 is additionally connected to the input of the buffer level detector 23, which outputs a reset signal RESET. 
     In operation of the reset circuitry of the subsystem 13, the system master 11 detects a subsystem fault through receipt of an error message or detection of a time-out, as known in the art. In response, the system master 11 places the reset address of subsystem 13 on the system address bus 12 for selected intervals t dis , producing a strobe waveform on the output 16 of the address decoder 15, as illustrated in FIG. 2. The switch 19 is thus closed during the intervals t dis  in which the reset address for subsystem 13 is asserted on the address bus 12. The periods t dis  during which the switch 19 is closed represent time intervals during which the capacitor C is discharging. Each time the switch 19 is opened, represented by intervals t ch  in FIG. 2, a recharging of the capacitor C occurs. The values of R dis  and R ch  are chosen such that the overall application of the strobe waveform 31 results in a net discharge of the capacitor C. The address strobe waveform 31 of FIG. 2 is applied until the capacitor C is discharged to the point where the buffer 23 interprets its input to be at a valid logic level 0, resulting in the output of the reset signal RESET. 
     The buffer level detector 23 may include a Schmitt trigger input to prevent oscillations which occur as the voltage at the common node 20 slowly transitions through its voltage range. The logic level &#34;0&#34; input to the buffer 23 is typically held asserted for a specified amount of time, determined by the reset requirement of the subsystem 13. 
     The logic gate switch 19 may be an open collector logic gate, a transistor switch, or other suitable switch. An open collector logic gate is typically used, because in most logic systems there are extra, unutilized open collector logic gates available as spares. 
     In overall operation of the system of FIG. 1, each individual subsystem 13, 25, 27, 29 has a unique address which is assigned to the reset command. The system master 11 may then assert each subsystem&#39;s unique reset address. The addressed subsystem 13, 25, 27, 29 decodes the address and asserts the reset signal, as discussed specifically with respect to subsystem 13. The system master 11 accesses each subsystem 13, 25, 27, 29 as it would access any device in its address range. The only difference is that the access is an address-only cycle; no data need be transferred. 
     In a specific embodiment, the system master 11 may be a Motorola MC6809 microprocessor operating at 1 MHz. The subsystems 13, 25, 27, 29 use addresses within the system master&#39;s address range. The subsystems 13, 25, 27, 29 may be any electronic system, including microprocessor-based computer systems. In the preferred embodiment, the subsystems 13, 25, 27, 29 are MC68020 microprocessor-based computers. The values of R ch , R dis , and C are 100 kohms, 6 ohms and 47 microfarads, respectively, the discharge time t dis  is 500 nanoseconds, and the charge time t ch  is 350 nanoseconds. Switch 19 in this embodiment may be a TTL logic gate 74S09, and the buffer integrated circuit 23 may be a TTL logic gate 74HCT14. In such an embodiment, the system master 11 successfully resets a subsystem 13, 25, 27, 29 within 1,279 address strobes. 
     In typical applications of the disclosed reset circuitry, the number of times the system master 11 must assert the subsystem reset address, i.e., the number of address strobes the system master 11 must issue, is a fixed number determined by the values of the RC network, the address bus cycle rate (t dis  and t ch ), and the valid logic threshold voltage of the buffer I.C. 23. The number may be easily determined by a simple trial and error method. 
     A theoretical analysis of the subsystem reset circuitry may be conducted to determine the number N of strobes and the general conditions for ensuring that the capacitor C is discharging. The analysis assumes that the discharge device 19 is an ideal switch to system ground with a switch resistance of R dis , that the buffer 23 has an infinite input impedance, and that the charging resistor R ch  and capacitor C are ideal devices. 
     The general single energy storage device equation for voltage as a function of time is as follows: 
     
         V(t)=GV.sub.s +(V.sub.o -GV.sub.s)e.sup.-t/Tau             (1) 
    
     where: 
     V s  =Voltage input 
     V o  =Initial voltage of the energy storage device 
     G=Gain (attenuation) 
     t=time of charge or discharge 
     Tau=Time Constant of RC network 
     The discharge time for first order response is thus: 
     
         V(t).sub.dis =G.sub.dis V.sub.s +(V.sub.odis -G.sub.dis V.sub.s)e.sup.-t.sbsp.dis.sup./Tau.sbsp.dis               (2) 
    
     where: 
     V s  =Zero in the ideal model. 
     V odis  =Initial voltage on the capacitor instantaneously before the discharge cycle starts. 
     G dis  =R dis  /(R dis  +R ch )--The attenuation of the voltage at the RC node. 
     t dis  =Discharge time defined by the address valid time of the address bus cycle. 
     Tau dis  =R ch  R dis  C/(R dis  +R ch )--Tau is determined by the total resistance and capacitance of the RC network as seen by the discharging voltage. 
     The charge time for first order response is: 
     
         V(t).sub.ch =G.sub.ch V.sub.s +(V.sub.och -G.sub.ch V.sub.s)e.sup.-t.sbsp.ch.sup./R.sbsp.ch.sup.c             (3) 
    
     where: 
     V s  =Voltage applied to charge capacitor. 
     V och  =Initial voltage on capacitor instantaneously before the charge cycle starts. 
     G ch  =1--This is the attenuation to the voltage at the RC node. 
     t ch  =Charge time defined typically by the address not-valid time of the address bus cycle. 
     Tau ch  =R ch  C--Tau is determined by the total resistance and capacitance of the RC network as seen by the charging voltage. 
     The time domain Equations (2) and (3) are only valid alternately during the discharging and charging intervals, respectively, as the switch 19 operates. This alternating lends itself to solution using the following Difference Equations (4)-(7): 
     
         V.sub.ch(k+1) =AV.sub.ch(k) +BV.sub.s                      (4) 
    
     where: 
     A=e -t .sbsp.ch /Tau .sbsp.ch 
     B=G ch  (1-A) 
     
         V.sub.dis(k) =V.sub.ch(k+1)                                (5) 
    
     
         V.sub.dis(k+1) =A&#39;V.sub.dis(k) +B&#39;V.sub.s                  (6) 
    
     where: 
     A&#39;=e -t .sbsp.dis /Tau .sbsp.dis 
     B&#39;=G dis  (1-A&#39;) 
     
         V.sub.ch(k) =V.sub.dis(k+1)                                (7) 
    
     Equations 5 through 7 are computed sequentially, with the results of one determining the input values for the next. Each iteration of Equations 5 through 7 is computed by starting at Equation &#34;5&#34; using the results of &#34;7.&#34; It is important to note that the time difference between the intervals k+1 and k is different for Equations 4 and 6, but it is only the voltages at the beginning of the discharge and charge cycles which are of interest. 
     To find the relationships of R ch , R dis , C, t dis  and t ch  that will ensure that the capacitor C is continually discharging, Equations 4 and 6 are transformed into the z domain: 
     
         V.sub.ch (z)/V.sub.s (z)=B/(z-A)                           (8) 
    
     
         V.sub.dis (z)/V.sub.s (z)=B&#39;/(z-A&#39;)                        (9) 
    
     The discharge response must be faster than the charge response. 
     
         Thus, A&#39;&lt;A                                                 (10) 
    
     or 
     
         e.sup.-t.sbsp.dis.sup./Tau.sbsp.dis &lt;e.sup.-t.sbsp.ch.sup./Tau.sbsp.ch(11) 
    
     Taking the natural log of each side of Equation 11 and substituting in R ch , R dis , and C yields the final solution: 
     
         R.sub.dis &lt;N R.sub.ch                                      (12) 
    
     where the number of strobes N=t dis  /(t ch  -t dis ). 
     In most systems t dis  and t ch  are fixed. It is recommended that R dis  be chosen to be many times less than N R ch . 
     The foregoing discloses a system wherein an address waveform is used to control the value of a voltage which is monitored to generate a reset signal. The address waveform provides the selectivity necessary to reset a particular subsystem while permitting other subsystems to continue operation. The address decoder 15 employed is independent of the subsystem microprocessors being reset, which means that reset can be achieved even though a microprocessor enters a fault condition from which it cannot recover. 
     Those skilled in the art will appreciate that various modifications and adaptations of the preferred embodiment may be made without departing from the scope and spirit of the invention. Therefore, it is to be understood that, within the scope of the appended claims, the invention may be practiced other than as specifically described herein.