UM10413
All information provided in this document is subject to legal disclaimers.
© NXP B.V. 2011. All rights reserved.
User manual
Rev. 1 — 16 December 2011
14 of 268
NXP Semiconductors
UM10413
MPT612 User manual
minimized in ARM (rather than Thumb) code by using the conditional execution feature
present in all ARM instructions. This conditional execution can often be used to avoid
small forward branches that would otherwise be necessary.
Branches and other program flow changes cause a break in the sequential flow of
instruction fetches previously described. The branch trail buffer captures the line to which
such a non-sequential break occurs. If the same branch is taken again, the next
instruction is taken from the branch trail buffer. When a branch outside the contents of the
prefetch and branch trail buffer is taken, the branch trail buffer is loaded after several clock
periods. Typically, there are no further instruction fetch delays until a new and different
branch occurs.
8.2 MAM
blocks
The MAM is divided into several functional blocks:
•
A flash address latch and an incrementing function to form prefetch addresses
•
A 128-bit prefetch buffer and an associated address latch and comparator
•
A 128-bit branch trail buffer and an associated address latch and comparator
•
A 128-bit data buffer and an associated address latch and comparator
•
Control logic
•
Wait logic
shows a simplified block diagram of the MAM data paths.
In the following descriptions, the term “fetch” applies to an explicit flash read request from
the ARM. “Pre-fetch” is used to denote a flash read of instructions beyond the current
processor fetch address.
8.2.1 Flash memory bank
There is one bank of flash memory on the MPT612 MAM.
Flash programming operations are handled as a separate function and not controlled by
the MAM. A separate boot block in ROM contains flash programming algorithms that can
be called by the application program, and a loader that can be run to allow serial
programming of flash memory.