
Chapter 8. System Considerations
8-3
Any number of bus transactions by other bus masters can be tried between any of these
steps. Note the following regarding DBWO:
The DBWO signal can be asserted if no read operation is pending; it does not affect
write ordering.
Ordering and presence of data bus writes is determined by the writes in the write
queues when BG is asserted for the write address (not DBG). A snoop push-out
operation has highest priority over other queued write operations.
Because more than one write can be in the write queue when DBG is asserted for the
write address, more than one data bus write can be enveloped by a pending read.
The arbiter must monitor bus operations and coordinate masters and slaves with respect to
the use of the data bus when DBWO is used. Individual DBG signals associated with each
bus device should allow the arbiter to synchronize both pipelined and split-transaction bus
organizations. Individual DBG and DBWO signals provide a primitive form of source-level
tagging for the granting of the data bus.
The ability to perform a snoop push before completion of a read transaction that has been
started by the processor prevents certain deadlock conditions. Consider a case where a 60x
processor shares a bus with a memory controller and a bus converter. Assume that the bus
converter produces an XYZ bus and that the following two requests appear simultaneously:
A request from the processor on the 60x bus that requires an XYZ bus transaction.
A request on the XYZ bus that should cause a data transfer with memory on the 60x.
The bus converter queues the processor request until the XYZ bus transaction completes.
The XYZ bus transaction causes a request on the 60x bus, and, unfortunately, a snoop hit
that requires a push. To avoid deadlock, this enveloped push must complete before the data
transfer for the processor request. This is a problem with bus converters using certain styles
of buses. In such cases, the system should assert DBWO and DBG together for write
operations identified as snoop pushes, which may be a difficult determination because a
system might assert this signal for all write data transfers, effectively reordering all write
data ahead of outstanding reads.
The arbiter must monitor all bus operations in progress and synchronize masters and slaves
with respect to the use of the data bus. Each master’s DBG allows the arbiter to synchronize
pipelining and supports split transaction bus organizations.