• Corrects all single bit errors; Detects all double bit errors
and some multiple bit errors
• Configurable 16-deep bus read/write FIFOs with flags
• Simultaneous check bit generation and correction of memory
data
• Supports partial word writes on byte boundaries
• Low noise output
• Sophisticated error diagnostics and error logging
• Parity generation on system data bus
• 208-pin Plastic Quad Flatpack
SIMPLIFIED FUNCTIONAL BLOCK DIAGRAM
ERR
MERR
READ BUFFER
16 WORDS BY
M
U
X
64
MD
LATCH
OUT
M
U
X
ERROR
CORRECT
DESCRIPTION:
The IDT49C466/A 64-bit Flow-thruEDC is a high-speed
error detection and correction unit that ensures data integrity
in memory systems. The flow-thru architecture, with separate
system and memory data buses, is ideally suited for pipelined
memory systems.
Implementing a modified Hamming code, the
IDT49C466/A corrects all single bit hard and soft errors, and
detects all double bit errors. The read/write FIFOs can store
up to sixteen words. FIFO full and empty flags indicate
whether additional data can be written to or read from the
EDC.
Check bit generation for partial word writes on byte boundaries is supported on the IDT49C466/A.
Diagnostic features include a check bit register, syndrome
registers, a four bit error counter which logs up to 15 errors,
and an error data register which stores the complete error data
word. Parity can be generated and checked on the system
bus by the IDT49C466/A.
DIAGNOSTIC
& STATUS
CHECK-BIT
COMPARATOR &
SYNDROME
GENERATOR &
ERROR
DETECTOR
REGISTERS
MD
CHECK-BIT
GENERATOR
MD
CHK-BIT
LATCH
MD
LATCH
IN
CBI0-7
SD0-63
PARITY
P0-7
The IDT logo is a registered trademark and Flow-thruEDC is a trademark of Integrated Device Technology Inc.
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
PIN DESCRIPTION
Pin NameI/ODescription
Data Buses
0-63I/OSystem Data Bus: is a bidirectional 64-bit bus interfacing to the system or CPU. When System Output
SD
Enable,
SOE
, is HIGH or Byte Enable, BE
SOE
, is LOW and Byte Enable, BE
0-63I/OMemory Data Bus: is a bidirectional 64-bit bus interfacing to the memory. During a read cycle, (
MD
HIGH) memory data is input for error detection and correction. Data is output on the Memory Data
Bus, when
CBI
0-7ICheck Bit Inputs: interface to the check bit memory.
CBSYN
0-7OCheck Bit/Syndrome Output: When
CBSEL is HIGH and
MOE
is LOW.
MOE
is HIGH, the syndrome bits are output. The bus is tristated when
1 and CBSEL = 0.
P
0-7I/OParity for bytes 0 to 7: These pins are parity inputs when the corresponding Byte Enable (BE) is LOW
or
SOE
is HIGH, and are used to generate the parity error signal(
the corresponding Byte Enable (BE) is HIGH and
Control Inputs
SOE
0-7IByte Enable: is used along with
BE
ISystem Output Enable: enables system data bus output drivers if the corresponding Byte Enable
(BE
0-7) is HIGH.
example, if BE
1 is HIGH, the System data outputs for byte 1 (SD8-15) are enabled. The BE0-7 pins also
control the byte mux. If a particular BE is HIGH during a memory read cycle, that byte is fed back to
the memory data bus. This is used during partial word write operations and writing corrected data back
to memory.
MOE
IMemory Output Enable: when LOW, enables the output buffers of the memory data bus (MD) and
CBSYN bus. It also controls the CBSYN mux. When LOW, checkbits are selected, when HIGH,
syndrome is selected.
MDILEIMemory Data Input Latch Enable: on the HIGH-to-LOW transition, latches MD and CBI in MD input
latch and MD check bit latch respectively. The latches are transparent when MDILE is HIGH.
MDOLE
SDOLE
IMemory Data Output Latch Enable: latches data in the MD output latch on the LOW-to-HIGH
transition of
MDOLE
. When
MDOLE
ISystem Data Output Latch Enable: latches data in the SD output latch and the SD checkbit latch
on the LOW-to-HIGH transition of
SDILEISystem Data Input Latch Enable: latches SD in the SD input latch on the HIGH-to-LOW transition.
When SDILE is HIGH, the SD input latch is transparent.
WBSELIWrite FIFO Select: when HIGH, the write FIFO is selected. When WBSEL is LOW, the SD input latch
is selected.
WBENWBREN
IWrite FIFO Enable: when
LOW,
IWrite FIFO Read Enable: when
allows SD data to be written to the write FIFO on the SCLK rising edge.
edge.
0-1IReset and Select pins (read and write FIFO FIFOs)
RS
RS
1RS0Function
00Reset 16-deep FIFO or first 8-deep FIFO
01Reset second 8-deep FIFO
10Select 16-deep FIFO or first 8-deep FIFO
11Select second 8-deep FIFO
0-7, is LOW, data can be input. When System Output Enable,
0-7, is HIGH, the SD bus output drivers are enabled.
MOE
is LOW the generated check bits are output. When
PERR
). These pins are outputs when
SOE
is LOW.
SOE
, to enable the System Data outputs for a particular byte. For
is LOW, the MD output latch is transparent.
SDOLE
. The latch is transparent when
LOW,
allows data to be read from the the write FIFO on MCLK rising
SDOLE
is LOW.
MOE
MOE
=
2617 tbl 01
11.74
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
PIN DESCRIPTION (Continued)
Pin NameI/ODescription
RBSELIRead FIFO Select: when HIGH, read FIFO is selected (data goes through read FIFO, not MD output
latch). When LOW, the MD output latch is selected.
RBEN
RBREN
CBSEL
MEN
Clock Inputs
MCLKIMemory Clock: on the LOW-to-HIGH transition of MCLK, memory data is written to the read FIFO
SCLKISystem Clock: on the LOW-to-HIGH transition of the SCLK, data is read from the read FIFO when
SYNCLKISyndrome Clock: Used to load diagnostic registers. When an error occurs, Error Counter is
Status Outputs
WBEF
WBFFRBEF
RBHF
RBFFERRMERR
PERR
Power Supply
V
CCPPower Supply Voltage.
GNDPGround.
IRead FIFO Enable: when LOW, allows data to be written into the read FIFO on the LOW-to-HIGH
transition of the memory clock.
IRead FIFO Enable: when LOW, allows data to be read from the read FIFO on the LOW-to-HIGH
transition of SCLK
ICheckbit Syndrome Output Enable: Controls the CBSYN output buffer.When HIGH, the buffer is
enabled. When CBSEL is LOW,
IMode Enable Input: when LOW, SD
MOE
controls the buffer.
0-15 is loaded into the EDC mode register on the LOW-to-HIGH
transition of the SCLK. This pin must be held LOW for the entire SCLK HIGH period, as shown in Figure
4.
when
RBEN
is LOW. Data is read from the write FIFO when
WBREN
is LOW, on the LOW-to-HIGH
transition of MCLK.
RBREN
the LOW-to-HIGH transition of SCLK. Clocks data into mode register when
is LOW. Data on the system data bus is written into the write FIFO when
MEN
WBEN
is LOW on
is LOW.
incremented on the rising SYNCLK edge (up to 15 errors). On the first error after a diagnostic reset,
SYNCLK rising edge clocks data into Check Bit, Syndrome, Error Type and Error Data registers. One
of the syndrome registers has new data clocked in on every SYNCLK rising edge.
OWrite FIFO Empty Flag: when LOW, indicates that the write FIFO is empty. After a reset, the
WBEF
goes LOW.
OWrite FIFO Full Flag: when LOW, indicates that the write FIFO is full. After a reset,
ORead FIFO Empty Flag: when LOW, indicates that the read FIFO is empty. After a reset, the
WBFF
goes HIGH.
RBEF
goes LOW.
ORead FIFO Half-full Flag: when LOW, indicates that there are eight or more data words (in the 16-
deep configuration) or four or more data words (in the dual 8-deep configuration) in the read FIFO. The
flag will return HIGH when less than eight (or four) data words are in the FIFO.
ORead FIFO Full Flag: when LOW, indicates that the read FIFO is full. After a reset,
OError Flag: when
OMultiple Error Flag: when
ERR
is LOW, a data error is indicated. The
MERR
is LOW, a multiple data error is indicated. The
ERR
is not latched internally.
RBFF
MERR
goes HIGH.
is not latched
internally.
OParity Error Flag: when LOW, indicates a parity error on the system data bus input.
2617 tbl 02
11.75
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
1. The table indicates the data bits participating in the checkbit generation. For example, checkbit CB0 is the Exclusive-OR function of the 64 data input bits
marked with an X.
2. The checkbit is generated as either an XOR or an XNOR of the 64 data bits noted by an “X” in the table.
(1, 2)
2617 tbl 03
2617 tbl 04
2617 tbl 05
11.76
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
1. The table indicates the decoding of the eight syndrome bits to identify the bit-in-error for a single-bit error, or whether a double or triple-bit error was detected.
The all-zero case indicates no error detected.
* = No errors detected
# = The number of the single data bit-in-error
T = Two errors detected
M = Three or more detected
C# = The number of the single checkbits in error
(1)
T
30
M
T
31
T
T
M
M
T
T
M
T
M
M
T
IDT49C466 OPERATION
The EDC is involved in two types of operation — memory
reads and memory writes. With the IDT49C466, both these
can be accomplished by utilizing either of two possible data
paths — one incorporating the FIFO and the other without the
FIFO. These operations are treated separately below.
Memory Write
The involvement of the EDC in this type of operation is
relatively minimal since it does not call for any error checking.
It only generates the check bits associated with each 64-bit
wide data word. The EDC can be in generate-detect or normal
mode for this operation.
When a write operation is performed, it must be ensured
that the SD output buffer (enabled by
disabled so that no attempt is made to simultaneously transfer
read data onto the System Data (SD) Bus.
When the write FIFO (WFIFO) is bypassed (WBSEL
LOW), data passes through the SD Latch In. To latch data, the
SDILE signal should be pulled LOW. The special case of a
SOE
and BE
0-7) is
partial word write or byte merge is discussed later. Here it is
assumed that all 64 bits are being written. Consequently,
0-7 must all be LOW.
BE
The data is fed to the SD Checkbit generator where
appropriate checkbits are generated. Both system data and
the generated checkbits can be latched by pulling the
signal HIGH. Asserting
MOE
enables the MD output buffer
and data is output to the Memory Data (MD) bus.
or
MOE
(=0) need to be asserted to enable the CBSYN output
SDOLE
CBSEL
buffer and output checkbits on CBSYN0-7.
When the write FIFO is selected (WBSEL = 1), instead of
asserting SDILE,
the write FIFO on the rising edge of SCLK.
WBEN
is asserted and data is clocked into
WBFF
is asserted
when the WFIFO is full and this inhibits further write attempts
(see section on "Clock Skew" and "R/W FIFO Operation at
Boundaries") to the WFIFO. When
WBREN
is asserted, data
can be clocked out of the write FIFO on the rising edge of
MCLK.
WBEF
is asserted when the WFIFO is empty and this
inhibits further read attempts (see section on "Clock Skew")
from the WFIFO.
11.77
(=1)
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
BEn = 0 => Path A
BEn = 1 => Path B
BE0-7
MD
LATCH OUT
PATH B
64
64
64
SD
LATCH IN
WRITE BUFFER
64
64
64
Figure 1. Byte Merge
Memory Read
During a memory read, data and the corresponding input
checkbits are read from the MD bus and CBI
0-7, respectively.
The memory and checkbit data may both be latched as they
come in (MD Latch In and MD Checkbit latch) by the MDILE
signal. Memory data is sent to the MD checkbit generator
(where checkbits corresponding to the input data are generated) and to the error correct circuitry. The generated checkbits
are X-ORed with the input checkbits to produce the syndrome
word. This is sent to the error correction circuitry which
generates the corrected data (normal mode). The corrected
data is output to the SD bus via either of two data paths. When
RBSEL is LOW, data flows through MD Latch Out. Pulling
MDOLE
by asserting
HIGH latches this data. The output buffer is enabled
SOE
(=0) and BE
0-7 (=1). Corrected data can be
written back to memory by enabling the MD output buffer. In
order to ensure selection of the write back path (Path B in
figure 1) at the byte mux, BEO-7 should be all 1's while
WBSEL = 0. If WBSEL = 1, buffered BEO-7 from the output
of the write FIFO controls the byte mux.
If the read FIFO (RFIFO) is selected (RBSEL HIGH), data
is clocked into the FIFO (Read_FIFO Write) when
LOW, on the rising edge of MCLK.
RBFF
is asserted when the
RBEN
is
RFIFO is full and this inhibits further write attempts to the
RFIFO (see section on "Clock Skew" and "R/W FIFO operation at Boundaries"). Data is clocked out of the FIFO
(Read_FIFO Read) when
of SCLK.
RBEF
is asserted when the RFIFO is empty and this
RBREN
is LOW on the rising edge
inhibits further read attempts (see section on "Clock Skew")
from the RFIFO.
Note: In case of multiple error SD should be ignored in correct
mode
MD BUS
SD
LATCH OUT
64
WBSEL
2617 drw 05
M
U
X
M
U
X
PATH A
BYTE
MUX
8
Clock Skew
A skew between the read and write clocks, as specified by
tskew, is recommended. This specification is not a stringent
one, in the manner of setup and hold times, but is important in
preempting latencies at FIFO boundaries. For example –
When a word is written to an empty FIFO, there is a finite delay
before the FIFO is recognized as no longer being empty and
hence allowing a read from the same FIFO. Similarly when a
word is read from a full FIFO, there is a delay before a write can
successfully be attempted. The tskew specification accounts
for these cases. During cycles other than on full/empty FIFO
boundaries, the clock skew is not required and the device
functions correctly even when the reads and writes occur
simultaneously. If the tskew specification is ignored and SCLK
and MCLK were permanently tied together, there is an extra
cycle latency in the cases mentioned above. Clock skew
violation is illustrated in Figure 13.
FIFO Write Latency
The first data written to either of the (read or write) FIFOs,
after the FIFO is reset, suffers a single clock latency. Data that
is set-up with respect to the first clock is ignored and the data
that is set-up with respect to the second clock edge after the
reset, is stored as the first data in the FIFO (Refer to Figures
9 and 10). The empty-flag is deasserted after this second clock
edge and 15 more data words (in a 16 deep configuration) can
be written to the FIFO after this.
The latency can be reduced or eliminated by providing a
"dummy" or "set-up" clock edge before the actual write to the
FIFO. The dummy write clock can be provided any time after
reset and before the next buffer write operation takes place.
The latency described here (shown in Figures 10 and 13)
occurs only after a FIFO reset. In other cases where the FIFO
becomes empty there is no latency.
11.78
IDT49C466/A Flow-thruEDC
ERROR DETECTION AND CORRECTION UNITCOMMERCIAL TEMPERATURE RANGES
R/W FIFO Operation At Boundaries
In the 49C466 the write pointer is incremented on every
FIFO write. Similarly the read pointer is incremented on every
FIFO read. In most cases on a FIFO read, the last data read
remains at the output of the FIFO, until the read pointer is
further incremented. On the last (the write that fills the FIFO)
FIFO write after the FIFO read, however, this last read data is
overwritten by the 16th write following the empty condition and
consequently the data at the FIFO output is liable to change.
The situation is depicted in the diagram below.
WP
reset
RP
WP
WRITE1
(data = AA)
RP
WP
RP
WP
WRITE1
(data = BB)
RP
WP
WRITE2
(data =CC)
RP
overwritten and the FIFO output changes from AA to the data
just written, namely QQ.
This operation needs to be taken into account in the design
of the system. In case of a burst operation where FIFO data
is output at a much slower rate than the rate at which data is
input and the full flag is expected to inhibit further writes, the
user cannot expect the FIFO output to remain static through
the 16th write of the burst. If this is a requisite to the design,
the FIFO output should be latched. In the case of the write
FIFO this can be accomplished on-chip by latching the FIFO
FIFO
(empty)
FIFO
FIFO
(empty)
FIFO
FIFO
READ1
(data = AA)
No READs
(data = AA)
No READs
(data = AA)
WRITE15
(data = PP) No READs
WRITE16
(data = QQ)
WP
FIFO
RP
WP
Figure 2. R/W FIFO Operation
The diagram in figure 2 progresses from the FIFO
initialization(reset) through a sequence of write operations.
After the first write, a read is executed which establishes the
data at the FIFO output(AA). On the last write to the FIFO(the
write that fills the FIFO), the location of the last read data is
(data = AA)
FIFO
(full)
No READs
(data = QQ)
output in the SD output latch. For the read FIFO, the FIFO
output must be latched externally to accomplish the same
thing, since there is no latch on-chip following the FIFO. If this
cannot be done and the situation described above is expected
to occur in normal operation, the write must be inhibited one
cycle before the FIFO becomes full.
11.79
Loading...
+ 18 hidden pages
You need points to download manuals.
1 point = 1 manual.
You can buy points or you can get point for every manual you upload.