From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on inbox.vuxu.org X-Spam-Level: X-Spam-Status: No, score=-1.0 required=5.0 tests=MAILING_LIST_MULTI, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.4 Received: (qmail 6753 invoked from network); 3 Aug 2023 23:10:54 -0000 Received: from minnie.tuhs.org (50.116.15.146) by inbox.vuxu.org with ESMTPUTF8; 3 Aug 2023 23:10:54 -0000 Received: from minnie.tuhs.org (localhost [IPv6:::1]) by minnie.tuhs.org (Postfix) with ESMTP id 0F26541719; Fri, 4 Aug 2023 09:10:51 +1000 (AEST) Received: from mercury.lcs.mit.edu (mercury.lcs.mit.edu [18.26.0.122]) by minnie.tuhs.org (Postfix) with ESMTPS id 1A3B441710 for ; Fri, 4 Aug 2023 09:10:45 +1000 (AEST) Received: by mercury.lcs.mit.edu (Postfix, from userid 11178) id 2B4AB18C080; Thu, 3 Aug 2023 19:10:44 -0400 (EDT) To: tuhs@tuhs.org Message-Id: <20230803231044.2B4AB18C080@mercury.lcs.mit.edu> Date: Thu, 3 Aug 2023 19:10:44 -0400 (EDT) From: jnc@mercury.lcs.mit.edu (Noel Chiappa) Message-ID-Hash: RQPE6RAJXFFMRMK7UCVJE6JYT3XM3GHC X-Message-ID-Hash: RQPE6RAJXFFMRMK7UCVJE6JYT3XM3GHC X-MailFrom: jnc@mercury.lcs.mit.edu X-Mailman-Rule-Misses: dmarc-mitigation; no-senders; approved; emergency; loop; banned-address; member-moderation; nonmember-moderation; administrivia; implicit-dest; max-recipients; max-size; news-moderation; no-subject; digests; suspicious-header CC: jnc@mercury.lcs.mit.edu X-Mailman-Version: 3.3.6b1 Precedence: list Subject: [TUHS] Re: Split addressing (I/D) space (inspired by the death of the python... thread) List-Id: The Unix Heritage Society mailing list Archived-At: List-Archive: List-Help: List-Owner: List-Post: List-Subscribe: List-Unsubscribe: > From: Clem Cole > A new hire in 1976, Jeff Mitchell supposedly had a bet with Bill > Strecker that he could implement an 11 on a single"hex high" CPU board > if he got rid of the lights and switches. He ran out of room to > implement seperate I/D, so it became an 11/40 class [and it has an > 8008-1 that runs the front panel]. I don't know about the Strecker story, but the first PDP-11 CPU on a single card (a hex card) was the KD11-D: https://gunkies.org/wiki/KD11-D_CPU of the -11/04. It didn't have _any_ memory management, though (or a front panel; to get that, you had to use the KY"11-LB: https://gunkies.org/wiki/KY11-LB_Programmer%27s_Console which added another quad card). The first -11 CPU i) on a single card and ii) with memory management was the FDF11-A: https://gunkies.org/wiki/KDF11-A_CPU The first -11 CPU i) on a single card and ii) with split I+D memory management was the KDJ11-A. > It was not until 11/44 that DEC was able to make a hex height > implementation of the 11 that managed to cram a full 11/70 into that > system. I'm not sure what your point is here? The KD11-Z CPU of the -11/44: https://gunkies.org/wiki/KD11-Z_CPU was a _minimum_ of five hex boards; a little smaller than a KB11-B (15 hex cards). Floating point was an extra card; CIS was 2 more. > if you look at the link line of sys/run the 45 does not have -i Split I+D for the kernel was not supported by the linker in V6; a combination of 'sysfix' (a special post-processor, which took as input a relocatable linked image) and code in m45.s was needed. https://gunkies.org/wiki/Upgrading_UNIX_Sixth_Edition https://gunkies.org/wiki/UNIX_V6_memory_layout The code in m45.s to handle split I+D in the kernel: https://minnie.tuhs.org/cgi-bin/utree.pl?file=V6/usr/sys/conf/m45.s starts at 'start:' and is adequately commented to tell you what it's doing when it plays around with kernel memory. > From: Will Senn > with I/D, you can use 64k for I and 64k for D. Was that it, or were > there other tricks to get even more allocated I have this vague memory that someone (Berkeley, I think?) added support for automatic code overlays in user processes. The programmer had to decide which modules went in which overlays, but after that it was all automagic. There was a 4xx code allocated to them. I think the support for that (in e.g. the linker) was somehow involved with the use of overlays in the kernel, but I don't know the details (nothing after V6 is at all interesting to me). > didn't the 11 max out at 256k)? You need to distinguish between i) the amount of memory the machine could handle, and ii) the amount of memory that running code could 'see' at any instant. The latter was always either 64KB, or 64KB+64KB (with split I+D turned on, on CPUs which supported it). The former, it's complicated. Mostly, on UNIBUS only machines, it was 256KB. (Although there was the Able ENABLE: https://gunkies.org/wiki/Able_ENABLE which added an Extended UNIBUS, and could take them up to 4MB.) The -11/70, as mentioned, had a Main Memory Bus, and could handle up to 4MB. The -11/44 had an Extended UNIBUS, and could also handle up to 4MB (but only after the MS11-P became available; there were only 4 main memory slots in the backplane, and MS11-M cards were only 256KB.) On QBUS achines, after the KB11-A (Revision A), which only suppported 256 KB, all later revisions and CPUs could also handle up to 4MB. Noel