Vous êtes sur la page 1sur 45

ULA- Unidade Lgica Aritmtica.

Prof. Rmulo Calado Pantaleo Camara


Carga Horria: 60h
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Sumrio
Unidade Lgica Aritmetrica

Registradores
Unidade Lgica
Operaes da ULA
Unidade de Ponto Flutuante
Representao de nmeros inteiros
Representao de nmeros ponto flutuante

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Registradores
O processador contm elementos de memria de
pequena capacidade mas de alta velocidade, usados
para armazenar resultados temporrios, chamados de
registradores.
O conjunto desses registradores denominado banco
de registradores.
Esses registradores so referenciados explicitamente
pelas instrues lgicas, aritmticas e de
transferncia de dados.
Existe um registrador especial denominado contador
de programa - PC, que contm o endereo da prxima
instruo a ser executada.
Um outro registrador, chamado de registrador de
instruo - IR, contm a instruo que est sendo
executada.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Ciclo de Busca das Instrues


O processador executa uma instruo em uma srie de
etapas:
1. Busca a prxima instruo que est localizada na memria
para o registrador de instruo;
2. Atualiza o apontador de instrues (PC) para que ele
aponte para a prxima instruo a ser executada.
3. Determina o tipo de instruo;
4. Se a instruo faz uso de dados (operandos), determina
onde esto localizados;
5. Busca os operandos, se houver, para os registradores do
processador;
6. Executa a instruo;
7. Armazena os resultados nos locais apropriados;
8. Volta ao passo 1 para executar a prxima instruo.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Unidade Lgica e Aritmtica


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 unidades aritmticas e lgicas mais modernas


realizam tambm as operaes de multiplicao e
diviso.
As operaes so realizadas pela leitura de dois
registradores fontes do banco de registradores, e
com a escrita do resultado no registrador de destino.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Funcionamento da ULA

Seleo Reg fonte 1


Seleo Reg fonte 2

Registrador
Fonte 1

Registrador
Fonte 2

Banco de
Registradores

Seleo Reg destino

Seleo da Funo

ULA
Sada = Funo(R1, R2)

Para o
Registrador
Destino

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Carry
vai um

Design da ULA
Ula 2-bits

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Design da ULA
Ula 4-bits

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Accumulator:
H um registrador especial chamado de Accumulator;
O Accumulator guarda todas as operaes da ULA;

Vantagens:
ISA mais simples apenas especificando um operando ao
invs de dois operandos e o destino;
Mais rpidas;

Desvantagens
Necessita de software adicional para carregar valores;
So difceis de trabalhar com pipeline.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Accumulator:
Geralmente esta arquitetura utilizada em
calculadoras de mo.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Register-to-Register:
Uma das mais comuns arquiteturas register-to-register
chamada de mquina de trs operadores. (three
register operand machine);

Desvantagens
ISA precisa ser expandida para incluir instrues de
source e de destino.
Requer um longo tamanho de instruo;
Requer esforo adicional para informar o registrador
que ser feito a escrita do resultado; (Write-back)
O passo write-back pode gerar problemas na
sincronizao no processo de pipeline.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Vantagem:
Pode-se utilizar pipeline;
Software mais simples;

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Register Stack:
Combinao entre a Accumulator e a Register-toRegister;

Funcionamento:
ALU l o operando do topo da pilha e o resultado
inserido no topo da pilha;

