InfoCoBuild

ECE 18-447: Introduction to Computer Architecture

ECE 18-447: Introduction to Computer Architecture (Spring 2013, Carnegie Mellon Univ.). Instructor: Professor Onur Mutlu. Computer architecture is the science and art of selecting and interconnecting hardware components and designing the hardware/software interface to create a computer that meets functional, performance, energy consumption, cost, and other specific goals. This course introduces the basic hardware structure of a modern programmable computer, including the basic laws underlying performance evaluation. We will learn, for example, how to design the control and data path hardware for a ARM-like processor, how to make machine instructions execute simultaneously through pipelining and simple superscalar execution, and how to design fast memory and storage systems. The principles presented in the lecture are reinforced in the laboratory through the design and simulation of a register transfer level (RTL) implementation of a MIPS-like pipelined processor in Verilog. In addition, we will develop a cycle-accurate simulator of this processor in C, and we will use this simulator to explore processor design options. (from ece.cmu.edu)

Introduction


Lecture 01 - Introduction and Basics
Lecture 02 - Fundamental Concepts and ISA
Lecture 03 - ISA Tradeoffs
Lecture 04 - More ISA Tradeoffs
Lecture 05 - ISA Wrap-Up, Single-Cycle Microarchitectures
Lecture 06 - Multi-Cycle Microarchitectures
Lecture 07 - Microprogrammed Microarchitectures
Lecture 08 - Pipelining
Lecture 09 - Data Dependence Handling
Lecture 10 - Control Dependence Handling
Lecture 11 - Branch Prediction
Lecture 12 - Predication and Exceptions
Lecture 13 - State Maintenance & Recovery
Lecture 14 - Out-of-Order Execution
Lecture 15 - Data Flow and SIMD
Lecture 16 - Virtual Memory 1
Lecture 17 - Virtual Memory 2
Lecture 18 - Virtual Memory 3
Lecture 19 - SIMD and GPUs
Lecture 20 - GPUs, VLIW, Systolic Arrays
Lecture 21 - Static Instruction Scheduling
Lecture 22 - Memory Hierarchy and Caches
Lecture 23 - Caches
Lecture 24 - Advanced Caches
Lecture 25 - Main Memory and DRAM Basics
Lecture 26 - Memory Controllers & Scheduling
Lecture 27 - Memory Scheduling
Lecture 28 - Runahead Execution
Lecture 29 - Prefetching
Lecture 30A - Advanced Prefetching
Lecture 30B - Multiprocessors
Lecture 31 - Consistency & Coherence
Lecture 32 - Interconnects
Lecture 33 - Heterogeneous (Multi-Core) Systems
Lecture 34 - Emerging Memory Technologies

References
18-447: Introduction to Computer Architecture, Spring 2013
Instructor: Professor Onur Mutlu. Syllabus. Lectures/Schedule: Lecture Slides. Lecture Buzzwords. Readings. Homeworks and Solutions. Exams and Solutions. Technical Documents.