Organização e Arquitetura de computadores

Documentos relacionados
Arquitetura e Organização de Computadores

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

Aritmética dos Computadores

Arquitetura de Computadores

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

Arquitetura e Organização de Computadores

Organização e Arquitetura de Computadores I

Notas de Aula Guilherme Sipahi Arquitetura de Computadores

Ponto Fixo e Ponto Flutuante

Sistemas Digitais INE 5406

Organização e Arquitetura de Computadores I

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

REPRESENTAÇÃO DE DADOS. Prof. Maicon A. Sartin

Aula 3 - Representação de Dados

Estouro e Representação em Ponto Flutuante

Dessa forma pode-se transformar qualquer número em qualquer base para a base 10.

Arquitetura de Computadores I

Aula 9: Estouro e Representação em Ponto Flutuante

Disciplina: Introdução à Engenharia da Computação

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

ARQUITECTURA DE COMPUTADORES

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

Métodos Numéricos Erros Ponto Flutuante. Professor Volmir Eugênio Wilhelm Professora Mariana Kleina

Introdução. à Ciência da. Representação de Números em Ponto Flutuante. Aula 21. Números Fracionários

Aula 9: Estouro e Representação em Ponto Flutuante

ARQUITETURA DE COMPUTADORES

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

ARQUITETURA DE COMPUTADORES

Aula 11. A Informação e sua Representação Ponto-Flutuante. Prof. Dr. Dilermando Piva Jr.

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

1. Notação em Complemento de 2

Representação e Aritmética em Ponto Flutuante. 35T12 Sala 3G4 Bruno Motta de Carvalho DIMAp Sala 15 Ramal 227

Aproximações e Erros

Introdução à Computação

Representação de Números em Ponto Flutuante

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

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

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

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

Números binários e erros

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

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

Sistemas de Computação

Infraestrutura de Hardware

Cálculo Numérico. Conjunto de métodos utilizados para a obtenção de resultados de problemas matemáticos através de aproximações.

Circuitos Lógicos. Capítulo 9 Aritmérica Digital: Operações e Circuitos

Aritmética Computacional Aula 01. Professor: André Luis Meneses Silva orgearq20091.wordpress.com

Campus Capivari Análise e Desenvolvimento de Sistemas (ADS) Prof. André Luís Belini /

Capítulo 6 Aritmética Digital: Operações e Circuitos

Cálculo Numérico. Erros em processamento Numéricos

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

Métodos Numéricos - Notas de Aula

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

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

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

Introdução à Computação

Estrutura de Dados Conceitos Iniciais

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:

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

ELETRÔNICA DIGITAL I

Circuitos Lógicos. Prof. Odilson Tadeu Valle

Capítulo 2. Representação de dados em sistemas computacionais

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

Multiplicação Divisão

Aritmética Binária e Complemento a Base. Introdução ao Computador 2010/1 Renan Manola

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

Códigos Especiais. Tiago Dezuo DEE - Engenharia Elétrica CCT. ALB0001 Álgebra de Boole JOINVILLE

Prof. Leonardo Augusto Casillo

Organização de Computadores I

Cálculo Numérico - Mat 215. Prof. Dirceu Melo. Prof. Dirceu Melo - MAT215

Arquitectura de Computadores I

Operações com números binários

MAT115 Introdução ao Processamento de Dados Professor: Ibirisol Fontes Ferreira DCC: Departamento de Ciência da Computação

Arquitetura de Computadores. Conjunto de Instruções

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

Aritmética de Ponto Fixo

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

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

Erros, Precisão Numérica e Ponto Flutuante

Linguagem de Maquina II. Visão Geral

CCI-22. Erros Erros de arredondamento, representação e de cálculo

Baseado nos slides de Anna Tostes SISTEMA NUMÉRICO

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

Arquitetura e Organização de Computadores

Circuitos Lógicos Aula 22

SISTEMA DE NUMERAÇÃO. Introdução a Informática. Vinícius Pádua

