MECH 372 / ENGR 372
Space Systems Design and Engineering II
Assignment #8 - Flight Processing Solutions
Objective: The purpose of this assignment is to ensure that you have grasped key qualitative (and some very minor quantitative) aspects of the lecture topics involving flight processing and software engineering. 
NOTE: There is no solution summary sheet for this assignment.


Flight Processing

1. What are the typical design resource/metric constraints for embedded computers/controllers?

cost, size, mass, power, reliability

2. List 3 functions that are typically executed by flight computers running software.

Anything like command processing, command execution, error handling, telemetry processing, data acquisition, storage, calibration, summarization, planning, resource allocation, scheduling, anomaly/fault management, payload data analysis, and so on...

3. Briefly explain how most CPUs use a Fetch-Decode-Execute process to execute a software program.  While doing this, describe what role the "op-code" plays in this process.

The program is stored in memory, so a Fetch process is used to get the next instruction from memory and load it in a CPU register.  Then, a Decode process interprets the instruction, which typically includes an op-code that specifies the operation to occur as well as a variable that will be processed.  Finally, an Execute process performs the appropriate task (like adding a number via the ALU).

4. Describe why it is a challenge for flight computers to do many things at once.  In addition, discuss 3 different approaches for addressing this challenge.

Software is executed serially, so only 1 thing can be done at a time.  This can be addressed through the use of interrupts, multi-tasking, parallel or distributed processors, taking functionality off-chip with support circuits, etc.

5. What are the 3 primary elements/components of a computer/controller?

processor, memory, i/o

6. Why are older computer systems (e.g., a generation or two older than what you might have for a laptop or desktop computer) often used for flight processors?

They are often the computers with flight heritage and a proven track record.  There is also the issue that newer computers tend to be more miniaturized, which is a challenge given radiation, and so it takes a longer time to deal with these issues.

7. What software language is currently used more than any other for the development of flight software?


8.  Consider a functional task that can be performed by programming your flight computer.  The software engineer knows how to do it, the computer is fast enough to do it, there's enough memory, you have the necessary i/o pins, and so on.  Would there be any reason why you should NOT perform the function via your flight computer's software?

Yes.  The issue isn't whether a single task can be done, but rather is that the best choice when ALL of the tasks are considered.  It may be far better to move this specific task to a support chip/circuit.  It all depends.  So yes, there could be a reason.

9. As presented by our guest speaker Leyna Zimdars, what are the three basic tenants of software engineering?

People, process, tools

10. As presented by our guest speaker Leyna Zimdars, what are a few of the reasons why developing software is so difficult?

Stakeholders are moving targets, computers change so rapidly, need to collaborate among many different people w/different agendas, etc.