1 arquitetura de computadores aritmética. professor: arlindo tadayuki noji instituto de ensino...

42
1 Arquitetura de Computadores Aritmética

Upload: internet

Post on 16-Apr-2015

114 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

1

Arquitetura de Computadores

Aritmética

Page 2: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

2Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Aritmética– Usando a representação numérica aprendida no

capítulo passado, iremos explorar os métodos aritméticos de adição, subtração, multiplicação e divisão

– Iremos ver os métodos diferentes para os números de ponto fixo X ponto flutuante

– Como encontrar overflow.

Page 3: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

3Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Adição e subtração de ponto fixo

– O processo de adição ou subtração pode ser implementado utilizando os métodos de complementos de um ou complemento de dois, sendo que este último é o mais comum.

– Complemento de dois:

Números podem ser adicionados ou subtraídos usando a idéia representada pela figura ao lado.

Para adicionar basta caminhar no sentido horário, para subtrair o caminho inverso

Overflow acontece, quando ocorre uma transição do +3 para -4 ou do -4 para +3.

Page 4: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

4Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Overflow– Overflow acontece quando dois positivos são somados e o resultado é negativo ou

quando se adiciona dois números negativos e produzir um resultado com número positivo. Somar dois números com sinais diferentes nunca produzirá um overflow.

– Em complemento de dois no processo de soma é normal descartar o bit de excesso (carry) e não indica a ocorrencia de overflow.

– Exemplo de overflow:

Soma: (80 + 80 = 160)10, produzirá na base 8, o valor –9610 iusando o formato de complemento de dois:

01010000 = 80

+ 01010000 = 80

----------

10100000 = -96 (complemento de dois)

Page 5: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

5Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Implementação de adição e subtração via hardware

– Adição com Ripple-Carry (excedentes propagados em onda)

– Subtração com Ripple-Borrow (empréstimo propagados em onda)

Page 6: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

6Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Adição com Ripple-Carry (excedentes propagados em onda)

– Exemplo: soma de dois números binários, usando dois operandos de 4 bits, carry e resultados como saídas.

Page 7: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

7Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Sistema de 16 bits– Um sistema maior poder ser construído partir de cascatas de

somadores de 4 bits

Page 8: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

8Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Subtração– Um circuito de subtração pode ser implementado

usando a seguinte tabela verdade:

Page 9: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

9Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Modelo Ripple-Borrow de subtração– Pode ser composta pela combinação em cascata, para gerar circuitos

maiores. – A e B são valores que são entrada para a subtração, as saídas são as

diferenças e “vai um”

Page 10: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

10Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Combinação Subtração/Soma– É possível criar um único circuito que possa somar e subtrair

utilizando portas lógicas XOR.

Page 11: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

11Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Subtração usando complemento de um

– É raramente usando hoje em dia

– O excedente da posição mais a esquerda não é eliminado, mas sim

somado de volta na posição menos significativa da porção inteira.

– Ex:

Page 12: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

12Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Representação cíclica de números usando três bits, com números em complemento de um.

Page 13: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

13Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

O último carry, complica adição de números não inteiros portando o complemento de um não é normalmente utilizado.

Page 14: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

14Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Multiplicação e Divisão em Ponto Fixo

– Pode ser feito usando operações de adição, subtração e deslocamentos

– Funcionam com ou sem sinalização

Page 15: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

15Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Multiplicação de números de ponto fixo sem sinal– Multiplicação de dois numero de 4 bits produzirá como resultado

8 bits– Multiplicação de número de 4 bits, sinalizado produz com

resultado um número de 7 bits!

Figura retirada do livro Introdução a Arquitetura de Computadores, Miles J. Murdocca

Page 16: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

16Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Multiplicador em Série

Page 17: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

17Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Exemplo de um multiplicador usando a multiplicação serial

Page 18: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

18Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Divisão sem sinal– A ideia é subtrair sucessivamente o valor divisor do

dividendo usando o menos de bits possível para esta operação.

– Exemplo de divisão usando a base 2 7/3 = 2, com resto 1 Equivalentemente, (0111/11=10), com resto 1

Page 19: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

19Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

• Divisor Serial

Page 20: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

20Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Exemplo de divisão com sinal

– Divisor Serial

Page 21: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

21Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Extensão do sinal– Um número negativo deve ser estendido de acordo com u

numero de bits do resultado para dar certo.

Page 22: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

22Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Aritmética de Ponto Flutuante– As operações aritméticas em números de ponto

flutuante podem ser feitas usando as operações de ponto fixo descritas anteriormente, prestando atenção em manter a representação de ponto flutuante.

Page 23: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

23Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Aritmética de Ponto Flutuante– O tratamento para a aritmética de ponto flutuante difere da

aritmética de inteiros porque temos pensar também nos expoente e no magnetude dos operandos ( Normalização)

