Summer 2011 Term-D Syllabus -- Academic Calendar, ECE Resources
Please See CULearn.colorado.edu and log into ECEN5623/4623 online for more course info and Lab Assignments!!



5/31/11, Week-1 Class: Introduction - Lecture 1 , PDF Download
        - Course goals [10 weeks, 5 labs, Final Exam, 2 Quizzes]
          * Beagle xM and ARM DM architecture [ARM v7te ISA, Coretex A8]
          * TimeSys RT Linux [Why Timesys and Not say DENX ELDK?]
          * Linux user space and kernel space programming
          * Hard Real-Time Theory
          * Drivers and Real-Time Video
          * 1/3 Theory, 1/3 Practice, 1/3 Practitioner Work
        - Course project [Final Extended Lab - USB Camera for Time Lapse Capture]
        - Course grading (see policy below)
        - Fall ECEN 5623 Video Files: Project from Previous Semesters (Robotics, Video, Audio)
        - RT Embedded System TERMINOLOGY
          INITIAL QUIZ REVIEW - Terminology Overview
          Wikipedia (Great Resource for Technical Terminology)

      Self-Guided Lab #1 - Host Development System setup for TimeSys TimeStorm 4.0 IDE (target board communication with serial, ethernet, SCP/SSH)
        - Log into Timesys and generate a license for your Linux development host on the TimeSys RT Linux website.
        - Native host Linux (Ubuntu 11.04) or Oracle Virtual-Box Linux on Windows for TimeStorm IDE
        - See Nisheeth Bhat's IS on TimeSys for Hard Real-Time on the Web and TimeSys Docs and Code Download - Linux Link
        - Beagle xM
        - USB2Serial - mct_u232 UBS-to-serial driver
        - "cat /proc/devices"
        - lsmod
        - dmesg
        - "tail -f /var/log/messages"
        - ECEN 5623 Example Linux Code
        - Ftrace
        - Strace
        - Sysprof
        - Native and Cross compiling with gcc

       Paper: Liu and Layland Rate Monotonic paper

       Read: RTECS (Real-Time Embedded Components and Systems) - Chapter 1

5/31/11, Week-1 - Start Lab-0


6/7/11, Week-2 Class: Fundamentals of Real-Time Theory - Lecture 2, PDF Download
        - What's makes distributed, real-time, embedded multitasking systems challenging?
        - Best effort, Hard real-time, Soft real-time
        - Scheduling Class Taxonomy
          - Best Effort scheduling (Round-Robin Timeslice Scheme - Review)
          - Intro to Fixed priority preemptive scheduling
          - Intro to Dynamic priority scheduling
        - Utility Curves

       Read: RTECS - Chapter 2

       Paper: Lehoczky Sha and Ding paper



6/14/11, Week-3 Class: Fundamentals of RT Theory Cont'd - Services and High-Level Design - QUIZ on Terminology Overview, Lecture 3 , PDF Download

      INITIAL QUIZ - On Terminology - Complete on CU-Learn by 9PM

      Real-Time Services
        - What a Service Release Timeline Really Looks Like
        - The CPU, I/O, Memory Resource Space (Characterizing RT Applications)
        - Intro to Timing diagrams (interference)
        - Intro to Hard real-time safe resource utilization bounds

        Case-Study #1: High-Level RT System Design Examples

        EXAMPLE - Space Infrared Telescope Facility Instrument Control (launched on August 25, 2003)
        - The hard real-time requirements and performance
        - What worked, what didn't and why
        - Overview Presentation
        - The Test Image

        EXAMPLE - DATA-CHASER, Space Shuttle Hitch-hiker Class Payload Flown on STS-85, Summer 1997, DATA-CHASER HTML

       Paper: Audsley DM paper


6/14/11, Week-3 -- INITIAL QUIZ - On Terminology - Complete on CU-Learn by 9PM

6/17/11, Week-3 Lab-0 DUE
6/20/11, Week-3 Lab-0 LATE DUE DATE, Extended Lab Project Submission DUE


