DP8406 (54F 74F632) 32-Bit Parallel Error Detection and Correction Circuit
May 1991
DP8406 (54F 74F632)
32-Bit Parallel Error Detection and Correction Circuit
General Description
The DP8406 device is a 32-bit parallel error detection and
correction circuit (EDAC) in a 52-pin or 68-pin package The
EDAC uses a modified Hamming code to generate a 7-bit
check word from a 32-bit data word This check word is
stored along with the data word during the memory write
cycle During the memory read cycle the 39-bit words from
memory are processed by the EDAC to determine if errors
have occurred in memory
Single-bit errors in the 32-bit data word are flagged and cor-
rected
Single-bit errors in the 7-bit check word are flagged and the
CPU sends the EDAC through the correction cycle even
though the 32-bit data word is not in error The correction
cycle will simply pass along the original 32-bit data word in
this case and produce error syndrome bits to pinpoint the
error-generating location
Dual-bit errors are flagged but not corrected These errors
may occur in any two bits of the 39-bit word from memory
(two errors in the 32-bit data word two errors in the 7-bit
check word or one error in each word) The gross-error
condition of all LOWs or all HIGHs from memory will be
detected Otherwise errors in three or more bits of the
39-bit word are beyond the capabilities of these devices to
detect
Read-modify-write (byte-control) operations can be per-
formed by using output latch enable LEDBO and the indi-
vidual OEB
0
through OEB
3
byte control pins
Diagnostics are performed on the EDACs by controls and
internal paths that allow the user to read the contents of the
Data Bit and Check Bit input latches These will determine if
the failure occurred in memory or in the EDAC
Features
Y
Y
Y
Y
Y
Y
Y
Detects and corrects single-bit errors
Detects and flags dual-bit errors
Built-in diagnostic capability
Fast write and read cycle processing times
Byte-write capability
Guaranteed 4000V minimum ESD protection
Fully pin and function compatible with
SN74ALS632A thru SN74ALS635 series
TI’s
Simplified Functional Block
TL F 9579 – 9
Device
DP8406
DP8406
Package
52-Pin
68-Pin
Byte-Write
yes
yes
Output
TRI-STATE
TRI-STATE
FAST and TRI-STATE are registered trademarks of National Semiconductor Corporation
C
1995 National Semiconductor Corporation
TL F 9579
RRD-B30M105 Printed in U S A
Logic Symbol
TL F 9579 – 1
Unit Loading Fan Out
54F 74F
Pin Names
CB
0
– CB
6
DB
0
– DB
31
OEB
0
–OEB
3
LEDBO
OECB
S
0
S
1
ERR
MERR
Description
Check Word Bit Input
or TRI-STATE Output
Data Word Bit Input
or TRI-STATE Output
Output Enable Data Bits
Output Latch Enable Data Bit
Output Enable Check Bit
Select Pins
Single Error Flag
Multiple Error Flag
UL
HIGH LOW
3 5 1 083
150 40 (33 3)
3 5 1 083
150 40 (33 3)
10 10
10 10
10 10
10 10
50 33 3
50 33 3
Input I
IH
I
IL
Output I
OH
I
OL
70
mA
b
650
mA
b
3 mA 24 mA (20 mA)
70
mA
b
650
mA
b
3 mA 24 mA (20 mA)
20
mA
b
0 6 mA
20
mA
b
0 6 mA
20
mA
b
0 6 mA
20
mA
b
0 6 mA
b
1 mA 20 mA
b
1 mA 20 mA
Connection Diagrams
Pin Assignment
for LCC and PCC
52-Pin
Pin Assignment
for LCC and PCC
68-Pin
TL F 9579– 3
Order Number DP8406QV (74F632QC)
See NS Package Number V52A
NC
No internal connection
TL F 9579 – 8
Order Number DP8406V (74F632VC)
See NS Package Number V68A
2
Connection Diagram
(Continued)
Pin Assignment for
Side Brazed DIP
Functional Description
MEMORY WRITE CYCLE DETAILS
During a memory write cycle the check bits (CB
0
through
CB
6
) are generated internally in the EDAC by seven 16-in-
put parity generators using the 32-bit data word as defined
in Table II These seven check bits are stored in memory
along with the original 32-bit data word This 32-bit word will
later be used in the memory read cycle for error detection
and correction
ERROR DETECTION AND CORRECTION DETAILS
During a memory read cycle the 7-bit check word is re-
trieved along with the actual data In order to be able to
determine whether the data from memory is acceptable to
use as presented to the bus the error flags must be tested
to determine if they are at the HIGH level
The first case in Table III represents the normal no-error
conditions The EDAC presents HIGHs on both flags The
next two cases of single-bit errors give a HIGH on MERR
and a LOW on ERR which is the signal for a correctable
error and the EDAC should be sent through the correction
cycle The last three cases of double-bit errors will cause
the EDAC to signal LOWs on both ERR and MERR which is
the interrupt indication for the CPU
Error detection is accomplished as the 7-bit check word and
the 32-bit data word from memory are applied to internal
parity generators checkers If the parity of all seven group-
ings of data and check bits is correct it is assumed that no
error has occurred and both error flags will be HIGH
TL F 9579 – 2
Order Number DP8406D (74F632DC)
See NS Package Number D52A
TABLE I Write Control Function
Memory
Cycle
Write
EDAC
Function
Generate
Check Word
Control
S
1
S
0
L
L
DB Control
OEB
n
H
DB Output
Latch
LEDBO
X
CB
Control
OECB
L
Error Flags
ERR
MERR
H
H
Data I O
Check I O
Output
Check Bit
Input
See Table II for details of check bit generation
3
Functional Description
(Continued)
TABLE II Parity Algorithm
32-Bit Data Word
Check Word
Bit
31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0
CB
0
CB
1
CB
2
CB
3
CB
4
CB
5
CB
6
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X
X X X
X X X X X X X X
X
X
X
X
X
X
X
X
X
X X
X X X X
X
X
X X X
X X X X X X
X
X
X
X X
X
X X X
X
X X
The seven check bits are parity bits derived from the matrix of data bits as indicated by X for each bit
TABLE III Error Function
Total Number of Errors
32-Bit Data Word
0
1
0
1
2
0
H
e
HIGH Voltage Level
L
e
LOW Voltage Level
Error Flags
ERR
H
L
L
L
L
L
MERR
H
H
H
L
L
L
Data Correction
Not Applicable
Correction
Correction
Interrupt
Interrupt
Interrupt
7-Bit Check Word
0
0
1
1
0
2
If the parity of one or more of the check groups is incorrect
an error has occurred and the proper error flag or flags will
be set LOW Any single error in the 32-bit data word will
change the state of either three or five bits of the 7-bit
check word Any single error in the 7-bit check word chang-
es the state of only that one bit In either case the single
error flag (ERR) will be set LOW while the dual error flag
(MERR) will remain HIGH
Any 2-bit error will change the state of an even number of
check bits The 2-bit error is not correctable since the parity
tree can only identify single-bit errors Both error flags are
set LOW when any 2-bit error is detected
Three or more simultaneous bit errors can cause the EDAC
to believe that no error a correctable error or an uncorrect-
able error has occurred and will produce erroneous results
in all three cases It should be noted that the gross-error
conditions of all LOWs and all HIGHs will be detected
As the corrected word is made available on the data I O
port (DB
0
through DB
31
) the check word I O port (CB
0
through CB
6
) presents a 7-bit syndrome error code This
syndrome error code can be used to locate the bad memory
chip See Table V for syndrome decoding
READ-MODIFY-WRITE (BYTE CONTROL) OPERATIONS
The ’F632 device is capable of byte-write operations The
39-bit word from memory must first be latched into the Data
Bit and Check Bit input latches This is easily accomplished
by switching from the read and flag mode (S
1
e
H S
0
e
L)
to the latch input mode (S
1
e
H S
0
e
H) The EDAC will
then make any corrections if necessary to the data word
and place it at the input of the output data latch This data
word must then be latched into the output data latch by
taking LEDBO from a LOW to a HIGH
4
Byte control can now be employed on the data word
through the OEB
0
through OEB
3
controls OEB
0
controls
DB
0
–DB
7
(byte 0) OEB
1
controls DB
8
–DB
15
(byte 1)
OEB
2
controls DB
16
–DB
23
(byte 2) and OEB
3
controls
DB
24
–DB
31
(byte 3) Placing a HIGH on the byte control will
disable the output and the user can modify the byte If a
LOW is placed on the byte control then the original byte is
allowed to pass onto the data bus unchanged If the original
data word is altered through byte control a new check word
must be generated before it is written back into memory
This is easily accomplished by taking controls S
1
and S
0
LOW Table VI lists the read-modify-write functions
DIAGNOSTIC OPERATIONS
The ’F632 is capable of diagnostics that allow the user to
determine whether the EDAC or the memory is failing The
diagnostic function tables will help the user to see the possi-
bilities for diagnostic control In the diagnostic mode
(S
1
e
L S
0
e
H) the check word is latched into the input
latch while the data input latch remains transparent This
lets the user apply various data words against a fixed known
check word If the user applies a diagnostic data word with
an error in any bit location the ERR flag should be LOW If a
diagnostic data word with two errors in any bit location is
applied the MERR flag should be LOW After the check
word is latched into the input latch it can be verified by
taking OECB LOW This outputs the latched check word
The diagnostic data word can be latched into the output
data latch and verified By changing from the diagnostic
mode (S
1
e
L S
0
e
H) to the correction mode (S
1
e
H S
0
e
H) the user can verify that the EDAC will correct the
diagnostic data word Also the syndrome bits can be pro-
duced to verify that the EDAC pinpoints the error location
Table VII lists the diagnostic functions
Functional Description
(Continued)
TABLE IV Read Flag and Correct Function
Memory
Cycle
Read
Read
EDAC
Function
Read
Flag
Control
S
1
S
0
H
H
L
H
Data I O
Input
Latched
Input
Data
Output
Corrected
Data Word
DB Control
OEB
n
H
H
DB Output
Latch
LEDBO
X
L
Check I O
Input
Latched
Input
Check Word
Output
Syndrome
Bits (Note 2)
CB
Control
OECB
H
H
Error Flags
ERR
MERR
Enabled (Note 1)
Enabled (Note 1)
Latch Input
Data Check
Bits
Output
Corrected Data
Syndrome Bits
Read
H
H
L
X
L
Enabled (Note 1)
Note 1
See Table III for error description
Note 2
See Table V for error location
TABLE V Syndrome Decoding
Syndrome Bits
6
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
5
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
4
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
3
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
2
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
1
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
0
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
unc
2-Bit
2-Bit
unc
2-Bit
unc
unc
2-Bit (Note 2)
2-Bit
unc
DB
31
2-Bit
unc
2-Bit
2-Bit
DB
30
2-Bit
unc
DB
29
2-Bit
DB
28
2-Bit
2-Bit
DB
27
DB
26
2-Bit
2-Bit
DB
25
2-Bit
DB
24
unc
2-Bit
Error
6
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
5
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
Syndrome Bits
4
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
H
3
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
L
L
L
L
L
L
L
L
H
H
H
H
H
H
H
H
2
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
L
L
L
L
H
H
H
H
1
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
L
L
H
H
0
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
L
H
2-Bit
unc
DB
7
2-Bit
DB
6
2-Bit
2-Bit
DB
5
DB
4
2-Bit
2-Bit
DB
3
2-Bit
DB
2
unc
2-Bit
DB
0
2-Bit
2-Bit
unc
2-Bit
DB
1
unc
2-Bit
2-Bit
unc
unc
2-Bit
unc
2-bit
2-bit
CB
6
Error
CB
X
e
Error in check bit X
DB
Y
e
Error in data bit Y
2-Bit
e
Double-bit error
unc
e
Uncorrectable multi-bit error
Note
2-bit and unc condition will cause both ERR and MERR to be LOW
Note 1
Syndrome bits for all LOWs MERR and ERR LOW for all LOWs
only ERR LOW for DB
30
error
Note 2
Syndrome bits for all HIGHs
5