-
Computers in Spaceflight: The NASA
Experience
-
- - Chapter Five -
- - From Sequencers to Computers:
Exploring the Moon and the Inner Planets -
-
- Programmable sequencers:
Mariners to Mars, Venus and Mercury
-
-
-
- [144] Mariner Mars
1969 carried a 26-pound, programmable Central Computer and
Sequencer designed by Herman and his team at JPL and built by
Motorola15. The machine originated in studies done in
l964-1965 for a Mars orbiter and lander called "Voyager" and
Mariner Mars 1966, neither of which flew16. The major difference between the fixed sequencers
and the programmable sequencer is that it had a memory of 128
words that could be altered in flight. Although this device had
far greater flexibility and capabilities than the fixed
sequencers, one of the older sequencers traveled on the spacecraft
as a backup. During critical maneuvers, the two sequencers would
run in parallel, a disagreement causing an abort of the maneuver.
The Sequencer commanded all spacecraft systems, including the
Attitude and Pointing System and Flight Data System, each of which
evolved to include their own computers by the time JPL designed
the outer planets Voyager in the 1970s.
-
- [145] Original
requirements for Mariner Mars 1969 called for 20 words of memory,
making the 128-word version more than enough. Yet the memory was
quickly exceeded, necessitating the use of "creative" programming
techniques for the duration of the mission. Fortunately, the
Sequencer was reprogrammable in flight. Memory locations used for
terminated mission phases could be given to tasks scheduled for
later. Edward Greenberg of JPL, who did most of the programming,
replaced the launch and mid-course burn routines with new code
after they had been executed17.
-
- Despite the autonomy and flexibility
gained by using the programmable Central Computer and Sequencer,
the two Mariner Mars 1969 missions were the "most commanded" to
that date. Mariner VI received 946 radio commands, Mariner VII got
957; either number exceeded the total number of commands sent to
all the three previous successful missions
combined18. One of the reasons for this was the memory
restrictions; another could be that the engineers on the project
downplayed the full capabilities of the Sequencer, not realizing
what was possible19. However, the full capabilities of the device were
more than exercised on the last Mariner missions.
-
- Box 5-1: Programmable Central Computer and
Sequencer Architecture and Software
-
- The new Central Computer and Sequencer had
no accumulator or central registers common to standard computers.
Each memory location could be used as a register, and all
operations began at a location, acted on the contents of another
location, and ended in a third memory location20. Memory consisted of 22-bit words stored in
magnetic core, with destructive serial readout21. Three types of words could be stored. An
instruction word used the first 4 bits for one of the 16 operation
codes, the next 9 for the address of the memory location to be
acted on, and the last 9 for the address of where to go
afterward22. Instruction DHJ meant "decrement hours and jump,"
so the computer would subtract one from the time portion of the
event word stored in the location specified by the first address
in the instruction and then jump to the location specified by the
second address. An event word contained a 13-bit time, scaled to
hours, minutes, or seconds, and a 9-bit address of where to go to
start the event being timed when the time part
zeroed23. For instance, if the event word was timing the
mid-course correction burn, when the time portion reached zero, a
branch would occur to the specified address, the first address of
the mid-course maneuver subroutine. The last type of word was a
data word, containing 22 bits of data.
-
- [146] An instruction
set of 16 operation codes contained mostly counting-type
instructions: five scaled decrementing instructions (countdown
hours, minutes, seconds, variables), and an incrementing
instruction (count and jump). There was an ADD and a SUBtract,
each requiring 27 milliseconds of machine time, by far the slowest
instructions. Programmers used those very rarely, as the other
instructions were better suited to sequencing. Subtraction was in
one's complement form.
-
- The sequencer executed the software by
making a scan of the first seven instructions each
hour24. Those instructions constituted the entire
executive! They contained sufficient decrement and branching
instructions to check if anything needed to be done during that
hour of flight. As an example, the exec might contain a counter
that kept track of the time to an imaging session. The resulting
routine might look like this:25
-
- 1. Count 123 hours from start.
-
- 2. Count 45 minutes.
-
- 3. Activate camera and start frame
count.
-
- 4. At 29th frame, start sending
images.
-
- 5. At 32nd frame, rotate filter wheel
to blue.
-
- 6. At 93rd frame, stop scan and stow
platform.
-
- 7. Resume cruise mode counting.
-
- After resuming cruise mode, the spacecraft
clock would activate a scan at hour intervals again. Mission
control could interrupt a scan, or a quiet time, and cause a jump
to a specified subroutine26. (The entire Mariner Mars 1969 flight program is
reproduced in Appendix IV.)
-
- A memory location could be changed by
issuing two consecutive commands from earth stations. JPL called
these commands CC-1 and CC-2. CC-1 sent the address and the least
significant 7 bits of the new word, and it caused an interrupt in
the receiving Sequencer. CC-2 relayed the most significant 15 bits
and released the scan inhibit27. A related command, CC-3, caused the Central
Computer and Sequencer to read out the contents of a specified
memory location, l bit per second28. Input was even slower, requiring an average of 2
minutes per word, compared with a ground-loading time of all 128
words in less than a minute29.

