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

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

16.4.4 ThumbEE instructions<br />

Instruction Cycle Timing<br />

densely packed, slightly reducing the branch prediction accuracy that is achieved and therefore<br />

increasing the number of branch mispredictions. Neither of these effects can be accurately<br />

measured using hand calculating techniques.<br />

Note<br />

The code footprint and densely packed branch instructions can have an impact on the<br />

performance of the processor. In most cases, the interaction of these effects might cancel with<br />

each other.<br />

The majority of the ThumbEE instruction set is identical in both encodings and behavior to the<br />

Thumb-2 instruction set and therefore the cycle timings are also identical to the Thumb-2<br />

instruction timings. The behavior of some instructions are different when executed in ThumbEE<br />

state instead of in Thumb state. However, the behavior changes for these instructions do not<br />

result in any changes to their cycle timing. The only additional cycle timing information for<br />

ThumbEE is for the new instructions.<br />

Table 16-17 shows the timing operation of the new ThumbEE instructions.<br />

ThumbEE memory check exceptions<br />

Table 16-17 ThumbEE instructions<br />

Instruction type Cycles Source1 Source2 Source3 Source4 Result1 Result2<br />

ENTERX/LEAVEX a 16 - - - - - -<br />

CHKA b 1 E2 E2 - - - -<br />

HB c 1 - - - - - -<br />

HBL d 1 - - - - R14:E3 -<br />

HBP c 2 - - - - R8:E2 -<br />

HBLP d 2 - - - - R8:E2 R14:E3<br />

LDR [R9] e 1 R9:E1 - - - Rd:E3 -<br />

LDR [R10] e 1 R10:E1 - - - Rd:E3 -<br />

LDR [negative offset] e 1 Rn:E1 - - - Rd:E3 -<br />

STR [R9] f 1 Rn:E1 Rd:E3 - - - -<br />

a. This instruction waits for all outstanding instructions to complete and then issues.<br />

b. If CHKA fails the array bounds check, then an exception is taken. Otherwise, this is a single cycle instruction.<br />

c. This instruction is predicted and behaves as a direct branch, B instruction.<br />

d. This instruction is predicted and behaves as a direct branch and link, BL instruction.<br />

e. Timing is identical to similar load instructions.<br />

f. Timing is identical to similar store instructions.<br />

All loads and stores in ThumbEE state have the additional functionality of checking the base<br />

register for a zero value. If the base register is zero, then the processor performs a branch to the<br />

address [HandlerBase – 4]. See the <strong>ARM</strong> Architecture <strong>Reference</strong> <strong>Manual</strong> for more information.<br />

The processor handles this scenario in the same way as to an exception such as a data abort<br />

because it does not occur in the common case. If the base register is zero, the processor flushes<br />

the pipeline and branches to the correct address. The additional cycle time penalty for this is<br />

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

ID060510 Non-Confidential

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

Saved successfully!

Ooh no, something went wrong!