Em um pipeline, duas ou mais instruções podem estar em um mesmo estágio, desde que não possua conflito na utilização de recursos? Explique sua resposta e em caso de ser afirmativo, dê um exemplo.
Passo 1
A questão pergunta se em um pipeline podemos ter duas ou mais instruções num mesmo estágio desde que não haja conflito de recursos. O conteúdo é organização de pipeline e alocação de recursos funcionais (ALUs, portas de memória etc.).
Passo 2
Num pipeline clássico de uma única via (single‐issue), cada estágio tem um único recurso. Por exemplo, o estágio de execução (EX) costuma ter apenas uma ALU, então só cabe uma instrução EX por ciclo.
Se duplicarmos ou multiplicarmos recursos funcionais, criamos uma arquitetura superscalar ou VLIW. Nesse caso, cada instrução pode usar uma unidade separada e não “brigar” pelos mesmos recursos.
Se duplicarmos ou multiplicarmos recursos funcionais, criamos uma arquitetura superscalar ou VLIW. Nesse caso, cada instrução pode usar uma unidade separada e não “brigar” pelos mesmos recursos.
Passo 3
Portanto, sim: desde que não haja conflito de recursos (cada instrução use unidades distintas), várias instruções podem ocupar um mesmo estágio simultaneamente.
Exemplo prático: num processador superscalar com duas ALUs, as instruções independentes
Exemplo prático: num processador superscalar com duas ALUs, as instruções independentes
ADD R1,R2,R3
e ADD R4,R5,R6
podem ambas estar no estágio EX no mesmo ciclo, cada uma usando sua ALU.Resposta
Sim. Em arquiteturas superscalar com recursos duplicados, duas instruções independentes podem compartilhar um estágio (por exemplo, duas ALUs executando simultaneamente instruções ADD).