CPSC 2020

Computer Architecture

https://ufred.ca/courses/cpsc-2020/

Course description

This course explores how computers represent data, execute programs, and deliver performance. Students begin with bit-level data encoding and standard data types, progressing from instruction set concepts to practical assembly programming using SimpleRisc and RISC-V. The course builds a practical understanding of digital logic, demonstrating how combinational and sequential blocks form data paths and control units. It then examines pipelining, hazards, and simple performance tradeoffs. Students study memory systems, from caches to virtual memory, emphasizing correctness, capacity, and efficiency. This course also surveys parallel execution models, interconnection networks, and input/output systems to build a complete view of computer architecture. Finally, it introduces storage fundamentals and case studies of contemporary CPUs and GPUs, connecting microarchitectural design choices to real-world outcomes. Students learn to reason about system components, analyze performance and make sound architectural decisions through design and implementation exercises.