A apresentação está carregando. Por favor, espere

A apresentação está carregando. Por favor, espere

1 Aritmética Representação de números. 2 Representação de inteiros Números inteiros com sinal A representação mais comum é a representação em complemento.

Apresentações semelhantes


Apresentação em tema: "1 Aritmética Representação de números. 2 Representação de inteiros Números inteiros com sinal A representação mais comum é a representação em complemento."— Transcrição da apresentação:

1 1 Aritmética Representação de números

2 2 Representação de inteiros Números inteiros com sinal A representação mais comum é a representação em complemento para 2 Boas propriedades para adição e subtracção Como já viram em AC I... No entanto existem outras formas de representar: Magnitude Complemento para 1 Excesso m

3 3 Representação de inteiros Magnitude 1 bit de sinal seguido do valor absoluto do número Exemplos (em 8 bits) OBS: A notação não tem boas propriedades para a adição: se fizer N + (-N) o resultado não dá 0... O 0 pode ter duas representações diferentes...

4 4 Representação de inteiros Complemento para 1 O simétrico é a negação bit a bit Exemplos (em 8 bits) OBS: Boas propriedades para adição, mas o 0 pode ter duas representações diferentes...

5 5 Representação de inteiros Excesso m Representa-se o valor do número acrescido de m O menor número vale –m e é representado por 0s Exemplo: excesso 128 (8 bits) OBS: Quando m=2 n-1 fica semelhante ao complemento para 2, mas com o bit de sinal trocado

6 6 Representação de inteiros Apesar de muito utilizada, a notação em complemento para 2 também tem um defeito: Existe mais um número negativo do que o número de positivos No caso da notação excesso-m, esse desequilíbrio pode ainda ser maior No entanto, não existe nenhuma notação ideal: o zero ter um única representação existirem tantos números negativos como positivos ter boas propriedades para adição/subtracção

7 7 Representação de números reais Norma IEEE 754 (versão mais recente: Ago/2008) Até meados dos anos 80, a representação de números reais não estava normalizada... Cada fabricante usava a sua representação Para ultrapassar problemas de compatibilidade, surgiu em 1985 a primeira versão da norma IEEE 754 A norma define: Os formatos de representação dos números reais Como devem ser feitos os arredondamentos Como devem ser feitas as operações Tratamento de excepções (ex: divisão por zero, underflow, overflow) …

8 8 Representação de números reais Formato de um número real (virgula flutuante) Precisão simples – 32 bits – float 1 bit que define o sinal (0 – positivo; 1 – negativo) 8 bits para o expoente (representado em excesso 127) 23 bits para a mantissa, representada em magnitude Valor do número: (-1) sinal 1.mantissa 2 expoente

9 9 Representação de números reais Exemplo: Qual será o valor do número real C (hex) ? Sinal = 1 número negativo Expoente = = 130 o expoente vale 3 (não esquecer que está em excesso 127) Mantissa = … = = = 0.75 O valor do número será então: – = –14.0

10 10 Representação de números reais Significados especiais ExpoenteMantissaValorObs. –127== == 0 infinito Depende do sinal 128!= 0NaN (not a number)Valores não reais –127!= 0 0.mantissa Forma desnormalizada Exemplos: (hex) = 0.0 7F (hex) = + FFFF FFFF (hex) = NaN (hex) = 0.5 *

11 11 Representação de números reais Precisão dupla – double Obtêm-se os valores de forma idêntica, mas os números são representados em 64 bits com 11 bits para o expoente (em excesso 1023) e 52 bits para a mantissa Gamas de representação (na forma normal) Precisão simples a Precisão dupla a

12 12 Aritmética Multiplicação binária

13 13 Multiplicação binária Multiplicação (sem sinal) 1101multiplicando (A) × 1010multiplicador (B) produto (P) 1101 (13) × 1010 (10) = (130) Quando se multiplicam dois números de n bits (sem sinal), o resultado terá, no máximo, 2n bits.

14 14 Multiplicação binária Multiplicação (sem sinal) A3A3 A2A2 A1A1 A0A0 × B3B3 B2B2 B1B1 B0B0 B0A3B0A3 B0A2B0A2 B0A1B0A1 B0A0B0A0 B1A3B1A3 B1A2B1A2 B1A1B1A1 B1A0B1A0 B2A3B2A3 B2A2B2A2 B2A1B2A1 B2A0B2A0 B3A3B3A3 B3A2B3A2 B3A1B3A1 B3A0B3A0 P7P7 P6P6 P5P5 P4P4 P3P3 P2P2 P1P1 P0P0 ANDs entre os bits de A e os bits de B

15 15 Multiplicação binária Utilizando vários adicionadores... A3A3 A2A2 A1A1 A0A0 × B3B3 B2B2 B1B1 B0B0 0B0A3B0A3 B0A2B0A2 B0A1B0A1 B0A0B0A0 +B1A3B1A3 B1A2B1A2 B1A1B1A1 B1A0B1A0 c out1 S 13 S 12 S 11 S 10 +B2A3B2A3 B2A2B2A2 B2A1B2A1 B2A0B2A0 c out2 S 23 S 22 S 21 S 20 +B3A3B3A3 B3A2B3A2 B3A1B3A1 B3A0B3A0 c out3 S 33 S 32 S 31 S 30 P7P7 P6P6 P5P5 P4P4 P3P3 P2P2 P1P1 P0P0 Somadores

