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:
- How the instruction set affects the performance
- How to instrument the simulator to measure it
- How a compiler generates codes for a processor
- What operating system functions affect an instruction set
- How to support special functions through the design of instuctions
- What is the practice in embedded systems
The outline of the lecture is:
- instruction set
- microprogramming level
- high level language
- code generation
- performance measurement
- code optimisation
- kernel of OS
- task switcher
- running an OS on a processor simulator
- real-time OS
- low-power design
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