This discussion has been locked.
You can no longer post new replies to this discussion. If you have a question you can start a new discussion

Cortex-A9: Eviction of dirty line from the region marked as Only "Inner Cacheable" from L1 cache - will if be allocated into L2?

Hello,

Consider following scenario:

  1. A 4 KB page starting @0x80000000 is marked as Normal Memory, Inner Cacheable, write-back, non-shareable, non-outer cacheable, L2 is inclusive cache.
  2. Now, the s/w writes to the first word in the page. Let's assume valid line was already present in L1 and is now updated after this write. Thus the concerned line becomes dirty in L1.
  3. Over the period of time / load, this line is up for eviction

At this time, my question is, since original attributes for this line were not "outer cacheable", will the line still may be allocated into L2, or will directly be written to L3, always?

If, L2 is skipped in the above scenario, does that mean the line type information is stored in L1 ? That is, something like AWUSER[4:1] is stored somewhere for each line?

What if L2 is in exclusive cache mode?

Thanks.

Parents
  • Yes, L2 is PL310.

    Does this mean the ARCACHEM[3:0]/AWCACHEM[3:0] etc encoding are not honored in the case of evictions from L1, even when data is non-shared?

    From PL310 TRM, for Normal non-shared memory:

    Table 2-7 Cacheable but do not allocate AXI transactions

    Outer non cacheable --

         Read: Not cached in L2, results in L3 access.

         Write: Put in store buffer, write to L3 when store buffer is drained.

    Is the above table invalid in case of evictions of the line which had outer non-cacheable attribute?

    Thanks.

Reply
  • Yes, L2 is PL310.

    Does this mean the ARCACHEM[3:0]/AWCACHEM[3:0] etc encoding are not honored in the case of evictions from L1, even when data is non-shared?

    From PL310 TRM, for Normal non-shared memory:

    Table 2-7 Cacheable but do not allocate AXI transactions

    Outer non cacheable --

         Read: Not cached in L2, results in L3 access.

         Write: Put in store buffer, write to L3 when store buffer is drained.

    Is the above table invalid in case of evictions of the line which had outer non-cacheable attribute?

    Thanks.

Children