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.
Hi all,
In ARMv-7 the co-processor register is used to configure the TCM, cache, MMU, MPU, etc.
In ARMv-8 the co-processor logic is removed and integrated as the system register. Is there any performance difference by doing that ?
Hi,
There is no performance penalty associated with the change of mechanism here. In ARMv7 (and all earlier architectures which used the CP15 mechanism), CP15 was never a "real" coprocessor anyway. The registers and their associated functionality was implemented as part of the core itself. So the use of coprocessor instructions and registers is really only an instruction encoding scheme for making these operations available. The fact that these operations are achieved via separate instructions and named registers in ARMv8 does not affect how the underlying hardware handles them at all.
Note that the architecture does not mandate any particular timing or performance behaviour for these operations (nor for any other instructions, for that matter), so timing may vary from core to core.
Hope this helps.
Chris