[comp.arch] Hardware-supported user handlers: examples

andrew@frip.gwd.tek.com (Andrew Klossner) (05/18/88)

[]

	"Probably because practically every machine in existence routes
	*all* traps and interrupts to the kernel, which can pass them
	on to the user if it pleases.  I know of no machine, offhand,
	whose hardware has any notion of a "user handler"."

There's the PDP-10, with "Unimplemented User Operations" (UUOs) which
vector directly to the user's UUO trap handler.

  -=- Andrew Klossner   (decvax!tektronix!tekecs!andrew)       [UUCP]
                        (andrew%tekecs.tek.com@relay.cs.net)   [ARPA]

rpw3@amdcad.AMD.COM (Rob Warnock) (05/19/88)

+-+---------------
| | "Probably because practically every machine in existence routes
| | *all* traps and interrupts to the kernel, which can pass them
| | on to the user if it pleases.  I know of no machine, offhand,
| | whose hardware has any notion of a "user handler"."
| +---------------
| There's the PDP-10, with "Unimplemented User Operations" (UUOs) which
| vector directly to the user's UUO trap handler.  -=- Andrew Klossner
+---------------

Ah, yes, the PDP-10... it trapped 1/2 the UUO's to the user, and 1/2 to
the kernel (for use as system calls). The user UUO's were used by things
like the FORTRAN (and other language) libraries to synthesize "fat"
instructions, like "IO." This was nice since the hardware resolved any
indirection/indexing before taking the trap.

By the way, the KI- and KL-10 processors also reserved a few addresses
in the I/O space to be "unprivileged". That is, I/O instructions (DATAI,
DATAO, CONI, CONO) were allowed to these few addresses from normal user-mode
programs. I'm not sure if this was ever used by anyone...


Rob Warnock
Systems Architecture Consultant

UUCP:	  {amdcad,fortune,sun,attmail}!redwood!rpw3
ATTmail:  !rpw3
DDD:	  (415)572-2607
USPS:	  627 26th Ave, San Mateo, CA  94403

davidsen@steinmetz.ge.com (William E. Davidsen Jr) (05/19/88)

The GE600 (Honeywell 6000) vectored the interrupts to a hardware fault
vector, which could then return to the user in user mode if desired. It
wasn't *direct* to the user, but it only needed to be two instructions
away.

The hardware traps were:
  MME (op)		master mode entry
  DRL (op)		derail
  fault tag (address)	special address which would (deliberately) cause
			a restartable fault

GECOS (sic) and CRDOS used the MME to call the o/s, DTSS used the DRL,
and there was a t/s system which used the tag fault. It sent output to
the terminal by evaluating the address of the tally word describing the
string.
-- 
	bill davidsen		(wedu@ge-crd.arpa)
  {uunet | philabs | seismo}!steinmetz!crdos1!davidsen
"Stupidity, like virtue, is its own reward" -me