Level 1 Memory System
ARM DDI 0500D
Copyright © 2013-2014 ARM. All rights reserved.
6-9
ID021414
Non-Confidential
6.5
L1 Data memory system
The L1 Data cache is organized as a physically indexed and physically tagged cache. The micro
TLB produces the physical address from the virtual address before performing the cache access.
6.5.1
Internal exclusive monitor
The Cortex-A53 processor L1 memory system has an internal exclusive monitor. This is a
2-state, open and exclusive, state machine that manages Load-Exclusive or Store-Exclusive
accesses and Clear-Exclusive (
CLREX
) instructions. You can use these instructions to construct
semaphores, ensuring synchronization between different processes running on the core, and also
between different cores that are using the same coherent memory locations for the semaphore.
A Load-Exclusive instruction tags a small block of memory for exclusive access. The size of
the tagged block is defined by CTR.ERG as 16 words, one cache line.
Note
A load/store exclusive instruction is any one of the following:
•
In the A64 instruction set, any instruction that has a mnemonic starting with
LDX
,
LDAX
,
STX
,
or
STLX
.
•
In the A32 and T32 instruction sets, any instruction that has a mnemonic starting with
LDREX
,
STREX
,
LDAEX
, or
STLEX
.
A Load-Exclusive instruction that causes a transaction with
ARLOCKM
for ACE, or
Excl
for
CHI, set to HIGH is expected to receive an
EXOKAY
response. An
OKAY
response to a
transaction with
ARLOCKM
for ACE, or
Excl
for CHI, set to HIGH indicates that exclusive
accesses are not supported at the address of the transaction and causes a Data Abort exception
to be taken with a Data Fault Status Code of:
•
0b110101
, when using the long descriptor format.
•
0b10101
, when using the short descriptor format.
A Load-Exclusive instruction causes
ARLOCKM
for ACE or
Excl
for CHI, to be set to HIGH
if the memory attributes are:
•
Device.
•
Inner Non-cacheable and Outer Non-cacheable.
•
Inner Write-Back, Outer Write-Back, Outer Shareable, and
BROADCASTOUTER
is set
to HIGH.
•
Inner Write-Back, Outer Write-Back, Inner Shareable, and
BROADCASTINNER
is set
to HIGH.
•
Inner is not Write-Back or Outer is not Write-Back, and Inner Shareable.
•
Inner is not Write-Back or Outer is not Write-Back, and Outer Shareable.
Treatment of intervening STR operations
In cases where there is an intervening store operation between an exclusive load and an
exclusive store from the same core, the intermediate store does not produce any direct effect on
the internal exclusive monitor. The local monitor is in the Exclusive Access state after the
exclusive load, remains in the Exclusive Access state after the store, and returns to the Open
Access state only after the exclusive store, a
CLREX
instruction, or an exception return.
However, if the address being accessed by the exclusive code sequence is in cacheable memory,
any eviction of the cache line containing that address clears the monitor. ARM therefore
recommends that no load or store instructions are placed between the exclusive load and the
exclusive store because these additional instructions can cause a cache eviction. Any data cache
maintenance instruction can also clear the exclusive monitor.