Sie sind auf Seite 1von 7

ULA

A Unidade Lgica Aritmtica (ULA) a unidade responsvel pela execuo de operaes aritmticas e lgicas, sendo composta de diversos dispositivos lgicos digitais simples, capazes de armazenar e registrar bits, efetuar operaes simples de lgica booleana . Ela pode ser encontrada em diversos processadores de dados, pois esta parte do processador que realmente efetua os clculos, na verdade, uma "grande calculadora eletrnica" do tipo desenvolvido durante a II Guerra Mundial, e sua tecnologia j estava disponvel quando os primeiros computadores modernos foram construdos. A figura 1 representa um esquema tpico de uma ULA, onde A e B so operandos, F entrada da unidade de controle, R a sada, e D a sada de status .

A F R

B D

Figura 1 - Esquema de ULA simples A ULA foi proposta pelo matemtico John von Neumann(1907-1957) em 1946, quando escreveu um relatrio onde descrevia os fundamentos para um novo computador. Neumann acreditava que a ULA seria necessria para que o computador calculasse operaes matemticas bsicas.

O modelo de Von Neumann tambm conhecido como sistema de Von Neumann ou arquitetura de Von Neumann e so denominados computadores com programas armazenados, e segue as seguintes caractersticas:
Sistema de Hardware (Unidade de controle, unidade lgica aritmtica,

vrios registradores, um contador de programa). Sistema de memria principal. Sistema de entrada e sada. Capacidade para executar as instrues sequencialmente. Possui apenas um caminho de dados entre a CPU e a memria principal.

Desde ento o desenvolvimento da ULA tem sido de vital importncia para o aceleramento do processamento de dados e a realizao de clculos matemticos mais rapidamente, visto que a ULA executa as principais operaes lgicas e aritmticas do computador. Hoje em dia uma unidade lgica aritmtica pode realizar as seguintes operaes, a dio, subtrao, funes E, OU, XOR, INVERSO, Deslocamento e Comparao. No caso do trabalho apresentado as operaes da ULA sero adio, subtrao, E e Or. A tecnologia utilizada foi inicialmente rels, herana da telefonia e posteriormente vlvulas, herana da radiofonia. Com o aparecimento dos transistores, e depois dos circuitos integrados, os circuitos da ULA passaram a ser implementados com a tecnologia de semicondutores.

Alm de executar funes aritmticas, uma ULA deve ser capaz de determinar se uma quantidade menor ou maior que outra e quando as quantidades so iguais. A ULA pode executar funes lgicas com letras e com nmeros. Em geral, as operaes realizadas pela ULA so bem simples. Funes de maior complexidade so, na realidade, ativaes sequenciais de operaes bsicas disponveis, como por exemplo, o processo de multiplicao que muitas vezes apenas a ativao de operaes sucessivas de soma e deslocamento na ULA. O processador contm elementos de memria de pequena capacidade mas de alta velocidade, usados para armazenar resultados temporrios, chamados de registradores. O conjunto destes registradores denominado banco de registradores. Esses registradores so referenciados explicitamente pelas instrues lgicas, aritmticas e de transferencia de dados. A unidade lgica e aritmtica pode realizar diversas operaes, entre elas:
Adio Subtrao Operaes lgicas (E, OU, XOR, INVERSO) Deslocamento ( esquerda e direita) Comparao.

As operaes so realizadas pela leitura de dois registradores fontes do banco de registradores, e com a escrita do resultado no registrador de destino. Alm de fornecer o resultado da operao, a ULA fornece tambm indicaes sobre as operaes realizadas denominadas Cdigos de Condio. Tais cdigos normalmente so armazenados em um registrador de controle chamado registrador de estado (Status Register). Exemplos: Zero - indica se o resultado da operao realizada zero; Overflow - indica que o resultado de uma operao aritmtica no pode ser representado no espao tamanho da palavra disponvel; Sinal - indica se o resultado da operao realizado positivo ou negativo; Carry - indica na operao de soma o bit de vai-um (carry-out) e na operao de subtrao o bit de vem-um (borrow-out). Pode ser usado

