2110682 Embedded and Real-Time Systems
    Department of Computer Engineering
      Faculty of Engineering, Chulalongkorn University 
    
    
    Course duration    : 2nd semester 2014
    Lecturer           
        : Prabhas Chongstitvatana, Prof. 
                   
                (office Eng build
    4, Floor 18, room 13, tel 022186982, email: prabhas at chula dot ac dot th)
    Lecture           
        : Sun 13.00-16.00 at ENG4 Floor 17
    
    The content of the course is a mixed between hardware and software. 
    Embedded systems are computer systems with special requirement on
    constraints such as low power, high integration, real-time. This course
    explores Embedded systems design. On the hardware side, it includes embedded
    processors and low level programming, logic design, integrated
    circuits.  On the software side, it includes Software Engineering,
    Operating systems scheduling, communication and real-time constraints. 
    Here are the list of topics:
     
    Introduction to embedded and real-time systems
    Microprocessor 
    Assembly level programming
    Memory, Peripherals and Microprocessor interface
    Operating systems and task scheduling
    Real-time systems and their requirements 
    Internet of Things
    
    How we learn
    We learn by doing both hardware and software.  The activities include
    embedded system model construction, some programming, and hands-on session.
    The assignments will be given out periodically throughout the term. A small
    project will be given around midterm. Students must present the results of
    their projects.  At the second half of the semester students are
    assigned to do research on the given topics.  The reports will be
    presented in the class. The final exam is "open book" and has an element of
    system design plus some "pseudo" programming.
    
    Announcement
    15 Feb 2015    Project implementing 4B processor should be
    finished around 2 March.  You should hand-in the written report of the
    design and show your working circuit.
    . . . 
    
    Timetable
    January
    Introduction
      Microprocessor: assembly language S21  sample program
      logic design  Basic Logic  
      Microprocessors
      architecture:   Evolution of computer
        architecture 
    February
    memory, peripherals and interface  memory
        and interrupt i/o     peripherals
      cache and virtual memory   memory
        system design 
      Graphics Processing Units    NPU
        instruction set   sample program
      Project presentation
    March
     project   Embed
        Sys Demo
      Operating systems and task scheduling  basic
        OS concepts,   Nos  (Nut
      Operating System)  Nos services 
      
semaphore:  flash demo from William
      Stallings, U. of Queensland
      lecture from Matt Welsh, Harvard,   semaphores.pdf 
      
 real-time systems RTOS      real-time scheduling
          
    April
    Embedded
        Systems Communication
      CAN
      Network on Chip
      Reliability and
        fault tolerance
    
    May
    final exam 
    Homework
    1)   Create and test a Full adder using Logicwork5
    2)   1 Feb 2015, Read the paper "Reduced Instruction Set
    Computer".  We will discuss it next week.
    3)   15 Feb, Read the chapter "memory system design".  We
    will discuss it in the next class.
    Assignment
    . . .
    
    Recommended Textbooks 
    1. Ball S, Embedded Microprocessor Systems: Real World Design 2nd edition,
    Newnes 2000
    2. Vahid F, Givargis T, Embedded System Design: A Unified Hardware/Software
    Introduction, Wiley 2002
    3. Kopetz H, Real-Time Systems: Design Principles for Distributed Embedded
    Applications, Kluwer 1997
    
    Additional Materials
    S23 assembly language
    Transistor level simulation of an antique CPU.  6502 is used in the
    iconic Apple II machine. 
        http://visual6502.org/JSSim/index.html
    A story of emulation of HP48 calculator
    Reference to NPU:  
    Nattapong Thammasan and Prabhas Chongstitvatana, "Design of a GPU-styled
    Softcore on Field Programmable Gate Array," International Joint Conference
    on Computer Science and Software Engineering, Thailand, 2012.
    
    Rz language and its compiler
    Network on Chip
        General introduction (IEEE computer, 2002)  
              http://infoscience.epfl.ch/record/165542/files/00976921.pdf
        Recent development (International Symposium on Computer
    Architecture, 2011)
              http://pages.cs.wisc.edu/~hestness/links/KNOC_ISCA11.pdf
        Commercial development
              http://www.design-reuse.com/articles/10496/a-comparison-of-network-on-chip-and-busses.html
    Course Assessment 
    Assignments            30%
    Midterm paper        30%
    Final
    exam             
    40%
    Tools
    s21 tools :    assembler and
    simulator  s21.zip
    Logicworks5
    NPU package  npsim2.zip ,  update
    (16 Dec 2012)  npsim4.zip
    assembler for s23   as23.zip 
    new version as23-1.zip
    rz36 compiler package  rz36.zip  
    
rz36 with interrupt and Nos support 
      rz36-1.zip
    update rz35 (bug fixed)  include executable rz36 and as23:  rz36-2.zip
    NUT operating system  nos1.txt 
    (process)  nos2.txt  (with
    semaphore)  nos4.txt (with mailbox)
    Acknowledgement
    Slides and presentations are kindly permitted by Setha Pan-gnam, Chalermek
    Intanagonwiwat
    
    last update 15 Feb 2015