Добавил:
Upload Опубликованный материал нарушает ваши авторские права? Сообщите нам.
Вуз: Предмет: Файл:
CS 220 / ARM / ARM7TDMI_TechnicalReferenceManual.pdf
Скачиваний:
63
Добавлен:
16.04.2015
Размер:
1.63 Mб
Скачать

Instruction Cycle Timings

6.18Undefined instructions and coprocessor absent

When the processor attempts to execute an instruction that neither it nor a coprocessor can perform (including all undefined instructions) this causes the processor to take the undefined instruction trap.

Cycle timings are listed in Table 6-21 where:

C represents the current mode-dependent value

T represents the current state-dependent value.

Table 6-21 Undefined instruction cycle operations

 

 

MA

 

 

 

 

 

 

 

 

TBI

Cycle

Address

S

nRW

Data

nMREQ

SEQ

nOPC

nCPI

nTRANS

Mode

T

 

 

[1:0]

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

1

pc+2L

i

0

(pc+2L)

1

0

0

0

C

Old

T

 

 

 

 

 

 

 

 

 

 

 

 

2

pc+2L

i

0

-

0

0

0

1

C

Old

T

 

 

 

 

 

 

 

 

 

 

 

 

3

Xn

2

0

(Xn)

0

1

0

1

1

00100

0

 

 

 

 

 

 

 

 

 

 

 

 

4

Xn+4

2

0

(Xn+4)

0

1

0

1

1

00100

0

 

 

 

 

 

 

 

 

 

 

 

 

 

Xn+8

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

Note

Coprocessor instructions are not available in Thumb state.

CPA and CPB are HIGH during the undefined instruction trap.

ARM DDI 0029G

Copyright © 1994-2001. All rights reserved.

6-27

Instruction Cycle Timings

6.19Unexecuted instructions

Any instruction whose condition code is not met does not execute and adds one cycle to the execution time of the code segment in which it is embedded (see Table 6-22).

 

 

Table 6-22

Unexecuted instruction cycle operations

 

 

 

 

 

 

 

 

Cycle

Address

MAS[1:0]

nRW

Data

nMREQ

SEQ

nOPC

 

 

 

 

 

 

 

 

 

1

pc+2L

i

0

 

(pc+2L)

0

1

0

 

 

 

 

 

 

 

 

 

 

pc+3L

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

 

6-28

Copyright © 1994-2001. All rights reserved.

ARM DDI 0029G

Instruction Cycle Timings

6.20Instruction speed summary

Due to the pipelined architecture of the CPU, instructions overlap considerably. In a typical cycle, one instruction can be using the data path while the next is being decoded and the one after that is being fetched. For this reason Table 6-23 presents the incremental number of cycles required by an instruction, rather than the total number of cycles for which the instruction uses part of the processor. Elapsed time, in cycles, for a routine can be calculated from these figures listed in Table 6-23. These figures assume that the instruction is actually executed. Unexecuted instructions take one cycle.

If the condition is not met then all instructions take one S-cycle. The cycle types N, S, I, and C are described in Bus cycle types on page 3-4.

In Table 6-23:

b is the number of cycles spent in the coprocessor busy-wait loop

m is:

1 if bits [32:8] of the multiplier operand are all zero or one

2 if bits [32:16] of the multiplier operand are all zero or one

3 if bits [31:24] of the multiplier operand are all zero or all one

n is the number of words transferred.

Table 6-23 ARM instruction speed summary

Instruction

Cycle count

Additional

 

 

 

Data Processing

S

+I for SHIFT(Rs)

 

 

+S + N if R15 written

 

 

 

MSR, MRS

S

-

 

 

 

LDR

S+N+I

+S +N if R15 loaded

 

 

 

STR

2N

-

 

 

 

LDM

nS+N+I

+S +N if R15 loaded

 

 

 

STM

(n-1)S+2N

-

 

 

 

SWP

S+2N+I

-

 

 

 

B,BL

2S+N

-

 

 

 

SWI, trap

2S+N

-

 

 

 

MUL

S+mI

-

 

 

 

MLA

S+(m+1)I

-

ARM DDI 0029G

Copyright © 1994-2001. All rights reserved.

6-29

Instruction Cycle Timings

Table 6-23 ARM instruction speed summary (continued)

Instruction

Cycle count

Additional

 

 

 

MULL

S+(m+1)I

-

 

 

 

MLAL

S+(m+2)I

-

 

 

 

CDP

S+bI

-

 

 

 

LDC, STC

(n-1)S+2N+bI

-

 

 

 

MCR

N+bI+C

-

 

 

 

MRC

S+(b+1)I+C

-

 

 

 

6-30

Copyright © 1994-2001. All rights reserved.

ARM DDI 0029G

Соседние файлы в папке ARM