Arquitetura de Computadores I

Documentos relacionados
Aritmética Computacional. Prof. Leonardo Barreto Campos 1

Unidade 3 Aritmética Computacional Uma breve introdução

UNIMINAS Só é necessário o armazenamento de: Sinal da mantissa: - (menos). Valor da mantissa: Sinal do expoente: -(na realidade, háh

Representações de caracteres

Sistemas Numéricos. Tiago Alves de Oliveira

EA960 Aritmética e Representação Numérica

Circuitos Aritméticos

Vírgula flutuante Aula 6

Sistemas de Vírgula Flutuante

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

números decimais Inicialmente, as frações são apresentadas como partes de um todo. Por exemplo, teremos 2 de um bolo se dividirmos esse bolo

Prática. Exercícios didáticos ( I)

Capítulo 6. Aritmética Computacional. 6.1 Números com Sinal e Números sem Sinal

FUNÇÕES MATEMÁTICAS NÚMERO : PI() SENO E COSSENO: SEN() E COS()

Capítulo VI Circuitos Aritméticos

=...= 1,0 = 1,00 = 1,000...

Experiência 1 Medidas: Leitura de instrumentos:

Ponto Fixo e Ponto Flutuante

BC-0504 Natureza da Informação

FRAÇÃO. Número de partes pintadas 3 e números de partes em foi dividida a figura 5

Matrizes e Sistemas Lineares. Professor: Juliano de Bem Francisco. Departamento de Matemática Universidade Federal de Santa Catarina.

Módulos Combinatórios

Introdução a Tecnologia da Informação

Equipe de Matemática MATEMÁTICA

POTENCIAÇÂO. A potenciação é uma forma de representar uma multiplicação de fatores iguais.

a) 2 b) 3 c) 4 d) 5 e) 6

4. Álgebra Booleana e Simplificação Lógica. 4. Álgebra Booleana e Simplificação Lógica 1. Operações e Expressões Booleanas. Objetivos.

12 de Março de Aula 5

