⾕

Computação  |  

Embora existam variações dependendo da arquitetura, um pipeline clássico de 5 estágios (como o do MIPS) é descrito da seguinte forma:

I) IF – Instruction Fetch (Busca de Instrução): A CPU busca a próxima instrução na memória, utilizando o contador de programa (PC).

II) ID – Instruction Decode / Register Fetch (Decodificação e Leitura de Registradores): A instrução é decodificada e os operandos necessários são lidos dos registradores.

III) EX – Execute / Address Calculation (Execução ou Cálculo de Endereço): A ALU executa a operação aritmética/lógica ou calcula endereços de memória.

IV) MEM – Memory Access (Acesso à Memória): Caso a instrução envolva leitura ou escrita de memória, essa operação é realizada aqui.

V) WB – Write Back (Escrita de Resultado): O resultado é escrito de volta no registrador de destino.

Hazards (Riscos de Pipeline)

Embora o pipeline aumente o desempenho, ele introduz conflitos chamados de hazards, que impedem o fluxo ideal de instruções:

Hazards de Dados (Data Hazards): Ocorrem quando uma instrução depende do resultado de uma instrução anterior ainda em execução no pipeline.

Hazards de Controle (Control Hazards): Resultam de instruções de desvio (branches), que alteram o fluxo de execução.

Até que o destino do desvio seja conhecido, a CPU pode buscar instruções incorretas.

Técnicas de mitigação incluem branch prediction e speculative execution.

Hazards Estruturais (Structural Hazards): Acontecem quando duas instruções competem pelo mesmo recurso de hardware, como a memória ou a ALU.

Back Next