- 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.
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
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
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
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,