CS 8803: Languages and Compilers for Embedded Systems
Summer 2007, Korea University

Tue/Thurs  8:05 am ~ 9:35 am (Korean Time, GMT + 09:00)
Mon/Wed  7:05 pm ~ 8:35 pm (Eastern Time)
Instructor: Santosh Pande (santosh@cc)
  • Office: TBA
  • Office Hours: TBA, or by appointment


  • TA: Minjang Kim (minjang@cc)
  • Office: TBA
  • Office Hours: Wed/Fri 10:30 am ~ Noon (KST), or anytime by email and MSN Messenger (Click here)



  • [ Announcements | Lecture Notes | Course Description | Homework and Project Information | Class Schedule ]

    Announcements

    • 5/17/07 Class begins! TA and instructor will be in Korea after June 14 and June 25, respectively (tentative).
    • 5/17/07 You can also reach me by MSN messenger (Click here).
    • 5/20/07 HW 1 is posted. Due: 5/28 Korean Time
    • 5/29/07 HW 1 solution is posted.
    • 6/1/07 HW 2 is posted. Due: 6/7
    • 6/8/07 HW 2 solution is posted.
    • 6/8/07 Project Phase 0 is posted. Due: 6/14
    • 6/11/07 Papers that will covered during classes are posted. Slides will be also updated soon.
    • 6/29/07 HW 3 is posted. Due: 7/6 Korean Time
    back to top

    Lecture Notes

    back to top

    Course Description

    • Objective: To offer a specialized course on emerging embedded processors used in the domains of telecom, digital video, etc. Focusing on languages, compilers and tools related to code optimization issues at the machine level.

    • Pre-requisite/expected background: Basic understanding of general purpose processor architectures (course such as CS 6290) necessary. Elementary knowledge of compiler front ends (course such as CS 4240) desired. Good knowledge of programming languages and solid programming skills expected.

    • Textbook: Embedded Computing: A VLIW Approach to Architectures, Compilers and Tools by Joseph A. Fisher, Paolo Faraboschi and Cliff Young, Morgan-Kaufmann Elsevier Publishers, ISBN 1-55860-766-8

    • Supplemental Material: Foundational research papers

    • Grading
      • Homework: 25%
      • Projects: 25%
      • Midterm: 25%
      • Final: 25%

    • Outline
      • Revision of VLIW and ILP: Pipelined execution, Dependence/Program Restructuring, ILP, VLIW, Role of a Compiler in VLIW
      • Embedded VLIW: VLIW Design Principles - Hazards/Dependence, VLIW ISA for Embedded Domains, ISA Encoding, VLIW Encoding
      • Micro-architectures in Embedded Processors: Data-paths, SIMD Operations, Register Clusters, Memory Architecture, Branch Architecture, Speculation and Predication
      • Embedded Compilers : Profiling Tools, ILP Compiler, Code Layout, Space, Time, Energy Tradeoffs, DSP Compilers, Memory Layouts, Offset Assignment, Register Assignment
      • Instruction Scheduling : Profiling, Scheduling Regions, Trace Scheduling, Percolation Scheduling, Compensation Code, Loop Scheduling, Speculation and Predication
      • Application Design and Tuning: Programming Languages (Embedded C++, Matlab, DSP-C, Embedded Java), Profiling and Performance Tuning, Customization Tools
      • Application Areas: Telecom (Voice Coders, Waveform Codecs), Digital Video (MPEG-2, MPEG-4), Network Processors
    back to top

    Homework and Project Information

    • Collaboration Policy

    • You are allowed to discuss course materials, homework problems, and programming assignments in small groups, but limited to discussion of general ideas only. You must write your solutions completely independently, and must report the names of your collaborators with whom you discussed the assignments. Under no circumstances may you copy solutions from any source, including but not limited to other students solutions, official solutions distributed in past terms, and solutions from courses taught at other universities. Violation of these rules may result in disciplinary actions.

    • Homework Guideline

    • No late homework or assignment is allowed without prior approval of the instructor.
      Please submit homework to TA by email until TA will be in Korea.

    • Project Guideline

    • www.vliw.org/book.
    back to top