Path: utzoo!utgpu!watserv1!watmath!att!pacbell!pacbell.com!decwrl!bacchus.pa.dec.com!deccrl!decvax.dec.com!zinn!wgc386!slum!slumlord From: slumlord@slum.MV.COM (Laird Heal) Newsgroups: comp.sys.mac.system Subject: Re: Protected-mode snake oil Summary: the F line Keywords: MMU, coprocessor, MPU Message-ID: <1990Sep6.031748.6404@slum.MV.COM> Date: 6 Sep 90 03:17:48 GMT References: <33164@cup.portal.com> <1204.26c2fb48@waikato.ac.nz> <8919@ur-cc.UUCP> <1990Aug24.180757.3439@Neon.Stanford.EDU> <1990Sep5.201244.3447@slum.MV.COM> Organization: dis Lines: 39 >In article <33164@cup.portal.com>, ts@cup.portal.com (Tim W Smith) writes: >> The Callan Data Systems Unistar 200 I used to have had only >> a 68000 and supported an MMU quite well. A whole bunch of >> other 68000 systems of the same vintage also supported >> MMUs quite well. >> >There was a discussion of this on comp.arch a while back. I don't remember >the details, but it wasn't trivial. The problem is the 68000 doesn't >keep enough state to restart some instructions that may be interrupted >by a page fault. Some solutions included tricks like a second 68000 - >it didn't sound to me as if one could simply tack on an MMU and get paging, >the way you can with a 68020 (well, if assuming getting the software side >to work is simple...). > >Philip Machanick >philip@pescadero.stanford.edu The second 68000 could have been any processor to hold the first 68000 in a wait state while it obtained memory referenced by the particular address and read it from disk if necessary. You cannot restart a 68000 instruction due to the preincrement-postdecrement addressing modes, which make it well nigh impossible to determine what the value of the registers were when the instruction began. The 68010 solved this by pushing a few more bytes on the stack when servicing an interrupt. The 68020 and later began to utilize the previously-illegal "F-line" op codes, which are reserved for Motorola coprocessors. There are some FPU (68881) emulations of the 68020 for the 68000, and no reason that an MMU emulation could not be written - I would guess that it is little more than cleaning up from the ILLEGAL trap and writing to the address of the coprocessor. However, why bother? From a hardware standpoint it is just as easy to add a 68030 as a 68551, and from a software standpoint that is MUCH easier. Laird Heal laird@slum.MV.COM (Salem, NH) (603) 898-1406 -- Laird J. Heal {root, slumlord, laird}@slum.MV.COM (Salem, NH) (603) 898-1406