The Apollo guidance computer had less memory than a modern washing machine

Science

The Apollo guidance computer had less memory than a modern washing machine

It ran at 0.043 megahertz with 64 kilobytes of read-only memory. It navigated three astronauts to the Moon and back. During the lunar descent it threw alarms five times in two minutes. The astronauts landed anyway.

In July 1969, humans landed on the Moon, and the Apollo Guidance Computer (AGC) was integral to that mission. Weighing 32 kilograms and drawing 55 watts, the AGC was a marvel of engineering for its time. It was built around a custom 16-bit word-size integrated circuit architecture, with a clock speed of 2.048 MHz but an effective instruction throughput of about 0.043 MHz. It boasted only 4 kilobytes of RAM—erasable core memory—and 72 kilobytes of ROM—core rope memory. For comparison, a basic modern washing machine's microcontroller surpasses this with more memory and processing speed, yet it does not face the daunting task of navigating astronauts to the Moon and back. Designed between 1961 and 1964 and frozen in 1966, this computer's modest specifications belie the complexity and the critical role it played in one of humanity's greatest achievements.

An Apollo Guidance Computer with its DSKY display-keyboard interface. 32 kg, 55 W, 72 KB of woven-rope ROM.
An Apollo Guidance Computer with its DSKY display-keyboard interface. 32 kg, 55 W, 72 KB of woven-rope ROM.

Who built it

The Apollo Guidance Computer was developed by the Charles Stark Draper Laboratory at MIT, which was awarded the first contract for the Apollo program in August 1961, merely two months after President Kennedy's historic commitment to land a man on the Moon. Charles Stark Draper, an aeronautical engineer renowned for his work on inertial guidance systems for ballistic missiles, was instrumental in the AGC's development. Draper's insight and leadership in guiding the project were pivotal, given the uncharted territory of space navigation that the computer would have to manage.

Margaret Hamilton in 1969 with the stack of program listings for the Apollo Guidance Computer. She led the 350-person software team and coined the term 'software engineering'.
Margaret Hamilton in 1969 with the stack of program listings for the Apollo Guidance Computer. She led the 350-person software team and coined the term 'software engineering'.

Margaret Hamilton, who joined the team in 1965, led the development of the software for the AGC. She built a 350-person organization from scratch, and in doing so, she coined the term 'software engineering'. This was not merely a semantic innovation; it reflected the nascent nature of the discipline and the monumental challenges faced by her team. Hamilton's approach laid the groundwork for the structured software practices that are commonplace today. Her role was pivotal in ensuring the AGC’s software could handle the myriad of complex tasks required for the lunar missions, from navigation to landing protocols.

Core rope memory: each bit of the AGC's program was physically encoded by whether a copper wire ran through or around a ferrite core. Programs were woven, by hand.
Core rope memory: each bit of the AGC's program was physically encoded by whether a copper wire ran through or around a ferrite core. Programs were woven, by hand.

What it had to do

The AGC was tasked with three primary functions. Its first role was inertial navigation—integrating the accelerations detected by gyroscopes and accelerometers in the inertial measurement unit (IMU) to maintain a continuous estimate of the spacecraft's position and velocity. This was crucial as it allowed the spacecraft to know where it was in space at all times, an essential requirement for both heading to the Moon and returning to Earth.

Second, it managed attitude control. This involved firing small reaction-control thrusters to change or maintain the spacecraft’s orientation, which was necessary during propulsion burns and reentry into Earth's atmosphere. Without precise control of the spacecraft's orientation, the mission could easily veer off course, with catastrophic consequences.

Lastly, the AGC performed guidance computations. This involved calculating the ignition time, duration, and orientation for major propulsion maneuvers, such as the translunar injection, lunar orbit insertion, lunar descent and ascent, and transearth injection. While astronauts could override or supplement the computer’s commands, in nominal operations, it was the AGC that handled most of the second-by-second decisions, ensuring that the mission stayed on track.

Core rope memory

