Computers in Spaceflight: The NASA
Experience
Computing and Spaceflight: An
Introduction
- [2] When the National
Aeronautics and Space Administration came into existence in 1958,
the stereotypical computer was the "UNIVAC," a collection of
spinning tape drives, noisy printers, and featureless boxes,
filling a house-sized room. Expensive to purchase and operate, the
giant computer needed a small army of technicians in constant
attendance to keep it running. Within a decade and a half, NASA
had one of the world's largest collections of such monster
computers, scattered in each of its centers. Moreover, to the
amazement of anyone who knew the computer field in 1958, NASA also
flew computers in orbit, to the moon, and to Mars, the latter
machines running unattended for months on end. Within another 10
years the giant groundbased mainframe would be supplanted by
clusters of medium-sized computers in spaceflight operations, and
the single on-board computer would be replaced by multiple
machines. These remarkable changes mirror developments in the
commercial arena. Where there were giant computers, small
computers now do similar tasks. Where there were no computers,
such as on aircraft or in automobiles, computers now ride along.
Where once the only solution was the large, centralized computing
center, distributed computers now share the load.
-
- Since NASA is well known as an extensive
user of computers- mainly because spaceflight would not be
possible without them- there is a common sense that at least part
of the reason for the rapid growth and innovation in the computer
industry is that NASA has served as a main driver due to its
requirements. Actually, the situation is not so straightforward.
In most cases, because of the need for reliability and safety,
NASA deliberately sought to use proven equipment and techniques.
Thus, the agency often found itself in the position of having to
seek computer solutions that were behind the state of the art by
flight time. However, in other cases, some use of nearly leading
edge technology existed, mostly for ground systems, but
occasionally when no extensively proven equipment or techniques
were adequate in a flight situation. This was especially true on
unmanned spacecraft, because the absence of human pilots allowed
greater chances to be taken. Thus generalizations cannot be made,
other than that there was no conscious attempt on the part of NASA
in its flight programs to improve the technology of computing. Any
ways in which NASA contributed to the development of computer
techniques were side effects of specific requirements.
-
- NASA uses computers on the ground and in
manned and unmanned spacecraft. These three areas have quite
different requirements, and the nature of the tasks assigned to
them resulted in varying types of computers and software. Thus,
the impact of NASA on computing differs in extent as a result of
the separate requirements for each field of computer use, which is
one reason why the three fields are considered in separate parts
of this volume.
-
- Computers are an integral part of all
current spacecraft. Today they are used for guidance and
navigation functions such as [3] rendezvous,
re-entry, and mid-course corrections, as well as for system
management functions, data formatting, and attitude control.
However, Mercury, the first manned spacecraft, did not carry a
computer. Fifteen years of unmanned earth orbital and deep space
missions were carried out without general-purpose computers on
board. Yet now, the manned Shuttle and the unmanned Galileo
spacecraft simply could not function without computers. In fact,
both carry many computers, not just one. This transition has made
it possible for current spacecraft to be more versatile. Increased
versatility is the result of the power of software to change the
abilities of the computer in which it resides and, by extension,
the hardware that it controls. As missions change and become more
complex, using software to adjust for the changes is much cheaper
and faster than changing the hardware.
-
- On-board computers and ground-based
computers store data and do their calculations in the same way,
but they handle processes and input and output differently. A
typical ground computer of the early 1960s, when the first
computers flew on manned spacecraft, would process programs one at
a time, right after each other. This sort of processing, in which
the entire program must be loaded into memory and data must be
available in discrete form, is called "batch." Over time, computer
systems were changed to make them more efficient than batch
computing allowed. In a batch process, if the computer is doing a
calculation, the input and output devices are idle. If it is using
a peripheral device, the calculating circuits are not used. One
way to improve on efficiency of the batch process would be to
develop an operating system for computers that could permit one
program to use resources currently unneeded by another program.
Another method is to limit each program to a fraction of a second
running time before going on to the next program, running it for a
fraction and then going on until the original program gets picked
up again. This cyclic, timesliced method permits many users to be
connected to the computer or many jobs to run on the computer in
such a way that it appears that the machine is processing one at a
time. The computer is so fast that no one notices that his or her
job is being done in small segments. Each of these methods
presupposes that data for the program are available and processed,
and then the program stops. So even though lots more programs are
run through the system in a period of time, each is still handled
as a batch process. When the computer runs through all the
processes waiting for execution, it stands idle.
-
- Spacecraft computers operate in a
radically different processing environment. They are in
"real-time" mode, handling essentially asynchronous inputs and
outputs and continuous processing, similar to a telephone operator
who does not know on which line the next call will come. For
example, computers used for controlling the descending Shuttle can
hardly process commands to the aerodynamic surfaces in batch mode.
The spacecraft would go out of control or at least lose
[4]
track of where it was if data were only utilized in small bunches.
The requirement for real-time processing leads to other
requirements for spacecraft computers not normally found on
earth-based systems. Software must not "crash" or have an abnormal
end. If the software stops, the vehicle ceases to be controllable.
Hardware must also be highly reliable, or reliability can be
obtained through redundancy If the latter course is chosen,
overhead in the form of redundancy management hardware and
software will be high. Memories must be nonvolatile in most
applications, so if power is lost then the program in storage will
not disappear. Since modern semiconductor, random-access memories
are usually volatile, older technology memories such as ferrite
core continue to be used on spacecraft. Weight, size and power are
other considerations, just as with all components on a
spacecraft.
-
- Even though both manned and unmanned
spacecraft have similar requirements, until very recently they
could not use the same computers. No computer with sufficient
calculating capability to control the Shuttle flew on an unmanned
spacecraft. Conversely, the Shuttle computers are so large and
power hungry they would overwhelm the power supply of a deep space
probe. Modern powerful microprocessors make it possible to
overcome these deficiencies, but systems described herein predate
most microprocessor technology. Also, computers on manned
spacecraft are oriented toward relatively short-term missions
lasting up to a few weeks (which will change in the Space Station
and Mars Mission eras). Computers on unmanned earth orbital
missions and deep space probes need to run reliably for years, yet
must have low power requirements. Even though both need to be
trustworthy, the different mission conditions dictate how
reliability is to be attained.
-
- NASA's challenge in the 1960s and 1970s
was to develop computer systems for spacecraft that could survive
the stress of a rocket launch, operate in the space environment,
and thus provide payloads with the increased power and
sophistication needed to achieve increasingly ambitious mission
objectives. NASA found itself both encouraging new technology and
adapting proven equipment. In manned spacecraft the tendency was
to use what was available. On unmanned spacecraft innovation had a
freer hand.
-
- In contrast, NASA's ground computer
systems reflected the need for large-scale data processing similar
to many commercial applications, but in a real-time environment,
until recently not normally a requirement of business computing.
Therefore, commercially available computers could be procured for
most of the ground-based processing, with any innovation confined
to software that handled the real-time needs. Preflight checkout,
mission control, simulations, and image processing all have used
varying combinations of standard mainframe and minicomputers. So
NASA's impact on computing driven by ground support requirements
was largely in the area of operating systems [5] and other software
and not as much in hardware, whereas many of the on-board
computers had to be custom built. Some of the software innovations
needed on the ground have naturally had greater impact on the
wider world than those made for on-board computers. The techniques
of software development learned by NASA while doing both flight
and support programming have advanced the state of the art of
software engineering, which comprise the management and technical
principles that make it possible to build large, reliable software
systems.
-
- Even though the requirements and solutions
to computing problems in the manned on-board, unmanned on-board,
and ground arenas are different, several common themes bind the
three together. In nearly all cases, NASA managers failed to
adequately allow for system growth, often causing expensive
software and hardware additions to be made to meet scaled-down
objectives. More positively, recent developments are designed to
enable proven computer systems and techniques to fly or support
more than one mission, reducing the costs associated with
customized solutions. Also, there is a continuing reliance on
multiple smaller computers operating in a network as opposed to
large single computers, enabling task distribution and more
economical means of ensuring reliability. This last trend also
underscores the dependence on communications that has
characterized NASA's far-flung flight operations since the
beginning. These themes appear in varying strengths throughout the
stories of the individual projects.
-
- Regardless of NASA's impact on computing,
its many uses of computing technology from 1958 on provide
valuable examples of the growth in power, diversity, and
effectiveness of the applications of computers. The late 1950s
marked the beginning of the computer industry as an indispensable
contributor to American science and business. NASA's insatiable
desire to make the most of what the industry could offer resulted
in many interesting and innovative applications of the
ever-improving technology of computing.

