NASA Office of Logic Design

NASA Office of Logic Design

A scientific study of the problems of digital engineering for space flight systems,
with a view to their practical solution.

4.1 Design Tradeoffs

Conceptual design involves a series of tradeoff decisions among significant parameters - such as operating speeds, memory size, power, and I/O bandwidth - to obtain a compromise design which best meets the performance requirements. Both the uncertainty in these requirements and the important tradeoff factors should be ascertained. Those factors which can be used to evaluate the design tradeoffs (usually on a qualitative basis) include:

Recommended practices for achieving reliability are given in section 4.5. The remainder of these features are discussed below.

Expandability measures the computer system's ability to conveniently accommodate increased requirements by higher speed or by physical expansion, without the cost of a major redesign (ref. 84). The original design of the computer should provide for this type of growth, especially with regard to the memory and I/O sections. The general procedure is to determine all the functions that foreseeably could be demanded of the computer system, such as by reviewing growth problems of past programs, and to establish a range of possible requirements for each of the functions, which may double the present requirement. If possible, the likelihood of these expanded requirements should also be estimated. Modularity is a desirable method for providing expandability and should be incorporated whenever feasible.

Prorgrammability, or the ease of programming the computer, should be considered early in the design. Past experience has shown that a balance between programming simplicity and hardware complexity is essential to prevent the costs of programming from becoming overwhelming. For example, sufficient memory capacity should be provided to accommodate program changes necessitated by increased performance or mission requirements; memory architecture should be designed to facilitate programming; and hard-wired memories should be avoided if many program changes are anticipated, because of the time and cost involved in implementing the changes. Adequate addressing facilities without artificial boundaries and a simple subroutine linkage are recommended. Considerations of programmability should include the efficiency of the source language, of the object code, and of converting from the source language to the object code, and the ease of using the source language and obtaining a completely coded computer program. If the computer is to be programmed in flight, the use of a compiler should be considered. A standard programming language, such as JOVIAL, SPL, or CLASP, is desirable and should be utilized for future applications if available. The degree of software sophistication and the availability of support software should be considered during the design.

Maintainability should not be neglected when designing the computer. Repair should be readily accomplished during ground operation, and if inflight maintenance is desired, this should be specified as a design requirement. Inflight repair or reconfiguration is closely associated with reliability and, as such, the extent of reconfiguration made possible will be dependent upon the reliability required. Malfunctions can often be detected by self-check programs; inflight repair can be effected by automatic switching, or by manual operation on manned missions. The tradeoff should consider the use of a degraded mode of operation. Generally, the recommended prelaunch maintenance procedure is to remove bad components or subsystems from the system and replace them with backup equipment. To facilitate manual maintenance, subassemblies should be pluggable, require a minimum of disassembly for access, and be replaceable without adjustment. The design should provide case of accessibility and should minimize the possibility of damage to other parts during maintenance. If replaced assemblies are to be discarded rather than repaired, maximum cost goals for a replaceable module should be established.

Compatibility should be developed between the computer and its interfaces, software, power levels, and, where necessary, ground computers. Standard interfaces and power levels should be implemented. Interface compatibility reduces the need for data conversion with peripheral equipment and is highly recommended.  Data compatibility between models of a computer family should be provided to simplify the design of peripheral equipment. This consideration is particularly important when computers of different performance and architecture are interconnected. Source and object code compatibility between the spaceborne and ground-based computers is advantageous to facilitate programming.

 Adaptability is defined as the ability of the system to meet a wide range of functional requirements without requiring physical modification. Adaptability is needed when requirements are not well defined or if it is anticipated that the computer will be applied to a variety of missions and/or a number of space vehicles. Although this is similar to the need for growth discussed under "expendability," in this case, potential requirements should be anticipated by providing reserves in memory capacity, computational speed, word length, and I/O capability. Moreover, the design should consider specific features which allow tailoring a basic machine to different situations, such as an adjustable word length through byte organized operations, alterable or unused operation codes, reserved fields within formats, and adjustable speed. Caution must be taken that the increase in computer capabilities is in accordance with other development considerations.

Availability is the probability that the computer is operating satisfactorily at a given time. It is closely related to reliability and repair time and should be considered in establishing reliability requirements. Since it takes into account the time required for malfunction detection and reconfiguration or repair, availability is particularly important during time-critical mission phases.

Development Status and Cost are complex management-related factors which can have significant effects on the design. They require the estimation of a number of items such as the extent of off-the-shelf hardware use, design risks in developing new equipment using advanced technologies, potential progress in the state of the art during the design and development of the computer, etc. In estimating cost, the manager should consider the total long-range expenditures as well as initial outlays, and also the cost of potential delays in developing advanced techniques, etc.

In addition to the above qualitative factors, tradeoffs should be determined on the basis of specified quantitative factors, such as precision, speed, capacity, weight, volume, and power.

Home - NASA Office of Logic Design
Last Revised: February 03, 2010
Digital Engineering Institute
Web Grunt: Richard Katz