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

Re: [f-cpu] IEEE FP exceptions



On Mon, 3 Mar 2003 19:22:06 +0100
Michael Riepe <michael@stud.uni-hannover.de> wrote:

> On Mon, Mar 03, 2003 at 11:37:37AM +0100, devik wrote:
> > > There is, however, a big problem with FP status:  Since
> > > instructions complete out-of-order, it's undefined which
> > > instruction the status comes from.  You can only query the status
> > > of a series of FP instructions collectively, unless you serialize
> > > the instruction stream after every FP operation (which is going to
> > > be slooooooooow).
> > 
> > from what I've understood from the paper, the use is to:
> > 
> > double compute_krakovian(matrix *x)
> > {
> > 	clear_fpuflag()
> > 	... some heavy numerical math ...
> >         if (test_flag_for_error)
> > 		return compute_krakovian_precise(x);
> > 	return y;
> > }
> > 
> > so that to do block of computation, serialize and check flag. The
> > flag could be also "hidden" part of our 96bit FPU word and thus
> > it could be copied/preserved during dataflow - one then could
> > also check for errors or imprecisions in single result. That
> > would allow very nice handling of precision, no extra context,
> > no problem with OOC and compiler could simulate IEEE behaviour
> > of global status flag by ORing status words obtained from
> > all dataflow registers in cross-section at the place of
> > "check()" call (yes gcc can handle it easily).
> > 
> > Yet another "in-pipeline" exception would be over ;-)
> 
> Unfortunately, you seem to misunderstand... there is no 96-bit
> datapath because there are no 96-bit FP registers.  At the end of

??? there is almost nothing about fp in the fcpu manual. I beleive that
size in fp will be 32 64 128. So you could use better data format.


> every instruction, the result is rounded to either float or double,
> any additional bits will be lost.  Exceptional conditions can only be
> marked in a central status register.  The only thing we could do is
> mark the result register in the scoreboard and raise an exception when
> it is used -- but that may be too late.

But you can recompute the result by an other instruction block that is
more precise but slower.

nicO

> 
> -- 
>  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/
*************************************************************
To unsubscribe, send an e-mail to majordomo@seul.org with
unsubscribe f-cpu       in the body. http://f-cpu.seul.org/