6/21/11, Week-4 Class: RM/DM Policy and Feasibility Test Derivation - Lecture 4 , PDF Download


      Rate Monotonic Policy and Feasibility Overview
        - Rate Monotonic Assumptions and Constraints
        - More on Fixed priority preemptive scheduling
        - Overview of Derivation of RM LUB - Hard real-time safe resource utilization bounds
        - More on Dynamic priority scheduling (Earliest Deadline First and Least Laxity First)
        - EDF and LLF Overview

      Introduction to Feasibility Tests
        - Sufficient Tests - RM LUB, DM
        - N&S Tests
          - Scheduling Point
          - Completion Test

      Deadline Monotonic Policy and Feasibility Overview
        - DM Sufficient Feasibility Test
        - DM Sufficient and More Necessary Test

      Beyond RM and DM:
        - Scheduling Point Feasibility Test
        - Completion Test Feasibility Test
        - Sufficient vs. Necessary and Sufficient Feasibility Tests
        - Computational Complexity of Feasibility Tests (O(1), O(n^2), O(n^3))


      PROJECT BACKGROUNDER: COMPUTER VISION, Lecture-Computer-Vision, PDF Download

      Read: RTECS - Chapter 3

      Self-Guided Tutorial #2 TimeStorm 4.0 (code build, load, and logistics)
      Read: TimeSys Timestorm-4.0 User's Manual and set up your IDE
      Read: ECEN 5623 RT-Linux Notes on Timestorm-4.0 Setup
        - Native and Cross compile with gdb
        - Native and Cross debugging with gdb

6/21/11, Week-4 - Start Lab-1



6/28/11, Week-5 Class: RM Implementation Challenges: Services, Synchronization and Shared Resources - Lecture 5 , PDF Download

      Paper: Priority Inheritance Protocols

     "Priority inheritance protocols: an approach to real-time synchronization", Sha, L.; Rajkumar, R.; Lehoczky, J.P.; Computers, IEEE Transactionson, Volume: 39 Issue: 9, Sep 1990.

      Paper Available on:Paper's Read in Class Page

      HW and HW+FW Implementations of RT Services
        - ISRs, task canonical structure, and task/service release
        - FPGA/ASIC-based State Machines for Offloading
        - Microprocessor/Microcontroller Offloading
        - DSP Offloading

      SW Implementations of RT Services
        - Main+ISR Executive
        - Cooperative Non-Preemptive Threads
          - Callbacks
          - Continuation Functions
          - Software State-Machines
        - Priority Preemptive Run-to-Completion RTOS
        - Time-sliced Traditional Best Effort OS


        Synchronization and Resource Issues:
          - Problems with Blocking (resources other than CPU, e.g. I/O)
            - Break up into more threads (better scheduling control)
            - Interrupt driven I/O - e.g. Programmable FIFOs
            - Model Blocking Time
          - Priority inversion (general concept)
            - Unbounded priority inversion problem (mutex C.S.)
            - Priority inheritence
            - Priority ceiling

        Other Practical Problems - Solutions:
          1) Estimating C (execution jitter) - use WCET
          2) Period jitter - transform to highest frequency
          3) ISR and context switch overhead - add to WCET
          4) Deadlock/Livelock - HW Watch Dog
          5) Bad code spinning and wedging - Sanity Monitoring

      Case-Study #2: Mars Pathfinder (As presented from multiple perspectives)
        Mike Jones Overview or What Happened to Mars Pathfinder
        Mars Pathfinder -- WRS Story
        Mars Pathfinder -- JPL Story

       PROJECT BACKGROUNDER: CONTINUOUS MEDIA (VIDEO), Lecture-Media, PDF Download

      Read: RTECS -- Chapter 4 & 5

6/28/11, Week-5 Lab-1 DUE


7/5/11, Week-6 - Start Lab-2

