Talk:KS11 Memory Protection and Relocation option

From Computer History Wiki
Revision as of 07:12, 5 March 2024 by Larsbrinkhoff (talk | contribs) (And from Bob Supnik: Binary form of emulation found.)
(diff) ← Older revision | Latest revision (diff) | Newer revision → (diff)
Jump to: navigation, search

Ken Thompson's memory of it

Ken was nice enough to respond to a query asking for help from old-timers; here is his brief reply:

i did all the programming for it.
it was based on the pdp-10 memory map. it had 2 pages growing toward each other and some horse crap to let the har[d]ware multiply unit shine through.
sorry, i dont remember too many details.

which, alas, does not really add much to what little we know. Jnc (talk) 04:16, 17 May 2023 (CEST)

And from Bob Supnik

Bob's reply to my query:

The KS11 created a PDP-10 (KA) style memory management system for the 11/20: that is, high-segment (instructions, in theory, and shareable, in theory) and low-segment (data). It did create a user vs monitor mode. It [did] support memory expansion, although that may have required a separate option, the MX11. It did not, IIRC, do IO mapping (IO scatter/gather). Because the high and low segments were physically contiguous, scatter/gather wasn't needed, only a "simple" relocation and bounds check on DMA transfers.
The high/low segmentation wasn't automatic; that is, it didn't function like I/D space in official memory management. Rather, the software writer had to organize a program into two .psects - a "pure" instruction segment and an "impure" data segment. The stack was always impure; the 11/20 didn't have the MARK instruction to screw that up.

So still some important open questions, but this adds a bit more. Jnc (talk) 04:41, 17 May 2023 (CEST)

Maybe we should talk to Supnik again. I believe this is part of his MIMIC simulator. https://github.com/TYMCOM-X/169283.tape/blob/f58dedd26328b5c0ba3fd2a76f722194df41d933/oper/ks11s#L67-L85 Larsbrinkhoff (talk) 08:58, 29 February 2024 (CET)
Another file has the KS11 register set: https://github.com/TYMCOM-X/169283.tape/blob/f58dedd26328b5c0ba3fd2a76f722194df41d933/oper/ks11dd#L84-L91 Larsbrinkhoff (talk) 09:02, 29 February 2024 (CET)
Given how long ago he wrote that code (it's in PDP-10 assembler, so it long pre-dates SIMH), I'm not sure he will remember much more than he has already given us.
Much more fruitful would be to find all the code of that simulator, and examine it - if the code to simulate the KS11 wasn't diked, it should be possible to re-create a programming manual for the KS11 from it. Jnc (talk) 09:33, 29 February 2024 (CET)
A binary file KS11LB.REL has been found, which presumably is a PDP-11 emulator with support for the KS11. Larsbrinkhoff (talk) 07:11, 5 March 2024 (CET)

And my axe

Clem Cole wrote me:

One of my old friends from DEC that worked in CSS, validated our belief that KS11 is supposed to have been modeled after the KA10 MMU.

and

we only have some information from UNIX2 and 3 when run on an 11/20 with a KS11 - what we don't know is how much physical memory was installed. We know it worked as a bus repeater, so it's possible it could have supported 18 bits of Unibus.

Larsbrinkhoff (talk) 17:56, 8 June 2023‎

Alas, no kernel source from V2 or V3 is still extant, AFAIK. Pity; that would let us reconstruct the KS11 a bit (like the ANTS/ISI IMP Interface, which was re-constructed from the ELF driver). Maybe the newly-located PDP-11 simulator for the PDP-10 (above), found in TYMCOM-X material, might do the same? Jnc (talk) 09:33, 29 February 2024 (CET)