Subject: Re: emulating MMU on 68020?
To: Hubert Feyrer <hubert.feyrer@informatik.fh-regensburg.de>
From: Todd Vierling <tv@wasabisystems.com>
List: port-m68k
Date: 09/25/2000 16:26:08
On Mon, 25 Sep 2000, Hubert Feyrer wrote:

: On Mon, 25 Sep 2000, Ignatios Souvatzis wrote:
: > AFAICT without actually rereading the manuals, yes, it should work.
: 
: Hum, I've read the latter sections, and they mention som e"external signal
: giving device" (paraphrased), i guess that's where something like a 68851
: MMU is needed.

There are different approaches that can be used, but something needs to be
able to generate interrupts when memory not occupied by an "available page"
is accessed.  Think the break extent, and mmapped segments.  Also, without a
`real' MMU, you don't have any concept of clean and dirty pages for things
like swap and mmapped segments.

Dealing `without' a MMU requires a distinctly different approach to code.
Typically, it must all be PIC (or otherwise all binaries must have absolute
locations), you don't really have process security, and fork() is a really
hairy case, sometimes requiring that PIC relocations exist *even on the
stack and in malloced heap segments*.  Additionally, the concept of
`virtual' memory is more or less out the window, since doing several-page
swaps by data moves on _every_ context switch is rather much.

NetBSD's VM concept pretty much requires a MMU in order to function.

-- 
-- Todd Vierling <tv@wasabisystems.com>  *  http://www.wasabisystems.com/
-- Speed, stability, security, and support.  Wasabi NetBSD:  Run with it.