tambm em operaes de deslocamento para guardar ou fornecer o bit deslocado. No deve ser confundido com overflow. Podemos concluir ento, que a ULA executa operaes aritmticas comuns e toma decises lgicas, resolvendo sintaxes lgicas em uma programao. Uma ULA se apresenta atravs dos comprimento em bits dos operandos, nmero e tipo de operaes e cdigos de condio gerados. Convm ressaltar que a ULA em si no armazena os resultados, os operandos, ou os cdigos de condio gerados. Uma ULA pode ser construda como uma cascata de vrios estgios idnticos. No existem regras de como projetar cada estgio da ULA. Em geral, a aplicao determina o circuito de cada estgio da ULA. Uma ULA tradicional pode ser construda a partir de um multiplexador e de algumas portas lgicas. A replicao deste hardware 32 vezes implementa uma ULA de 32 bits. A ULA foi implantada de maneira a abrigar um hardware para testar um resultado nulo, detectar a ocorrncia de um overflow e realizar a operao bsica paa instruo set on less than. Vamos demonstrar os circuitos somadores e subtratores de uma ULA:

Agora o circuito somador:

Para a operao AND e OR so utilizados os circuitos das j conhecidas operaes,realizadas bit-a-bit .

As funes de multiplicao e diviso em uma ULA no feita de forma direta. Contudo possvel se usar de artifcios simples para realizar as funes com em forma de loops.

Multiplicao e Diviso por 2 Ambas as operaes por 2 so possveis apenas com um deslocamento dos bits dentro de seu contexto. Podemos usar como exemplo o nmero 3, em binrio 011, ao ser multiplicado por dois obtemos 6, representado pelo nmero binrio 110. Basta deslocar os bits para a esquerda que obtemos o nmero desejado.
0 0 0 1 1 1 1 X

Este bit que assume a posio menos significativa, representado pelo x na tabela, dever ser ocupado sempre pelo valor 0. Na diviso rotacionamos os bits no sentido inverso, deslocando-os para a direita. Entretanto h uma diferena na diviso. O bit menos significativo do nmero ser perdido, pois no h um bit inferior a este a ser ocupado por ele. Este bit perdido no interfere no valor, mas representa o resto da diviso por 2. Por exemplo: - 6 dividido por 2, 6 = 1102. Ao deslocar temos 0112. O bit mais significativo ficou vaziou, sendo substitudo por 0, de forma semelhante que na multiplicao. J o bit menos significativo, que era 0, se perdeu. Como este bit sobrando era zero, deduzimos que no havia resto nesta diviso. -7 dividido 2, 7=1112. Ao rotacionarmos para a direita obtemos 0112. Como pode ser visto o mesmo nmero 3 da diviso do nmero 6. Contudo, h uma diferena muito importante. Ao deslocar os dgitos do nmero 111, o 1 do bit menos significativo se perde. Porm este nmero e o resto da diviso. 7/2 = 3, com resto 1, 12=110. Esses bits que sobram de um deslocamento so atribudos ao Carry. Outras multiplicaes e divises Outras operaes podem ser constitudas por repeties. A diviso de um nmero dentro de uma ULA, normalmente composta por repetidas subtraes, at que o processo no possa mais ser repetido. Neste momento obtemos o resto da diviso e o nmero de vezes que foi subtrado o divisor do dividendo o quociente.

A multiplicao de um nmero por outro pode ser feita do mesmo processo, um lao com a adio de um dos fatores repetidas vezes de acordo com o outro, assim teremos o produto. Tambm possvel realizar parte do processo com deslocamentos parciais. Por exemplo, ao multiplicarmos 23 x 10, podemos deslocar o nmero 23 (101112) trs vezes a esquerda, multiplicando por 2 trs vezes e depois somar 23 ao resultado por duas outras vezes. Ao invs de fazer uma soma com dez termos, 23+23+...+23, multiplica o nmero por 8, 23x2x2x2 = 23x8, e posteriormente soma-se 23 mais duas vezes, totalizando a multiplicao por 10.

Estrutura Fsica
Para demonstrar o funcionamento da ULA, utilizamos chaves (para operandos e operao) e LEDs (para o resultado). Na primeira placa de chaves, as 4 primeiras (7 a 4) so para a varivel A e as 4 ultimas (3 a 0) para a varivel DADO. Nos LEDs temos a apresentao do resultado.

Das könnte Ihnen auch gefallen