However, the actual hazard and the length of any stall is a property of the pipeline. Basic ILP Techniques Data dependences Indicate the possibility of a hazard. Determine the order in which results must be generated. Place an upper bound on the amount of ILP available. Eliminating the dependence by transforming the code.
Scheduling is the primary way to avoid hazards without altering dependences.
We scheduled the code to avoid the hazard, but the dependence remained in the code. Basic ILP Techniques Data dependences Since eliminating data dependencies requires a fair amount of analysis, it is done by the compiler. Avoiding hazards through scheduling can be done in both hardware and software. One tricky data dependence that many people overlook is that of memory locations. Registers are easy to figure out, but memory dependences are much harder since they may not be known until runtime.