Viewing: ECE 460 / ECE 560 : Embedded System Architectures

Last approved: Thu, 11 Oct 2018 08:00:18 GMT

Last edit: Tue, 09 Oct 2018 12:18:49 GMT

Changes proposed by: jtuck

Formerly Known As: undefined 460


Change Type
Major
ECE (Electrical and Computer Engineering)
460
004468
Dual-Level Course
Yes
560
Cross-listed Course
No
Embedded System Architectures
Embedded Sys Architectures
College of Engineering
Electrical & Computer Engineering (14ECE)
14.1001
Electrical and Electronics Engineering
Term Offering
Fall Only
Offered Every Year
Fall 2018
Previously taught as Special Topics?
Yes
1
 
Course Prefix/NumberSemester/Term OfferedEnrollment
ECE492-039Fall 201629
Course Delivery
Face-to-Face (On Campus)

Grading Method
Graded with S/U option
3
16
Contact Hours
(Per Week)
Component TypeContact Hours
Lecture3
Course Attribute(s)


If your course includes any of the following competencies, check all that apply.
University Competencies

Course Is Repeatable for Credit
No
 
 
Alexander Dean
Associate Professor
full

Open when course_delivery = campus OR course_delivery = blended OR course_delivery = flip
Enrollment ComponentPer SemesterPer SectionMultiple Sections?Comments
Lecture6060NoN/A
Open when course_delivery = distance OR course_delivery = online OR course_delivery = remote
Prerequisite: C- or better in ECE 306

Is the course required or an elective for a Curriculum?
Yes
SIS Program CodeProgram TitleRequired or Elective?
14CPEBSComputer EngineeringElective
14EEBSElectrical EngineeringElective
Concepts of architectures for embedded computing systems. Emphasis on hands-on implementation. CPU scheduling approaches to support multithreaded programs, including interrupts, cooperative schedulers, state machines, and preemptive scheduler (real-time kernel). Communication and synchronization between threads. Basic real-time analysis. Using hardware peripherals to replace software. Architectures and design patterns for digital control, streaming data, message parsing, user interfaces, low power, low energy, and dependability. Software engineering concepts for embedded systems. Students may not receive credit for both ECE 460 and ECE 560.

This is a new course. We are just re-using the 460 number which is associated with an old course that was removed from the curriculum.


ECE 460/560 will be a pre-requisite for ECE 461/561.  This course focuses on architecture of embedded systems (components, organization, key principles) while 461/561 focuses on how to optimize an embedded system.


No

Is this a GEP Course?
No
GEP Categories

Humanities Open when gep_category = HUM
Each course in the Humanities category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Mathematical Sciences Open when gep_category = MATH
Each course in the Mathematial Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

Natural Sciences Open when gep_category = NATSCI
Each course in the Natural Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

Social Sciences Open when gep_category = SOCSCI
Each course in the Social Sciences category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Interdisciplinary Perspectives Open when gep_category = INTERDISC
Each course in the Interdisciplinary Perspectives category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Visual & Performing Arts Open when gep_category = VPA
Each course in the Visual and Performing Arts category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
 

 
 

Health and Exercise Studies Open when gep_category = HES
Each course in the Health and Exercise Studies category of the General Education Program will provide instruction and guidance that help students to:
 
 

 
 

 
 

 
 

 
&
 

 
 

 
 

 
 

Global Knowledge Open when gep_category = GLOBAL
Each course in the Global Knowledge category of the General Education Program will provide instruction and guidance that help students to achieve objective #1 plus at least one of objectives 2, 3, and 4:
 
 

 
 

 
Please complete at least 1 of the following student objectives.
 

 
 

 
 

 
 

 
 

 
 

US Diversity Open when gep_category = USDIV
Each course in the US Diversity category of the General Education Program will provide instruction and guidance that help students to achieve at least 2 of the following objectives:
Please complete at least 2 of the following student objectives.
 
 

 
 

 
 

 
 

 
 

 
 

 
 

 
 

Requisites and Scheduling
 
