Path: utzoo!utgpu!jarvis.csri.toronto.edu!mailrus!cs.utexas.edu!uunet!lotus!esegue!johnl From: johnl@esegue.segue.boston.ma.us (John R. Levine) Newsgroups: comp.arch Subject: Re: (Im)precise exceptions Message-ID: <1989Oct5.031321.2115@esegue.segue.boston.ma.us> Date: 5 Oct 89 03:13:21 GMT References: <2353@oakhill.UUCP> <261500010@S34.Prime.COM> <34701@apple.Apple.COM> <2451@wyse.wyse.com> <477@ctycal.UUCP> <265@ssp1.idca.tds.philips.nl> <4796@orca.WV.TEK.COM> <27659@shemp.CS.UCLA.EDU> <269@ssp1.idca.tds.philips.nl> Reply-To: johnl@esegue.segue.boston.ma.us (John R. Levine) Organization: Segue Software, Cambridge MA Lines: 27 In article <269@ssp1.idca.tds.philips.nl> roelof@idca.tds.PHILIPS.nl (R. Vuurboom) writes: >When (precisely :-) is an exception imprecise? When the state it saves doesn't reflect the true machine state. Typically this is because some of the instructions before the one pointed to by the exception program counter haven't been completed, or some subsequent ones have. If you're lucky, there will be some secret registers or something that allow you to patch up the machine state, if you're unlucky you're, well, out of luck. Imprecise interruptions are more common on heavily pipelined processors where there are a lot of operations in progress at once. They can be avoided if the designer is willing to put in sufficient hardware to be able to back out or annul everything in the pipeline after the interrupting instruction, but the extra complexity and performance hit can be great. The classic imprecise interrupter, the 360/91, would give you a semi-random instruction address near the interrupting instruction (or perhaps far, far away from it if it had decoded an unconditional branch or two in the meantime) and there was no way to recover the machine state. It aborted your job with a system 0C0 code, known as S0C0 pronounced "socko." Since most floating point exceptions such as divide by zero or overflow were imprecise, we got socko-ed a lot. -- John R. Levine, Segue Software, POB 349, Cambridge MA 02238, +1 617 492 3869 johnl@esegue.segue.boston.ma.us, {ima|lotus}!esegue!johnl, Levine@YALE.edu Massachusetts has 64 licensed drivers who are over 100 years old. -The Globe