ULA Unidade Lógica e Aritmética Introdução à Ciência da Computação Registradores • O processador contém elementos de memória de pequena capacidade mas de alta velocidade, usados para armazenar resultados temporários, chamados de registradores. • O conjunto desses registradores é denominado banco de registradores. • Esses registradores são referenciados explicitamente pelas instruções lógicas, aritméticas e de transferência de dados. • Existe um registrador especial denominado contador de programa - PC, que contém o endereço da próxima instrução a ser executada. • Um outro registrador, chamado de registrador de instrução - IR, contém a instrução que está sendo executada. Ciclo de Busca das Instruções • O processador executa uma instrução em uma série de etapas: – 1. Busca a próxima instrução que está localizada na memória para o registrador de instrução; – 2. Atualiza o apontador de instruções (PC) para que ele aponte para a próxima instrução a ser executada. – 3. Determina o tipo de instrução; – 4. Se a instrução faz uso de dados (operandos), determina onde estão localizados; – 5. Busca os operandos, se houver, para os registradores do processador; – 6. Executa a instrução; – 7. Armazena os resultados nos locais apropriados; – 8. Volta ao passo 1 para executar a próxima instrução. A maioria das instruções é lógica ou aritmética Unidade Lógica e Aritmética A unidade lógica e aritmética pode realizar diversas operações, entre elas: Adição Subtração Operações lógicas (E, OU, XOR, INVERSÃO) Deslocamento (à esquerda e à direita) Comparação As unidades aritméticas e lógicas mais modernas realizam também as operações de multiplicação e divisão. As operações são realizadas pela leitura de dois registradores fontes do banco de registradores, e com a escrita do resultado no registrador de destino. Funcionamento da ULA Registrador Fonte 1 Registrador Fonte 2 Seleção Reg fonte 1 Seleção Reg fonte 2 Banco de Registradores Seleção Reg destino Seleção da Função ULA Saída = Função(R1, R2) Carry “vai um” Para o Registrador Destino Algumas operações da ULA • • • • • • • NOT – Inversão AND – E lógico OR – OU lógico XOR – OU exclusivo Shift +, -, *, / =, <, >, etc Tabela Verdade A B AND OR NOT A XOR 0 0 0 0 1 0 0 1 0 1 1 1 1 0 0 1 0 1 1 1 1 1 0 0 Portas Lógicas AND OR NOT Exercícios • Qual o resultado das expressões abaixo para os valores possíveis de A e B? – NOT (A OR B) – NOT (A AND B) XOR B – A XOR ( (A AND B) OR (NOT A) ) • Desenhe os circuitos lógicos equivalentes.