
398
SAM G51 [DATASHEET]
11209C–ATARM–20-Dec-13
20.5.3 Fixed Default Master
At the end of the current access, if no other request is pending, the slave connects to its fixed default master. Unlike the
last access master, the fixed master does not change unless the user modifies it by software (field FIXED_DEFMSTR of
the related MATRIX_SCFG).
To change from one kind of default master to another, the Bus Matrix user interface provides the Slave Configuration
registers (MATRIX_SCFGx), one for each slave, used to set a default master for each slave. MATRIX_SCFGx contain
the fields DEFMSTR_TYPE and FIXED_DEFMSTR. The 2-bit DEFMSTR_TYPE field selects the default master type (no
default, last access master, fixed default master) whereas the 4-bit FIXED_DEFMSTR field selects a fixed default
master, provided that DEFMSTR_TYPE is set to fixed default master. Refer to the Bus Matrix user interface description.
20.6
Arbitration
The Bus Matrix provides an arbitration technique that reduces latency when conflicting cases occur; for example, when
two or more masters try to access the same slave at the same time. One arbiter per AHB slave is provided, so that each
slave can be arbitrated differently.
The Bus Matrix provides the user with two types of arbitration for each slave:
1.
Round-robin arbitration (default)
2.
Fixed priority arbitration
This selection is made by the field ARBT of MATRIX_SCFG.
Each algorithm may be complemented by selecting a default master configuration for each slave.
20.6.1 Arbitration Rules
Each arbiter has the ability to arbitrate between two or more masters’ requests. To avoid burst breaking and to provide
the maximum throughput for slave interfaces, arbitration should 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 a defined burst length, pre-
dicted end of burst matches the size of the transfer but is managed differently for undefined length burst. See
4.
Slot cycle limit: When the slot cycle counter has reached the limit value indicating that the current master access is
20.6.1.1
Undefined Length Burst Arbitration
In order to prevent 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 will never be 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 is made through the field ULBT of the Master Configuration registers (MATRIX_MCFG).
20.6.1.2
Slot Cycle Limit Arbitration
The Bus Matrix contains specific logic to break long accesses, such as very long bursts on a very slow slave (e.g. an
external low speed memory). At the beginning of the burst access, a counter is loaded with the value previously written in