2110682 Embedded and Real-Time Systems
    Department of Computer Engineering
      Faculty of Engineering, Chulalongkorn University 
    
    
    Course duration    : 2nd semester 2012
    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, seminar room
    
    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
    IC and Design technology
    Control systems
    Operating systems and task scheduling
    Real-time systems and their requirements 
    Real-Time communication protocols
    
    How we learn
    We learn by doing both hardware and software.  The activities include
    embedded system model construction, some programming, and laboratory
    session. The assignments will be given out periodically throughout the term.
    After  Midterm, students are required to give their presentations on
    given subjects to the class.  Final exam will be the accumulation of
    your knowledge and practice during the course. The final exam is "open book"
    and has an element of system design plus some "pseudo" programming.
    Discussion is on Facebook page  search 
      "Embedded Systems 2012, Chulalongkorn" 
    Announcement
    2 Dec 2012   Midterm exam will be "in class" on 23 Dec 2012, one
    hour, 1-2pm. After that the lecture continue.
    16 Dec 2012  Update  NPU instruction set (include example on array
    access) and update tool  npsim4.zip
    18 Jan 2013   Nos  lecture note is
    up.  Update to Rz compiler in rz36-1.zip
    22 Jan 2013   Update  Nos lecture,
    include demo and Rz compiler (bug
    fixed)  rz36-2.zip
    10 Feb 2013  Hand-in and present your project on 24 Feb,  Final
    exam on 17 Feb.
    Timetable
    November
    Introduction
      Microprocessor: assembly language S21  sample program
      logic design  Basic Logic  
      Microprocessors
      architecture:   Evolution of computer
        architecture 
    December
    memory, peripherals and interface  memory
        and interrupt i/o     peripherals
      integrated circuits  
        integrated circuit design    semiconductor
        device fabrication  (wiki)
      Digital Integrated Circuits, design and
        manufacturing process (ppt by J. M. Rabaey, A. Chandrakasan, B.
      Nikolic)
      Graphics Processing Units    NPU
        instruction set   sample program
      Midterm 
    January
    control systems  Control
        (ppt)
      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
          
    February
    Embedded
        Systems Communication
      CAN
      Network on Chip
      Reliability and
        fault tolerance
    
    March
    final exam 
    Homework
    9 Dec 2012   
        1 ) Write NPU program to multiply two matrices of
    4x4.  Unroll loop and make a straight-line program (no jump).
       
        2 ) Think how to write a binary search program in
    NPU.  Notice that GPU is not good for branching.
    16 Dec 2012
        Write find max element of an array, the size of array is
    40.  Use the update tool: npsim4.zip
    27 Jan 2013
        Find out how to synchronise n-processes.  Try to
    write it in nos2.txt version of three processes.  nos2.txt
    Assignment
    Design, develop an embeded system.  Your design must include some
      real-time component that interface to the real world.  For example,
      sensors, motors, some signals from the environment are input to the
      system. The "demo" is based on Embed
        Sys Demo.  You should design your hardware, software and
      simulate them. The report includes: design, motivation, code of the demo
      system, results from the experimental run (you can simulate the real world
      as appropriate).  Prepare to present your work for 10 minutes, using
      a well-prepared slides.  The report should be about 4-5 pages. (not
      more).
    
    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
    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.
    S23 assembly language
    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 13 Feb 2013