Representando Instruções no Computador



Documentos relacionados
Introdução. A Informação e sua Representação (Parte II) Universidade Federal de Campina Grande. Unidade Acadêmica de Sistemas e Computação

Métodos Numéricos. Turma CI-202-X. Josiney de Souza.

CCI-22 CCI-22. 2) Erros de arredondamento. Matemática Computacional

Universidade Federal de São João Del Rei - UFSJ

Aritmética de Ponto Flutuante

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

Sistemas de Computação

A declaração de uma variável vel define o seu tipo. O tipo do dado define como ele será: Armazenado na memória. Manipulado pela ULA.

Cálculo Numérico / Métodos Numéricos. Representação de números em computadores Mudança de base 14:05

Aula 14: Instruções e Seus Tipos

Organização e Arquitetura de Computadores I

Sistema de ponto flutuante

ARQUITETURA E ORGANIZAÇÃO DE COMPUTADORES SISTEMAS DE NUMERAÇÃO: REPRESENTAÇÃO EM PONTO FLUTUANTE. Prof. Dr. Daniel Caetano

Unidade 5: Sistemas de Representação

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

Aula 2 - Cálculo Numérico

Sistemas de Numeração (Aula Extra)

Eduardo Camponogara. DAS-5103: Cálculo Numérico para Controle e Automação. Departamento de Automação e Sistemas Universidade Federal de Santa Catarina

Representação de números em máquinas

Introdução aos Sistemas Computacionais

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM. Conceitos Básicos ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Sistema de Numeração e Conversão entre Sistemas. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Arquitetura de Computadores

Aula 2 Sistemas de Numeração (Revisão)

Aritmética de Ponto Flutuante e Noções de Erro. Ana Paula

Organização e Arquitetura de Computadores. Aula 10 Ponto Flutuante Parte I Juliana F. Camapum Wanderley

Aula 6 Aritmética Computacional

Introdução. A Informação e sua Representação (Parte III) Universidade Federal de Campina Grande Departamento de Sistemas e Computação

Arquitetura e Organização de Computadores. Prof. Henrique

REPRESENTAÇÃO DE DADOS EM SISTEMAS DE COMPUTAÇÃO AULA 03 Arquitetura de Computadores Gil Eduardo de Andrade

Linguagem C: variáveis, operadores, entrada/saída. Prof. Críston Algoritmos e Programação

Variáveis e Comandos de Atribuição

Arquitetura de Computadores. Linguagem de Máquina

Cálculo Numérico Aula 1: Computação numérica. Tipos de Erros. Aritmética de ponto flutuante

Representação de Dados

o semestre

Arquitetura de Computadores Moderna

Organização e Arquitetura de Computadores I

Noções Básicas Sobre Erros

Principais códigos utilizados. Codificação. Código binário puro. Codificação binária. Codificação Binária. Código Binário puro e suas variantes

Aula 1 Representação e Operações Aritméticas em Ponto Flutuante.

ULA- Unidade Lógica Aritmética. Prof. Rômulo Calado Pantaleão Camara. Carga Horária: 60h

Arquitetura de Sistemas Digitais (FTL066) Instruções: Linguagem do Computador Segunda Lista de Exercícios

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

Noções Básicas de Erros

ARQUITETURA DE COMPUTADORES

UNIVERSIDADE ESTADUAL PAULISTA

Capítulo 3 Aula 8. Representação Numérica. Aritmética Computacional Representação Numérica

Exemplo de Subtração Binária

Análise de Arredondamento em Ponto Flutuante

Linguagem e Técnicas de Programação I Tipos de dados, variáveis e constantes. Prof. MSc. Hugo Souza Material desenvolvido por: Profa.

Organização de Computadores 1

Computador HIPO. Inicialmente vamos apresentar as unidades fundamentais de um computador:

Cálculo Numérico Faculdade de Engenharia, Arquiteturas e Urbanismo FEAU

MC102 Algoritmos e programação de computadores Aula 3: Variáveis

Representação de Números em Ponto Flutuante

