This schedule is subject to change. Please check back frequently.
| Monday | Wednesday | Friday |
|---|---|---|
|
Jan. 9 Welcome Course overview |
Jan. 12 C review Types, functions, binary/hex numbers |
Jan. 14 C review II Structs, pointers, Introduction to ISA |
Jan. 16 D flip-flops and Registers Building register files and updating state |
| Monday | Wednesday | Friday |
|---|---|---|
|
Jan. 19 Martin Luther King Jr. Day - no class |
Jan. 21 Instruction registers PC, intro to branches/control flow |
Jan. 23 Assembly Introduce Nios II, decoding instructions Homework 1: Numbers and C due 6pm
|
Jan. 26 DE10-Lite Assembler directives, creating Nios program from scratch |
Jan. 28 Assembly II Basic assembly examples |
Jan. 30 Number representations Two's complement, sign extension |
Feb. 2 Number representations 10 Floating point |
Feb. 4 Logic operations ALU design/logic operations, overflow |
Feb. 6 Turing C into assembly Compiler examples Project 1: Assembly due 6pm
|
Feb. 9 Memory layout Loads/stores, stack, MMIO |
Feb. 11 Memory alignment bytes vs words, alignment |
Feb. 13 Exam 1 review Prepare for first exam Homework 2: Logic and ALUs due 6pm
|
Feb. 16 Exam 1 During class exam |
Feb. 18 Basic peripherals Switches, hex displays, buttons, ADC/DAC |
Feb. 20 Basic I/O Busy wait vs polling, UART |
| Monday | Wednesday | Friday |
|---|---|---|
|
Feb. 23 Interacting with peripherals Bit-bang WS2812 interface |
Feb. 25 Application Binary Interface (ABI) function calls in assembly, caller/callee saved |
Feb. 27 Procedure calls Return addresses, assembly examples |
Mar. 2 Procedure calls Calling C functions from assembly |
Mar. 4 Buffer overflows Smashing the stack for fun and profit |
Mar. 6 Overflows, continued Buffer overflow walkthrough Project 2: Basic I/O due 6pm
|
Mar. 9 Interrupts ISR, configuring interrupt peripherals |
Mar. 11 Interrupts Code walkthrough, Interrupts in C |
Mar. 13 Interrupt example continue code walkthrough Homework 3: Functions due 6pm
|
Mar. 16 Spring break No class |
Mar. 18 Spring break No class |
Mar. 20 Spring break No class |
Mar. 23 Interrupts continued continue code walkthrough |
Mar. 25 Interrupts continued continue code walkthrough |
Mar. 27 Interrupts continued continue code walkthrough Project 3: Calling Convention due 6pm
|
| Monday | Wednesday | Friday |
|---|---|---|
|
Mar. 30 Caching Indexing, Direct mapped, associativity |
Apr. 1 Exam 2 review |
Apr. 3 Exam 2 During class |
Apr. 6 Caching Replacement policy, handling writes, impact on MMIO |
Apr. 8 Caching Spacial vs. temporal, predictive, multi-layer caches |
Apr. 10 Pipeline CPU pipeline stages, data hazards Homework 4: Caching and Interrupts due 6pm
|
Apr. 13 Pipeline stage 2 pipeline stalls, basic out-of-order execution |
Apr. 15 Virtual Memory Paging, multi-level page tables |
Apr. 17 System calls OS privileges, system calls Project 4: Interrupts due 6pm
|
Apr. 20 Hardware side channels Mistakes we continue to make |
Apr. 22 Speculative hazards Spectre / Meltdown |
Apr. 24 Exam review Homework 5: Pipelines and Virtual Memory due 6pm
|