[comp.sys.mac] 68030 MMU vs 68551 {was: Virtual Memory for the Mac II}

dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) (01/19/89)

In article <79271@felix.UUCP> kehr@felix.UUCP (Shirley Kehr) writes:
> different from that for the PMMU they are supplying for Mac II. She
> said that Apple only implemented a subset of the instruction set on
> the PMMU that comes with the 030 machines. (I barely know what I'm
> talking about; please forgive the vagueness)

  Not trying to flame you!!  The PMMU that's built into the 68030 is
just a subset of the 68551.  It's not Apple's fault, it's motorola's.

  Perhaps someone in the know would be nice enough to outline some of
the differences, and the ramifications of those differences, between
the 68030 the 68551.  I've always been curious about what the
differences are, but haven't had time to research them.  {Please no
flames, comments, ect about 68030 being a CPU and the 68551 being a
MMU, I know that much (not much more)}

  Thankyou in advance.
-- 
David M. O'Rourke                                  dorourke@polyslo.calpoly.edu

"If it doesn't do Windows, then it's not a computer!!!"
Disclaimer: I don't represent the school.  All opinions are mine!

keith@Apple.COM (Keith Rollin) (01/20/89)

In article <7136@polyslo.CalPoly.EDU> dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>In article <79271@felix.UUCP> kehr@felix.UUCP (Shirley Kehr) writes:
>> different from that for the PMMU they are supplying for Mac II. She
>> said that Apple only implemented a subset of the instruction set on
>> the PMMU that comes with the 030 machines. (I barely know what I'm
>> talking about; please forgive the vagueness)
>
>  Not trying to flame you!!  The PMMU that's built into the 68030 is
>just a subset of the 68551.  It's not Apple's fault, it's motorola's.
>
>  Perhaps someone in the know would be nice enough to outline some of
>the differences, and the ramifications of those differences, between
>the 68030 the 68551.  I've always been curious about what the

I don't know about the ramifications, as I'm no virtual memory programmer, but
here are the differences:

68851 features not in 68030:
- Access levels
- Breakpoint registers
- Root table pointer
- Aliases for tasks
- Lockable entries in the ATC
- ATC entries defined as shared globally

68030 features that differ from 68851:
- 22-entry ATC
- Reduced instruction set
- Only control-alterable addressing moded supported for MMU instructions

The following instructions must be avoided or emulated on 68030:
- PVALID
- PFLUSHR
- PFLUSHS
- PBcc
- PDBcc
- PScc
- PTRAPcc
- PSAVE
- PRESTORE
- PMOVE for the unsupported registers (CAL, VAL, SCC, BAD, BACx, DRP, & AC)

Finally, there are some effective address modes in the 68851 not in 68030.



Keith Rollin  ---  Apple Computer, Inc.  ---  Developer Technical Support
INTERNET: keith@apple.com
    UUCP: {decwrl, hoptoad, nsc, sun, amdahl}!apple!keith
      "You can do what you want to me, but leave my computer alone!"

john@frog.UUCP (John Woods) (01/21/89)

In article <7136@polyslo.CalPoly.EDU>, dorourke@polyslo.CalPoly.EDU (David M. O'Rourke) writes:
>   Perhaps someone in the know would be nice enough to outline some of
> the differences, and the ramifications of those differences, between
> the 68030 the 68551.

Ramifications, for the most part, are up to you, but here are the differences,
from the 68030 User's Manual:

"The following functions of the MC68851 are not available in the MC68030 MMU:

	* Access Levels		[hence, no MULTICS -ed]
	* Breakpoint Registers
	* Root Pointer Table
	* Aliases for Tasks
	* Lockable Entries in the ATC
	* ATC Entries Defined as Shared Globally

In addition, the following features of the MC68030 MMU differ from the
MC68020/MC68851 pair:

	* 22-Entry ATC
	* Reduced Instruction Set
	* Only Control-Alterable Addressing Modes Supported for MMU
	  Instructions

In general, the MC68030 is program compatible with the MC68020/MC68851
combination.  However, in a program for the MC68030, the following
instructions must be avoided or emulated in the exception routine for F-line
unimplemented instructions:  PVALID, PFLUSHR, PFLUSHS, PBcc, PDBcc, PScc,
PTRAPcc, PSAVE, PRESTORE, and PMOVE for unsupported registers (CAL, VAL, SCC,
BAD, BACx, DRP, and AC).  Additionally, the effective addressing modes
supported on the MC68851 that are not emulated by the MC68030 must be
simulated or avoided."
-- 
John Woods, Charles River Data Systems, Framingham MA, (508) 626-1101
...!decvax!frog!john, john@frog.UUCP, ...!mit-eddie!jfw, jfw@eddie.mit.edu

Presumably this means that it is vital to get the wrong answers quickly.
		Kernighan and Plauger, The Elements of Programming Style