Welcome to the EENG 449bG/CMSC 439b 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: TBA
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: Dimitrios Lymberopoulos
email: dimitrios.lymberopoulos@yale.edu
Office Hours: TBA
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 data path architectures and control, pipelining, memory hierarchies 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.
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.
Programming Assignment 1 Starting code for PA#1
Programming Assignment 2 Starting code for PA#2
| Date | Topics | Reading | |
| Jan 11 | Lecture 1 | Introduction and Performance | Week 1 Reading: P & H Chapter 1 |
| Jan 13 | Lecture 2 | Instruction Set Architectures Review | P & H Chapter 2 |
| Jan 18 | Lecture 3 | DSP Processor Differences and Embedded Platforms | |
| Jan 20 | |||
| Jan 25 | Lecture 4 | Pipelining I | |
| Jan 27 | Lecture 5 (slides same as Lecture 4) | Pipelining II | |
| Feb 1 | Lecture 6 | ARM Processor Architecture and Programming Tutorial | Get by Without an RTOS by Melkonian |
| Feb 3 | Lecture 7 | ARM Assembly Language and Programming Assignment | (Lab assignment #1 handed out) |
| Feb 8 | Lecture 8 (Class meets in CO-40) | Lab Session on ARM/THUMB Programming using PA#1 | |
| Feb 10 | Lecture 9 | Simulation Issues
Discussion: Rodrigo SOS |
|
| Feb 14 | Lecture 10 | Discussion: Microcontroller Based Network Simulators
Discussion: Jason: ATEMU Eric: AURORA |
|
| Feb 16 | Lecture 11 | Low Power Design & DVS | Reading: J. Pouwelse, K. Langendoen, H. Sips, "Dynamic Voltage Scaling on a Low Power Microprocessor", Proceedings of Mobicom 2001, Rome, Italy, August 2001 |
| Feb 22 | Lecture 12 (slides from lec 11) | Low Power Design & DVS
Discussion: Swathi: TOSSIM ARM Assembly language package handed out in class
|
|
| Feb 24 | Lecture 13 | Arm Revisited: Performance & Assembly Language | |
| Mar 1 | Quiz #1 in class | ||
| Mar 3 | Lecture 14 | Programming Assignment 2 and Projects | |
| Mar 8-17 | Spring Break No Class | ||
| Mar 22 | Lecture 15 | Instruction Level Parallelism I | |
| Mar 24 | Lecture 16 | Instruction Level Parallelism II (Dynamic Branch Prediction) | |
| Mar 29 | Lecture 17 | ILP III (Multiple Issue Processors and Speculation) | |
| Mar 31 | Lecture 18 | ||
| Apr 5 | Lecture 19 | Project discussiuons | |
| Apr 7 | Lecture 20 | Memory Hierachy Design I | |
| Apr 12 | Lecture 21 | Memory Hierachy Design II | |
| Apr 14 | Memory Hierachy Design III | ||
| Apr 19 | Quiz #2 | ||
| Apr 21 | Lecture 23 | Project breakout sessions | |
| Reading Period | |||
| Finals Week: Final Project Presentation |
An online book on ARM Assembly Language Programming
Getting started with GNU A tutorial by Bill Gatliff on building and using the GNU tools for ARM. Note: We have a built an ARM toolchain so you do not have to build your own. Check the XYZ site for the pre-compiled tools. Use this tutorial to learn how to use the toolchain and the debugger
The XYZ ARM/THUMB based sensor node at Yale
The datasheet for the OKI processor can be reached here