According to EricP <
ThatWouldBeTelling@thevillage.com>:
PDP-11 used 3 msb address bits plus the S/U privilege mode as an index
into a 16 entry HW table to map into a 18-bit physical space.
On the 11/45 and 11/70 at least, there were separate mappings for
instructions and data, and three modes, kernel, supervisor, and user.
I've never used either of them but imagine most of their complexity
would be due to the very small number of mapping registers forcing
software to do things like segment overlays, segment swapping, etc.
If hardware can handle say up to 4096 mapping registers
then these complexities would be unlikely to occur.
I would be surprised if anyone used those as individual segments.
PDP-11 Unix treated them single memory areas. The code ran from 0 to
wherever, the data had the heap running up from 0 and the stack
running down from -1. The data was physically contigous and as I
recall it shuffled and swapped when the heap or stack needed to grow
and they had to move the stack up 8K to make room for another segment
register.
Unix didn't use supervisor mode so at Yale I did a kludge for our
early bitmapped terminals which put your terminal's screen memory into supervisor data space so your program could use Move to/from previous
data instructions to access screen memory without needing a system
call.
A lot of people do not appreciate how much of an improvement paging is
with equal sized pages you never need to shuffle.
--
Regards,
John Levine,
johnl@taugh.com, Primary Perpetrator of "The Internet for Dummies",
Please consider the environment before reading this e-mail.
https://jl.ly
--- SoupGate-Win32 v1.05
* Origin: fsxNet Usenet Gateway (21:1/5)