| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| F |
8/25 |
|
- Read after class
- 1.1: Introduction
- 1.2: Below Your Program
- 1.3: Under the Covers
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
8/28 |
-
Circuits & Transistors
-
Logic Gates
- (notes)
|
|
|
|
| W |
8/30 |
|
|
|
|
| F |
9/1 |
-
Gates, Truth Tables, & Boolean Algebra
- (notes)
|
|
|
- Quiz 1 (Building Logic Gates)
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
9/4 |
|
|
|
|
| W |
9/6 |
|
|
|
|
| F |
9/8 |
|
- 2.4: Signed and Unsigned Numbers
- 3.2: Addition and Subtraction
|
|
- Quiz 2 (Using Logic Gates and Karnaugh Maps)
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
9/11 |
|
- C.5: Constructing a Basic Arithmetic Logic Unit
|
|
|
| W |
9/13 |
|
|
|
|
| F |
9/15 |
|
- C.7: Clocks
- C.8: Memory Elements: Flip-Flops, Latches, and Registers
|
|
- Quiz 3 (Combinational Logic)
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
9/18 |
|
- C.9: Memory Elements: SRAMs and DRAMs
|
|
|
| W |
9/20 |
|
|
|
|
| F |
9/22 |
|
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
9/25 |
-
Assembly Language & Machine Code
- (notes)
|
- 2.1: Introduction
- 2.2: Operations of the Computer Hardware
- 2.3: Operands of the Computer Hardware
- 2.5: Representing Instructions in the Computer
|
|
|
| W |
9/27 |
|
|
|
|
| F |
9/29 |
|
- 2.6: Logical Operations
- 2.7: Instructions for Making Decisions
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
10/2 |
|
- 2.8: Supporting Procedures in Computer Hardware
|
|
|
| W |
10/4 |
|
|
|
|
| F |
10/6 |
-
Strings, Arrays, and Addressing
- (notes)
|
- 2.9: Communicating with People
- 2.10: MIPS Addressing for 32-Bit Immediates and Addresses
- 2.14: Arrays versus Pointers
|
|
- Quiz 5 (Implementing Procedures)
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
10/9 |
|
- 2.12: Translating and Starting a Program
- 2.13: A C Sort Example to Put It All Together
|
|
|
| W |
10/11 |
|
|
|
|
| F |
10/13 |
|
|
|
|
| Fall Break |
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
10/23 |
|
|
|
|
| W |
10/25 |
|
- 2.16: Real Stuff: ARM Instructions
- 2.17: Real Stuff: x86 Instructions
- 2.18: Fallacies and Pitfalls
- 2.19: Concluding Remarks
|
|
|
| F |
10/27 |
|
- 4.1: Introduction
- 4.2: Logic Design Conventions
- 4.3: Building a Datapath
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
10/30 |
|
- 4.4: A Simple Implementation Scheme
|
|
|
| W |
11/1 |
|
|
|
|
| F |
11/3 |
|
- 4.5: An Overview of Pipelining
- 4.6: Pipelined Datapath and Control
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
11/6 |
|
|
|
|
| W |
11/8 |
|
|
|
|
| F |
11/10 |
|
- 4.7: Data Hazards: Forwarding versus Stalling
- 4.8: Control Hazards
- 4.9: Exceptions
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
11/13 |
-
Superscalar and Out-of-Order Execution
- (notes)
|
- 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
|
|
|
| W |
11/15 |
|
|
|
|
| F |
11/17 |
|
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
11/20 |
|
- 5.1: Introduction
- 5.2: The Basics of Caches
- 5.3: Measuring and Improving Cache Performance
- 5.7: Using a Finite-State Machine to Control a Simple Cache
|
|
|
| W |
11/22 |
|
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
11/27 |
-
Virtual Memory and Storage
|
- 5.4: Virtual Memory
- 6.1: Introduction
- 6.2: Dependability, Reliability, and Availability
- 6.3: Disk Storage
- 6.4: Flash Storage
|
|
|
| W |
11/29 |
|
|
|
|
| F |
12/1 |
|
|
|
- Quiz 9 (Caches and Virtual Memory)
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| M |
12/4 |
|
|
|
|
| W |
12/6 |
|
|
|
|
| F |
12/8 |
|
|
|
|
| Day |
Date |
Topic |
Reading |
Activities |
Work Due |
| F |
12/15 |
|
|
|
|