Error detection/correction and fault detection/recovery – Pulse or data error handling – Testing of error-check system
Reexamination Certificate
1998-10-02
2001-04-24
Decady, Albert (Department: 2784)
Error detection/correction and fault detection/recovery
Pulse or data error handling
Testing of error-check system
C714S718000
Reexamination Certificate
active
06223309
ABSTRACT:
BACKGROUND
1. Field of the Present Invention
The present invention generally relates to the field of error detection schemes and more particularly to a method and circuit for testing error correction circuitry (ECC) associated with a computer system.
2. History of Related Art
The rapid pace at which the price to performance ratio of microprocessor based computer systems such as personal computers has improved since the 1980's has made the choice of such systems viable in a variety of higher end consumer, business, and scientific applications that were previously served exclusively by more costly main frame computers and workstations. As these smaller class of computers are increasingly being used as enterprise systems (i.e., installed in application intensive environments or used as the backbone of local area networks), the reliability of these machines has become an increasingly important market concern. Indeed, enterprise system consumers require and demand essentially zero down time.
To achieve the level of reliability required to compete in the microprocessor based computer system market, enterprise systems manufacturers have devoted greater consideration to techniques for improving reliability. While fundamental techniques for improving reliability by detecting randomly generated data errors such as the use of parity bits or error correction circuitry have been well known for some time, the use of these techniques in the price intensive market for microprocessor based system was until recently thought not to be cost effective. Manufacturers assumed, probably correctly, that the relatively infrequent occurrence of a single bit or multiple bit error in personal computers would be tolerated by the consumer, especially if the alternative was a higher priced system and the originating cause of the error could not be determined with precision, thereby permitting speculation that the application or operating system software caused the error. Such disregard or lack of concern about system reliability has, however, essentially vanished with the advent of a huge market for low cost, high performance, and highly reliable machines. For example, error correction circuitry is now thought to be a checklist item for all but the lowest end of network servers.
The basic operation of ECC in a computer system is widely known. When data is written to a memory location, the computer system generates additional information known as check bits. The check bits are generated based on a Hamming code or other suitable algorithm to be indicative of the data stored in the memory location. When the contents of the memory location are subsequently read by the computer system, the ECC regenerates the check bits and compares the check bits generated during the read operation with the check bits that were generated during the write operation. Any variation between the check bits generated during the read operation (the expected check bits) and the check bits generated during the write operation (the actual check bits) indicates an error in the data. In a typical implementation of ECC, single bit errors are detected and corrected while double bit failures are detected, but not corrected. The ability of ECC to correct single bit errors represents an advantage of ECC over parity based systems, which are capable of detecting but not correcting single bit errors and are entirely unable to detect certain double bit errors. Until the emergence of 64 bit data paths, however, parity based error checking systems were frequently preferred primarily because typical implementations of parity checking in 32 bit data bus systems requires only 4 parity bits, whereas ECC required 7 check bits are required for 32 bit systems. Thus ECC required 75% more error detection memory than parity based systems. In addition, the parity system's inability to detect double bit failures was not considered significant because of the widely disseminated belief that double bits were so rare that they could be treated as essentially non-existent. With the arrival of 64 bit and wider data busses, however, coupled with the increased demand for reliability, the assumption that double bit failures do not exist is no longer acceptable. Moreover, the cost differential between implementing parity versus ECC largely vanishes in 64 bit systems because 8 bits of error detection memory are required regardless of whether parity or ECC is utilized. Accordingly, ECC is rapidly being accepted as the preferred error detection scheme for microprocessor based computer systems.
The error correction circuitry employed in computer systems is typically one of the cornerstones of improved system reliability. The functionality of the ECC is, therefore, critically important if the ultimate goal of zero down time is to be achieved. Unfortunately, however, the ECC itself is typically not implemented with the significant amount of logic that would be required to perform an adequate self check or diagnostic routine due to size and cost constraints. It would be therefore highly desirable to provide a practical, low cost apparatus for performing a functionality verification of the ECC that consumed a relatively small amount of silicon.
SUMMARY OF THE INVENTION
The problem identified above is in large part addressed a method and apparatus for verifying the functionality of error correction circuitry in a computer system. An ECC verification circuit according to the present invention is provided to bias the memory data bus to a predetermined state during a verification cycle of an associated computer system. By incorporating a known error condition into the predetermined state that is applied to the memory data bus, the ECC unit of the computer system can be checked for basic functionality.
Broadly speaking, the present invention contemplates an ECC verification circuit of a computer system including a first biasing circuit that is configured to output a predetermined logical signal wherein the output of the first biasing circuit is connected to a first data bit line of a memory data bus of the computer system. In one embodiment, the verification circuit further includes a switch connected between the first biasing circuit and the first data bit line. In this embodiment, the verification circuit is configured to activate the switch during a verification cycle of the computer system. In this manner, the predetermined logical signal is applied to the first data bit line during the verification cycle. The memory data bus includes a plurality of data bit lines and a plurality of check bit lines and the computer system includes error correction circuitry that is coupled to the memory data bus. The verification circuit is designed to apply a test state to the data bit lines and check bits lines of the memory data bus. The test state applied to the check bits line varies from the check bit state that would be generated by the ECC unit of the computer system upon receiving the test state that is applied to the data bit lines. In other words, the verification circuit forces the memory data bus into a know error condition to verify the functionality of the ECC unit.
In one embodiment, the first biasing circuit includes a biasing resistor coupled in series between a voltage source and the first data bit line. The circuit may further include at least one additional biasing circuit wherein the output of the additional biasing circuit is coupled to at least one of the remaining bit lines of the memory data bus. In one configuration, the first biasing circuit outputs a voltage approximately equal to Vcc and the outputs of the additional biasing circuits are grounded. In this embodiment, the first data bit line is biased to a logical high state while all other remaining bit lines of the memory bus are grounded thereby creating an error condition on the memory data bus that should be detected by a properly functioning ECC unit. In an alternative arrangement, the first biasing is configured to apply either a logical high level or a logical low level to the first data bit line depe
Dixon Robert Christopher
Lee Van Hoa
Nguyen Thoi
De'cady Albert
International Business Machines - Corporation
Lally Joseph P.
Lamarre Guy
Leeuwen Leslie A. Van
LandOfFree
Method and apparatus for ECC logic test 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 ECC logic test, we encourage you to share that experience with our LandOfFree.com community. Your opinion is very important and Method and apparatus for ECC logic test will most certainly appreciate the feedback.
Profile ID: LFUS-PAI-O-2455613