Successfully reported this slideshow.
We use your LinkedIn profile and activity data to personalize ads and to show you more relevant ads. You can change your ad preferences anytime.

The Charming Genius of the Apollo Guidance Computer

The Apollo Project was the first flight system to deploy with a digital, general-purpose computer made of integrated circuits at its core: the Apollo Guidance Computer (AGC). It was a complete research project: no IC computer had run consecutively for more than a few hours, sophisticated programming techniques were unknown and the interactive human/computer interface had to be invented and made to appeal to astronauts opposed to machine interference in flight operations.

In this talk I'll give the historical context for the AGC, discuss its initial design and the evolution of this design as the Apollo Project progressed. We'll do a deep-dive on the machine architecture and note how tight integration with a special-purpose vehicle admitted incredibly sophisticated behaviour from a primitive machine. We'll further discuss the human/computer interface for the AGC, how the astronaut's flight roles dictated the computer's role and vice versa. Motivating examples from select Apollo flights will be used.

Throughout, we'll keep an eye on lessons to be gleaned from the experience of engineering the AGC and how we can adapt these lessons to modern computer systems in mission-critical deployments.

  • Login to see the comments

The Charming Genius of the Apollo Guidance Computer

  1. The Charming Genius of the Apollo Guidance Computer
  2. This is the Earth
  3. This is the Moon
  4. This is the Earth This is the Moon 405696km
  5. Apollo is carried into orbit by the three stage Saturn V.
  6. System checks happen in LEO.
  7. Final stage boosts Apollo into Free Return orbit.
  8. M oon 405696km Trans-lunar Injection
  9. Free Return Orbit
  10. This is Apollo.
  11. Space travel is a tricky business.
  12. Orbital paths are a narrow balance of accelerations.
  13. Too little, you miss your goal.
  14. Too much, you miss your goal.
  15. The guidance control system of a spacecraft must answer three questions:
  16. 1. Which way is up? 2. Where am I? 3. Where am I going?
  17. Apollo has triply redundant means to answer these questions.
  18. Deep Space Network
  19. Global network of long-range radar stations.
  20. High Gain Antena
  21. Celestial Navigation
  22. High Gain Antena Telescope
  23. High Gain Antena TelescopeSextant
  24. Mission timed star charts.
  25. Celestial Navigation
  26. Dead Reckoning
  27. Inertial Guidance
  28. Three gimbals save weight.
  29. Gimbal lock is the tradeoff.
  30. Celestial Navigation Dead Reckoning
  31. The Apollo Guidance Computer integrates all of these systems.
  32. It also is the fly-by-wire control computer.
  33. It also manages both the analog and digital displays.
  34. It does this with:
  35. five interrupts,
  36. 1MHz clock,
  37. 16-bit words,
  38. 2048 words RAM,
  39. 36K words ROM,
  40. and 17 registers.
  41. It weighs 70lbs.
  42. It is 1 meter3 .
  43. It draws 55 watts.
  44. Real Time Computing Complex
  45. AGC is a digital computer.
  46. There have been others.
  47. It’s the first to use Integrated Circuits.
  48. Core-rope memory is used as well.
  49. One of the first interactive computers.
  50. DiSplay & KeYboard
  51. DSKY
  52. Allows AGC to give fast updates to Astronauts.
  53. Allows astronaut running of select programs.
  54. What is the computer doing back there?
  55. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec
  56. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec } Mission Time
  57. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec } Wait List
  58. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec } Wait List T4RUPT
  59. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec } Wait List T4RUPT Digital Autopilot
  60. 10050 150 200 250 300 3500 400 450 500 600 700 800 900 1000550 650 750 850 950 TIME2 TIME1 TIME3 TIME4 TIME5 TIME6 AGC Interrupts, 1sec } Wait List T4RUPT Digital Autopilot Fine Scale Clock
  61. TIME3, TIME4 and TIME6 are programmable.
  62. Nowadays, we would call the AGC a “priority-scheduled real-time embedded” computer.
  63. Priority Scheduling
  64. Priority Scheduling (Invented for the AGC)
  65. Priority Scheduling Two tables exist for jobs in the AGC.
  66. Priority Scheduling Waitlist •<4ms execution
  67. Priority Scheduling Waitlist •<4ms execution •9 task limit
  68. Priority Scheduling Waitlist •<4ms execution •9 task limit •basic instructions
  69. Priority Scheduling Waitlist •<4ms execution •9 task limit •basic instructions •no rescheduling
  70. Priority Scheduling Waitlist •<4ms execution •9 task limit •basic instructions •no rescheduling •no Executive
  71. Executive?
  72. The AGC software provides two operating abstractions.
  73. Executive • low-level routinesOperating Abstractions
  74. Executive • low-level routines • system restarts Operating Abstractions
  75. Executive • low-level routines • system restarts • supervision Operating Abstractions
  76. Executive • low-level routines • system restarts • supervision • keeps CoreSet Operating Abstractions
  77. Priority Scheduling CoreSet •12 task limit
  78. There’s nothing to stop the CoreSet from filling up.
  79. Most invariant guarantees are left to analysis and testing.
  80. Priority Scheduling CoreSet •12 task limit •priority ordered
  81. Priority Scheduling CoreSet •12 task limit •priority ordered •20ms interrupt
  82. Priority Scheduling CoreSet •12 task limit •priority ordered •20ms interrupt •option to use Interpreter
  83. Interpreter?
  84. The native instructions available from the AGC are very primitive.
  85. AGC word-size of 15 data bits has insufficient accuracy for spaceflight.
  86. Interpreter Operating Abstractions • high-level routines
  87. Interpreter Operating Abstractions • high-level routines • rich instruction set
  88. Interpreter Operating Abstractions • high-level routines • rich instruction set • extra-wide words
  89. Interpreter Operating Abstractions • high-level routines • rich instruction set • extra-wide words • radically simpler programming
  90. Free Return Orbit
  91. Capture Braking
  92. Capture Braking
  93. Lunar Orbit
  94. Up to this point, loss of the CM computer hasn’t been abort- worthy.
  95. Different matter for the LM.
  96. The LM computer is absolutely essential to a controlled landing on the Moon.
  97. Program 63 fires LM engines.
  98. Program 63 fires LM engines. (Routine in AGC source is BURNBABY.)
  99. Program 63 fires LM engines. (Apollo 11’s CoreSet overflowed here.)
  100. Program 64 pitches craft.
  101. Program 64 pitches craft. (All LMs had a potentially fatal bug.)
  102. Program 66 steadies thrust vector.
  103. Program 66 steadies thrust vector. (Early LMs had a nearly fatal bug.)
  104. The AGC is interesting, but why study it?
  105. The AGC was barely possible.
  106. Few believed it could ever be dependable.
  107. Yet, it was.
  108. How?
  109. Careful, pragmatic and empirical engineering.
  110. The techniques developed for the AGC are in use today.
  111. The past…
  112. The past…
  113. The past…
  114. The past…
  115. informs our present.
  116. We sit inside of a great project.
  117. The techniques that we develop today…
  118. are the foundation of the future.
  119. So build something fucking amazing.
  120. Thank you! <3
  121. BIBLIOGRAPHY •The Apollo Guidance Computer: Architecture and Operation Frank O’Brien •Journey to the Moon: The History of the Apollo Guidance Computer Eldon C. Hall •Stages to Saturn Roger E. Bilstein •How Apollo Flew to the Moon W. David Woods •Digital Apollo: Human and Machine in Spaceflight David A. Mindell

×