Norm's ENCM 369 L02 Home Page

Winter 2020

Norm Bartley


Watch here for notes to be posted following each of Norm's Winter 2020 lectures in ENCM 369 L02.


Please go to Steve Norman's ENCM 369 Home Page for 2020 course information. There, you'll find additional links to course documents, handouts, lab material, and his L01/T01/T02 lecture notes.


Norm's 2020 L02 Lecture Notes

Week 1 (Jan 13 - Jan 17)

Day Date Key Topics Notes
Mon Jan 13 A PowerPoint introduction to ENCM 369; organization of a simple computer. link
Wed Jan 15 Main memory, registers, memory reads/writes, sequences of machine instructions. link
Fri Jan 17 MIPS memory organization, registers, machine language, assembly language. link

Week 2 (Jan 20 - Jan 24)

Day Date Key Topics Notes
Mon Jan 20 More MIPS instruction examples, memory transfers, organizing MIPS registers. link
Wed Jan 22 Load and store instructions; accessing array elements; branching and jumping. link
Fri Jan 24 Comparisons, left-shifting, MIPS pseudoinstructions, procedure calling. link

Week 3 (Jan 27 - Jan 31)

Day Date Key Topics Notes
Mon Jan 27 Leaf and non-leaf procedures; the stack; handling $ra register conflicts. link
Wed Jan 29 Handling s-register and a-register conflicts; two ways to handle a-register conflicts. link
Fri Jan 31 Local variables on the stack; character arrays and strings; "little endian" byte addressing. link

Week 4 (Feb 03 - Feb 07)

Day Date Key Topics Notes
Mon Feb 03 Byte access continued; a string-copy procedure; character arrays on the stack. link
Wed Feb 05 Logic instructions (or, ori, lui, etc.); encoding of branch and jump instructions. link
Fri Feb 07 Compiling and building C programs; the gcc toolchain; object and executable files. link

Week 5 (Feb 10 - Feb 14)

Day Date Key Topics Notes
Mon Feb 10 The linker and relocation information; static and dynamic linking. link
Wed Feb 12 Signed and unsigned numbers in MIPS; four facts about 2's-complement. link
Fri Feb 14 2's-complement addition and signed overflow; the add/addu/addi/addiu instructions. link

Week 6 (Feb 24 - Feb 28)

Day Date Key Topics Notes
Mon Feb 24 Unsigned addition overflow; signed and unsigned subtraction and subtraction overflow. link
Wed Feb 26 Introduction to Microarchitecture, review of DFFs; processor components. link
Fri Feb 28 Processor components: register file, data memory; the single-cycle processor. link

Week 7 (Mar 2 - Mar 6)

Day Date Key Topics Notes
Mon Mar 2 The sign-extender and the ALU; the single-cycle machine, and the 'lw' and 'sw' instructions. link
Wed Mar 4 Datapath for R-type instructions, and 'beq'; the main control unit. link
Fri Mar 6 Timing analysis in a single-cycle processor; introduction to pipelining. link

Week 8 (Mar 4 - Mar 8)

Day Date Key Topics Notes
Mon Mar 9 The five pipeline stages; pipelined execution of instructions; pipeline hazards. link
Wed Mar 11 Solutions to data and control hazards; introduction to pipelining hardware. link

Week 9 (Mar 16 - Mar 20)

Day Date Key Topics Notes
Mon Mar 16 Tracing an R-type instuction through the pipeline; pipeline control. link
Wed Mar 18 Data- and control-hazard management. link
Fri Mar 20 Exceptions and exception handling. link


Note: All the links below are to my 2019 lectures for all remaining topics in the course. We are posting video lectures of these topics mostly in bursts, so the dates below will not match the dates that we post them. Below represents the pace at which we normally present in-person lectures.


Week 10 (Mar 23 - Mar 27)

Day Date Key Topics Notes
Mon Mar 23 Cache introduction continued; locality of reference; a direct-mapped cache. link
Wed Mar 25 Direct-mapped caches, continued; set-bit conflicts; set-associative caches. link
Fri Mar 27 Multi-word blocks; set-associative cache-replacement strategies. link

Week 11 (Mar 30 - Apr 03)

Day Date Key Topics Notes
Mon Mar 30 The write buffer; the write-back and write-through caches; multi-level caches. link
Wed Apr 01 Introduction to virtual memory. link
Fri Apr 03 Address translation, the page table and the TLB; TLB hits and misses. link

Week 12 (Apr 06 - Apr 10)

Day Date Key Topics Notes
Mon Apr 06 Context switching; multiple-process support for the TLB; floating-point numbers. link
Wed Apr 08 Floating-point numbers: Single-precision and double-precision; FP registers. link
Fri Apr 10 MIPS FP instruction examples, pointers, FPR calling conventions. link

Week 13 (Apr 13 - Apr 15)

Day Date Key Topics Notes
Mon Apr 13 Integer multiplication concepts; MIPS mult and multu instructions. link
Wed Apr 15 Integer division: the MIPS div and divu instructions. link