Alternativa A - O IR carrega a instrução, o teste lógico é realizado pela ULA, e, se o critério for atendido, o PC recebe um novo valor.
Fundamentação Teórica
Esta questão aborda o ciclo de vida da instrução em arquiteturas clássicas como a do IAS (Institute for Advanced Study) e o modelo Von Neumann. Para entender a resposta, precisamos analisar o fluxo padrão de processamento de uma instrução de desvio condicional.
1. O Ciclo de Execução
Em qualquer computador baseado em Von Neumann, a execução passa por etapas fundamentais:
- Busca (Fetch): A instrução é buscada da memória principal e armazenada no IR (Instruction Register).
- Decodificação: O sistema identifica o tipo de operação (ex: soma, salto, teste).
- Execução: As operações aritméticas ou lógicas são realizadas.
2. O Desvio Condicional
Uma instrução de desvio condicional (como IF, JUMP IF ZERO, etc.) possui uma lógica específica diferente de uma simples soma:
- Leitura: O conteúdo da instrução deve estar disponível no IR.
- Verificação: É necessário verificar uma condição (ex: "o número é positivo?", "o flag de zero está ativo?"). Esse teste lógico é competência da ULA (Unidade Lógica e Aritmética) ou da unidade de controle associada.
- Atualização de Fluxo: Se a condição for verdadeira (critério atendido), o fluxo normal de execução (sequencial) é interrompido. Isso é feito alterando o conteúdo do PC (Program Counter), que deixa de apontar para a próxima instrução sequencial e passa a apontar para o endereço do alvo do desvio.
Análise da Alternativa Correta
A Alternativa A descreve corretamente essa sequência lógica:
- "O IR carrega a instrução": Fase inicial de busca/decodificação.
- "o teste lógico é realizado pela ULA": A verificação da condição necessária para o desvio.
- "se o critério for atendido, o PC recebe um novo valor": A consequência do desvio bem-sucedido (alteração do endereço de próxima execução).
Por que as outras estão incorretas?
- Alternativa B: Sugere que o MAR define o endereço da próxima instrução durante a execução do teste, mas a alteração do fluxo (salto) ocorre via atualização do PC, não apenas definindo o MAR para a próxima. Além disso, a ordem dos eventos está misturada.
- Alternativa C: Afirma que o MBR envia o resultado para a ULA. Em um desvio condicional, o foco é a decisão de fluxo (PC), não o envio de dados operacionais para a ULA após a operação.
- Alternativa D: Comete um erro conceitual grave ao dizer que "a próxima instrução é carregada no Ac" (Acumulador). Instruções são carregadas no IR; o Acumulador armazena dados numéricos para cálculo.
- Alternativa E: Atribui a realização do teste ao MBR (Memory Buffer Register), que serve apenas para bufferar dados vindos da memória, não para processamento lógico complexo. Também menciona o IBR (Instruction Buffer Register), que na arquitetura IAS servia para guardar a segunda metade da instrução de 40 bits, não sendo o mecanismo principal de desvio descrito.