A brief historical overview 1
Although man-made satellites started to exists in the 50s, with the launch of the Sputnik satellite in 4 October 1957, by the Soviet Union, primitive satellites where controlled purely by analogue electronic circuitry.
Gemini Digital Computer
It was not until the 1960s that the Gemini spacecraft became equipped with the first digital computer flown in space. Missions to the Moon required far more advanced systems, including environmental control and life support systems, trajectory control, lunar landing capabilities, and safe return to Earth. These requirements made it impossible to rely solely on ground control, driving the need for autonomous onboard computing and marking a major milestone in the evolution of flight software.
The Gemini Digital Computer, developed by IBM in the 1960s, was the only computer onboard the Gemini spacecraft. It consumed approximately 100 W of power and weighed about 27 kg. The processor was based on discrete transistors and used 39-bit instructions operating at a clock frequency of 7 kHz, with a cycle time of 140 μs. The system included 4096 words of 39-bit RAM, equivalent to approximately 20 kB of memory.
The software was written in assembly language due to the system’s limited performance and memory capacity. It was structured into separate modules corresponding to different mission phases, including launch, rendezvous, docking, and reentry. Each module had to be loaded into memory individually depending on the current phase of the mission.
Apollo Program
During the 1960s, the Apollo program introduced a major advancement in onboard computing. Both the Lunar Module and the Command Module were equipped with dedicated digital computers developed by the MIT Instrumentation Laboratory, based on the earlier Gemini Digital Computer. The processor operated at a clock frequency of 1 MHz and included 2048 words of 16-bit RAM and 36 kWords of 16-bit ROM.
The software was written entirely in assembly language. It included a real-time multitasking sublayer, similar to a basic operating system, capable of supporting up to eight concurrent processes using fixed time slices for task scheduling.
Interesting fact
During the first lunar landing of the Lunar Module, the fixed time slices and computational limitations caused cyclical crashes of some processes, so control had to be switched to manual by Neil Armstrong.
Since then, software verification has been the main challenge!
Mariner 10
In 1974 the Mariner 10 was launched as an interplanetary probe with a fly-by mission to study and photograph Venus and Mercury. Its control system used a “Digital Command Sequencer,” in which command sequences were stored in binary format and executed remotely from Earth through radio signals.
Wait 600s, then turn 10 deg around pitch axis.
Scientific data was stored using analog storage. In other words, photographs were recorded on magnetic tape and transmitted as television signals.
Voyager 1 & 2
In the 1970s, the Voyager 1 and Voyager 2 were launched as interplanetary probes to study the outer planets of the Solar System, including Jupiter, Saturn, Uranus, and Neptune.
They featured three redundant computers responsible for communications and attitude determination and control, as well as an additional computer dedicated to payload data processing, such as imaging. The spacecraft also included mechanical shielding against radiation using tantalum and titanium.
The software was written in assembly language and supported in-orbit updates, which were performed multiple times during the mission to optimize performance and fix errors.
Interesting fact
Still partially operational, Voyager 1 is the most distant human-made object from Earth.
Space Shuttle
In the 1980s, the Space Shuttle used the Shuttle Data Processing System, consisting of four redundant computers running the same software and using a voting system to detect and isolate errors. It was built around the IBM AP-101 processor, a radiation-hardened 32-bit system with 424 kB of RAM in its initial version.
To avoid assembly programming, a custom high-level language was developed for this system: HAL/S (“High-Level Assembler Language/Shuttle”).
Galileo
In the 1980s, the Galileo spacecraft was an interplanetary probe designed for the exploration of Jupiter and its moons.
It featured a distributed computing architecture. The Command and Data System was triply redundant and used the RCA 1802 microprocessor, the first commercially available radiation-hardened microprocessor. The Attitude and Articulation Control System was dual-redundant and based on the AMD 2900 series. Additional dedicated computers were used for camera and imaging operations.
The onboard software was written in HAL/S.
MIL-STD-1750 Era
During the 1980s and 1990s, many space systems adopted the MIL-STD standards developed by the U.S. Department of Defense. These standards were designed to ensure higher reliability levels than typical commercial systems.
The MIL-STD-1750 was a 16-bit microprocessor architecture used in military flight computers and later widely adopted in the space sector, including missions such as Cassini, Mars and Venus Express, Rosetta, and others.
A variety of compilers were available for this architecture, including C, Fortran, Jovial, and Ada.
RISC
From the 2000s to the present day, RISC (Reduced Instruction Set Computer) architectures have become widely used in space systems. The idea behind RISC is a highly compact instruction set, enabling shorter instruction execution times and relatively high clock frequencies. Because these chips are simpler and contain fewer transistors, they also tend to be less sensitive to radiation-induced errors, and several radiation-hardened implementations have been developed.
A notable example is the RAD6000 developed by BAE Systems, used in numerous NASA missions such as Pathfinder, the Mars Polar Lander, the Spirit and Opportunity rovers, and the Spitzer Space Telescope.
Another example is the ERC32 by Temic (nowadays Microchip), which has been used in many ESA, DLR, and CNES missions, including CryoSat-1 and CryoSat-2, GOCE, SWARM, TerraSAR-X, and TanDEM-X.
The LEON processor family, also developed by ESA, is another widely used space-grade RISC architecture, deployed in a broad range of modern spacecraft and satellites.
-
Jens Eickhoff. Onboard Computers, Onboard Software and Satellite Operations: An Introduction. Springer Aerospace Technology. Springer Berlin Heidelberg, 2012. URL: https://doi.org/10.1007/978-3-642-25170-2. ↩