UNIDADE LÓGICA ARITMÉTICA (ULA) Princípios Básicos de Funcionamento Modelo de Von Neumann Todo computador é formado por: Unidade de Central de Processamento (CPU) Periféricos de Entrada e Saída Memórias Modelo de Von Neumann A CPU contém: Elementos de Armazenamento (Registradores) Unidade Lógica e Aritmética (ULA) Circuitos de Controle e Temporização. Modelo de Von Neumann Componentes Básicos de um Computador Modelo de Von Neumann Nosso objeto de estudo será a UNIDADE LÓGICA E ARITMÉTICA Unidade Lógica e Aritmética Podemos considerá-la como uma “grande calculadora eletrônica” do tipo desenvolvido durante a II Guerra Mundial, e sua tecnologia já estava disponível quando os primeiros computadores modernos foram construídos. Unidade Lógica e Aritmética É a parte do computador onde são feitas as operações aritméticas e lógicas com os dados O tipo de operação a ser executado é determinado por sinais vindos da unidade de controle. Os dados a serem operados são lidos dos dispositivos de entrada para a memória e após obtidos os resultados enviados novamente para a memória e daí para os dispositivos de saída de dados. Unidade Lógica e Aritmética A tecnologia utilizada foi inicialmente relés, herança da telefonia, e posteriormente válvulas, herança da radiofonia. Com o aparecimento dos transistores, e depois dos circuitos integrados, os circuitos da ULA passaram a ser implementados com a tecnologia de semi-condutores. Unidade Lógica e Aritmética A ULA 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 Unidade Lógica e Aritmética Além de executar funções aritméticas, uma ULA deve ser capaz de determinar se uma quantidade é menor ou maior que outra e quando as quantidades são iguais. A ULA pode executar funções lógicas com letras e com números. Unidade Lógica e Aritmética As ULA’s 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. Unidade Lógica e Aritmética Podemos concluir então, que a ULA: Executa operações aritméticas comuns Toma decisões lógicas, resolvendo sintaxes lógicas em uma programação. Unidade Lógica e Aritmética Uma ULA pode ser construída como uma cascata de vários estágios idênticos. Não existem regras de como projetar cada estágio da ULA. Em geral, a aplicação determina o circuito de cada estágio da ULA. Unidade Lógica e Aritmética Na próxima figura é mostrado o diagrama em blocos da ULA, onde: /RACARGA – Habilita a transferência do conteúdo do barramento de dados para o Acumulador, quando houver uma transição positiva do /CLOCK. /RBCARGA - Habilita a transferência do conteúdo do barramento de dados para o Registrador Temporário, quando houver uma transiçãopositiva do /CLOCK. Unidade Lógica e Aritmética MODOULA – Define o modo (aritmético = 1 ou lógico = 0) de operação de UL. S0, S1, S2, S3 – define a operação as ser realizada. /FLAG – Armazena o estado dos Flags no Registrador de Flags. /UM – Define o estado fo carry de entrada. /ULALER – Habilita a transferência do resultado para barramento de dados. Unidade Lógica e Aritmética Existem diversos circuitos integrados disponíveis comercialmente que são classificados e vendidos como ULA, apesar de não apresentarem a capacidade lógica e aritmética de uma ULA. Unidade Lógica e Aritmética Esses circuitos são capazes de realizar várias operações lógicas e aritméticas diferentes com dados binários de entrada. A operação específica é determinada pelo código binário específico que é aplicado nas entradas dos bits seletores de função. Cada circuito possui um conjunto específico de funções que pode executar, diferente das demais ULA’s.