Schedule
The schedule below shows the tentative dates for all class topics, readings, and assignments.
You should complete all assigned reading before class on the day it is listed.
Labs will be available shortly before the assigned lab day.
There may be some revisions to the schedule during the semester, but I will make sure to announce these changes in class.
If you view this page with JavaScript enabled you can jump to the current week on the schedule, and you should see the next day of class highlighted in the schedule below.
Jump to Current Week
Week 0
F
Aug 31
Reading
-
Read after class
-
1.1: Introduction
-
1.2: Eight Great Ideas in Computer Architecture
-
1.3: Below Your Program
-
1.4: Under the Covers
Week 1
M
Sep 3
Circuits, Transistors, and Logic Gates
F
Sep 7
Gates, Truth Tables, and Boolean Algebra
Week 2
F
Sep 14
Reading
-
2.4: Signed and Unsigned Numbers
-
3.2: Addition and Subtraction
Week 3
M
Sep 17
Reading
-
B.5: Constructing a Basic Arithmetic Logic Unit
F
Sep 21
Reading
-
B.7: Clocks
-
B.8: Memory Elements: Flip-Flops, Latches, and Registers
Week 4
M
Sep 24
Reading
-
B.9: Memory Elements: SRAMs and DRAMs
F
Sep 28
Assembly Language and Machine Code
Reading
-
2.1: Introduction
-
2.2: Operations of the Computer Hardware
-
2.3: Operands of the Computer Hardware
-
2.5: Representing Instructions in the Computer
-
2.6: Logical Operations
Week 5
F
Oct 5
Conditionals and Procedures
Reading
-
2.7: Instructions for Making Decisions
-
2.8: Supporting Procedures in Computer Hardware
Week 6
F
Oct 12
Strings, Arrays, and Addressing
Reading
-
2.9: Communicating with People
-
2.10: MIPS Addressing for 32-Bit Immediates and Addresses
-
2.14: Arrays versus Pointers
Week 7
M
Oct 15
Reading
-
2.12: Translating and Starting a Program
-
2.13: A C Sort Example to Put It All Together
Week 8
M
Oct 29
Reading
-
4.1: Introduction
-
4.2: Logic Design Conventions
-
4.3: Building a Datapath
-
4.4: A Simple Implementation Scheme
F
Nov 2
Reading
-
4.1: Introduction
-
4.2: Logic Design Conventions
-
4.3: Building a Datapath
-
4.4: A Simple Implementation Scheme
Week 9
M
Nov 5
Reading
-
4.5: An Overview of Pipelining
-
4.6: Pipelined Datapath and Control
F
Nov 9
Reading
-
4.7: Data Hazards: Forwarding versus Stalling
Week 10
M
Nov 12
Reading
-
4.8: Control Hazards
-
4.9: Exceptions
W
Nov 14
Reading
-
4.10: Parallelism via Instructions
Week 11
F
Nov 23
No Class – Thanksgiving Break
Have a great break.
Week 12
M
Nov 26
Reading
-
5.1: Introduction
-
5.2: Memory Technologies
-
5.3: The Basics of Caches
-
5.4: Measuring and Improving Cache Performance
W
Nov 28
Reading
-
5.9: Using a Finite-State Machine to Control a Simple Cache
F
Nov 30
Reading
-
5.4: Measuring and Improving Cache Performance
-
5.7: Virtual Memory
-
5.8: A Common Framework for Memory Hierarchy
Week 13
M
Dec 3
Reading
-
1.6: Performance
-
1.7: The Power Wall
F
Dec 7
Reading
-
6.1: Introduction
-
6.2: The Difficulty of Creating Parallel Processing Programs
-
6.3: SISD, MIMD, SIMD, SPMD, and Vector
Week 14
M
Dec 10
Reading
-
6.4: Hardware Multithreading
-
6.5: Multicore and Other Shared Memory Multiprocessors
-
6.6: Introduction to Graphics Processing Units