We are running a survey to help us improve the experience for all of our members. If you see the survey appear, please take the time to tell us about your experience if you can.
R5, for example, has microSCU (snoop control unit) as an option. Is this necessary for, say, a dual-core to maintain coherency between the two or for the two to maintain coherency with external processors?
The answer to my question is 'yes'. I discovered when configuring the R5 that the config sanity checking checks if SCU is present and flags and error if:
o Only 1 processor
o No D-Cache present
This would imply that it is required for internal coherency.
Note, the ACP (and micro-SCU) are there to give coherency with external accelerators, not to maintain coherency between the Cortex-R5 cores. From the TRM:
A twin-CPU Cortex-R5 group is not an MP-cluster. No hardware coherency is provided between the two CPUs, see CPU configurations for more information. The Cortex-R5 processor does provide hardware coherency with an external master in limited situations using the ACP. See Accelerator Coherency Port interface for more information.
developer.arm.com/.../Coherency
Martin,
You are correct for stand-alone Cortex-R5 - which doesn't have a MICRO_SCU option. I neglected to mention that I was working on Cortex-R5 SOC-400 PIL, which does have it.
Thanks for your clarification.
~Tom