| |||
| Home > AEM ARMv7-A specifics > Boundary features and architectural checkers > Delayed operation of CP15 instructions | |||
Rating: 2.
In general, the functional effect of any operation in the system control co-processor, CP15 is not guaranteed to occur until after an Instruction Synchronization Barrier (ISB) is subsequently executed, or an exception entry or return occurs. There are several exceptions to this rule. Some guarantee earlier visibility in certain circumstances, and others require extra steps to guarantee that the operation takes place. These are described more fully in the ARM Architecture Reference Manual ARMv7-A and ARMv7-R Edition.
When parameter delayed_CP15_operations is
set to true, the functional effects of the CP15 operations
are postponed for as long as the model determines that it is legal
to do so. That is, until the specified barrier is executed, or other
ordering requirements force earlier completion.
Table A.1 shows the barrier type to be executed for the functional effect of specific cache and branch prediction operations to be seen in the model.
Table A.1. Delayed CP15 operations
| CRn | op1 | CRm | op2 | Operation | Barrier |
|---|---|---|---|---|---|
| c7 | 0 | c1 | 0 | Invalidate all instruction caches to PoU inner shareable | DSB[a] |
| c7 | 0 | c1 | 6 | Invalidate entire branch predictor array inner shareable | ISB |
| c7 | 0 | c5 | 0 | Invalidate all instruction caches to PoU | DSB[a] |
| c7 | 0 | c5 | 1 | Invalidate instruction caches by MVA to PoU | DSB[a] |
| c7 | 0 | c5 | 4 | (Deprecated encoding) ISB | Implicit |
| c7 | 0 | c5 | 6 | Invalidate entire branch predictor array | ISB |
| c7 | 0 | c5 | 7 | Invalidate MVA from branch predictor | ISB |
| c7 | 0 | c6 | 1 | Invalidate data cache line by MVA to PoC | Implicit |
| c7 | 0 | c6 | 2 | Invalidate data cache line by set/way | DMB |
| c7 | 0 | c10 | 1 | Clean data cache line by MVA to PoC | Implicit |
| c7 | 0 | c10 | 2 | Clean data cache line by set/way | DMB |
| c7 | 0 | c11 | 1 | Clean data cache line by MVA to PoU | Implicit |
| c7 | 0 | c14 | 1 | Clean and invalidate data cache line by MVA to PoC | Implicit |
| c7 | 0 | c14 | 2 | Clean and invalidate data cache line by set/way | DMB |
[a] In general, an ISB would also be required in target code to guarantee that the following instruction fetch has not been pre-fetched from possibly stale data. | |||||
All other CP15 operations not listed in Table A.1 are postponed until an Instruction Synchronization Barrier (ISB) is executed or an exception entry or return occurs, subject to ordering requirements.
Where a Data Memory Barrier (DMB) is specified as the required barrier, a Data Synchronization Barrier (DSB) is a suitable alternative.
For more information on barrier requirements, see the sections relating to TLB maintenance, ordering of cache and branch predictor maintenance operations, and changes to CP15 registers and the memory order model in the ARM Architecture Reference Manual ARMv7-A and ARMv7-R Edition.