Challenges to Pipelining and Superscalar Design

I noted previously that there are conditions under which two arithmetic instructions cannot be “safely” dispatched in parallel for simultaneous execution by the DLW-2’s two ALUs. Such conditions are called hazards, and they can all be placed in one of three categories:

  • Data hazards

  • Structural hazards

  • Control hazards

Because pipelining is a form of parallel execution, these three types of hazards can also hinder pipelined execution, causing bubbles to occur in the pipeline. In the following three sections, I’ll discuss each of these types of hazards. I won’t go into a huge amount of detail about the tricks that computer architects use to eliminate them or alleviate their affects, because we’ll discuss ...

Get Inside the Machine now with the O’Reilly learning platform.

O’Reilly members experience live online training, plus books, videos, and digital content from nearly 200 publishers.