Pipelining

Tom Kelliher, CS 240

Apr. 21, 1999

Administrivia

Announcements

Assignment

Due in 1 week. 6.2, 6.3, 6.4, 10 pts. each. 6.32 or 6.33, 20 pts.

From Last Time

Reviewed midterm

Outline

  1. Pipelining.

  2. Superscalar pipelines.

Coming Up

Caches.

Pipelining

A pipelined datapath:

Observations:

  1. Not a true pipeline: feedback.

  2. How do we re-design control?

Hazards

  1. Structural hazards.

    Example: unified L1 cache/memory.

  2. Control hazards. Consider the following example:

    Solutions:

    1. Stall.

    2. Predict.

      Static prediction. Truly static. Compile-time determined.

      Dynamic prediction. Branch history tables. One-, two-bit counters.

    3. Delayed branch.

      Assumes you know branch outcome early.

      Code scheduling:

    Consideration: deeper pipelines.

  3. Data hazards.

    Data not available when needed.

    ALU example:

    Fixed by forwarding.

    Memory example:

    How can this be fixed?

Superscalar Pipelines

Dynamic scheduling:

Logical vs. physical registers.

Generic structure of Pentium Pro, PowerPC 604:



Thomas P. Kelliher
Wed Apr 21 11:02:34 EDT 1999
Tom Kelliher