Week 0: |
Fri |
Sept |
2 |
Introduction |
Syllabus |
Read Chapter 1 |
Week 1: |
Mon |
Sept |
5 |
Info Storage 1: Binary/Hex, Data Sizes, Ordering, Strings |
1, 2.1.1 thru 2.1.4 |
|
Tues |
Sept |
6 |
HWLab1: Breadboard/Arduino Intro |
|
|
Wed |
Sept |
7 |
Info Storage 2: Boolean Ops, C Bit, Logical, Shift Ops (bool.c) |
2.1.5 thru 2.1.9 |
|
Fri |
Sept |
9 |
C Operations; Memory Ordering; Strings, if time |
|
Lab01 Writeup Due by class time
|
Week 2: |
Mon |
Sept |
12 |
Integer Representations: Unsigned, Two's Complement (hexdec.cpp) |
2.2 thru 2.2.3 |
|
Tues |
Sept |
13 |
No Class: Flipped Classroom Prep |
|
|
Wed |
Sept |
14 |
Conversions: Signed/Unsigned, expanding, truncating |
2.2.4 thru 2.2.8 |
|
Fri |
Sept |
16 |
Integer Arithmetic I: Addition (Overflow), Negation |
2.3 thru 2.3.3 |
Lab2 Prelab Out |
Week 3: |
Mon |
Sept |
19 |
Flipped Class Post Mortem -- addition and overflow, negation, bit ops for checking positive or negative overflow |
|
|
Tues |
Sept |
20 |
HWLab2: Combinational Building Blocks IC Docs; MuxValidate.cpp |
|
Datalab I Project Out (datalab-handout.tar) |
Wed |
Sept |
21 |
Integer Arithmetic II: Signed/Unsigned Multiplication, Mult/Dvide by Constants and Powers of 2 |
2.3.4 thru 2.3.8 |
|
Fri |
Sept |
23 |
Program Encodings; Data Formats |
3.1 to 3.3 |
Lab writeup due by classtime to submitbox |
Week 4: |
Mon |
Sept |
26 |
Data Formats, x86_64 movement instructions |
3.4 |
|
Tues |
Sept |
27 |
Prelab03, Lab03: Boolean Function Simplification |
|
Datalab I Due by 11:59pm |
Wed |
Sept |
28 |
Movement Instructions through swap() |
3.5 |
|
Fri |
Sept |
30 |
Arith Logic; Control I |
3.6 |
|
Week 5: |
Mon |
Oct |
3 |
Control II: cmp, set, jmp |
|
|
Tues |
Oct |
4 |
Lab 4a: Sonar/Lights/Buzzer |
|
|
Wed |
Oct |
5 |
Control to Procedures: call, ret, push, pop; conventions |
3.7 |
Bomblab Out (bomblab request); gdb single page of commands
|
Fri |
Oct |
7 |
Midterm 1 |
|
|
Week 6: |
Mon |
Oct |
10 |
switch statements; function calls and the stack |
|
|
Tues |
Oct |
11 |
Lab 4b: Sonar/Lights/Buzzer |
|
Hack 'N Help at 7:30 pm |
Wed |
Oct |
12 |
Stack discipline: caller vs. callee saved registers |
|
Bomblab Phases 1-4 Due; Hack 'N Help on Midterm Questions |
Fri |
Oct |
14 |
Finishing Stack Discipline/Conventions |
|
|
Week 7: |
Mon |
Oct |
17 |
Data and Buffer Overflow |
Remainder of Chapter 3; Data And Overflow Notes |
|
Tues |
Oct |
18 |
Lab 05: Multi-sensors and Serrvo Motor Actuator |
|
Bomblab Phases 5-6 Due; Attacklab Out (attacklab request) |
Wed |
Oct |
19 |
Buffer Overflow conclusion |
|
|
Fri |
Oct |
21 |
No class: Fall Study Break |
|
|
Week 8: |
Mon |
Oct |
24 |
Y86 Instruction Set Architecture and Encoding |
4.1 |
Lab06 Prelab |
Tues |
Oct |
25 |
Lab06: Finite State Machines and Sequential Circuits |
|
Lab05 Writeup Due |
Wed |
Oct |
26 |
Y86 Instruction Encoding II |
4.3 |
|
Fri |
Oct |
28 |
Y86 Instruction Semantics |
Y86 Arch and SEQ Org |
ctarget Attacklab phases due |
Week 9: |
Mon |
Oct |
31 |
Y86 Instruction Stage Requirements |
|
|
Tues |
Nov |
1 |
Lab07: Hardware Multiply (Hardware Multiply) |
|
rtarget Attacklab phases due |
Wed |
Nov |
2 |
Y86 CPU Datapath and Functional Elements |
|
Recursive Linked List Search in Y86 |
Fri |
Nov |
4 |
Y86 CPU Control (y86.circ, imem.circ) |
|
Y86 Logisim CPU out |
Week 10: |
Mon |
Nov |
7 |
Midterm 2 |
|
Sunday Q&A at 8 pm |
Tues |
Nov |
8 |
Lab08: Y86 CPU (regs.circ, alu.circ, dmem.circ, yo2imem, yo2dmem) |
|
|
Wed |
Nov |
9 |
Exceptional Control Flow (notes, slides): Concepts to Processes |
8.1, 8.2 |
|
Fri |
Nov |
11 |
Exceptional Control Flow II: Fork, Exec, Process Control |
8.3, 8.4 |
Shell Lab Out |
Week 11: |
Mon |
Nov |
14 |
Memory Hierarchy I: Concepts to Caches |
6.1 to 6.3 |
|
Tues |
Nov |
15 |
CPU Project Work |
|
|
Wed |
Nov |
16 |
Memory Hierarchy II: Caches |
6.4 |
Y86 Logisim CPU Due |
Fri |
Nov |
18 |
Memory Hierarchy III: Caches some more |
6.5 |
|
Thanksgiving Break: Nov 19-27 |
Week 12: |
Mon |
Nov |
28 |
Cache Final Wrapup |
|
Cache Lab Out |
Tues |
Nov |
29 |
Final Project: Exploration |
|
|
Wed |
Nov |
30 |
Floating Point Representation I |
2.4 |
|
Fri |
Dec |
2 |
Floating Point Representation II |
|
|
Week 13: |
Mon |
Dec |
5 |
Pipeline I |
|
Float Datalab out; (datalab-floats-handout.tar) |
Tues |
Dec |
6 |
Final Project Work |
|
|
Wed |
Dec |
7 |
Pipeline II |
|
Cache Lab Due 11:59pm (or Thursday 11:59pm for 5% deduction) |
Fri |
Dec |
9 |
Pipeline III |
|
|
Week 14: |
Mon |
Dec |
12 |
Course Evaluations |
|
float datalab due |
Tues |
Dec |
13 |
Final Project Work |
|
|
Wed |
Dec |
14 |
Midterm 3 |
|
|
Fri |
Dec |
16 |
HW Lab Final Project Completion |
|
(Demo by 5pm) |
Final Exam - Monday Dec. 19, 9-11am |
|