FAEX • Arquitetura de Computadores • Semana 06
Ciclo de instrução: faça o processador funcionar passo a passo
Hoje não vamos aprender um novo conjunto de instruções. Vamos acompanhar, na prática, como PC, memória, registradores, ALU e sinais de controle trocam dados durante uma instrução completa.
1. Antes de executar: quem faz o quê?
Referências: Stallings, caps. 3 e 16; Harris & Harris, caps. 5 e 6; Nisan & Schocken, cap. 5.
PC
Guarda o endereço da próxima instrução.
Memórias
Uma fornece a instrução; a outra guarda/lê dados.
Decoder / controle
Interpreta a palavra didática e decide os caminhos usados.
Registradores
Fornecem operandos e recebem resultados.
ALU
Executa a operação combinacional selecionada.
Barramentos
Transportam endereço, dados e controle.
2. Barramentos: como os blocos conversam?
Três tipos de informação
| Tipo | Pergunta |
|---|---|
| Endereço | Onde ler ou escrever? |
| Dados | Qual valor está sendo transportado? |
| Controle | O que deve acontecer? |
Contrato didático de hoje
- endereços e dados: 32 bits;
- PC sequencial: +4 bytes;
- memória de dados: apenas palavras de 32 bits;
- endereços válidos usados hoje: múltiplos de 4;
- acesso desalinhado ou fora da faixa gera erro explícito.
3. Ciclo guiado: uma instrução de cada vez
Estados usados hoje: Buscar → Decodificar → Executar → Memória → Escrever/Atualizar PC.
Registradores
| x1 | 5 | x2 | 7 |
| x3 | 0 | x4 | 0 |
Memória de dados
| endereço 0 | 0 |
| endereço 4 | 0 |
4. Laboratório de memória: endereço válido ou erro?
Neste laboratório didático, a memória de dados possui 256 bytes e os acessos simulados são de palavras de 32 bits.
Regra que vamos verificar
endereço % 4 == 0 → alinhado para a palavra didática de 32 bits.
0 ≤ endereço ≤ 252 → a palavra inteira cabe na memória.
5. Microssequência: veja uma instrução preparar a próxima
Aqui não vamos abrir cada instrução em cinco etapas novamente. Isso já foi feito no item 3. Agora o objetivo é perceber como o estado deixado por uma instrução é usado pela instrução seguinte.
Faça comigo, uma instrução por vez
- Leia a próxima instrução destacada.
- Antes de clicar, diga qual estado deve mudar.
- Clique em Executar próxima instrução.
- Confira a mudança e explique por que a próxima instrução precisa desse valor.
Estado acumulado
O importante aqui é observar que os valores permanecem depois que cada instrução termina.
6. Rastro arquitetural: use o histórico para provar o que aconteceu
O rastro é o histórico da execução. Cada linha registra um pequeno acontecimento do processador para que outra pessoa consiga reconstruir a execução.
Como ler uma linha do rastro?
- PC: qual instrução estava sendo tratada?
- Etapa: em que parte do ciclo estávamos?
- Sinais / ação: o que os blocos foram mandados fazer?
- Alteração: qual estado realmente mudou?
Primeiro gere o histórico
Execute as três instruções do item 5. O rastro será preenchido automaticamente com 15 eventos: 5 etapas para cada instrução.
1. Clique em uma linha para entender o que ela registra
| # | PC | Etapa | Palavra | Sinais / ação | Alteração |
|---|---|---|---|---|---|
| Nenhum evento registrado. Execute o item 5 primeiro. | |||||
2. Entenda a linha selecionada
3. Exporte a evidência
Quando a sequência estiver completa, salve o rastro e coloque o arquivo em docs/semanas/Semana-06/.
7. O que registrar no repositório da dupla
Esta aula prepara a evidência da Semana 06 sem avançar para o contrato formal da Semana 07.
Durante a aula
- registre a interface de endereço, dados e controle;
- execute um acesso válido, um desalinhado e um fora da faixa;
- execute a microssequência completa;
- salve o rastro JSON ou CSV;
- compare estado previsto × obtido.
Arquivos sugeridos
docs/semanas/Semana-06/
- interfaces-barramento.md
- ciclo-instrucao.md
- trace.json ou trace.csv
- testes-alinhamento.md