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