NOISE RESISTANT INTERRUPT CIRCUITS

Abstract: In an interrupt circuit for connection to a shared interrupt request line, an internally generated interrupt impresses an interrupt request line and also locks out any further interrupt requests until the interrupt request is analysed to be of minimum duration, in which case the lock out is latched. An interrupt request on the shared interrupt request line is also analysed for minimum duration before it causes a lock out to be latched. A latched lock out is removed by a signal generated by the interrupt handler.

Description: The present invention relates to noise resistant interrupt circuits and seeks to provide such circuits which can, in combination, be used to facilitate the sharing of an interrupt level by plural users in a data processing environment. Many computer systems rely upon the use of interrupts to allow, for instance, peripheral devices to request servicing by the central processor. The peripheral device issues an interrupt request to an interrupt handler associated with the processor. When the interrupt handler receives the interrupt request, the normal execution of the processor is interrupted and the process goes into an interrupt handling procedure. A popular type of interrupt handler is the 8259, manufactured by the Intel Corporation. The 8285 provides for eight different levels of prioritised interrupts so that eight different interrupting peripheral devices can be supported. However, as computer systems have become more complex, more than eight a peripherals devices need to be provided for. European Patent Application Serial No 851069336 describes a method of interrupt level sharing such that more than one peripheral device can use a single interrupt level. One simple embodiment thereof is shown in Figure 1 for an interrupt circuit 10. An interrupt request line 12 is connected in parallel to this and other interrupt circuits 10. The shared interrupt request line 12 is also connected to the 8259 interrupt handler. Assuming that there are no outstanding interrupt requests for the interrupt level associated with the interrupt request line 12, the peripheral device associated with the illustrated interrupt circuit 10 requests an interrupt service by issuing a continued high signal INTERRUPT. an AND gate 14 receives this signal INTERRUPT and, in the absence of other outstanding requests, passes the interrupt request to a one shot pulse generator 16. Again, the pulse generator 16 is enabled in the absence of an outstanding service request and for a pulse duration it enables an output amplifier 18. The output amplifier 18 has its input connected to ground and its output separated from a positive voltage by a resistor 20. Therefore, during the pulse width of the pulse generator 16, the interrupt request line 12 is brought to ground. Otherwise, the illustrated interrupt circuit 10 presents a high impedance to the interrupt request line 12. Because of this high impedance, other interrupt circuits attached to the same interrupt request line 12 can likewise produce a negative pulse on the interrupt request line 12. The 8259 interrupt handler does not respond to the negative transition of the negative pulse but rather to the final positive transition of the negative pulse on the interrupt request line 12. This same upward transition clocks the flip-flop 22 to produce a low complemented output - Q3 that disables the pulse generator 16. As a result, the pulse generator 16 remains disabled until a software generated REENABLE signal clears the flip-flop 22. The preceding discussion of the disabling and re-enabling applies whether the negative pulse on the interrupt request line 12 originated in the illustrated interrupt circuits or one of the other interrupt circuits. The effect of the interrupt circuit 10 is to lock out any further interrupt requests until the software generated REENABLE signal indicates that the interrupt service has been completed. It should be noted that the interrupt handling routine that the processor performs upon receipt of an interrupt request usually polls all the peripheral devices attached to that interrupt request line 12 to determine which device is requesting the interrupt. This polling is done by separate singal lines, not shown. Once a peripheral device has been serviced for its interrupt request, it removes its internal interrupt request INTERRUPT. If the polling does not uncover all interrupt requests, such as when the processor polls only once and the peripheral device requests its interrupt just after being polled, the internal interrupt signal INTERRUPT remains high and the removal of the disabling causes another negative pulse to be impressed on the interrupt request line 12. A problem with the arrangement of the recited European application has been discovered. The 8259 requires that the negative pulse on the interrupt request line have a minimum duration of 125 nanoseconds. For any shorter pulse, the 8259 does not recognise the interrupt request and accordingly the interrupt handling procedures are not initiated. However, the inhibiting flip-flop 22 of the recited application responds much more quickly so that a negative pulse of, for example 5 nanoseconds, will cause the flip-flop 22 to lock out this interrupt circuit 10 and all similar interrupt circuits. Assuming that all the peripheral devices have similar interrupt circuits, any such accidental lock out means that there will be no more interrupt requests. Accordingly, the processor has no reason to enter its interrupt handling procedure and thus to eventually re-enable the interrupt circuits. The aforementioned application also discusses a clocked embodiment of an interrupt circuit which is slightly more complex and the non-clocked embodiment of Figure 1, but, nonetheless, it is simple enough that it also is inhibited by a negative pulse considerably less than 125 nanoseconds. It has been further determined that the interrupt request line 12 is relatively noisy and contains frequent noise pulses having a duration of less than 20 nanoseconds. The interrupt request line 12 is often left in a high impedance state so that it is then acting as an antenna for spurious signals. It would be possible to reduce the noise on the interrupt request line 12 by the use of coaxial cable. However, the interrupt request line is very often wired between corresponding pins of several edge connectors. The use of coaxial cable for such a connection is considered to be unduly expensive. Another possible solution would be to attach a low-pass filter to the interrupt request line 12 or possibly to include this low-pass filter in the feedback to the flip-flop 22. However, such a filter would smooth the transitions of all signals on the interrupt request line 12, thus slowing the response and running counter to the standard practice of maintaining the transitions as sharp as possible. In contrast, the present invention provides a noise resistant interrupt circuit having an input for receiving an interrupt request signal, means for latching, as an interrupt request, any signal on the input having a duration longer than a predetermined amount if the output of the circuit is not in the state indicating a latched request, and means for resetting the circuit, characterised in that means are provided for generating a lock-out signal if a signal on the input persists for more than a first predetermined amount of time, such lockout signal inhibiting any response of the circuit to signal changes on the input; the latch is effective only in respect of signals on the input of a second duration, longer than the first duration; and failure of the input signal after a period between the two durations results in an automatic internal reset, the resetting means being externally operated. One embodiment of the invention described hereinafter is an interrupt circuit for interrupt level sharing in which an internal interrupt request immediately locks out further internal requests. The interrupt request signal is analysed to see that it persists for at least a minimum time, in which case, the interrupt circuit is locked out from sending further interrupt requests until a separate reset signal is received. If, however, the interrupt signal is less than the minimum time, then a lock out naturally terminates. Interrupt requests received on the shared interrupt request line are subjected to the same time determination before they are allowed to initiate the continuing lock out. The present invention will be described further, by way of example, with reference to an embodiment thereof, as illustrated, together with a sample of the prior art, in the accompanying, in which:- Figure 1 is a schematic diagram of the prior art interrupt circuit previously referred to; Figure 2 is a schematic diagram of a clocked, shared interrupt, circuit which is one embodiment of the present invention; Figure 3 is a timing diagram for the operation of the circuit of Figure 2 on receipt of a locally generated interrupt signal; and Figure 4 is a timing diagram for the operation of the circuit of Figure 2 on receipt of a remotely generated interrupt signal. A schematic for a preferred embodiment of the interrupt circuit of the present invention is shown in Figure 2. This interrupt circuit would be duplicated at adaptors of each of the devices sharing the interrupt request line 12. The interrupt request line 12 is also connected to the 8259 interrupt handler. The signal on the shared interrupt request line 12 is a signal -IRQX that is active when low and is in a high impedance state otherwise. Although the proposals of the aforementioned application centred upon the fact that the 8259 responds to an upward transition of the signal -IRQX, this invention can be equally applied to interrupt handlers having a different response. It is assumed, however, that the interrupt handler must sense a negative pulse having a duration of at least 125 nanoseconds before it can respond to an interrupt request. In this initial discussion, let it be assumed that there are no other outstanding interrupt requests so that the signal -IRQX is in the high impedance state and, by virtue of a pull-up resistor between the shared interrupt request line 12 and a positive voltage +V, is at a high value. Also, it is assumed that a -LOCKOUT signal, to be described later, is high. The circuit of Figure 2 is a clocked circuit having a clock period of 70 ns. The clock providing a clock signal CLOCK does not need to be common between the various interrupt circuits connected to the shared interrupt request line 12. The adaptor requests an interrupt with a high INTERRUPT signal, as illustrated in Figure 3. The INTERRUPT signal, in the absence of an outstanding interrupt request, passes through a first AND gate 26 and an OR gate 28 with inverting inputs to produce a signal at the data input D5 of a D-type flip-flop 30. In standard TTL terminology, the AND gate 26 may be a type 00; the OR gate may be a 00; and the flip-flop may be a 175. The flip-flop 30 clocks data on the upward transition of a complemented clock signal -CLOCK so that at the first upward -CLOCK transition following a high D5 signal, the flip-flop 30 produces a high Q5 signal on its output. The Q5 signal is fed to three places. It is an input to a second AND gate 32, also of the type 00, and the output of which is led through the OR gate 28 to the flip-flop 30. Until the second input to the second AND gate 32 goes low, there results a feedback circuit that keeps the Q5 output of the flip-flop 30 high regardless of whether the INTERRUPT signal goes low. The signal Q5 on the output of the flip-flop 30 is also fed through another OR gate 34 with an inverting output and from there to both the input and an inverting enable of a buffer 36. The OR gate 34 may be a type 02 and the buffer 36 a type 125. The output of the buffer 36 is connected to the shared interrupt request line 12. The result of the dual connection to both the input and the inverting enable of the buffer 36 is a low voltage output in the presence of a low voltage input and is a high impedance output in the presence of a high voltage input. As a result, shortly after the Q5 signal goes positive, the -IRQX signal on the shared interrupt request line 12 goes negative. The -IRQc signal is fed through an OR gate 38 having inverting inputs and an inverting output. This OR gate 38 may be a type 11. The output of the OR gate 38 is the previously mentioned -LOCKOUT signal which is fed to the other input of the first AND gate 26. A buffer 40 provides a test point for the -LOCKOUT signal and is not necessary in normal operation. The -LOCKOUT signal locks out further INTERRUPT signals from entering the circuit. The timing diagram of Figure 3 does not show the effect upon the -LOCKOUT signal of the original -IRQX signal since the D5 input to the flip-flop 30 is latched in this initial phase anyway. The Q5 output of the flip-flop 30 is also fed to a chain of three delaying flip-flops 42, 44 and 46 of the same 175 type and having the same -CLOCK input as the flip-flop 30. Each of the delaying flip-flops 42-46 delays the Q5 signal by another full clock period. The inverting output -Q8 of the third delaying flip-flop 46 is connected to the second input of the second AND gate 32 such that, three clock periods after the positive Q5 transition, the feedback through the AND gate 32 is interrupted and at the fourth clock period the Q5 signal falls as a result. The positive output Q8 of the third delaying flip-flop 46 is connected to the OR gate 34 so that even when Q5 falls, Q8 keeps the -IRQX signal low for three more clock periods. The result, in normal circumstances, is a -IRQX negative pulse that is eight clock periods or 560 ns long. The -IRQX signal from the output of the buffer 36 is also fed to a pulse width discriminating section consisting of a first pair of flip-flops 50 and 52 and a second pair 54 and 56. The first pair 50 and 52 are 180° out of phase with respect to the second pair 54 and 56 because the clock inputs of the first pair 50 and 52 are connected to the non-inverted CLOCK signal through a NOT gate 58 while the second pair 54 and 56 have their clock inputs directly connected to the non-inverted CLOCK signal. The -IRQX signal is connected to the data inputs and the reset inputs of the first flip-flops 50 and 54 of both pairs through another NOT gate 60. The flip-flops 50-56 may be of the type 74 and the NOT gates 58 and 60 may be of the type 04. The NOT gate 60 inverts the -IRQX pulse at the data input D1 of the inverted clock signal -CLOCK, the flip-flop 50 latches the signal on its data input D1 to its output Q1. Presuming that the -IRQX signal remains low, on the next clock cycle, the second flip-flop 52 latches the Q1 output connected to its data input D2 and produces an inverted or low signal on its inverting output -Q2. The inverted output -Q2 of the flip-flop 52 is fed back to its preset input P. This preset input P is clock independent but is subservient to a reset input R. When the preset input is low, the flip-flop 52 continues or maintains the previous state. That is, the feedback from the -Q2 output to the preset input P latches the -Q2 output at a low value regardless of subsequent signals on the clock signal or the signal on the data input D2. The latch is removed only by resetting the reset input R of the flip-flop 52. This immediately previous discussion assumed that the -IRQX signal remained low for the clock period between the upward transitions of the inverted clock signal -CLOCK that triggered the flip-flops 50 and 52 respectively. If, however, the -IRQX signal goes high during this intervening period, such as would be caused by a short noise pulse, the output of the NOT gate 60 goes low. THis output is connected to the complement reset input R of the first flip-flop 50 and causes that flip-flop to immediately reset to a low value on its output Q1. Thus, in this situation, on the second clock transition, the second flip-flop 52 sees a low signal on its data input D2 and thus no feedback latch is established. Thus, the first pair of flip-flops 50 and 52 act as a pulse width discriminator that produces a latched low output on the -Q2 output of the flip-flop 52 only if the -IRQX signal is at least one clock period long, 70 ns in the example. However, because the first pair of flip-flops 50 and 52 are insensitive to the beginning edge of the -IRQX negative pulse, it is uncertain whether they latch the -Q2 output for a -IRQX pulse between 1 and 2 clock periods, 70-140 ns in the example. In order to reduce this uncertainty, the second pair of flip flops 54 and 56 are connected similarly to the first pair 50 and 52 except they are clocked by the non-inverted clock signal CLOCK. That is, the second pair 54 and 56 are 180° out of phase with the first pair 50 and 52. The -Q4 output of the flip-flop 56 is similarly latched with the same uncertainty associated with the latching of the -Q2 output. However, both the -Q2 and the -Q4 are connected to inputs of the OR gate 38. The uncertainty of the combined signal is reduced by one-half clock period. That is, there is no latching for a -IRQX pulse of less than one clock period; there is uncertain latching for a pulse of between one and one and one-half clock periods; and, there is certain latching above one and a half clock periods. In the described embodiment, all noise pulses below 70 ns are rejected while any negative pulse enduring for 115 ns produces a latched -Q" or -Q$ output that causes the -LOCKOUT signal t be thereafter latched low. The -LOCKOUT signal can b unlatched only by resetting the flip-flops 52 and 56. The complement reset inputs R of these two flip-flops 52 and 56 are connected to an inverting output of an OR gate 62 of the type 02. Two inputs to this OR gate 62 are the +ADDRESS DECODE RESET and +SYS RESET. The ADDRESS DECODE RESET can be controlled by the software of the interrupt handling procedure. The software resets the interrupt circuit, that is, removes the -LOCKOUT signal, when it has completed servicing of all the interrupts. It should be noted that if the polling of the interrupt servicing has failed to uncover a recently generated INTERRUPT request, the removal of the lockout allows this high level INTERRUPT signal to pass the first AND gate 26 and thus to initiate the previously described procedure. The +SYS RESET input to the OR gate 62 can be used on system start-up to provide reliable initial values to the interrupt circuit. The preceding discussion involved an interrupt signal generated at the illustrated interrupt circuit. This interrupt circuit must respond as well to similar interrupt requests on the shared interrupt request line 12 originating from other interrupt circuits. The timing diagram for this operation is shown in Figure 4. At some random time, the -IRQX signal on the shared interrupt request line goes low. Although the interrupt circuit of Figure 2 produces a -IRQX pulse of 560 ns, it will be assumed that there are other types of interrupt circuits connected to the request line 12 that produce only the minimum pulse width of 125 ns. Th negative -IRQX pulse immediately passes through the OR gate 38 to produce an active -LOCKOUT signal that prevents a locally generated interrupt signal from passing the first AND gate 26. It should be noted that this part of the lockout signal persists only for as long as the -IRQX signal remains low. The negative -IRQX pulse is also led to the two paris of flip-flops 50-56. If the externally generated pulse is longer than 105 ns, one of the two outputs -Q2 and -Q4 is latched low producing a self-sustaining -LOCKOUT signal regardless of the continuation of the -IRQX pulse. Once again, this lockout is reset by software in the interrupt handling procedure through the ADDRESS DECODE RESET input to the OR gate 62. The interrupt handling procedure is likely to poll the device associated with the illustrated interrupt circuit to determine if it is requesting interrupt servicing. It is irrelevant whether this interrupt circuit was the one that actually produced the -IRQX pulse on the shared interrupt request line 12. If the attached device sets its interrupt signal active prior to the last time it is polled, its interrupt is serviced even though this interrupt circuit has never produced a -IRQX pulse. Once it is serviced, its INTERRUPT request goes inactive. If the local INTERRUPT signal goes active, after the last polling of the device, the -LOCKOUT signal is removed without that interrupt being serviced. However, because the INTERRUPT signal should remain high until the requested service is completed, the removal of the -LOCKOUT enables the INTERRUPT signal to pass the first AND gate 26. As a result, a new -IRQX pulse is inserted on the shared interrupt request line 12. The pulse width discrimination prevents the spurious generation of a lockout signal for any noise pulses having a pulse width of less than 70 ns. Some noise pulse having a pulse width of 70-105 ns and all noise pulses having a greater pulse width could produce a spurious lockout. However, the inventor has found that the noise pulses on the shared interrupt request line 12 never have a pulse width greater than 20 ns and most are considerably shorter. Therefore, arrangements according to the present invention works perform as required if correctly realised.

