Hazard (computer architecture):
In the computer architecture, a hazard is a possible problem that can occurs in a pipelined processor. It concern to the possibility of erroneous computation when a CPU tries to simultaneously execute multiple instructions which exhibit data dependence. There are typically 3 types of hazards:1) branching hazards 2) structural hazards and 3) data hazards (control hazards).
Instructions in a pipelined processor are executed in various stages, so that at any given time many instructions are being executed, and instructions cannot be completed in the required order.
A hazard takes place when two or more of these simultaneous (possibly out of order) instructions conflict.
i) Data hazards
a)RAW - Read After Write
b) WAR - Write After Read
c) WAW - Write After Write
ii) Structural hazards
iii) Branch (control) hazards
iv) Eliminating hazards
a)Eliminating data hazards
b) Eliminating branch hazards