English
Language : 

PXD20RM Datasheet, PDF (272/1628 Pages) Freescale Semiconductor, Inc – PXD20 Microcontroller
of the slave port either runs an IDLE cycle or runs a non IDLE cycle to a location other than the current
slave port.
9.4.1.3 Round-Robin Priority Operation
When operating in round-robin mode, each master is assigned a relative priority based on the master
number.This relative priority is compared to the ID of the last master to perform a transfer on the slave bus.
The highest priority requesting master will become owner of the slave bus as the next transfer boundary
(accounting for locked and fixed-length burst transfers). Priority is based on how far ahead the ID of the
requesting master is to the ID of the last master (ID is defined by master port number, not the hmaster
field).
Once granted access 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 will be granted access to
the slave port at the next assertion of sX_hready, 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 XBAR 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 will be serviced in the order 4, 5 and then 0.
Parking may still be used in a round-robin mode, but will not affect the round-robin pointer unless the
parked master actually performs a transfer. Handoff will occur 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 will be reset to point
at master port 0, giving it the highest priority.
Each master port has an mX_high_priority input which can be enabled by writing the correct data to the
SGPCR or ASGPCR. If a master’s mX_high_priority input is enabled for a slave port programmed for
round-robin mode, that master can force the slave port into fixed priority mode by asserting its
mX_high_priority input while making a request to that particular slave port. While that (or any enabled)
master’s mX_high_priority input is asserted while making an access attempt to that particular slave port,
the slave port will remain in fixed priority mode. Once that (or any enabled) master’s mX_high_priority
input is negated, or the master no longer attempts to make accesses to that particular slave port, the slave
port will revert back to round-robin priority mode and the pointer will be set on the last master to access
the slave port.
9.4.2 Priority Assignment
Each master port needs to be assigned a unique 3-bit priority level. If an attempt is made to program
multiple master ports with the same priority level within a register (MPR or AMPR) the XBAR will
respond with an error and the registers will not be updated.
9.4.2.1 Context Switching
The XBAR has a hardware input per slave port (sX_ampr_sel) which is used to select which registers the
master priority levels and general purpose control bits will be taken from. When sX_ampr_sel is 0 the
MPR and SGPCR will be selected, when sX_ampr_sel is 1 the AMPR and the ASGPCR will be selected.
This hardware input is useful for context switching so the user does not have to rewrite the MPR or SGPCR
9-14
PXD20 Microcontroller Reference Manual, Rev. 1
Preliminary—Subject to Change Without Notice
Freescale Semiconductor