aritmética computacional operações complexas

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

Upload: susan-rivera

Post on 02-Jan-2016

45 views

Category:

Documents


8 download

DESCRIPTION

Professor: André Luis Meneses Silva E-mail/msn: [email protected] Página: www.orgearq20101.wordpress.com. Aritmética Computacional Operações Complexas. Agenda. Detectando Overflow Efeitos do Overflow Multiplicação. Detectando Overflow. - PowerPoint PPT Presentation

TRANSCRIPT

Aritmética Computacional Operações Complexas

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

Página: www.orgearq20101.wordpress.com

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

Deslocamento para esquerda

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

Controle

Caminho de Dados

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.

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

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

Bibliografia

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