National History Day Project

- (13 min read)

Terminology and basic computer information

A simple computer has two main components, the RAM, often also referred to as memory, and the CPU. The RAM (Random Access Memory) stores values for the CPU (Central Processing Unit) to operate on and stores instructions for the CPU to execute. The CPU reads instructions from memory that tells it to manipulate values in RAM. There are two types of RAM, erasable (Most modern RAM is erasable) and fixed, also called ROM. Values in erasable RAM can be changed while values in fixed RAM cannot. Fixed RAM was usually used to store instructions for the CPU to execute or constants that do not change.

Clock Speed is the speed at which instructions are executed by the CPU, a 1Khz CPU can execute an instruction one thousand times per second.

The Story of Computing in the Space Race

The competition of The United States and the Soviet Union from 1955 to 1975 led to the technological barrier of creating a computer suited for space travel to be broken. This led to many contributions to computing by both NASA and the Soviet Space Program that had long term effects on making computers more compact and accessible.

Before the space race and during the early space race

Before integrated circuits computers were massive. Pictured below is the Eniac computer. The Eniac, completed in 1945, was the first electronic general purpose computer.

An image of a large mainframe computer named Eniac

Travelling to the moon is impossible without a computer onboard the spacecraft, the computations are too complex and the precision required is too precise for a human to do with a reasonable amount of safety. Computing technology must become much lighter and more compact to be launched into space.

The Gemini Capsule seen during orbital rendezvous:

The gemini capsule seen during orbital rendezvous

20 years later the Gemini Guidance Computer is built, a computer compact enough to be launched into space.

An image of the Gemini Guidance Computer

Designed by IBM, the Gemini Guidance Computer, often referred to as the On Board Computer (OBC) was used for calculation of orbital maneuvers such as insertion burns and orbital rendezvous. The computer could not control the thrusters of the spacecraft and the calculations it did had to be manually carried out by astronauts.

The Gemini Instrument Panel:

An image of the gemini instrument panel

Here you can see the Modular Display Keyboard for the Gemini Guidance Computer:

An image of the manual data insertion unit

And here you can see the Modular Display Readout, essentially the screen:

An image of the Modular Display Readout

Together these form the Manual Data Insertion Unit, these were used to interface with the Gemini Guidance Computer during flight. You can see this in the right of the center panel in the Gemini Instrument Panel.

Here is a detailed block diagram of the Gemini Guidance Computer:

A detailed block diagram

Weighing 60 pounds the Gemini Guidance Computer was definitely heavier than a modern computer, however it is still leaps ahead of the Eniac’s 30 tons. It had a memory of 4096 39 bit words and a 7 Khz clock speed.

The Gemini Guidance Computer use ferrite core memory. This type of memory worked via magnetization of small ferrite rings threaded onto a matrix of wires. Each core stored one bit.

An image of ferrite core memory, each metal ring is one bit. The wires were typically hand woven:

An image of ferrite core memory

This type of memory was susceptible to heating up which could cause issues. For example if too many divide operations were executed in a row, the core would heat up and further division operations would be inaccurate.

Some example code, written by Charlie Leist, to show how this was prevented:

CLA    B    Load the accumulator
DIV    C    Start the division
SPQ    A    Save the computed quotient
NOP         NOP did not use any memory locations and thus would not heat up the memory.
CLA    E
DIV    F
SPQ    D
NOP         Again no heat up of the memory
CLA    H
DIV    I
SPQ    G
NOP         Again no heat of the memory

The Gemini Guidance Computer was a powerful computer for its size in its time. However it is less powerful than most modern TV remotes by a large margin.

Launch Vehicle Digital Computer, and Abort Guidance System

The Launch Vehicle Digital Computer

The Launch Vehicle Digital Computer (LVDC) was the computer controlling the Saturn V Launch Vehicle. It was located on the instrument ring.

The Saturn V Instrument Ring:

The Saturn V Instrument Ring

The Launch Vehicle Digital Computer:

The Launch Vehicle Digital Computer

Also designed by IBM, the Launch Vehicle Digital Computer (LVDC) had a clock speed of 2 Mhz but every operation took multiple clock cycles to complete for an effective speed of about 12Khz. It had 4096 words of memory. This made the Launch Vehicle Digital Computer like a slightly more capable version of the Gemini Guidance Computer.

The LVDC was used to guide the Saturn V rocket until discarded by the Apollo Service Module and Lunar Lander Module. It had no ability for astronauts to input into it information into it.

The Abort Guidance System

The Apollo Abort Guidance System (AGS) was a backup computer and IMU, set in place should the primary guidance, navigation, and control system should fail. The computer used inside of AGS was MARCO 4418 (MARCO being an abbreviation of man rated computer). It had 2048 words of erasable memory and another 2048 words of fixed memory used for the firmware.

