ECE 252 / CPS 220

Advanced Computer Architecture I

Fall 2009
Professor Daniel J. Sorin

                  

 Objectives
The objective of this course is to learn the fundamental aspects of computer architecture design and analysis.
The course focuses on processor design, pipelining, superscalar, out-of-order execution, caches (memory hierarchies), virtual memory, storage
systems, and simulation techniques. Advanced topics include a survey of parallel architectures and future directions in computer architecture.
Prerequisites: ECE 152, CPS 104, or consent of instructor.
Class Location and Hours

 

Class meets Monday/Wednesday/Friday from 10:20am - 11:10am.

Location: 216 Hudson Hall

 Instructor, Teaching Assistants, and News Group

 

Professor Daniel J. Sorin

Office: 209C Hudson Hall

Office Hours: Tues 12:30-1:30, Fri 11:10-12:00

Email: sorin AT ee DOT duke DOT edu (email subject must begin with ECE252)

 

Teaching Assistants:

Meng Zhang: mz28 AT ee DOT duke DOT edu, office hours Fri 2:00-3:00 at Hudson Hall 224

Jun Pang: pangjun AT cs DOT duke DOT edu, office hours Thurs 1:30-2:30 at LSRC D339

 

Required Textbook
Computer Architecture: A Quantitative Approach, 4th edition, by Hennessy and Patterson
 Assignments and Grading
This course will require readings from the textbooks and from selected research papers.  While you will not be quizzed on readings, you
should still be certain to have read them before class so that you can learn from the class.  And, to appeal to your practical side, all readings are
fair game for the exams.  Added bonus: you will be better at reading research papers at the end of this class than at the beginning.

Students are responsible for:

Note to Computer Science students: Qualifying grade is based only on the midterm and final.

Late policy for homework and project (except for dean's excuses):
        Homework: <1 day late = 50% off
                           >1 day late = 0
        Project: No late projects will be accepted!
Academic Misconduct: I will not tolerate academically dishonest work.  This includes cheating on the exams and plagiarism on the project.  
Be careful on the project to cite prior work and to give proper credit to others' research. 
Refer to the Duke Undergraduate Honor Code or to the instructor if you have any questions about misconduct.
 Topics, Lecture Notes, and Reading Assignments (still in flux!!)

I will post lecture notes (in PDF format) shortly before I cover them in class.  Click on topic title for link to notes.

Readings in blue will be provided by the instructor (click on links below for PS or PDF).

Topic Reading Assignments
Course Introduction & Computer Performance H/P Chapter 1;
"Instruction Sets and Beyond: Computers, Complexity, and Controversy"
Pipelined Processors
     part 1
     part 2
     part 3
     part 4
H/P Appendix A; 
"The Optimal Pipeline Depth Per Pipeline Stage is 6-8 FO4 Inverter Delays"
Hardware/Dynamic Exploitation of Instruction Level Parallelism
    part 1
    part 2
    part 3
    part 4
    part 5
    part 6
    part 7
H/P 2 and 3 (3 is optional);  
"The Microarchitecture of the Pentium 4 Processor"
;
"Complexity-Effective Superscalar Processors"
"Checkpoint Processing and Recovery: Towards Scalable Large Instruction Window Processors"
Software/Static Exploitation of Instruction Level Parallelism
    part 1
    part 2
H/P Chapter 2;
"EPIC: Explicitly Parallel Instruction Computing"
Advanced Cache/Memory Designs
    part 1 (of 1)
H/P Chapter 5;
"An Adaptive, Non-Uniform Cache Structure for Wire-Dominated On-Chip Caches"
"A Fully-Associative Software-Managed Cache Design"
;
"Exceeding the Dataflow Limit via Value Prediction"

Multithreading, Multicore, and Multiprocessors
          Motivations: Power Efficiency, ILP Limits, and TLP
          Multithreading
          Multicore Processors

    part 1 
    part 2
    part 3

H/P Chapter 4 (and 3.5); 
"Power: A First Class Design Constraint"

"Exploiting Choice: Instruction Fetch and Issue on an Implementable Simultaneous Multithreading Processor"

"Multiscalar Processors"

"Simultaneous Speculative Threading: A Novel Pipeline Architecture Implemented in Sun's ROCK Processor"
"NVidia Tesla: A Unified Graphics and Computing Architecture"
 

Advanced Topics: Fault Tolerance, Virtual Machines, Security, Tiled Processors, Nanocomputing

"Argus: Low-Cost, Comprehensive Error Detection in Simple Cores"
"Virtual Machine Monitors: Current Techology and Future Trends"

"RIFLE: An Architectural Framework for User-Centric Information-Flow Security"

"A Design Space Evaluation of Grid Processor Architectures"

"NANA: A Nano-scale Active Network Architecture"
 Homework

Homework policy: Each homework should be done in a group of 2 students.  For each homework, each group turns in ONE assignment to be graded.  This assignment should have the names of both students on it.  For electronic submission of simulator code (for some homework questions), one member of the group should upload code.

Homework #1, due Mon, Sept 7

Homework #2, due Weds, Sept 23

Homework #3, due Fri, Oct 9

Homework #4, due Fri, Oct 30

Homework #5, due Fri, Nov 13

 Project

The course project will be performed either individually or in groups of 2 or 3. 

Projects will explore a micro-architectural issue (of your choice) using SimpleScalar.  You will be expected to modify the code in sim-outorder as part of your project.   See Prof. Sorin for project guidelines and ideas.

Project proposals (2 pages max!!): Due Mon, Oct 12 in class.  Proposals must contain the following information:

Project reports (15 pages max!!): Due Monday, Nov 30 in class.  No exceptions!

 Schedule (tentative)

This is a tentative schedule which may change depending on time constraints and which days the instructor will be out of town.

Week

Monday

Wednesday

Friday

Aug 24

Intro/Performance

Performance

Pipelining

Aug 31

Pipelining

Pipelining

Pipelining

Sept 7

Dynamic ILP

Dynamic ILP

Dynamic ILP

Sept 14

Dynamic ILP

Dynamic ILP

Dynamic ILP

Sept 21

Dynamic ILP

Dynamic ILP

Dynamic ILP

Sept 28

Static ILP

Static ILP

Static ILP

Oct 5

FALL BREAK

Cache/Memory

Cache/Memory

Oct 12

Cache/Memory

REVIEW FOR MIDTERM

MIDTERM

Oct 19

Cache/Memory

Cache/Memory

Multithreading

Oct 26

Multithreading

Multicore

Multicore

Nov 2

Multicore

Multicore

Fault Tolerance

Nov 9

Fault Tolerance

Virtual Machines

Virtual Machines

Nov 16

Security

Tiled Processors Nanocomputing
Nov 23 REVIEW FOR FINAL

THANKSGIVING BREAK

 

Nov 30

PROJECT PRESENTATIONS

Dec 7

--------  EXAM WEEK  --------