O estágio WB não é usado por todas as instruções. Dê um exemplo de instrução que usa e um que não usa o WB.
Passo 1
O que o enunciado pede: dar um exemplo de uma instrução que usa o estágio Write Back (WB) e um exemplo de uma instrução que não usa o estágio WB.
Dados relevantes (implícitos no enunciado): o contexto é uma pipeline típica de CPU (por exemplo a pipeline de 5 estágios usada em MIPS): IF, ID, EX, MEM, WB. Não foi pedido um exame teórico completo da pipeline, apenas exemplos com explicação.
Dados relevantes (implícitos no enunciado): o contexto é uma pipeline típica de CPU (por exemplo a pipeline de 5 estágios usada em MIPS): IF, ID, EX, MEM, WB. Não foi pedido um exame teórico completo da pipeline, apenas exemplos com explicação.
Passo 2
O que é o estágio WB (Write Back)? Explanação curta e didática:
- O estágio WB é o estágio final da pipeline onde um resultado produzido pela instrução é escrito de volta no banco de registradores da CPU.
- Em palavras simples: se a instrução gera um valor que deve ficar guardado em um registrador (por exemplo soma, carga de memória, retorno de chamada), esse valor chega ao estágio WB e lá é escrito no registrador destino.
- Regra prática que vamos usar: “uma instrução usa WB se ela precisa escrever um valor no banco de registradores ao final da sua execução”.
Passo 3
Resumo das classes de instruções e se normalmente usam WB (intuição prática):
- Instruções aritméticas que escrevem resultado em registrador (ex.: add, sub, addi): usam WB.
- Instruções de LOAD (ex.: lw): usam WB — elas carregam um dado da memória para um registrador.
- Instruções de STORE (ex.: sw): NÃO usam WB — elas escrevem na memória, não no registrador.
- Instruções de desvio/branch (ex.: beq, bne) e jump (ex.: j) normalmente NÃO usam WB; exceções: instruções de salto que também gravam um endereço de retorno (ex.: jal) usam WB porque escrevem em um registrador (
).
Essa classificação segue a regra prática do passo anterior.
Passo 4
Exemplo que usa WB — escolha e por quê:
Escolha: a instrução add .
Por que usa WB (passo a passo no pipeline, explicando cada estágio de forma bem didática):
Escolha: a instrução add
Por que usa WB (passo a passo no pipeline, explicando cada estágio de forma bem didática):
- IF (Instruction Fetch): a instrução add é buscada da memória de instruções.
- ID (Instruction Decode / Register Read): decodifica-se que é uma operação R-type e leem-se os valores dos registradores
e . Aqui identifica-se também o registrador destino . - EX (Execute): a ALU faz a soma dos valores lidos de
e e produz o resultado (por exemplo ). - MEM (Memory): para uma add típica não há acesso relevante à memória (passa sem alteração).
- WB (Write Back): o resultado
produzido pela ALU é escrito no registrador destino . Esse é exatamente o propósito do estágio WB: colocar o resultado no banco de registradores.
Resumo em uma linha: addusa WB porque o resultado precisa ser escrito em .
Passo 5
Exemplo que não usa WB — escolha e por quê:
Escolha: a instrução sw (store word).
Por que NÃO usa WB (passo a passo simplificado):
Escolha: a instrução sw
Por que NÃO usa WB (passo a passo simplificado):
- IF: busca da instrução sw.
- ID: decodifica e lê o registrador base
e o registrador fonte (o dado a ser armazenado). - EX: calcula o endereço de memória efetivo (por exemplo
). - MEM: escreve o conteúdo de
no endereço da memória (operação de store). - WB: não há nenhum resultado para escrever no banco de registradores — a instrução já cumpriu seu efeito escrevendo na memória — portanto não ocorre escrita em registradores no estágio WB. Em implementações simples, pode-se dizer que a etapa WB é “nula” para essa instrução.
Resumo em uma linha: swnão usa WB porque seu efeito é escrever na memória, não no banco de registradores.
Passo 6
Observações úteis para a prova (dicas práticas e memorização):
- Regra rápida: “escreve em registrador → usa WB; caso contrário → não usa WB”. Isso resolve a maioria dos casos.
- Exemplos rápidos de memória mental: add, sub, addi, andi, lw, jal → usam WB; sw, beq, bne, j → geralmente não usam WB (exceto jal que escreve
). - Se a questão pedir justificar, descreva brevemente o fluxo IF→ID→EX→MEM→WB e identifique em qual estágio ocorre a escrita no registrador (se houver).
Resposta
add
(usa WB)
sw (não usa WB)
sw