Arquitetura e Organização de Computadores

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

Sistemas Digitais Módulo 3 Codificações BCD, Gray e ASCII e Números Fracionários

Unidade III. Sistemas Numéricos e o Computador

Arquitetura de Computadores

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

CONJUNTO DE INSTRUÇÕES

Universidade Federal do Espírito Santo - UFES

Introdução. introdução. tópicos. referência. INF1005 Programação I Prof. Hélio Lopes 8/14/13

2. E presse cada um dos seguintes números inteiros decimais na representação sinal e magnitude e complemento a 2, utilizando 8 bits Resposta:

Organização e Arquitetura de Computadores I

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

Transcrição:

Organização e Arquitetura de computadores Aritmética computacional Prof. Dr. Luciano José enger Representação de valores Os valores expressos em números inteiros e fracionários necessitam ser representados de forma eficiente em sistemas computacionais, através de palavras binárias No hardware, os números são finitos, pois devem ser mapeados em palavras de tamanho fixo Além disso, o hardware necessita trabalhar com número com sinal (negativos e positivos) olução: usar 1 bit (sinal magnitude). Primeira tentativa: o bit mais significativos (MB) éusado para sinal. Problema: duas representações para o zero olução mais usada: complemento a 2 Notação em excesso (números em ponto flutuante) Representação de valores Faixa de valores em complemento de 2 para 3 bits 11 111-1 -2-3 3 11-4 11 1 Interface Hardware/oftware Endereços: sempre positivos Em C: int e unsignedint 1 1 2 1 Representação de valores Como o computador trabalha com bits, todos os valores precisam ser convertidos para uma representação interna que seja eficiente na economia dos bits e na realização de operações sobre os valores Questão: Que tipo de variável que pode conter 1... (dec) ocupa mais espaço na memória? int em C tring em C tring em java(que usa Unicode) Adição omador ripple carry(propagação de vai-um) Adição de alto desempenho Carrylookaheadadder(somador com previsão de excedente) O processo de somar as entradas de cada bit érápido O problema éque o a propagação do excedente (carry) leva um tempo longo para atravessar o circuito: números maiores levam mais tempo para serem somados.

Adição de alto desempenho Carrylookaheadadder(somador com previsão de excedente) Adição de alto desempenho Carrylookaheadadder(somador com previsão de excedente) Adição de alto desempenho Hardware para adição e subtração Overflow Detecção de overflow Ocorre sempre que o resultado de uma operação não pode ser representado no hardware disponível. Operação Operando A Operando B Resultado A+B >= >= < A+B < < >= A-B >= < < A-B < >= >= e um número for negativo, e o outro positivo, não ocorrerá overflow. Overflow Interface hardware/software O MIP detecta um overflowcomo uma exceção, também chamada de interrupção em muitos computadores Uma exceção ou interrupção corresponde basicamente a uma chamada de procedimento não planejada O endereço da instrução que gerou o overflowésalvo em registrador especial, e o computador desvia a execução para um endereço pré-definido, para invocar a rotina apropriada para essa exceção O MIP inclui um registrador, chamado de contador de programa de exceção (EPC) para conter o endereço da instrução que causou a exceção. A instrução move from system control(mfc) éusada para copiar o EPC para um registrador de uso geral, de modo que o software do MIP tem a opção de retornar àinstrução problemática por meio de uma instrução jump register Adição Interface hardware/software Na ocorrência de overflowa máquina precisa decidir como tratá-lo. Linguagem C: não toma conhecimento do overflows, assim o overflow deve ser tratado pelo programador. Outras linguagens, como ADA e FORTRAN, tratam o overflow Na arquitetura IA-32, o registrador de flagsnotifica se o resultado de uma operação aritmética gerou ou não um overflow; cabe ao software utilizar essa informação para o tratamento do overflow

