Crossbar Switch (XBAR)
14.2.3
Arbitration
The crossbar switch supports two arbitration schemes: a simple fixed-priority comparison
algorithm and a simple round-robin fairness algorithm. The arbitration scheme is
independently programmable for each slave port.
14.2.3.1
Fixed-priority operation
When operating in fixed-priority mode, each master is assigned a unique priority level in the
XBAR_PRSn (priority registers). If two masters request access to a slave port, the master
with the higher priority in the selected priority register gains control over the slave port.
When a master makes a request to a slave port, the slave port checks whether the new
requesting master's priority level is higher than that of the master that currently has control
over the slave port (unless the slave port is in a parked state). The slave port performs an
arbitration check at every clock edge to ensure that the proper master (if any) has control of
the slave port.
If the new requesting master's priority level is higher than that of the master that currently
has control of the slave port, the new requesting master is granted control over the slave
port at the next clock edge. The exception to this rule is if the master that currently has
control over the slave port is running a fixed-length burst transfer or a locked transfer. In this
case, the new requesting master must wait until the end of the burst transfer or locked
transfer before it is granted control of the slave port.
If the new requesting master's priority level is lower than the master that currently has
control of the slave port, the new requesting master is forced to wait until the current master
runs one of the following cycles:
•
An IDLE cycle
•
A non-IDLE cycle to a location other than the current slave port
14.2.3.2
Round-robin priority operation
When operating in round-robin mode, each master is assigned a relative priority based on
the physical master port number. This relative priority is compared to the ID (master port
number) of the last master to perform a transfer on the slave bus. The highest priority
requesting master becomes owner of the slave bus at the next transfer boundary
(accounting for locked and fixed-length burst transfers). Priority is based on how far the ID
of the requesting master is ahead of the ID of the last master.
After access is granted to a slave port, a master may perform as many transfers as desired
to that port until another master makes a request to the same slave port. The next master in
line is granted access to the slave port at the next transfer boundary, or possibly on the next
clock cycle if the current master has no pending access request.
As an example of arbitration in round-robin mode, assume the crossbar is implemented with
master ports 0, 1, 4, and 5. If the last master of the slave port was master 1, and master 0,
4, and 5 make simultaneous requests, they are serviced in the order 4, 5, and then 0.
Parking may continue to be used in a round-robin mode, but it does not affect the round-
robin pointer unless the parked master actually performs a transfer. Handoff occurs to the
next master in line after one cycle of arbitration. If the slave port is put into low-power park
mode, the round-robin pointer is reset to point at master port 0, giving it the highest priority.
316/2058
DocID027809 Rev 4
RM0400
Need help?
Do you have a question about the SPC572L series and is the answer not in the manual?