subject

Udacity: High Performance Computer Architecture

This class is offered as CS6290 at Georgia Tech where it is a part of the [Online Masters Degree (OMS)](http://www.omscs.gatech.edu/). Taking this course here will not earn credit towards the OMS degree.

The course begins with a lesson on performance measurement, which leads to a discussion on the necessity of performance improvement.

Pipelining, the first level of performance refinement, is reviewed. The weaknesses of pipelining will be exposed and explored, and various solutions to these issues will be studied. The student will learn hardware, software, and compiler based solutions to these issues.

Why Take This Course?
You will explore the fascinating field of computer architecture, studying the many methods developed to enhance computer performance. The trade-offs and compromises associated with each design and their effects on processor development is a captivating story that will make you a better computer scientist, regardless of your field of study.

Syllabus

###Lesson 1: Introduction and Trends
- Computer Architecture & Tech Trends
- Moore's Law
- Processor Speed, Cost, Power
- Power Consumption
- Fabrication Yield

###Lesson 2: Performance Metrics and Evaluation

- Measuring Performance
- Benchmarks Standards
- Iron Law of Performance
- Amdahl's Law
- Lhadma's Law

###Lesson 3: Pipelining Review
- Pipeline CPI
- Processor Pipeline Stalls
- Data Dependencies
- Pipelining Outro

###Lesson 4: Branches
- Branch Prediction
- Direction Predictor
- Hierarchical Predictors
- PShare

###Lesson 5: Predication
- If Conversion
- Conditional Move
- MOVc Summary

###Lesson 6: Instruction Level Parallelism (ILP)
- ILP Intro
- RAW Dependencies
- WAW Dependencies
- Duplicating Register Values
- Instruction Level Parallelism (ILP)

###Lesson 7: Instruction Scheduling
- Improving IPC
- Tomasulo's Algorithm
- Load and Store Instructions

###Lesson 8: ReOrder Buffer
- Exceptions in Out Of Order Execution
- Branch Misprediction
- Hardware Organization with ROB

###Lesson 9: Memory Ordering
- Memory Access Ordering
- When Does Memory Write Happen
- Out of Order Load Store Execution
- Store to Load Forwarding
- LSQ, ROB, and RS

###Lesson 9: Memory
- How Memory Works
- One Memory Bit SRAM
- One Memory Bit DRAM
- Fast Page Mode
- Connecting DRAM To The Processor

###Lesson 10: Multi-Processing
- Flynn's Taxonomy of Parallel Machines
- Multiprocessor Needs Parallel Programs!
- Centralized Shared Memory
- Distributed Shared Memory
- Message Passing Vs Shared Memory
- Shared Memory Hardware
- SMT Hardware Changes
- SMT and Cache Performance
FAQ View All
What are MOOCs?
MOOCs stand for Massive Open Online Courses. These are free online courses from universities around the world (eg. Stanford Harvard MIT) offered to anyone with an internet connection.
How do I register?
To register for a course, click on "Go to Class" button on the course page. This will take you to the providers website where you can register for the course.
How do these MOOCs or free online courses work?
MOOCs are designed for an online audience, teaching primarily through short (5-20 min.) pre recorded video lectures, that you watch on weekly schedule when convenient for you.  They also have student discussion forums, homework/assignments, and online quizzes or exams.

1 review for Udacity's High Performance Computer Architecture

Write a review
2 out of 4 people found the following review useful
2 years ago
Neha Gholkar is taking this course right now, spending 4 hours a week on it and found the course difficulty to be easy.
Excellent Course. I really like it. IT is helping me in filling all the gaps in my knowledge about hpc and arhcitecture
Was this review helpful to you? YES | NO

Class Central

Get personalized course recommendations, track subjects and courses with reminders, and more.

Sign up for free