Prefetch Unit
ARM DDI 0363G
Copyright © 2006-2011 ARM Limited. All rights reserved.
5-6
ID073015
Non-Confidential
5.4
Controlling instruction prefetch and program flow prediction
In the Cortex-R4 processor, the Z-bit, bit [11] of the SCTLR, does not control the program flow
prediction. The Z-bit is read-as-one, writes-ignored and instead a number of control bits in the
ACTLR control the program flow and prefetch features. To disable the program flow prediction,
you must disable the return stack and set the branch prediction policy to always not-taken. See
c1, Auxiliary Control Register
.
The fetch rate predictor can be disabled by setting FRCDIC in the ACTLR. When the predictor
is disabled, the PFU fetches instructions at the fastest rate possible.
The dynamic branch predictor is controlled with the BP field in the ACTLR. In normal
operation the branch prediction is taken from the global history table. You can also force the
prediction to be always taken, or always not-taken. The global history table is always updated
regardless of the prediction settings. You can also disable the loop prediction logic and the logic
for preventing thrashing, by setting DEOLP and DBHE respectively.
You can disable the return stack by setting RSDIS in the ACTLR. When disabled, pushes onto
the stack caused by call instructions are disabled, but the stack pointer is not frozen.