Embedded Computing Systems


CMPE Degree: This course is Elective for the CMPE degree.

EE Degree: This course is Elective for the EE degree.

Lab Hours: 0 supervised lab hours and 3 unsupervised lab hours.

Technical Interest Group(s) / Course Type(s): VLSI Systems and Digital Design

Course Coordinator:

Prerequisites: ECE 3056 [min C]

Corequisites: None.

Catalog Description

Algorithms and methodologies for the design of real-time, low-power embedded computing systems.

Course Outcomes

  1. design and implement embedded computing systems, including software and hardware.
  2. develop verification/validation evaluation methods for these hardware and software components and analyze and interpret the resulting data.
  3. write laboratory reports and documentation conforming to technical writing standards, including widely used methodologies for design documentation.
  4. analyze the execution time of small sections of assembly language code.
  5. analyze and estimate the worst-case execution time of a program.
  6. analyze and estimate the worst-case power consumption of a program.
  7. describe CPU mechanisms that support context switching.
  8. describe the steps required to switch contexts in a CPU.
  9. compute the CPU utilization of a set of tasks.
  10. analyze the schedulability of a set of tasks using rate monotonic scheduling.
  11. design and implement software that performs a real-time task.
  12. describe an embedded computing system design using UML.
  13. decompose a set of requirements for an embedded computing system into a set of tasks.

Student Outcomes

In the parentheses for each Student Outcome:
"P" for primary indicates the outcome is a major focus of the entire course.
“M” for moderate indicates the outcome is the focus of at least one component of the course, but not majority of course material.
“LN” for “little to none” indicates that the course does not contribute significantly to this outcome.

1. ( P ) An ability to identify, formulate, and solve complex engineering problems by applying principles of engineering, science, and mathematics

2. ( LN ) An ability to apply engineering design to produce solutions that meet specified needs with consideration of public health, safety, and welfare, as well as global, cultural, social, environmental, and economic factors

3. ( LN ) An ability to communicate effectively with a range of audiences

4. ( LN ) An ability to recognize ethical and professional responsibilities in engineering situations and make informed judgments, which must consider the impact of engineering solutions in global, economic, environmental, and societal contexts

5. ( LN ) An ability to function effectively on a team whose members together provide leadership, create a collaborative and inclusive environment, establish goals, plan tasks, and meet objectives

6. ( P ) An ability to develop and conduct appropriate experimentation, analyze and interpret data, and use engineering judgment to draw conclusions

7. ( LN ) An ability to acquire and apply new knowledge as needed, using appropriate learning strategies.

Strategic Performance Indicators (SPIs)

Not Applicable

Course Objectives

  1. learn software performance analysis and optimization including worst-case execution time. [a, c]
  2. perform real-time scheduling. [a]
  3. learn design methodologies for embedded computing systems. [c, k]
  4. design, analyze, simulate, implement, and evaluate embedded hardware and software. [c, k]
  5. use engineering techniques, skills, and tools, including software-based methods for analysis and synthesis of software and hardware [k]
  6. develop basic skills in writing laboratory reports and other documentation as part of a design methodology, including design reviews. [g]

Topical Outline

* Challenges in embedded computing: real-time, low power.
* Comparative computer organization and instruction sets.
* Hardware and software for I/O.
* Instruction-level performance analysis under the influence of pipelines, caches, and memory management.
* Embedded computing platforms.
* Models for computer programs.
* Path-based performance analysis and optimization, worst-case execution time, average case analysis.
* Software power analysis and optimization.
* Processes and tasks.
* Operating system structures for context switching.
* Task graph models and CPU utilization.
* Rate-monotonic and earliest deadline first scheduling.
* Embedded multiprocessors.
* Applications: automotive, multimedia, etc.