User Manual
BCM1250/BCM1125/BCM1125H
10/21/02
B r o a d c o m C o r p o r a t i o n
Document
1250_1125-UM100CB-R
Section 3: System Overview
Page
21
Each transaction is marked with a Transaction ID (TID), a 10 bit number constructed by the requester. The top
four bits of the TID are the requester's agent number (given in
), and the lower six bits are chosen by
the requester to be unique for all transactions it has in progress (See also
Section: “Magic Decoder Ring For
Using The Trace Buffer” on page 81
).
The bus supports coherent and non-coherent transactions. The bulk of the protocol is used to track ownership
of coherent blocks and implement the standard MESI coherent states:
•
M
- modified. This block is dirty (has been updated, and is different from memory). Modified is a subset of
exclusive, an agent must be exclusive owner before changing the data.
•
E
- exclusive. The agent that has this data is the only agent that has it. This agent is permitted to modify
the block.
•
S
- shared. The line is present in multiple agents, but is clean (memory or the L2 cache has the most
current update). No agent may modify the block.
•
I
- invalid. The block is not present in a particular agent.
A transaction on the bus involves three phases and two arbitrations.
1
The requesting agent arbitrates for the address bus. The bus will be granted in a fair manner.
2
The address phase (A-phase) starts the transaction.
3
The response phase (R-phase) gathers the coherency state for the transaction and thus determines which
agent is responsible for providing the data. Ownership transfers at the end of the R-phase.
4
The agent providing the data arbitrates for the data bus.
5
The data phase (D-phase) transfers the associated data and ends the transaction.
Normally an agent only arbitrates for the bus when it is prepared to make a transaction. However, occasionally
agents (particularly the CPUs) will speculatively request the bus and then discover the transaction has been
canceled. In this case the agent will still use the bus cycle, but issues a NOP command. An A-phase NOP will
also be caused if the previous cycle on the bus was a transaction for the same address or if the destination
agent blocks transactions as the source agent is granted the bus.
A
RBITRATION
The ZBbus arbitration uses a fair history based system. Requests are granted based on the last time the agent
was granted the bus. If all agents request every cycle (this never happens because the bus bandwidth is much
higher than the I/O device bandwidths) this will become a simple round robin scheme. In practice most agents
request the bus ahead of needing it thus hiding the arbitration cycle.
Data Section
D_DA[255:0]
Data. There is valid data only on the byte lanes that had byte enables set (on A_BYEN) in the A-phase.
The data on the other byte lanes is UNPREDICTABLE.
D_ID[9:0]
Transaction ID (copied from associated A_ID).
D_CODE[2:0]
Data status/error code (see
D_RSP[3:0]
Agent ID of the agent driving the data bus (see
D_MOD
Set to indicate the data is modified (dirty).
Table 2: ZBbus Signals
(Cont.)