Bus Interface Unit
6-6
Copyright © 2000 ARM Limited. All rights reserved.
ARM DDI 0186A
AHB read access requested
To ensure data coherency, you must prevent the core from reading data from a location
that has recently been modified (by the core or an external coprocessor
STC
instruction)
and is still in the write buffer awaiting AHB access. If the AHB read access is allowed
to occur before the write buffer is drained, the old version of data at that location is
fetched causing a data coherency failure.
For this reason, whenever an AHB read is requested, as an ARM9E-S instruction fetch
or a data load or load multiple, the core must be stalled until the write buffer is drained.
No special logic is used to force a write buffer drain as this process is occurring
whenever data is present within the buffer. However, special logic is required to stall the
core until the last buffered write has
completed
on the AHB.
Drain write buffer instruction
You can use an
MCR
instruction to CP15 register 7 to force the core to be stalled until the
write buffer is empty and the final write is completed on the AHB. This instruction is
described in
on page 2-7. This instruction is useful when the
software requires that a write is completed before program execution continues.
6.2.3
Enabling the write buffer
The write buffer can be enabled by setting bit 3 of the CP15 control register. When this
bit is set, all writes to bufferable address locations use the write buffer. If a slave
peripheral in a bufferable region returns an AHB Data Abort, the abort is ignored when
the write buffer is enabled.
Note
For debugging purposes, you can disable the write buffer to allow AHB Data Aborts to
be returned from bufferable regions.
6.2.4
Disabling the write buffer
When data is committed to the write buffer it is always written to the AHB. If the write
buffer is disabled by clearing bit 3 of the CP15 control register, any existing write data
in the write buffer is completed. Additionally, if the core is sent to sleep by the
wait for
interrupt
command, any writes in the write buffer FIFO are also completed.
If the programmer requires no more buffered writes to occur following write buffer
disable or a
wait for interrupt
instruction, the write buffer must first be drained with
a
drain write buffer
command.
Summary of Contents for ARM966E-S
Page 6: ...Contents vi Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 20: ...Introduction 1 4 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 48: ...Tightly coupled SRAM 4 12 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 80: ...Bus Interface Unit 6 20 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 118: ...Debug Support 8 26 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 130: ...Test Support 10 8 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 142: ...Instruction cycle timings 11 12 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 158: ...Signal Descriptions A 16 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...
Page 176: ...AC Parameters B 18 Copyright 2000 ARM Limited All rights reserved ARM DDI 0186A ...