1 / 33

Aritmética Computacional Operações Complexas

Professor: André Luis Meneses Silva E-mail/msn: andreLuis.ms@gmail.com Página: www.orgearq20101.wordpress.com. Aritmética Computacional Operações Complexas. Agenda. Detectando Overflow Efeitos do Overflow Multiplicação. Detectando Overflow.

Télécharger la présentation

Aritmética Computacional Operações Complexas

An Image/Link below is provided (as is) to download presentation Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author. Content is provided to you AS IS for your information and personal use only. Download presentation by click this link. While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server. During download, if you can't get a presentation, the file might be deleted by the publisher.

E N D

Presentation Transcript


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

  2. Agenda • Detectando Overflow • Efeitos do Overflow • Multiplicação

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

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

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

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

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

  8. Multiplicação

  9. Multiplicação Um dígito por vez

  10. Multiplicação Deslocamento para esquerda Deslocamento para direita É como se tívessemos incluído mais um 0 no multiplicando

  11. Controle

  12. Caminho de Dados

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

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

  15. Divisão: Como o hardware trabalha

  16. Divisão: Como o hardware trabalha

  17. Divisão: Como o hardware trabalha

  18. Divisão: Como o hardware trabalha

  19. Divisão: Como o hardware trabalha

  20. Divisão

  21. 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?

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

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

  24. Ponto Flutuante • Representação • (-1)sinalx 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.

  25. 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)sinalx fração x 2(expoente – 127) precisão simples • (-1)sinalx fração x 2(expoente – 1023) precisão dupla

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

  27. Ponto flutuante: Adição

  28. Hw: Soma

  29. Ponto Flutuante: Multiplicação

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

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

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

More Related