Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Documentos relacionados
Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Aritmética de Inteiros

Guilherme Martini Gustavo Schmid de Jesus Luís Armando Bianchin Márcio José Mello da Silva

Arquitetura e Organização de Computadores

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

Universidade Federal de Uberlândia Faculdade de Computação. Representação e aritmética binária

Arquitetura e Organização de Computadores

Sistemas Digitais INE 5406

ARQUITECTURA DE COMPUTADORES

TP062-Métodos Numéricos para Engenharia de Produção Erros-Ponto Flutuante

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

Cálculo Numérico Noções básicas sobre erros

étodos uméricos Erros Visão Geral Prof. Erivelton Geraldo Nepomuceno PROGRAMA DE PÓS-GRADUAÇÃO EM ENGENHARIA ELÉTRICA

Representação de números - Conversão de base b para base 10

Organização e Arquitetura de Computadores I

Home Programa Exercícios Provas Professor Links. 2.1 Representação de um número na base dois. O número binário 101,101 significa, na base dois:

Organização e Arquitetura de Computadores I

Sistemas de Computação. Seção Notas. Valores Interessantes. Notas. Ponto Flutuante. Haroldo Gambini Santos. 26 de abril de 2010.

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

Unidade III. Sistemas Numéricos e o Computador

Introdução à Computação

Projeto de Operações Aritméticas de Ponto Flutuante no padrão IEEE 754 em VHDL e FPGAs

Organização e Arquitetura de computadores

Folha Prática - Representação de Números e Erros. 1. Representar os seguintes números decimais em binário com ponto fixo:

1. Converta para a base binária, usando o método das divisões sucessivas, os seguintes números inteiros: a) 13 b) 35.

Arquitetura e Organização de Computadores. Sistemas Numéricos

1.1 Etapas na solução de um problema. 1.3 Tipos de erros. 1.4 Aritmética de ponto flutuante.

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

Cálculo Numérico Conceitos Básicos

Aritmética de Ponto Fixo

Representação e erros numéricos

Aula 9. Introdução à Computação. ADS IFBA

CCI-22. Matemática Computacional. Carlos Alberto Alonso Sanches Juliana de Melo Bezerra

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

Aritmética Computacional. Prof. Leonardo Barreto Campos 1

Aritmética Binária e Caminho de Dados. Aritmética Binária Caminho de Dados

Números Binários. Apêndice A V1.0

Introdução à Informática

Operações com números binários

Circuitos Lógicos Aula 22

Linguagem de Maquina II. Visão Geral

Números Binários Operações Aritméticas. Prof. Patrícia G. P. Magalhães

CÁLCULO NUMÉRICO (CN)

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Sistemas Numéricos e o Computador

MANUTENÇÃO DE COMPUTADORES SISTEMAS NUMÉRICOS

Introdução à Computação

CÁLCULO NUMÉRICO. Profa. Dra. Yara de Souza Tadano

Aula 9. Aritmética Binária. SEL Sistemas Digitais. Prof. Dr. Marcelo Andrade da Costa Vieira

Modelagem e Implementação em VHDL de Soma e Multiplicação em Ponto Flutuante de 32 Bits Segundo o Padrão IEEE-754

Projeto de Somador com e sem Sinal. Qualificadores

Noções sobre Erros em Matemática Computacional

Estudo de erros Erros na fase de modelagem: 1.2. Erros na fase de resolução:

Capítulo 1 - Erros e Aritmética Computacional

Prof. Leonardo Augusto Casillo

3/14/2012. Programação de Computadores O Computador. Memória Principal representação binária

Projecto de Sistemas Digitais

a) Calcule o valor médio de CPI apresentado na execução deste programa P, utilizando-se C1 sem e com otimização.

Algoritmos e Estruturas de Dados I (DCC/003) 2013/1. Estruturas Básicas. Aula Tópico 4

Representações de Números Inteiros: Sinal e Magnitude e Representação em Excesso de k

Arquitetura e Organização de computadores

Erros numéricos por Mílton Procópio de Borba

ERRO DE ARREDONDAMENTO E TRUNCAMENTO

Aula 2 - Sistemas de Numeração

Sistemas de Numeração

5. Expressões aritméticas

Aula 2 - Sistemas de Numeração

Microprocessadores. Arquitecturas Aritméticas Controladores

Organização de Computadores

Aula de hoje. Códigos numéricos. Códigos binários. Armazenamento de dados. Armazenamento de dados. Armazenamento de dados

Processador. Processador

SSC510 Arquitetura de Computadores 1ª AULA

Métodos Computacionais. Operadores, Expressões Aritméticas e Entrada/Saída de Dados

Linguagem C: Introdução