The AGC's 72 kilobytes of ROM was realized through an innovative technology known as core rope memory. This system was a hand-woven matrix of magnetic cores threaded with copper wires, where each bit of data was physically encoded based on whether a wire passed through a core or bypassed it. A wire passing through a core would represent a 'one', while bypassing would represent a 'zero'. This method of memory storage was not only reliable but also incredibly space-efficient, a necessity given the constraints of onboard spacecraft systems.

The weaving of these core ropes was performed at the Raytheon plant in Waltham, Massachusetts, primarily by women who were affectionately known within NASA as the 'Little Old Ladies'. Many of these women had backgrounds in textile work, and their expertise was crucial in translating the software designs into physical memory. Once woven, the memory could not be modified, meaning that a discovered software bug required an entirely new rope to be created, often within tight deadlines before a mission launch. This painstaking process underscores the meticulous nature of engineering work at the time, as described in detail by Hall (1996).

The 1201 and 1202 alarms

During the Apollo 11 mission's descent to the lunar surface, the AGC began to issue program alarms—specifically, alarms 1201 and 1202—just 12 minutes from touchdown. These alarms, which occurred five times over two minutes, signified 'executive overflow', indicating that the computer's job queue was exceeding its capacity. The alarms were triggered by a rendezvous radar switch mistakenly left in the wrong position, feeding additional data into the AGC's input registers and consuming valuable processing cycles.

As the alarms were raised, the mission director, Steve Bales, after a swift consultation with his back-room team, made the critical decision to proceed with each alarm, calling 'go'. The AGC's design allowed it to drop low-priority tasks, ensuring that the crucial real-time guidance computations continued unhindered. This design feature, a result of the priority-driven multitasking system developed under Margaret Hamilton's leadership, was vital. As noted by Hamilton (1976), it ensured that Apollo 11 landed safely with approximately 25 seconds of fuel left. The AGC's ability to prioritize tasks under pressure was a testament to the foresight and expertise of its engineers.

What was unusual about it for 1969

The AGC was remarkable for several reasons, especially given the technology available in 1969. Firstly, it featured a priority-driven multitasking real-time operating system, an innovation in a time when such systems were not yet standard. This capability was essential for managing the simultaneous demands of space navigation and control, allowing the AGC to handle multiple tasks and prioritize critical functions under high-stress conditions.

Secondly, the AGC's use of integrated circuits was groundbreaking. It was one of the first major projects to utilize this technology at scale, significantly contributing to the early production volumes of the integrated circuit industry. This use of ICs enabled the AGC to be compact and efficient, essential for spacecraft where every gram counts.

Thirdly, the AGC provided an interactive display-and-keyboard interface known as the DSKY—Display and Keyboard. This interface used two-digit numerical 'verb' and 'noun' codes to communicate commands, a novel interactive computer interface at the time. Despite its unusual nature, astronauts became adept at operating it, integrating it seamlessly into the broader control panel operations. This ability to interact with the computer in real-time was crucial for the success of the missions and stands out as an early example of user-interface design for practical human-machine interaction, noted by Mindell (2008).

Today, the Apollo Guidance Computer remains a benchmark in discussions about computation and capability. It exemplifies the power of meticulous system design, where integration between sensors, control systems, and human operators was paramount. The lesson from the AGC is not simply that more was achieved with less computing power. Rather, it highlights the importance of a cohesive system where every element—from hardware to human crew—worked in harmony to achieve a common goal. In an era where computational power is abundant, the careful system thinking that characterized the Apollo missions is a practice that often goes overlooked. The Apollo team, constrained by their era's limitations, achieved remarkable precision and reliability, a standard that challenges modern engineers to consider the balance between computational power and system design. The insights drawn from this era, as recounted by Eyles (2018), remain pertinent as we continue to explore the cosmos and our reliance on digital technology.

References

  1. Mindell, D. A. (2008). Digital Apollo: Human and Machine in Spaceflight. MIT Press.
  2. Hamilton, M. H. (1976). The Apollo guidance computer: building a moon-bound computer. IEEE Annals of the History of Computing (retrospective).
  3. Eyles, D. (2018). Sunburst and Luminary: An Apollo Memoir. Fort Point Press.
  4. Hall, E. C. (1996). Journey to the Moon: The History of the Apollo Guidance Computer. AIAA.