ECE Header Logo

EEC272 – High-Performance Computer Architecture and Implementation

3 units – Spring Quarter; alternate years

Lecture: 3 hours

Prerequisite: EEC 170 or ECS 154A ECS and 154B, EEC 270 or ECS 250B

Grading: Letter; midterm exam (20%), project (40%) and final exam (40%).

Catalog Description:

Architectural issues in achieving high-performance via concurrent execution of instructions and associated problems and limitations will be discussed. The course will also cover specialized architectures.

Expanded Course Description:

  1. An Introduction to Superscalar Concepts
    1. Beyond pipelining, CISC and RISC
    2. Instruction issue and machine parallelism
    3. Fundamental limitations
    4. Related concepts: VLIW and Vectors
    5. Unrelated parallel schemes
  2. Developing and Execution Model
    1. Simulation technique
    2. Benchmarking performance
    3. Basic observations on hardware design
    4. The design of the standard processor
    5. Procedural dependencies
  3. Instruction Fetching and Decoding
    1. Branches and instruction-fetch inefficiencies
    2. Improving fetch efficiency
    3. Implementing hardware branch-prediction
    4. Implementing four instruction decoder
    5. Implementing branches
    6. Reducing the penalty of procedural dependencies
  4. Advanced Pipelining
    1. Pipeline design
    2. Pipeline schedulingx8breservation tables
    3. Pipeline hazards and conflict resolution
    4. Multi-level pipelines
  5. The Role of Exception Recovery
    1. Buffering state information for restart
    2. Restart implementation and effect on performance
    3. Processor restart
  6. Register Dataflow
    1. Dependency mechanisms
    2. Result buses and arbitration
    3. Result forwarding
    4. Supplying instruction operands
  7. Out-of-Order Issue
    1. Reservation stations
    2. Implementing a central instruction window
    3. Out of order issue
  8. Memory Dataflow
    1. Ordering of loads and stores
    2. Addressing and dependencies
    3. What is more load/store parallelism worth?
    4. Multiprocessing considerations
    5. Accessing external data
  9. Complexity and Controversy
    1. Design complexity
    2. Major hardware features
    3. Hardware simplifications
    4. Is the complexity worth it?
  10. Evaluating Alternatives: A Perspective on Superscalar Processors
    1. The case for software solutions
    2. The case for hardware solutions
    3. VLIW machines
    4. Vector processors (Cray)
    5. Massively parallel machines


  1. Mike Johnson, Superscalar Microprocessor Design, Prentice-Hall, 1991.
  2. V. Oklobdzija, Selected papers and notes.

Instructors: Oklobdzija, Wilken


Last revised: February 2000