Spring 2013: Introduction to Computer Architecture
ECE 496, TuTh 1:25PM - 2:40PM, Hudson 208

[Syllabus]
The objective of this course is to learn how computers work, focusing on how hardware executes software. Topics include instruction sets, computer arithmetic, processor design, memory system design, and input/output. Teams of students will design and build a computer in real hardware and then run programs on it. Pre-requisites: ECE52 and ability to program in a high-level language (e.g., C, C++, Java).



Teaching Team

Professor Benjamin Lee
benjamin.c.lee@duke.edu
Office Hours: Fr 4-5pm and by appt.
Office: Hudson 210

Oliver Fang (Teaching Assistant)
oliver.fang@duke.edu
Office Hours: Mo 3-4pm
Office: Hudson 202A

James Hong (Teaching Assistant)
james.hong@duke.edu
Office Hours: We 430-530pm
Office: Hudson Link

Amay Jhaveri (Teaching Assistant)
amay.jhaveri@duke.edu
Office Hours: Th 5-6pm
Office: Hudson 202A

Zachary Michaelov (Teaching Assistant)
zachary.michaelov@duke.edu
Office Hours: Mo 1-2pm
Office: Hudson 202A

Mason Meier (Teaching Assistant)
mason.meier@duke.edu
Office Hours: Tu 5-6pm
Office: Hudson 202A



Required Textbook

D.A. Patterson and J.L. Hennessy. Computer Organization and Design: The Hardware/Software Interface, 4th Edition, Morgan-Kaufmann.



Lecture Slides

1/10

Introduction and Overview (slides)

1/17

Instruction Set Architecture (slides)

1/29

Arithmetic and ALU Design (slides)

2/12

Processor and Datapath Design (slides)

2/19

Pipelining (slides)

3/18

Caches (slides)

4/2

Memory (slides)

4/11

I/O (slides)

4/16

Multicore (slides)



Homework

1/22

Homework 1 (pdf)

2/7

Homework 2 (pdf)

2/19

Homework 3 (pdf)

3/7

Homework 4 (pdf)

4/16

Homework 5 (pdf)



Project

ISA

Instruction Set Architecture (pdf)

1/18

1. Register File (pdf)

1/25

2. Memory (pdf)

2/8

3. Shifter/Adder (pdf)

2/21

4. ALU (pdf)

3/19

5. Unpipelined CPU (pdf)

4/9

6. Pipelined CPU (pdf)

4/23

7. Assembly Challenge (pdf)