EENG 449bG/CMSC 439bG Computer Systems

Spring 2004
Class Meeting Time: Tuesdays and Thursdays, Becton CO31
Electrical Engineering and Computer Science Departments
Yale University

Welcome to the EENG 449bG/CMSC 439bG website. This site will be updated throughout the duration of the course so refer back to this on a regular basis to receive updates on the course. 

Instructor: Andreas Savvides
Office Location: AKW 212
Tel. (203)432-1275
email: andreas.savvides@yale.edu
Office Hours: Friday 1:00 - 2:00pm

Textbook: Computer Architecture A Quantitive Approach, John L. Hennesy and David A. Patterson, Morgan Kaufmann, Third Edition
Note: The textbook is also in the Engineering Library reserves. You can borrow it from there for 2 hours each time.

Teaching Assistant: Sobeeh Almukhaizim
email: sobeeh.almukhaizim@yale.edu
Office Hours:  Monday 2:00pm - 3:00pm, Wednesday 6:00pm - 7:00pm

Course Syllabus

Course Description:

This course examines the organization of computer systems as hardware and software systems. It provides an introduction to the core concepts of computer design including datapath architectures and control, pipelining, memory hierachies and storage systems. In addition to the core design concepts the class also looks at the broader issues of designing computer systems, by examining how hardware and software come together. These concepts are illustrated by examining architectures and protocols of a new generation of tiny networked computing devices from the domain of sensor networks.

Similar Courses:

This class is similar to CS252 taught by Professor David Culler at UC Berkeley in Spring 2003 and Spring 2002. The material is slightly modified to accommodate undergraduate participation, but I strongly encourage you to browse through the CS252 pages to get a flavor of the type of projects we will be doing in this class. Some of the projects are listed here.

Project ideas for this semester will be discussed during the second and third classes. By the second week you need to form groups of 2 and  work together on the projects during the semester.

 

Lectures

Lecture 1  Introduction, January 13, 2004     Reading for Lecture 1, Patterson and Hennesy  Chapter 1
Chapter 1 is available online from the publisher at http://books.elsevier.com/companions/1558605967

Lecture 2 Instruction Set Architectures, January 15, 2004 (Sections 2.1 - 2.12 of textbook)
Additional Reading: Choosing a DSP Processor, an article from Berkeley Design Technology, Inc that highlights the features of DSP processors, some of which we have discussed in class during lecture 2.

Lecture 3 MIPS Instruction Set and Introduction to Pipelining, January 20, 2004. 
Note: HW1 is out, due Feb 5 at the beginning of class

Lecture 4   Pipelining Part II, January 22, 2004

Lecture 5  Dynamic Scheduling and Overview of ARM Microprocessor Architecture

Lecture 6   Reading for lecture 6  J. Pouwelse, K. Langendoen, H. Sips, "Dynamic Voltage Scaling on a Low Power Microprocessor", Proceedings of Mobicom 2001, Rome, Italy, August 2001.  Also for embedded programming basics read: Get By Without an RTOS by Michael Melkonian

Lecture 7   Embedded Programming Overview. Read the article by Melkonian listed in Lecture 6!

Lecture 8  Lab meeting and project discussions

Lecture 9  Embedded Processor Programming -  Overview of the Development System, Tools, Lab Setup and FAQ, Feb 10, 2004 
Check out the programming samples and information here

Lecture 10  Instruction Level Parallelism I, Reading Chapter 3, pages 172 - 196 of text, Feb 12, 2004

Lecture 11 Instruction Set Parallelism II, Feb 17, 2004

Lecture 12  Midterm and Projects Discussion, Feb. 26, 2003

Lecture 13 Instruction Set Parallelism III, March 2, 2004

Lecture 14    Tutorial information on projects - Check here for the ARM_THUMB port of PALOS that includes the UART driver.
                    A sample project demonstrating the PIO example and UART usage has been placed in the OKIAPP directory
                    Sample code for accessing the serial port from the PC  - this code can be compiled using Visual C++ available on the lab PCs.

Lecture 15 Software ILP, March 23, 2004

March 25 - No lecture, individual group meetings and project discussions

Lecture 16  Software ILP: Hardware Support for Compile-time ILP and Itanium Architecture

Lecture 17  Memory Hierarchy Design, Part I

Lecture 18 Memory Hierarchy Design, Part II

Lecture 19, Memory Hierarchy Design, Part III, Memory technologies

Project Related Resources

Here are the links to the presentations from Friday Janurary 30, 2004

Microcontrollers Tutorial

Motes Presentation

Additional Resources

Introduction to DSP - a website of a company offerting DSP courses. This site provides a nice collection of information and definitions about DSP processors.