Claims: 1. A noise resistant interrupt circuit having an input for receiving an interrupt request signal, means (36,24) for latching, as an interrupt request, any signal on the input having a duration longer than a predetermined amount if the output of the circuit is not in the state indicating a latched request, and means (62) for resetting the circuit, characterised in that a)means (38,40) are provided for generating a lock-out signal if a signal on the input persists for more than a first predetermined amount of time, such lockout signal inhibiting any response of the circuit to signal changes on the input; b)the latch is effective only in respect of signals on the input of a second duration, longer than the first duration; and c)failure of the input signal after a period between the two durations results in an automatic internal reset, the resetting means (62) being externally operated. 2. A circuit as claimed in claim 1, wherein the lockout signal generating means is effective substantially only for the period of a signal on the input and the second duration is greater than the expected longest noise pulse reaching the circuit. 3. Data processing apparatus having plural interrupt sources, each communicating through its own circuit as claimed in any preceding claim, the outputs of the several circuits being connected in common to the apparatus interrupt handler, the lockout means being responsive, logically, to any of a locally received input signal of a sufficient duration, a locally latched interrupt request and a remotely latched interrupt request. 4. Apparatus as claimed in claim 3, wherein each said circuit is independently externally clocked. 5.Apparatus as claimed in claim 4, wherein the internal timing of the circuit, derived from the external clocking, is determined by chains of flip-flop circuits, arranged in such a way that a latched interrupt output signal is generated if an input signal is received of a duration greater than one and one-half clock periods.

Inventors: KARABATSOS, CHRIS
Applicants: INTERNATIONAL BUSINESS MACHINES CORPORATION
Application year: 1986
Main classification: G06F13
IPC codes: G06F13, G06F9, G06F11