Article View: comp.arch
Article #12252Re: Changing IEEE rounding modes on the fly (was Re: somthing else)
From: Herman Rubin
Date: Tue, 25 Jun 1991 12:40
Date: Tue, 25 Jun 1991 12:40
30 lines
2286 bytes
2286 bytes
In article <MAC.91Jun24115900@gold.kpc.com>, mac@gold.kpc.com (Mike McNamara) writes:
>
> In the Ardent titan, using the BIT fp chips, we supported on
> the fly, fully pipelined rounding mode changes. We did this by making
> the change rounding mode action an instruction, rather than a register
> write. This greatly facilitates interval arithmetic, intrinsics, and what
> have you, as discussed to death in this thread.
> However, since the changing of rounding modes is a pipelined
> instruction, rather than a register write, the operating system has to
> start up the vector unit while in kernel mode, and insert an
> instruction into the stream if it is necessary to change rounding
> modes upon context switch.
> Luckily A) you could read the current rounding mode from a
> status register, and only insert this instruction if you needed to
> switch, and B) most programs use round to nearest.
So we need another instruction to do a trivial switch. If rounding mode
is being changed frequently, as it must be on scalar interval arithmetic,
the "obvious" answer is to put it in the instruction, where it can be
decoded in parallel with the much slower execution. Alternatively, have
a fair number of status registers, with the choice of the status register
part of the instruction.
No matter how much pipelining takes place, unless there is an unused slot
in a pipe running in parallel, it takes time. But in that case, the
efficiency is not being used, anyhow.
--
Herman Rubin, Dept. of Statistics, Purdue Univ., West Lafayette IN47907-1399
Phone: (317)494-6054
hrubin@l.cc.purdue.edu (Internet, bitnet) {purdue,pur-ee}!l.cc!hrubin(UUCP)
Technical Details
Message-ID:
<13946@mentor.cc.purdue.edu>Path:
arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!sample.eng.ohio-state.edu!purdue!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubinReferences:
<9106190449.AA02871@ucbvax.Berkeley.EDU> <MAC.91Jun24115900@gold.kpc.com>Show Full Headers
Complete Article Headers
Path: arc1-ca.pugleaf.net!utzoo!utgpu!news-server.csri.toronto.edu!cs.utexas.edu!swrinde!zaphod.mps.ohio-state.edu!cis.ohio-state.edu!sample.eng.ohio-state.edu!purdue!mentor.cc.purdue.edu!pop.stat.purdue.edu!hrubin From: hrubin@pop.stat.purdue.edu (Herman Rubin) Newsgroups: comp.arch Subject: Re: Changing IEEE rounding modes on the fly (was Re: somthing else) Summary: But it takes another instruction Message-ID: <13946@mentor.cc.purdue.edu> Date: 25 Jun 91 12:40:37 GMT References: <9106190449.AA02871@ucbvax.Berkeley.EDU> <MAC.91Jun24115900@gold.kpc.com> Sender: news@mentor.cc.purdue.edu Lines: 30