WO1980000626A1 - Data processing system having error detection and correction circuits - Google Patents

Data processing system having error detection and correction circuits Download PDF

Info

Publication number
WO1980000626A1
WO1980000626A1 PCT/US1979/000669 US7900669W WO8000626A1 WO 1980000626 A1 WO1980000626 A1 WO 1980000626A1 US 7900669 W US7900669 W US 7900669W WO 8000626 A1 WO8000626 A1 WO 8000626A1
Authority
WO
WIPO (PCT)
Prior art keywords
bits
data
error
bit
circuit
Prior art date
Application number
PCT/US1979/000669
Other languages
French (fr)
Inventor
W Lewis
W Ward
Original Assignee
Ncr Co
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Ncr Co filed Critical Ncr Co
Publication of WO1980000626A1 publication Critical patent/WO1980000626A1/en

Links

Classifications

    • HELECTRICITY
    • H03ELECTRONIC CIRCUITRY
    • H03MCODING; DECODING; CODE CONVERSION IN GENERAL
    • H03M13/00Coding, decoding or code conversion, for error detection or error correction; Coding theory basic assumptions; Coding bounds; Error probability evaluation methods; Channel models; Simulation or testing of codes
    • H03M13/03Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words
    • H03M13/05Error detection or forward error correction by redundancy in data representation, i.e. code words containing more digits than the source words using block codes, i.e. a predetermined number of check bits joined to a predetermined number of information bits
    • H03M13/13Linear codes
    • H03M13/19Single error correction without using particular properties of the cyclic codes, e.g. Hamming codes, extended or generalised Hamming codes

