Embedded processors 2006


Prabhas Chongstitvatana

lecture 3 hours per week

I will offer a course that unify hardware and application software requirement for embedded systems.  This series of lecture aims to integrate the knowledge of building a computer system from the most bottom level: functional units, data path, microprogram, to the highest level: operating system, high level language and application programs.  An executable abstract language is used to as a mean to explore all levels. 

This course offers a "hand-on" approach.  Students go through series of building and modifying a "system" simulator.  The system simulation composed of: an instruction-level processor simulator, a compiler, a profiler, a real-time operating system includes task switcher and message passing.  Real-time concurrent application programs such as multiple clocks will be run on this operating system.   Obviously, to achieve the intended goal, the "breath" of exploration must be limited.  The system will be rather modest in size but completed for the purpose of study.

I will discuss the instruction set level, the support for the operating system functions and the real-time applications.  Examples from existing systems such as, ARM (used in cell phones), micro-C OS, real-time Linux, will be illustrated.

The students will learn:
The outline of the lecture is:
This course is suitable for students who are curious about how the modern devices such as cell phones, MP3 devices work.  For students who are inclined for hardware-related projects, the processor in this course can be implemented in a real FPGA.  The chip will be able to run all programs illustrated in this courses (but this is not required in the study!).  For students who prefer software or system building, this course can give an insight into how operating systems and high level languages work down to the clock-by-clock level. Code optimisation at a realistic level can be explored, based on the simulated processor, everything can be measured and modified.

Prerequisite:  students in junior and senior standing, basic knowledge of digital design, computer architecture, no extensive knowledge of OS is required, some programming skill is required as students will run and modify various given simulators.

Assesment

weekly work 40%
midterm work 30%
final exam 30%

last update 30 May 2006