126
6384E–ATARM–05-Feb-10
AT91SAM9G20
19.4
Arbitration
The Bus Matrix provides an arbitration mechanism that reduces latency when conflicting cases
occur, in particular when two or more masters try to access the same slave at the same time.
One arbiter per AHB slave is provided, thus arbitrating each slave differently.
The Bus Matrix provides the user the possibility to choose between 2 arbitration types for each
slave:
1.
Round-Robin Arbitration (the default)
2.
Fixed Priority Arbitration
This choice is made through the field ARBT of the Slave Configuration Registers
(MATRIX_SCFG).
Each algorithm may be complemented by selecting a default master configuration for each
slave.
When a re-arbitration has to be done, it is realized only under specific conditions described in
19.4.1
Arbitration Rules
Each arbiter has the ability to arbitrate between two or more different master’s requests. In order
to avoid burst breaking and also to provide the maximum throughput for slave interfaces, arbitra-
tion may only take place during the following cycles:
1.
Idle Cycles: when a slave is not connected to any master or is connected to a master
which is not currently accessing it.
2.
Single Cycles: when a slave is currently doing a single access.
3.
End of Burst Cycles: when the current cycle is the last cycle of a burst transfer. For
defined length burst, predicted end of burst matches the size of the transfer but is man-
4.
Slot Cycle Limit: when the slot cycle counter has reached the limit value indicating that
19.4.1.1
Undefined Length Burst Arbitration
In order to avoid too long slave handling during undefined length bursts (INCR), the Bus Matrix
provides specific logic in order to re-arbitrate before the end of the INCR transfer.
A predicted end of burst is used as for defined length burst transfer, which is selected between
the following:
1.
Infinite: no predicted end of burst is generated and therefore INCR burst transfer is
never broken.
2.
Four beat bursts: predicted end of burst is generated at the end of each four beat
boundary inside INCR transfer.
3.
Eight beat bursts: predicted end of burst is generated at the end of each eight beat
boundary inside INCR transfer.
4.
Sixteen beat bursts: predicted end of burst is generated at the end of each sixteen beat
boundary inside INCR transfer.
This selection can be done through the field ULBT of the Master Configuration Registers
(MATRIX_MCFG).