Great Ideas in Computer Architecture¶
Course Overview¶
- Institution: University of California, Berkeley
- Course code: CS 61C
- Track: Computer Architecture
- Tier: A
- Role: Alternative
- Level: Not standardized by provider (use prerequisites)
- Last reviewed: 2026-07-28
University of California, Berkeley's Great Ideas in Computer Architecture forms a practical architecture sequence from notes, discussions, labs, and projects, while recordings and the grader require institutional access.
Why choose this course
Alternative course. A reliable option that can serve as a main course or strong alternative. Review note: A content / B completion
Before you start
- Recommended foundation: Digital Logic and Computation Structures
- Recommended foundation: Programming and Engineering Computing
Verifiable learning outcomes
- Explain the core models in Computer Architecture, including their assumptions and limits
- Solve representative derivations and problems, checking units, limiting cases, or numerical results
- Complete a reproducible experiment or implementation with raw data, parameters, versions, and verification
Workload and pacing
11 weeks at 9 hours/week. This maintainer planning estimate is derived from course role and the density of public practice and labs; it is not a provider workload promise. Pilot two weeks while logging instruction, practice, lab, and review time, then adjust the remaining plan when actual effort differs by more than 25%.
Safety level
Simulation only. The default practice scope is software, computation, or simulation only; a lab label in the resource inventory does not authorize connecting physical equipment, and any hardware extension requires provider-scope verification and a new risk assessment.
Course Resources¶
Software, hardware, and cost
Software
- Maintainer-suggested open-source/free verification path: a RISC-V GNU or LLVM toolchain, QEMU, Verilator, and GTKWave
- The resource inventory lists public code coverage; pin interpreter, dependencies, toolchain, datasets, and PDK versions where applicable
Hardware
- The resource inventory lists lab coverage; the maintainer path treats it as computational/simulation work unless the provider lab manual explicitly says otherwise. It assumes only a general-purpose computer for simulation and cross-compilation; use a specified RISC-V or FPGA board only when the course explicitly calls for it. If the provider lists different equipment or compute requirements, follow its course page
Cost note
The suggested software stack is available open source or free; this is maintainer planning, not a provider requirement. If the provider specifies commercial licenses, cloud compute, storage, or institutional resources, costs vary by plan, region, and institution, so no fixed price is asserted here.
Public resource coverage
| Resource type | Completeness |
|---|---|
| Video | No public material |
| Notes | Complete |
| Practice | Complete |
| Labs | Complete |
| Exams | Partial |
| Code | Complete |
Resources and access
| Resource | Access | License | Status | Verified |
|---|---|---|---|---|
| Course home | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Exercise 1: Accessing Services | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Exercise 1: Compiler Warnings and Errors | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Exercise 1: Calling Convention Checker | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Exercise 1: Constructing Immediates | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Exam | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Past Exams | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Lecture 10: RISC-V Instruction Formats II and CALL | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Lecture 11: CALL & SDS I | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Reference Card | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| Venus reference | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| GDB reference card | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
| combinational logic blocks handout | Open access | Provider-specific terms; verify before reuse | Listed by official page | 2026-07-28 |
“Listed by official page” means the link was discovered on a successfully fetched official source on the verification date; it does not guarantee that every region or account can open the target directly. Access does not grant redistribution rights. Re-check the provider page, target link, and third-party notices before downloading, adapting, or publishing material.
Practice and Verification¶
Practice loop
Great Ideas in Computer Architecture · University of California, Berkeley CS 61C: Microarchitecture Performance and Correctness Audit
This is a maintainer-suggested self-study project for Great Ideas in Computer Architecture · University of California, Berkeley CS 61C, not an official course assignment. Implement an instruction-level simulator or pipeline model for Computer Architecture and reproducibly audit functional correctness, CPI, cache behavior, and hazard handling.
Origin: Maintainer-suggested project
Deliverables
- A specification of ISA subset, pipeline or cache parameters, exceptions, and counter semantics
- Simulator or RTL model, reference executor, and source files for at least 20 microbenchmarks
- Raw instruction traces, performance counters, cache-hit data, and runtimes
- A report explaining performance bottlenecks, correctness counterexamples, and design tradeoffs
Verification
- Match architectural state instruction-by-instruction against the reference executor on every microbenchmark
- Cover empty programs, all-mispredicted branches, dependency chains, cache thrashing, and address boundaries
- Hand-calculate instruction count and ideal CPI for at least 5 short programs and cross-check counters
- Disable forwarding or change cache-line size and quantify CPI or miss-rate changes, explaining anomalies
Reproducibility
- Commit model, microbenchmark, reference, test, and trace-analysis sources
- Pin compiler, simulator, parameters, benchmark inputs, and build commands
- Preserve raw traces, counters, and report-generation logs with checksums
Safety boundary: Simulation only — Use local simulators and self-authored tests only; do not execute unknown binaries, real malicious payloads, or unisolated privileged code.
Risks, gaps, and boundaries
Notes, discussions, laboratories, and projects are public, but recordings live in bCourses and the grader requires a Berkeley account.
Completion evidence
- Weekly learning log with time, questions, corrected errors, decisions, next steps, and links to that week's reproducible artifacts
- Design-review package with requirements and constraints, trade-offs, editable sources, applicable ERC/DRC/timing/stability checks, exports, and a reproduction test
- Code repository with pinned dependencies and toolchain, a minimal run command, tests or waveform/benchmark checks, expected output, and license notes
- Simulation package with model or netlist, inputs, solver and version, parameter-sweep script, benchmark comparison, expected results, and one rerun command