2 cache maintenance operations – ARM Cortex R4F User Manual

Page 215

Advertising
background image

Level One Memory System

ARM DDI 0363E

Copyright © 2009 ARM Limited. All rights reserved.

8-19

ID013010

Non-Confidential, Unrestricted Access

Store buffer merging

The store buffer has merging capabilities. If a previous write access has updated an entry, other
write accesses on the same line can merge into this entry. Merging is only possible for stores to
Normal memory.

Merging is possible between several entries that can be linked together if the data inside the
different entries belong to the same cache line.

No merging occurs for writes to Strongly Ordered or Device memory. The processor
automatically drains the store buffer before performing Strongly Ordered accesses or Device
reads.

Store buffer behavior

The store buffer redirects write requests to the following blocks:

Cache controller for Cacheable write hits:
The store buffer sends a cache lookup to check that the cache hits in the specified line, and
if so, the store buffer merges its data into the cache when the entry is drained.

AXI master interface:

For Non-cacheable stores or write-through Cacheable stores, a write access is
performed on the AXI master interface.

For write-back, write-allocate stores that miss in the data cache, a linefill is started
using either of the two linefill buffers. When the linefill data is returned from the L2
memory system, the data in the store buffer is merged into the linefill buffer.

Store buffer draining

A store buffer entry is drained if:

All bytes in the entry have been written. This might result from merging.

The entry can be merged into a linefill buffer.

The entry contains a store to Device or Strongly Ordered memory.

The store buffer is completely drained when:

an explicit drain request is done for:

system control coprocessor cache maintenance operations

a

DMB

or

DSB

instruction

a load or store to Strongly Ordered memory

an exclusive load or store to Shared memory

a

SWP

or

SWPB

to Non-cacheable memory.

the store buffer is full or likely to become full.

The store buffer is drained of all stores to Device memory before a load is performed from
Device memory.

8.5.2

Cache maintenance operations

All cache maintenance operations are done through the system control coprocessor, CP15. The
system control coprocessor operations supported for the data cache are:

Invalidate all

Invalidate by address (MVA)

Advertising
This manual is related to the following products: