Path: utzoo!utgpu!jarvis.csri.toronto.edu!rutgers!apple!oliveb!amiga!cbmvax!daveh From: daveh@cbmvax.commodore.com (Dave Haynie) Newsgroups: comp.sys.amiga Subject: Re: 68040 vs 80246 (Was Re: Xerox sues Apple!!!) Message-ID: <9107@cbmvax.commodore.com> Date: 20 Dec 89 04:10:37 GMT References: <49900@bbn.COM> Organization: Commodore, West Chester, PA Lines: 49 in article <49900@bbn.COM>, denbeste@bbn.com (Steven Den Beste) says: > In article <819@mindlink.UUCP> a218@mindlink.UUCP (Charlie Gibbs) writes: >> >> I seem to recall that the 386 was released with bugs too. ... >> I haven't heard similar stories about the 680x0 line .... > The original release of the 68000 had a bug in the "page fault" interrupt, > so that it pushed the STACK POINTER onto the stack frame instead of the RETURN > ADDRESS. Needless to say, this made it pretty hard to use an MMU with a 68000. No, actually, that wasn't the problem. You can certainly take a bus error exception on the 68000, and return from it. However, there essentially is no "page fault" exception in the 68000. Not a bug, a design defficieny. If a 68000 takes a bus error in the midst of an instruction, there's no way to transparently patch things up and either restart or continue the instruction. In the 68010, Moto added a larger stack frame for the bus error exception. This allows software to figure out what failed, patch things up by loading a new page or whatever else may be necessary, and then RTE back to continue the instruction no matter where the fault was detected. The 68010 also added another little goody so that it could function as a true virtual machine (a program in user mode on the 68000 can actually find out it's in user mode, while on the 68010 the OS can trap things and fool that program into believeing it's actually in supervisor mode). > One of the very first machines with a 68000 and MMU (it may have been from > Apollo, my memory is hazy) actually had TWO 68000's, with one runnine one > instruction ahead of the other. Yup, that was Apollo; others probably used the technique too. I believe the first Suns were 68010 machines, though. We had a bunch of the old Apollos around here for awhile, the others used a weird bit-slice CPU that emulated the 68010. Now all the Apollos are neat '020 and '030 machines not much larger than an A2000. > Is that ugly enough for you? (I might mention that in the Intel vs. Motorola > fight, I'm a firm Motorola fan. But let's keep things in perspective here, OK?) Again, that wasn't a bug. Bugs are generally fixed in the next rev of the silicon after they're discovered. Basic flaws in design are much harder to take care of. Again, here's a place where Intel has had to work much harder than Motorola -- Moto _almost_ got it right the first time, Intel went through the 8086/88, 80186, and 80286 before finally getting pretty close in the '386. > Steven C. Den Beste || denbeste@bbn.com (ARPA/CSNET) -- Dave Haynie Commodore-Amiga (Systems Engineering) "The Crew That Never Rests" {uunet|pyramid|rutgers}!cbmvax!daveh PLINK: hazy BIX: hazy Too much of everything is just enough