Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.1 6/24/83; site fortune.UUCP
Path: utzoo!watmath!clyde!floyd!harpo!eagle!mhuxl!ihnp4!fortune!phipps
From: phipps@fortune.UUCP (Clay Phipps)
Newsgroups: net.arch
Subject: Use Of Multiple Register Sets / Re: RISC perspective - (nf)
Message-ID: <2747@fortune.UUCP>
Date: Mon, 19-Mar-84 00:20:49 EST
Article-I.D.: fortune.2747
Posted: Mon Mar 19 00:20:49 1984
Date-Received: Tue, 13-Mar-84 20:37:57 EST
References: <2736@fortune.UUCP>
Organization: Fortune Systems, Redwood City, CA
Lines: 29

I would like to pose a general question: 
how are multiple sets of registers best utilized ?

Some architectures, e.g., ModComp and ELXSI, have one complete set of registers 
per process (up to some number of processes like 16),
used to speed up process context switching.

The RISC has its "overlapping register windows" scheme,
where each level of routine call causes an overlapped
(to allow parameter passing) window of registers to move, stack-like,
over a much larger set (128 ? 256 ?) of registers,
to speed up routine call context switching.

Forest Baskett had his "register cube" or "3-D register" scheme,
which combined the two ideas (although I don't believe the windows overlapped).

If you could only use one approach (not Forest's combination), 
which would get the biggest speed win, and for what classes of programs ?
For example, in UNIX, are process context switches more or less common
that routine call context switches ?

Just rattling a few more cages ...

-- Clay Phipps

-- 
   {allegra,amd70,cbosgd,dsd,floyd,harpo,hpda,ihnp4,
    megatest,nsc,oliveb,sri-unix,twg,varian,VisiA,wdl1}
   !fortune!phipps