| ECE 152 |
|
Computer Architecture |
| Spring 2008 |
| Professor Daniel J. Sorin |
| Objectives |
| The objective of this course is to learn how computers work, focusing on how the computer hardware executes the software. |
| The course focuses on instruction sets, computer arithmetic, processor design, memory system design, and input/output. A major component |
| of the course will be a group project in which each team of students will design and build a computer in real hardware and then run programs on it. |
| Prerequisites: ECE 52 (or ECE 151) and the ability to program in a high-level language (C, C++, or Java) |
| Class Location and Hours |
Class meets Monday/Wednesday/Friday from 10:20am - 11:10am.
Location: 207 Hudson Hall
| Instructor, Teaching Assistant, and News Group |
This is a large class, which means that students should contact other sources of information before, if necessary, contacting the professor.
* The first option for finding help is this website.
* The second option for finding help is the group of teaching assistants for this course. Either email them (via the course's Google group) or go to their office hours. Questions on the Google group may get answered by a TA, a fellow classmate, or the professor.
Undergraduate Teaching Assistants:
Michael Bauer (meb26 AT ee
DOT duke DOT edu)
office hours: Tuesday 10:30-11:30am at Teer Basement
Pat Eibl (pje2 AT ee DOT duke DOT edu):
office hours:
Wednesday 11:30am-12:30pm at Teer Basement
Philip Ethier (pde AT ee DOT duke DOT edu)
office hours: Wednesday 2:45-4pm at Hudson
202A (the ECE 154 lab)
Andrew Waterman
(asw9 AT ee DOT duke DOT edu)
office hours: Monday
4:15-5:30 at 202A Hudson
* If you need to contact the professor, please email him or come to his office hours:
Office: 209C Hudson Hall
Office Hours: Thursday 2-3pm, Friday 11:10am-noon (right after class)
Email: sorin AT ee DOT duke DOT edu (email subject must begin with ECE152)
| Required Textbook |
| David A. Patterson and John L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 3rd edition, Morgan-Kaufmann, August 2004. |
| Assignments and Grading |
| This course will require readings from the textbook, pencil and paper problems, programming assignments, and one multi-part project. |
Students are responsible for:
| Deadlines will be enforced except under extreme
circumstances. Anything turned in late will incur a 10% penalty
per day late (e.g., from due date until 24 hours late is 10%
off). I would prefer that you turn in something not quite done on the due date
rather than waiting until after the deadline to try to finish
it.
Start assignments and projects EARLY so that you don't get stuck at the end! |
| Academic Misconduct: I will not tolerate academically dishonest work. This includes cheating on the homework, project, and exams. |
| This course has historically had a high incidence of academic misconduct cases which have led to academic suspension and expulsion. |
| Refer to the Duke Undergraduate Honor Code or to the instructor if you have any questions about misconduct. |
| Topics, Lecture Notes, and Reading Assignments |
|
I will post lecture notes (in PDF format) shortly before I cover them in class. Please bring them to class. Click on topic title for link to notes. Do not think that you can read the notes instead of attending class. You will miss a LOT of course material if you miss class.
|
||||||||||||||||||
| Homework Assignments |
Homework #1 (Introduction / Chapter 1), due Mon, Jan 28 in class
Homework #2 (ISAs / Chapter 2), due Mon, Feb 11 in class
Homework #3 (Arithmetic / Chapter 3), due Fri, Feb 22 in class
Homework #4 (CPU / Chapter 5), due Fri, Mar 7 in class
Homework #5 (Pipelining / Chapter 6), due Fri, Mar 21 in class
Homework #6 (Cache & Memory), due Mon, Apr 7 in class
Homework #7 (I/O / Chapter 8), due Fri, Apr 18 in class
| Project |
The project for this class will be performed in groups of 2, and it has multiple parts. The end products will be:
The Duke 152/16 architecture's specification
I have subdivided this project into smaller parts that will be due throughout the semester.
Part 1: Register File and Finite State Machine (75 points), due Weds, Jan 23
Part 2: 16-bit CLA/CS Adder (100 points), due Monday, Feb 18
Part 3: Integer ALU (75 points), due Monday, Feb 25
Part 4: Memory (25 points), due Friday, Mar 7
Part 5: Unpipelined 5-Cycle Processor (200 points), due Wednesday, Mar 26
Part 6: Pipelined 5-Stage Processor (200 points), due Wednesday, Apr 9
Part 7: The Whole Enchilada (200 points), due Weds, Apr 23
| Schedule |
This is a VERY tentative schedule which may change depending on time constraints and which days the instructor will be out of town.
|
Week |
Monday |
Wednesday |
Friday |
Jan 7 |
|
Intro/Overview (Ch 1) |
Intro |
| Jan 14 |
Intro |
Instruction Sets (Ch 2) | Instruction Sets |
| Jan 21 |
MLK DAY |
Instruction Sets | Instruction Sets |
| Jan 28 | Instruction Sets | Computer Arithmetic (Ch 3) |
Computer Arithmetic |
| Feb 4 |
Computer Arithmetic (extended class: 10:05-11:20) |
Computer Arithmetic (extended class: 10:05-11:20) |
Computer Arithmetic |
| Feb 11 |
Computer Arithmetic instructor: Anita Lungu |
no class - out of town |
Processor Design (Ch 5) |
|
Feb 18 |
Processor Design | Processor Design |
Processor Design |
| Feb 25 | Processor Design | Pipelining (Ch 6) | review for Midterm |
| Mar 3 |
Midterm |
Pipelining | Pipelining |
| Mar 10 |
SPRING BREAK |
||
| Mar 17 | Pipelining | Pipelining | Memory Systems (Ch 7) |
| Mar 24 | Memory Systems | Memory Systems | Memory Systems |
| Mar 31 | Memory Systems | Memory Systems | Memory Systems |
| Apr 7 | Memory Systems |
I/O (Ch 8) |
I/O |
| Apr 14 | I/O | Performance (Ch 4) | Performance |
| Apr 21 |
Advanced Topics |
Advanced Topics |
Reading Period |
| Apr 28 |
-------- EXAM WEEK -------- |
||