aritmética computacional operações complexas professor: andré luis meneses silva e-mail/msn:...

33
Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: www.orgearq20101.wordpress.com

Upload: internet

Post on 21-Apr-2015

111 views

Category:

Documents


0 download

TRANSCRIPT

Page 1: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Aritmética Computacional Operações Complexas

Professor: André Luis Meneses SilvaE-mail/msn: [email protected]

Página: www.orgearq20101.wordpress.com

Page 2: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Agenda

Detectando Overflow Efeitos do Overflow Multiplicação

Page 3: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Detectando Overflow

Operações aritméticas estão sujeitas a overflow.

Quando o overflow acontece?

Ao somarmos dois positivos, obtemos um negativo. Ao somarmos dois negativos, obtemos um positivo. Ao subtrairmos um negativo de um positivo e

obtemos um negativo. Ao subtrairmos um positivo de um negativo e

obtemos um positivo.

Page 4: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Detectando Overflow

O quadro a seguir ilustram estes casos:

Pode ocorrer overflow se B for 0? Pode ocorrer overflow se A for 0?

Page 5: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Efeitos do overflow

Se o bit extra gerado, for necessário, pode acontecer uma interrupção (exceção):

Ao detectar a interrupção, o controle saltará para um endereço predefinido para tratamento da interrupção.

O endereço interrompido é salvo para uma possível retomada. No caso do MIPS, o endereço de retorno é salvo no

registrador EPC (Exception program counter).

Page 6: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Efeitos do overflow

Linguagem de programação ou finalidade da aplicação podem influir para este comportamento.

No MIPS, instruções unsigned não “detectam” overflow. addu, addiu, subu.

Page 7: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Multiplicação

Operação mais complexa do que adição Na verdade ela representa um conjunto de adições.

Necessita de mais tempo e mais área de silício para ser implementada.

Page 8: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Multiplicação

Page 9: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Multiplicação

Um dígito por vez

Page 10: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Multiplicação

Deslocamento para direita

Deslocamento para esquerda

É como se tívessemos incluído mais um 0 no multiplicando

Page 11: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Controle

Page 12: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Caminho de Dados

Page 13: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Multiplicaçãomais rápida

Array de somadores Entrada de cada somador = (bit

do multiplicador && resultado do somador anterior)

Proporciona: Entrega os resultados de

cada parcial quase que simultaneamente.

Proporciona paralelização.

Page 14: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão

Menos freqüente e mais peculiar que a multiplicação.

Pode ser efetuada através de sucessivas subtrações e deslocamentos.

Page 15: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão: Como o hardware trabalha

Page 16: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão: Como o hardware trabalha

Page 17: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão: Como o hardware trabalha

Page 18: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão: Como o hardware trabalha

Page 19: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão: Como o hardware trabalha

Page 20: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:
Page 21: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão

Page 22: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão

Hardware de multiplicação e divisão são similares.

No entanto, o hardware formado pelo conjunto de somadores não pode ser utilizado na divisão. Porque?

Page 23: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Divisão

Hardware de multiplicação e divisão são similares.

No entanto, o hardware formado pelo conjunto de somadores não pode ser utilizado na divisão. Porque?

Na divisão, as sub-operações são dependentes. Não temos como realizar a próxima etapa até sabermos o

valor do resto.

Page 24: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante

Precisamos de uma maneira para representar:

Números com frações, por exemplo, 3,1416 Números muito pequenos, por exemplo,

0,00000001 Números muito grandes, por exemplo, 3,15576 x

109

Notação Científica (1,1 x 21)2

Page 25: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante

Representação

(-1)sinal x fração x 2expoente

Mais bits para a fração fornece mais precisão Mais bits para o expoente, aumenta o range de

valores.

IEEE 754.

Precisão única : expoente 8 bits, fração 23 bits.

Precisão dupla: expoente 11 bits, fração 52 bits.

Page 26: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante

Representação de um número de ponto flutuante.

Expoentes negativos não utilizam complemento de 2.

Logo, o número em ponto flutuante é calculado desta forma:

(-1)sinal x fração x 2(expoente – 127) precisão simples

(-1)sinal x fração x 2(expoente – 1023) precisão dupla

Page 27: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto flutuante: Operações aritméticas

Operações aritiméticas estão sujeitas a overflow e underflow.

Underflow Resultado obtido é pequeno demais para ser

representado em um número de ponto flutuante.

Page 28: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto flutuante: Adição

Page 29: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Hw: Soma

Page 30: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante: Multiplicação

Page 31: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante: Arredondamento

Além do underflow, podemos ter problemas relativo a forma de arredondamento.

Formas de arredondamento:

Sempre arredondar para cima. Sempre arredondar para baixo. Truncamento. Arredondar para o próximo par.

Page 32: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Ponto Flutuante: Arredondamento

Como lidar: Uso de 3 bits adicionais

Bit guarda Utilizado para melhorar a precisão do arredonamento.

Bit arredondamento Utilizado para encontrar o número mais próximo que

possa ser representado no formato.

Stick bit Utilizado para verificar se existe algum bit diferente de 0

após o bit de arredondamento.

Page 33: Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página:

Bibliografia

Organização e Arquitetura (Patterson e Henessy) Capítulo 3 (Aritmética Computacional)