Imb Operation - ARM ARM926EJ-S Technical Reference Manual

Table of Contents

Advertisement

9.2

IMB operation

9.2.1
Clean the DCache
9.2.2
Drain the write buffer
9.2.3
Synchronize data and instruction streams in level two AHB subsystems
ARM DDI0198D
To ensure consistency between data and instruction sides, you must take the following
steps:
1.
Clean the DCache
2.
Drain the write buffer
3.
Synchronize data and instruction streams in level two AHB subsystems
4.
Invalidate the ICache on page 9-4
5.
Flush the prefetch buffer on page 9-4.
If the cache contains cache lines corresponding to write-back regions of memory, then
it might contain dirty entries. These entries must be cleaned to make external memory
consistent with the DCache. If only a small part of the cache has to be cleaned, then this
can be done by using a sequence of clean DCache single entry instructions, or if the
entire cache has to be cleaned, then this can be done efficiently using the test and clean
instruction. See Cache Operations Register c7 on page 2-20 for details of cache
maintenance operations.
Executing a drain write buffer instruction causes the ARM9EJ-S core to wait until
outstanding buffered writes have completed on the AHB interface. This includes writes
that occur as a result of data being written back to main memory because of clean
operations, and data for store instructions.
The level two AHB subsystem might also require explicit synchronization between data
and instruction sides. It is possible for the data and instruction AHB masters to be
attached to different AHB subsystems. Even if both masters are present on the same bus,
some form of separate ICache might exist for performance reasons, and this has to be
invalidated to ensure consistency.
The process of synchronizing instructions and data in level two memory must be
invoked using some form of fully blocking operation. This is to ensure that the end of
the operation can be determined using software. It is recommended that either a
nonbuffered store (
) or a noncached load (
STR
synchronization.
Copyright © 2001-2003 ARM Limited. All rights reserved.
Instruction Memory Barrier
) is used to trigger external
LDR
9-3

Hide quick links:

Advertisement

Table of Contents
loading

Table of Contents