| Day |
Date |
Topic |
Reading |
Work Due |
| F |
8/26 |
|
- Read after class if necessary:
- 1.1: Introduction
- 1.2: Below Your Program
- 1.3: Under the Covers
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
8/29 |
|
|
|
| T |
8/30 |
|
|
|
| W |
8/31 |
-
Gates, Truth Tables, & Boolean Algebra
- Significant Bits: Linda
- (notes)
|
- C.1: Introduction
- C.2: Gates, Truth Tables, and Logic Equations
|
|
| F |
9/2 |
-
Reducing Boolean Expressions
- Significant Bits: Kamal
- (notes)
|
- Null & Lobur: Focus on Karnaugh Maps
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
9/5 |
|
|
|
| T |
9/6 |
|
|
|
| W |
9/7 |
-
Doing Math in Binary
- Significant Bits: Matt
- (notes)
|
- 2.4: Signed and Unsigned Numbers
- 3.2: Addition and Subtraction
|
|
| F |
9/9 |
-
Instructions & the ALU
- Significant Bits: Fengyuan
- (notes)
|
- C.5: Constructing a Basic Arithmetic Logic Unit
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
9/12 |
|
|
|
| T |
9/13 |
|
|
|
| W |
9/14 |
|
- C.7: Clocks
- C.8: Memory Elements: Flip-Flops, Latches, and Registers
|
|
| F |
9/16 |
-
Sequential Logic, continued
- Significant Bits: Eli
|
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
9/19 |
|
- C.9: Memory Elements: SRAMs and DRAMs
|
|
| T |
9/20 |
|
|
|
| W |
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
|
|
| F |
9/23 |
|
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
9/26 |
|
- 2.1: Introduction
- 2.2: Operations of the Computer Hardware
- 2.3: Operands of the Computer Hardware
|
|
| T |
9/27 |
|
|
|
| W |
9/28 |
-
From Assembly to Machine Code
- Significant Bits: Bea
- (notes)
|
- 2.5: Representing Instructions in the Computer
- 2.6: Logical Operations
|
|
| F |
9/30 |
-
Making Decisions
- Significant Bits: Sophie
- (notes)
|
- 2.7: Instructions for Making Decisions
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
10/3 |
|
- 2.8: Supporting Procedures in Computer Hardware
|
|
| T |
10/4 |
|
|
|
| W |
10/5 |
-
Implementing Procedures, continued
- Significant Bits: Hamza
|
|
|
| F |
10/7 |
-
Implementing Addressing
- Significant Bits: Ryan
- (notes)
|
- 2.10: MIPS Addressing for 32-Bit Immediates and Addresses
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
10/10 |
|
- 2.12: Translating and Starting a Program
- 2.13: A C Sort Example to Put It All Together
|
|
| T |
10/11 |
|
|
|
| W |
10/12 |
-
Multiplication & Division
- Significant Bits: Charlie
- (notes)
|
- 2.14: Arrays versus Pointers
- 3.3: Multiplication
- 3.4: Division
|
|
| F |
10/14 |
|
|
|
| Fall Break |
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
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
|
|
| T |
10/25 |
|
|
|
| W |
10/26 |
|
- 4.1: Introduction
- 4.2: Logic Design Conventions
|
|
| F |
10/28 |
-
The Datapath
- Significant Bits: Jerry
- (notes)
|
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
10/31 |
|
- 4.4: A Simple Implementation Scheme
|
|
| T |
11/1 |
|
|
|
| W |
11/2 |
-
Pause for breath
- Significant Bits: Adam W.
|
|
|
| F |
11/4 |
-
Pipelining
- Significant Bits: Hattie
- (notes)
|
- 4.5: An Overview of Pipelining
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
11/7 |
-
Controlling a Pipelined Datapath
- (notes)
|
- 4.6: Pipelined Datapath and Control
|
|
| T |
11/8 |
|
|
|
| W |
11/9 |
-
Data Hazards
- Significant Bits: Maddie
- (notes)
|
- 4.7: Data Hazards: Forwarding versus Stalling
|
|
| F |
11/11 |
-
Control Hazards & Exceptions
- Significant Bits: Devin
- (notes)
|
- 4.8: Control Hazards
- 4.9: Exceptions
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
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
|
|
| T |
11/15 |
|
|
|
| W |
11/16 |
|
|
|
| F |
11/18 |
|
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
11/21 |
|
- 5.1: Introduction
- 5.2: The Basics of Caches
|
|
| T |
11/22 |
|
- 5.3: Measuring and Improving Cache Performance
|
|
| W |
11/23 |
-
Virtual Memory
- Significant Bits: Tanner
- (notes)
|
|
|
| Thanksgiving Break |
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
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
|
|
| T |
11/29 |
|
|
|
| W |
11/30 |
-
Storage
- Significant Bits: Theo
- (notes)
|
- 6.1: Introduction
- 6.2: Dependability, Reliability, and Availability
- 6.3: Disk Storage
- 6.4: Flash Storage
|
|
| F |
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
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| M |
12/5 |
|
|
|
| T |
12/6 |
|
|
|
| W |
12/7 |
-
Review
- Significant Bits: Adam H.
- (notes)
|
|
|
| F |
12/9 |
|
|
|
| Day |
Date |
Topic |
Reading |
Work Due |
| W |
12/14 |
-
Final Exam: 9:00am–noon
|
|
|