16 16 Multiplicação binária Pode-se seguir esta estrutura

17 17 Multiplicação binária Utilização de vários adicionadores Se os números a multiplicar são compostos por n bits então são necessários n – 1 adicionadores de n bits cada um Eventuais problemas: Excesso de material por exemplo, para multiplicar dois números de 32 bits seriam necessários 31 somadores de 32 bits Demasiado consumo de tempo durante um ciclo Num processador, ter um multiplicador deste género pode aumentar de forma significativa a duração de cada ciclo, devido aos tempos de propagação dos somadores

18 18 Multiplicação binária Alternativa: usar um único somador e registos O adicionador efectua todas as adições necessárias em n ciclos É necessário: Um registo para acumular as somas – RP Um registo de deslocamento para a esquerda e outro para a direita – RA e RB RP e RA são registos de 2n bits para RB, um registo de n bits é suficiente

19 19 Multiplicação binária Algoritmo básico (para inteiros sem sinal) Inicialização: RP 0, RA A, RB B Ciclo (n iterações) se ( RB 0 == 1 )// bit menos significativo em RB RP RP + RA RA RA > 1 No final, o resultado da multiplicação está em RP

20 20 Multiplicação binária Hardware para o algoritmo básico

21 21 Multiplicação binária Exemplo – multiplicar 1010 por 1001 (i.e. 10 9) Inicialização: RP: RA: RB: 1001 Ciclo 1 (RB 0 = 1) RP: RA: RB: 0100 Ciclo 2 (RB 0 = 0) RP: RA: RB: 0010 Ciclo 3 (RB 0 = 0) RP: RA: RB: 0001 Ciclo 4 (RB 0 = 1) RP: RA: RB: 0000 O resultado será então: RP: = = = 90

22 22 Aritmética Aceleração da adição

23 23 Adição básica (Ripple-carry) Um circuito full adder (dado em AC1) Soma os bits A e B com o transporte anterior (C in ), dando o resultado da soma (S) e o transporte que sai (C out )

24 24 Adição básica (Ripple-carry) Adicionador Ripple-carry de n bits Problema: Os transportes (C i s) têm que se propagar entre os full adders Admitindo que cada full adder impõe um atraso, o tempo necessário para ser feita a soma será proporcional a n

25 25 Adição básica (Ripple-carry) Outra maneira de ver PFA PFA – Partial Full Adder

26 26 Adição básica (Ripple-carry) Outra maneira de ver Em que: Propagação de carry Geração de carry

27 27 Adição básica (Ripple-carry) Para um ripple adder de 4 bits Ps e Gs podem ser calculados em paralelo (ao mesmo tempo) As somas (os Ss) têm que esperar que chegue o C i respectivo

28 28 Adição básica (Ripple-carry) Para um ripple adder de 4 bits Caminho crítico – corresponde ao pior caso na propagação dos sinais Tipicamente é o que atravessa mais portas lógicas

29 29 Acelerar a adição Genericamente tem-se:

30 30 Acelerar a adição Com base nessas equações obtém-se:

31 31 Adicionador Carry Lookahead Este tipo de adicionador designa-se por carry lookahead adder (CLA) Repare no atraso associado à propagação do carry neste caso corresponde ao de 2 portas lógicas E se quisesse construir um CLA de 8 bits ? Problema com o desenho anterior: para calcular carrys de ordem elevada (e.g. C 7 ) precisaria de portas lógicas com muitas entradas......difícil de implementar na prática Uma abordagem mais realista seria usar portas com 2 entradas

32 32 Adicionador Carry Lookahead

33 33 Adicionador Carry Lookahead O caminho crítico está representado a vermelho

34 34 Adicionador Carry Lookahead

35 35 Adicionador Carry Lookahead Comparação entre os adicionadores: (supondo que apenas são utilizadas portas lógicas com 2 entradas) Nº de bits Ripple-carryCLA TempoNº de portasTempoNº de portas 49t PD 207t PD t PD 4011t PD t PD 8015t PD t PD 16019t PD t PD 32023t PD t PD 64027t PD 1021

36 36 Outros adicionadores Carry select adder A ideia consiste em preparar somas parciais para ambas as hipóteses de carry in O carry out do bloco anterior irá seleccionar qual dos 2 resultados é válido Carry skip adder Composto por vários blocos onde são calculados os Ps, mas não os Gs Os Ps são utilizados para propagar o carry ao bloco seguinte

37 37 Outros adicionadores Carry select adder (8 bits)

38 38 Outros adicionadores Carry skip adder (16 bits)

39 39 Síntese Evolução do tempo necessário para fazer uma soma de dois números representados com n bits AdicionadorTempo RippleO(n) Carry lookaheadO(log 2 n) Carry skipO(n) Carry selectO(n) n – número de bits O(x) – significa evolui proporcionalmente com a grandeza x

40 40 Síntese

41 41 Síntese


Carregar ppt "1 Aritmética Representação de números. 2 Representação de inteiros Números inteiros com sinal A representação mais comum é a representação em complemento."

Apresentações semelhantes


Anúncios Google