The Abort Guidance System:

The Abort Guidance System

The Apollo Guidance Computer and a brief note on Argon-11

All of the computers used up to this point in the space race were very similar, they were all made of discrete components, and had fairly simple architectures. The programs they ran were simple in terms of architecture as well. There was very little concept of an operating system, the computer ran the code the engineers wrote directly on the hardware, with no layer between the code and the computer. However, the primary guidance computer for the Apollo Spacecraft would need to be more complex than that to allow for higher flexibility in function and ease of programming.

The Apollo Guidance Computer (AGC) had a 1.024 Mhz clock, it had 36 kilowords of fixed memory and 2 kilowords of erasable memory. The purpose of the Apollo Guidance Computer was to guide the Apollo Command and Service module and the Lunar Module. There were two Apollo Guidance Computers on any mission, one in the Command and Service Module and one in the Lunar Module.

The Apollo Guidance Computer

The Apollo Guidance Computer

So how did the AGC achieve the performance and flexibility required of it? It employed two new techniques, Integrated Circuits, and Interpreted Languages.

Integrated Circuits

The AGC was the first computer to use silicon integrated circuits. Previous computers used discrete transistors to do logic, Instead the AGC used integrated circuits, chips that could hold many transistors in a similar footprint and weight as one discrete transistor. This meant you could fit more logic with the same amount of space and weight, leading to a massive improvement in performance.

Flatpack silicon integrated chips used on the AGC:

integrated circuits used on the apollo guidance computer

Interpreted Language

The AGC also used a new technique for programming, Interpreted Languages. Instead of directly writing code that the computer understood, which was often hard to understand and not user friendly, you could instead write a layer that converted from a higher level, easier to write, language to the code the computer understood and then executes that. This allowed for benefits other than just easier writing of code. This allowed the AGC to implement a primitive form of asynchronous execution. Essentially the execution of a low priority task could be paused when a high priority one came around so it could be executed instead.

Argon-11

Argon-11s was the first computer to fly in a soviet spacecraft, the Soyuz 7K-L1, as a guidance computer. The Soyuz 7K-L1 was designed to do a flyby of the moon. Argon-11c was used in the Zond space probe control system. It had 128 words of erasable memory and 4096 words of fixed memory. It had 3 independent computing units operating in parallel. It was weaker processing wise than the AGC. Lack of computing power was a large factor in the failure of the soviet manned lunar program.

The Argon 11-c:

The argon 11-c computer

The Acute and Chronic effects on computing.

The Apollo Program and the Space Race as a whole introduced many new techniques and technologies into computing. NASA’s funding of IBM and other companies to develop computers during the space race gave these companies the money to do R&D that would not have been done before.

Integrated Circuits would have been developed even if Apollo had not used them in the AGC but they would have been developed later. Integrated circuits had been used in digital electronics before the AGC but they were much simpler. The AGC gave engineers funding to research out how to practically use integrated circuits in complex systems like computers.

The AGC helped to popularize interpreted language and techniques developed for its creation became fundamental to software engineering, especially in the fields of asynchronous programs.

On the soviet side of things, Argon-11 kickstarted the use of integrated circuits in soviet russia and soon after electronics with integrated circuits were fairly common.

Due to the great need for computing during the space race, computing techniques were drastically developed to accommodate the precision and flexibility required of a spacecraft guidance computer. This led to great leaps forward in the software and hardware of computing of the time, kickstarting the production of integrated circuits and leaving a lasting impact on software engineering in the form of interpreted languages.

Bibliography

Mohon, Lee. “Saturn V Instrument Unit Final Assembly.” NASA, NASA, 2 June 2015, www.nasa.gov/centers/marshall/history/saturn_v_instrument_unit.html.

Another image of the Saturn Instrument Unit, taken after final assembly

Mohon, Lee. “Saturn IB/V Instrument Unit Contract Awarded to IBM – March 31, 1965.” NASA, NASA, 3 Apr. 2019, www.nasa.gov/centers/marshall/history/this-week-in-nasa-history-saturn-ibv-instrument-unit-contract-awarded-to-ibm-march-31.html.

A website containing an image of the Saturn Instrument Unit.

Burkey, Ronald. “Contents.” Virtual AGC Is Hosted by Ibiblio.org, www.ibiblio.org/apollo/ElectroMechanical.html.

A website containing many images of the Apollo Guidance Computer, 2d cad drawings, and 3d models.

“NASA Office of Logic Design.” APOLLO GUIDANCE COMPUTER (AGC) Schematics, klabs.org/history/ech/agc_schematics/.

A website containing the schematics for the Apollo Guidance Computer.

Burkey, Ron. “The Launch Vehicle Digital Computer.” Virtual AGC Is Hosted by Ibiblio.org, www.ibiblio.org/apollo/LVDC.html#LVDC_Software.