CCI-22 CCI-22. Introdução e Motivação. Matemática Computacional. Conteúdo. Finalidade. Carlos Henrique Q. Forster Conteúdo, Avaliação, Bibliografia

William Stallings Arquitetura e Organização de Computadores 8 a Edição

SISTEMAS DE NUMERAÇÃO CONVERSÕES ENTRE BASES. Prof. André Rabelo

Notas de Aula Guilherme Sipahi Arquitetura de Computadores. Arquitetura de von Neumann

Teoria de erros. Computação Teoria de erros Porquê?

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

INTRODUÇÃO. O processo de modelagem matemática para resolver problemas reais pode ser visto pelas seguintes etapas: Escolha de um Método Adequado

Sistemas de Computação. Sistemas de numeração

Algoritmos Numéricos 2 a edição

Arquitetura e organização de computadores Uma visão geral

Erros Experimentais. Algarismos Significativos

Capítulo SETE Números em Ponto Fixo e Ponto Flutuante

Aula 7: Portas Lógicas: AND, OR, NOT, XOR, NAND e NOR

Capítulo 2. Computação Numérica

CCI-22 CCI-22. Introdução e Motivação. Matemática Computacional. Conteúdo. Finalidade

Aula 4: Bases Numéricas

a base da potência usada coincide com a base do sistema de numeração.

Lista de Exercícios 110 Bases numéricas (lista adaptada das listas do prof. Tiago Dezuo)

Prof. a : Patrícia Caldana

Sistemas Numéricos e Representação de Dados. Heitor S. Ramos

Operações Fundamentais com Números

Revisão C++ - Parte 1

Cálculo Numérico Faculdade de Ciências Sociais Aplicadas e Comunicação FCSAC Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

Capítulo 2 Operadores. A função scanf()

Sistemas Digitais / Sistemas Digitais I 6 Representação de números com sinal

Introdução à Linguagem C Variáveis e Expressões

Sistemas de Numeração

Transcrição:

Notas de Aula Guilherme Sipahi Arquitetura de Computadores Aritmética de Ponto Flutuante. 1. Da aritmética de Inteiros a aritmética de Pontos Flutuantes : Números inteiros deixam de representar uma parte importante dos números reais: números fracionários, números irracionais, etc... -2 31 2 31-1 -(1-2 -24 )x2 128-0.5x2-127 0.5x2-127 (1-2 -24 )x2 128 overflow overflow Ao observar a notação científica, 0.00000000000456 = 4,56 x 10-13 4560000000000 = 4,56 x 10 13 se escrevermos na forma: ± S x B ±E podemos notar que a base (B) não precisa ser guardada. sinal 8 bits 23 bits Exemplos: 0.11010001 x 2 10100 = 0 10010011 1010 0010 0000 0000 0000 000-0.11010001 x 2 10100 = 1 10010011 1010 0010 0000 0000 0000 000 0.11010001 x 2-10100 = 0 01101011 1010 0010 0000 0000 0000 000-0.11010001 x 2-10100 = 0 01101011 1010 0010 0000 0000 0000 000 Voltando à notação científica: 0.11010001 x 2 19 = 1.101001 x 2 18 = 0.011010001 x 2 20 (número normalizado) ± 0.1bbb x 2 ±E b = 0 ou 1. Como o primeiro bit é sempre 1, pode-se excluí-lo da representação e utilizar 1 bit a mais, ficando com uma mantissa de 24 bits, dos quais 23 bits armazenados. Porém os números armazenados na mantissa encontram-se na faixa de 0.5<x<1.0 O sinal é armazenado no primeiro bit; O primeiro bit da mantissa é sempre 1 e não precisa ser armazenado; A base do expoente é 2; Ao expoente armazenado é adicionado o valor 127. 0.5 x 2-127 < 1*K (1-2 -24 ) x 2 128

