There has been much speculation by some
as to how the flight computer aboard the
Apollo missions managed to get men to
the moon when it had just a tiny
fraction of a computing power of
something like a modern smartphone. But
this is quite misleading as it was not
one solitary computer controlling the
Apollo craft there were four computers
and there were no fancy touchscreens
GUI's or other things in a typical
computer of today to waste resources on. The
first of the 4 computers was the Saturn
Launch Vehicle Digital Computer (LVDC).
This got the rocket from the launch pad
to the Earth orbit. Then there was the
Apollo guidance computer or AGC this is
the one that most people think of. There
were in fact two of them one in the
command module to get from Earth orbit
to the moon and in back again the second
was in Lunar Lander and would control
the landing and then the ascent back to
the command module and docking. The
fourth computer was one which was never
used on any missions because it would
control an emergency abort and ascent
should something happen during the
descent to the moon surface like the
landing computer failing or they ran out
of fuel. The Apollo guidance computer
wasn't as dumb as many make it out to be.
As time went by in Apollo's development the
tasks that it was meant to do increased
in both number and sophistication. This
in turn created ever more issues with
the limited resources available. One of
the biggest problems was the limited
amount of memory due to technological
limitations of the time. This meant that
the programmers had to make use of every
single Byte available. The AGC also had a
unique operating system. Systems like
unix, linux ,windows and Apple iOS are in
control and share out time to the
program. In the AGC the program's
controlled how much time they got
depending on how important they were, so
in the case of an emergency the highest
priority programs would get the most
amount of time and non-essential
operations were dropped to free up
resources which became the basis
mission-critical systems for all manned
missions afterwards. The computer had a
performance somewhere around that of the
first generation of personal computers
like the Apple II, Commodore pet
Commodore 64, the ZX spectrum which will all
arrive ten years later in the late 1970s.
It had 2k of RAM and 36k the fixed
storage rope core memory or ROM. Now
this was woven by hand and took months
to assemble, so any software bugs were
literally woven into the system. A
comparison between the Apollo guidance
computer and say an iPhone 6 is tricky
because the AGC was not a
general-purpose computer it was built
for a very specific task and had a
unique operating system that and also
over 48 year gap in the technologies
used mean that we can only get a very
rough estimate on the difference in
performance. The Apple iPhone 6 has an
ARM A8 processor which has about 1.6
billion transistors in it, the agc had
just 12300. This iPhone 6 has one
Gigabyte of RAM, about 488,000
times that of the
AGC and this one 128 Gigabytes of
non-volatile storage about 3.5
million times after the AGC. As for the
performance the iPhone 6 is maybe
somewhere between 4 and 30 million times faster than the AGC
depending upon what type of calculations
are being done and if you include the
iPhones GPU, it will be even more. So if
you had to fly back to the moon in an
Apollo craft and given the choice would
you trust your life to a couple of
iPhones in place of the AGC because you
would actually have more computing power
in just one of these than the whole of
NASA had during all the Apollo missions.
However if your iphone crashed you would
be in big trouble whereas the ancient
AGC was designed to recover from crashes
and overloads and continue by itself in
essence it was designed to be
crash-proof, something that is needed in
a mission critical situation. The problem
we have here is in the context in which
we see the Apollo computer today. We are
now surrounded by computers hugely more
powerful and we don't give them a second
thought. It's very difficult for most
people who are not computer engineers or
assembly language programmers to imagine
how you could do anything with such
limited resources. What we forget is at
the time of the design in 1962 that this
was to be the first embedded computer. It
was a huge leap forward in miniaturized
computing from something the size of a
large room to a size of a briefcase. It
would also be a giant leap forward for
software programming and the first time
that software would be used for
real-time problem solving that will be
key to the entire mission. If it fails
people could die but this development
was far from easy, it said that if the
designers had known in 1961 what they
learned later or had a complete
specification when given the contract to
make it, they would have most likely
concluded that it was just not have been
possible with early 1960s technology. The
contract for the design development
construction of the Apollo guidance
navigation systems and software was
given to the Massachusetts Institute of
Technology, MIT in August 1961 instead of
NASA's normal computer contractors IBM.
But there was no specifications given in
the contract because no one at NASA
really knew what the requirements of an
Apollo computer would be at that early
stage. As the project developed
throughout the 1960s it became apparent
that the task was going to be much more
difficult than they first considered and
by the mid to late sixties the problems
in the computers development were in
danger of sinking being entire Apollo
program if they couldn't get the AGC to
work. By the time of testing in 1966
for the ill fated Apollo 1, it became
apparent that the bugs in the software
meant that the AGC could not be relied
upon to do the navigational course
calculations as it was just not accurate
enough something but could put the craft
in the wrong orbit when it returned to
earth. It was decided that IBM mainframe
computers on the ground would do the
course calculations then send them
to the AGC in the command module to be
implemented. This way round known
limitations could be worked around with
much more powerful ground-based
computers and the results sent to be a
AGC's. However the command module had to be
capable of working independently if the
ground link was broken, like when it was
flying behind the moon or if someone
tried to actually jam the signal, so
using a combination of the inertial
guidance system and the built-in sextant
to check the star positions they could
still navigate without the ground link Data. As for the Lander the round-trip
delay of 1.5 seconds for the signals to
get to the moon and in back to earth
would have been too long for the ground
control to remotely lander's descent stage
because the feedback needed to be in
real time. To this end the descent stage
AGC would work with the landing radar
and the astronauts to land on the moon
this led to the Apollo 11 landing almost
been aborted when design bug in the
landing radar which had been left on
standby during the descent in case of an
emergency abort, created a flood of
signals and overloaded the AGC setting off
computer error code alarms just before
the landing. Due to the AGC design
instead of crashing or locking up like
we might expect to our iPhone or a
normal computer to do, it dropped all but
the most important tasks before then
restarting itself. This was not a fault
it was called Reset Protection, the AGC
was designed so but all the current data
it was working on was stored, this meant
but it could be turned off and on again
or reset at any time and it would just
continue to work from where it left off,
a bit like when your PC goes in to sleep
mode and then comes back again but much
much quicker.
These features saved the mission from
aborting and allowed Armstrong to
control the orientation of the lander
whilst the AGC controlled the descent to
a successful landing. It's things like
this that made what is now about as
powerful as the microcontroller in a
toaster get men to the moon and safety
back again six times. It also created a
paradigm shift not only in space
exploration but also computing for the
future and as always thanks for watching
and please subscribe, rate and share.