– As operações aritméticas em números de ponto flutuante podem ser feitas usando as operações de ponto fixo descritas anteriormente, prestando atenção em manter a representação de ponto flutuante.

Page 24: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

24Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Adição e subtração em ponto flutuante– Difere de ponto flutuante da aritmética inteira porque os expoentes

tem de ser tratados junto com as magnetudes dos operandos

– Exemplo: Somar (.101 23 + .111 24)2

.101 23 = .010 24, perde-se .001 23 de precisão

(.010 + .111) 24 = 1.001 24 = .1001 25

Trabalhando apenas com 3 dígitos, temos: .100 25, e perdendo mais 0.001 24 no processo

Page 25: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

25Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

A multiplicação e divisão em ponto flutuante– A multiplicação e divisão em ponto flutuante são

feitos de maneira similar a adição e subtração em ponto flutuante.

Page 26: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

26Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Aritmética de alto desempenho– Muitas aplicações exigem mais velocidades nos

cálculos matemáticos. – Usar este métodos simples, não é produtivo– Outras técnicas são necessárias para melhorar a

velocidades dos cálculos matemáticos em adição, subtração, multiplicação e divisão em ponto flutuante.

Page 27: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

27Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Adição de alto desempenho – Carry-Lookahead Addition

Os carries são representados em termos de expressões de Gi e Pi

Gi = aibi and Pi = ai + bi

c0 = 0

c1 = G0

c2 = G1 + P1G0

c3 = G2 + P2G1 + P2P1G0

c4 = G3 + P3G2 + P3P2G1 + P3P2P1G0

Page 28: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

28Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Carry-Lookahead Addition

– Atraso máximo das portas para a geração do garry é de 3.

– O pior caso usando o controle para adição será 5.

Page 29: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

29Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Multiplicação de ponto flutuante– A multiplicação de ponto flutuante é feito de modo similar a subtração de adição,

exceto que o sinal, expoente e a fração do resultado são computados separadamente.

– Podem gerar resultados negativos ou positivos– Os expoentes são somados na operação de multiplicação de números– Os expoentes são subtraídos na operação de divisão– As frações são multiplicados ou divididos de acordo com a operação, e são

normalizados. Exemplo: (+.110 25) / (+.100 24)2

Passo 1: verificar o sinal: Positivo Passo 2: subtrair o expoente: 5-4 = 1 Passo 3: dividir a parte fracionária: 110/100 = 1.10 Passo 4: combinar os resultados: (+1.10 21) Passo 5: Normalizado: (+.110 22).

Page 30: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

30Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

The Booth Algorithm – A multiplicação por Booth reduz o numero de adição dos resultados

intermediários, mas pode algumas vezes piorar mais do que melhorar.

– Números positivos e negativos são tratados da mesma forma.

Page 31: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

31Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Pior caso para o Booth– O pior caso acontece quando o algoritmo de requere duas

vezes mais adição na multiplicação serial.

Page 32: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

32Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Bit-Pair Recoding (Modified Booth Algorithm)

Page 33: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

33Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Coding of Bit Pairs

Page 34: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

34Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Parallel Pipelined Array Multiplier

Page 35: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

35Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Divisão de alto desempenho– Técnica de divisão fracional no calculo de a/b– Fazer parecer que números são inteiros, efetuar

a divisão e escalar de modo que fique com um número real fracionário.

– Um método mais rápido é usar uma tabela intermediária e interação.

Page 36: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

36Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Newton’s Iteration for Zero Finding– O objetivo é achar onde a função f(x)

cruza o eixo x, através de uma estimativa inicial xi e calcular o erro entre f(xi) e Zero. Depois, um novo calculo é feito com novas estimativas de modo que o zero possa ser alcançado.

– Ex: a/b = a x (1/b)

– Tabela com estimativas iniciais para o x0

Page 37: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

37Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Aritmética Residual– Implementado sem uso de Carry (portanto rápido)– As comparações são mais difíceis de serem

implementados sem converter os números em formatos normalizados

– A representação dos primeiros 20 decimais inteiros em um sistema dado por modulos

Page 38: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

38Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Exemplo de cálculo usando aritmética residual

Page 39: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

39Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Adição usando BCD– A adição é realizada digito por dígito, não bit por bit.

– Exemplo (255 + 63 = 318)10:

Page 40: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

40Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Subtração usando BCD– Usa-se o complemento de 10 para efetuar a subtração– Exemplo: (255 - 63 = 192)10:

Page 41: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

41Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Sinal do numero em BCD– Um número é considerado

negativo em BCD complemento de 10, quando o número mais a esquerda estiver entre 0 e 4 inclusive.

Page 42: 1 Arquitetura de Computadores Aritmética. Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF 2 Arquitetura de Computadores Aritmética

42Professor: Arlindo Tadayuki Noji Instituto de Ensino Superior Fucapi - CESF

Arquitetura de Computadores

Subtração em complemento de 10– Exemplo: (21 - 34 = -13)10: