Berkeley CS61C: Great Ideas in Computer Architecture
Descriptions
- Offered by: UC Berkeley
- Prerequisites: CS61A (Python), CS61B (Data Structures) or equivalent
- Programming Language: C, RISC-V Assembly
- Difficulty: 🌟🌟🌟🌟
- Class Hour: 80+
Berkeley CS61C is Berkeley's computer architecture course, widely regarded as one of the best architecture courses in the world. It starts from high-level languages (C) and gradually goes down to the machine level (RISC-V assembly, digital logic, CPU design).
CS61C's greatest strength is its exceptional lab design. The course has 6 labs, progressing from C pointer operations to RISC-V CPU design. By the end, you'll have designed a CPU capable of running RISC-V instructions using Logisim.
Course Resources
- Website: cs61c.org
- Lectures: YouTube
- Notes: Available on the course website
- Textbook: Based on Computer Organization and Design: The Hardware/Software Interface (RISC-V Edition)
Lab List
| Lab | Content | Difficulty |
|---|---|---|
| Lab 1: C and pointers | C basics, pointers, memory operations | 🌟🌟 |
| Lab 2: RISC-V assembly | Assembly language, function calls | 🌟🌟 |
| Lab 3: Floating point | IEEE 754, floating-point arithmetic | 🌟🌟 |
| Lab 4: CPU design | Design RISC-V CPU in Logisim | 🌟🌟🌟🌟 |
| Lab 5: SIMD optimization | Vectorized computation | 🌟🌟🌟 |
| Lab 6: Cache optimization | Cache-friendly code | 🌟🌟🌟 |
Self-Study Tips
Master C and pointers first. CS61C has high C language requirements, especially pointers and memory management. Learn C well before starting.
Do the CPU design lab seriously. Lab 4 is the course climax — designing a RISC-V CPU from scratch in Logisim. This lab gives you a true understanding of how CPUs work.
Draw datapath diagrams. The CPU datapath is the course's core. Draw how each instruction executes through the datapath.
Notes
CS61C is one of the best courses for architecture beginners. The lecture notes and lab guides on the course website are excellent, making self-study possible even without enrolling.
The course uses RISC-V (not x86), which is cleaner and easier to understand.