A multiplicação, aocontráriodasoma e dasubtração, é uma operação complexa Realizada através da soma dos produtos parciais para cada dígito do multiplicador A soma deveser realizadaobservandoquecada produto parcial tem uma posição(deslocamento) na soma que deve ser respeitada A multiplicação de números inteiros binários de nbits resulta em um produto com até2nbits de tamanho 111 Multiplicando (11 decimal) x 111 Multiplicador (13 decimal) 111 produtos parciais Nota: se o bit do multiplicador 111 for igual a 1, copia-se o 111 multiplicando, senão 11111 produto (143 decimal) Nota: o resultado é expresso através de um número que tem o dobro do tamanho dos termos (p.e. se os termos têm 4 bits, o resultado deve ser expresso em 8 bits) Hardware de multiplicação Exemplo: Multiplicar 111 por 111 Diagrama de fluxo de dados para a multiplicação mais rápidar Replicação de somadores Não importa se o multiplicando deve ser somado ou não, isso é conhecido no início da multiplicação analisando cada um dos 32 bits do multiplicador Multiplicações mais rápidas são possíveis basicamente fornecendo um somador de 32 bits para cada bit do multiplicador: uma entrada éo AND do multiplicando pelo bit do multiplicador e a outra éa saída do somador anterior

mais rápidar Replicação de somadores Números negativos a técnica/hardware anterior não funciona para números negativos, expressos em complemento de 2 Primeira solução Converter o número negativo para um número positivo Multiplicar como descrito previamente e os sinais dos termos iniciais forem diferentes, efetuar a representação do resultado através de um número negativo egunda solução Diagrama de fluxo de dados para a multiplicação (Booth) O multiplicador e o multiplicando são armazenados nos registradores Q e M Existe um registrador de 1 bit, posicionado logicamente àdireita do bit menos significativo (Q ) do registrador Q e designado como Q -1 A e Q -1 são inicializadoscom zero A lógica de controle examina os bits do multiplicador, um de cada vez Quando o bit éexaminado, observa-se o bit a sua direita: se esses dois bits forem iguais (1-1 ou -), então todos os bits dos registradores A, Q e Q -1 são deslocados 1 bit para a direita; se eles forem diferentes, o multiplicando serásomado ou subtraído do registrador A, dependendo se os dois bits são -1 ou 1-, respectivamente Após a operação de adição ou subtração, ocorre o deslocamento de um bit para a direita, que éfeito de tal maneira que o bit mais a esquerda de A, denominado de A n-1, édeslocado para A n-2, mas também permanece em A n-1 Tal forma de deslocamento énecessária para preservar o sinal do número armazenado em A e Q; esses deslocamento éconhecido como deslocamento aritmético, porque preserva o bit de sinal Exemplo: Multiplicar 111 por 11

Divisão Algoritmo de divisão Mais complexo que o algoritmo de multiplicação Divisor Resto 111 111 1111 111 111 111 1111 111 1 Quociente Dividendo Resto Divisão Resto>= 2a. Desloque o Quociente 1 bit à esquerda Q = 1 início 1. Resto = Resto - Divisor Teste do Resto Resto < 2b. Resto = Resto + Divisor Desloque o Quociente um 1 bit à esquerda Q = Ponto flutuante Números reais não inteiros seguem a representação em ponto flutuante Na notação em ponto flutuante, os números seguem uma notação científica normalizada: Ocorrência de overflow e underflow E F 2 32 bits 3. Desloque o Divisor 1 bit à direita não 33 repetições? sim Fim s expoente mantissa 1 8 23 Precisão simples (float) Ponto flutuante Formato duplo (double) 64 bits s expoente mantissa 1 11 52 Esses formatos estão de acordo com o padrão IEEE 754, encontrado em praticamente todos os computadores desde 198 Para colocar mais bits no significando, o IEEE 754 deixa explícito o bit 1 inicial nos números binários. Logo, o número tem 24 bits de largura na precisão simples e 53 bits na precisão dupla O valor de expoente (reservado) indica o número zero E (1 + Mantissa) 2 Ponto flutuante Codificação do padrão IEEE 754 para os números em ponto flutuante Para facilitar a comparação entre valores, o bit de expoente érepresentado no início da palavra; além disso, a representação em excessode 127 para a precisão simples: -1:-1+127 = 126 1: 1+127 = 128 O biaspara o expoente éigual a 123 ( E Peso) E (8) ±1-254 ±255 255 (1 + Mantissa) 2 Precisão simples F (23) anything Precisão dupla E (11) ±1-246 ±247 247 F (52) anything Objeto representado zero () ± denormalized number ± floating point number ±infinity not a number (NaN)