7/5/11, Week-6 Class: Real-Time Service System Integration and IO
      (RT-Linux User-space and Kernel-space Service Threads and Synchronization) - Lecture 6 , PDF Download

      Service Synchronization, Communication, and IO
        - Using Message Queues to Sync Services and for Communication
        - Using Binary Semaphores to Sync Services
        - What about IO during Service Execution?

      Overlapping CPU and IO Cycles - Latency Hiding
        - Initial Release Input - Block DMA and FIFO Sensor Data
        - Intermediate IO
        - Memory-Mapped IO During Service Processing
        - Hiding IO latency with Overlap

      System Design with RT Services
        - Software process: analysis, design, specification, coding,
                           unit testing, integration, system testing,
                           delivery, operations

        - Implementation characteristics: tasks, message passing,
                                          synchronization, ISRs,
                                          memory-mapped I/O, bus
                                          interface, signals, shared
                                          memory, stack/data/heap
                                          mgt., comm. interfaces

        - Specifying the design of real-time software systems
          Data flow and Control flow (function and interfaces)
          Extended finite state machines and signal block diagrams
          MSC (multi-tasking multi-node protocol/comm model)


        - Processes, threads, and tasks, what's the diff in RT-Linux?

      Read: RTECS - Chapter 6


7/12/11, Week-7 Class: Scalable Embedded Systems Architectures Lecture 7 , PDF Download

     Intro to PCI & USB Architecture and I/O Architectures
         - Intro to PCI bus architecture and device interfaces
         - PCI Plug and Play Concept
         - USB Plug and Play Concept
         - Embedded System PCI Form Factors and Standards
           CompactPCI, PC/104+ (PCI+ISA), PMC, PCI-X 1.0a/b, PCI-X 2.0, PCI-Express
         Read: Universal Serial Bus, (chapters TBD)


         - Discussion on I/O Trends (High speed differential serial)
           USB
           PCI-Express
           10G Ethernet (10GEA), which became IEEE P802.3ae
           Open Fabric Alliance for 10/20/40/80Gbps Infiniband
           Other High-speed Serial: Firewire, RapidIO, SAS/SATA

         - Discussion of ASIC Trends
           SoC (Yesterday's Board, Today's Chipset, Tomorrow's ASIC)
             Core + I/O (PowerPC 8xx, 82xx)
             Reconfigurable (Virtex II)
             Configurable (Tensilica)
             IP Modules (CPU Cores, Mem Ctlrs., Local Bus)
           Off-loading (Today's SW is tomorrow's HW)

      Self-Guided Tutorial #4 (code build, load, and logistics)

        - The POSIX 1003.1b compliant Embedded system environment (VxWorks)
        - The POSIX Application Programmer's Interface
            - POSIX overview: message queues, RT signals, and semaphores
            - Clocks and timers

7/15/11, Week-7 Lab-2 DUE


7/19/11, Week-8 Class: Device Drivers and Characterization of Embedded I/O Lecture 8 , PDF Download

      I/O interfaces
        - Digital
        - Analog (ADC, DAC interfaces)

      Microprocessor interface types (word or block)
        - Register-based control, status, data
        - Higher rate FIFO I/O
        - Block-oriented 1st/3rd party DMA tx/rx between I/O interfaces and memory
        - Bus burst transfers and block transfers
        - system memory map for MMIO devices - DRAM/SDRAM/DDR, BOOTROM, Flash

      External interface types
        - CPU local bus IO/MMIO
            E.g. PCI 2.x, GPIO, DRAM, Flash
        - Point-to-point or switched devices
            E.g. RS-232, RS-422, PCI-Express
        - Network multi-access devices
            E.g. Ethernet

      Device interfaces -- introduction to drivers
        - User space App interface (driver entry point interface to user processes)
        - Device interface (interface to devices)
        - ring buffers
        - blocking/non-blocking
        - ioctl "swiss army knife"
        - ISRs and signals/semaphores
        - scheduled I/O (handle buffering and processing in task)


     Supplemental Reading (optional): PCI Shanley Text, (chapters 14*, 17*, 18*, 19*, 26, and 28) *=highly recommended, others suggested

7/19/11, Week-8 - Start Lab-3

7/26/11, Week-9 Class (FIRST 1 hour lecture): Real-Time Performance, Measuring Performance and HW/SW Debugging Techniques Lecture 11 , PDF Download

       PowerPC Architecture:
       PowerPC 8xx architecture review HTML
       Power PC 8xx and 82xx Architecture Power Point Overviews

       Xscale Architecture:
       Xscale Architecture Docs

       x86 Architecture:
       IA32 Architecture Docs

       Estimating/Measuring Performance Based on CPU Architecture

       IBM Paper on Performance Monitoring and Tuning

        - Measuring/Controlling CPU Efficiency
          - Trace Ports (e.g. IBM PowerPC 4xx series, Strong Arm)
          - Built-in PMU (Performance Monitoring Units) (e.g. Intel Pentium, Xscale)
          - External Methods
            - Logic Analyzer Memory Traces (Cache Misses, DMA, Un-cached access)
            - Memory Port Markers (Writes to Un-cached Memory)

          - Profiling Code by Function or Block
            - Software in Circuit Methods (e.g. Workbench Code Coverage using SW In-Circuit, Workbench Profiler)
            - Hardware Supported Profiling (e.g. Intel Vtune)
              - Cycle-based profiling
              - Event-based profiling

          - Cache Coherency
              - Harvard I-Cache, D-cache Architecture
              - Cache Invalidate, Flush, Lock, Pre-fetch

        - Measuring/Controlling I/O Efficiency
          - Bus Analyzers - e.g. PCI Event Traces
          - Logic Analyzer with Support Package

        - PCI Bus Performance Tuning
          - Bus Grant Arbiters and Priority Schemes, Minimum Burst Length
          - PCI-Express Performance Features - PCI Express Tutorial
            - Isochronal Virtual Channels
            - Split Transaction

        Paper: Zen of BDM


7/26/11, Week-9 Class (SECOND 1 hour lecture): Embedded Volatile and Non-volatile Memory Devices Lecture 12 , PDF Download

        Memory Technologies and Hierarchy
        - Harvard Arch. I-Cache, D-Cache (Separate instruction and data cache)
        - L1 On-Chip, L2/L3 Off-Chip Cache
        - SRAM (Fast, but expensive per bit stored)
        - DRAM, SDRAM, DDR (Double Data Rate DRAM), Quad Rate SRAM

        ECC (Error Correcting Circuitry) memory
        - Hardware/Software Design
        - Hamming encoding for EDAC (Error Detection and Correction) - review handout provided
        - ECC and maintenance and handling of SBEs and MBEs
        - Firmware ECC Req'ts:
          1) initialize memory fully,
          2) handle SBE interrupts, MBE check-stop, and
          3) background scrubbing

        Non-Volatile Memory Devices and Systems
        - EPROM, EEPROM, NVRAM, and Flash (NAND, NOR)
        - Flash File Systems - TrueFFS
        - Solid-State-Disk (SSD) - Intel Tech Journal Article, also available on Papers Read in Class
        - Advanced Non-Volatile Memory/Storage Devices (PCM, FRAM, MRAM, Race-Track) - Overview

