cse141: Introduction to Computer Architecture

Lectures Tue. & Thu. 3:30pm-4:50pm (PCYNH 106); Disc. Section Fri. 5:00p-5:50p (CSB 002)
Winter, 2015
Shortcuts: Schedule Homeworks Piazza


Steven Swanson
Email: swanson @ cs.ucsd.edu
Office: See Piazza
Office Hours: See Piazza
UCSD homepage

Teaching Assistants

Soohyun Nam
Email: snam @ ucsd.edu
Office: See Piazza
Office Hours: See Piazza

Atieh Lotfi
Email: alotfi @ eng.ucsd.edu
Office: See Piazza
Office Hours: See Piazza

Vincent Kuri
Email: vkuri @ eng.ucsd.edu
Office: See Piazza
Office Hours: See Piazza

Course Description

This course will describe the basics of modern processor operation. Topics include computer system performance, instruction set architectures, pipelining, branch prediction, memory-hierarchy design, and a brief introduction to multiprocessor architecture issues.

This course is taught concurrently with 141L. Unless you have discussed it with you me, you should be in enrolled in both.

We will use Piazza extensively in the course for the distribution of slides, class announcements, etc. Please register for the class on Piazza.

Text books

Required: Patterson & Hennessy, Computer Organization and Design: The Hardware/Software Interface, Patterson & Hennessy, Morgan Kaufmann, 5th Edition
Required: Other assigned readings throughout the quarter.
Optional: The History of Computing This a great set of lectures from a course taught at UCSD/UW/Berkeley three years ago. Most of them are by the folks that actually made the history (Steve Wozniak, Ray Ozzie, Gordon Bell, etc.). We won't discuss it directly in class, but if you want to be a literate computer scientist, you should watch/listen to them at some point.
Optional: The Information: A History, A Theory, A Flood This is an amazing book that ties together a bunch of threads that gave rise to computing (Babbage, Turing, Shannon, Bool, Lovelace, von Neumann, Goedel, etc.). It provides excellent perspective on how information processing evolved over time. We won't discuss it directly in class, but if you want to be a literate computer scientist, you should read it at some point.


Homework 20% Homeworks will be assigned throughout the course. They are due on Thursdays
Reading quizzes 10% Every day there will be a quick quiz at the beginning of class.
Clicker Participation 10% Answer clicker questions in class.
Midterm 25% Midterm is on February 12th. Self Explanatory
Final 35% The final is on Mar 17th. It will be cumulative.

Additional notes about grades in this course:


I will post the slides for most lectures. Since the slides contain material I am not allowed to distribute publically, they are password protected. I have posted the username and password to the google group.

Reading should be done before class on the day they are listed. It is essential that you do the readings. I will not cover everything you are responsible for in class.

Date Topic Readings Due Notes
Tuesday, January 6 Introduction to ISAs
Thursday, January 8 MIPS Review: 1.3-1.4,; Read: 2.1-2.14 Assignment 1-1; Assignment 1-2; Assignment 1-3; For 2.1-2.9 many of the concepts should be review from cse30, but the MIPS ISA is new.
Tuesday, January 13 MIPS Read 1.1-1.2, 1.5-1.11.
Thursday, January 15 MIPS Read 1.5-1.9 Assignment 2;
Tuesday, January 20 Performance Measurement
Thursday, January 22 Performance Measurement TBA Assignment 3;
Tuesday, January 27 Other ISAs 2.16-2.18
Thursday, January 29 Pipelining 4.1-4.8 Assignment 4;
Tuesday, February 3 Pipelining
Thursday, February 5 Data Hazards Assignment 5;
Tuesday, February 10 Midterm review
Thursday, February 12 Midterm
Tuesday, February 17 Out-of-Order Execution/Introduction Chip-Multiprocessors 4.10-4.12
Thursday, February 19 Caching 5.1-5.3, 5.7, 5.10 Assignment 6;
Tuesday, February 24 Caching TBA
Thursday, February 26 Caching TBA Assignment 7;
Tuesday, March 3 Virtual memory/Final review
Thursday, March 5 GPUs C.1-C.4, C.7 Assignment 8; Appendix C is here.
Tuesday, March 10 Storage Systems / Miscellaneous
Thursday, March 12 Final review Assignment 9;
Tuesday, March 17 Final 3:00p - 6:00p

Integrity Policy


Assignment 1: Secret Username and Clicker Registration
Assignment 2: Instruction Set Architecture, Performance and Other ISAs
Assignment 3: Instruction Set Architecture, Performance and Other ISAs (continued)
Assignment 4: Performance Measurement
Assignment 5: Amdahl's law, Other ISAs
Assignment 6: Pipelining and Hazards
Assignment 7: Hazard,Branch Prediction, Register Renaming
Assignment 8: Introduction to Caches
Assignment 9: Cache, Virtual Memory