Problema: Não há a representação de zero! 2. Comparação das representações de inteiros e reais com 32 bits 32 bits 2 32 números para representar. Inteiros 2 32 números igualmente espaçados; ponto flutuante 2 32 espaçados irregularmente o espaçamento dobra a cada vez que é incrementado o expoente. 3. Detalhes da representação de ponto flutuante Para aumentar a precisão é necessário aumentar o número de bits usados para descrever o número. Caso você mude a base, pode representar uma faixa maior de números, mas o espaçamento entre os números aumenta. Portanto, têm-se uma faixa maior de números representada com menor precisão. 4. Padrão IEEE 754 para a representação binária de ponto flutuante Facilita a portabilidade de programas de um computador para outro. 3 formatos: single precision (32 bits, 8 bit expoente) - Base 2; double precision (64 bits, 11 bit de expoente) - Base 2. quadruple precision (128 bits, 15 bit de expoente) - Base 2. Classes de números representados: a) expoente: 00000001 11111110 : 1 254-126 => 127 00000000001 11111111110 : 1-2046 -1022 => 1023 000000000000001 111111111111110: 1-32768 -16382 => 16383 mantissa: 23 bits representados número de 24 bits. 52 bits representados número de 53 bits. 112 bits representados número de 113 bits. b) expoente: 00000000 mantissa: 23 0s => zero; depende do sinal: expoente: 00000000000 mantissa: 52 0s => positivo/negativo. expoente: 000000000000000 mantissa: 112 0s C) expoente: 11111111 mantissa: 23 0s => dependendo do sinal: expoente: 11111111111 mantissa 53 0s => - ou + expoente: 111111111111111 mantissa 113 0s O usuário pode escolher se trata o overflow como erro ou continua o programa. d) expoente: 00000000 mantissa: não-zero => bit à esquerda expoente: 00000000000 mantissa: não-zero => 24 o, 53 o ou 113 o bit =0 expoente: -126, -1022 ou -16382 e) expoente: 11111111 mantissa: não-zero => Not a Number(NaN) expoente: 11111111111 mantissa: não-zero => exceções expoente: 111111111111111 mantissa: não-zero Além dos formatos de simples e dupla precisão, o padrão define dois formatos estendidos, uma para precisão simples e outro para dupla.

São usados para cálculos intermediários. Tem um número maior de bits para a mantissa e também para o expoente. Para maior precisão, diminui a chance do resultado ter sido contaminado por esse erro excessivo na aproximação. Por sua maior faixa de valores, reduz a chance de um overflow intermediário abortar uma computação cujo resultado poderia ser representado no formato básico. 5. Aritmética de ponto flutuante Adição e subtração: é necessário que os dois operandos tenham o mesmo valor no expoente. Pose ser necessário mudar o ponto de um dos operandos para alinhar. Problemas que podem ocorrer com essas operações: Overflow do expoente: expoente excede o valor máximo do expoente. Em alguns sistemas pode ser designado - ou +. Underflow do expoente: expoente negativo é maior que o número possível. É muito pequeno para ser representado e pode ser referido como zero. Underflow da mantissa: no alinhamento dígitos podem ser movidos para além do bit direito. Arredondamentos podem ser necessários. Overflow da mantissa: a adição de suas mantissas de mesmo sinal pode fazer com que o bit mais significativo esteja à esquerda do bit mais a esquerda. Isso pode ser corrigido pelo realinhamento. a) 4 Passos para a adição e subtração: 1. Procurar por zeros; 2. Alinhar os operandos; 3. Somar ou subtrair os operandos; 4. Normalizar o resultado. b) Operações Aritméticas com Floating Point: X= X s x B Xe Y= Y s x B Ye X+Y= (X s x B (Xe-Ye) + Y s ) x B Ye X-Y = (X s x B (Xe-Ye) + Y s ) x B Ye X e Y e X x Y= (X s x Y s ) x B (Xe+Ye) X / Y = (X s / Y s ) x B (Xe-Ye) c) Precisão Problema: O alinhamento dos operadores causa perda de bits em um dos operandos.saída: ter registradores extra para armazenar estes bits e reduzir erro com posteriores normalizações. d) Arredondamento do Padrão do IEEE 754 (4 formas são permitidas): i) Arredondamento para o mais próximo: Caso o número esteja exatamente no meio, o arredondamento se fará para retornar o número par:

- se o último dígito for 1, arredonda para zero. - se o último dígito for 0, não arredonda. ii) Arredondamento para mais e menos infinito: - Usado para implementar aritmética de intervalos. iii) Truncagem. d) Infinito e NaN na aritmética de IEE 754 ) x + (+ ) = + x / (+ ) = 0 x - (+ ) = - (+ ) + (+ ) = + x + (- ) = - (- ) + (- ) = - x - (- ) = - (- ) + (+ ) = - x. (+ ) = + (+ ) + (- ) = + NaN) 2 tipos: sinalizada: indicado uma operação em que um dos operandos é NaN. Aparece para valores não inicializados e números ou "melhorias aritméticas não pertencentes ao padrão." não sinalizada: não indica exceção e é carregada até o fim da operação. Normas de definição para NaN: Somas: (+ ) + (+ ) ==> NaN (- ) + (+ ) ==> NaN (+ ) - (+ ) ==> NaN ( - ) - ( - ) ==> NaN Multiplicação: Divisão: 0 x ==> NaN 0/0 ==> NaN / ==> NaN Restos de Divisão: Raízes: x REM 0 ==> NaN REM 0 ==> NaN x; x < 0 ==> NaN

[1] William Stallings - Computer Architecture and Organization, Pearson, 5 th Edition