ARM R4 Manuale Utente

Pagina di 456
Cycle Timings and Interlock Behavior 
ARM DDI 0363E
Copyright © 2009 ARM Limited. All rights reserved.
14-14
ID013010
Non-Confidential, Unrestricted Access
14.8
Divide
This section describes the cycle timing behavior of the 
UDIV
 and 
SDIV
 instructions.
The divider unit is separate to the main execute pipeline so the 
UDIV
 and 
SDIV
 instructions require 
one cycle to issue. They execute out-of-order relative to the rest of the pipeline, and require an 
additional issue cycle at the end of the divide operation to write the result to the destination 
register. This additional cycle is not required if the divide instruction fails its condition code. 
Result Latency for a 
UDIV
 instruction A divided by B is given by:
Result Latency for a 
SDIV
 instruction A divided by B is given by:
Note
 •
A divide instruction that fails its condition code or attempts to divide by zero has a Result 
Latency of three.
The value of the (clz(B) - clz(A) + 1)/2 component of these equations must be rounded 
down.
The clz(x) function counts the number of leading zeros in the 32-bit value x. If x is 
negative, it is negated before this count occurs.
2
clz(B) - clz(A) + 1
,0
Result latency = 3 + 
max
(
) )
(
2
clz(B) - clz(A) + 1
,0
Result latency = 4 + 
max
(
) )
(