COMP 362: Computer Architecture

Course Information


This course covers computer design from the level of digital logic and circuit design to high-level computer organization.


These skills are required to participate in the class:

  • Understanding of basic computer organization, including familiarity with such components as CPU, ALU, multiplexers, registers, main memory, caches, and buses.

  • Familiarity with the roles of compilers, assemblers, and operating systems

  • Some familiarity with assembly language

  • The ability to understand simple C programs and to run programs in a UNIX environment, and familiarity with the representation of numbers in digital computers


This course presents key principles underlying the design of modern digital computers. The course introduces quantitative techniques used to guide the design process. It describes CPU performance issues and introduces instruction set architectures. The course then uses a hypothetical computer design, with a simple RISC architecture, to show how modern digital computers are implemented, first using a simple non-pipelined implementation, followed by a higher-performance pipelined implementation. The major hazards introduced by pipelining, including structural hazards, data hazards, and control hazards are discussed and techniques for overcoming them are described. Additional topics covered in this course include the design of the memory hierarchy in modern digital computers, caching and virtual storage techniques, multiprocessor systems, and distributed shared memory systems.


A basic understanding of how computers work at many levels and how to use various analytical tools and techniques to design computer components.


See the Current Course Syllabi.