Actually this is a exam paper question I found during studying pipelined MIPS architecture.My idea is designers allow to occur hazards because of the cost to make complex design to prevent hazards,so it may be better to allow them than preventing them...It's just my idea..

  • 1
    $\begingroup$ This seems like an open-ended, opinion-based question. Can you clarify which facts you are interested in? $\endgroup$ – Raphael Jan 4 '18 at 12:14
  • 1
    $\begingroup$ What's hilarious about "pipeline hazards" is this set of vulnerabilities related to speculative execution have just been reported. $\endgroup$ – Nat Jan 4 '18 at 12:21
  • $\begingroup$ I am not sure what your question is. As soon as your processor has a pipeline, the notion of hazard exists because some instructions cannot be executed and thus some bubbles need to be inserted to get a correct result. Designers do not "choose" to have hazards (however the ISA may influence which hazard exist), they however have to choose how to deal with them. A common solution to avoid stalling too much is forwarding. The other option is to avoid pipelining altogether but this is a bad idea performance-wise. $\endgroup$ – Amaury Pouly Jan 4 '18 at 16:13