ARM R4 Manuale Utente

Pagina di 456
Cycle Timings and Interlock Behavior 
ARM DDI 0363E
Copyright © 2009 ARM Limited. All rights reserved.
14-20
ID013010
Non-Confidential, Unrestricted Access
14.12 Load and Store Double instructions
This section describes the cycle timing behavior for the 
LDRD
 and 
STRD
 instructions.
The 
LDRD
 and 
STRD
 instructions:
Are normally single-cycle issue. Both the base and any offset register are Very Early Regs.
Are 3-cycle issue if offset or pre-increment addressing with a negative register offset is 
used. Both the base and any offset register are Very Early Regs.
Take only one memory cycle if the address is doubleword aligned.
Take two memory cycles if the address is not doubleword aligned.
Table 14-15 shows the cycle timing behavior for 
LDRD
 and 
STRD
 instructions.
Table 14-16 shows the explanation of 
<addr_md_1cycle>
 and 
<addr_md_3cycle>
 used in 
Table 14-15 Load and Store Double instructions cycle timing behavior
Example instruction
Cycles
Cycles with 
base writeback
Memory 
cycles
Result 
latency 
(LDRD)
Result latency 
(base register)
Address is doubleword aligned 
LDRD R0, R1, <addr_md_1cycle>
a
1
2
1
2,  2
2
LDRD R0, R1, <addr_md_3cycle>
a
3
4
1
4,  4
4
Address not doubleword aligned 
LDRD R0, R1, <addr_md_1cycle>
a
2
2
2
2,  3
2
LDRD R0, R1, <addr_md_3cycle>
a
4
4
2
4,  5
4
a. See Table 14-16 for an explanation of 
<addr_md_1cycle>
 and
 <addr_md_3cycle>
.
Table 14-16 <addr_md_1cycle> and <addr_md_3cycle> LDRD example instruction explanation
Example instruction
Very Early Reg
Comments
<addr_md_1cycle>
LDRD <Rt>, <Rt2>, [<Rn>, #<imm>] (!)
<Rn>
If post-increment addressing, pre-increment 
addressing with an immediate offset or a positive 
register offset, then 1-issue cycle
LDRD <Rt>, <Rt2>, [<Rn>, <Rm>] (!)
<Rn>, <Rm>
LDRD <Rt>, <Rt2>, [<Rn>], #<imm>
<Rn>
LDRD <Rt>, <Rt2>, [<Rn>], +/-<Rm>
<Rn>, <Rm>
<addr_md_3cycle>
LDRD <Rt>, <Rt2>, [<Rn>, -<Rm>] (!)
<Rn>,<Rm>
If pre-increment addressing with a negative 
register offset, then 3-issue cycles