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