Erros e Incertezas. Rafael Alves Batista Instituto de Física Gleb Wataghin Universidade Estadual de Campinas (Dated: 10 de Julho de 2011.

Engenharia Econômica

Sistemas de Computação. Representação em Ponto Flutuante

Arquitetura FPU: Implementação MIPS32. Guilherme Fernandes Raphanelli Diogo D. Fonseca dos Santos

FRAÇÃO Definição e Operações

Usando potências de 10

Tipos de problemas de programação inteira (PI) Programação Inteira. Abordagem para solução de problemas de PI. Programação inteira

Representação de Números em Ponto Flutuante

Roteiro da aula. MA091 Matemática básica. Quadrados perfeitos. Raiz quadrada. Aula 8 Raízes. Francisco A. M. Gomes. Março de 2016

1. Números. MatemáticaI Gestão ESTG/IPB Departamento de Matemática. Números inteiros. Nota: No Brasil costuma usar-se: bilhão para o número

Semana 7 Resolução de Sistemas Lineares

Estruturas de Repetição

Caminho de Dados e Controle. Prof. Leonardo Barreto Campos 1

Aula 3 - Representação de Dados

Álgebra Linear Computacional

3º Ano do Ensino Médio. Aula nº09 Prof. Paulo Henrique

PLANO DE ENSINO DE MATEMÁTICA 1ª SÉRIE DO ENSINO MÉDIO 1º BIMESTRE DIRETORIA DE ENSINO REGIÃO CAIEIRAS

Arquitetura de Computadores

Matrizes. matriz de 2 linhas e 2 colunas. matriz de 3 linhas e 3 colunas. matriz de 3 linhas e 1 coluna. matriz de 1 linha e 4 colunas.

Somando os termos de uma progressão aritmética

Nesta aula vamos rever operações com frações,

CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE

Disciplina de Laboratório de Elementos de Lógica Digital I SSC-0111

Planejamento Anual OBJETIVO GERAL

UNIVERSIDADE TECNOLÓGICA FEDERAL DO PARANÁ. Câmpus Ponta Grossa. Coordenação do Curso Superior de Tecnologia em. Automação Industrial

Sistemas de Numeração. Exemplos de Sistemas de Numeração (1) Exemplos de Sistemas de Numeração (2) Sistemas de Numeração

Exercícios: comandos de repetição

Índice de conteúdos. Índice de conteúdos. Capítulo 1. Implementação de Algoritmos...1

SUMÁRIO. 1. REVISÃO DE GINÁSIO Critérios de divisibilidade. 2. CONJUNTOS Introdução. Operações de conjuntos. Conjuntos numéricos

Sinais e Sistemas Unidade 2 Conceitos de Matemática de Variável Complexa

Sistemas numéricos e a Representação Interna dos Dado no Computador

Planilha Eletrônica - Microsoft Excel -

flutuante 11. Aritmética de vírgula Operações em números fraccionários

PARTE I I: ARITMÉTICA COMPUTACIONAL ARQUITETURA DE COMPUTADORES ANTONIO RAMOS DE CARVALHO JÚNIOR

O PENSAMENTO ALGÉBRICO

= 0, 4343 = 0, 43 = 1, 0222 = 1, 02

Organização e Arquitetura de computadores

Fração é uma forma de representar uma divisão, onde o numerador é o dividendo e o denominador é o divisor. Exemplo:

CONTEÚDOS PARA A PROVA DE RECUPERAÇÃO SEMESTRAL AGOSTO / 2016 MATEMÁTICA

Matemática Básica Intervalos

7. Funções de Lógica Combinacional. 7. Funções de Lógica Combinacional 1. Somadores Básicos. Objetivos. Objetivos. Circuitos Digitais 03/11/2014

ARQUITETURA DE COMPUTADORES

Árvores de Decisão Matemática Discreta

Lição 5 Medidas Descritivas Medidas de Dispersão

Apostila de Matemática 16 Polinômios

Seqüências. George Darmiton da Cunha Cavalcanti CIn - UFPE

Organização e Arquitetura de Computadores I

Escola Secundária c/3º CEB José Macedo Fragateiro. Curso Profissional de Nível Secundário. Componente Técnica. Disciplina de

Introdução à Computação

Planificação Anual de Matemática 5º Ano

REPRESENTAÇÃO DE NÚMEROS EM BINÁRIO E HEXADECIMAL

Representação de Circuitos Lógicos

Detecção de erros de comunicação de dados CRC

Microcontroladores e Microprocessadores. Conversão de Bases Prof. Samuel Cavalcante

I COLIFORMES E ph MÉDIAS ARITMÉTICAS, MÉDIAS GEOMÉTRICAS E MEDIANAS

Representando Instruções no Computador

Universidade Federal do ABC Disciplina: Natureza da Informação Lista de Exercícios 02 Códigos e conversão A/D Prof. João Henrique Kleinschmidt

Números inteiros Z ± 7º Ano / 2013

CURSO DE MATEMÁTICA BÁSICA PROGRAMA DE EDUCAÇÃO TUTORIAL CENTRO DE ENGENHARIA DA MOBILIDADE

Considere as situações:

Construção de uma via de dados, abordagem monociclo, multiciclo e pipeline

Medidas de Tendência Central. Introdução Média Aritmética Moda Mediana

Capítulo 2. Representação de números em vírgula flutuante

Equipe de Matemática MATEMÁTICA

Seleção de módulos do Sistema de Ensino Ser 2014

CAPÍTULO O Método Simplex Pesquisa Operacional

Transcrição:

Arquitetura de Computadores I Aritmética Computacional - Ponto Flutuante - Edson Moreno edson.moreno@pucrs.br http://www.inf.pucrs.br/~emoreno Slides baseados nas lâminas dos profs Ney Calazans e Fernando Moraes

Sumário Introdução Representação de números não inteiros Aritmética de números não inteiros

Introdução Muitas aplicações requerem números não inteiros Matemática computacional, Engenharia Computação gráfica Racionais (Q): Representados como fração a/b, a e b inteiros; Irracionais (I): Tem mantissa infinita sem repetição (e=2.7218 e = 3.14, por exemplo) Mas com representar um número fracionário computacionalmente?

Sumário Introdução Representação de números não inteiros Aritmética de números não inteiros

Representação Primeiros computadores Ponto fixo Hoje, apenas ponto flutuante; representações possuem uma mantissas, um expoente e e uma base b, sendo o valor N dado por N ( s) e b Antigamente haviam muitos formatos, hoje há um padrão (IEEE 754)

Padrão IEEE 754 Idem ao padrão internacional IEC-559 Quatro formatos Dois fixos (precisão simples, SP e precisão dupla, DP) Dois variáveis (precisão simples, SE, e dupla, DE, estendidas) Diferenças para formatos anteriores à padronização: Resultado no meio da faixa, é aproximado; Inclui valores especiais: NaN - Not a number (ex: raiz de negativo); - e + - Mais ou menos infinito (ex: -1/0 e +1/0);

Padrão IEEE 754 Parâmetros e outros formatos Os diferentes formatos e valores para os parâmetros que os definem: formato parâmetros bits de precisão (p) precisão simples (SP) precisão simples estendida (SE) precisão dupla (DP) precisão dupla estendida (DE) 24 32 53 64 Emax 127 1023 1023 16383 Emín -126-1022 -1022-16382 Polarização (bias) Total de bits 32 exatamente 127 depende 1023 depende variável, 43, <64 64 exatamente variável, 79

Padrão IEEE 754 Uma representação de racionais 30 Formato SP ocupa exatamente 32 bits: 1 bit para sinal da mantissa- s; Mantissa com 24 bits de precisão, primeiro sempre 1, exceto quando desnormalizado, onde é 0 (1 bit implícito); Expoente e de 8 bits, com desvio = 127; 23 22 0 Forma Geral: (-1) s x 1.f x 2 e-127 Expoente Sinal da mantissa - s Fração (binário puro) - f

Exemplos Padrão IEEE 754 1) Número positivo, maior que zero 31 30 23 22 0 10000001 01000000000000000000000 0 Forma Geral: (-1) s x 1.f x 2 EO Expoente Original EO = ER - Desvio Desvio do expoente: 2 (#bitsexprepr - 1) -1 ((-1) 0 x 1.01 x 2 129-127 ) 2 = (+1.01 x 2 2 ) 2 = (+5 ) 10 2) Número negativo, menor que zero 31 30 23 22 1 01111110 01110000000000000000000 0 ((-1) 1 x 1.0111 x 2 126-127 ) 2 = (- 0.10111) 2 = (-0.71875) 10

Padrão IEEE 754 Valores especiais e desnormalização Há 5 casos que definem o valor de número em algum formato do padrão IEEE-754 (exemplo para SP): 1) e=255, f 0 v=nan (not a number) 2) e=255, f=0 v=(-1) s = 3) 0<e<255 v=(-1) s x (1.f) x 2 e-127 4) e=0, f 0 v=(-1) s x (0.f) 2-126 5) e=0, f=0 v=(-1) s x (0) = (zero)