Desvantagens
Operaes matemticas complicadas requer
decomposio dentro da expresso (Reverse-Polish
form;
Dificulta a programao caso o compilador no auxilie;

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA: Register Stack


Desvantagens
Hardware precisa ser criado para implementar o PUSH
e POP;
Hardware precisa ser criados para a deteco e o
tratamento de erros de pilha. (pushing quando a pilha
estiver cheia, ou popping quando a pilha estiver vazia )

Vantagens
Muito compiladores do suporte e fazem o reversepolish facilmente utilizando rvores binrias;
ISA muito simples;

Essa mquina chamada de 0-operand ou mquina de


endereo zero, porque no precisa especificar o local
da instruo.
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Register-and-Memory
Um operando vem do registrador e o outro vem da
memria externa;

Desvantagens:
ISA complicada por causa da busca na memria. Dever
trazer toda a palavra localizada no endereo de
memria.

No utilizado diretamente: integrada com outro


esquema register-to-register;
Utilizados com ISA CISC;

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tipos de Design da ULA


Register-and-Memory

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Exerccio
Pesquise outros tipos de design de ULA e
especifique 4 outras arquiteturas. (Valor 0,5 extra
na primeira nota.)
Deve ser especificado a arquitetura, vantagens,
desvantagens e funcionamento.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Algumas operaes da ULA


NOT Inverso
AND E lgico
OR OU lgico
XOR OU exclusivo
Shift
+, -, *, /
=, <, >, etc

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Tabela Verdade
A

AND

OR

NOT A XOR

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de grandeza com sinal


O bit mais significativo representa o sinal:
0 (indica um nmero positivo)
1 (indica um nmero negativo)

Os demais bits representam a grandeza (magnitude).


sinal

magnitude

O valor dos bits usados para representar a magnitude


independe do sinal (sendo o nmero positivo ou negativo, a
representao binria da magnitude ser a mesma).
Exemplos: (8 bits)

001010012 = +4110

101010012 = - 4110

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Exemplo
Valor decimal

Valor binrio com 8 bits


(7 + bit de sinal)

+9

00001001

-9

10001001

+127

01111111

-127

11111111

Assim, uma representao em binrio com n bits teria disponvel para a


representao do nmero n-1 bits (o bit mais significativo representa o
sinal).

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de grandeza com sinal


Apresenta uma grande desvantagem: ela exige
um grande nmero de testes para se realizar
uma simples soma de dois nmeros inteiros.
Requer que na ULA existam dois circuitos
distintos para a adio e a subtrao.
Existem duas representaes para o zero.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao Complemento de 2

Representao de nmeros inteiros


positivos

igual representao de grandeza com sinal.

Representao de nmeros inteiros


negativos
mantm-se os bits menos significativos da direita para a
esquerda at ocorrncia do primeiro bit igual a 1 (inclusive),
sendo os bits restantes complementados de 1.
Esta operao equivale a realizar: complemento de 1 + 1.
Exemplo : (8 bits)
Exemplo : (8 bits)

000011002 = +1210

001010012 = +4110

11110100c2 = -1210

11010111c2 = -4110

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao Complemento de 2
Exemplo: Nmeros inteiros codificados em binrio de
8 bits em um sistema que utiliza complemento de 2:
(-128, -127, ..., -2. -1, 0, +1, +2,..., +127)

{10000000, 10000001, ..., 11111110, 11111111,


00000000, 00000001, 00000010, ..., 01111111}
Bit mais significativo
informao de sinal
(0 = positivo e 1 = negativo)

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao Complemento de 2

Requer um s circuito (somador) para fazer a adio


e a subtrao.
H apenas uma representao para o valor 0
(disponibilidade para mais uma representao) - mais
um nmero negativo pode ser representado (para 8
bits, pode-se representar o nmero 12810
100000002) .
A quantidade de nmeros positivos diferente da
quantidade de nmeros negativos.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Outras formas de representao


Complemento de 1: para negar o valor de um nmero deve-se inverter
os bits do sinal (obsoleta) e Excesso de 2m-1: representao do nmero
dada pela soma de seu valor absoluto com 2m-1. Exemplo: Um sistema
de 8 bits chamado de excesso de 128 e um nmero armazenado com
seu valor real somado a 128. Ex.:-3=011111012 (-3+128=125)

Exerccio de fixao:
Escreva os nmeros decimais abaixo nas seguintes representaes: sinal e magnitude; representao em complemento de 1;
representao em complemento de 2 e excesso de 128 (utilizando
8 bits, se existir representao).
a) -1
b) 20
c) 127
d) 128
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Exemplos
Nmeros negativos de 8 bits expressos em 4 sistemas diferentes
N

-N

-N

-N

-N

(decimal)

(binrio)

(sinalmagnitude)

(complemento de 1)

(complemento de 2)

(excesso de
128)

00000001

10000001

11111110

11111111

01111111

00000010

10000010

11111101

11111110

01111110

00000011

10000011

11111100

11111101

01111101

00000100

10000100

11111011

11111100

01111100

10

00001010

10001010

11110101

11110110

01110110

20

00010100

10010100

11101011

11101100

01101100

100

01100100

11100100

10011011

10011100

00011100

127

01111111

11111111

10000000

10000001

00000001

No existe
representao

No existe
representao

10000000

00000000

128

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Reais


Em alguns tipos de clculo, a faixa de variao dos
nmeros envolvidos muito grande.
Exemplo:

1) Massa do eltron - da ordem de 9 x 10-28 gramas


2) Massa do Sol - aproximadamente igual a 2 x 1033 gramas
Faixa de variao: > 1060
Exemplo de representao (34 dgitos esquerda do ponto
decimal e 28 dgitos direita do mesmo)

1) 0000000000000000000000000000000000.0000000000000000000000000009
2) 2000000000000000000000000000000000.0000000000000000000000000000

Como representar esses nmeros num computador?


Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Reais


Forma usual de representao de nmeros reais:
parte inteira, vrgula (ou ponto), parte fracionria.
Esta representao, embora cmoda para clculos no
papel, no adequada para processamento no
computador.
Exemplo: 45,724
O nmero 45,724 pode ser expresso como:
45,724 x 100
45724 x 10-3
0,45724 x 102
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Flutuante


necessrio o uso de um sistema de representao de
nmeros no qual a faixa de variao dos nmeros seja
independente do nmero de dgitos significativos dos
nmeros representados.
Uma maneira de separar a faixa de variao dos
nmeros de sua preciso consiste em represent-lo na
notao cientfica.
n = f x 10e
f - frao ou significando (ou mantissa)

e - expoente (inteiro positivo ou negativo)

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Flutuante


