Carregar apresentação
A apresentação está carregando. Por favor, espere
1
Aritmética Computacional Operações Complexas
Professor: André Luis Meneses Silva /msn: Página:
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çã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.
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
21
Divisão No início: Remainder = Dividendo.
Divisor = Divisor (até completar 64 bits). Quociente = 0
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?
23
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.
24
Ponto Flutuante Precisamos de uma maneira para representar:
Números com frações, por exemplo, 3,1416 Números muito pequenos, por exemplo, 0, Números muito grandes, por exemplo, 3,15576 x 109 Notação Científica (1,1 x 21)2
25
Ponto Flutuante Representação IEEE 754.
(-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.
26
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
27
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.
28
Ponto flutuante: Adição
29
Hw: Soma
30
Ponto Flutuante: Multiplicação
31
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.
32
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.
33
Bibliografia Organização e Arquitetura (Patterson e Henessy)
Capítulo 3 (Aritmética Computacional)
Apresentações semelhantes
© 2024 SlidePlayer.com.br Inc.
All rights reserved.