Padrão IEEE 754 Valores especiais e desnormalização O padrão permite a representação de valores especiais visando tratar exceções: Valores infinitos (+, - ); Divisão por zero (NaN); Operações para os quais os reais não são fechados, como raiz quadrada; Denormalização permite situações de underflow

Exercícios Converter a representação que segue para o valor decimal 0x3FA00000 0xC1980000 Converter para representação em ponto flutuante (Single Precision) 5,5-2, 625 9,375 x 10-2 Usando um padrão de precisão mínima de 8 bits onde (sinal = 1bit, expoente=2bits, fração=5bits) defina o valor de: Qual o valor decimal de 0x4D Como representar -6,625 neste formato?

Sumário Introdução Representação de números não inteiros Aritmética de números não inteiros

Operações no padrão IEEE 754 Operação de soma Requer mantissa de mesmo expoente Talvez necessite de desnormalização, alcançada com o ajuste do expoeten Soma da mantissas Normalização Operação de multiplicação Mais simples que a adição Deve-se multiplicar as mantissas Soma-se os expoentes (ER) Adequação com a eliminação de pelo menos um desvio

Multiplicação no padrão IEEE 754 Multiplicação realizada em três Passos: Multiplicar mantissas Desempacotar o número da representação de ponto flutuante Usar multiplicação inteira, sem sinal Calcular expoente Lembrar da desvio. Arredondamento Para números grandes pode ser necessário Multiplicação pode resultar em aumento de precisão

Multiplicação, 0 e precisão Se um dos operandos é 0, acelera-se multiplicação testando: Antes Teste de ambos operandos; Depois Neste caso, cuidado com 0 x, resultado deve ser NaN; Ao multiplicar inteiros o resultado terá o dobro de bits Aplicação define o que deve ser aceito Metade inferior do resultado (Solução comum) Todo o resultado E com ponto flutuante? Pode ser preciso aplicar arredondamento

