• Re: 8K segments, ugh, Bypassing VM

    From John Levine@21:1/5 to All on Fri Feb 23 21:04:40 2024
    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)