Relay-Version: version B 2.10 5/3/83; site utzoo.UUCP
Posting-Version: version B 2.10.3 4.3bsd-beta 6/6/85; site l5.uucp
Path: utzoo!linus!decvax!decwrl!sun!l5!gnu
From: gnu@l5.uucp (John Gilmore)
Newsgroups: net.micro.amiga
Subject: Re: paging on Amiga: maybe
Message-ID: <152@l5.uucp>
Date: Mon, 23-Sep-85 20:18:23 EDT
Article-I.D.: l5.152
Posted: Mon Sep 23 20:18:23 1985
Date-Received: Wed, 25-Sep-85 08:38:20 EDT
References: <250@h.cs.cmu.edu.ARPA> <527@tymix.UUCP>
Organization: Ell-Five [Consultants], San Francisco
Lines: 22
Keywords: GNU, MMU
Summary: Amiga can't do page faults with a 68000, but could offer a 68010

In article <527@tymix.UUCP>, granvold@tymix.UUCP (Tom Granvold) writes:
>     Exactly what, if any, kind if MMU does the Amiga have? Will it
>     support virtual memory and page faults?

No system based on the 68000 can offer true page faults unless it hangs
the processor while some-other-processor fetches the page (i.e. for a
large fraction of a second).  Putting a 68010 in an Amiga is certainly
doable (they're pin-compatible) but will require minor changes to their
firmware and operating system.  There will be no visible difference to
user programs.

If they were really smart, they'd have written the software to test at
power-up whether a 68000 or 68010 was installed, and deal accordingly.
You can test it by doing a TRAP instruction and seeing how many bytes
are pushed on the stack.  To support a 68010, you have to change the
bus error [page fault] handler, plus anywhere that builds a fake
interrupt stack frame and then does an "rte" to it.  An extra plus is
that this work will make dropping in a 68020 pretty easy.

Given a 68010, any MMU that can make an address invalid, and then later
make it valid, can offer page faults.  How *easy* it is to do this with
the MMU can be a factor in whether anyone will attempt it, though.