Schedule

Week 0
Date Topic Reading Work Due
8/26
  • Read after class if necessary:
  • 1.1: Introduction
  • 1.2: Below Your Program
  • 1.3: Under the Covers
Week 1
Date Topic Reading Work Due
8/29
8/30
  • No reading
8/31
  • Gates, Truth Tables, & Boolean Algebra
  • Significant Bits: Linda
  • (notes)
  • C.1: Introduction
  • C.2: Gates, Truth Tables, and Logic Equations
9/2
  • Reducing Boolean Expressions
  • Significant Bits: Kamal
  • (notes)
  • Null & Lobur: Focus on Karnaugh Maps
Week 2
Date Topic Reading Work Due
9/5
  • C.3: Combinational Logic
9/6
  • No reading
9/7
  • Doing Math in Binary
  • Significant Bits: Matt
  • (notes)
  • 2.4: Signed and Unsigned Numbers
  • 3.2: Addition and Subtraction
9/9
  • Instructions & the ALU
  • Significant Bits: Fengyuan
  • (notes)
  • C.5: Constructing a Basic Arithmetic Logic Unit
Week 3
Date Topic Reading Work Due
9/12
  • No reading
9/13
  • No reading
9/14
  • C.7: Clocks
  • C.8: Memory Elements: Flip-Flops, Latches, and Registers
9/16
  • Sequential Logic, continued
  • Significant Bits: Eli
  • No reading
Week 4
Date Topic Reading Work Due
9/19
  • C.9: Memory Elements: SRAMs and DRAMs
9/20
  • No reading
9/21
  • Power, Performance, and Multicore
  • Significant Bits: Ana
  • (notes)
  • 1.4: Performance
  • 1.5: The Power Wall
  • 1.6: The Sea Change: The Switch from Uniprocessors to Multiprocessors
9/23
  • Exam 1
  • No reading
Week 5
Date Topic Reading Work Due
9/26
  • 2.1: Introduction
  • 2.2: Operations of the Computer Hardware
  • 2.3: Operands of the Computer Hardware
9/27
  • No reading
9/28
  • From Assembly to Machine Code
  • Significant Bits: Bea
  • (notes)
  • 2.5: Representing Instructions in the Computer
  • 2.6: Logical Operations
9/30
  • Making Decisions
  • Significant Bits: Sophie
  • (notes)
  • 2.7: Instructions for Making Decisions
Week 6
Date Topic Reading Work Due
10/3
  • 2.8: Supporting Procedures in Computer Hardware
10/4
  • No reading
10/5
  • Implementing Procedures, continued
  • Significant Bits: Hamza
  • No reading
10/7
  • Implementing Addressing
  • Significant Bits: Ryan
  • (notes)
  • 2.10: MIPS Addressing for 32-Bit Immediates and Addresses
Week 7
Date Topic Reading Work Due
10/10
  • 2.12: Translating and Starting a Program
  • 2.13: A C Sort Example to Put It All Together
10/11
  • No reading
10/12
  • Multiplication & Division
  • Significant Bits: Charlie
  • (notes)
  • 2.14: Arrays versus Pointers
  • 3.3: Multiplication
  • 3.4: Division
10/14
  • Exam 2
  • No reading
Fall Break
Week 8
Date Topic Reading Work Due
10/24
  • Instruction Set Architectures
  • (notes)
  • 2.16: Real Stuff: ARM Instructions
  • 2.17: Real Stuff: x86 Instructions
  • 2.18: Fallacies and Pitfalls
  • 2.19: Concluding Remarks
10/25
  • No reading
10/26
  • 4.1: Introduction
  • 4.2: Logic Design Conventions
10/28
  • The Datapath
  • Significant Bits: Jerry
  • (notes)
  • 4.3: Building a Datapath
Week 9
Date Topic Reading Work Due
10/31
  • 4.4: A Simple Implementation Scheme
11/1
  • No reading
11/2
  • Pause for breath
  • Significant Bits: Adam W.
  • No reading
11/4
  • Pipelining
  • Significant Bits: Hattie
  • (notes)
  • 4.5: An Overview of Pipelining
Week 10
Date Topic Reading Work Due
11/7
  • Controlling a Pipelined Datapath
  • (notes)
  • 4.6: Pipelined Datapath and Control
11/8
  • No reading
11/9
  • Data Hazards
  • Significant Bits: Maddie
  • (notes)
  • 4.7: Data Hazards: Forwarding versus Stalling
11/11
  • Control Hazards & Exceptions
  • Significant Bits: Devin
  • (notes)
  • 4.8: Control Hazards
  • 4.9: Exceptions
Week 11
Date Topic Reading Work Due
11/14
  • 4.10: Parallelism and Advanced Instruction-Level Parallelism
  • 4.11: Real Stuff: the AMD Opteron X4 (Barcelona) Pipeline
  • 4.13: Fallacies and Pitfalls
  • 4.14: Concluding Remarks
11/15
  • No reading
11/16
  • No reading
11/18
  • Exam 3
  • No reading
Week 12
Date Topic Reading Work Due
11/21
  • 5.1: Introduction
  • 5.2: The Basics of Caches
11/22
  • 5.3: Measuring and Improving Cache Performance
11/23
  • Virtual Memory
  • Significant Bits: Tanner
  • (notes)
  • 5.4: Virtual Memory
Thanksgiving Break
Week 13
Date Topic Reading Work Due
11/28
  • Cache Implementation Strategies
  • (notes)
  • 5.5: A Common Framework for Memory Hierarchies
  • 5.7: Using a Finite-State Machine to Control a Simple Cache
11/29
  • No reading
11/30
  • Storage
  • Significant Bits: Theo
  • (notes)
  • 6.1: Introduction
  • 6.2: Dependability, Reliability, and Availability
  • 6.3: Disk Storage
  • 6.4: Flash Storage
12/2
  • Input and Output
  • Significant Bits: Jacob
  • (notes)
  • 6.5: Connecting Processors, Memory, and I/O Devices
  • 6.6: Interfacing I/O Devices to the Processor, Memory, and Operating System
Week 14
Date Topic Reading Work Due
12/5
  • Parallelism, revisited
  • No reading
12/6
  • No reading
12/7
  • Review
  • Significant Bits: Adam H.
  • (notes)
  • No reading
12/9
  • Final Remarks
  • No reading
Finals Week
Date Topic Reading Work Due
12/14
  • Final Exam: 9:00am–noon
  • No reading