[comp.arch] multi-threaded SPARC question

hunt@ernie.Berkeley.EDU (Jim Hunt) (11/11/89)

It seems possible that a SPARC chip could be used as 8 loaded
contexts, instead of 8 windows.  The compiler could generate code
for a 16 register machine, and do it's own register allocation a la
mips, and never use the push and pop calls.  But the problem is
that the chip responds to traps and interrupts by doing a push (or
pop?) and writing some state in the next window, then calling the
handler.  So, can the handlers be rewritten to deal with this???
In such a way as to have a system with 8 loaded contexts and an
OS that can swap them HEP style at high speed?  Yes, register
usage would be poor, you might have to give a up couple that the HW
trap overwrites, and the int/trap handlers would be gross, but if
your system has 200 cycle message delay, then context (really
thread) switch time is very critical.

I have fully convinced myself that it MIGHT be possible, and
would like to hear from anyone who has gone beyond that and
actually done it, or even attempted to really nail down the
issues involved.  The system would be drastically changed, but if
it is doable, our 32 proc. butterfly would be a lot nicer.

Please, results only, I already BELIEVE it might be possible.
I am most interested in "Yeah, I did it, here it is" or else "No,
I tried, and it can't be done because";  Hopefully the former.

jim hunt@ernie.Berkeley.EDU	H&H Enterprises (1 employee)
These ARE the bosses opinions, I AM the * boss!!!
grad UCB, MS EE/CS, May 90, resume on request.