Ciclo de instruções:
- Ciclo de Busca:
- A cpu busca instruções na memória
- Dentro da cpu há o pc (registrador contador de programas)
- O pc sabe onde está a próxima instrução
- A cada incremento dado ao pc, ele buscará a instrução localizada no end. memória mais alto
Exemplo do Ciclo de Busca:
- Um instrução ocupa uma palavra de 16 bits na memória (qualquer instrução)
- PC=300 -> significa que a instrução está localizada no endereço de memório 300
- PC++: Equivale a instrução 301
- PC++: Equivale a instrução 302
- PC++: Equivale a instrução 303 -> ou seja, a próxima instrução está no endereço de memória 303
Depois de localizar a instrução na memória:
- A instrução é carregada em outro registrador, o IR (registrador de instrução)
- Cada instrução tem bits que especifica qual será a ação do processador
- Essa ação pode ser:
- Transfira seus dados para a memória
- Requisite dados da memória
- Envie os dados para um monitor/projeto (periféricos)
- Execute algo com esses dados (operações aritméticas ou lógicas)
- Busque uma instrução no local X
Exemplo do funcionamento dos Registradores da CPU:
- PC: 300 -> PC está se referenindo a instrução do end. memória 300, mas agora ele precisa da
instrução que está no end. memória 187. Para isso basta especificar o endereço ao PC.
- PC: 187 -> Essa é uma Função de Controle
Formato da Instrução:
- A instrução é formada por Opcodes + Espaço de Endereçamento
- Opcode: Informa o código de operação
- Veja a imagem abaixo:
Para expandir basta clicar na imagem.
Execução de Programa - Exemplo da Soma (possui 2 ciclos de instrução):
- Lembrando que o ciclo de instrução envolve: Ciclo de Busca e Ciclo de Execução
Ambos os exemplos são apresentados no livro do Stallings, página 57, 58.
Caso real - Soma:
- Processador PDP-11
- ADD: Define a operação de Soma
- ADD A, B -> Soma o conteúdo das duas variáveis
- Lembrando que A, B representam locais na memória
- Para ler os valores de A e B é realizado o processo apresentado na imagem acima
- Informar o PC
- Atualizar o IR
- Atribuir valor ao AC
- Limitação: No PDP-11 é necessário dois AC para não perder o valor de A, pois essa operação requisita que o resultado da soma seja atribuido ao endereço de memória da Variável A.
O diagrama de estados para a imagem acima pode ser vista no slide 12 da aula 03.
Os estados que estão acima:
- Busca de Instrução
- Busca de Operando
- Armazenamento do Operando
- Envolvem troca entre Cpu, Memória e E/S
Obs.:
- Estado: Cálculo do Endereço do Operando(oac):
- Acontece duas vezes, pois:
- Uma instrução pode envolver: Leitura ou Escrita, ou (Leitura e Escrita)
Descrição dos Estados:
- Busca da Instrução (Instruction fetch - if)
- Busca do Operando (Operation fetch - of)
- Decodificação da Operação da Instrução (Instruction Operation Decoding - iod)
- Cálculo do Endereço do Operando (Operation Address Calcularion - oac)
- Cálculo de Endereço de Instrução (Instruction Address Calculation - iac)
- Operação dos Dados (Data Operation - do)
- Armazenamento do Operando (Operand Store - os)
Exemplo:
- Instrução: ADD A, B do PDP-11 resultado em: iac, if, iod, oac, of, oac, of, do, oac, os
Próximo tópico: Interrupções