26-04-2010 – Aritmética Computacional

Download Report

Transcript 26-04-2010 – Aritmética Computacional

Aritmética Computacional
Operações Complexas
Professor: André Luis Meneses Silva
E-mail/msn: [email protected]
Página: www.orgearq20101.wordpress.com
Agenda



Detectando Overflow
Efeitos do Overflow
Multiplicação
Detectando Overflow


Operações
overflow.
aritméticas
estão
sujeitas
a
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 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 (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
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 adições.
Necessita de mais tempo e mais área de silício
para ser implementada.
Multiplicação
Multiplicação
Um dígito por vez
Multiplicação
Deslocamento
para esquerda
Deslocamento
para direita
É
como
se
tívessemos incluído
mais um 0 no
multiplicando
Controle
Caminho de Dados
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 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
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?
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.
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 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.
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
overflow e underflow.
estão
sujeitas
a
Underflow

Resultado obtido é pequeno demais para ser
representado em um número de ponto flutuante.
Ponto flutuante:
Adição
Hw: Soma
Ponto Flutuante:
Multiplicação
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


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)