Path: utzoo!utgpu!news-server.csri.toronto.edu!mailrus!cs.utexas.edu!usc!snorkelwacker!husc6!encore!pinocchio.encore.com From: jkenton@pinocchio.encore.com (Jeff Kenton) Newsgroups: comp.arch Subject: Re: Interrupts in user space; Lightweight Traps Message-ID: <12824@encore.Encore.COM> Date: 28 Sep 90 11:28:06 GMT References: <70576@sgi.sgi.com> Sender: news@Encore.COM Lines: 37 From article <70576@sgi.sgi.com>, by rpw3@rigden.wpd.sgi.com (Rob Warnock): > In article <413@data.UUCP> kend@data.UUCP (Ken Dickey) writes: > +--------------- > | I think that the thing to concentrate on is design of HW architectures > | which support the above so that there are a set of "lightweight traps" > | which can be safely reflected to the runtime system. This could lead > | to a large savings in code size. > +--------------- > > In both of the Unix ports done to the Am29000 (S5 & BSD), the "spill/fill" > assertion traps [used to shift the register window] were "trampolined" back > to user mode code to perform the actual operation. In addition, a user program > could request that most other (synchronous) traps also "bounce" back to a > user-mode handler. The trampoline code was quite short. On the 88000 this sort of fast trap is also possible, and various suppliers of 88000 boxes have made use of them (especially the real-time people). The question which started this thread, however, had to do with Herman Rubin's request for a buffer full (or was it empty) exception. This would occur under arbitrary circumstances without the need for the user code to issue any test or trap instructions (TCND or TBND on the 88000). Providing special services to user code is a lot harder when the user isn't willing to do at least a little of the work himself. ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - ----- ----- jeff kenton --- temporarily at jkenton@pinocchio.encore.com ----- ----- --- always at (617) 894-4508 --- ----- ----- - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - - -----