[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: Rep:Re: [f-cpu] (!) a few noteworthy things

hi !

Nicolas Boulay wrote:
> De: Yann Guidon <whygee@f-cpu.org>
> Ben Franchuk wrote:
> > Yann Guidon wrote:
> <snip>
> this is unrelated but you just gave me an idea for a 6th solution ("f)")
> :-)
>  f) avoid bypass if the size of the written register is different from
>     the required operand :-)
> this way, no need to make a complex bypass mux.
> This is pretty easy to check, and there would be only 2 cycles
> of penalty otherwise (in case of "naughty coding" practices).
> oh yes, i like that :-P
> >>> It look nice from a soft point of view. But it's add a dosen of
> comparatrt to check the equality of the SIMD flags. e) ( at least any
> version that doesn't need a read to the register bank to have the
> bypass) should be more appriopriate. Is that so common to use register
> as 8 bits and reuse it as 16 or 32 bits ?
It is not "much" often but
 - when it's used (on purpose), it's practical and useful
 - any combination of instructions must give a deterministic result
   (otherwise, the code won't be portable from one CPU to another)
   so we have to be careful

> Does the area cost of comparators are justified ?
Remember that the bypass condition must be checked anyway,
at least so that "normal" code does not suffer from the write back latency.

Checking the size flag adds a dozen of bit comparisons,
only the 2 or 3 last pipeline stages are necessary, the size
flag is 2-bit wide and there are 2 write ports ==> 2*2*3=12, no ?
This is not much compared to the other comparators, which have
to compare hundreds of bits (in the FIFO and for the LSU/fetcher tags)

Apart from the simple solution of dropping the SIMD flag, all the other
solutions require some management, and particularly on the datapath
(which is even more critical).

> > Ben Franchuk - Dawn * 12/24 bit cpu *
> nicO
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/