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.)
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)