| ECE 152 |
|
Computer Architecture |
| Spring 2005 |
| 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 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: 203 Teer
| 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 place to find answers to questions is the class news group: duke.courses.ece152
You are responsible for checking this newsgroup. Lots of good information is there. Please consult it before emailing the TAs or professor.
Duke OIT's Information on newsgroups
* The second option for finding help is the group of teaching assistants for this course. Either email them or go to their office hours.
Undergraduate Teaching Assistants:
Chris Abbott (cba4 AT duke DOT edu)
office hours: Thurs 6-8pm
at Hudson 01B
Raj
Baba
(vrb3 AT duke DOT edu):
no office hours
Andrew Dreher (afd3 AT ee DOT duke DOT edu)
office hours: Thurs 1:10-2:30pm
at CIEMAS 2nd floor foyer
Trina Kok
(tk16 AT duke DOT edu)
office hours: Monday 2-4pm @ CIEMAS 2nd floor foyer
Graduate Teaching Assistant:
Nick Kirchem (nrk2 AT ee DOT duke DOT edu)
office hours: Tues 10:30-11:30
& Weds 11-noon, both at Hudson 01B
* If you need to contact the professor, please email him or come to his office hours:
Office: 1111 Hudson Hall
Office Hours: Tues 3-4pm, Fri 1-2pm (if neither of these times works, send email for an appointment)
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.
|
||||||||||||||||||
| Homework Assignments |
Homework #1 (Introduction / Chapter 1), due Friday, January 28 in class
Homework #2 (Programming Refresher), due Wednesday, February 9 at 10:00am (see instructions for how to submit electronically)
Homework #3 (Instruction Sets / Ch2), due Wednesday, February 16 (written questions due in class, programming must be submitted by 10am)
Homework #4 (Computer Arithmetic), due Friday, February 25 in class
Homework #5 (Processor Design), due Wednesday, March 9 in class
Homework #6 (Caches), due Friday, April 1 in class
Homework #7 (Memory), due Friday, April 8 in class
Homework #8 (I/O), due Friday, April 15 in class
Homework #9 (Pipelining), due Friday, April 22 in class
| Project |
The project for this class will be performed in groups of 3 (assigned by the professor), and it has multiple parts. The end products will be:
The MIPS 152/16 architecture's specification
The project will be broken down into smaller parts that will be due throughout the semester.
Project Part 1: Register File (50 points), due Monday, January 24
Project Part 2: Carry Lookahead Adder (100 pts), due Monday, February 21
Project Part 3: ALU (100 pts), due Friday, March 4
Project Part 4: Memory (25 pts), due Monday, March 28
Project Part 5: Simulator (200 pts), due Monday, April 4
Project Part 6: The Whole Processor (300 pts), due Wednesday, April 27 (plus hardware demos TBD)
| Schedule (tentative) |
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 10 |
|
Intro/Overview (Ch 1) |
Intro |
| Jan 17 |
MLK DAY |
Intro |
NO CLASS |
| Jan 24 | Instruction Sets (Ch 2) | Instruction Sets | Instruction Sets |
| Jan 31 | Instruction Sets | Instruction Sets |
Computer Arithmetic (Ch 3) |
| Feb 7 | Computer Arithmetic | Computer Arithmetic |
Computer Arithmetic |
| Feb 14 | Computer Arithmetic |
Computer Arithmetic |
Processor Design (Ch 5) |
|
Feb 21 |
Processor Design | Processor Design |
Processor Design |
| Feb 28 | Processor Design | Processor Design | Memory Systems (Ch 7) |
| Mar 7 | Memory Systems | review for Midterm |
MIDTERM |
| Mar 14 |
SPRING BREAK |
||
| Mar 21 |
Memory Systems |
Memory Systems | Memory Systems |
| Mar 28 | Memory Systems | I/O (Ch 8) | I/O |
| Apr 4 | I/O | Pipelining (Ch 6) | Pipelining |
| Apr 11 | Pipelining |
Pipelining |
Advanced Topics |
| Apr 18 | Advanced Topics | Advanced Topics | Performance (Ch 4) |
| Apr 25 |
Performance |
Performance |
Reading Period |
| May 2 |
-------- EXAM WEEK -------- |
||