A6.6.1 Encoding for tag and data in the L1 data cache

The Cortex®-A55 L1 data cache is a 4-way set associative structure.

The size of the configured cache determines the number of sets in each way. The following table shows the encoding (set in Rd in the appropriate MCR instruction) used to locate the cache data entry for tag and data memory. It is similar for both the tag and data RAM access.

Data RAM access includes an extra field to locate the appropriate word in the cache line. The set-index range parameter (S) is:

S=12For a 16KB cache.
S=13For a 32KB cache.
S=14For a 64KB cache.

Table A6-3 Cortex-A55 L1 Data Cache Tag and Data location encoding

Bitfield of Rd Description
[31:30] Cache Way
[29:S] Unused
[S-1:6] Set index
[5:3] Cache data element offset
[2:0] Unused (Zero)

Tag information (MESI state, outer attributes, and valid) for the selected cache line, returns using Data Register 0 and Data Register 1.

Use the format that is shown in the following table.

Table A6-4 Cortex-A55 L1 Data Cache Tag data format

Bitfield of Data Register 0 and 1 Description
DR1[31:30]

MESI State (from tag RAM):

0b00Invalid
0b01Shared
0b10Unique non-transient
0b11Unique transient
DR1[29] Non-secure state (NS) (from tag RAM)
DR1[28:1] Tag Address [39:12] (from tag RAM)
DR1[0] Unused (Zero)
DR0[31:7] Unused (Zero)
DR0[6:5] PBHA bits (from Dirty RAM)
DR0[4] Dirty bit (from Dirty RAM)
DR0[3] Shareability (from Dirty RAM)
DR0[2:1] Age (from Dirty RAM)
DR0[0] Outer Allocation Hint (from Dirty RAM)

The 64 bits of cache data returns in Data register 0 and Data register 1.

Non-ConfidentialPDF file icon PDF version100442_0200_00_en
Copyright © 2016–2018 Arm Limited or its affiliates. All rights reserved.