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.