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