8 divide, Divide -14 – ARM Cortex R4F User Manual

Page 378

Advertising
background image

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

(

) )

(

Advertising
This manual is related to the following products: