09.12.2012 Views

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

Cortex-A8 Technical Reference Manual - ARM Information Center

SHOW MORE
SHOW LESS

You also want an ePaper? Increase the reach of your titles

YUMPU automatically turns print PDFs into web optimized ePapers that Google loves.

16.4.5 Conditional instructions<br />

Instruction Cycle Timing<br />

variable in length, but is at least 13 cycles. The CHKA instruction uses the same mechanism<br />

when the array bounds check fails. This is also a rare occurrence and therefore is not optimized<br />

for performance.<br />

Predicting ThumbEE branch type instructions<br />

All ThumbEE branch type instructions are predicted in ThumbEE state in the same manner that<br />

they are predicted in <strong>ARM</strong> or Thumb state. In addition, the handler base branch instructions,<br />

HB[L][P], are also predicted using the same branch prediction hardware used for direct branch<br />

and branch link, B and BL instructions, respectively. Because the ThumbEE instruction set uses<br />

R9 as the base register rather than R13 as a stack pointer, LDR and STR instructions that read or<br />

write to the PC are written onto the return stack to aid in the prediction of these indirect<br />

branches. The usage model of the return stack in ThumbEE state, using R9 as the stack pointer,<br />

is identical to the usage model in <strong>ARM</strong> and Thumb state, using R13 as the stack pointer.<br />

Because the processor is statically scheduled, it schedules conditional instructions on the basis<br />

that they pass their condition codes. This means multi-cycle instructions such as LDM and STM<br />

instructions can still complete all their iterations even if they fail their condition codes.<br />

An additional point about conditional instructions is that the destination register of the<br />

instruction is treated as an additional source operand. This is done so the old value can be<br />

forwarded in the case when the instruction fails the condition codes. This additional source<br />

operand is required in the E2 stage of the machine.<br />

<strong>ARM</strong> DDI 0344K Copyright © 2006-2010 <strong>ARM</strong> Limited. All rights reserved. 16-16<br />

ID060510 Non-Confidential

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!