ECE Header Logo

EEC270 – Computer Architecture

3 units – Winter Quarter

Lecture: 3 hours

Prerequisite: EEC 170 or ECS 154; undergraduate students who received an A or A- in EEC 170 or ECS 154B are encouraged to take this course.

Grading: Letter; homework (10%), midterm exam (25%), final exam (35%), and project (30%).

Catalog Description:

Introduction to modern techniques for high-performance single and multiple processor systems. Topics include advanced pipeline design, advanced memory hierarchy design, optimizing pipeline and memory use, and memory sharing among multiprocessors. Case studies of recent single and multiple processor systems.

Expanded Course Description:

The goals of this course are to introduce students to the artchitecture and software techniques that are used for state-of-the-art processors to achieve high performance.

  1. Instruction Sets and Addressing Modes
    1. Architecture Types
    2. Addressing Modes
    3. Operation Types
    4. Instruction Encoding
  2. Pipelining
    1. Data Hazards
    2. Structural Hazards
    3. Control Hazards
  3. Advanced Pipelining
    1. Static instruction scheduling
    2. Dynamic instruction scheduling
    3. Branch Prediction
    4. Issuing Multiple instructions
    5. Loop unrolling and software pipelining
    6. Predicated execution
  4. Memory-Hierarchy Design
    1. Reducing cache misses
    2. Reducing cache-miss penalty
  5. Multiprocessors
    1. Centralized shared memory
    2. Distributed shared memory
    3. Synchronization and memory consistency


  1. J. Hennessey and D. Patterson. Computer Architecture: A Quantitative Approach,(Second Edition) Morgan Kaufman, 1996.
  2. Current journal and conference papers.

Engineering Design Content:

The focus of the course is the design of advanced computer systems. Topics include design methods for processor pipelines, branch prediction units, memory hierarchies, and shared memory systems. Design assignments are given for homework that require the use of various computer tools (e.g., simulators, profilers, compilers, and/or system synthesis tools) for designing or analyzing the design of some aspect of a computer system. An open-ended term design project is given that requires the student (working in a small group) to design or to analyze the design of some important part of a modern high-performance computer system.

ABET Category Content:

Engineering Science: 1 credit

Engineering Design: 2 credits

Instructors: Akella, Oklobdzija, Redinbo, Wilken


Last revised: March 1998