Dependência RAW ou HAZARDS (CONFLITOS) – É a situação em que um MICROSTEP NÃO PODE iniciar porque está esperando o resultado que uma MICROSTEP anterior ainda não produziu.
ü DEPENDÊNCIAS DE DADOS (HAZARD DATE) - Ocorre quando uma instrução depende do resultado de outra instrução que ainda está no pipeline. Este tipo de dependência é originado na natureza sequencial do código em execução, cuja ordem normal é alterada dentro do pipeline. Solução em hardware para a dependência de dados pode ser resolvido com uma técnica de hardware chamada de adiantamento de dados (FORWARDING ou BYPASSING).
ü DEPENDÊNCIAS DE CONTROLE (CONTROL HAZARDS (CONFLITOS)) - As dependências de controle ocorrem quando a sequência normal de execução das instruções é modificada. Tal modificação pode ser originada pelo próprio programa ou pode ser consequência de uma interrupção. As instruções de desvio condicional podem ou não alterar a sequência natural de execução das instruções. Ao se observar a estrutura do pipeline estudado, pode-se verificar que a decisão sobre o desvio ou não somente ocorre no estágio MEM. Um HAZARD DE CONTROLE, também conhecido como HAZARD DE DESVIO, acontece quando o pipeline toma decisão errada ao prever um desvio e assim acaba trazendo instruções dentro do pipeline que precisam ser descartadas logo em seguida. Utiliza PREDIÇÃO DE DESVIO
ü DEPENDÊNCIAS DE RECURSO ou ESTRUTURAIS (STRUCTURAL HAZARDS (CONFLITOS)) – Um risco estrutural ou de recurso ocorre quando uma parte do hardware do processador é necessária por duas ou mais instruções ao mesmo tempo. Um exemplo canônico é uma única unidade de memória que é acessada tanto no estágio de busca onde uma instrução é recuperada da memória quanto no estágio de memória onde os dados são gravados e/ou lidos da memória. Eles podem ser resolvidos separando o componente em unidades ortogonais (como caches separados) ou borbulhando o pipeline.