Level 2 Memory System
ARM DDI 0500D Copyright © 2013-2014 ARM. All rights reserved. 7-18
ID021414 Non-Confidential
7.6 Optional integrated L2 cache
The optional integrated L2 configurable caches sizes are 128KB, 256KB, 512KB, 1MB, and
2MB.
Data is allocated to the L2 cache only when evicted from the L1 memory system, not when first
fetched from the system. The only exceptions to this rule are for memory marked with the inner
transient hint, or for non-temporal loads, see Non-temporal loads on page 6-12, that are only
ever allocated to the L2 cache. The L1 cache can prefetch data from the system, without data
being evicted from the L2 cache.
Instructions are allocated to the L2 cache when fetched from the system and can be invalidated
during maintenance operations.
The L2 cache is 16-way set associative. The L2 cache tags are looked up in parallel with the
SCU duplicate tags. If both the L2 tag and SCU duplicate tag hit, a read accesses the L2 cache
in preference to snooping one of the other cores.
L2 RAMs are invalidated automatically at reset unless the L2RSTDISABLE signal is set HIGH
when the nL2RESET signal is deasserted.
7.6.1 External aborts handling
The L2 memory system handles two types of external abort depending on the attributes of the
memory region of the access:
• All load accesses use the synchronous abort mechanism.
• All
STREX
,
STREXB
,
STREXH
,
STREXD
,
STXR
,
STXRB
,
STXRH
,
STXP
,
STLXR
,
STLXRB
,
STLXRH
and
STLXP
instructions use the synchronous abort mechanism.
• All store accesses to Device memory, or Normal memory that is Inner Non-cacheable,
Inner Write-Through, Outer Non-cacheable, or Outer Write-Through use the
asynchronous abort mechanism, except for
STREX
,
STREXB
,
STREXH
,
STREXD
,
STXR
,
STXRB
,
STXRH
,
STXP
,
STLXR
,
STLXRB
,
STLXRH
, and
STLXP
.
• All store accesses to Normal memory that is both Inner Cacheable and Outer Cacheable
and any evictions from L1 or L2 cache do not cause an abort in the processor, instead they
assert the nEXTERRIRQ pin. This is because the access that aborts might not relate
directly back to a specific core in the cluster.
• L2 linefills triggered by an L1 Instruction fetch assert the nEXTERRIRQ pin if the data
is received from the interconnect in a dirty state. Instruction data can be marked as dirty
as a result of self-modifying code or a line containing a mixture of data and instructions.
If an error response is received on any part of the line, the dirty data might be lost.
• DVM operations that receive an error response use the asynchronous abort mechanism.