[comp.os.minix] MMU & the 68K

SYMOLON%CTSTATEU.BITNET@cunyvm.cuny.edu (03/01/90)

>It should be possible to have a quick hardware-adder which adds an offset
>on the Adress lines A8..A23 of the 68000 processor while in user mode.
>The external hardware can detect if the 68000 is in user mode and adds then
>the contents of a register to the address lines. This register has to be
>loaded on every process switch.
>With this hardware, no relocation during EXEC nor shadowing is necessary
>AND user programs cant reference absolute Adresses (which they shouldn't).

>If there is an hardware adder which is quick enough, this can even be
>built into existing 68000 systems. We would have an external base register
>for code, stack & data.

The 68000 has 3 "function lines" FC0 FC1 and FC2.  These lines are active when
a valid address is being outputted.  These decode what status that the CPU is
currently in.  For example, xx1 is supervisor mode, and x1x is user mode.  Each
mode has the use of all address lines, for a total of 64Megs of memory.  The
data areas are decoded out also.  This means that the code and data can not be
mixed in a program.  This is close to the stack/data/code segments in 80x86
processors, except your are limited to 8 Meg and not 64k.

             ____________________  _____________________
             | 8 meg            |  | 8 meg             |
             | supervisor code  |  | user code         |
             --------------------  ---------------------
             --------------------  ---------------------
             | 8 meg            |  | 8 meg             |
             | supervisor data  |  | user data         |
             --------------------  ---------------------
             --------------------  ---------------------
             | 8 meg            |  | 8 meg             |
             |                  |  |                   |
             --------------------  ---------------------

I am not familiar with the MMU's, so what they do with the function lines is
unknown to me.

______________________________________________________________________________
James Symolon    |  A new movie:
Symolon@CTSTATEU |      Halloween IX - the audience strikes back
______________________________________________________________________________

HBO043%DJUKFA11.BITNET@cunyvm.cuny.edu (Christoph van Wuellen) (03/21/90)

I have seen this message before, but I don't understand why code & data
can't be merged and why the segments are 8Meg.
I don't have the 68000 manual handy here, but if you can tell user mode
from supervisor mode, you can let the ,,address buffers'' behave like
buffers (in sup. mode) or like adders (in user mode, irresp. of code/data)
C.V.W.