In this course, you will learn to design the computer architecture of complex modern microprocessors.
Introduction, Instruction Set Architecture, and Microcode This lecture will give you a broad overview of the course, as well as the description of architecture, micro-architecture and instruction set architectures.
Pipelining Review This lecture covers the basic concept of pipeline and two different types of hazards.
Cache Review This lecture covers control hazards and the motivation for caches.
Superscalar 1 This lecture covers cache characteristics and basic superscalar architecture.
Superscalar 2 & Exceptions This lecture covers the common issues for superscalar architecture.
Superscalar 3 This lecture covers different kinds of architectures for out-of-order processors.
Superscalar 4 This lecture covers the common methods used to improve the performance of out-of-order processors including register renaming and memory disambiguation.
VLIW 1 This lecture covers the basic concept of very long instruction word (VLIW) processors.
VLIW2 This lecture covers the common methods used to improve VLIW performance.
Branch Prediction This lecture covers the motivation and implementation of branch predictors.
Advanced Caches 1 This lecture covers the advanced mechanisms used to improve cache performance.
Advanced Caches 2 This lecture covers more advanced mechanisms used to improve cache performance.
Memory Protection This lecture covers memory management and protection.
Vector Processors and GPUs This lecture covers the vector processor and optimizations for vector processors.
Multithreading This lecture covers different types of multithreading.
Parallel Programming 1 This lecture covers the concepts of parallelism, consistency models, and basic parallel programming techniques.
Parallel Programming 2 This lecture covers the solutions for the consistency problem in parallel programming.
Small Multiprocessors This lecture covers the implementation of small multiprocessors.
Multiprocessor Interconnect 1 This lecture covers the design of interconnects for a multiprocessor.
Multiprocessor Interconnect 2 This lecture covers the design of interconnects for multiprocessor and network topology.
Large Multiprocessors (Directory Protocols) This lecture covers the motivation and implementation of directory protocol used for coherence on large multiproccesors.
MOOCs stand for Massive Open Online Courses. These arefree online courses from universities around the world (eg. StanfordHarvardMIT) 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.
One of the best courses I have ever taken. A good understanding is given on the internal workings on different types of processor architectures. Unfortunately, no certification is given. I would have paid good money for a certificate and I tried to find the course at Princeton.
Alexpartially completed this course, spending 6 hours a week on it and found the course difficulty to be medium.
The content of this class is really fantastic, but unfortunately the lecturer is really terrible. He's obviously a very smart guy, but watching the videos was dreadful. I had so much difficulty not being bored out of my mind during each video, as his cadence is irregular and often makes mistakes and then corrects himse
The content of this class is really fantastic, but unfortunately the lecturer is really terrible. He's obviously a very smart guy, but watching the videos was dreadful. I had so much difficulty not being bored out of my mind during each video, as his cadence is irregular and often makes mistakes and then corrects himself when discussing rather complicated topics (which is really confusing). I also don't recommend the videos for non-native English speakers, as he doesn't enunciate words very clearly which would lead to more confusion.
Other than the bad videos, the course barely has any interactivity, so you just sit there and watch/listen for hours and might see one or two simple questions just to test if you were listening. I didn't get to the mid-term because I couldn't handle it anymore.
Perhaps one suggestion: download and read the slides on your own, read the transcript, but SKIP the videos. That might save you many wasted hours watching the bad presentation, and you can jump to the tests a lot faster.
The content itself can be grasped quite easily if you've got basic hardware/logic knowledge (I suggest starting with the nand2tetris class). I also suggest reading a more advanced book on digital logic, circuits, machine code beforehand, since the class jumps right into.