Embedded Computing Systems
(3-0-3-4)
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 Groups / Course Categories: VLSI Systems and Digital Design
Course Coordinator:
Prerequisites: ECE 3056 [min C]
Catalog Description
Algorithms and methodologies for the design of real-time, low-power embedded computing systems.Course Outcomes
- design and implement embedded computing systems, including software and hardware.
- develop verification/validation evaluation methods for these hardware and software components and analyze and interpret the resulting data.
- write laboratory reports and documentation conforming to technical writing standards, including widely used methodologies for design documentation.
- analyze the execution time of small sections of assembly language code.
- analyze and estimate the worst-case execution time of a program.
- analyze and estimate the worst-case power consumption of a program.
- describe CPU mechanisms that support context switching.
- describe the steps required to switch contexts in a CPU.
- compute the CPU utilization of a set of tasks.
- analyze the schedulability of a set of tasks using rate monotonic scheduling.
- design and implement software that performs a real-time task.
- describe an embedded computing system design using UML.
- decompose a set of requirements for an embedded computing system into a set of tasks.
Strategic Performance Indicators (SPIs)
Not Applicable
Topic List
* 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.