EEC270 - Computer Architecture

3 units - Winter Quarter

Lecture: 3 hours

Prerequisite: courses 170 or ECS154

Undergraduate students who received an A or A- in EEC170 or ECS154B are encouraged to take this course.

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

Course Goals: 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.

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:

  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

Text: J. Hennessey and D. Patterson. Computer Architecture: A Quantitative Approach,(Second Edition) Morgan Kaufman, 1996. Supplemented by 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

Instructor: Akella, Oklobdzija, Redinbo, Wilken

Last revised 11/97
ECD revised: 3/98

THIS COURSE DOES NOT DUPLICATE ANY EXISTING COURSES.

Last revised: 2/93