Multiplicação no padrão IEEE 754 Exemplo de multiplicação: Operando 1: 1 10000010 00000000000000000000000 = -1 x 1.0 x 2 130 Operando 2: 0 10000011 00000000000000000000000 = 1.0 x 2 131 1) Desempacotando -> 1.0 x 1.0 = 1.0 Logo, o resultado tem a forma: (bs 1 xor bs 2 )???????? 00000000000000000000000 2) Expoente - fórmula para cálculo do expoente: (exp de representação(e 1 +e 2 )) 2 s = (exp de representação(e 1 ) + (exp de representação(e 2 ) + (-desvio) 2 s, ou seja, 10000010 = 130 10000011 = 131 +10000001 =-127 10000110 = 134=ER -> EO=ER-DESVIO = 7

Multiplicação no padrão IEEE 754 3) arredondamento - precisão é importante: Casos de arredondamento (em decimal, análogo a binário) Supondo que a representação pode ser feita com apenas 3 dígitos tem-se a) 1.23 x 6.78 8.3394 r=9, 9>5, então arredonda p/8.34 b) 2.83 x 4.47 12.6501 r=5, e pelo menos um dígito após diferente de 0, arredonda p/ 1.27x10 1 c) 1.28 x 7.81 09.9968 r=6, 6>5, então arredonda p/ 1.00x10 1 em binário, meio da faixa (5 em decimal) é dígito 1! negrito - dígitos significativos; após, dígito arredondador, r.

Multiplicação no padrão IEEE 754 3) arredondamento (continuação) se r é menor que 5 - resultado pronto; se r é maior que 5 - soma-se 1 ao número em negrito; se arredondador exatamente 5 (em binário, 1) - examinar bits seguintes, até achar um diferente de 0 ou chegar ao fim: técnica - usa o bit grudento (sticky bit), durante a multiplicação, o OU lógico de todos os bits a partir do bit r; Caso 1 - desloca um bit p/ esq; Caso 2 - incrementa expoente Produto (p=6) Caso 1: x0=0 Caso 2: x0=1 x0 x1. x2 x3 x4 x5 g r s s s s x1. x2 x3 x4 x5 g r sticky x0. x1 x2 x3 x4 x5 r sticky

Multiplicação no padrão IEEE 754 3) arredondamento (continuação) Após acertar expoente e resultado, pode-se finalmente arredondar: se r=0, resultado correto; se r=1 e s=1, soma P+1 para arredondamento do produto; se r=1 e s=0, exatamente no meio da faixa o IEEE-754 possui quatro modos de tratamento (trunc, +, -, nearest). Em resumo G = bit de guarda (melhora a precisão) R = bit de arredondamento (ajuda a encontrar valor mais próximo) S = bit grudento (bits a direita de R)

Adição no padrão IEEE 754 Operação de adição Operação em ponto flutuante requer dois números de mesma precisão Retorna resultado com mesma precisão (p); Algoritmo ideal Calcula resultado exato e arredonda; Multiplicação funciona assim; Para soma, existem procedimentos mais efetivos; Exemplo com números de 6 bits: 1.10011 2 x 2 0 e 1.10001 2 x 2-5 ; Usando um somador de 6 bits, tem-se: 1.1 0 0 1 1 + 0.0 0 0 0 1 1.1 0 1 0 1

Precisão Adição no padrão IEEE 754 Usa-se o bit de arredondamento e sticky bit, como na multiplicação; Para somar números de p bits Um somador de p bits chega 1.1 0 0 1 1 + 0.0 0 0 0 1 1 0 0 0 1 1.1 0 1 0 0 1 0 0 0 1 1.1 0 1 0 1 Deve-se guardar o primeiro bit de arredondamento e o sticky bit correspondente; No exemplo, o sticky bit é 1, e o resultado final fica 1.10101 2 ; Subtração é similar, se trabalha em complemento de dois;

Adição no padrão IEEE 754 Passos para a operação de adição Sejam dois números (a 1 e a 2 ) a serem somados Os expoentes e mantissas são denotados por e i e s i, respectivamente. 1) Se e 1 <e 2, troque operandos Diferença d dado por (e 1 -e 2 ) >=0 O expoente do resultado será temporariamente igual a e 1 Pode requerer ajuste ao final da operação para normalização do resultado 2) Se sinais de a1 e a2 diferem Substitua s2 por seu complemento de 2;

