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.

Copyright © 2006-2011 ARM Limited. All rights reserved.ARM DDI 0363G
Non-ConfidentialID041111