Minuteman D-17b: The Desktop Computer Was Born in an ICBM

Video Statistics and Information

Video
Captions Word Cloud
Reddit Comments
Captions
there is no honor Or Glory to be found in the intended purpose of the minute man missile about 800 were deployed and each carried a 1.2 Megaton nuclear warhead they were housed in hardened bunkers designed to survive a first strike and perform a retaliatory counterv value second strike that means the Minutemen weren't just intended to strike military targets they were designed to reduce civilian ulation senters to Radioactive slag but just below that nuclear payload was something remarkable a tiny Solid State computer powerful enough to guide the missile from launch to Target without any external guidance so tiny it may have been the first general purpose computer small enough to be picked up with your bare hands a remarkable feat for 1961 perhaps even more remarkable many of these computers had a second life after the first Minute Men were decommissioned they were sent free of charge to Computing departments in universities all across the USA this was a time before the microprocessor when a basic computer would still set you back six figures in 2024 the d7b wasn't necessarily the best computer for general purpose applications but Back in 1970 any computer was a good [Music] computer so today we'll be continuing this Channel's tradition of discussing something with a hard T in the name that I can't pronounce properly the minute man missile and its guidance computer I've already done the sober intro so we don't need to get ourselves Tangled Up in the ethics and politics of nuclear warfare instead we'll focus on the system architecture and how it was eventually used for benevolent purposes as always if I make mistakes please Point them out in the comments but do check the pinned comment first I'll highlight any known mistakes there this is a very dubious claim but I think the D7 B may have been the first desktop computer when I say first desktop I am of course getting very loose with definitions and I'm only really making the claim to Foster discussion I don't stand strongly by it so let's set a few clear definitions that I'll use throughout the video when I say computer I'm referring to a digital general purpose machine that means something that can store and run a computable program the more fun definition would be can it play Doom in principle any general purpose machine could play Doom if you could somehow give it enough memory and time when I say desktop I mean at some point in history someone physically put it on a desk and actually used it as a general purpose computer before the d17 I can't find a single computer that was light enough to be picked up by a single person I'll discuss a few contend do throughout the video the d7b itself was the production model completed in 1961 there was also a d17a of which very little information is available I presume it was similar regardless when I say d17 I'm referring to the B variant the d17 was used in the Minute Man 1 missile subsequently the Minute Man 2 and three were developed with their own guidance systems unless specified otherwise whenever I say Minuteman I'm referring to the minute man one but none of that is really too important the d17 was a landmark in Computing history as it represented the beginning of a shift from cabinet or room-sized mainframes to embedded systems the Apollo guidance computer is often seen as the first such system but the d17 came four years before the Apollo guidance computer or AGC make no mistake the AGC was much more advanced but as we'll see it wouldn't have existed without the d17 the main reason I feel compelled to make this video is the d17 second life as an educational tool not only do I love stories of military hardware being used for completely different purposes but otherwise this amazing computer would have probably remained classified enough documents from various University researchers who made use of the d17 have been preserved for me to reconstruct a working simulator to explain how it worked how it was programmed and what it was capable of this video is therefore split into two parts the first will cover the general history and construction of the minute man missile and the d17 the second half is a technical discussion of the computer itself complete with a programming guide anyone interested in having a go themselves can download my simulator a link is included in the description but before we get there let's discuss the intended use case the minute man missile the first intercontinental ballistic missile or ICBM to become operational in the United States was the atlas it was fueled with kerosene and liquid oxygen the latter of which was not storable in in the vehicle itself the tanks were not strong enough to support themselves so were filled with pressurized nitrogen if for whatever reason this pressure was lost the tank collapsed which actually happened on at least one occasion to ready an atlas for launch it had to be raised from underground storage to the surface and fueled a process which took at least 15 minutes of course it would be highly vulnerable during this process although future iterations of the atlas which were used for satellite and crude orbital launches proved highly reliable the ICBM variant deployed in 1959 most certainly was not with multiple high-profile failed test launches it was therefore abundantly clear that a liquid fueled rocket was not suitable as a basis for a strategic missile even before the atlas was deployed the US Navy and Air Force had already begun working on the second gener ation of icbms by 1962 three completely independent and equally groundbreaking systems were in operation the first was the Titan 2 a huge liquid fueled ICBM capable of delivering the largest nuclear warheads in the US Arsenal unlike Atlas Titan used stable and storable albe it extremely hazardous propellants and was stored in underground bunkers ready for launch at short notice the second was Polaris a submarine launched intermediate range ballistic missile if there's one thing I've learned during the making of this video it's that Polaris was absolutely fascinating it'll be getting its own video in the future the third was the minute man like Polaris the minute man was fueled with a solid propellant where the fuel and oxidizer are combined into a contiguous mixture this is stable over long per periods so the missile could have been stored for many years but launched in a matter of seconds the original intention for minute man was as a deterrent the hardened bunkers were scattered around the mainland us such that a single Soviet strike would not be able to knock all of them out in theory this had ensured the price of a first strike would always be too costly for the Soviets try and knock out on nuclear capability and we'll burn all of your major cities however the Polaris system became operational in 1961 about a year before the Minutemen Polaris was in many ways the perfect weapon permanently hidden from sight and therefore practically Invincible with hundreds of ballistic missiles stationed somewhere in the oceans around the Soviet Union the landbased silos appeared to be obsolete before they even went into operation not for the first time in its life the minute man acquired a new purpose it was still to be used to maintain second strike capability but rather than a deterrent to be used in a counterv value strike against Soviet cities it was proposed for use as a counter force weapon to strike Soviet military installations to nullify enemy defenses however a military Airfield launch silo or even a port is a smaller Target than a major city reliably hitting such a small Target from several thousand miles away was a big asking 1962 to compound this minem man had no reaction control thrusters for steering it solid rocket Motors couldn't be throttled they had two settings on and off to prove its worth the Minuteman missile needed a guidance system unlike anything seen before the missile knows where it is at all times it knows this because it knows where it isn't by subtracting where it is from where it isn't or where it isn't I know it's a cliche but there is no better tool to help explain how missile guidance Works than Kerbal Space Program hitting a target from halfway across the planet in theory only requires active navigation for the first few minutes of flight we need to boost our Warhead to the required velocity and altitude for inertia and gravity to carry on a ballistic Arc the rest of the way so we simply need to ensure that our Warhead is at this position and at the correct velocity at any engine cutout to ensure that the target is hit there are different approaches to ensure we arrive at the designated cutout location with the correct velocity but the minute man used a series of equations known as Delta guidance in simple terms this involves pre-computing the trajectory to be followed during the Boost phase using a Mainframe computer the parameters that defined the trajectory was stored on the d17 memory and the computer aimed to fly the missile as close to this trajectory as possible throughout the Boost phase the formula may be simplified to this form here we see the formula for a single time step and for a single axis VR is the current change in velocity required to place the rocket back onto the trajectory the X Y and Z terms are simply our position in space in the X Y and Zed directions and the four constants are the precomputed values that Define the trajectory there is also a gravity term that requires computations shown here I've included a paper in the sources that describes how we go from this to physical values for pitch and your correction but the important point to note here is that to fly the trajectory we need to know our velocity and position at all times and we must repeatedly compute the velocity to be gained in all three axes the gravity term and then use these values as inputs to the pitch and your correction calculations to ensure we gain the required velocity and that is why we need a guidance computer and also this allows me to correct for a past mistake I try to avoid mentioning names of people as much as possible when making videos not only are most major Innovations created by teams of many people too numerous to name but name dropping individuals is fraught with potential for spreading myths and rumors a few months ago I made a video about the Apollo guidance computer where I named Margaret Hamilton as a major contributor to the code and software engineering practices I then promptly completely forgot to mention the person who wrote most of the code and devised the major Concepts before Margaret joined the team it just so happens that same person was one of the pair who also came up with Delta guidance how Lanning Lanning is one of the unsung heroes of the Space Race and a Pioneer in early Computing and his work deserves nothing but recognition and on that subject Richard baton was the other major contributor to the Delta guidance concept and another major contributor to the Apollo guidance computer anyway back to the minute man to know where the missile will be we need to solve two broad problems number one figure out about where the missile is number two use the Delta guidance formula to calculate corrective actions to get the missile to where it should be the first of these is solved using an inertial navigation system I've discussed inertial navigation already in at least five videos in the past do we get the feeling it may have been a pivotal Innovation during the 20th century briefly the guidance section of the minute man contained a stable platform this was an Armature that was mechanically isolated from the body of the missile the Armature housed three perpendicular gyroscopes and three perpendicular accelerometers with the gyro spun up the platform remains stationary in all three rotational axes with the missile rotating around it the outputs from the accelerometers were recorded on every compute cycle velocity is defined as the of acceleration over time so by continually summing the three acceleration components the velocity of the missile in the X Y and Zed directions was known throughout the Boost phase similarly distance is the sum of velocity so by summing the velocity components the position of the missile was known at all times it must be said this requires extreme Precision any systematic error in the acceleration readings compounds rapid ly to give increasingly large errors in the position calculations through a combination of extreme quality control and the fact the Boost phase lasted under 3 minutes short enough for errors to not compound too far test flights demonstrated the Minute Man's inertial guidance system was sufficiently accurate for the intended purpose okay actually I was going to leave it there for the mechanical components of the guidance system this is a video about the computer after all but on further reading they're just too interesting to gloss over there were actually only two Gyros each had two frea axis so only two of them were needed to deduce all three rotational components these Gyros were highly Advanced for the time initially the rotors and major components were constructed from aluminum but this was found to distort unacceptably at the high rotation speeds so a burum rotor was used so supported on a gas bearing around a Chrome plated support ball for those unfamiliar with a gas bearing it's a similar principle to that used on a hard drive allowing the Reed head to float just above the platter on a cushion of air I'm foreshadowing here by the way building the rotor from burum necessitated building most of the rest of the gyro from burum to ensure materials with the same expansion coefficient we used throughout I'm not sure why burum was the best material for this job but this Choice has since been credited as a major component of the success of the guidance system as a whole the accelerometers were also built to an incredibly high standard a major delay resulted at one point due to the manufacturer accidentally being shipped commercial grade materials instead of military grade and this was only discovered during the testing phase interestingly the accelerometers didn't actually output acceleration we never need to know the acceleration directly to guide the missile we just need velocity and position so they automatically summed the acceleration over time and output the velocity using some inbuilt logic therefore they were actually referred to as velocity meters now the second broad problem to be solved was to solve the Delta guidance formula this was done by including the d17 on the missile to continuously calculate the required velocity corrections but why go through all the hassle of shrinking down a computer to get it on the missile the Atlas missile used a groundbased computer the inertial guidance system would simply radio the current velocity and position to a ground station there a Mainframe computer would compute the required Corrections and communicate them back to the missile however this is less than ideal ground stations are vulnerable to attack or jamming and to launch simultaneous missiles would require multiple ground stations one for each missile in flight for a truly robust second strike capability the minute man had to essentially be a fire and forget system let's walk through the firing sequence from the Viewpoint of the d17 and see exactly what tasks it was required to perform the computer had the storage capacity for two Targets the missiles were aligned to match the azoth of the primary target now that's a pretty broad statement so let's dive a little bit deeper recall the guidance system was entirely inertial the missile only knows what direction it's pointing relative to its initial orientation there was no Compass as such so the stable platform inside the missile needed to be rotated to precisely match the target aligning the missiles to their intended target was a complex operation involving first rotating the missile itself physically to line up an optical alignment window in the missile body then using a theodolite the guidance platform was rotated to precisely match the launch Azimuth of course this was a highly complex process and we don't have time to go into it here the book Minuteman by David K stump described the process in full prior to launch the primary or secondary Target would be selected by passing relevant commands to the guidance computer via punched paper the tape on launch the computer kept the missile vertical until a predetermined speed was reached at this point the Delta guidance protocol commenced if the secondary Target had been selected prior to launch your commands were sent to the vector nozzles to align with the secondary Target azimeth the computer continuously applied pitch roll and Y corrections to keep the missile on the pre-computed flight path after approximately 60 seconds a decrease in acceleration was detected as the first stage burned out the computer initiated stage separation and ignited stage two the delt guidance Loop continued through the stage two burn again when stage two burned out the computer initiated stage two separation and ignited the third stage motor stage three was another solid fueled motor slight tangent but here is a drawing of the glass fiber composite wrap used to encase the solid fuel does it remind you of anything anyway the astute amongst you may have noticed an issue there was no reaction control system the solid motor couldn't be throttled but to hit a target with any sensible level of precision we at the very least need to be able to terminate the thrust at a precise point in time at this point the Warhead is traveling multiple kilometers per second just a fraction of a second of extra thrust translates to multiple km off Target the solution was one of the many innovations that made the minute man possible in the first place the third stage was equipped with four shaped Chargers around its circumference blowing these would almost instantaneously drop the pressure in the combustion chamber to a vacuum this quite literally blew out the combustion reaction and terminated the thrust don't ask me why this worked I don't understand but it did so as the required velocity was approached the computer entered fine countdown mode which allowed it to precisely monitor time elapsed in parallel with performing other computations as soon as the required velocity was reached it sent the command to blow open the thrust termination ports locking in the final trajectory of the Warhead at this point it's prudent to remind ourselves of the level of responsibility placed on the d17 so far it's placed a nuclear warhead at a point in space that guarantees it'll land at a given point on Earth we really want to be sure that if we're aiming for St Petersburg we don't hit Helsinki so some checks were in order almost immediately after thrust termination a sub routine was run by the computer to check the measured flight parameters were within acceptable limits if so the First prearm Command was issued to the Warhead if not a disconnect command was sent to the Warhead rendering it inoperable a second independent pre- arm check was then issued almost immediately afterwards this disconnected the Warhead from the stage three body finally the computer issued two separate commands to fire two small retro rockets at random time intervals this separated the stage three body from the Warhead the stage three body was highly visible on radar so in theory any counter measures could aim for it and feasibly hit the Warhead by maintaining separation its radar signature was significantly decreased by the way everything I described there happened in 171 seconds when the Warhead was disconnected from stage three it was 550 km down rage and 25 in altitude all in under 3 minutes six of the first series of nine test launchers landed within 5 km of their targets though not sufficient to determine accuracy to a sensible level of statistical significance this did demonstrate that the minute man was perfectly capable of acting as a counter value deterrent however as I mentioned at the start of the video before even entering operation the minute man was required to prove its worth as a counter force weapon capable of hitting smaller targets the defined requirement for this was 50% of warheads Landing within 0.9 nautical miles or about 1.65 kilometers of the target through followon tests that involved minor improvements to the guidance system and physical configuration the B variant of the minute man was able to demonstrate the ability to put a warhead within 900 M of its Target 50% of the time well within the requirements and sufficient to cement its position as America's primary counterforce weapon throughout the 1960s something I haven't really emphasized yet the minute man was small it was under 17 m in length and about 170 cm in diameter at its widest point the guidance section which hous the computer inertial navigation and power was just 80 cm in length and about 75 cm in diameter prior to the d17 probably the most celebrated feat in computer miniaturization was the TRW 130 it weighed 250 kilos and will be discussed extensively in a future video here another was the autonetics recomp 89 kilos but 180 kilos when all the io Hardware was included and it was autonetics who were chosen to design and build the d17 my last video discussed rocket d a subsidary of the North American Aviation Corporation and how they built a rocket fueled with maltt and metal auton etics were a separate subsidiary of the same company to build the d17 they modified what was probably the best competitor for first ever desktop as defined by my extremely loose requirements it was called the Verdan this was autonetics application specific guidance computer used in the hound dog Cruise Miss St it weighed just 37 kilos but it fell far short of the compute power and memory capacity necessary to guide the minute man the d17 weighed 28 kilos and was housed in a hollow extruded do decahedron that's the only time I'm ever going to get to say do decahedron in Anger this was 50 cm tall and 74 cm in diameter the stable platform occupied the hollow space in the center one half of the shell was occupied with power supplies for the stable platform and Motors along with wiring to and from the various sensors and gimbal controls the other half of the shell was the d17 itself when the units were subsequently shipped to universities the entire shell was sent but it's interesting to note the computer only actually occupied one half of it taking a closer look first we're confronted by A Rat's Nest of wiring let's remove it to have a look inside the computer itself had two main components let's begin with the obvious all of the logic timing and I/O was controlled by 75 circuit boards these were identical in size each being about 10x 20 cm everything was done with discrete components I don't think integrated circuits had even been invented when the d17 was first conceived looking at some photos of these pcbs they were things of Beauty with hand traced and hand soldered components each had a distinct purpose for example there was a single board to act as a clock signal generator individual boards to perform various logic functions an entire board was required to construct a 24-bit register there were a couple of pivotal design choices evident just by taking a closer look at these boards first of all you may note the distinctly small transistor count and suspiciously High diode and resistor count back in the late 1950s transistors were very much an emerging technology the first transistorized computer had only been built several years prior and their reliability had not been established for an ICBM guidance computer alongside weight and precision reliability was the design goal so autonetics used the smallest number of transistors possible the fewer transistors present the less chance one will fail but how do you remove transistors without losing compute capability the answer is something truly archaic by today's standards and something I was barely aware of diode resistor logic in principle you only need to be able to create two building blocks to construct a churing complete machine you need either an and or an or gate and you also need a not gate of course most real world computers incorporate many other Gates too but if you're able to construct those two you can use those to build any other gates to invert a signal using solid state components you need a transistor there isn't really any way around that but you can build both or and and Gates using just diodes and resistors so the d17 used about 6,300 dodes and only about 1,500 transistors you may have also noticed every component is serialized even the resistors a unique serial number on everything this allowed the Air Force to meticulously Trace failures and determine which components were most liable to fail I don't doubt this would have been extraordinarily expensive it's not like this data could just live on a database because databases didn't exist exist in 1960 all these boards were conformally coated to seal them from the external environment the aggregate result of this extreme focus on reliability was a meantime between failure for the computer of 5.5 years this means the computer was generally good to be left running for the entire operational lifespan of the Minuteman missiles for the early 1960s this would have been an extraordinary achievement actually that' be an extraordinary achievement today of course there is some Nuance there for example there's no way the dis platters were rotating for that whole period so it's probably fair to think of the d17 as spending most of its life in a kind of rudimentary sleep mode now let's look at the second major component can you guess what this is if you don't know prepare to be blown away this was a magnetic hard disk the minute man first launched in 1961 the first commercial hard drive was the IBM 350 it was released just 5 years prior it weighed one metric ton and was the size of three fridges now of course the disc for the d17 was far more limited in terms of storage but it was also somehow able to function in the high GeForce and high vibration environment of a silo launch not to mention the vacuum of space that would be a big ask for a hard drive today unlike a modern hard drive this one used multiple fixed read and write heads one head red and row data to each Channel this of course simplified operations but required many heads increasing cost multiple heads also sped up the read and write time and this was imperative because the disc wasn't just used for program storage the dis was literally part of the CPU itself this is really Bizarre by today's standards so let's quickly discuss memory hierarchy a modern day computer has access to many levels of memory at the bottom of the hierarchy is external storage such as an SSD or a hard drive this is slow to access but can store large amounts of data as we move up the hierarchy storage size decreases but access time improves at the very top of the hierarchy is storage within the CPU itself and at the very top of that are the registers these are a small number of locations that can store individual values and are accessible almost immediately the ram is generally used to store most of what we actually want to run but for the past 20 years or so CPUs generally have a small amount of ram internally that can be used to store data that needs frequent access this easily accessible data is referred to as the CPU cache now let's look at the memory hierarchy for the D7 it actually had a pretty high register count a couple of dozen or so some of these registers live physically inside the CPU in the form of boards of transistors that form flip flops a flip-flop is just an arrangement of transistors that can store a bit the registers in your modern day CPU are just a miniaturized version of this and we can store our programs on the dis just like a modern PC as for variables that we need to store temporarily they have to go on the disc too there was no separate Ram but that is not surprising for the day in fact the drive was designed to have several channels more rapidly accessible than others these were confusingly known as Loops that still puts our entire memory hierarchy either on dis or in the registers which would be the top and the bottom of the memory hierarchy on a modern PC but I haven't included most of the registers yet because most of them were on the disc it's strange to think of now but components of the CPU actually resided as sectors on the magnetic storage disc so the disc wasn't just separate storage from the CPU the disc was the CPU that magnetic disc is also what made the d17 a truly general purpose computer it allowed targeting data to be changed by writing new values to the disk meaning new targets could be select SED at any time later in the test phase it also allowed the Guidance Software to be updated without having to for example manufacture new core rope memory modules as was the case with something like the Apollo guidance computer this was achieved via punched paper tape which saved the code and the parameters onto the dis via a reader though I think the Polaris guidance computer was the first digital computer in space thanks to disk storage the D7 was the first truly general purpose computer in Space the question I'm sure many of you are now asking is how did the Soviets do this the Soviets were years behind the West in terms of computer technology at the start of the 1960s the only really viable Soviet ICBM was the R7 which went on to become the soy it was comparatively huge with a launch mass of 280 tons against the 3 tons or so for the minute man there are rumors the Soviets used a vacuum tube based guidance computer as they had far more space and launch Mass to play with but I suspect that's not true it's more likely they used either some form of groundbased guidance or possibly an embedded analog guidance system one anecdotal story which probably never happened tells of a Soviet General remarking on their system being unable to hit New York reliably we solved the problem by adding more plutonium the d17 was not cheap in 2024 the acquisition cost for a single unit was around $2 million when corrected for inflation by the end of the 1960s the Minuteman 1 was phased out for the Minuteman 2 so the decision was made to declassify the guidance computer itself and make them available to research institutions free of charge the stable platform remained classified and was removed and universities were sent the entire guidance section body of a missile the original Surplus announcement letter survives in digital form in fact I should mention most of the original documents have been digitized and made freely available by the legendary bit Savers archive between 1970 and 1974 more than 100 institutions received a d17 all the expected candidates were there m he received a couple as did Penn State Caltech and Stanford along with many others I've had at least one viewer comment on a previous video about their experiences with one no doubt there'll be someone watching this video that used one at some point too even with Declassified documentation from the Air Force being handed a section of a missile and making it do something useful in 1970 would be a daunting challenge so the Minuteman computer users group was formed the proceedings from their meetings were another major source for this video the Air Force had already carried out studies for reutilization of these computers it was estimated as similarly capable system would cost around $10,000 or around $80,000 today when adjusted for inflation so the aim was to convert the d17 for lab use for less than that the main task was to construct a working power supply evidently this was achieved for relatively little cost as the computers were successfully used for a variety of projects throughout the early 1970s so what exactly were they used for there's a great account written by Samuel goldvaser who volunteered to help get one of Drexel University's d17s up and running he did so after graduating high school before even starting his undergraduate degree there I recommend reading through his account it gives a realistic retelling of the process of setup unlike the sanitized view you're likely to take away from me someone born 20 years after all of this happened and I've never seen a d17 in person well sort of never we'll get to that after in Samuel's words cobbling together a power supply the department put together a couple of output displays consisting of rows of light bulbs these displayed the values of the output registers input was possible through a keyboard interfaced to the d17 input lines programming was achieved on a pdp2 mini computer and assembled program s were loaded via a tape reader onto the d17s disc Samuel only recalls one program being written for their d17 it was just a simple calculator I suppose that is kind of boring but it seems Drexel's d17 was used mainly as a teaching Aid as I imagine most of them were this was a period in history where almost no one had access to a computer so being able to physically get your hands on one would really be quite valuable for students I'd guess they probably became less useful after about 1975 or so when the alter 8800 became available as a cheap desktop machine of course I may be wrong the d17 had many capabilities the alter didn't teaching use aside d17s at other institutions did plenty of use in a variety of applications most of these were unfortunately never recorded but the users group records do give us some insight into actual use cases Tain University used one for waveform analysis and then used it in a working system to analyze blood samples the outputs of a chemical analysis system were fed into the d17 which was then used to analyze the data and evaluate concentrations of various proteins in samples that's at least what I think it did I struggled to interpret medical literature either way two such systems were built and used cost effectively for this purpose there's there's even a photo of the setup here note how the computer was placed on top of the inverted missile shell outside of teaching the main use of the d17s seemed to be for process control with its high IO capability it would have been a great candidate for the kind of tasks we use a microcontroller for today in fact the iio buffer register simplified such use cases as programmers wouldn't have to manually handle inputs and outputs in code the inbuilt digital to analog converters were particularly useful allowing it to Output both digital and analog data one paper proposed using the d17 as part of a hybrid computer system with its analog outputs feeding into an analog computer very little record remains of the actually realized process control applications for the d17 the Air Force used d17s as a CNC controller hooking them up to an analog readout and demonstrating the ability to control physical Hardware in two axes similarly they used one as a motor controller to demonstrate fine control of a sepa motor I imagine many of the other institutions that received a D7 did the same but unfortunately I couldn't find any further examples of d17s being used as process controllers the documentation has either not survived or isn't available this chapter is going to be quite information dense if you just want a general overview of the d17 architecture it's not necessary to follow everything on screen however if you want a more in-depth analysis I'll be showing some worked examples with annotations on screen I don't like showing a ton of text over my voice but if I didn't this video would be hours long so this chapter's intended to be paused and rewatched by those wanting the full detail in past videos I've made simplified architecture diagrams for CPUs and shown how commands and data are passed between register and memory for the d17 I wanted to do a little better first it had a lot of registers I really struggled to understand how the thing worked without being able to move things around myself drawing it all out on graph paper just didn't really cut it second watching me work through fix examples is boring I wanted viewers to be able to have a go themselves so I needed a simulator fortunately there are two independent papers that contain all the information needed to build one that is details of each register and the various commands the computer was capable of Performing the first paper is a programming manual produced by the department of electrical engineering at Tain University it's easy to understand but doesn't go into full detail the second is an in-depth description of the computer written by Captain dougas J Allen for the Air Force Institute of Technology this is an extremely comprehensive and well-written paper but a little more difficult to follow there is a third paper again written for the Air Force Institute of Technology in 1971 it describes a working simulator of the d17 written in Fortran it even includes all the code though it is too poorly scanned to be legible but I didn't want to write a boring command line type interface I could have just done that in Python I wanted a visual interface showing all the registers and memory something that can be interative with and could provide details of the architecture so I decided to use a game engine I used to use Unity for that kind of thing but a few videos back I said I'll no longer use Unity going forward there's a link in the description explaining why let's not get into it now so I've spent the past few weeks learning gdau and coding up a simulator with that instead now my simulator is not perfect it doesn't do everything the D7 did and it doesn't look pretty but it works well as a demo I've left a link in the description to the project page with instructions on how to download it the project page also includes a full list of the limitations if you spot any further errors with the simulator itself feel free to open an issue on the GitHub repository unlike something like the 6502 which I demonstrated in the past it's difficult to know where to start when explaining the d17 almost every aspect has some kind of tangent or weird condition making it really quite difficult to explain so I'll start with its Central feature the magnetic disc memory the dis rotated at 6,000 RPM and was split into 31 channels each Channel had its own dedicated read and write head for now let's focus on the inner 21 channels these formed what we may think of as the main memory the program would be stored here and each Channel could be set to read only allowing programmers to maintain separation between program and variables alternatively channels could be left as read and right allowing for self-modifying code Channel 21 was the exception it was referred to as the hot Channel and was always right enabled the channel numbers were originally designated in octal notation for the purpose of this video and my simulator I've decided to State all values in either decimal or binary create this simulator was difficult enough without having to think in 1 2 3 4 5 6 7 10 each channel was split into 128 sectors a sector consisted of 27 bits of data 27 bits will henceforth be referred to as a word yes the d17 was a 27 bit computer but three of those bits we Ed for either par or timing so for arithmetic operations we can consider it a a 24-bit computer so that gives us 128 * 21 24-bit sectors that's about 8 kiloby of program storage in my simulation a single sector of main memory is shown at a given time you can change the sector being displayed with this dropdown here I'm adding some values into memory of course this would be done via punched paper tape on the original d17 how about the remaining 10 channels six of them were rapid access Loops designated for reasons I've not been able to decipher as h f u v and R depending on the loop selected each is able to store between 1 and 16 words the lower number of words stored ensured words stored in these channels were more rapidly accessible than data from the main memory the loop storage was volatile it erased on reboot the remaining four channels were registers the a register was the accumulator this is a register present on all CPUs that I'm aware of it's essentially the heart of the CPU outputs of all arithmetic operations are stored on the accumulator the L Loop was the lower accumulator this was basically a second accumulator that could be used to store intermediate values when performing arithmetic operations the N register or number Register was was used to store operand for example if we want to add a number to that in the accumulator the number to be added is stored in the N register finally the I or instruction register stores the instruction to be executed and that brings us nicely onto instructions 24 bits are required to Define an instruction so writing 24 bits to a sector in memory can be interpreted as either an instruction or as a value by the CPU here's the general structure for an instruction the first four bits Define the Operation code or op code this is the operation we wish to execute for example a value of 1101 denotes add this will add a specified value to the accumulator and we're about to get to how that value specified the fifth bit is the flag bit it's not important right now generally it's set to zero the next seven bits Define the sector of the next instruction so we specify where on the current Channel our next instruction is for certain operations we require an operand in our example we're adding so we need to know what value to add to the accumulator the operand is Red from memory so the next five bits specify the channel the operand is located in here you can see me spe specifying Channel 2 for the value we loaded into memory earlier finally the last seven bits denote the sector in which our upper hand lives here I'm specifying sector 2 so we'll add the value at Channel 2 sector 2 to the current accumulator value the d17 could run 39 distinct instructions you'll notice this exceeds the 16 that could be defined by the 4bit up code section of an instruction not all instructions require an upper hand so some were also defined using the channel and sector portion of an instruction word now I skipped over the flag bit if set to one this would automatically store the accumulator value in a rapid access Loop defined by the following seven bits those seven bits also Define the next sector but in a rather complex manner that I won't go into now I haven't implemented flagged instructions in my simulator yet but just know they provide a means to rapidly store values instructions are split into four families the first were arithmetic operations as we'd expect we can add and subtract values to the accumulator a multiply operation was also present but no divide arithmetic operations could also be split the first and last 10 bits of the accumulator and operand could be added subtracted Ed or multiplied separately and in parallel this allowed operations to be carried out twice as fast while sacrificing Precision split operations were a real hassle to implement in my simulator they were clearly included to meet a speed requirement in the original d17 I wish they weren't they caused me a lot of pain the second family was shifting operations in short these allowed the accumulator binary value to be shifted left or right by a given number of bits particularly useful when sending values to the output registers the third family were program control operations these are the ones that promoted the d17 from a calculator to a computer unconditional jumps were implemented through the transfer operation which changed the current Channel you'll also note that unconditional jumps could be done just by specifying a sector in the instruction word conditional jumps were possible via the transfer on minus which set a new active Channel if the accumulator value was less than zero one special operation that I'm going to have to mention was the fine countdown instruction this was a command that allowed for tracking of timing in parallel with other computations it's horribly complex to try and decipher I've put the definition on screen here have fun in summ it not only provided precise timing but also converted both the u and v registers into integrators continually summing input values for the duration the computer was in fine countdown mode I haven't implemented it in my simulator I'm not even sure I understand it fully finally there were 10 input and output operations these controlled reading values from the input lines into the accumulator and writing values from the accumulator to the various outputs of which there were many we'll discuss I/O soon we've already seen The Logical registers those are the accumulator lower accumulator instruction and number registers everything in this dark blue box resides on the magnetic disc light blue represents flip-flops however of course there's a complication and it's a pretty wild one the registers were actually split between dis storage and flip-flops in the case of the number and instruction register all the information we actually care about the 24 bits of data were on the disc the accumulators were even weirder 23 bits on dis and four in flip flops these additional bits of flip-flop memory were used for read and write control I haven't properly modeled them here because they don't really make any difference to our inputs and outputs the last of the flip-flop bits in the accumulators was a sign bit a value of one denoted a negative number and zero denoted a positive I should say the d17 actually stored negatives as two compliments again I haven't bothered to implement that here just one denotes a negative number in my Simulator the remaining flip-flop registers St the op code of the current operation the channel of the current upper hand and the storage location for flagged instruct s there was also a bit counter register initially I thought this was a program counter but the program counter is a combination of the channel buffer and current sector info in the instruction register instead the bit counter handled timings keeping a record of where in the read and execute cycle the machine was all data was loaded serially between registers so timing and synchronization required special consideration necessitating this special bit counter register again I haven't modeled it here because all it had show is a rapid sequence of digits between commands next are inputs there were two the a input consisted of 19 parallel lines that could be set high or low to pass a 19 bit number into the accumulator the B input was similar but able to handle up to 23 bits out outputs were more complicated the output setup was clearly configured specifically for the use cases a guidance computer the accumulator value could be output digitally but only four bits at a time via the word output to Output the entire accumulator the value would have to be output and shifted six times to send the full 24 bits serially through the word output the analog outputs were particularly interesting the d17 had three digital to analog comp inverters remember how arithmetic operations could be run in parallel by splitting the accumulator into two halves and Computing the result for both halves separately similarly the right or left half of the accumulator could be sent to voltage outputs the eight most significant bits would be converted to an analog voltage between negative and positive 20 volts these voltages could be sent to any of 12 voltage output lines the lines to send the three output voltages were were determined by the values in the phase register this was a pretty versatile configuration and I can see how it would have been appealing for process control applications in the Minuteman I imagine these voltages were sent to the thrust Vector controllers to control nozzle deflection the discrete output lines were normally set to zero volts but any one of them a time could be set to high there were 28 in total these were probably used to initiate specific commands such as stage separation and pre- arming as always there was an exception allowing multiple lines to go high under very specific circumstances again let's not get into that finally there were six pulse outputs again these appear quite application specific on receiving an appropriate output command a pulse would be sent to a combination of the six outputs depending on whether the accumulator was positive or negative and depending on the state of 3G registers apparently these outputs were used for controlling the gyroscopes to the modern ey this setup appears incredibly strange it's complex and difficult to understand so I hope I've been able to communicate it reasonably well I will say this was quite difficult to not only translate into a working simulator but also a challenge to cover in such a short video we have to remember it was made for one purpose and one purpose only The Versatile IO rewritable magnetic disc and simple yet versatile instruction set are what allowed the d17s to perform as general purpose machines after the Minutemen were retired now that we're familiar with the d17s architecture let's finish off with a couple of worked examples these will also serve as a guide on how to use my Simulator for anyone else wanting a try as I've mentioned a couple of times already the underlying code I wrote for this is not great I started off with the best intentions but in the end a bunch of it ended up in a single large script there are no unit tests and much of the code is duplicated in multiple places it works for demonstration purposes but anyone who wants to actually download this and try it out I'll warn you it'll be full of bugs and you may see unexpected Behavior I may improve it over time depending on how big I am over the next few months we'll work through two examples the first is provided in the programming guide from Tain University that I partially Ed to construct the model in the first place we simply wish to compute e to the power of X when doing any low-level coding we usually need to figure out how to break down the problem into something that can be expressed with our limited instruction set as the authors point out e to the power of X can also be expressed in this form which can be further approximated using this formula so we need to save these four variables to memory and perform repeated addition and multiplication operations to get a result here I'm adding those four variables to the memory in my example I'm using a value of 2.2 as the exponent you'll notice variables and decimals are converted to integers and we'll worry about where the decimal point is at the end I also had to round the values to three significant figures which will have an effect on accuracy of the final result there's no way toine ran the program as originally shown the repeated multiplication had given a number far larger than 23 bits anyway with the variables in memory here I am adding the actual instructions originally on the d17 this was done on a code sheet like the one shown here to produce a similar sheet in my simulator we just click the add row button and select our instructions and operands from the dropdowns it's a little bit clunky but it works in the original d17 code sheets were converted to punched paper tape and fed into the machine to save a program the save program to memory button performs that functionality here okay so looking at various sectors of memory we can see the program sitting there along Ong with the variables the first line of code is always run first so let's go to the logic section and run our program one step at a time Here's the final result in binary because of how I coded the simulator to handle overflows we just put a decimal after the first one so converting to decimal we get a result of 9.55 compared to the actual result of 9.02 it's not a great approximation but that's due to us having to round down we could improve the program by intermittently dividing the result by 10 but I wasn't going to write the logic for that right now I think this example demonstrates quite nicely the issues with repeated multiplication on a system not designed to natively handle overflow logic now let's do an example I feel the D7 was Better Built for and one that's a little bit more exciting and demonstrates its branching capability a while ago I was in the Manchester Museum of Science and Technology they have a working faithful reproduction of the first ever stored program computer the Manchester baby when this was originally built in 1948 it demonstrated its capability by calculating the highest divisor of this number which is 2 raised to the^ of 18 let's call the number we want to find the divisor of n I've adapted that program for the d17 here let's walk through it using a flowchart n is stored in sector zero of Channel 2 and the number one is stored in sector one of channel two We Begin by loading our value of n into the accumulator and then transferring to channel three channel three houses a sub routine that evaluates whether n is divisible by a given an integer the first time it runs this integer is n minus one it does this by loading n into the accumulator and repeatedly subtracting the integer if the accumulator value becomes negative there are two possible options the first is that our integer is a divisor of the number we're investigating in this case the value in the accumulator would be the negative of the divisor so a transfer on minus instruction is run to a new sub routine that is housed on Channel 4 this makes the accumulate a positive via a complement instruction and subtracts that potential divisor value if the result is still not negative the value in the accumulator must be zero and we found our highest divisor here I then shift the result three times and output it to the three voltage registers the program then hals if the result of the last subtraction is negative our potential divisor does not divide into n so we jump back to the sub routine on channel three and try a new potential value this sub routine starts the process again but with a new integer the new integer is one less than the previously tried one here I am setting it up you can see the completed code sheet on the left I'm now adding the value for n and the value of of one to sector one this program is of course rather brute force it requires more than 3 million operations to compute in this case so I have an auto run button which automatically steps through the program until a Halk command is received in this case the program takes about 1 minute to run the timings are not reflective of the original d17 I had to go at implementing delays but couldn't get it to work anyway here is our result expressed across the three registers a one with 17 zeros after it that is 131,072 in decimal and is the correct result just to convince ourselves it works let's do a slightly more visual example you can click the reset button to reset the simulator State though it doesn't actually clear the displayed values I just picked a random number and multiplied it by three let's try the same program to find the highest proper divisor for 1,749 273 okay so here it is in memory let's reset and run it took a few minutes but there's the result split across the three outputs 58391 which is the correct answer getting the exponent program to run took me ages now you can choose not to believe me here but the factorization program ran on my first attempt I couldn't believe it though this simulator is incomplete and flawed that was a really nice reward for a month of work and I think it's a good place to conclude this video I'm not sure how many of the d17s survive today there's one at the Computer History Museum in Mountain View California another's on display at the computer and Robotics Museum in Boseman Montana I heard that one used to be on display at the National Air and Space Museum in Washington if that's true I may have unknowingly stood right next to it I visited that museum when I was 14 at least one d17 has been turned into a wall display at some point in history I wonder if any remain forgotten about in storage either way none seem to be in a working State the mag itic discs will have died long ago I suppose anyone determined enough could emulate the disc with an Arduino or something like that if they wanted a nightmarishly difficult restoration project following the lineage of the early well-known small computers is like following that of estranged family members they're all related in that they all went to space but all were built somewhat independently the d17 was superseded by the d37 C computer in the Minuteman 2 it was about a quarter the size of its predecessor and was the first production computer to be composed mainly of integrated circuits little information is readily available about the Polaris guidance computer it was however developed by the Charles Stark drap Labs at MIT the experience was used by them to design and build the Apollo guidance computer when I said a couple of months ago I was going to make a video about I CBM guidance quite a few viewers were expecting this video to be about the Titan 2 computer that's my fault for accidentally using footage of a Titan 2 launch the asc-15 used to guide Titan 2 was built by IBM and eventually further developed into the lvdc computer for the Saturn 5 IBM also built the Mercury guidance computer the first computer used in a crude spacecraft eventually they went on to build the first production flyby wire computer the AP 101 which flew the space shuttle we'll talk about that in my next video most of my videos about early digital computers end up tying back to the Apollo guidance computer and with good reason it represented the Confluence of a number of new and exciting Technologies brought together by a legendary team of pioneers Apollo is usually credited with giving us the personal computer a good story but a little too convenient the personal computer wasn't born out of Landing a man on the moon it was born in a nuclear tipped in Continental ballistic missile thanks very much for watching if you really enjoy what I do I recently launched a patreon for $5 a month you can get bonus content early access to my videos and your name on screen at the end of all my videos the link is in the description
Info
Channel: Alexander the ok
Views: 53,024
Rating: undefined out of 5
Keywords:
Id: MJPnZzZtswc
Channel Id: undefined
Length: 69min 25sec (4165 seconds)
Published: Wed Apr 10 2024
Related Videos
Note
Please note that this website is currently a work in progress! Lots of interesting data and statistics to come.