
399
SAM G51 [DATASHEET]
11209C–ATARM–20-Dec-13
the SLOT_CYCLE field of the related MATRIX_SCFG and decreased at each clock cycle. When the counter reaches
zero, the arbiter has the ability to re-arbitrate at the end of the current byte, half-word or word transfer.
20.6.1.3
Round-Robin Arbitration
The Bus Matrix arbiters use the round-robin algorithm to dispatch the requests from different masters to the same slave.
If two or more masters make a request at the same time, the master with the lowest number is serviced first. The others
are then serviced in a round-robin manner.
Three round-robin algorithms are implemented:
Round-robin arbitration without default master
Round-robin arbitration with last access master
Round-robin arbitration with fixed default master
Round-robin arbitration without default master
Round-robin arbitration without default master is the main algorithm used by Bus Matrix arbiters. Using this algorithm, the
Bus Matrix dispatches requests from different masters to the same slave in a pure round-robin manner. At the end of the
current access, if no other request is pending, the slave is disconnected from all masters. This configuration incurs one
latency cycle for the first access of a burst. Arbitration without default master can be used for masters that perform
significant bursts.
Round-robin arbitration with last access master
Round-robin arbitration with last access master is a biased round-robin algorithm used by Bus Matrix arbiters to remove
one latency cycle for the last master that accessed the slave. At the end of the current transfer, if no other master request
is pending, the slave remains connected to the last master that performs the access. Other non- privileged masters still
get one latency cycle if they attempt to access the same slave. This technique can be used for masters that mainly
perform single accesses.
Round-robin arbitration with fixed default master
Round-robin arbitration with fixed default master is an algorithm used by the Bus Matrix arbiters to remove the one
latency cycle for the fixed default master per slave. At the end of the current access, the slave remains connected to its
fixed default master. Every request attempted by this fixed default master will not cause any latency whereas other non-
privileged masters will still get one latency cycle. This technique can be used for masters that mainly perform single
accesses.
20.6.1.4
Fixed Priority Arbitration
The fixed priority algorithm is used by the Bus Matrix arbiters to dispatch the requests from different masters to the same
slave by using the fixed priority defined by the user. If two or more master’s requests are active at the same time, the
master with the highest priority number is serviced first. If two or more master’s requests with the same priority are active
at the same time, the master with the highest number is serviced first.
For each slave, the priority of each master may be defined through the Priority registers for slaves (MATRIX_PRAS and
MATRIX_PRBS).
20.7
System I/O Configuration
The System I/O Configuration register (CCFG_SYSIO) configures I/O lines in system I/O mode (such as JTAG, ERASE,
etc.) or as general-purpose I/O lines. Enabling or disabling the corresponding I/O lines in peripheral mode or in PIO mode
(PIO_PER or PIO_PDR registers) in the PIO controller has no effect. However, the direction (input or output), pull-up,
pull-down and other mode control is still managed by the PIO controller.