![](http://datasheet.mmic.net.cn/110000/GT-64111_datasheet_3491739/GT-64111_50.png)
GT-64111 System Controller for RC4640, RM523X and VR4300 CPUs
50
Revision 1.0
Figure 23: PCI Target Interface FIFOs Operational Example
The target FIFOs are also used for read prefetch. The Memory Read Multiple (MRM) cycle is the only prefetchable
read cycle. In response to any target PCI read cycle, the GT-64111 will read an entire cache line (32 bytes) from mem-
ory into one of the target FIFOs.
If the read is a Memory Read Multiple, as soon as at least two words are delivered from the FIFO to the PCI bus,
another 32 bytes is prefetched into the second FIFO. In this case, the GT-64111 is essentially “guessing” that MRM
cycle will be longer than 32 bytes.
In a non-prefetchable read cycle, data is not fetched into the second FIFO until after all data from the first FIFO is deliv-
ered to the PCI bus.
Cycles to internal registers and Configuration cycles are non-postable or prefetchable.
6.2.2
PCI Target Address Space Decode and Byte Swapping
The GT-64111 decodes accesses on the PCI bus for which it may be a target by the values programmed into its Base
Address Registers (BARs). There are two sets of BARs: regular BARs (in PCI Function 0) and swap BARs (in PCI
Function 1). Accesses decoded by the swap BARs are passed with to/from the target memory device after converting
the endianess of the data (e.g. little-endian to big-endian). Accesses decoded by the regular BARs, by comparison, are
passed without modifying the data to/from the target memory device.
The GT-64111 uses a two stage decode process for accesses through the PCI target interface. Once a PCI accesses
is determined to be a “hit” based on the BAR comparison, the address is passed to the Device Unit for sub-decode. For
example, Base Address Register 0 in Function 0 (BAR0) decodes non-byte swapped accesses to the DRAM controlled
by either RAS0* or RAS1*. The GT-64111 then uses the values programmed into the RAS0 Low and RAS0 High
decode registers to determine if the access is to the DRAM connected to RAS0. Note that the second stage decoders
are shared with the CPU/Local Master (see “CPU/Local Master Address Space Decode” for a nice picture showing
this.)
On reads, if the target PCI address “hits” based on the BAR decode, then misses in the Device Unit, will return random
data. On writes, if the target PCI address “hits” based on the BAR decode, then misses in the Device Unit, the data will
be discarded. In both situations, the MemOut interrupt will be set (bit 1 of the Interrupt Cause Register, 0xc18).
Further, when the GT-64111 is a PCI target and there is a hit in one of the Base Address Registers, the MemEn/IOEn
bit of the Status and Command Register (PCI Config. Register 0x04) must be set to ‘1’ in order for the GT-64111 to
respond to PCI memory/IO transactions. If MemEn/IOEn is set to ‘0’ and there is a hit in one of the Base Address Reg-
12
3
FIFO B (32-BYTES)
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DRAM/DEVICE UNIT
FIFO A (32-BYTES)
PCI BUS
FIFO B (32-BYTES)
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DRAM/DEVICE UNIT
FIFO A (32-BYTES)
PCI BUS
FIFO B (32-BYTES)
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DATA 0
DATA 1
DATA 2
DATA 3
DATA 4
DATA 5
DATA 6
DATA 7
DRAM/DEVICE UNIT
FIFO A (32-BYTES)
PCI BUS
DATA FLOWING INTO FIFO A
FROM PCI. NO DATA FLOWING
INTO DRAM YET. 8 WORDS HAVE
BEEN POSTED FROM PCI.
FIFO A AND B "FLIP". FIFO B IS
NOW TAKING DATA FROM PCI
WHILE FIFO A DRAINS INTO
DRAM. 10 WORDS HAVEN BEEN
POSTED.
PCI BUS HAS COMPLETED
BURST AFTER 10 WORDS. FIFO
A HAS DRAINED AND NOW FIFO
B IS DRAINING INTO DRAM.