I am checking the performance of an SoC system.
Currently, I am facing an issue as below:
I have 1 master access to 1 slave (OS = 8).
Assume that I have 3 packages:
A0 (ID = 0), A1(ID = 1), A2 (ID = 2).
In this case, the system supports out-of-order and I get the BW = 12 MB/s.
If I have 3 packages as below:
A0 (ID = 0), A1(ID = 0), A2 (ID = 0).
In this case, The system supports in-order (Because of same ID) and I get the BW = 14 MB/s.
I am very confused because of the difference between BW in two cases, Any body help me explan the reason ?
Most systems can operate more efficiently if unique IDs are used, as non-unique IDs enforce ordering restrictions on the system - the system needs to ensure that response are returned in the same order as the request are issued, which may not be the most efficient method.
For example, A0 and A2 may have some kind of spatial locality in memory that allows them to both be returned at the same time. However, the same ID restriction means that the system must return A1 before it returns A2. This could result A2 needing to request separately from A0.
it's hard to be specific as the behaviour depends on exactly what components are used in your system.