ECE Course Outline
Embedded Computing Systems (3-3-4)
- ECE 3056 [min C]
- Catalog Description
- Algorithms and methodologies for the design of real-time, low-power embedded computing systems.
- M. Wolf, Computers as Components: Principles of Embedded Computing System Design (3rd edition), Morgan Kaufmann, 2012. ISBN 0123884365, ISBN 978-0123884367 (required)
- Course Objectives - As part of this course, students:
- learn software performance analysis and optimization including worst-case execution time. [a, c]
- perform real-time scheduling. [a]
- learn design methodologies for embedded computing systems. [c, k]
- design, analyze, simulate, implement, and evaluate embedded hardware and software. [c, k]
- use engineering techniques, skills, and tools, including software-based methods for analysis and synthesis of software and hardware [k]
- develop basic skills in writing laboratory reports and other documentation as part of a design methodology, including design reviews. [g]
- Course Outcomes - Upon successful completion of this course, students should be able to:
- 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.
- 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.