Pipelining: Challenges and Solutions

As we just learned, in pipelining, multiple instructions are processed simultaneously, which can improve CPU efficiency.

Nevertheless, this parallel processing can lead to issues called pipelining hazards, which may cause incorrect results or delays (= slower computations).

The main types of pipelining hazards are resource conflicts, data dependencies, and conditional branch statements.

Each of these hazards presents unique challenges to ensuring correct and efficient execution of instructions.

In the following slides, we will define each hazard, discuss its impact, and explore solutions for managing it in an effort to still allow a computer to perform pipeline.