Path: utzoo!mnetor!uunet!husc6!mailrus!nrl-cmf!ukma!gatech!ncar!noao!mcdsun!nud!anasaz!john From: john@anasaz.UUCP (John Moore) Newsgroups: comp.arch Subject: Re: Do RISC Compilers Consider Multiprogramming? Message-ID: <1016@anasaz.UUCP> Date: 7 May 88 03:03:47 GMT References: <620@speedy.mcnc.org% <10707@steinmetz.ge.com% <1002@ima.ISC.COM> Reply-To: john@anasaz.UUCP (John Moore) Organization: Anasazi Inc, Phoenix AZ Lines: 25 Keywords: RISC compiler context-switch architecture multiprogramming In article <1002@ima.ISC.COM% johnl@ima.UUCP (John R. Levine) writes: %% Interesting thought from the past... the GE 600 series allowed %%interrupts on an instruction fetch from an even location (since the bus %%was 72 bits wide that was every other instruction). This resulted in the %%ability to preserve context throught a few instructions. This, by the way, let to a rather bizarre bug in an old GECOS-3 module. Seems that a module had been written where the programmer saved all registers with one instruction (it's been too long... don't remember the op). Much later the code wanted to restore all registers. However, on a multiprocessing 635 the processor number had to be in register 7 when in master mode. So... the clever programmer preceded the multiple load instruction with one which stored register seven into the register save area. ... I later added code to the module, causing the register store to slide from an even boundary (where it was safe due to the effect mentioned above) to an odd boundary. Naturally, at some point the module was switched from on processor to another BETWEEN THOSE TWO INSTRUCTIONS. The operating system kernel crashed when it discovered that it had two processors numbered 1 and no processor zero. So.... use something other than even/odd addresses if you don't want to drive folks crazy! (and, if you are a programmer, don't count on such a sneaky trick!) -- John Moore (NJ7E) hao!noao!mcdsun!nud!anasaz!john (602) 870-3330 (day or evening) The opinions expressed here are obviously not mine, so they must be someone else's.