Path: utzoo!utgpu!water!watmath!clyde!att!alberta!ubc-cs!uw-beaver!cornell!mailrus!ncar!ico!rcd
From: rcd@ico.ISC.COM (Dick Dunn)
Newsgroups: comp.arch
Subject: Re: separate integer and float register
Summary: Separate FP shouldn't slow context switch!
Message-ID: <8769@ico.ISC.COM>
Date: 17 Aug 88 16:31:56 GMT
References: <2724@wright.mips.COM> <6800002@modcomp>
Organization: Interactive Systems Corp, Boulder, CO
Lines: 25

> Special floating point registers also slow down context switching, due
> to the extra time needed to save/restore them...

How?  If you have m integer registers and n floating-point registers, it
ought to take about the same time as the same number (m+n) of general
registers.  Let's not confuse the issue of separate registers with the
matter of how many registers you have total...you'd expect that if you have
more registers, it's going to take longer to save/restore.

However, there are two other considerations which make things a little more
complicated:
	- Separate FP registers may actually require that you have more
	  total registers to get the same performance, since you can't
	  trade off the use of a register between int and fp.  If your
	  registers are completely GP, you might use half of them as fp in
	  one task but none of them as fp in another.
			but
	- You can often skip the FP register save/restore by keeping track
	  of whether the registers get used...for example, if you can
	  arrange to get an exception on the first fp op, you don't have to
	  save fp registers for a process that has never gotten that
	  exception.
-- 
Dick Dunn      UUCP: {ncar,nbires}!ico!rcd           (303)449-2870
   ...I'm not cynical - just experienced.