Paralelismo a Nível de Instrução

Eletrônica Digital para Instrumentação. Herman Lima Jr.

A TI-89 / TI-92 Plus permite também comparar ou manipular números binários bit a bit.

Aritmética de Ponto Flutuante

Sistemas Processadores e Periféricos Aula 5 - Revisão

Capítulo 1 - Erros e Aritmética Computacional

Linguagem C. Programação Estruturada. Fundamentos da Linguagem. Prof. Luis Nícolas de Amorim Trigo

Algoritmos DCC 119. Introdução e Conceitos Básicos

CAPÍTULO 6 ARITMÉTICA DIGITAL

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

FLÁVIO KENJI NISHIDA PROJETO DE UM MULTIPLICADOR EM PONTO FLUTUANTE

Conjunto de instruções e modos de. aula 4. Profa. Débora Matos

Programação: Tipos, Variáveis e Expressões

TEXTO DE REVISÃO: Uso da calculadora científica e potências de 10.

Distribuição Gaussiana. Modelo Probabilístico para Variáveis Contínuas

Truques e Dicas. = 7 30 Para multiplicar fracções basta multiplicar os numeradores e os denominadores: 2 30 = 12 5

CURSO E COLÉGIO APOIO. Professor: Ronaldo Correa

Notas de Cálculo Numérico

Operações aritméticas

Projeto e Desenvolvimento de Algoritmos

Aritmética Binária e. Bernardo Nunes Gonçalves

Primeiro roteiro de exercícios no Scilab Cálculo Numérico

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À ORGANIZAÇÃO DE COMPUTADORES

Introdução ao Paradigma Orientado a Objetos. Principais conceitos

Representação Binária de Números

I n f o r m á t i c a

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

Algoritmos e Programação

Aritmética Computacional (Ponto Flutuante) Capítulo 4

LÓGICA DE PROGRAMAÇÃO PARA ENGENHARIA INTRODUÇÃO À PROGRAMAÇÃO COM C/C++ Prof. Dr. Daniel Caetano

2. Representação Numérica

Arquitectura de Computadores ARQC MIPS. Exemplos. Serviços de Sistema

ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM

Linguagem de Programação I

Unidade 4: Planilhas eletrônicas

Introdução à Arquitetura de Computadores

Notas da disciplina Cálculo Numérico

Linguagens de Programação

INTRODUÇÃO À LINGUAGEM C++

Transcrição:

Representando Instruções no Computador Humanos aprenderam a pensar na base 10 Números podem ser representados em qualquer base Números mantidos no hardware como série de sinais eletrônicos altos e baixos Base 2 (alto/baixo, ligado/desligado, V/F, 0/1) Números binários, compostos por dígitos binários (binary digit)

Representando Instruções no Computador Instruções também mantidas como série de sinais eletrônicos altos e baixos Podem ser representados como número Na verdade cada parte da instrução pode ser considerada como um número individual Colocação lado a lado desses números forma a instrução Registradores fazem parte de quase todas as instruções Convenção para mapear nome de registradores em números MIPS: registradores $s0 a $s7: registradores 16 a 23 Registradores $t0 a $t7 mapeados nos registradores de 8 a 15

Representando Instruções no Computador Como é representada add $t0, $s1, $s2? Representação binária (formato da instrução): Cada um dos segmentos chamado de campo Primeiro (op: opcode) e último (funct: função) campos indicam operação de soma Segundo (rs) e terceiro (rt) campos indicam operandos Quarto campo (rd) indica registrador destino Quinto campo (shamt: shift amount) não usado nessa instrução

Representando Instruções no Computador Versão numérica das instruções chamada de linguagem de máquina Sequência de instruções chamada de código de máquina Instruções MIPS: 32 bits E se instrução precisa de campos maiores que os mostrados? Conflito entre manter todas as instruções com o mesmo tamanho e o desejo de ter um formato de instrução único.

