Computer Architecture
- Level
- Undergraduate
- Status
- Under development
Note: this course is still being designed and calibrated; the page content is for reference and does not represent the final teaching version.
Syllabus
Course Overview
Computer Architecture starts from ISAs, pipelines, caches, memory hierarchies, parallelism, and accelerators, then studies tradeoffs among performance, energy, reliability, and security. Students use simulation and measurement to explain why real programs are fast or slow.
This is the hardware foundation for hardware security, system security, virtualization, and embedded systems.
Prerequisites
- Computer organization and assembly language.
- Familiarity with C/C++ or Rust and ability to read simple assembly.
- Basic probability, statistics, and experimental-analysis skills.
Learning Outcomes
- Explain key structures in modern processors and memory systems.
- Evaluate performance, locality, parallelism, and energy using metrics.
- Analyze security implications of caches, branch prediction, and out-of-order execution.
- Use simulators or performance counters in experiments.
- Make evidence-based architectural design tradeoffs.
Course Format
- Two meetings per week: one for core concepts and one for labs, paper discussion, or project review.
- The course proceeds over 16 weeks, each with a checkable assignment, lab, or project milestone.
- Reproducibility is required: code, configuration, data, lab logs, and reports must be reviewable by staff or peers.
Weekly Plan
ISA, microarchitecture, and performance models
Measure CPI and bottlenecks for a program.
ISA, microarchitecture, and performance models: lab and review
Measure CPI and bottlenecks for a program. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Pipelines, hazards, and prediction
Use a simulator to observe stalls and branch effects.
Pipelines, hazards, and prediction: lab and review
Use a simulator to observe stalls and branch effects. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Caches and memory hierarchy
Design locality experiments and explain miss patterns.
Caches and memory hierarchy: lab and review
Design locality experiments and explain miss patterns. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Out-of-order execution, speculation, and consistency
Analyze speculative optimization and security risks.
Out-of-order execution, speculation, and consistency: lab and review
Analyze speculative optimization and security risks. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Multicore, synchronization, and memory models
Test concurrent program behavior under memory models.
Multicore, synchronization, and memory models: lab and review
Test concurrent program behavior under memory models. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Vector units, GPUs, and accelerators
Compare CPU and accelerator implementations.
Vector units, GPUs, and accelerators: lab and review
Compare CPU and accelerator implementations. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Reliability, power, and security
Evaluate performance-security tradeoffs in a design.
Reliability, power, and security: lab and review
Evaluate performance-security tradeoffs in a design. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Architecture experiment report
Submit reproducible measurements, plots, and design conclusions.
Architecture experiment report: lab and review
Submit reproducible measurements, plots, and design conclusions. Complete the paired lab, record issues, and explain design tradeoffs in class review.
Assessment
Concept questions, reading responses, design tasks, and small programming or lab exercises.
Performance experiments, simulation results, design evaluation, and reports.
Participation in discussions, demos, code or paper reviews, and peer feedback.
Submit reproducible artifacts, a technical report, and a demo explaining methods, results, limitations, and future work.
Course Project
Students choose an architecture problem, collect evidence with simulation, performance counters, or benchmarks, and evaluate a design or optimization.
Policies
- AI tools are allowed, but generated code, lab notes, and design suggestions must be reviewed by the student and disclosed in the report.
- Students may not submit code, proofs, configuration, or experimental results they cannot explain; each member must defend their own design, tests, and tradeoffs.
- Late work affects iteration grades, but the course values reproducible, auditable, and maintainable results over last-minute accumulation.
Reference Courses
International
- CMU18-742: Computer Architecture and Systems
- CornellCS 3410: Computer System Organization and Programming
- ETH ZurichComputer Architecture
- Georgia TechCS 6290: High Performance Computer Architecture
- MIT6.5900 Computer System Architecture
- PrincetonCOS 375: Computer Architecture and Organization
- StanfordEE 282: Computer Systems Architecture
- UC BerkeleyCS 152/252A: Computer Architecture and Engineering
- University of WashingtonCSE 548: Computer Systems Architecture
China 985 Universities
- 上海交通大学计算机体系结构
- 中国科学技术大学计算机体系结构
- 南京大学计算机体系结构
- 复旦大学计算机系统结构
- 浙江大学Computer Architecture
- 清华大学计算机系统结构
- 西安交通大学计算机组成原理与系统结构