Em determinado tipo de arquitetura, o processador explora o potencial de paralelismo em nível de instrução, podendo haver várias instruções que executam simultaneamente no mesmo estágio de pipeline e múltiplas instruções que são iniciadas no mesmo ciclo de clock. Através do escalonamento dinâmico, todas as instruções na janela de execução podem iniciar a execução, conforme dependência de dados e recursos. Três tipos de dependência de dados podem ser identificados:
I. Write After Read (WAR). Ocorre se uma instrução usa uma posição como um dos operandos enquanto a instrução seguinte está escrevendo naquela posição.
II. Write After Write (WAW). Ocorre se duas instruções estão escrevendo na mesma posição; se a segunda instrução escreve antes que a primeira, ocorre um erro.
III. Read After Write (RAW). Ocorre quando a saída de uma instrução é exigida como entrada para a instrução subsequente.
O tipo de arquitetura do processador e os 3 tipos de dependência de dados são, correta e respectivamente,
- A VLIW (Very Long Instruction Word) − Dependência híbrida − Dependência de escrita − Dependência de leitura.
- B Superescalar – Antidependência − Dependência de saída − Dependência de dados verdadeira.
- C Superpipeline − Dependência híbrida − Dependência de escrita − Dependência de leitura.
- D Superpipeline − Interdependência − Dependência de saída − Dependência de entrada.
- E ESPP (Enhanced Super-Parallel Processor) − Antidependência − Dependência de saída − Dependência de entrada.