Qualquer nmero (inteiro ou fracionrio) pode ser
expresso no formato nmero x baseexpoente, podendose variar a posio da vrgula e o expoente.
Denominao (computacional): representao em
ponto flutuante (o ponto varia sua posio,
modificando, em consequncia, o valor representado).
Representao pode variar (flutuar) a posio da
vrgula, ajustando a potncia da base.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Flutuante


Exemplos:
3,14 = 0,314 x 10-1 = 3,14 x 100
0,000001= 0,1 x 10-5 = 1,0 x 10-6
1941 = 0,1941 x 104 = 1,941 x 103
A faixa de variao dos nmeros determinada pela
quantidade de dgitos do expoente e a preciso
determinada pela quantidade de dgitos do
significando.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Flutuante


Forma normalizada: usa um nico dgito antes da
vrgula, diferente de zero (*).
Na representao computacional de nmeros em ponto
flutuante, a representao normalizada , em geral,
melhor que a no-normalizada.
Forma normalizada: s existe uma forma de
representar um nmero.
Forma no normalizada: um mesmo nmero pode
ser representado de diversas maneiras.
(*) Padro IEEE 754 para nmeros em ponto flutuante significando
normalizado comea com um bit 1, seguido de um ponto (vrgula) binrio e
pelo resto do significando (nmero = 1,_ _ ... x 2exp )
Mantissa normalizada - comea com o ponto (vrgula) binrio seguido por um bit
1 e pelo resto da mantissa (bit antes da vrgula igual a zero).
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Representao de Nmeros Flutuante


Ilustrao:

No sistema binrio:
110101 = 110,101x23 = 1,10101x25 = 0,0110101x27

Nmeros armazenados em um computador - os


expoentes sero tambm gravados na base dois
Como 310 = 112 e 7=1112
110,101 x (10)11 = 1,10101x(10)101 =
0,0110101x(10)111

Representao normalizada - h apenas um 1 antes


da vrgula
Exemplo: 1,10101x(10)101
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Na organizao/arquitetura do computador, devese definir:
Nmero de bits do significando (preciso, p ou f)
Nmero de bits do expoente (e)
Um bit (0 para + e 1 para -) de sinal
(tipicamente o primeiro, da esquerda)

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Ilustrao (8 bits)
Bit 7 Bit 6 Bit 5 Bit 4 Bit 3 Bit 2 Bit 1 Bit 0

Sinal

Expoente (+/-)

Significando

Sinal do nmero: 0 = + e 1 = Expoentes: 8 combinaes possveis


OBS: No seguem aritmtica normal
(p.ex.: Utiliza notao em excesso)

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
000
001
010
011
100
101
110
111

Caso especial
Expoente 2
Expoente -1
Expoente 0
Expoente 1
Expoente 2
Expoente 3
Caso especial

Abaixo de zero

(bias = polarizao)

Acima de zero

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Exemplo: Realize as converses abaixo:
6,7510 = (

)2 (ponto flutuante, com 8 bits)

1110 10012 (ponto flutuante, com 8 bits) = (

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

)10

Armazenamento em floats
Soluo:
6,7510 = 110,112 = 1,1011 x 22
sinal: 0
expoente: 210 +310 = x10 , x 10 = 510 = 1012
significando: 1011
Nmero (ponto flutuante, com 8 bits):
010110112
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Soluo:
1110 10012 (ponto flutuante, 8 bits)
sinal: 1
expoente: 1102 = 610 , x10 +310 = 610 ,
x 10 = 310
significando: 10012 =

Nmero:(negativo) 1,10012 x 23 = 1100,12 = 12,510


Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Observaes:

Maior nmero positivo (lembre do bit escondido):


0 110 1111 = + 23 x 1,1111 = 1111,1 = 15,5 decimal
Menor nmero positivo (lembre do bit escondido):
0 001 0000 = + 2-2 x 1,0000 = 0,01 ou 0,25 decimal

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Combinaes especiais dos expoentes na ilustrao...

000 representao NO normalizada


Significando passa a ser 0,_ _ _ ...
Expoente (000) = -2
Menor nmero positivo passa a ser
0 000 0001 = 2-2 x 0,0001 = 2-2 x 2-4 = 2-6 =
0,015625 decimal
A norma IEEE prev o underflow gradual (a mantissa deixa de ser
normalizada), permitindo obter nmeros bem mais prximos de zero.

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Armazenamento em floats
Ainda as combinaes especiais...

Normalizao no permite representar zero!


000 representao NO normalizada
00000000 = + 0 decimal
10000000 = - 0 decimal (iguais em comparaes)
111 - representaes de infinito
01110000 = + infinito
11110000 = - infinito

11111000 = indeterminao
Outras combinaes 11111_ _ _ = Not A Number
(NANs)
Universidade Federal do Vale do So Francisco - UNIVASF
Colegiado de Engenharia da Computao CECOMP

Padro IEEE 754


?

Universidade Federal do Vale do So Francisco - UNIVASF


Colegiado de Engenharia da Computao CECOMP

Vous aimerez peut-être aussi