<div dir="auto"><div><br><br><div class="gmail_quote"><div dir="ltr" class="gmail_attr">On Thu, Aug 3, 2023, 5:10 PM Noel Chiappa <<a href="mailto:jnc@mercury.lcs.mit.edu">jnc@mercury.lcs.mit.edu</a>> wrote:<br></div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex"> > From: Clem Cole<br>
<br>
> A new hire in 1976, Jeff Mitchell supposedly had a bet with Bill<br>
> Strecker that he could implement an 11 on a single"hex high" CPU board<br>
> if he got rid of the lights and switches. He ran out of room to<br>
> implement seperate I/D, so it became an 11/40 class [and it has an<br>
> 8008-1 that runs the front panel].<br>
<br>
I don't know about the Strecker story, but the first PDP-11 CPU on a single<br>
card (a hex card) was the KD11-D:<br>
<br>
<a href="https://gunkies.org/wiki/KD11-D_CPU" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/KD11-D_CPU</a><br>
<br>
of the -11/04. It didn't have _any_ memory management, though (or a front<br>
panel; to get that, you had to use the KY"11-LB:<br>
<br>
<a href="https://gunkies.org/wiki/KY11-LB_Programmer%27s_Console" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/KY11-LB_Programmer%27s_Console</a><br>
<br>
which added another quad card). The first -11 CPU i) on a single card and<br>
ii) with memory management was the FDF11-A:<br>
<br>
<a href="https://gunkies.org/wiki/KDF11-A_CPU" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/KDF11-A_CPU</a><br>
<br>
The first -11 CPU i) on a single card and ii) with split I+D memory<br>
management was the KDJ11-A.<br>
<br>
<br>
> It was not until 11/44 that DEC was able to make a hex height<br>
> implementation of the 11 that managed to cram a full 11/70 into that<br>
> system.<br>
<br>
I'm not sure what your point is here? The KD11-Z CPU of the -11/44:<br>
<br>
<a href="https://gunkies.org/wiki/KD11-Z_CPU" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/KD11-Z_CPU</a><br>
<br>
was a _minimum_ of five hex boards; a little smaller than a KB11-B (15 hex<br>
cards). Floating point was an extra card; CIS was 2 more. <br>
<br>
<br>
> if you look at the link line of sys/run the 45 does not have -i<br>
<br>
Split I+D for the kernel was not supported by the linker in V6; a combination<br>
of 'sysfix' (a special post-processor, which took as input a relocatable<br>
linked image) and code in m45.s was needed.<br>
<br>
<a href="https://gunkies.org/wiki/Upgrading_UNIX_Sixth_Edition" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/Upgrading_UNIX_Sixth_Edition</a><br>
<a href="https://gunkies.org/wiki/UNIX_V6_memory_layout" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/UNIX_V6_memory_layout</a><br>
<br>
The code in m45.s to handle split I+D in the kernel:<br>
<br>
<a href="https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/conf/m45.s" rel="noreferrer noreferrer" target="_blank">https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/conf/m45.s</a><br>
<br>
starts at 'start:' and is adequately commented to tell you what it's doing<br>
when it plays around with kernel memory.<br>
<br>
<br>
<br>
> From: Will Senn<br>
<br>
> with I/D, you can use 64k for I and 64k for D. Was that it, or were<br>
> there other tricks to get even more allocated<br>
<br>
I have this vague memory that someone (Berkeley, I think?) added support for<br>
automatic code overlays in user processes. The programmer had to decide which<br>
modules went in which overlays, but after that it was all automagic. There<br>
was a 4xx code allocated to them.<br>
<br>
I think the support for that (in e.g. the linker) was somehow involved with<br>
the use of overlays in the kernel, but I don't know the details (nothing<br>
after V6 is at all interesting to me).<br></blockquote></div></div><div dir="auto"><br></div><div dir="auto">V7 had a number of patches for MENLO_LINKER or MENLO_OVERLAY that Berkeley integrated into the tree, but I'm not sure they wrote it. Their hacks were usually UCB_something...</div><div dir="auto"><br></div><div dir="auto">Warner</div><div dir="auto"><br></div><div dir="auto"><div class="gmail_quote"><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> didn't the 11 max out at 256k)?<br>
<br>
You need to distinguish between i) the amount of memory the machine could<br>
handle, and ii) the amount of memory that running code could 'see' at any<br>
instant. The latter was always either 64KB, or 64KB+64KB (with split I+D<br>
turned on, on CPUs which supported it).<br>
<br>
The former, it's complicated. Mostly, on UNIBUS only machines, it was 256KB.<br>
(Although there was the Able ENABLE:<br>
<br>
<a href="https://gunkies.org/wiki/Able_ENABLE" rel="noreferrer noreferrer" target="_blank">https://gunkies.org/wiki/Able_ENABLE</a><br>
<br>
which added an Extended UNIBUS, and could take them up to 4MB.) The -11/70,<br>
as mentioned, had a Main Memory Bus, and could handle up to 4MB. The -11/44<br>
had an Extended UNIBUS, and could also handle up to 4MB (but only after the<br>
MS11-P became available; there were only 4 main memory slots in the<br>
backplane, and MS11-M cards were only 256KB.) On QBUS achines, after the<br>
KB11-A (Revision A), which only suppported 256 KB, all later revisions and<br>
CPUs could also handle up to 4MB.<br>
<br>
Noel<br>
</blockquote></div></div></div>