a. If seats are restricted, describe the restrictions being applied.
 

 
b. Is this restriction listed in the course catalog description for the course?
 

 
List all course pre-requisites, co-requisites, and restrictive statements (ex: Jr standing; Chemistry majors only). If none, state none.
 

 
List any discipline specific background or skills that a student is expected to have prior to taking this course. If none, state none. (ex: ability to analyze historical text; prepare a lesson plan)
 

Additional Information
Complete the following 3 questions or attach a syllabus that includes this information. If a 400-level or dual level course, a syllabus is required.
 
Title and author of any required text or publications.
 

 
Major topics to be covered and required readings including laboratory and studio topics.
 

 
List any required field trips, out of class activities, and/or guest speakers.
 

No additional resources needed, will be covered by A. Dean as part of regular teaching load.

This course covers the fundamental architectural principles of embedded computer systems design and teaches students to explain, identify and apply those principles. There is an emphasis on hands-on implementation.  This course focuses on architecture whereas ECE 461/561 focuses on optimization techniques to make the system faster, use less resources, more power efficient, etc.  ECE 460/560 is a pre-requisite for ECE 461/561.


Topics covered include CPU scheduling approaches to support multithreaded programs, including interrupts, cooperative schedulers, state machines, and preemptive scheduler (real-time kernel). Communication and synchronization between threads. Basic real-time analysis. Using hardware peripherals to replace software. Architectures and design patterns for digital control, streaming data, message parsing, user interfaces, low power, low energy, and dependability. Software engineering concepts for embedded systems. Students must purchase microcontroller evaluation board and components. Students are required to have a logic analyzer and digital multimeter.


Students are required to have a logic analyzer and digital multimeter.


Student Learning Outcomes

By the end of this course, ECE 460 and 560 students are expected to be able to:



  • Describe and compare different development cycles for embedded systems, including waterfall, V-model, spiral and agile. Describe and apply modern embedded software engineering best practices (especially design before coding). 

  • Create and evaluate representations of program structures (control-flow graphs/flow charts, function call graphs, data structures), hardware structures (block diagrams, schematics) and interactions between components (sequence diagrams, communication diagrams).

  • Use a logic analyzer to view activities in a multitasking system and correlate them with program code. Use a protocol analyzer to evaluate activities on serial communication links (e.g. asynchronous, SPI, I2C).

  • Describe and analyze embedded processor task scheduling approaches, considering the impact of dynamic scheduling, prioritization, preemption and interrupts. Recognize trade-offs between polling and event-driven approaches.

  • Design multithreaded systems with cooperative or preemptive thread scheduling.

  • Explain and apply methods to meet response time requirements for a non-preemptive tasking system. Apply code transformations to implement tasks as finite state machines. Separate work between ISRs and mainline code and exchange data with buffers or handshaking.

  • Derive and use a periodic task model to evaluate real-time computing workloads on preemptive systems. Derive period, worst-case execution time and deadline per task. Calculate processor utilization fraction. Apply utilization bound tests to determine schedulability.

  • Calculate worst-case response time bounds for preemptive real-time systems.

  • Explain and apply methods to meet response time requirements for a preemptive system through task priority assignment methods.

  • Identify and explain key real-time operating system features. Recognize and describe the problem of memory fragmentation, explain how pool-based dynamic memory allocation solves it. Analyze thread to estimate maximum stack space required through analytical and experimental techniques.

  • Design and analyze an embedded system. Identify thread communication and synchronization behavior. Explain disadvantages of global variables for these purposes. Describe standard thread synchronization and communication mechanisms, including flags and semaphores (to signal events and track resources), mutexes (to prevent corruption of shared data and peripheral hardware), and message queues (to buffer data with handshaking) and apply as needed.

  • Describe and use architectures and design patterns for multithreaded systems for specific applications (e.g. communication protocols, streaming data processing, digital control systems, graphical interface, high-reliability systems, mass data storage).

  • Design and implement software to provide asynchronous serial command-line interface to program. Design and implement software to interact with peripherals across serial link (e.g. I2C to accelerometer, SPI to SD Flash memory card).