Representando Instruções no Computador Princípio de projeto 4: um bom projeto exige bons compromissos Compromisso dos projetistas do MIPS: todas as instruções com o mesmo tamanho Tipos diferentes de instruções Formato anterior: tipo-r (operações envolvendo apenas registradores) Segundo tipo de instruções: tipo-i (imediato) Utilizada por instruções imediatas e de transferência de dados

Precisamos de representação para números reais Utilizaremos na representação números normalizados em notação científica Notação científica normalizada: possui único dígito à esquerda do ponto decimal (ou ponto binário, caso a base seja 2) Ex.: 1,0 x 10-9

Ponto flutuante: aritmética computacional que representa os números em que o ponto binário não é fixo Representados na forma 1,aaaaaa x 2 bbbb Precisamos de compromisso entre tamanho da fração e do expoente Aumento da precisão x aumento do intervalo dos números que podem ser representados

Números em ponto flutuante múltiplos do tamanho de uma palavra Precisão simples (floats em C): uma palavra usada na representação 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 s expoente fração Precisão dupla (doubles em C): duas palavras usadas na representação 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 s expoente fração 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 fração (continuação)

Representações anteriores chamada de sinal e magnitude Sinal possui um bit separado do restante do número Representação em precisão simples Números tão pequenos quanto 2 x 10-38 e tão grandes quanto 2 x 10 38 Overflow ainda pode ocorrer Expoente positivo torna-se muito grande para caber no campo de expoente Também podemos ter underflow Expoente negativo torna-se muito grande para caber no campo de expoente

Representação em precisão dupla Números tão pequenos quanto 2 x 10-308 e tão grandes quanto 2 x 10 308 Formato de ponto flutuante do IEEE IEEE 754 Mais bits podem ser colocados na fração Números sempre na forma 1,xxx Um implícito Bits da fração numerados da esquerda para direita Termo significando utilizado

Codificação para números PF Precisão Simples Precisão Dupla Objeto Representado Expoente Fração Expoente Fração 0 0 0 0 0 0 não zero 0 não zero ± número desnormalizado 1-254 qualquer coisa 1-2046 qualquer coisa ± númeroponto flutuante 255 0 2047 ± infinito 255 não zero 2047 não zero NaN (Not a Number)

Comparação de números seria simplificada se representação do expoente mais negativo fosse próxima a 0000...000 e expoente mais positivo como 1111...111 Ex: 1,0 x 2-1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 1 1 1 1 1 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 1,0 x 2 +1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Solução: uso de notação deslocada Bias adicionado ao expoente No padrão IEEE valor 127 utilizado como bias para precisão simples e 1023 para precisão dupla (-1) s x (1 + fração) x 2 No exemplo anterior: (expoente - bias) -1 + 127 = 126 => 0111 1110 +1 + 127 = 128 => 1000 0000

Exemplo: Representar -0,75 em precisão simples e dupla -0,75 10 = 0,11 2 Na notação científica normalizada: -1,1 x 2-1 Expoente: -1+127 = 126 => 01111110 Número negativo: sinal = 1 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Exemplo (cont.) Na precisão dupla, expoente igual a -1+1023 = 1022 => 01111111110 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 1 0 1 1 1 1 1 1 1 1 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0

Que número decimal é representado por este float de precisão simples? 31 30 29 28 27 26 25 24 23 22 21 20 19 18 17 16 15 14 13 12 11 10 9 8 7 6 5 4 3 2 1 0 0 1 0 0 0 0 0 0 1 0 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 Bit de sinal: 0 (número positivo) (-1) 0 x (1 + 0,01) x 2 (129 127) = 1 x 1,25 x 4 = 5,0

Números em PF normalmente são aproximações para um número Arrendondamento pode ser crítico IEEE 754 define dois bits extras para arredondamento durante operações Guarda e arredondamento

Exemplo: Somar 2,56 x 10 0 a 2,34 x 10 2, supondo 3 dígitos significativos Guarda e arredondamento garantem 5 bits durante operação 2,3400 + 0,0256 = 2,3656 = 2,37 Sem guarda e arredondamento teríamos: 2,34 + 0,02 = 2,36