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:

Professor Daniel J. Sorin

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.

ing.pdf">lecture notes #30 (Apr 18)
Topic Reading Assignments
Course Introduction and Overview
     lecture notes #1 (Jan 12)
     lecture notes #2 (Jan 14/19)
Chapter 1
Instruction Sets and Assembly Programming
     lecture notes #3 (Jan 24)
     lecture notes #4 (Jan 26-31) 
     lecture notes #5 (Feb 2)
Chapter 2 (and some excerpts from Appendix A)
Computer Arithmetic and ALU Design
     lecture notes #6 (Feb 4)
     lecture notes #7 (Feb 7)
     lecture notes #8 (Feb 9)
     lecture notes #9 (Feb 11)
     lecture notes #10 (Feb 14)
Chapter 3
Processor Design: Datapath and Control
     lecture notes #11 (Feb 16)
     lecture notes #12 (Feb 18)
     lecture notes #13 (Feb 21)
     lecture notes #14 (Feb 23)
     lecture notes #15 (Feb 25)
Chapter 5
Memory and Caches
     lecture notes #16 (Feb 28/Mar 2)
     lecture notes #17 (Mar 2)
     lecture notes #18 (Mar 4)
     lecture notes #19 (Mar 7)
     lecture notes #20 (Mar 21/23)
     lecture notes #21 (Mar 25)
     lecture notes #22 (Mar 28)
     lecture notes #23 (Mar 30/Apr 1)
Chapter 7
I/O
     lecture notes #24 (Apr 4)
     lecture notes #25 (Apr 6)
     lecture notes #26 (Apr 8)
Chapter 8
Pipelining and Advanced Topics
     lecture notes #27 (Apr 11)
     lecture notes #28 (Apr 13)
     lecture notes #29 (Apr 15)
     Fall 2004:  ECE 254 / CPS 225: Fault Tolerant and Testable Computing Systems
Chapter 6
Performance Evaluation
     lecture notes #31 (Apr 20)
     lecture notes #32 (Apr 22)
Chapter 4
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  --------