CS3220 - Processor Design
Spring 2005
Tue/Thu 4:25-5:55, CCB 102
Prof. Gabriel Loh

General Description: This post-2200 elective provides the student with an in-depth study of concepts and principles for designing pipelined processors. In particular, the course will take a basics-first bottom-up approach, starting from the transistor level and making our way up to a highly-detailed fully-pipelined processor.

Course Prereqs: CS2200

Anti-Prereqs: The begining of this course will cover some material that feels ECE-ish, but it will be presented assuming no previous background in electrical or computer engineering.

Project Component: Different from previous versions of this course, the project component will be simulator based (in the past, the project involved implementing processors on FPGA-based systems). We will use a non-trivial instruction set architecture, implement an assembler for the architecture, and then implement a detailed behavioral and timing simulator of a pipelined processor that executes programs generated by your assembler.

Versus Projects from CS3220 of the Past: The reason for switching to a simulation-based approach is that the design phase of modern processors is based primarily on simulation, and the implementation in hardware description languages (which was used for the FPGA-based projects) typically comes after the design portion of a project has been completed. This is not to say that hardware description languages don't matter anymore. On the contrary, I strongly recommend that any students that are serious about pursuing a career in the microprocessor industry take such courses in the ECE department.

Homework, Exams, Projects and Grading
Three problem sets (15% of grade)
Three Projects (50% of grade)
One mid-term exam (10% of grade)
One quiz Fourth Homework (5% of grade)
Final Exam (20% of grade)

Drop Date: Grades for all three homeworks and the mid-term will be available prior to the drop date.

Office Hours Immediately after class in my office (CCB221), from 6:00-7:00. If class ends early, then there will be longer office hours (until 7:00).

Collaboration Policy
Collaboration, Cheating, Plagarism, etc.

Lecture Slides, Notes, etc.
Lecture 0 (ppt slides)
Notes on the XOR gate example (pdf)
Quine-McCluskey example (pdf)
Adder Notes (pdf)
Carry Save Adder Notes (pdf)
Multiply/Divide Notes (pdf)
"Mathematics of the Pentium Division Bug" (pdf), by Alan Edelman (appears in SIAM Review 39, 1997, pp. 54-67)
ISA Notes (pdf)
Cache Notes (pdf)
w75 Pipelining Notes (pdf)
Vector-Processing/SIMD Notes (pdf)
Deeper Pipelining Notes (pdf)
Superscalar Execution Notes (pdf)
Out-of-Order Execution Notes (pdf), by Jim Smith and Guri Sohi (UWisc)

Homework/Problem Sets
Homework 1 (pdf) Due Jan 27, 2005 in class. (Solutions)
Homework 2 (pdf) Due Feb 08, 2005 in class. (Solutions)
Homework 3 (pdf) Due Feb 22, 2005 in class. (Solutions)
Homework 4 (pdf) Due Mar 17, 2005 in class. (Solutions)
Midterm Solutions (pdf)

Homework/Problem Sets
Project 1 (pdf), Auxilliary test file (binary)
Project 2 (pdf) Due Mar 19, 2005 via email.
Project 3 (pdf) Due Apr 21, 2005 via email.
Auxilliary Files:

Tentative Schedule:
  Date  Week/DayTopicsOther Notes
Jan 111/TueIntro, Semiconductors, Transistors, CMOS
Jan 131/ThuLogic gates, boolean functions, truth tables, K-maps, Quine-McCluskey
Jan 182/TueNumbers, Negatives, Simple Adders
Jan 202/ThuMore adders, parallel prefix, subtraction, shiftersHW1 handed out
Jan 253/TueMultiplication (Wallace trees, Booth)
Jan 273/ThuDivision (iterative, SRT)HW1 due
Feb 14/TueFloating PointHW2 handed out
Feb 34/ThuClocks, Latches, Flip-flops, FSMs
Feb 85/TueBasic ISA conceptsHW2 due
Feb 105/ThuMore ISA stuff, RISC vs. CISC, design tradeoffsHW3 handed out
Feb 156/TueThe w75 ISA for our projectsProject 1 Handed Out
Feb 176/ThuTechnology Symposium
Feb 227/TueDatapath and Control: 1-cycle CPU
Feb 247/ThuMidterm Exam
Mar 18/TuePipelining, hazards, interlocks, bypasses
Mar 38/ThuScoreboarding control logicPRJ1 due, PRJ2 handed out, midterm grades returned (Mar 4 last day to drop)
Mar 89/TueCaches, logic design of SRAMs
Mar 109/ThuMemory hierarchy, locality, line size tradeoffs
Mar 1510/TueHW Support for Virtual Memory
Mar 1710/ThuBranch PredictionPRJ2 due, PRJ3 handed out
Mar 22 Spring Break
Mar 24
Mar 2911/TueSuperscalar Pipelines
Mar 3111/ThuVector Processing/SIMD
Apr 512/TueDeepening the pipe: fetch/decode
Apr 712/ThuDeepening the pipe: register read, execute, bypass
Apr 1213/TuePower: spikes, di/dt drops, clock gating, drowsy/sleep transistors
Apr 1413/ThuBattery life, hot spots: efficiency of pipelining, power-performance metrics, V/F scaling
Apr 1914/TueOut of order processors
Apr 2114/ThuMulti-threadingPRJ3 due
Apr 2615/TueIn the year 2000 (preview of future topics in CS4290, CS4803)
Apr 2815/ThuOpen questions, reviewPRJ3 due
May 6Final: Friday, 8:00-10:50am, CoC 102


Gabriel H. Loh, © 2005
Last generated 29 Apr '05