Ponto Flutuante Faixas de representação NaN - - + -Normalized -Denorm +Denorm +Normalized Description exp frac Numeric Value Zero. mallest Pos. Denorm. 1 2 {23,52} X 2 {126,122} ingle 1.4 X 1 45 Double 4.9 X 1 324 Largest Denormalized 11 11 (1. ε) X 2 {126,122} ingle 1.18 X 1 38 Double 2.2 X 1 38 mallest Pos. Normalized 1 1. X 2 {126,122} Just larger than largest denormalized One 1 11 1. Largest Normalized 11 1 11 11 (2. ε) X 2 {127,123} ingle 3.4 X 1 38 Double 1.8 X 1 38 + NaN Ponto Flutuante exp E value Denormalized numbers Normalized numbers n/a 1-6 1/512 1-6 2/512 11-6 6/512 111-6 7/512 1-6 8/512 1 1-6 9/512 11 11-1 28/32 11 111-1 3/32 111 1 111 1 36/32 111 1 4/32 111 11 7 224 111 111 7 24 1111 n/a inf closest to zero largest denorm smallest norm closest to 1 below closest to 1 above largest norm Padrão IEEE 754 Exemplos: 1. Representar o número,75 1 em ponto flutuante e precisão simples. 2. Representar o número -,75 1 em ponto flutuante e dupla precisão. Convertendo para binário:,75 x 2 = 1,5 1,5 x 2 = 1, 1 -,75 1 = -,11 2 = -,11 x 2 = -1,1 x 2-1 Em precisão simples: Resultado: (1 + Mantissa) 2 ( E Peso) Ponto Flutuante Converter a palavra abaixo em ponto flutuante para número: Resposta Adição e em Ponto Flutuante Ponto Flutuante Na arquitetura MIP: Adição simples e dupla: add.s e add.d ubtração simples e dupla: sub.s e sub.d simples e dupla: mult.s e mult.d Aritmética de precisão Ao contrário dos números inteiros, os números em ponto flutuante são aproximações dos valores reais O arredondamento exige bits adicionais O IEEE 754 mantém 2 bits extras àdireita para adições intermediárias, chamados guarda e arredondamento Exemplo: soma 2,56 x 1^ + 2,34 x 1^2, supondo 3 dígitos decimais significativos 2,34 +,256 = 2,3656 Arredondamento: 2,37 em dígitos de guarda e arredondamento: 2,34 +,2 = 2,36

Vida Real: ponto flutuante do IA-32 IA-32 Início: de ponto flutuante 1987 Arquitetura de pilha: operandossão colocados na pilha e removidos para o processamento 8 bits são reservados para números em ponto flutuante (formato estendido); não utilizado pelas linguagens de programação tradicionais 79 78 64 63 s exp frac Considerações finais Considerações Replicação de somadores: melhor desempenho Trata números negativos diretamente Blocos de 1s e s são ignorados, sendo feita, em média, apenas uma adição ou subtração por bloco e divisão Menos freqüentes Ponto flutuante Aritmética complexa Registradores específicos Falácia: a adição em ponto flutuante é associativa; ou seja, x+(y+z)=(x+y)+z. Referências Patterson e Hennessy, cap. 3 talings, cap. 8 Murdocca, cap. 3 Wikipedia: http://en.wikipedia.org/wiki/ieee_floatingpoint_standard