Definitions

  • This invention relates to data processing system of the kind including: a data bus arranged to carry a plurality of data bits from a first location to a second location in the system; error bit means adapted to logically combine said data bits to generate a plurality of error correction code check bits; and error control means adapted to compare the generated check bits with a plurality of error correction code check bits associated with the data bits from the first location and thereby generate a plurality of syndrome bits identifying the bit position of any error in the data bits.
  • a problem associated with LSI chips is that a large number of input/output pins are often required because of the large number of circuit components and the input and output signals used in connection with such components. If the number of pins exceeds the maximum number which may be physically mounted on the chip, techniques are required for spreading functions or operations among several identical chips. Thus, in the case where several bytes of data are operated on at one time as a single data word, the data may be "sliced", for example in bytes, with an identical LSI data chip for receiving each byte in the data .word and operating on each byte individually.
  • a data processing system of the kind specified is known from U. S. Patent No. 3,568,153.
  • the error correction circuitry is adapted to be controlled by an error correction code wherein the syndrome bits form the binary number of the bit position where the error has occurred.
  • the known system has the disadvantage of being unsuitable for utilization in a system wherein respective bytes of data are handled in identical LSI data chips.
  • a data processing system of the kind specified characterized in that the system includes a plurality of identical data receiving circuits at the second location arranged to receive respective groups at said data bits, said syndrome bits including a first group of syndrome bits identifying one of a plurality of said groups of data bits where the error has occurred and a second group of syndrome bits identifying the bit position within one group of data bits where the error has occurred, said error control, means being adapted to generate an enabling signal in response to said first group of syndrome bits, the enabling signal being applied in operation to one of said data receiving circuits, which include identical bit decoder means arranged to receive said second group of syndrome bits and thereby control the correction in the enabled data receiving circuit of the erroneous bit.
  • Fig. 1 is a simplified block diagram illustrating a data processing system and the manner in which an error detection and correction circuit may be used at various locations in the data processing system.
  • Fig. 2 is a block diagram of the error detection and correction circuit illustrated in Fig. 1.
  • Fig. 3 is an H-parity check matrix illustrating the modified Hamming code used in the error detection and correction circuit of Fig. 2.
  • Fig. 4 is a logic diagram illustrating the
  • Fig. 5 is a block diagram illustrating the manner in which the error detection and correction circuit is connected when used in an ECC mode.
  • Fig. 6 is a block diagram illustrating the manner in which the error detection and correction circuit is connected when used in a byte parity mode.
  • Figs. 7A and 7B are a circuit block diagram illustrating the use of the error detection and correction circuit of Fig. 2 in a system having a 64 bit data bus.
  • Figs. 8A arid 8B are an H-parity check matrix illustrating the modified Hamming code used in the circuit of Figs. 7A and 7B.
  • the data processing system 10 includes an arithmetic-logic unit (ALU) 12 which is connected by control and data buses to a main memory 14 by way of a memory interface 16, to a control store 18, to a scratch pad memory 20 and to an input/output (I/O) processor 22.
  • ALU arithmetic-logic unit
  • the ALU 12 receives instructions and data from the main memory 14.
  • the instructions are decoded and cause a microprogram stored in control store 18 to be selected.
  • the system operates in accordance with the selected microprogram in order to execute each instruction from main memory.
  • the necessary signals to control the sequencing of each component of the system 10 during the execution of each instruction are provided by a processor timing and control circuit 24, and there may be access, through the I/O processor 22 and a bus 50, to peripheral units 26 such as card readers, disc memories, operator consoles, printers, or the like.
  • the ALU performs any necessary arithmetic or logic operations on data and may temporarily store data in the scratch pad memory 20.
  • the ALU 12 and memory interface 16 receive groups or byte-slices of data, with the illustrated ALU and memory interface each comprised of four identical integrated circuit chips, and with each chip receiving and operating on one byte of data.
  • Error detection and correction (EDC) circuits are connected at various locations along the data buses that interconnect the components of the system 10.
  • Each of the EDC circuits is implemented in LSI and is identical.
  • each of the EDC circuits is capable of receiving 32 bits of data, and in response generating byte parity bits for byte parity error detection or generating ECC parity bits for single error correction and double error detection (SEC/DED). It is an advantage of the present embodiment that identical EDC circuits can be utilized at various locations in the data processing system, to provide either byte parity error detection, or single error correction and double error detection.
  • EDC circuit 30a operates in an ECC mode and is connected to receive the 32 bits of data from a bus 32 that transfers data between a location at the memory interface 16 and a location at the main memory 14.
  • the EDC circuit 30a generates seven ECC parity bits which are provided by way of a bus 34 to an error control circuit 36.
  • the error control circuit 36 either passes the generated ECC parity bits onto main memory 14 by way of a bus 38 as check bits to be stored with the data, or compares the ECC parity bits with the check bits coming from main memory along bus 38 to determine if an error has occurred in the data fetched from memory.
  • the error control circuit 36 If a single error has been made in the data, the error control circuit 36 generates appropriate syndrome and enabling bits along a bus 40 to the memory interface to correct the bit in error before being passed along one of four busses 41a, 41b, 41c and 41d to ALU 12. If a double error has been made, a DOUBLE ERROR signal is generated by the error control circuit 36 which can, for example, be delivered to the processor timing and control circuit 24 to cause the data to be fetched again from memory.
  • the EDC circuits 30b and 30c are each operated in a byte parity mode and are used t ⁇ both generate and check byte parity bits.
  • EDC circuit 30b generates byte parity bits on a bus 43 for data leaving the I/O processor 22 along a bus 42 and receives byte parity bits from bus 43 for checking the byte parity of the data carried on the bus 42 from the ALU 12 to the I/O processor 22.
  • the EDC circuit 30c generates byte parity bits on the bus 43 for data carried on bus 42 from the ALU to the I/O processor and receives byte parity bits from EDC circuit 30b on bus 43 for checking the byte parity of data carried on bus 42 from the I/O processor to the ALU.
  • the EDC circuits 30d, 30e and 30f also operate in a byte parity mode.
  • EDC circuit 30d generates byte parity bits on a bus 45 for data sent to the scratch pad memory 20 and control store 18 along a bus 44, and the EDC circuit 30e checks the byte parity of data on a bus 46 returning from the scratch pad memory 20.
  • EDC circuit 30f checks the byte parity of data on a bus 48 returning from the control store 18.
  • Each of the EDC circuits 30b, 30c, 30e, and 30f generate an error signal (BP ERROR) when a byte parity error is detected.
  • BP ERROR error signal
  • FIG. 2 there is shown a block diagram of an EDC circuit 30, which could be used for any one of the EDC circuits 30a through 30f illustrated in Fig. 1.
  • the EDC circuit 30 has data input terminals for receiving 32 bits of data, designated D 0 through D 31 .
  • the EDC circuit 30 also has eight parity bit terminals, designated E 0 through E 7 , and two control inputs, designated CK/GEN and ECC/BP.
  • connection matrix 54 which, in turn, connects the data lines to a group of EXCLUSIVE OR trees, designated 56.
  • the connection matrix 54 and the EXCLUSIVE OR trees 56 together cause the data bits D 0 through D 31 to be logically combined to generate ECC parity bits in accordance with the modified Hamming code illustrated by the H-parity check matrix of Fig. 3.
  • the H-matrix of Fig. 3 illustrates by its patterns of "ones" and "zeros" the particular data bits which will be combined to generate each error correction code (ECC) bit.
  • ECC error correction code
  • a “one” indicates that the corresponding data bit is included in the combination of data bits to generate an ECC bit, and a “zero” indicates that the corresponding data bit is not included in the combination. It should be noted that the “ones” and “zeroes" in the H-matrix do not represent logic levels.
  • Table I shows the logical equations represented by the rows of the H-matrix for generating each of the ECC parity bits C 1 through C 7 .
  • the equation for the ECC bit C 7 in Table 1 and the row corresponding to ECC bit C 7 in Fig. 3 show that the data bits D 0 -D 16 (represented by “ones” in the matrix) are logically combined, and the data bits D 17- D 31 (represented by “zeros" in the matrix) are not included in the combination.
  • C 7 is at a "0" logic level when an even number of the data bits D 0 -D 16 are at a "1" logic level, and is at a "1" logic level when an odd number of the data bits are at a “1” logic level.
  • C 7 is thus said to have even parity.
  • ECC bits C 4 , C 5 and C 6 will also have even parity.
  • C 1 , C 2 and C 3 will have odd parity, and those ECC bits are at a "0" logic level when an odd number of the data bits used to generate the ECC bits are at a "1” logic level, and are at a "1” logic level when an even number of the data bits are at a "1” logic level.
  • FIG. 4 there is shown an EXCLUSIVE OR tree 58 which could be used to generate C 7 in accordance with the logical equation for C 7 listed in Table I and discussed above.
  • the group of EXCLUSIVE OR trees represented by the block 56 in Fig. 2 will comprise a plurality of such logic trees, one for generating each ECC bit
  • connection matrix and a set of EXCLUSIVE OR trees which combine data bits in certain patterns so as to generate ECC bits can be found in a wealth of publications and patents, for example, U. S. Patent No. 3,648,239, entitled “System For Translating to and from Single Error Correction-Double Error Detection Hamming Code and Byte Parity Code", by William C. Carter et al., and U. S. Patent No. 3,836,957, entitled “Data Storage System with Deferred Error Detection", by Keith A. Duke, et aI. Reference can be had to these patents if a more detailed description is desired. The Duke et al. patent is also noteworthy because it discloses a common circuit generating both ECC parity bits and byte parity bits.
  • the ECC code can be conveniently used to provide byte parity bits in addition to the ECC bits C 1 -C 7 .
  • the EXCLUSIVE OR tree 58 generates even byte parity for byte 0 (data bits D 0 -D 7 ) and byte 1 (data bits D 8 -D 15 ).
  • This is also illustrated by the enclosed portions labeled B 0 and B 1 in Fig. 3.
  • byte parity for bytes 2 and 3 can also be obtained during the generation of the ECC bits C 5 and C 4 , respectively.
  • EXCLUSIVE OR trees 56 is shown as the ECC parity bits C 1 -C 7 , and the byte parity bits B 0 -B 3 .
  • the bits C 1 -C 7 are presented to a set of enabling gates 60, and the byte parity bits B 0 -B 3 are presented to a set of enabling gates 62 and one set of inputs of an EXCLUSIVE OR circuit 64.
  • the seven outputs of the enabling gates 60 are connected to the terminals E 1 -E 7 of the EDC circuit 30.
  • the terminals E 4 -E 7 are bidirectional and are also connected to the outputs of the enabling gates 62 and to a second set of inputs to the EXCLUSIVE OR circuit 64.
  • the output of EXCLUSIVE OR circuit 64 is connected to a set of enabling gates 66, whose four outputs are connected to the terminals E 0 -E 3 .
  • a "1" logic level is applied to the control input ECC/BP.
  • the ECC/BP control output is connected to the control line 68 of the enabling gates 60 and the "1" on control line 68 causes gates 60 to become disabled.
  • the "1" at the ECC/BP input is also applied to an OR gate 70 and causes the inverted outputs of the gate 70 to go to a "0".
  • the EDC circuit 30 can be selected either for checking or generating byte parity bits, depending on the signal at the control input CK/GEN, which is connected to the control lines 72 and 74 of the enabling gates 62 and 66 by an OR gate 76. If the signal at CK/GEN is at a "1", the circuit is selected for generating parity and such signal is passed by OR gate 76 to control line 74 to disable the enabling gates 66.
  • Such signal also appears as a "0" at the inverted output of OR gate 76, and is applied to the control line 72 to cause the enabling gates 62 to pass the byte parity bits B 0 -B 3 from the output of the EXCLUSIVE OR trees 56 to the terminals E 4 -E 7 .
  • control input ECC/BP is at a "0"
  • control input CK/GEN is at a "1”.
  • Control lines 72 and 74 are at a "1” and enabling gates 62 and 66 are disabled.
  • Control line 68 is at a "0”, and thus the ECC bits C 1 -C 6 at the output of the EXCLUSIVE OR trees 56 are passed through enabling gates 60 to the terminals E 1 -E 7 .
  • the enabling gates 60, 62 and 66 are comprised of NOR gates in order to be enabled by a "0" on the control lines 68, 72 and 74. Accordingly, the C 1 -C 7 and B 0 -B 3 bits are inverted by the enabling gates and are thus inverted when they appear at the terminals E 0 -E 7 .
  • the EDC circuit 30 can be selected, by the signals applied at the control inputs CK/GEN and ECC/BP, to generate ECC parity bits or byte parity bits for data bits D 0 -D 31 ' or to perform a byte parity check of the data bits D 0 -D 31 by comparing the byte parity check bits provided at terminals E 4 -E 7 with generated byte parity bits B 0 -B 3 .
  • Fig. 5 shows in greater detail the connection of the EDC circuit 30a in the data processing system 10 of Fig. 1.
  • the EDC. circuit 30a operates in an ECC mode, i.e., generating ECC parity bits.
  • the data bus 32 carrying bits D 0 -D 31 is connected between the main memory 14 and the EDC circuit 30a, as well as being connected in a byte sliced fashion between the main memory and the memory interface 16.
  • the memory interface 16 is comprised, as illustrated in Fig. 5, of four integrated circuit chips 13a, 13b, 13c and 13d, with only the memory interface chip 13a receiving data byte
  • the memory interface chips 13b-13d are identical to 13a, but receive the bytes 1, 2 and 3 and are not illustrated in detail.
  • terminals E 1 -E 7 of the EDC circuit 30a provide the inverted ECC parity bits (terminal
  • E 0 is not used
  • the bits are carried by bus 34 to the error control circuit 36.
  • the error control circuit 36 is also connected to bus 38 for carrying the ECC check bits C 1 -C 7 between the main memory and the error control circuit.
  • the memory interface chip 13a illustrated in Fig. 5 includes a bidirectional bit transfer circuit 82 for receiving each of the data bits D 0 -D 7 . Only the bit transfer circuit 82 for receiving the data bit D 0 is shown in detail, but it should be understood that in each of the four memory interface, chips 13a-I3d, there will be eight bit transfer circuits, one for each bit. Each bit transfer circuit 82 transfers its associated data bit between the bus 32 (from main memory) and one of the busses 41a-41d (from the ALU).
  • the illustrated bit transfer circuit 82 includes a flip-flop 84 having its input D connected for receiving the bit D 0 and its output Q connected to one input of an EXCLUSIVE OR gate 86.
  • the input CLK of flip-flop 84 receives a clocking signal FETCH for latching the bit D 0 into the flip-flop when data is to be fetched from the main memory to the ALU.
  • the circuit 82 also includes a second flip-flop 88 which has its input D connected to eive the bit D 0 from bus 41a.
  • the inverted output of the flip-flop 88 is connected to one input of a NOR gate 90 which in turn has its output connected for delivering bit D 0 to bus 32.
  • the flip-flop 88 When data is to be passed from the ALU for storage in the main memory, the flip-flop 88 receives a clocking signal STORE for latching the bit D Q from bus 41a into the f and the NOR gate 90 receives an enabling signal for passing the data bit through to bus 32.
  • a bit decoder 92 in each memory interface chip has eight outputs S D0 -S D7 , with one of the outputs, provided to the second input of the EXCLUSIVE OR gate 86 in each bit transfer circuit 82, and causing the bit transferred from bus 32 to busses 41a-41d to be inverted under circumstances to be described in detail later.
  • the error control circuit 36 includes a bit comparison and transfer circuit, designated 96, for each of the seven inverted ECC parity bits delivered by the EDC circuit 30a and each of the corresponding check bits C 1 -C 7 delivered by bus 38.
  • bit transfer circuit for receiving bit from bus 34 and bit C 1 from bus 38 is illustrated in detail, it should be understood that six other identical bit transfer circuits 96 will also be located in error control circuit 36.
  • the illustrated bit transfer circuit 96 includes a NOR gate 98 and an EXCLUSIVE NOR gate 100, each having an input for receiving the bit from the EDC circuit 30a.
  • a second input of NOR gate 98 receives an enabling signal for inverting and passing the ECC parity bit when the ECC parity bits generated by the EDC circuit 30a are to be stored in memory with data as ECC check bits.
  • the output of NOR gate 98 is connected to the bus 38.
  • Bus 38 is also connected to the input D of a flip-flop 102.
  • the flip-flop 102 receives a clocking signal FETCH at its input CLK when data is to be fetched from memory to the ALU, causing the check bit C 1 from bus 38 to be clocked into the flip-flop 102 and be presented to a second input of the EXCLUSIVE NOR gate 100.
  • the EXCLUSIVE NOR gate 100 provides a comparison of the ECC parity bit generated by the EDC circuit 30a and the ECC check bit C 1 carried on bus 38 when data is fetched from the main memory. The comparison of each ECC parity bit and ECC check bit by the EXCLUSIVE NOR gate 100 in each bit transfer circuit 96 will indicate if an error has been made in the transfer of the data from the main memory to the memory interface.
  • each EXCLUSIVE NOR gate 100 The output of each EXCLUSIVE NOR gate 100 is referred to as a syndrome bit, and the error control circuit 36 will provide seven syndrome bits, designated S 1 -S 7 , one syndrome bit from each bit transfer circuit 96. If any one of the data bits which are used to generate each ECC parity bit has arrived at the memory interface chip from main memory and is in error, the syndrome bit associated with such ECC parity bit at the output of EXCLUSIVE NOR gate 100 will be at a "one". By examining all of the syndrome bits, the location of a single error, and the existence of a double error, can be determined in accordance with the following rules: 1. If an odd number of syndrome bits are at a "1" logic level, a single data bit error, has occurred.
  • the location of any single bit in error is determined, by decoding the seven syndrome bits. If a single error has occurred, the syndrome bits indicate that one of the 32 data bits D 0 -D 31 is in error so that it may be corrected in a manner to be described in greater detail later.
  • the modified Hamming code chosen in the present embodiment and illustrated by the matrix in Fig. 3 is arranged such that a group comprised of the three syndrome bits S 1 -S 3 will, when decoded for indicating a single bit in error, point to the same bit position in each of the four bytes of data received by memory interface chip 13a-13d.
  • a group comprised of the remaining syndrome bits S 4 -S 7 determine, along with bits S 1 -S 3 , which byte the single error has occurred in.
  • Hamming code is particularly advantageous in providing single error correction in an LSI system, such as the preferred embodiment. This is illustrated by again referring to Fig. 5, where syndrome bits S 1 , S 2 and S 3 are shown presented, to the decoder 92 in each of the memory interface chips 13a-13d. Since the decoder in each memory interface chip receives the same signal (syndrome bits S 1 , S 2 and S 3 ) to indicate the bit position of a single bit error, each of the LSI memory interface chips will have the same decoder logic circuitry and may be constructed identically. The advantage achieved by permitting as many LSI chips to be constructed identically as is possible has been noted earlier.
  • each one of the eight possible combinations of the bits S 1 -S 3 causes one of its output lines S D0 -S D7 to be enabled.
  • the error control circuit 36 includes a byte decoder and logic circuit 106 for receiving all the syndrome bits S 1 -S 7 , and in response, providing an enabling signal on one of four enable outputs.
  • Each of the enable outputs of decoder 106 enables one of the decoders 92 in the four memory interface chips 13a-13d.
  • the decoder and logic circuit 106 has appropriate logic circuitry for determining the byte whose memory interface chip decoder 92 is to be enabled in accordance with the logic equations in Table II.
  • the EXCLUSIVE OR gate 86 in the bit transfer circuit 82 associated with that data bit causes the bit to be inverted. For example, if data bit D 0 is in error, the syndrome bits S 1 -S 7 will cause decoder and logic circuit 106 to enable only the decoder 92 in the memory interface chip 13a and the syndrome bits S 1 -S 3 will cause the output S D0 of the decoder 92 in memory interface chip 13a to go to a "1".
  • the logic level of the bit D 0 when passed through flip-flop 84 to the EXCLUSIVE OR gate 86, will be inverted by gate 86 and be passed on to the bus 41a for transfer to the ALU.
  • the EDC circuit 30a can be made to generate ECC parity bits when data is passed along bus 32 from the memory interface 13 to the main memory, with the ECC parity bits passing through the NOR gate 98 in each of the seven transfer circuits 96 to bus 38 where the ECC bits are stored as check bits with data in the main memory. Furthermore, the EDC circuit 30a can be used with error control circuit 36 in performing an ECC parity check for single or double errors in data passing along bus 32 from the main memory to the memory interface, by generating ECC parity bits for the data so that a comparison can be made with the ECC check bits coming from the main memory on the bus 38. Such comparison is performed by the EXCLUSIVE NOR gate 100 in each of the seven transfer circuits 96, and the syndrome bits resulting from the comparison can be used to perform single error correction and double error detection.
  • Fig. 6 there is illustrated in detail the connection of the EDC circuit 30b in the data processing system 10.
  • the EDC circuit 30b operates in a byte parity mode, and in particular, provides byte parity bits for data on bus 42 leaving the I/O processor 22 for the ALU 12, and Byte parity checking for the data on bus 42 entering the I/O processor 22 from the ALU 12.
  • the connection of EDC circuit 30b was previously shown in general form in Fig. 1.
  • Fig. 6 shows a portion of the I/O processor
  • the illustrated transfer circuit 110 transfers the data bit D 0 and includes a flip-flop 112 for receiving at its input D the data bit D 0 from the bus 42.
  • the output Q of the flip-flop 112 is connected to the bus 50, and when a clocking signal, designated DATA OUT, is received at the input CLK of the flip-flop, indicating data is being transferred out of the ALU to peripheral units, the data bit D 0 is clocked into the flip-flop and presented to bus 50.
  • the transfer circuit 110 further includes a flip-flop 114 having its input D connected for receiving the bit D 0 from the bus 50, and its inverted output connected to an input of a NOR gate 116.
  • the output of gate 116 is connected to bus 42.
  • the bit transfer circuit 110 associated with each of the other data bits D 1 -D 31 operates in the same fashion.
  • EDC circuit 30b for byte parity generating and checking has been described earlier with reference to Fig. 2. Briefly, when data is transferred from the I/O processor 22 to the ALU 12, the EDC circuit 30b will generate four inverted byte parity bits on the bus 43 for transmission with the data, which will be used for a parity check at EDC circuit 30c. When, data is transferred along bus 42 from the ALU 12 to the I/O processor 22, the EDC circuit 30b will receive the inverted byte parity check bits from the EDC circuit 30c by way of the bus 43, and will perform an internal parity check by comparing the byte parity check bits on bus 43 with the byte parity bits generated internally in response to the received data bits D 0 -D 31 . A signal BP ERROR is generated on one of the terminals E 0 -E 3 if the comparison indicates a byte parity error.
  • Figs. 7A and 7B show a 64 bit EDC circuit 130 operating in an ECC mode and having two EDC circuits 130a and 130b, each of the same construction and design as the
  • EDC circuit 30 illustrated in Fig. 2.
  • the circuit 130 generates eight inverted ECC parity bits and performs SEC/DED for 64 bits of data, D 0 -D 63 from a data bus 132.
  • a bus 134 carries ECC check bits C' 1 -C' 8 to or from main memory.
  • the terminals E 1 -E 7 are used in each of the circuits 130a and 130b and the bits on those terminals are presented, along with the D 32 and D 48 data bits, to a 64 bit connection logic and error control circuit 140.
  • the circuit 140 includes a bit comparison and transfer circuit 142 for each of the eight pairs of corresponding ECC parity and check bits associated with the 64 bits of data.
  • Each of the circuits 142 include a flip-flop 144, an EXCLUSIVE NOR gate 146, and a NOR gate 148.
  • Figs. 7A and 7B only one of the circuits 142 is illustrated in detail.
  • the flip-flop 144 in the illustrated circuit 142 receives the ECC check bit C' 1 from bus 134 at its input D, and if its clocking input CLK receives a clocking signal FETCH, indicating that data is being fetched from main memory and a check for error in such data is to be made, the ECC check bit C' 1 is clocked into the flip-flop and appears at the output Q.
  • the output Q is connected to one input of the EXCLUSIVE NOR gate 146.
  • the other input of the EXCLUSIVE NOR gate 146 receives the inverted ECC parity bit generated within the circuit 140, and the gate 146 performs a comparison and generates a syndrome bit S' 1 . If data is being transferred into main memory on bus 132, the ECC parity bits generated by circuit 140 are delivered to bus 134 to be transferred with the data as ECC check bits. In such case, the NOR gate 148 in each bit transfer circuit 142 receives an inverted ECC parity bit generated by circuit 140 at one of its inputs. When the other input of NOR gate 148 receives an. enabling signal indicating that data and check bits are to be stored in memory, each of the inverted
  • ECC parity bits is inverted and passed by one of the gates 148 to the bus 134 as a check bit.
  • the connection logic and error control circuit 140 also includes three EXCLUSIVE OR gates 154 which receive the pairs of corresponding outputs of the circuits 130a and 130b and three EXCLUSIVE NOR gates 155 which receive the pairs of corresponding outputs of the circuits 130a and 130b.
  • the outputs of the gates 154 provide the inverted ECC parity bits and the outputs of the gates 155 provide the inverted ECC parity bits and
  • an EXCLUSIVE OR gate 156 receives the data bits D 32 and D 48 and an EXCLUSIVE OR gate 158 receives the bits from the circuit 130b.
  • the outputs of the gates 156 and 158 are received by an EXCLUSIVE OR gate 160, which provides the signal at its output.
  • the signal and the signal from circuit 130b are provided to an EXCLUSIVE OR gate
  • gate 164 and the output of gate 164 is provided, along with the signal from circuit 130a to an EXCLUSIVE NOR gate 166.
  • the output of gate 166 provides the signal
  • Figs. 8A and 8B show an H parity check matrix illustrating the modified Hamming code used in the 64 bit EDC circuit 130 of Figs. 7A and 7B. It can be seen from Figs. 8A and 8B that, with the exception of the rows associated with C' 6 and C' 8 , the pattern of "ones” and “zeros" for the data bits D 32 -D 63 is substantially repetitive of the pattern for bits D 0 -D 31 ' and that both are similar to the pattern of the 32 bit matrix of Fig. 3. As in Fig. 3, the "ones” indicate that the corresponding data bits are logically combined to generate each ECC parity bit, and "zeros" indicate that they are not.
  • Fig. 7B generate by EXCLUSIVE ORing ata s D 32 , D 48 and all the data bits asso d with and from EDC circuit 130b. The result, is an EXCLUSIVE ORing of all the data bits D 32 -D 63 . This is illustrated in the H-matrix in Figs. 8A and 8B by the "ones" in the row associated with ECC parity bit C' 8 .
  • the gates 164 and 166 generate by EXCLU SIVE ORing all the data bits associated with all the data bits associated with from EDC circuit 130b and all the data bits associated with from EDC cir cuit 130a. The result is the EXCLUSIVE ORing of the data bits corresponding to the "ones" in the row associated with ECC parity bit C' 6 in the matrix of Figs. 8A and 8B.
  • the EDC circuit 130 works much like the circuit arrangement in Fig. 5.
  • Eight syndrome bits (S' 1 - S' 8 ) are generated by the gates 146 in the bit transfer circuits 142, and the syndrome bits S' 1 -S' 8 are provided to a decoder and logic circuit 170.
  • the decoder circuit 170 has eight enable signal outputs, each for enabling one of eight memory interface chips (not shown), and a ninth output for indicating a double error.
  • the syndrome bits S' 1 -S' 3 are provided to each memory interface chip, and if the memory interface chip is enabled, will cause correction of one of the eight data bits associated with that memory interface chip.
  • syndrome bit S' 8 provides an indication of whether a bit error has occurred in either the data bits D 1 -D 31 or the data bits
  • D 32 -D 63 This occurs because, as illustrated by the matrix in Figs. 8A and 8B, all of the bits D 32 -D 63 are used in generating C' 8 . Thus, if an error occurs in any of the data bits D 32 -D 63 , S' 8 will be at a "1". If an error occurs in any of the data bits D 0 -D 31 , S' 8 will be at a "0". It can thus be seen from the foregoing that the EDC circuit 30 can be used in a 32 bit data bus system and can be combined for use in systems having larger data busses, such as the illustrated 64 bit data bus system.

Abstract

A data processing system (10) implemented in LSI includes a plurality of identical error detection and correction (EDC) circuits (30a-f) operating either in an error correction code (ECC) mode by generating ECC parity bits, or a byte parity mode by generating or checking byte parity bits. In operation in an ECC mode, the EDC circuit (30a) generates ECC check bits for storage in association with a data word being stored in a memory (14). When a data word is fetched from the memory (14) the fetched check bits are compared with check bits generated by the EDC circuit (30a) in an error control circuit (36) to provide syndrome bits. For a single error the syndrome bits cause the provision of an enable signal to that one of a plurality of memory interface circuits (13a-d) containing the error, all the interface circuits (13a-d) being provided with identical syndrome bits identifying a bit position within the interface circuit. The EDC circuits (30) may be used individually with a 32 bit data bus or may be combined for use with a 64 bit data bus.

Description

DATA PROCESSING SYSTEM HAVING ERROR DETECTION AND CORRECTION CIRCUITS
Technical Field
This invention relates to data processing system of the kind including: a data bus arranged to carry a plurality of data bits from a first location to a second location in the system; error bit means adapted to logically combine said data bits to generate a plurality of error correction code check bits; and error control means adapted to compare the generated check bits with a plurality of error correction code check bits associated with the data bits from the first location and thereby generate a plurality of syndrome bits identifying the bit position of any error in the data bits.
Background Art
In designing a data processing system implemented in LSI (large scale integration), it has been found desirable to limit the number of different types of LSI chips within the system. The production of a mask to manufacture each LSI chip-type requires a large amount of design effort and expense in order to arrange the large number of components on the chip and to provide the connections on the chip between such components. Unless production costs are minimized by limiting the total number of different LSI chip-types, an LSI system is not cost competitive with systems implemented in MSI (medium scale integration) or SSI (small scale integration).
A problem associated with LSI chips is that a large number of input/output pins are often required because of the large number of circuit components and the input and output signals used in connection with such components. If the number of pins exceeds the maximum number which may be physically mounted on the chip, techniques are required for spreading functions or operations among several identical chips. Thus, in the case where several bytes of data are operated on at one time as a single data word, the data may be "sliced", for example in bytes, with an identical LSI data chip for receiving each byte in the data .word and operating on each byte individually.
A data processing system of the kind specified is known from U. S. Patent No. 3,568,153. According to the known system the error correction circuitry is adapted to be controlled by an error correction code wherein the syndrome bits form the binary number of the bit position where the error has occurred. The known system has the disadvantage of being unsuitable for utilization in a system wherein respective bytes of data are handled in identical LSI data chips.
Disclosure of the Invention
It is an object of the present invention to provide a data processing system of the kind specified wherein the aforementioned is alleviated. Therefore, according to the present invention there is provided a data processing system of the kind specified characterized in that the system includes a plurality of identical data receiving circuits at the second location arranged to receive respective groups at said data bits, said syndrome bits including a first group of syndrome bits identifying one of a plurality of said groups of data bits where the error has occurred and a second group of syndrome bits identifying the bit position within one group of data bits where the error has occurred, said error control, means being adapted to generate an enabling signal in response to said first group of syndrome bits, the enabling signal being applied in operation to one of said data receiving circuits, which include identical bit decoder means arranged to receive said second group of syndrome bits and thereby control the correction in the enabled data receiving circuit of the erroneous bit. It will be appreciated that a system according to the immediately preceding paragraph can be readily implemented as an LSI system having plural identical data sliced data chips since the control inputs and the control logic or circuiting of each of the data receiving circuits are identical.
Embodiments of the present invention will now be described by way of example with reference to the accompanying drawings.
Brief Description of the Drawings
Fig. 1 is a simplified block diagram illustrating a data processing system and the manner in which an error detection and correction circuit may be used at various locations in the data processing system. Fig. 2 is a block diagram of the error detection and correction circuit illustrated in Fig. 1.
Fig. 3 is an H-parity check matrix illustrating the modified Hamming code used in the error detection and correction circuit of Fig. 2. Fig. 4 is a logic diagram illustrating the
EXCLUSIVE OR tree for generating C7.
Fig. 5 is a block diagram illustrating the manner in which the error detection and correction circuit is connected when used in an ECC mode. Fig. 6 is a block diagram illustrating the manner in which the error detection and correction circuit is connected when used in a byte parity mode.
Figs. 7A and 7B are a circuit block diagram illustrating the use of the error detection and correction circuit of Fig. 2 in a system having a 64 bit data bus.
Figs. 8A arid 8B are an H-parity check matrix illustrating the modified Hamming code used in the circuit of Figs. 7A and 7B.
Best Mode for Carrying Out the Invention
Referring now to Fig. 1, a microprocessor based data processing system 10 is shown. The data processing system 10 includes an arithmetic-logic unit (ALU) 12 which is connected by control and data buses to a main memory 14 by way of a memory interface 16, to a control store 18, to a scratch pad memory 20 and to an input/output (I/O) processor 22.
During normal operation, the ALU 12, as part of a processor, receives instructions and data from the main memory 14. The instructions are decoded and cause a microprogram stored in control store 18 to be selected. The system operates in accordance with the selected microprogram in order to execute each instruction from main memory. The necessary signals to control the sequencing of each component of the system 10 during the execution of each instruction are provided by a processor timing and control circuit 24, and there may be access, through the I/O processor 22 and a bus 50, to peripheral units 26 such as card readers, disc memories, operator consoles, printers, or the like. The ALU performs any necessary arithmetic or logic operations on data and may temporarily store data in the scratch pad memory 20.
As is common in data processing systems implemented in LSI, the ALU 12 and memory interface 16 receive groups or byte-slices of data, with the illustrated ALU and memory interface each comprised of four identical integrated circuit chips, and with each chip receiving and operating on one byte of data.
Error detection and correction (EDC) circuits, designated 30a through 30f, are connected at various locations along the data buses that interconnect the components of the system 10. Each of the EDC circuits is implemented in LSI and is identical. As will be more fully described later, each of the EDC circuits is capable of receiving 32 bits of data, and in response generating byte parity bits for byte parity error detection or generating ECC parity bits for single error correction and double error detection (SEC/DED). It is an advantage of the present embodiment that identical EDC circuits can be utilized at various locations in the data processing system, to provide either byte parity error detection, or single error correction and double error detection.
In Fig. 1, EDC circuit 30a operates in an ECC mode and is connected to receive the 32 bits of data from a bus 32 that transfers data between a location at the memory interface 16 and a location at the main memory 14. The EDC circuit 30a generates seven ECC parity bits which are provided by way of a bus 34 to an error control circuit 36. The error control circuit 36 either passes the generated ECC parity bits onto main memory 14 by way of a bus 38 as check bits to be stored with the data, or compares the ECC parity bits with the check bits coming from main memory along bus 38 to determine if an error has occurred in the data fetched from memory. If a single error has been made in the data, the error control circuit 36 generates appropriate syndrome and enabling bits along a bus 40 to the memory interface to correct the bit in error before being passed along one of four busses 41a, 41b, 41c and 41d to ALU 12. If a double error has been made, a DOUBLE ERROR signal is generated by the error control circuit 36 which can, for example, be delivered to the processor timing and control circuit 24 to cause the data to be fetched again from memory. The EDC circuits 30b and 30c are each operated in a byte parity mode and are used tσ both generate and check byte parity bits. EDC circuit 30b generates byte parity bits on a bus 43 for data leaving the I/O processor 22 along a bus 42 and receives byte parity bits from bus 43 for checking the byte parity of the data carried on the bus 42 from the ALU 12 to the I/O processor 22. The EDC circuit 30c generates byte parity bits on the bus 43 for data carried on bus 42 from the ALU to the I/O processor and receives byte parity bits from EDC circuit 30b on bus 43 for checking the byte parity of data carried on bus 42 from the I/O processor to the ALU.
The EDC circuits 30d, 30e and 30f also operate in a byte parity mode. EDC circuit 30d generates byte parity bits on a bus 45 for data sent to the scratch pad memory 20 and control store 18 along a bus 44, and the EDC circuit 30e checks the byte parity of data on a bus 46 returning from the scratch pad memory 20. EDC circuit 30f checks the byte parity of data on a bus 48 returning from the control store 18. Each of the EDC circuits 30b, 30c, 30e, and 30f generate an error signal (BP ERROR) when a byte parity error is detected.
It should be understood that the manner in which the EDC circuits 30a through 30f are shown is only exemplary, and that a typical data processing system will normally have more EDC circuits than those shown. The actual operation of the EDC circuits 30a through 30f will be explained in more detail in connection with Figs. 2, 3, 4, 5 and 6.
Referring now to Fig. 2, there is shown a block diagram of an EDC circuit 30, which could be used for any one of the EDC circuits 30a through 30f illustrated in Fig. 1. The EDC circuit 30 has data input terminals for receiving 32 bits of data, designated D0 through D31. The EDC circuit 30 also has eight parity bit terminals, designated E0 through E7, and two control inputs, designated CK/GEN and ECC/BP.
The data bits D0 through D31 are received by a connection matrix 54 which, in turn, connects the data lines to a group of EXCLUSIVE OR trees, designated 56. The connection matrix 54 and the EXCLUSIVE OR trees 56 together cause the data bits D0 through D31 to be logically combined to generate ECC parity bits in accordance with the modified Hamming code illustrated by the H-parity check matrix of Fig. 3. Turning momentarily away from Fig. 2 and referring to Figs. 3 and 4, the H-matrix of Fig. 3 illustrates by its patterns of "ones" and "zeros" the particular data bits which will be combined to generate each error correction code (ECC) bit. A "one" indicates that the corresponding data bit is included in the combination of data bits to generate an ECC bit, and a "zero" indicates that the corresponding data bit is not included in the combination. It should be noted that the "ones" and "zeroes" in the H-matrix do not represent logic levels.
Table I below shows the logical equations represented by the rows of the H-matrix for generating each of the ECC parity bits C1 through C7.
Figure imgf000009_0002
The symbol
Figure imgf000009_0001
represents an EXCLUSIVE OR.
Thus, for example, to generate the ECC bit C7, the equation for the ECC bit C7 in Table 1 and the row corresponding to ECC bit C7 in Fig. 3 show that the data bits D0-D16 (represented by "ones" in the matrix) are logically combined, and the data bits D17-D31 (represented by "zeros" in the matrix) are not included in the combination.
From the above it can be seen that C7 is at a "0" logic level when an even number of the data bits D0-D16 are at a "1" logic level, and is at a "1" logic level when an odd number of the data bits are at a "1" logic level. C7 is thus said to have even parity. ECC bits C4, C5 and C6 will also have even parity. C1, C2 and C3, on the other hand, will have odd parity, and those ECC bits are at a "0" logic level when an odd number of the data bits used to generate the ECC bits are at a "1" logic level, and are at a "1" logic level when an even number of the data bits are at a "1" logic level.
In Fig. 4, there is shown an EXCLUSIVE OR tree 58 which could be used to generate C7 in accordance with the logical equation for C7 listed in Table I and discussed above. The group of EXCLUSIVE OR trees represented by the block 56 in Fig. 2 will comprise a plurality of such logic trees, one for generating each ECC bit
Cl-C7.
A description of a connection matrix and a set of EXCLUSIVE OR trees which combine data bits in certain patterns so as to generate ECC bits can be found in a wealth of publications and patents, for example, U. S. Patent No. 3,648,239, entitled "System For Translating to and from Single Error Correction-Double Error Detection Hamming Code and Byte Parity Code", by William C. Carter et al., and U. S. Patent No. 3,836,957, entitled "Data Storage System with Deferred Error Detection", by Keith A. Duke, et aI. Reference can be had to these patents if a more detailed description is desired. The Duke et al. patent is also noteworthy because it discloses a common circuit generating both ECC parity bits and byte parity bits.
It can be seen from the H-matrix of Fig. 3 and the logic diagram of Fig. 4 that the ECC code can be conveniently used to provide byte parity bits in addition to the ECC bits C1-C7. In Fig. 4, the EXCLUSIVE OR tree 58 generates even byte parity for byte 0 (data bits D0-D7) and byte 1 (data bits D8-D15). This is also illustrated by the enclosed portions labeled B0 and B1 in Fig. 3. As also illustrated in Fig. 3, by the enclosed portions labeled B2 and B3, byte parity for bytes 2 and 3 can also be obtained during the generation of the ECC bits C5 and C4, respectively. Referring again to Fig. 2, the output of the
EXCLUSIVE OR trees 56 is shown as the ECC parity bits C1-C7, and the byte parity bits B0-B3. The bits C1-C7 are presented to a set of enabling gates 60, and the byte parity bits B0-B3 are presented to a set of enabling gates 62 and one set of inputs of an EXCLUSIVE OR circuit 64. The seven outputs of the enabling gates 60 are connected to the terminals E1-E7 of the EDC circuit 30. The terminals E4-E7 are bidirectional and are also connected to the outputs of the enabling gates 62 and to a second set of inputs to the EXCLUSIVE OR circuit 64. The output of EXCLUSIVE OR circuit 64 is connected to a set of enabling gates 66, whose four outputs are connected to the terminals E0-E3.
When the EDC circuit 30 is to operate in a byte parity mode, a "1" logic level is applied to the control input ECC/BP. The ECC/BP control output is connected to the control line 68 of the enabling gates 60 and the "1" on control line 68 causes gates 60 to become disabled. The "1" at the ECC/BP input is also applied to an OR gate 70 and causes the inverted outputs of the gate 70 to go to a "0".
When in the byte parity mode (ECC/BP at a "1"), the EDC circuit 30 can be selected either for checking or generating byte parity bits, depending on the signal at the control input CK/GEN, which is connected to the control lines 72 and 74 of the enabling gates 62 and 66 by an OR gate 76. If the signal at CK/GEN is at a "1", the circuit is selected for generating parity and such signal is passed by OR gate 76 to control line 74 to disable the enabling gates 66. Such signal also appears as a "0" at the inverted output of OR gate 76, and is applied to the control line 72 to cause the enabling gates 62 to pass the byte parity bits B0-B3 from the output of the EXCLUSIVE OR trees 56 to the terminals E4-E7.
If the signal at CK/GEN is at a "0", the circuit is selected for checking parity and gates 62 are disabled and gates 66 are enabled. A comparison is made by the EXCLUSIVE OR circuit 64 of each of the byte parity bits B0-B3 generated by the connection matrix 54 and EXCLUSIVE OR trees 56 to each of the corresponding byte parity check bits received on the terminals E4- E7. The result of each bit comparison appears at the four terminals E0-E3, with a "0" indicating a match and no byte parity error, and a "1" indicating a mismatch and a byte parity error in one of the bytes in the data bits D0-D31.
When the ECC parity bits are to be generated by the EDC circuit 30, control input ECC/BP is at a "0", and control input CK/GEN is at a "1". Control lines 72 and 74 are at a "1" and enabling gates 62 and 66 are disabled. Control line 68 is at a "0", and thus the ECC bits C1-C6 at the output of the EXCLUSIVE OR trees 56 are passed through enabling gates 60 to the terminals E1-E7.
It should be noted that the enabling gates 60, 62 and 66 are comprised of NOR gates in order to be enabled by a "0" on the control lines 68, 72 and 74. Accordingly, the C1-C7 and B0-B3 bits are inverted by the enabling gates and are thus inverted when they appear at the terminals E0-E7. From the above, it can be seen that the EDC circuit 30 can be selected, by the signals applied at the control inputs CK/GEN and ECC/BP, to generate ECC parity bits or byte parity bits for data bits D0-D31' or to perform a byte parity check of the data bits D0-D31 by comparing the byte parity check bits provided at terminals E4-E7 with generated byte parity bits B0-B3. Fig. 5 shows in greater detail the connection of the EDC circuit 30a in the data processing system 10 of Fig. 1. The EDC. circuit 30a operates in an ECC mode, i.e., generating ECC parity bits. The data bus 32 carrying bits D0-D31 is connected between the main memory 14 and the EDC circuit 30a, as well as being connected in a byte sliced fashion between the main memory and the memory interface 16. The memory interface 16 is comprised, as illustrated in Fig. 5, of four integrated circuit chips 13a, 13b, 13c and 13d, with only the memory interface chip 13a receiving data byte
0 (bits D0-D7) illustrated in detail. The memory interface chips 13b-13d are identical to 13a, but receive the bytes 1, 2 and 3 and are not illustrated in detail.
The terminals E1-E7 of the EDC circuit 30a provide the inverted ECC parity bits (terminal
E0 is not used), and the bits are carried by bus
Figure imgf000013_0001
34 to the error control circuit 36. The error control circuit 36 is also connected to bus 38 for carrying the ECC check bits C1-C7 between the main memory and the error control circuit.
The memory interface chip 13a illustrated in Fig. 5 includes a bidirectional bit transfer circuit 82 for receiving each of the data bits D0-D7. Only the bit transfer circuit 82 for receiving the data bit D0 is shown in detail, but it should be understood that in each of the four memory interface, chips 13a-I3d, there will be eight bit transfer circuits, one for each bit. Each bit transfer circuit 82 transfers its associated data bit between the bus 32 (from main memory) and one of the busses 41a-41d (from the ALU).
The illustrated bit transfer circuit 82 includes a flip-flop 84 having its input D connected for receiving the bit D0 and its output Q connected to one input of an EXCLUSIVE OR gate 86. The input CLK of flip-flop 84 receives a clocking signal FETCH for latching the bit D0 into the flip-flop when data is to be fetched from the main memory to the ALU. The circuit 82 also includes a second flip-flop 88 which has its input D connected to
Figure imgf000014_0001
eive the bit D0 from bus 41a. The inverted output of the flip-flop 88 is connected to one input of a NOR gate 90 which in turn has its output connected for delivering bit D0 to bus 32. When data is to be passed from the ALU for storage in the main memory, the flip-flop 88 receives a clocking signal STORE for latching the bit DQ from bus 41a into the f and the NOR gate 90 receives an enabling signal
Figure imgf000014_0002
for passing the data bit through to bus 32.
A bit decoder 92 in each memory interface chip has eight outputs SD0-SD7, with one of the outputs, provided to the second input of the EXCLUSIVE OR gate 86 in each bit transfer circuit 82, and causing the bit transferred from bus 32 to busses 41a-41d to be inverted under circumstances to be described in detail later.
As illustrated in Fig. 5, the error control circuit 36 includes a bit comparison and transfer circuit, designated 96, for each of the seven inverted ECC parity bits
Figure imgf000014_0003
delivered by the EDC circuit 30a and each of the corresponding check bits C1-C7 delivered by bus 38. Although only the bit transfer circuit for receiving bit from bus 34 and bit C
Figure imgf000014_0004
1 from bus 38 is illustrated in detail, it should be understood that six other identical bit transfer circuits 96 will also be located in error control circuit 36.
The illustrated bit transfer circuit 96 includes a NOR gate 98 and an EXCLUSIVE NOR gate 100, each having an input for receiving the bit from the EDC
Figure imgf000014_0007
circuit 30a. A second input of NOR gate 98 receives an enabling signal
Figure imgf000014_0005
for inverting and passing the ECC parity bit when the ECC parity bits generated by
Figure imgf000014_0006
the EDC circuit 30a are to be stored in memory with data as ECC check bits. The output of NOR gate 98 is connected to the bus 38. Bus 38 is also connected to the input D of a flip-flop 102. The flip-flop 102 receives a clocking signal FETCH at its input CLK when data is to be fetched from memory to the ALU, causing the check bit C1 from bus 38 to be clocked into the flip-flop 102 and be presented to a second input of the EXCLUSIVE NOR gate 100. The EXCLUSIVE NOR gate 100 provides a comparison of the ECC parity bit generated by the EDC
Figure imgf000015_0001
circuit 30a and the ECC check bit C1 carried on bus 38 when data is fetched from the main memory. The comparison of each ECC parity bit and ECC check bit by the EXCLUSIVE NOR gate 100 in each bit transfer circuit 96 will indicate if an error has been made in the transfer of the data from the main memory to the memory interface. The output of each EXCLUSIVE NOR gate 100 is referred to as a syndrome bit, and the error control circuit 36 will provide seven syndrome bits, designated S1-S7, one syndrome bit from each bit transfer circuit 96. If any one of the data bits which are used to generate each ECC parity bit has arrived at the memory interface chip from main memory and is in error, the syndrome bit associated with such ECC parity bit at the output of EXCLUSIVE NOR gate 100 will be at a "one". By examining all of the syndrome bits, the location of a single error, and the existence of a double error, can be determined in accordance with the following rules: 1. If an odd number of syndrome bits are at a "1" logic level, a single data bit error, has occurred.
2. If an even number of syndrome bits are at a "1" logic level, a double data bit error has occurred.
3. If all syndrome bits are at a "0" logic level, no error has occurred.
The location of any single bit in error is determined, by decoding the seven syndrome bits. If a single error has occurred, the syndrome bits indicate that one of the 32 data bits D0-D31 is in error so that it may be corrected in a manner to be described in greater detail later. The modified Hamming code chosen in the present embodiment and illustrated by the matrix in Fig. 3 is arranged such that a group comprised of the three syndrome bits S1-S3 will, when decoded for indicating a single bit in error, point to the same bit position in each of the four bytes of data received by memory interface chip 13a-13d. A group comprised of the remaining syndrome bits S4-S7 determine, along with bits S1-S3, which byte the single error has occurred in. This feature in correcting a single error can be seen by viewing the H-matrix in Fig. 3, where the patterns of "ones" and "zeros" in the first three rows for generating C1, C2 and C3 are repetitive for byte 0 (D0-D7), byte 1 (D8-D15), byte 2 (D16-D23) and byte 3 (D24-D31). Thus, for each of the bytes 0, 1, 2 and 3, the syndrome bits S1, S2 and S3, when indicating an error in a single bit location in any one of the bytes, will indicate the same bit location in each byte. As mentioned above, the actual byte where the error occurs is determined by also considering the remaining syndrome bits S4-S7. The above feature of the illustrated modified
Hamming code is particularly advantageous in providing single error correction in an LSI system, such as the preferred embodiment. This is illustrated by again referring to Fig. 5, where syndrome bits S1, S2 and S3 are shown presented, to the decoder 92 in each of the memory interface chips 13a-13d. Since the decoder in each memory interface chip receives the same signal (syndrome bits S1, S2 and S3) to indicate the bit position of a single bit error, each of the LSI memory interface chips will have the same decoder logic circuitry and may be constructed identically. The advantage achieved by permitting as many LSI chips to be constructed identically as is possible has been noted earlier.
With regard to the decoder 92 in memory interface chip 13a illustrated in Fig. 5, each one of the eight possible combinations of the bits S1-S3 causes one of its output lines SD0-SD7 to be enabled. In addition, the error control circuit 36 includes a byte decoder and logic circuit 106 for receiving all the syndrome bits S1-S7, and in response, providing an enabling signal on one of four enable outputs. Each of the enable outputs of decoder 106 enables one of the decoders 92 in the four memory interface chips 13a-13d. The decoder and logic circuit 106 has appropriate logic circuitry for determining the byte whose memory interface chip decoder 92 is to be enabled in accordance with the logic equations in Table II.
Figure imgf000017_0001
A "1" for any one of the equations for Byte 0, Byte 1, Byte 2 or Byte 3 will cause the decoder 92 associated with the memory interface chip of that byte to be enabled.
When a particular bit position is indicated by the syndrome bits as in error, the EXCLUSIVE OR gate 86 in the bit transfer circuit 82 associated with that data bit causes the bit to be inverted. For example, if data bit D0 is in error, the syndrome bits S1-S7 will cause decoder and logic circuit 106 to enable only the decoder 92 in the memory interface chip 13a and the syndrome bits S1-S3 will cause the output SD0 of the decoder 92 in memory interface chip 13a to go to a "1". The logic level of the bit D0, when passed through flip-flop 84 to the EXCLUSIVE OR gate 86, will be inverted by gate 86 and be passed on to the bus 41a for transfer to the ALU. When an even number of the syndrome bits S1-S7 are at a "1", appropriate logic in the decoder and logic circuit 106 will cause a DOUBLE ERROR signal to be generated, indicating a double data bit error in the data fetched from main memory.
From the foregoing, it can be seen that the EDC circuit 30a can be made to generate ECC parity bits when data is passed along bus 32 from the memory interface 13 to the main memory, with the ECC parity bits passing through the NOR gate 98 in each of the seven transfer circuits 96 to bus 38 where the ECC bits are stored as check bits with data in the main memory. Furthermore, the EDC circuit 30a can be used with error control circuit 36 in performing an ECC parity check for single or double errors in data passing along bus 32 from the main memory to the memory interface, by generating ECC parity bits for the data so that a comparison can be made with the ECC check bits coming from the main memory on the bus 38. Such comparison is performed by the EXCLUSIVE NOR gate 100 in each of the seven transfer circuits 96, and the syndrome bits resulting from the comparison can be used to perform single error correction and double error detection.
In Fig. 6, there is illustrated in detail the connection of the EDC circuit 30b in the data processing system 10. The EDC circuit 30b operates in a byte parity mode, and in particular, provides byte parity bits for data on bus 42 leaving the I/O processor 22 for the ALU 12, and Byte parity checking for the data on bus 42 entering the I/O processor 22 from the ALU 12. The connection of EDC circuit 30b was previously shown in general form in Fig. 1. Fig. 6 shows a portion of the I/O processor
22, which includes a bidirectional bit transfer circuit 110 for each of the 32 data bits D0-D31 on bus 42. The illustrated transfer circuit 110 transfers the data bit D0 and includes a flip-flop 112 for receiving at its input D the data bit D0 from the bus 42. The output Q of the flip-flop 112 is connected to the bus 50, and when a clocking signal, designated DATA OUT, is received at the input CLK of the flip-flop, indicating data is being transferred out of the ALU to peripheral units, the data bit D0 is clocked into the flip-flop and presented to bus 50. The transfer circuit 110 further includes a flip-flop 114 having its input D connected for receiving the bit D0 from the bus 50, and its inverted output
Figure imgf000019_0004
connected to an input of a NOR gate 116. The output of gate 116 is connected to bus 42. When an enabling signal
Figure imgf000019_0001
is received at a second input of the NOR gate 116, and a clocking signal DATA IN is received at the clocking input CLK of flip-flop 114, indicating data is being transferred into the ALU from the peripheral units, the data bit D0 on bus 50 is transferred through flip-flop 114 and gate 116 to bus 42.
The bit transfer circuit 110 associated with each of the other data bits D1-D31 operates in the same fashion.
The operation of EDC circuit 30b for byte parity generating and checking has been described earlier with reference to Fig. 2. Briefly, when data is transferred from the I/O processor 22 to the ALU 12, the EDC circuit 30b will generate four inverted byte parity bits on the bus 43 for transmission with the
Figure imgf000019_0002
data, which will be used for a parity check at EDC circuit 30c. When, data is transferred along bus 42 from the ALU 12 to the I/O processor 22, the EDC circuit 30b will receive the inverted byte parity check bits
Figure imgf000019_0003
from the EDC circuit 30c by way of the bus 43, and will perform an internal parity check by comparing the byte parity check bits on bus 43 with the byte parity bits generated internally in response to the received data bits D0-D31. A signal BP ERROR is generated on one of the terminals E0-E3 if the comparison indicates a byte parity error.
The above described error detection and correction circuit has a further advantage in that it can be used in a system having a data bus larger than the data bus in the previously illustrated 32 bit system. Figs. 7A and 7B show a 64 bit EDC circuit 130 operating in an ECC mode and having two EDC circuits 130a and 130b, each of the same construction and design as the
EDC circuit 30 illustrated in Fig. 2. The circuit 130 generates eight inverted ECC parity bits
Figure imgf000020_0002
and performs SEC/DED for 64 bits of data, D 0-D63 from a data bus 132. A bus 134 carries ECC check bits C'1-C'8 to or from main memory.
As illustrated, the terminals E1-E7 are used in each of the circuits 130a and 130b and the
Figure imgf000020_0001
bits on those terminals are presented, along with the D32 and D48 data bits, to a 64 bit connection logic and error control circuit 140. The circuit 140 includes a bit comparison and transfer circuit 142 for each of the eight pairs of corresponding ECC parity and check bits associated with the 64 bits of data. Each of the circuits 142 include a flip-flop 144, an EXCLUSIVE NOR gate 146, and a NOR gate 148.
In Figs. 7A and 7B, only one of the circuits 142 is illustrated in detail. The flip-flop 144 in the illustrated circuit 142 receives the ECC check bit C'1 from bus 134 at its input D, and if its clocking input CLK receives a clocking signal FETCH, indicating that data is being fetched from main memory and a check for error in such data is to be made, the ECC check bit C'1 is clocked into the flip-flop and appears at the output Q. The output Q is connected to one input of the EXCLUSIVE NOR gate 146. The other input of the EXCLUSIVE NOR gate 146 receives the inverted ECC parity bit generated within the circuit 140, and the gate 146 performs a comparison and generates a syndrome bit S'1. If data is being transferred into main memory on bus 132, the ECC parity bits generated by circuit 140 are delivered to bus 134 to be transferred with the data as ECC check bits. In such case, the NOR gate 148 in each bit transfer circuit 142 receives an inverted ECC parity bit generated by circuit 140 at one of its inputs. When the other input of NOR gate 148 receives an. enabling signal
Figure imgf000021_0001
indicating that data and check bits are to be stored in memory, each of the inverted
Figure imgf000021_0002
ECC parity bits is inverted and passed by one of the gates 148 to the bus 134 as a check bit.
The connection logic and error control circuit 140 also includes three EXCLUSIVE OR gates 154 which
Figure imgf000021_0003
receive the pairs of corresponding outputs of the circuits 130a and 130b and three EXCLUSIVE NOR gates 155 which receive the pairs of corresponding
Figure imgf000021_0005
outputs of the circuits 130a and 130b. The outputs of the gates 154 provide the inverted ECC parity bits and the outputs of the
Figure imgf000021_0004
Figure imgf000021_0006
gates 155 provide the inverted ECC parity bits and
Figure imgf000021_0007
As seen in Fig. 7B, an EXCLUSIVE OR gate 156 receives the data bits D32 and D48 and an EXCLUSIVE OR gate 158 receives the
Figure imgf000021_0008
bits from the circuit 130b. The outputs of the gates 156 and 158 are received by an EXCLUSIVE OR gate 160, which provides the signal at its output. The
Figure imgf000021_0010
signal and the signal
Figure imgf000021_0011
Figure imgf000021_0009
from circuit 130b are provided to an EXCLUSIVE OR gate
164, and the output of gate 164 is provided, along with the signal from circuit 130a to an EXCLUSIVE NOR gate
Figure imgf000021_0013
166. The output of gate 166 provides the signal
Figure imgf000021_0012
Figs. 8A and 8B show an H parity check matrix illustrating the modified Hamming code used in the 64 bit EDC circuit 130 of Figs. 7A and 7B. It can be seen from Figs. 8A and 8B that, with the exception of the rows associated with C'6 and C'8, the pattern of "ones" and "zeros" for the data bits D32-D63 is substantially repetitive of the pattern for bits D0-D31' and that both are similar to the pattern of the 32 bit matrix of Fig. 3. As in Fig. 3, the "ones" indicate that the corresponding data bits are logically combined to generate each ECC parity bit, and "zeros" indicate that they are not.
The EX VE OR gates 156, 158 and 160 in
Fig. 7B generate by EXCLUSIVE ORing ata s D32,
Figure imgf000022_0003
Figure imgf000022_0001
D48 and all the data bits asso
Figure imgf000022_0004
d with and from EDC circuit 130b. The result, is an EXCLUSIVE ORing of all the data bits D32-D63. This is illustrated in the H-matrix in Figs. 8A and 8B by the "ones" in the row associated with ECC parity bit C'8.
The gates 164 and 166 generate by EXCLU
Figure imgf000022_0005
SIVE ORing all the data bits associated with
Figure imgf000022_0006
all the data bits associated with
Figure imgf000022_0008
from EDC circuit 130b and all the data bits associated with from EDC cir
Figure imgf000022_0007
cuit 130a. The result is the EXCLUSIVE ORing of the data bits corresponding to the "ones" in the row associated with ECC parity bit C'6 in the matrix of Figs. 8A and 8B.
The EDC circuit 130 works much like the circuit arrangement in Fig. 5. Eight syndrome bits (S'1- S'8) are generated by the gates 146 in the bit transfer circuits 142, and the syndrome bits S'1-S'8 are provided to a decoder and logic circuit 170. The decoder circuit 170 has eight enable signal outputs, each for enabling one of eight memory interface chips (not shown), and a ninth output for indicating a double error. The syndrome bits S'1-S'3 are provided to each memory interface chip, and if the memory interface chip is enabled, will cause correction of one of the eight data bits associated with that memory interface chip.
It should be noted that the syndrome bit S'8 provides an indication of whether a bit error has occurred in either the data bits D1-D31 or the data bits
D32-D63. This occurs because, as illustrated by the matrix in Figs. 8A and 8B, all of the bits D32-D63 are used in generating C'8. Thus, if an error occurs in any of the data bits D32-D63, S'8 will be at a "1". If an error occurs in any of the data bits D0-D31, S'8 will be at a "0". It can thus be seen from the foregoing that the EDC circuit 30 can be used in a 32 bit data bus system and can be combined for use in systems having larger data busses, such as the illustrated 64 bit data bus system.

Claims

WHAT IS CLAIMED IS:
1. A data processing system (10) including: a data bus arranged to carry a plurality of data bits (D0-D31) from a first location to a second location in the system; error bit means (30) adapted to logically combine said data bits (D0-D31) to generate a plurality of error correction code check bits; and error control means (36) adapted to compare the generated check bits with a plurality of error correction code check bits associated with the data bits from the first location and thereby generate a plurality of syndrome bits
(S1-S7) identifying the bit position of any error in the data bits, characterized in that the system includes a plurality of identical data receiving circuits (13a-d) at the second location arranged to receive respective groups of said data bits, said syndrome bits including a first group of syndrome bits (S1-S7) identifying one of a plurality of said groups of data bits where the error has occurred and a second group of syndrome bits (S1-S3) identifying the bit position within one group of data bits where the error has occurred, said error control means (36) being adapted to generate an enabling signal in response to said first group of syndrome bits (S1-S7), the enabling signal being applied in operation to one of said data receiving circuits (13a-d), which include identical bit decoder means (92) arranged to receive said second group of syndrome bits (S1-S3) and thereby control the correction in the enabled data receiving circuit (13a-d) of the erroneous bit.
2. A data processing system according to claim 1, characterized in that a memory device (14) is provided at said first location, said plurality of data receiving circuits being formed by respective memory interface circuits (13a-d) adapted to transfer data bits to and from said memory device (14) and formed by respective integrated circuit chips.
3. A data processing system according to claim 2, characterized in that said groups of data bits form respective bytes of a data word formed by said data bits, said error control means (36) including byte decoder means (106) adapted to receive said first group of syndrome bits (S1-S7) and provide said enabling signal in response thereto.
4. A data processing system according to claim 3, characterized in that said plurality of data bits is formed by thirty-two data bits (D0-D31), in that said error control means (36) receives seven generated check bits and seven check bits associated with the data bits from the second location and generates seven syndrome bits (S1-S7), in that each of said bytes is formed by eight data bits, and in that said second group of syndrome bits is formed by three syndrome bits (S1-S3).
5. A data processing system according to claim 4, characterized in that said memory interface circuits (13a-d) include respective inverting means (86) adapted to invert a data bit applied thereto in accordance with an output from the respective bit decoder means (92).
6. A data processing system according to claim 3, characterized in that said error bit means (30) is further adapted to logically combine the data bits in the respective bytes to form respective byte parity bits (B0-B3).
7. A data processing system according to claim 6, characterized in that said error bit means (30) includes selection means (70, 76) adapted to selectively control the production of said error correction code check bits and said byte parity bits (B0-B3).
8. A data processing system according to claim 7, characterized in that said bit error means (30) includes comparison means adapted to compare said byte parity bits with received byte parity bits whereby a byte including an erroneous bit may be identified.
9. A data processing system according to claim 1, characterized in that said error bit means (30) includes a pair of error bit circuits (130a, 130b), said data bits being arranged in a word of eight bytes, each of said error bit circuits (130a, 130b), being arranged to receive four bytes of data bits and to generate seven error correction code check bits.
10. A data processing system according to claim 9, characterized in that said error means (130) includes combining means (154, 155, 156, 158, 160, 164, 166) adapted to combine the seven error correction code bits generated by said pair of error bit circuits (130a, 130b) to provide eight error correction code check bits.
PCT/US1979/000669 1978-09-01 1979-08-27 Data processing system having error detection and correction circuits WO1980000626A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US939298 1978-09-01
US05/939,298 US4201337A (en) 1978-09-01 1978-09-01 Data processing system having error detection and correction circuits

Publications (1)

Publication Number Publication Date
WO1980000626A1 true WO1980000626A1 (en) 1980-04-03

Family

ID=25472905

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/US1979/000669 WO1980000626A1 (en) 1978-09-01 1979-08-27 Data processing system having error detection and correction circuits

Country Status (4)

Country Link
US (1) US4201337A (en)
EP (1) EP0016823A4 (en)
JP (1) JPS55500610A (en)
WO (1) WO1980000626A1 (en)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0220876A2 (en) * 1985-10-25 1987-05-06 Sequoia Systems, Inc. Self-checking error-correcting encoder/decoder
US6938193B1 (en) 1999-07-12 2005-08-30 Matsushita Electric Industrial Co., Ltd. ECC circuit-containing semiconductor memory device and method of testing the same

Families Citing this family (23)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4355391A (en) * 1980-03-31 1982-10-19 Texas Instruments Incorporated Apparatus and method of error detection and/or correction in a data set
US4417339A (en) * 1981-06-22 1983-11-22 Burroughs Corporation Fault tolerant error correction circuit
JPS59117800A (en) * 1982-12-25 1984-07-07 Fujitsu Ltd One-bit error processing system of buffer storage
US4538270A (en) * 1983-04-04 1985-08-27 Motorola, Inc. Method and apparatus for translating a predetermined Hamming code to an expanded class of Hamming codes
US5598422A (en) * 1990-04-30 1997-01-28 Dell Usa, L.P. Digital computer having an error correction code (ECC) system with comparator integrated into re-encoder
US5313475A (en) * 1991-10-31 1994-05-17 International Business Machines Corporation ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5491702A (en) * 1992-07-22 1996-02-13 Silicon Graphics, Inc. Apparatus for detecting any single bit error, detecting any two bit error, and detecting any three or four bit error in a group of four bits for a 25- or 64-bit data word
US5463761A (en) * 1992-10-02 1995-10-31 Compaq Computer Corp. Extended duration high resolution timer contained in two integrated circuits and having alternating data sequences provided from different integrated circuits
US5490155A (en) * 1992-10-02 1996-02-06 Compaq Computer Corp. Error correction system for n bits using error correcting code designed for fewer than n bits
US5771247A (en) * 1994-10-03 1998-06-23 International Business Machines Corporation Low latency error reporting for high performance bus
US5555250A (en) * 1994-10-14 1996-09-10 Compaq Computer Corporation Data error detection and correction system
US6216247B1 (en) * 1998-05-29 2001-04-10 Intel Corporation 32-bit mode for a 64-bit ECC capable memory subsystem
KR100287018B1 (en) * 1998-08-07 2001-04-16 윤종용 Semiconductor memory device with error correction circuit
US7451270B1 (en) * 2003-09-30 2008-11-11 Unisys Corporation System and method for detecting and correcting errors in a control system
US7546514B2 (en) * 2005-04-11 2009-06-09 Hewlett-Packard Development Company, L.P. Chip correct and fault isolation in computer memory systems
US7506226B2 (en) * 2006-05-23 2009-03-17 Micron Technology, Inc. System and method for more efficiently using error correction codes to facilitate memory device testing
US7814300B2 (en) 2008-04-30 2010-10-12 Freescale Semiconductor, Inc. Configurable pipeline to process an operation at alternate pipeline stages depending on ECC/parity protection mode of memory access
US20090276587A1 (en) * 2008-04-30 2009-11-05 Moyer William C Selectively performing a single cycle write operation with ecc in a data processing system
US8365049B2 (en) * 2008-12-15 2013-01-29 Lsi Corporation Soft-error detection for electronic-circuit registers
JP2013070122A (en) * 2011-09-20 2013-04-18 Fujitsu Ltd Error correction device, error correction method and arithmetic unit
CN103389922B (en) * 2013-07-25 2016-03-02 苏州国芯科技有限公司 For the bus ECC check system of random access memory
KR102178137B1 (en) * 2014-08-26 2020-11-12 삼성전자주식회사 Semiconductor memory device, method of correcting error in the same and memory system including the same
US11640331B2 (en) * 2021-07-29 2023-05-02 Texas Instruments Incorporated Securing physical layer startup from a low-power state

Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568153A (en) * 1968-09-16 1971-03-02 Ibm Memory with error correction
US3836957A (en) * 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US3893071A (en) * 1974-08-19 1975-07-01 Ibm Multi level error correction system for high density memory
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US4077565A (en) * 1976-09-29 1978-03-07 Honeywell Information Systems Inc. Error detection and correction locator circuits
US4139148A (en) * 1977-08-25 1979-02-13 Sperry Rand Corporation Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory

Family Cites Families (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3218612A (en) * 1961-11-09 1965-11-16 Ibm Data transfer system
US3893070A (en) * 1974-01-07 1975-07-01 Ibm Error correction and detection circuit with modular coding unit

Patent Citations (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US3568153A (en) * 1968-09-16 1971-03-02 Ibm Memory with error correction
US3836957A (en) * 1973-06-26 1974-09-17 Ibm Data storage system with deferred error detection
US3893071A (en) * 1974-08-19 1975-07-01 Ibm Multi level error correction system for high density memory
US3949208A (en) * 1974-12-31 1976-04-06 International Business Machines Corporation Apparatus for detecting and correcting errors in an encoded memory word
US4077565A (en) * 1976-09-29 1978-03-07 Honeywell Information Systems Inc. Error detection and correction locator circuits
US4139148A (en) * 1977-08-25 1979-02-13 Sperry Rand Corporation Double bit error correction using single bit error correction, double bit error detection logic and syndrome bit memory

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
See also references of EP0016823A4 *

Cited By (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0220876A2 (en) * 1985-10-25 1987-05-06 Sequoia Systems, Inc. Self-checking error-correcting encoder/decoder
EP0220876A3 (en) * 1985-10-25 1988-07-13 Sequoia Systems, Inc. Self-checking error-correcting encoder/decoder
US6938193B1 (en) 1999-07-12 2005-08-30 Matsushita Electric Industrial Co., Ltd. ECC circuit-containing semiconductor memory device and method of testing the same

Also Published As

Publication number Publication date
EP0016823A4 (en) 1982-01-22
EP0016823A1 (en) 1980-10-15
US4201337A (en) 1980-05-06
JPS55500610A (en) 1980-09-04

Similar Documents

Publication Publication Date Title
US4201337A (en) Data processing system having error detection and correction circuits
JP4071940B2 (en) Shared error correction for memory design
US4609995A (en) Priority controller
US5555250A (en) Data error detection and correction system
US5490155A (en) Error correction system for n bits using error correcting code designed for fewer than n bits
US5435000A (en) Central processing unit using dual basic processing units and combined result bus
US4450561A (en) Method and device for generating check bits protecting a data word
EP0186719B1 (en) Device for correcting errors in memories
EP0540450A1 (en) ECC function with self-contained high performance partial write or read/modify/write and parity look-ahead interface scheme
US5774481A (en) Reduced gate error detection and correction circuit
US8219880B2 (en) Combined single error correction/device kill detection code
US4388684A (en) Apparatus for deferring error detection of multibyte parity encoded data received from a plurality of input/output data sources
US5331645A (en) Expandable digital error detection and correction device
US5335234A (en) Error correction code pipeline for interleaved memory system
EP0383899B1 (en) Failure detection for partial write operations for memories
US2958072A (en) Decoder matrix checking circuit
US3763470A (en) Circuit arrangement for error detection in data processing systems
US3622984A (en) Error correcting system and method
US5515507A (en) Multiple width data bus for a microsequencer bus controller system
US4035766A (en) Error-checking scheme
US20220382627A1 (en) Infrastructure integrity checking
JPS6085627A (en) Circulating complete binary code decoder
US3458860A (en) Error detection by redundancy checks
JPH1165618A (en) Base board and power source unit mounted on the same, and cpu unit
JPS58168149A (en) Extended logic decoding circuit

Legal Events

Date Code Title Description
AK Designated states

Designated state(s): JP

AL Designated countries for regional patents

Designated state(s): DE FR GB