Spring 2008: CSE 591

Compilers for Embedded Systems

Course Outcome: 1 paper accepted in international conferences

Course Information

Course Abstract

Very often general purpose systems are unable to meet the power, performance etc. constraints of the specific application scenario. For example, it will be weird to use a Pentium processor to control the fuel injection system of a automobile. The environment dictates several application specific constraints, e.g. operating temperature, size, computation power, weight, and sometimes even the thickness of the device. Custom-defined solutions for such applications are called embedded systems. Embedded systems are usually designed by just modifying some general purpose processor; by removing some of the architectural features, adding some new ones, and so on. However, the complexity falls in the lap of the compiler. Compiler has to generate good code to take care of the customized architecture. It has to avoid the penalty due to missing design features, and it has to exploit the newly added design features. Often there are no existing compiler techniques to achieve the same. That's the research in compilers for embedded systems. Trying to compile for customized architectures to achieve a variety of design goals, e.g., code size minimization, power reduction, hotspot alleviation, performance improvement, reliability improvement etc. The discussions in this course will be classified by the architectural features, e.g., horizontally partitioned caches, dual instruction set architectures, scratch pad memories, and compiler objectives, e.g. power, performance, code size, temperature etc. In this research oriented course, you will have to come up with a compiler technique to exploit novel/existing architectural technique to improve any of the compiler objectives mentioned above. The ultimate metric of success in this class will be publishable quality work.

Course Structure

Grading

Course Schedule

Projects