BCM1250/BCM1125/BCM1125H
User Manual
10/21/02
B r o a d c o m C o r p o r a t i o n
Page
14
Section 3: System Overview
Document
1250_1125-UM100CB-R
O
RDERING
R
ULES
AND
D
EVICE
D
RIVERS
The interaction between the ordering rules imposed by the SB-1 CPU, the ZBbus and the peripheral agents
simplifies device programming in most situations. In these situations it is the ordering between cacheable
coherent memory and uncacheable peripheral registers that is important.
The five important rules for the SB-1 are:
1
Cacheable coherent stores are visible in program order.
2
Uncached loads and stores will issue to the ZBbus in program order, and will only issue when all earlier
cacheable coherent stores are visible.
3
The CPU will stall until data returns when it needs the result of an uncacheable load (or a cacheable load that
has missed in the cache).
4
Uncached stores will not issue to the ZBbus if there are any uncached loads outstanding.
5
The SYNC instruction will prevent other instructions from issuing until all outstanding cacheable or
uncacheable loads are satisfied, all cacheable stores are visible, all uncacheable stores have been sent on the
ZBbus, and the write buffer has drained.
The internal I/O bridges and peripheral devices have a simple rule:
6
In all queues transactions will remain in the order of ZBbus Address phase.
The PCI and HyperTransport expansion busses follow the PCI ordering rules (Appendix E of the PCI
Specification revision 2.2). Of particular importance is the rule:
7
Posted Writes can pass Delayed (Non-Posted) Reads.
Rule (
) allows the programming style where a processor writes some data and then sets a flag to indicate it
is done. Another processor polling the flag will always see the new value of the data if it sees the new value of
the flag. Rule (
) allows the "flag" to be a peripheral register: memory data (such as DMA descriptors or data
buffers in cacheable coherent space) can be updated and then a control register (in uncached space) written
(for example to start the DMA) without the need for any special intermediate operations.
Note that there is no rule in the other direction; a cacheable coherent store may be visible before an
uncacheable load or store that precedes it in program order. If this ordering is required it can be enforced by
either using a SYNC instruction (rule
) or performing and using the result of an uncacheable load (by rule
and
). This is important if the processor is using the PCI producer-consumer model and is setting a flag in
memory to indicate that it has performed a write to a device. When this model is used the uncacheable write
to PCI or HyperTransport space must be flushed from the CPU before the flag is written in cacheable space.
The I/O Bridge will prevent the read-data-return from the polling request from passing an uncacheable write,
so a SYNC will ensure the uncached write is queued in the bridge before the flag changes.
Rule (
) allows there to be multiple outstanding uncached operations. For internal peripherals and the generic
bus all requests to the same peripheral will be seen in program order. Note that there are no such guarantees
between different peripherals (which may be on different ZBbus agents, equivalent to being on different PCI
busses), but this order only matters if there are back-channels between the devices (which will break any
ordering rules).
Содержание BCM1125
Страница 18: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page xviii Document 1250_1125 UM100CB R ...
Страница 28: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page xxviii Document 1250_1125 UM100CB R ...
Страница 515: ...BCM1250 BCM1125 BCM1125H User Manual 10 21 02 Broadcom Corporation Page vii Index Document 1250_1125 UM100CB R ...