Aritmtica Computacional Operaes Complexas Professor Andr Luis Meneses

  • Slides: 33
Download presentation
Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andre. Luis. ms@gmail. com

Aritmética Computacional Operações Complexas Professor: André Luis Meneses Silva E-mail/msn: andre. Luis. ms@gmail. com Página: www. orgearq 20101. wordpress. com

Agenda Detectando Overflow Efeitos do Overflow Multiplicação

Agenda Detectando Overflow Efeitos do Overflow Multiplicação

Detectando Overflow Operações aritméticas estão sujeitas a overflow. Quando o overflow acontece? Ao somarmos

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.

Detectando Overflow O quadro a seguir ilustram estes casos: Pode ocorrer overflow se B

Detectando Overflow O quadro a seguir ilustram estes casos: Pode ocorrer overflow se B for 0? Pode ocorrer overflow se A for 0?

Efeitos do overflow Se o bit extra gerado, for necessário, pode acontecer uma interrupção

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

Efeitos do overflow Linguagem de programação ou finalidade da aplicação podem influir para este

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.

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

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.

Multiplicação

Multiplicação

Multiplicação Um dígito por vez

Multiplicação Um dígito por vez

Multiplicação Deslocamento para esquerda Deslocamento para direita É como se tívessemosincluído mais um 0

Multiplicação Deslocamento para esquerda Deslocamento para direita É como se tívessemosincluído mais um 0 no multiplicando

Controle

Controle

Caminho de Dados

Caminho de Dados

Multiplicação mais rápida Array de somadores Entrada de cada somador = (bit do multiplicador

Multiplicação mais 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.

Divisão Menos freqüente e mais peculiar que a multiplicação. Pode ser efetuada através de

Divisão Menos freqüente e mais peculiar que a multiplicação. Pode ser efetuada através de sucessivas subtrações e deslocamentos.

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão: Como o hardware trabalha

Divisão

Divisão

Divisão Hardware de multiplicação e divisão similares. No entanto, o hardware formado pelo conjunto

Divisão Hardware de multiplicação e divisão similares. No entanto, o hardware formado pelo conjunto de somadores não pode ser utilizado na divisão. Porque?

Divisão Hardware de multiplicação e divisão similares. No entanto, o hardware formado pelo conjunto

Divisão Hardware de multiplicação e divisã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.

Ponto Flutuante Precisamos de uma maneira para representar: Números com frações, por exemplo, 3,

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

Ponto Flutuante Representação (-1)sinal x fração x 2 expoente Mais bits para a fração

Ponto Flutuante Representação (-1)sinal x fração x 2 expoente 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.

Ponto Flutuante Representação de um número de ponto flutuante. Expoentes negativos não utilizam complemento

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

Ponto flutuante: Operações aritméticas Operações aritiméticas estão sujeitas a overflow e underflow. Underflow Resultado

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.

Ponto flutuante: Adição

Ponto flutuante: Adição

Hw: Soma

Hw: Soma

Ponto Flutuante: Multiplicação

Ponto Flutuante: Multiplicação

Ponto Flutuante: Arredondamento Além do underflow, podemos ter problemas relativo a forma de arredondamento.

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.

Ponto Flutuante: Arredondamento Como lidar: Uso de 3 bits adicionais Bit guarda Bit arredondamento

Ponto Flutuante: Arredondamento Como lidar: Uso de 3 bits adicionais Bit guarda Bit arredondamento Utilizado para melhorar a precisão do arredonamento. 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.

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

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