Adição no padrão IEEE 754 3) Prepare S2 para a operação Coloque s2 em um registrador de p bits Desloque o registrador p para a direita d vezes Sendo d = e1-e2 Dos bits deslocados para fora do registrador, guarde: o o o O último em um flip-flop g (bit de guarda) O penúltimo em um flip-flop r (bit de arredondamento) O resultado da operação OU de todos os restantes (stick bit)

Adição no padrão IEEE 754 4) Compute a mantissa preliminar de S dado por (s 1 + s 2 ) Soma deve ocorrer entre s 1 e o registrador de p Se (i) Os sinais de a 1 e a 2 são diferentes E (ii) Os expoentes de a1 e a2 são iguais E (iii) O bit mais significativo de S é 1 E (iv) O vai-um é 0, ENTÃO S é negativo, logo o Substitua S pelo seu complemento de 2 5) Normalizando S caso necessário Se os sinais de a1 e a2 são iguais e houve vai-um no passo 4 Desloque S para a direita 1 bit o Preenchendo a posição de mais alta ordem com o vai-um ( 1 ). Senão, desloque S à esquerda até normalizá-lo (encontre o bit fantasma) o o No primeiro deslocamento, preencha o bit inferior com o bit g, a seguir com 0s A cada deslocamento, ajuste o expoente do resultado.

Adição no padrão IEEE 754 6) Ajuste o bit de arredondamento e o sticky bit Se S foi deslocado à direita no passo 5, então antes de deslocar faça Sticky bit bit de guarda OR bit de arredondamento OR sticky bit Bit de arredondamento bit de mais baixa ordem de S (bit de guarda) Se não houve deslocamento, então faça sticky bit bit de arredondamento OR sticky bit Bit de arredondamento bit de guarda Se houve um único deslocamento à esquerda, então Não mude o bit de arredondamento nem o sticky bit Se houve dois ou mais deslocamentos, então Faça bit de arredondamento 0 e sticky bit 0

Adição no padrão IEEE 754 7) Arredonde S usando as regras de arredondamento. Se o arredondamento causar vai-um, desloque S à direita e ajuste o expoente. 8) Compute o sinal do resultado. Se a 1 e a 2 têm o mesmo sinal, então sinal do resultado é o mesmo a1 Se a 1 e a 2 possuem sinais diferentes, então O sinal depende de qual dos valores dentre a 1 e a 2 é negativo A tabela abaixo resume os casos Troca (p1) Complemento (P4) Sinal(a1) Sinal(a2) Sinal(resultado) Sim - + - - Sim - - + + Não Não + - + Não Não - + - Não Sim + - - Não Sim - + +

Exemplo Adição no padrão IEEE 754 Cenário Dado a1 = (+1.001 * 2-2 ) Dado a2 = (+1.111 * 2 0 ) Fazer (a1 + a2) Passo 1: e 1 < e 2, logo troca a1 com a2 Calcula a diferença absoluta entre os expoentes: (d=2) Expoente inicial igual ao expoente com maior valor (exp=0) Passo 2: Sinais iguais, logo não faz o complemento de 2 de s 2. Passo 3: Desloca s 2 (1.001 após a troca) à direita dois bits gerando s 2 =0.010, g=0, r=1, s=0

Adição no padrão IEEE 754 Exemplo (Continuação) Passo 4: 1.111 + 0.010 = (1)0.001 S=0.001 com vai-um=1 Passo 5: Como houve vai-um desloca S à direita, S=1.000, e ajusta-se o expoente exp=exp+1, exp=1 Passo 6: atualiza g,r,s r(bit de mais baixa ordem da soma)=1, s=g OR r OR, ou seja s =0 OR 1 OR 0 =1 Passo 7: arredonda r=1e s=1, então arredonda para cima S=S+1, S=1.001 Passo 8: calcula o sinal Ambos sinais positivos, então resultado é positivo.

Exercício Realize as somas que seguem Considere valores representados em 5 bits (+1.0010* 2 129 ) + (+1.1000*2 126 ) (+1.1010* 2 124 ) + (+1.1010*2 125 ) (+1.1000* 2 129 ) + (-1.0100*2 129 ) (-1.1000* 2 129 ) + (+1.0100*2 129 ) (-1.0010* 2 129 ) + (-1.1000*2 126 )