http://oai.dtic.mil/oai/oai?verb=getRecord&metadataPrefix=html&identifier=ADA040770 Accession Number : ADA040770 Title : Viking Software Data Descriptive Note : Final technical rept. 24 May 1976-23 May 1977 Corporate Author : MARTIN MARIETTA AEROSPACE DENVER CO Personal Author(s) : Prentiss, Jr, Nelson H. Handle / proxy Url : http://handle.dtic.mil/100.2/ADA040770 Check NTIS Availability... Report Date : MAY 1977 Pagination or Media Count : 300 Abstract : This report describes the approach used by Martin Marietta Corporation to develop the Flight, Test and Mission Operations Software Systems that were used to support scientific investigations on the surface of Mars by two Viking Landers in 1976. Overviews of each of the three software systems are included, together with descriptions of a number of techniques used to develop them. The report stresses problems encountered and their solutions and indicates the major lessons learned. Descriptors : *MARS PROBES, *COMPUTER PROGRAMS, HIGH LEVEL LANGUAGES, EXECUTIVE ROUTINES, DATA MANAGEMENT, SURFACE ANALYSIS, COMPUTER PROGRAMMING Subject Categories : COMPUTER PROGRAMMING AND SOFTWARE UNMANNED SPACECRAFT Distribution Statement : APPROVED FOR PUBLIC RELEASE -------------------------------- notes: P44 "History; intially a FORTRAN Interpretive Computer Simulation (ICS) was considered to operationally simulate the Viking Lander Flight Program. An ICS was avaiable to the Viking project that could be used for this purpose. Analysis indicated that thirty hours of computer time would be required to simulate one landed days' activities. Modifications to the ICS scheme culd be made to reduce the computer run time to an estimated three to five hours." "The source code instruction translation process could be automated by subprograms called Instruction Translation Macros, one for each of the Flight Computer instruction set. The Flight program would be translated into source code which, when assembled into object code and exectuted on the IBM [360/75] machine, exactly would simulate the Guidance, Control and Sequencing Computer (GCSC) procesing of the original Flight program. P. 288 "Signifigant and safe changes to landed operations were available to the Viking Flight team, who uplinked 60000 words of code controlling data modifications to each of the Viking landers". P. 289 "In all probability, the bit manipulating Vikand Lander decalibration and decommutation program would have been better deigned, smaller and more efficient if the original requirment had been to write it in assembly language rather than FORTRAN". p 110 "coded and debugged in the IC-7000 emulator"..."flight code had to be created post facto using the IBM 370 assembler...(see section 3.3)..." p111 "The IC-7000 comptuer was divided into two sections. Each section was controlled by a seperate programmable CPU. One CPU was microprogrammed to provide an emuation of the instructin set of the GCSC. The second CPU as microprogrammed to provide a seperate and distinct control instruction set that was used to to provide analysis, monitor and trace functions, and to simulate the discrete, interrupt and I/o register hardware of the GCSC. P 112 "The Viking Lander Proof Test Capsule (PTC) was built as a third Viking Lander to support integrated system testing. It was similar in every respect to the two Viking Landers that were sent to Mars. An analog-digital Hybrid computer system was developed to simulate the Viking Lander descent through the Martian atmosphere to touchdown on the planet.".. P 117 "the microprogrammable computer chosen ws a Standard Comp;uter Corporation IC-7000. It consits of two processors both of which are microprogrammable." P 120 "GCSC REAL TIME EMULATION - The general characteristics of the GCSC are: 24 bit word 47 instructions some of which have several subsets 2's complement arithmetic 8 level priority interrupt system 10 I/0 registers 18 K memory 2 K protected memory area 3 soft index registers multi level indirect addressing some error detection logic Sleep mode capability Programmable Timer" (a) Index Registers - 3 soft index registers were utilized in the GCSC whereas the micro computer has several hardware index registers allowing indexing to be done as part of the instruction fetch with no additional time penalty. p 121-22: "Consider the differences between the two machines. I/O in the micro computer is handled through the Input/Output Processor which is linked to the CPU via common memory and through interrupts. That is, either processor may interrupt the other at the micro level. Interrupt interpretation and data transfers are mechanized through memory interrogation. Both processors have access to CPU control core. P 126: "In respect to the microprogramming effort per se, many difficulties were centered around a lack of control store. Both IOP and CPU control store consisted of 2048 18 bit words. The real time emulation was a constant process of fitting in system or CCSC design changes without exceeding core or execution time limitations. IOP control core was completely consumed via emulaLion of the IOF language. The final version of TRACE (Fast Trace) also consumed the entire CPU control core." P130: "The Viking Lander Computer (GCSC) is a general purpose digital computer with relatively small and conventional instruction set (27 Op codes with sub codes for I/O). The I/0 is a special design that provides for serial data paths to lander subsystei, and accommodates several levels of interrupt...The EXEC program provided the necessary management of computer facilities so that tasks could be active concurrently w liaut concern for one another." http://history.nasa.gov/computers/Ch5-6.html Computers in Spaceflight: The NASA Experience - Chapter Five - - From Sequencers to Computers: Exploring the Moon and the Inner Planets - Viking computer systems "Viking Orbiter CCS - In general, the design of the processor was exceedingly simple, yet fairly powerful, as indicated by the use of direct addressing, a minimal set of registers, and a reasonably rich set of 64 instructions. The key is that the design placed relatively light demands on spacecraft resources while replacing both the programmable sequencer and the command decoder used in the Mariners. The fact that the processor was later adopted by the Voyager project as its Command Computer and modified for use as the attitude control computer is not only a statement of JPL's frugality but also a testament to the versatility of the design." " Orbiter CCS Hardware - The Command Computer's central processor contained the registers, data path control and instruction interpreter [76]. The machine was serial in operation, thus reducing complexity, weight, and power requirements. It had 18-bit words and used the least significant 6 bits for operation codes and the most significant 12 for addresses, as numbered from right to left. This permitted 64 instructions and 4K of direct addressing, both of which were fully utilized. Data were stored in signed two's complement form, yielding an integer range from -131,072 to +131,071. Average instruction cycle time came to 88 microseconds. Thirteen registers were in the Command Computer, mostly obvious types such as an 18-bit accumulator, 12-bit program counter, 12-bit link register that pointed to the next address to be read, and a 4-bit condition code register that stored the overflow, minus, odd parity, and nonzero flags [77]. " 76. R.A. Proud et al., Viking 75 Orbiter Computer Command Subsystem Flight Software Design Description, 612-28 (DRL Line Item No. N4-SE24), Vol. 1, Pasadena, CA Jet Propulsion Lab, November 20, 1974, pp. A.1.21-22; Kohl, Functional Requirement Viking Orbiter 1975 Flight Equipment Computer Command Subsystem Software, p. 30. 77. Kohl, Functional Requirement Viking Orbiter 1975 Flight Equipment Computer Command Subsystem Hardware, p. 13. "Therefore, the computer that flew on Viking was actually the "third best" of those available, its chief deficiency being a poor instruction set, but it weighed less than the first choice. " reference 100. 100 - 100. Martin-Marietta Corp., Viking Software Data, Rome Air Development Center, TR-77-168, p. 107. "Viking Lander Computer Characteristics- The GCSC consisted of two Honeywell HDC 402 processors, each with 18K of 2-mil plated-wire memory. These processors had the capability of eight levels of interrupt and an average 4.34-microsecond instruction cycle time [106] Original plans for the Viking Lander specified a single computer for the landing phase and another for on-surface operations, but when the project was delayed this changed to a dual redundant system similar to the Orbiter CCS [107]. Honeywell's computer had a 24-bit word size, with 47 instructions, and used two's complement representation for data. Compared to the NSSC-1 and Viking Orbiter computer, it is slightly faster than the former and much faster than the latter, with better numerical precision than both." 106. Martin-Marietta Corp., p. 111. 107. Martin-Marietta Corp., p. 114. 108. Martin-Marietta Corp., pp. 150,154. ------------------------ pub-lib.jpl.nasa.gov lists archive of Viking Orbiter documents at JPL Archives on August 15, 1991 http://specialcollections.wichita.edu/Collections/ms/87-08/87-8-A.HTML has another copy of Viking Orbiter documents.