Written by Ron Burkey, creator of many emulators for space race computers, the Gemini Spacecraft Computer is a page with downloads for software emulating the Launch Vehicle Digital Computer and source code for programs written for it by NASA.

Burkey, Ron. “The Gemini Spacecraft Computer.” Virtual AGC Is Hosted by Ibiblio.org, www.ibiblio.org/apollo/Gemini.html#Downloads.

Written by Ron Burkey, creator of many emulators for space race computers, the Gemini Spacecraft Computer is a page with a download for software that emulates the gemini guidance computer, the source code for a program used to aid astronauts in completing rendezvous and comments from many engineers who worked on the Gemini Guidance Computer.

Burkey, Ron. “ Abort Guidance System (AGS) and Abort Guidance Assembly (AEA).” The Abort Guidance System, www.ibiblio.org/apollo/yaAGS.html.

Written by Ron Burkey, creator of many emulators for space race era computers, this article contains an overview of the architecture of the apollo abort guidance system and downloads for source code.

Chrislgarry. “Chrislgarry/Apollo-11.” GitHub, 14 Oct. 2019, github.com/chrislgarry/Apollo-11.

A github repository containing the source code for the apollo guidance computer on both the lunar lander (Luminary) and the lunar orbiter (Comanche). This includes the famous “Burn Baby Burn Subroutine”. The source showcases culture and inside jokes between the engineers in some code comments and routine names.

Jones, Eric M. “Apollo Lunar Surface Journal.” NASA, NASA, 1995, www.hq.nasa.gov/office/pao/History/alsj/.

Created by Eric M. Jones the Apollo Lunar Surface Journal is a log of all of the communications of apollo astronauts while on the lunar surface. This helps show the culture of the pilots through how they talk to ground control and the procedures NASA used to keep the astronauts safe.

SATURN V INSTRUMENT UNIT REFERENCE, edgardurbin.com/SaturnIU/index2.htm.

Published by the smithsonian the Saturn V Instrument Unit Reference is a document describing the purpose and function of the Saturn V Instrument Unit.

Chesnokov, V. V., and V. I. Shteinberg. “Argon Family of Computers.” Argon Family of Computers, 2002, web.mit.edu/slava/space/argon-family.htm.

Published by M.I.T., “Argon Family of Computers” is an overview of the Soviet Space Programs family of flight and ground computers.

Burkey, Ron. Virtual AGC Assembly-Language Manual, www.ibiblio.org/apollo/assembly_language_manual.html.

A webpage written by Ron Burkey, creator of many projects designed to emulate the Apollo Guidance Computer such as yaYul and virtualagc. This document contains lots of detailed information on the architecture of the Apollo Guidance Computer. The source is useful because it gives us insight into how the Apollo Guidance Computer functions

Bilstein, Roger E. “SP-4206 Stages to Saturn.” NASA, NASA, 1996, history.nasa.gov/SP-4206/contents.htm.

A book (published online) written by Roger E. Bilstein, Professor of History at University of Houston. The source contains large amounts of knowledge on the technical issues, management, and creation of the Saturn V rocket. This is useful as it has insight on the culture and management of the Saturn V project.

Grimwood, James M. “Project Mercury A Chronology.” NASA, NASA, 13 Feb. 2006, history.nasa.gov/SP-4001/cover.htm.

Written by James M. Grimwood a NASA manned spacecraft center historian. “Project Mercury A Chronology” gives a history of the mercury project. This source relates to my document as Project Mercury was the start of the space race and was the reason NASA was created.

Grimwood, James M. Grimwood, et al. Project Gemini Technology and Operations: a Chronology. Scientific and Technical Information Office, National Aeronautics and Space Administration, 1969, Project Gemini Technology and Operations: A Chronology. Written by James M. Grimwood a NASA manned spacecraft center historian.

“Project Gemini Technology and Operations: a Chronology” gives and overview of the Gemini Project. Project Gemini gave NASA a testing ground for much of the technology later implemented in the Apollo project.

Tomayko, James E. Computers in Spaceflight: the NASA Experience. National Aeronautics and Space Administration, Scientific and Technical Information Division, 1988, history.nasa.gov/computers/contents.html.

Tomaylo, James E. was a professor in the School of Computer Science at Carnegie Mellon University. His book gives a history of computers in spaceflight and their architectures. This book is relevant because it helps us to understand the design choices and architectures behind the computers used in NASA spacecraft of the era.

Ertel, Ivan D. The Apollo Spacecraft: a Chronology. Scientific and Technical Information Division, Office of Technology Utilization, National Aeronautics and Space Administration, 1969, www.hq.nasa.gov/office/pao/History/SP-4009/contents.htm.

“The Apollo Spacecraft: a Chronology” gives a detailed timeline of the Apollo project. This is important because it is the culmination of the efforts of the space race.