High Performance Computer Architecture


Lecture 1 - Introduction & Course Outline


Lecture 2 - Performance


Lecture 3 - Instruction Set Architecture


Lecture 4 - MIPS ISA and Processor


Lecture 5 - MIPS ISA and Processor (Continued...)


Lecture 6 - Pipelining - Introduction


Lecture 7 - Instruction Pipelining


Lecture 8 - Pipeline Hazards


Lecture 9 - Data Hazards


Lecture 10 - Software Pipelining


Lecture 11 - In Quest of Higher ILP


Lecture 12 - In Quest of Higher ILP (Continued...)


Lecture 13 - Dynamic Instruction Scheduling


Lecture 14 - Dynamic Instruction Scheduling (Continued...)


Lecture 15 - Control Hazards


Lecture 16 - Branch Prediction


Lecture 17 - Branch Prediction (Continued...)


Lecture 18 - Dynamic Instruction Scheduling with Branch Prediction


Lecture 19 - Hardware-based Speculation


Lecture 20 - Tutorial - I


Lecture 21 - Hierarchical Memory Organization


Lecture 22 - Hierarchical Memory Organization (Continued...1)


Lecture 23 - Hierarchical Memory Organization (Continued...2)


Lecture 24 - Hierarchical Memory Organization (Continued...3)


Lecture 25 - Cache Optimization Techniques (Continued...1)


Lecture 26 - Cache Optimization Techniques (Continued...2)


Lecture 27 - Main Memory Organization


Lecture 28 - Main Memory Optimizations


Lecture 29 - Virtual Memory


Lecture 30 - Virtual Memory (Continued...)


Lecture 31 - Virtual Machines


Lecture 32 - Storage Technology


Lecture 33 - Storage Technology (Continued...)


Lecture 34 - Case Studies


Lecture 35 - Case Studies (Continued...1)


Lecture 36 - Case Studies (Continued...2)


Lecture 37 - Multithreading & Multiprocessing


Lecture 38 - Simultaneous Multithreading


Lecture 39 - Symmetric Multiprocessors


Lecture 40 - Distributed Memory Multiprocessors


Lecture 41 - Cluster, Grid and Cloud Computing