Computer Architecture

  • 4.8
Approx. 50 hours to complete

Course Summary

This course covers the fundamentals of computer architecture, including instruction set architecture, processor organization, memory hierarchy, and input/output systems.

Key Learning Points

  • Learn the basics of computer architecture, including how processors work and how memory is organized.
  • Understand the role of instruction set architecture and how it impacts the design of processors.
  • Explore the different levels of the memory hierarchy and how they interact with each other.
  • Learn about input/output systems and how they communicate with the rest of the computer.

Related Topics for further study


Learning Outcomes

  • Understand the basics of computer architecture
  • Be able to design simple instruction set architectures
  • Understand the trade-offs involved in designing computer systems

Prerequisites or good to have knowledge before taking this course

  • A basic understanding of computer programming
  • Familiarity with basic computer terminology

Course Difficulty Level

Intermediate

Course Format

  • Online
  • Self-paced

Similar Courses

  • Introduction to Computer Science and Programming Using Python
  • Computer Networks
  • Algorithms, Part I

Related Books

Description

In this course, you will learn to design the computer architecture of complex modern microprocessors.

All the features of this course are available for free. It does not offer a certificate upon completion.

Outline

  • Introduction, Instruction Set Architecture, and Microcode
  • Course Introduction
  • Course Overview
  • Motivation
  • Course Content
  • Architecture and Microarchitecture
  • Machine Models
  • ISA Characteristics
  • Recap
  • Readings
  • Pipelining Review
  • Microcoded Microarchitecture
  • Pipeline Basics
  • Structural Hazard
  • Data Hazards
  • Readings
  • Cache Review
  • Control Hazards, Jumps
  • Control Hazards, Branch
  • Control Hazards, Others
  • Memory Technologies
  • Motivation for Caches
  • Readings
  • Superscalar 1
  • Classifying Caches
  • Cache Performance
  • Superscalar 1
  • Basic Two-way In-order Superscalar
  • Fetch Logic and Alignment
  • Readings
  • Superscalar 2 & Exceptions
  • Baseline Superscalar and Alignment
  • Interrupts and Bypassing
  • Interrupts and Exceptions
  • Introduction to Out-of-Order Processors
  • Readings
  • Superscalar 3
  • Review of Out-of-Order Processors
  • I2O2 Processors
  • I2O1 Processors
  • IO3 Processors
  • IO2I Processors
  • Problem Set 2
  • Problem Set 1 Solutions
  • Superscalar 4
  • Speculation and Branch
  • Register Renaming Introduction
  • Register Renaming with Pointers to IQ and ROB
  • Register Renaming with Values in IQ and ROB
  • Memory Disambiguation
  • VLIW 1
  • Limits of Out-of-Order Design Complexity
  • Introduction to VLIW
  • VLIW Compiler Optimizations
  • Classic VLIW Challenges
  • Introduction to Predication
  • Readings
  • Problem Set 3
  • Problem Set 2 Solutions
  • VLIW2
  • Scheduling Model Review
  • Review of Predication
  • Predication Implementation
  • Speculation Execution
  • Dynamic Events and Clustered VLIWs
  • Case Study: IA-64/Itanium
  • Readings
  • Midterm
  • Branch Prediction
  • Branch Cost Motivation
  • Branch Prediction Introduction
  • Static Outcome Prediction
  • Dynamic Outcome Prediction
  • Target Address Prediction
  • Readings
  • Advanced Caches 1
  • Basic Cache Optimizations
  • Cache Pipelining
  • Write Buffers
  • Multilevel Caches
  • Victim Caches
  • Prefetching
  • Readings
  • Advanced Caches 2
  • Multiporting and Banking
  • Software Memory Optimizations
  • Non-blocking Caches
  • Critical Word First and Early Restart
  • Readings
  • Problem Set 3 Solutions
  • Memory Protection
  • Memory Management Introduction
  • Base and Bound Registers
  • Page Based Memory Systems
  • Translation and Protection
  • TLB Processing
  • Readings
  • Problem Set 4 & 4A
  • Vector Processors and GPUs
  • Address Translation Review
  • Cache and Memory Protection Interaction
  • Vector Processor Introduction
  • Vector Parallelism
  • Vector Hardware Optimizations
  • Vector Software and Compiler Optimizations
  • Readings
  • Multithreading
  • Reduction, Scatter/Gather, and the Cray 1
  • SIMD
  • GPUs
  • Multithreading Motivation
  • Coarse-Grain Multithreading
  • Simultaneous Multithreading
  • Readings
  • Parallel Programming 1
  • SMT Implementation
  • Introduction to Parallelism
  • Sequential Consistency
  • Introduction to Locks
  • Readings
  • Parallel Programming 2
  • Sequential Consistency Review
  • Locks and Semaphores
  • Atomic Operations
  • Memory Fences
  • Dekker's Algorithm
  • Small Multiprocessors
  • Locking Review
  • Bus Implementation
  • Cache Coherence
  • Bus-Based Multiprocessors
  • Cache Coherence Protocols
  • Readings
  • Problem Set 4 Solutions
  • Multiprocessor Interconnect 1
  • More Cache Coherence Protocols
  • Introduction to Interconnection Networks
  • Message Passing
  • Interconnect Design
  • Readings
  • Problem Set 5 & 5A
  • Multiprocessor Interconnect 2
  • Networking Review
  • Topology
  • Topology Parameters
  • Network Performance
  • Routing and Flow Control
  • Readings
  • Large Multiprocessors (Directory Protocols)
  • Credit Based Flow Control
  • Deadlock
  • False Sharing
  • Introduction to Directory Coherence
  • Implementation
  • Scalability of Directory Coherence
  • Readings
  • Problem Set 5 Solutions
  • Final Exam

Summary of User Reviews

The Computer Architecture course by Coursera has received positive reviews from learners. It covers a wide range of topics in a comprehensive manner that makes it easy to understand. The course has received high ratings from learners.

Key Aspect Users Liked About This Course

The course is well-structured and covers a wide range of topics in a comprehensive manner.

Pros from User Reviews

  • The course covers a range of topics in-depth and provides a good understanding of computer architecture.
  • The course content is well-organized and easy to follow.
  • The course provides hands-on experience through assignments and quizzes.
  • The lectures are engaging and informative.
  • The course is free to audit.

Cons from User Reviews

  • Some learners found the course difficult and challenging.
  • The course may not be suitable for complete beginners in computer architecture.
  • Some learners felt that the course lacked practical applications.
  • The quizzes and assignments can be time-consuming.
  • Some learners reported technical difficulties with the platform.
English
Available now
Approx. 50 hours to complete
David Wentzlaff
Princeton University
Coursera

Instructor

David Wentzlaff

  • 4.8 Raiting
Share
Saved Course list
Cancel
Get Course Update
Computer Courses