The present invention relates to a system comprising a processor.
In the field of railway signalling, for example, it is essential that systems be designed with safety in mind. For example, in the event of a fault in an interlocking system controlling points and/or signal lights, the system should not set the points and/or the lights to a potentially dangerous condition. More particularly, in the event of a fault, a controlled signal lamp should not be set to "green" for example, so that, for safety, a train does not have authority to proceed.
One way of seeking to achieve fault detection is to provide two (preferably dissimilar) interlocking systems in hardware and compare the control outputs of the two systems. If the output of one of the systems agrees with the output of the other system, then the operation determined by it is allowed to occur. If the outputs do not agree, then it is assumed there is a fault in one of the systems. Such an arrangement can be termed a "dual-channel" system.
According to the present invention from one aspect, there is provided a system for performing a function, the system comprising a processor and having an input for receiving information and an output, the system being such that, in use, the processor is tested to check that it is operating correctly by at least two testing methods, at least one of which methods is not carried out by the processor itself.
According to the present invention from another aspect, there is provided a system for performing a function, the system comprising a plurality of processors and having an input for receiving input information and an output, in which system:
a) each of the processors is adapted to test itself to check whether it is operating correctly; and
b) each of the processors is adapted to test another of the processors to check that the other processor is operating correctly, each of the processors being so tested by another of the processors.
The present invention will now be described, by way of example, with reference to the accompanying drawings, in which:
FIG. 1 is a block diagram of an interlocking system for use in railway signalling; and
FIG. 2 shows a preferred manner of realising of what is shown in FIG. 1.
The interlocking system to be described by way of example is for use in controlling signal lights and points at the beginning or end of a passing loop in a railway. Referring to FIG. 1, the interlocking system comprises three serially coupled processors A, B and C, input information to the system being applied via an input 1 and processed by processor A, processor B carrying out the interlocking function and control information being provided via an output 2 from processor C.
Each of the processors A, B and C is adapted to test itself by carrying out an internal, self-testing routine to check that it is operating correctly. The processors A, B and C have outputs 3, 4 and 5 respectively, on which appear signals indicative of the results of the respective self-testing routines. Outputs 3, 4 and 5 are coupled to a gate 6 which carries out an AND function. The output 7 of gate 6 is coupled to an input of a gate 8 (which also carries out an AND function) to provide to it a signal indicative either that all the processors A, B and C believe themselves to be operating correctly or that at least one of them believes it is not operating correctly.
As well as carrying out an internal, self-testing routine, each of processors A, B and C carries out test on a respective one of the other processors and has a test carried out on it by a respective one of the other processors (for example, different from the one it tests itself). Thus, for example, processor A tests processor C by interrogating it via a link 9 and receives back via a link 10 a signal depending on the result of the test; processor B tests processor A by interrogating it via a link 11 and receives back via a link 12 a signal depending on the result of the test; and processor C tests processor B by interrogating it via a link 13 and receives back via a link 14 a signal depending on the result of the test.
A signal indicative of the result of processor A's test on processor C appears on an output 15 from processor A to cause a switching device 18 to be closed if the result is that processor C is believed to be operating correctly but open otherwise; a signal indicative of the result of processor B's test on processor A appears on an output 16 from processor B to cause a switching device 19 to be closed if the result is that processor A is believed to be operating correctly but open otherwise; and a signal indicative of the result of processor C's test on processor B appears on an output 17 from processor C to cause a switching device 20 to be closed if the result is that processor B is believed to be operating correctly but open otherwise. The switching devices 18, 19 and 20 are connected in series to the other input of circuit 8 to provide to it either an indication that all the processors A, B and C are believed to be operating correctly (i.e. signal D, as a result of all the switches 18, 19 and 20 being closed) or an indication that at least one of the processors is believed not to be operating correctly (i.e. the absence of signal D, as a result of at least one of switching devices 18, 19 and 20 being open). It will be appreciated that switches 18, 19 and 20 and signal D result in the signals on outputs 15, 16 and 17 being subjected to an AND function. As an alternative, the AND function may be achieved by a discrete AND gate, to respective ones of the inputs of which the outputs 15, 16, 17 are connected, the output of the AND gate being connected to the other input of gate 8. The function of such another AND gate could, instead, be carried out by the software of one of the processors (not the one which provides by its software the function of gate 6, if such is the case--see below).
In operation, the signal at the output of gate 8 only allows the system to continue its normal controlling functions if both the signal at its input connected to the output 7 of gate 6 is indicative that all the processors A, B and C believe themselves to be operating correctly and the indication at its other input is indicative that each of the processors A, B and C is believed by another processor to be operating correctly. If either or both of these conditions is or are not fulfilled, then the signal at the output of gate 8 is such as to cause the system to be shut down or put into a different (e.g. more restricted) mode of operation.
Thus, in the described system, the integrity or "health" of each of processors A, B and C is checked in two ways, once by its own internal self-testing routine and secondly by means of a test performed on it by another processor (by way of example, not the one it is testing itself). Thus, a fault in any of the processors will be detected in two ways, one of which is not dependent on the faulty processor itself. Each detection method can independently cause the system to be shut down or put into a different (e.g. more restricted) mode of operation to ensure a safe system failure mode.
To enhance safety, detection of a fault in a processor by either or both of the above methods may be propagated around the system from processor to processor, via the inter-processor testing links, so that any of the processors can cause the system to be shut down or put into a different (e.g. more restricted) mode of operation via its respective one of outputs 15, 16 and 17 (and/or outputs 3, 4 and 5) in response to detection of a fault anywhere in the system, regardless of whether it has detected the fault itself.
The above system enables the achievement of the integrity of a "dual-channel" system using only a single "channel" of hardware.
Preferably, the system may be realised as shown in FIG. 2, in which items which are the same as in FIG. 1 have the same reference numerals as in FIG. 1. The processor B is adapted to be a so-called "vital logic module" of the system and within it the AND function of gate 6 is carried out by the processor's software, the outputs 3, 4 and 5 being included in an internal bus 21.