| Date | Lecture | Reading | Homework | ||
| Week 0: | |||||
| Fri | Aug | 29 | Introduction | Syllabus | Read Chapter 1 |
| Week 1: | |||||
| Mon | Sept | 1 | Memory Model, Byte Ordering, Binary, Hex | 2.1 | |
| Tues | Sept | 2 | HWLab1: Breadboard/Arduino Intro | ||
| Wed | Sept | 3 | Quiz; Booleans and Bit Operations | ||
| Fri | Sept | 5 | Integer Representations; Conversions | 2.2 | Datalab Out (datalab-handout.tar); Lab2 Prelab Out |
| Week 2: | |||||
| Mon | Sept | 8 | Two's Complement (hexdec.cpp) | 2.2-2.3 | |
| Tues | Sept | 9 | HWLab2: Combinational Building Blocks IC Docs; MuxValidate.cpp | Lab2 Prelab Due | |
| Wed | Sept | 10 | Quiz; Integer Arithmetic | 2.3 | |
| Fri | Sept | 12 | Program Encodings, Data Formats | 3.1-3.3 | Lab3 Prelab Out |
| Week 3: | |||||
| Mon | Sept | 15 | Assembly Language Introduction by Example | 3.4 | |
| Tues | Sept | 16 | HWLab3: Karnaugh Map Simplification; pot2binary.cpp | ||
| Wed | Sept | 17 | Disassembly and inferring semantics of instruction operands and execution | 3.5 | Datalab Due |
| Fri | Sept | 19 | Movement, Arithmetic, Logical Instructions | 3.5 | ALULab Project and ALU.circ template (and no prelab) |
| Week 4: | |||||
| Mon | Sept | 22 | Parameter passing | 3.7.1 | |
| Tues | Sept | 23 | HWLab4: Sensors and Actuators | ||
| Wed | Sept | 24 | Function call and return and stack frame arith.c | 3.7.2 | |
| Fri | Sept | 26 | More arithmetic and logical instructions | ||
| Week 5: | |||||
| Mon | Sept | 29 | hello.s: Asm and GDB/DDD | ALU Due; Bomblab Out | |
| Tues | Sept | 30 | HWLab5: Sequential Circuit Introduction | ||
| Wed | Oct | 1 | Midterm 1 | ||
| Fri | Oct | 3 | Condition Codes and use by categories of Machine Instructions | 3.6.1-3.6.4 | |
| Week 6: | |||||
| Mon | Oct | 6 | Caller/Callee saves; Loops in Asm | 3.6.5; 3.7.3 | NextClass hello.s loop |
| Tues | Oct | 7 | Midterm1 2nd chance; bomblab questions | ||
| Wed | Oct | 8 | Switch Statements and Asm jump tables; Recursion practicum | 3.6.7, 3.8 | |
| Fri | Oct | 10 | Data structures (list.c); Intro buffer overflow | 3.9, 3.12 | NextClass prime.s recursion, Lab6 Prelab Out |
| Week 7: | |||||
| Mon | Oct | 13 | Buffer overflow completion; Intro Y86 ISA | 3.12, 4.1 | Bomblab Due; Buflab Out |
| Tues | Oct | 14 | HWLab6: Motor control | ||
| Wed | Oct | 15 | Y86 ISA, Encoding | ||
| Fri | Oct | 17 | No class: Fall Study Break | ||
| Week 8: | |||||
| Mon | Oct | 20 | Y86 Program Walk-through; Encoding Refresher | 4.1 | |
| Tues | Oct | 21 | HWLab7: Ant Brain - ant.tar | ||
| Wed | Oct | 22 | Sequential Datapath I: Building Blocks, Initial Stages | Skim 4.2; Start 4.3 | NextClass: Y86 Sum first N integers |
| Fri | Oct | 24 | Sequential Datapath II: Complete stages with instruction walk-through | 4.3 | NextClass: Recursive Sum of List of integers; Buflab Due |
| Week 9: | |||||
| Mon | Oct | 27 | Group Design: RTL for Y86 Instructions | ||
| Tues | Oct | 28 | HWLab7 Part II: AntBrain | ||
| Wed | Oct | 29 | Midterm 2 | Y86 Datapath - CPULab1.tar | |
| Fri | Oct | 31 | Y86 Datapath Walkthrough | 4.3-4.4 | |
| Week 10: | |||||
| Mon | Nov | 3 | SEQ Control Path | ||
| Tues | Nov | 4 | Stepper Motor Controller: StepperMotor.h, StepperMotor.cpp | Y86 Control - CPULab2.tar | |
| Wed | Nov | 5 | Cache I | Skim 6.1; Read 6.2, 6.3 carefully | CPUlab Datapath Assignment Due; NC - Y86 SearchArray.ys due |
| Fri | Nov | 7 | Cache II | 6.4 | Cachelab Out - cachelab-handout.tar |
| Week 11: | |||||
| Mon | Nov | 10 | Conclude Memory Hierarchy | CPUlab Controlpath Due | |
| Tues | Nov | 11 | No Lab; Cachelab Advice | ||
| Wed | Nov | 12 | Exceptional Control Flow (slides); Process Intro (fork.c) | 8.1-8.4 | |
| Fri | Nov | 14 | Signals (slides) | 8.5 | |
| Week 12: | |||||
| Mon | Nov | 17 | More ECF and Processes and Signals (myfork.c) | 8.5 | Cachelab Due; Shell Lab Out, shlab-handout.tar |
| Tues | Nov | 18 | Final HW Lab Project Planning | ||
| Wed | Nov | 19 | Signals and Concurrency | Non-queueing Signals NextClass | |
| Fri | Nov | 21 | Pipelining I | ||
| Week 13: | |||||
| Mon | Dec | 1 | Pipelining II | ||
| Tues | Dec | 2 | Final HW Lab Project | ||
| Wed | Dec | 3 | Floating Point Representation I | Shell Lab Stage I Demo | |
| Fri | Dec | 5 | Floating Point Representation II | Shell Lab Stage III Demo | |
| Week 14: | |||||
| Mon | Dec | 8 | Review and Wrapup | Shlab Due | |
| Tues | Dec | 9 | Final HW Lab Project | ||
| Wed | Dec | 10 | Midterm 3 | ||
| Fri | Dec | 12 | HW Lab Project Demonstration Day | ||
| Final Exam: | |||||
| Thurs | Dec | 18 | Final Exam 9-11 am | ||
| | |||||