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

Post on 16-Apr-2015

114 Views

Category:

Documents

2 Downloads

Preview:

Click to see full reader

TRANSCRIPT

1

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.

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.

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)

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)

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.

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

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:

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”

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.

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:

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.

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.

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

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

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

Arquitetura de Computadores

Multiplicador em Série

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

Arquitetura de Computadores

Exemplo de um multiplicador usando a multiplicação serial

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

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

Arquitetura de Computadores

• Divisor Serial

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

Arquitetura de Computadores

Exemplo de divisão com sinal

– Divisor Serial

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.

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.

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.

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

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.

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.

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

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.

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).

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.

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.

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

Arquitetura de Computadores

Bit-Pair Recoding (Modified Booth Algorithm)

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

Arquitetura de Computadores

Coding of Bit Pairs

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

Arquitetura de Computadores

Parallel Pipelined Array Multiplier

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.

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

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

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

Arquitetura de Computadores

Exemplo de cálculo usando aritmética residual

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:

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:

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.

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

Arquitetura de Computadores

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

top related