[Author Prev][Author Next][Thread Prev][Thread Next][Author Index][Thread Index]

[f-cpu] IDU News



News of the Week:

I finally made the SRT divider work.  The first version supports signed
and unsigned division with chunk sizes of 8, 16, 32 and 64 bits (including
SIMD) and needs <n>+5 cycles for an <n>-bit result.  Throughput is 1/<n>
operations per cycle.  Calculating the remainder is not supported yet --
it will take one cycle longer, and blow up the final stages of the unit
a lot.  It can be added without changing the existing parts, so I skipped
it for now.

The unit has 6 stages:  In the first and second stage, the operands are
normalized (i.e. left-shifted depending on the position of the MSB of
the divisor).  Stage 3 is the real SRT divider; it executes <n> times
in a loop.  Since it provides the quotient in redundant (dual-rail)
form, a final adder is needed.  In some cases, the quotient (and the
remainder if one is calculated) must also be corrected because the SRT
algorithm may "overshoot".  Correction circuitry and the final adder
occupy stages 4-6.  Calculating the remainder will require a second
correction circuit (which is basically a carry-save add/sub circuit) and
another output adder (also located in stage 4-6) plus a `denormalizer'
which shifts the remainder back into its original position (that would
be stage 7).  For both shifters, I (will) use an omega network similar
to that in EU_SHL (but with different control logic).

Parts of the unit may be re-used.  In particular, if you feed the
output of the normalizer into an FP rounding circuit, you'll get
the `int2f'/`int2d' instructions almost for free.  If you skip the
normalization stages, the rest of the unit should also be able to perform
FP division (that will be very difficult to schedule, however).

I'm waiting for synthesis results before I release the unit.  But since
it's almost ready, and since this was the last mandatory integer EU
that was missing, I guess it's time to open a bottle of your favourite
beverage, and PARTY!!!

One open question remains, however:  What shall I do next? ;(

-- 
 Michael "Tired" Riepe <Michael.Riepe@stud.uni-hannover.de>
 "All I wanna do is have a little fun before I die"
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/