Additional Learning Objectives for ECE 560:



  • Quantify impact on response latency of dynamic scheduling, prioritization, preemption and interrupts.

  • Analyze and quantify worst-case interference, blocking and priority inversion among tasks.

  • Develop complex multitasking systems using an RTOS and complex peripherals devices with serial communication links.

  • Use pool-based dynamic memory allocation to prevent memory fragmentation.

  • Explain and apply CPU-independent peripheral features to improve performance (e.g. direct memory access, inter-peripheral triggering, peripheral interrupt filtering and data processing).

  • Design and implement a dependable digital control system using appropriate architectures and design patterns given a specific fault model.


Evaluation MethodWeighting/Points for EachDetails
Exam15Student must take closed-book, closed-notes in-class exam. ECE 560 students must answer additional questions as outlined in the learning objectives.
Final Exam25Student must take a comprehensive closed-book, closed-notes final examination. ECE 560 students must answer additional questions as outlined in the learning objectives.
Project60Students work to complete projects involving hands-on microcontroller programming and analysis. Grading will be based on demonstrations and/or lab reports. Unless otherwise noted, students may work individually (and receive 10% extra credit) or with one partner to complete a project.
ECE 560 students complete more challenging versions of the projects, with more complicated design and more detailed analysis than required by the ECE 460 students.
TopicTime Devoted to Each TopicActivity
Introduction4 lecturesIntroduction to course. Microcontroller and peripheral overview. Development tool introduction. Software engineering concepts for embedded systems.
Project: Getting to know the MCU board.
Cooperative Multithreading5 lecturesCooperative scheduling of threads. Finite state machines. Polling vs. Interrupts. ISRs. Prioritization. Thread delays, communication and synchronization.
Reading: ESF Chapter 3, 4. ESDAO Chapter 2.
Project: Removing thread blocking by using FSMs and ISRs.
Preemptive Multithreading6 lecturesPreemptive scheduling of threads. Context switching. Real-time kernel concepts. Thread management, delays, communication and synchronization. Prioritization. Data atomicity and race conditions.
Reading: ESDAO Chapter 2, 5, kernel manual and online articles.
Project: Removing thread blocking by using kernel primitives.
Project: Sharing resources safely by using kernel primitives.
Offloading Processing to Hardware Peripherals 2 lecturesUsing DMA (direct memory access) controller. Peripheral triggering with event signal links. Peripheral support for autonomous processing. Core-independent peripherals.
Reading: ESF Chapter 9
Architectures and Design Patterns11 lecturesHardware and software architectures for: streaming data, digital signal processing, digital control systems, low power/low energy, dependable systems, wired communications, wireless communications, and mass data storage.
Reading: ESF Chapter 6, 7, 8
Project: Constant-current digital control of a switch-mode high-brightness LED driver.
Project: Making the LED controller dependable.
cohen (7/09/2018):
1. The section in CIM on Course Objectives is primarily a list of topics in the catalog description. Please describe a few overarching goals for the course.
2. In the section in the syllabus on Makeup Work Policy, students are asked to contact the instructor at least a week before an absence. What happens if an unexpected circumstance arises (such as an illness, a death in the family, etc.)? It would be good to comment that in such cases, students should contact the instructor as soon as possible or...
3. Please note in the syllabus under Requirements for Credit-Only Grading, that S/U grading is not an option for ECE 560. (See Section 3.18 of the Graduate Handbook at: https://grad.ncsu.edu/students/rules-and-regulations/handbook/.)
4. The syllabus will need to be approved by the Administrative Board along with the course action. It is fine to include tentative arrangements such as "Office Hours: by appointment" if you are unable to give the precise times for office hours. See:
https://grad.ncsu.edu/wp-content/uploads/2015/12/grad-syllabus-checklist.pdf
for a complete checklist of the elements that should be included in the syllabus. Also attached under Additional Documentation.

mlnosbis 7/25/2018:
1) Explain the difference between this course and ECE 561- Embedded System Design in the justification. If the courses are sequential, mention that in the course description.

ABGS Reviewer Comments 8/27/2018:
-No concerns
mjescuti (Thu, 01 Feb 2018 20:14:23 GMT): Rollback: make dual-level
lamarcus (Wed, 04 Apr 2018 18:09:48 GMT): Reactivated due to accidental drop request.
aeherget (Thu, 12 Apr 2018 19:58:05 GMT): AECHH: Approved by UCCC on April 11, 2018 Meeting.
Key: 1376
Preview Bridge