Method and apparatus for comparing real time operation of...

Error detection/correction and fault detection/recovery – Data processing system error or fault handling – Reliability and availability

Reexamination Certificate

Rate now

  [ 0.00 ] – not rated yet Voters 0   Comments 0

Details

Reexamination Certificate

active

06247144

ABSTRACT:

BACKGROUND OF THE INVENTION
1. Field of the Invention
The present invention relates to a method and apparatus for comparing the real time operation of non-identical, object code compatible microprocessors to determine code compatibility or, alternatively to provide a measure of fault-tolerance in a computer system.
2. Description of the Prior Art
Computer systems are being called on to perform an ever-increasing number of functions and applications. As computer systems continue to play a greater role in modern society, the need for fault-tolerant computer systems has also grown. In general, a fault-tolerant computer system is defined as a system that can produce correct results or actions even in the presence of faults or anomalous conditions. Fault-tolerant computer systems were first developed for high-risk applications such as in hospitals, aviation, aerospace, etc. because these applications typically required a high degree of reliability. Today, however, fault-tolerance is also generally desired in more commonplace applications. For example, the failure of a single automated teller machine can cost a bank thousands of dollars. Therefore, due to the large number of applications in which computer systems are being used, many systems require some measure of fault-tolerance to guarantee that a processor or system error does not bring down the entire system.
The basic idea behind providing fault-tolerance is to incorporate extra or redundant resources into the system which can help overcome the effects of a malfunction. This redundancy can take the form of extra hardware, which can vote out an erroneous signal or switch in a spare to replace a failing subsystem, or additional software, which can allow successful re-execution of a program following detection of a failure.
One method used to provide fault-tolerance in computer systems entails using two or more identical processors in a computer system, one of which is referred to as the primary or active processor which actually operates the computer system. The remaining processors are standby processors that are only used in case of a complete failure by the primary processor. This type of system does not include any means for the detection of errors and is therefore only designed to tolerate a complete failure of the primary processor. This method therefore does not provide any measure of fault-tolerance where the primary processor erroneously executes an instruction or generates faulty data that goes undetected.
Another method used to provide fault-tolerance includes using two or more identical processors which compare their operations in real time to prevent errors or faulty data generated by any one processor from disrupting the system. This type of system may generally include a type of adaptive voting procedure whereby all of the processors compare their operations in real time and then “vote” on the correct response or operation. As an example, U.S. Pat No. 3,783,250 to Fletcher et al titled “Adaptive Voting Computer System” discloses a computer system using adaptive voting to tolerate failures and operate in a fail safe manner.
The above method performs well under certain circumstances, but the use of identical processors in a fault-tolerant adaptive voting scheme provides that faulty data or faulty conditions may affect the processors in exactly the same way, thereby causing all of the processors to fail in the same manner. This problem primarily occurs where a design fault exists in the processor being used. Design faults include faults resulting from the design of the module or system, where “design” encompasses everything from system requirements to system realization during either initial production or future modifications. Design faults have become a problematic source of failures in computer systems because they defeat fault-tolerance strategies based on strict replication. For example, the use of redundant, identical microprocessors in a computer system will generally not be able to overcome a design fault because this fault will generally occur in all of the processors and will affect them all in the same way.
In order to combat design faults, many fault-tolerant computer systems are beginning to use a concept referred to as design diversity. Design diversity minimizes the occurrence of failures due to design faults through diversified design, which essentially means that two or more systems perform the same function through separate designs and realizations. An example of design diversity that would be required to overcome design faults in a computer system would be the use of non-identical, redundant microprocessors in the system. Therefore, a method and apparatus is desired which uses multiple processors to provide a measure of fault-tolerance in a computer system where the processors are not identical, but merely object code compatible. In this manner, design faults will generally not affect the processors in the same way, thereby increasing the likelihood that these types of faults can be detected and avoided.
Computer systems which include redundant processors generally encounter significant problems with regard to synchronization of the various processors. If the comparisons or voting are done in hardware, then tight coupling of the redundant processors is required to ensure that the voting takes place on valid data samples. In many computer systems which include identical, redundant processors, the processors have their corresponding pins connected to the same input/output lines and operate in lockstep. However, it is generally not possible to operate non-identical processors in lockstep with each other because internal differences between the two processors would cause difficulties. Therefore, a method is needed in which non-identical processors can operate together in a computer system while allowing their operations to be compared in real time.
Another consideration in computer system design is compatibility. A principal reason for the growth of the personal computer industry has been the conscious effort on the part of the industry to maintain compatibility between various generations of computer systems and software. Compatibility guarantees that software written for a certain computer system will operate correctly on more advanced computer systems developed in the future.
Compatible computer systems are built around a family of object code compatible microprocessors. In this manner, software written for a computer system with a certain microprocessor will be compatible with a later generation computer system which includes a more advanced microprocessor from this family of microprocessors. One example of compatible computer systems is the family of personal computers compatible with those previously manufactured and sold by International Business Machines Corp. (IBM). Personal computer systems that are IBM-compatible have been built around a family of microprocessors produced by Intel Corporation (Intel) referred to as the 8088 family of microprocessors. The Intel 8088 family of microprocessors includes the 8086, 8088, 80186, 80286, 80386, and now the 80486 microprocessor, and all of these microprocessors have been designed to be object code compatible.
Processors are called code compatible when they can run the same code and produce the same results given the same input. By running the same code, it is meant that the processors can understand and execute the same instructions, altering their internal states (registers, flags, etc.) in the same way in response to those instructions. Two processors may be code compatible even though they are internally different. An important element in microprocessor design is to guarantee that a new processor being designed is object code compatible with previous generations of the respective family of microprocessors.
Microprocessor designers have used various methods in order to guarantee that two supposedly object code compatible processors are actually compatible. The usual method for determining if two processors are code compatible is to run a set of prog

LandOfFree

Say what you really think

Search LandOfFree.com for the USA inventors and patents. Rate them and share your experience with other people.

Rating

Method and apparatus for comparing real time operation of... does not yet have a rating. At this time, there are no reviews or comments for this patent.

If you have personal experience with Method and apparatus for comparing real time operation of..., we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for comparing real time operation of... will most certainly appreciate the feedback.

Rate now

     

Profile ID: LFUS-PAI-O-2487378

  Search
All data on this website is collected from public sources. Our data reflects the most accurate information available at the time of publication.