Norm's ENCM 369 L02 Home Page

Winter 2018

Norm Bartley

Watch here for notes from the document camera in ENA 101 following each of Norm's Winter 2018 lectures in ENCM 369 L02.

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

Norm's 2018 L02 Lecture Notes

Week 1 (Jan 8 - Jan 12)

Day Date Key Topics Notes
Mon Jan 09 An introduction to ENCM 369; organization of a simple computer. link
Wed Jan 10 Main memory, registers, memory reads/writes, sequences of machine instructions. link
Fri Jan 12 Registers and memory; MIPS processors, memory organization and access; registers. link

Week 2 (Jan 15 - Jan 19)

Day Date Key Topics Notes
Mon Jan 15 Introduction to MIPS registers, machine language, assembly language. link
Wed Jan 17 Load/Store instructions; accessing array elements in MIPS; programming loops. link
Fri Jan 20 Comparisons, left-shifting, MIPS pseudoinstructions, procedure calling. link

Week 3 (Jan 22 - Jan 26)

Day Date Key Topics Notes
Mon Jan 22 Jump instructions; leaf and non-leaf procedures; the stack; register conflicts. link
Wed Jan 24 Handling $ra, s-register, and a-register conflicts. link
Fri Jan 26 Two ways to handle a-register conflicts; local variables on the stack. link

Week 4 (Jan 29 - Feb 2)

Day Date Key Topics Notes
Mon Jan 29 Character arrays and strings; "little endian" memory organization; byte access. link
Wed Jan 31 Byte access continued; a string-copy procedure; character arrays on the stack; logic instructions. link
Fri Feb 02 Logic instructions (or, ori, lui, etc.); encoding of branch and jump instructions. link

Week 5 (Feb 05 - Feb 09)

Day Date Key Topics Notes
Mon Feb 05 Compiling and building C programs; the gcc toolchain; object and executable files. link
Wed Feb 07 The linker and relocation information; static and dynamic linking. link
Fri Feb 09 Introduction to numbers and arithmetic; signed and unsigned numbers; 2's-complement. link

Week 6 (Feb 12 - Feb 16)

Day Date Key Topics Notes
Mon Feb 13 2's-complement addition and signed overflow; the add/addu/addi/addiu instructions. link
Wed Feb 14 Unsigned addition overflow; signed and unsigned subtraction and subtraction overflow. link
Fri Feb 16 Completion of integer arithmetic; introduction to Microarchitecture, review of DFFs. link

Week 7 (Feb 26 - Mar 2)

Day Date Key Topics Notes
Mon Feb 26 Introduction to microarchitecture; the PC, instruction memory, register file, data memory. link
Wed Mar 01 The sign-extender and the ALU; the single-cycle machine, and the 'lw' instruction. link
Fri Mar 02 Datapath for the 'lw' and 'sw' instructions, R-type instructions, and 'beq'. link

Week 8 (Mar 5 - Mar 9)

Day Date Key Topics Notes
Mon Mar 05 The main control unit; timing analysis in a single-cycle processor. link
Wed Mar 07 Timing analysis in single-cycle processor; introduction to pipeline processing. link
Fri Mar 09 The five pipeline stages; pipelined execution of instructions; pipeline hazards. link

Week 9 (Mar 12 - Mar 16)

Day Date Key Topics Notes
Mon Mar 12 Solutions to data hazards; solutions to control hazards. link
Wed Mar 14 Tracing an R-type instuction throught the pipeline; pipeline control; managing hazards. link
Fri Mar 16 Data- and control-hazard management; introduction to exception handling. link

Week 10 (Mar 19 - Mar 23)

Day Date Key Topics Notes
Mon Mar 19 Final comments on exceptions; introduction to memory systems. link
Wed Mar 21 Cache introduction continued; locality of reference; a direct-mapped cache. link
Fri Mar 23 Direct-mapped caches, continued; set-bit conflicts; set-associative caches. link

Week 11 (Mar 26 - Mar 30)

Day Date Key Topics Notes
Mon Mar 26 More on set-associative caches; multi-word blocks, hits and misses. link
Wed Mar 28 Set-associative cache-replacement strategies; cache write policies. link

Week 12 (Apr 02 - Mar 06)

Day Date Key Topics Notes
Mon Apr 02 Address translation, the page table and the TLB; TLB hits and misses. link
Wed Apr 04 TLB misses; Context switching; multiple-process support for the TLB. link
Fri Apr 06 Floating-point numbers: Single-precision and double-precision. Please see also Steve Norman's online notes about integer multiplication and division. link

Week 13 (Apr 09 - Mar 13)

Day Date Key Topics Notes
Mon Apr 09 FP registers; copying to and from the FPU; MIPS FP instruction examples. link
Wed Apr 11 FPR calling conventions, pointers, final words on floating-point performance. link