Path: utzoo!attcan!utgpu!jarvis.csri.toronto.edu!mailrus!uwm.edu!gem.mps.ohio-state.edu!apple!well!nagle
From: nagle@well.UUCP (John Nagle)
Newsgroups: comp.sys.mac
Subject: Re: PMMU...
Message-ID: <13822@well.UUCP>
Date: 26 Sep 89 16:37:26 GMT
References: <822@rodan.acs.syr.edu>
Reply-To: nagle@well.UUCP (John Nagle)
Distribution: usa
Lines: 58

In article <822@rodan.acs.syr.edu> jstewart@rodan.acs.syr.edu (Ace Stewart [Jonathan III]) writes:
>With all the talk about PMMU chips from Motorola, I ask this. I own an
>SE with 1Meg RAM. Its the 68000 and I'm kinda wonderin what kind of chip
>(if any) I should ask for. I'm not sure I understand the concept of
>PMMU to begin with and ask everyone's advice as well as tap into your
>wisdom...

      A memory management unit is a device which sits between the CPU
and the memory.  Its purpose in life is to make it possible to implement
operating systems where each process is safely confined to its own
address space and can't clobber other processes running at the same time.
Some memory management units also provide part of the machinery needed
for "virtual memory".  With this, a program can address data that isn't really
in memory, the operating system gets an interrupt when this happens, and
a smart operating system can move the data into memory (usually moving
something else out to disk to get the space), and after all this happens,
the program gets control back as if nothing had happened, but now the 
needed data is in memory.

      The MC68000 and MC68010 have no memory management units.  The
MC68010 can be used with an external memory management unit, and the
Sun 2 does this.  The MC68000 doesn't have some features needed for
virtual memory even with an external MMU, so it can't be upgraded.
(The problem with the 68000 is that it is unable to recover properly
after a page fault if the instruction causing the fault had automatic
incrementation.)

      The MC68020 does not have a memory management unit either, but
like the 68010, can be provided with an external one.  This is the
"PMMU" (Paged Memory Management Unit) used in the Mac II.  It's not 
standard on a Mac II, but is an expensive extra-cost option.  On 
standard Mac IIs, the MMU socket is filled with a chip which is more
of a dummy plug than a component; it just passes the addresses through
unchanged.

      The MC68030 has a built-in MMU comparable to (but not
compatible with) the PMMU.  So all '030-based machines are in theory
capable of running a virtual memory operating system with protected
memory.

     Unfortunately, none of this excellent memory management hardware
does you any good unless you run A/UX.  The regular Mac operating system
just turns any memory management unit off and runs in "real mode".  Even
release 7, much to the disappointment of people who don't like system
crashes, doesn't use the MMU.  On a machine with memory management and
a solid operating system, an application can't crash the system no matter
what it does.  Essentially all workstation-class machines (Suns, Apollos,
HP workstations, and all the UNIX boxes) work that way.  So does the
Mac under A/UX, although there's the problem under A/UX that if the
application crashes while in control of the screen, it's hard to
get control of the machine back, even though the operating system is
running quite well inside the box.  (If you have an extra terminal or
a network, you can talk to the machine that way and kill the offending
application.  This is Apple's recommendation.)

      "Release 7 - Bomb Boxes Forever!"

      					John Nagle