7/29/11, Week-9 Lab-3 DUE
7/29/11, Week-9 - Start Extended Lab and preparation of final submission Report and DVD

7/31/11 5pm to 8/2/11 5pm, Week-10 Final Exam Warmup - QUIZ on CU-learn

8/2/11, Week-10 Class: High Availability vs. High Reliability (Same?) Lecture 13 , PDF Download

        IBM developerWorks Paper on HA and HR

        Definition of High Availability (5 9's)
        - System is ready to provide service 99.999 % of any given service year
        - System can crash, but must reboot with minimal interruption to services and returning to fully service availability quickly

        Definition of High Reliability
        - Formal methods and testing to prove reliability is designed in and built in
        - SW Path coverage, statement coverage, and condition coverage criteria
        - HW Simulation testing with SW drivers
        - HW built-in test (Built-in Logic Analyzers, JTAG, Built-in Performance Monitoring Counters)
        - System Safe Modes

        Recovery Concepts
        - Conservative Safe Mode Manual Recovery (typical of satellite systems)
        - Automatic Recovery (typical of high availability sytems)

     Final Exam Review: Lecture Final-Review , PDF Download

08/05  FINAL EXAM in Class at 5:45 PM until 8PM
       - If you need REMOTE exam services, e-mail professor with Subject= REMOTE EXAM as soon as possible

8/10/11, Week-11 EXTENDED LAB DUE in my EE Office Mailbox on DVD

08/15/11 - Grades Finalized