2.2.3 Input/Output Features
Input/output (I/O) features of spaceborne computers are extremely important since these machines act as real-time control elements. Due partly to the nondigital nature of such electromechanical machines as inertial measurement units and rocket steering servos, and partly to the strong desire to minimize interface circuits and cables, spaceborne computers spend a substantial amount of their time (or equipment) budgets on maintaining communication with these units. Furthermore, the central processor is usually time shared among several real-time jobs, and delays in responding to I/O requests often must be limited to fractions of a second.
(1) Channels and Interrupts
Several basic techniques exist for introducing input data into the computer and delivering output data from it. Program interrupts are useful for handling input data which might be lost if immediate servicing is not performed, or for requesting an immediate response from the computer. The interrupts are generally forcing, so that the program services the request upon demand. A priority schedule is required when simultaneous interrupts are possible on two or more channels. Interrupts from input data are most commonly used to interface asynchronous peripheral equipment and to notify the computer of the occurrence of external events such as operator console actions, ground-initiated communication signals, and certain sensor outputs, such as from alarm devices. Interrupts of various types share one important drawback; they cause discontinuities in instruction and data flow at times determined by external events. It, therefore, becomes necessary to make programs immune to such discontinuities and, equally important and perhaps more difficult, to verify this immunity for any possible event timing.
For most data, however, forced interrupts are undesirable although their use sometimes results in simplification of programming. Information which does not require immediate servicing, such as guidance and navigation data, is commonly accepted from and delivered to fixed buffer registers. An I/O buffer for storage of data which can be serviced during normal program operation is often very useful, particularly during mission phases wherein the computation load is high and servicing of the forced interrupts is of primary concern. The buffered nonobligatory interrupt feature sometimes increases efficiency in program operation since nonforcing data can be processed when convenient and at a rate suitable to the task being performed.
Another feature which can save program time consists of "cycle-stealing," wherein data is loaded directly into a specified part of the memory, without any program interruption. This characteristic facilitates program organization and efficiency and is of particular value in large systems.
Depending upon their urgency and the computer facility, discrete signals - including data from consoles, communication links, overload relays, and other on-off sensor devices - can be accommodated by forced interrupts, loaded into buffers or introduced directly into the memory by cycle stealing. In the past, discrete signals have generally been handled with program subroutines which store and read individual bits within words. However, bit manipulation instructions have been incorporated in some developmental computers to facilitate discrete signal handling.
The interface provides the means for transfer of data between the computer and all peripheral devices, including whatever signal conversion is required. Typical functions are analog-to-digital (A/D) and digital-to-analog (D/A) conversion, I/O buffering, multiplexing, and signal level shifting. In some cases, input data are not in the conventional fractional binary system, and must be converted before they can be used. For example, incremental inputs must be scaled before operations can be performed. When additional conversion is required, it may be performed either by program subroutines or by external circuitry - the choice depending upon the frequency and complexity of the operation and the amount of hardware required.
The interface between a spaceborne computer and its associated I/O subsystems is a critical item which has a substantial effect on the overall design. Frequently, the interface conversion units, multiplexers, and data buffers occupy as much volume and consume as much power as the remainder of the digital computer system (ref. 54). To date, interfaces tend to be of a custom design and are generally quite complicated. The launch vehicle data adapter (LVDA), which serves as the interface for the Saturn 5-LVDC, transforms input and output signals, controls data flow, performs some simple computational and logical operations on data, and provides temporary storage of data (ref. 25). Packaged separately from the LVDC, the LVDA is almost twice as large, weighs nearly three times as much, and consumes more than twice as much power.
Because of the varied types of I/O devices which are used with spaceborne computers, interfaces have presented a recurring problem in design and systems integration. Experience in past designs has underlined the importance of (1) coordination between the manufacturers of sensor devices, communication links, consoles, A/D converters and the computer itself, and (2) early and clear specification of the interfaces between the computer and its auxiliary devices. An awareness of this problem of compatibility of the interfaces between subsystems, and concern for its resolution, may eventually lead to the establishment of standardized I/O requirements for spaceborne computers (ref. 53). Development of the common data bus concept is expected to hasten the introduction of a truly standardized interface.
Home - NASA
Office of Logic Design
Last Revised: February 03, 2010
Digital Engineering Institute
Web Grunt: Richard Katz