Representação de números

Slides:



Advertisements
Apresentações semelhantes
Prof. José Junior Barreto TEORIA DOS DETERMINANTES
Advertisements

Contadores e Registradores
Parte 1: Organização de Computadores
1 ANÁLISE E PROJETO NO PROCESSO DE DESENVOLVIMENTO DE SOFTWARE PROCESSO: CONCEITO MODELOS DE PROCESSO PROCESSO UNIFICADO HISTÓRIA CARACTERÍSTICAS AS QUATRO.
A = ( 3 ) , logo | A | = 3 Determinantes
Representação de Ponto Flutuante
Representação de Números
UNICAMP Universidade Estadual de Campinas Centro Superior de Educação Tecnológica Divisão de Telecomunicações Propagação de Ondas e Antenas Prof.Dr. Leonardo.
Arquitetura de Computadores
Aritmética Computacional
Arquitetura de Computadores
Sistemas de Numeração.
Vamos contar D U De 10 até 69 Professor Vaz Nunes 1999 (Ovar-Portugal). Nenhuns direitos reservados, excepto para fins comerciais. Por favor, não coloque.
14/10/09 Uma animação possui: Início; Passo; Fim; 1.
Nome : Resolve estas operações começando no centro de cada espiral. Nos rectângulos põe o resultado de cada operação. Comprova se no final.
Aritmética Aceleração da adição.
Sumário Bem ou serviço compósito = dinheiro Exercícios 2 Exercícios 3.
Sumário Função de utilidade em IRn Isoquanta (em IR2)
Potências de Base /10 = 0, /100 = 0, /1000 = 0, /10000 = 0,0001 … 10-n 0,00…00001 n zeros
Múltiplos Os múltiplos de um número inteiro obtêm-se multiplicando esse número por 0, 1, 2, 3, 4, 5, 6, ... Exemplos: M5= {0, 5, 10, 15, 20,
Universidade Bandeirante de São Paulo Fundamentos da Álgebra
Determinantes.
Representação de Dados e Sistemas de Numeração Aula 4
Excel Profa. Cristina M. Nunes.
Eletrônica Digital Operações Aritméticas Binárias
Aula 03 Aritmética.
Determinantes Determinante é um número real associado a uma matriz quadrada. Notação: det A ou |A|. Determinante de uma Matriz Quadrada de 1ª Ordem. Seja.
Circuitos aritméticos
William Stallings Arquitetura e Organização de Computadores 8a Edição
Resolução.
MC542 Organização de Computadores Teoria e Prática
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
MC542 Organização de Computadores Teoria e Prática
MC542 Organização de Computadores Teoria e Prática
EXPRESSÕES ARITMÉTICAS
Organização e Arquitetura de Computadores I Aritmética para Computadores Parte I Ivan Saraiva Silva.
6. Estruturas p/ Sistemas Discretos
FUNÇÃO MODULAR.
Programação Baseada em Objectos Desenho de TAD
Provas de Concursos Anteriores
Introdução a Tecnologia da Informação
Calculada a solução óptima
Circuitos Digitais - Somadores e Subtradores SOMADORES E SUBTRADORES.
MECÂNICA - ESTÁTICA Vetores Forças Cap. 2.
Circuitos combinatórios típicos: circuitos aritméticos
Funcionamento básico de um computador
Oferta e Demanda A Curva de Oferta
1 António Arnaut Duarte. 2 Sumário: primeiros passos;primeiros passos formatar fundo;formatar fundo configurar apresentação;configurar apresentação animação.
Operações Aritméticas em Binário
Coordenação Geral de Ensino da Faculdade
SISTEMAS DIGITAIS ALGEBRA DE BOOLE E SIMPLIFICAÇÃO DE CIRC. LÓGICOS
Representação Digital da Informação
ICC – 4.2. Aritmética Binária
Infra-Estrutura de Hardware
Tópicos em Arquitetura de Computadores João Angelo Martini Universidade Estadual de Maringá Departamento de Informática Mestrado em Ciência.
1 2 Observa ilustração. Cria um texto. Observa ilustração.
ELETRÔNICA DIGITAL Circuitos Aritméticos
MATRICIAL CONSULTORIA LTDA. PREFEITURA MUNICIPAL DE GARIBALDI 23/10/ : ATENÇÃO Os locais descritos nas planilhas anexas não correspondem ao total.
Olhe fixamente para a Bruxa Nariguda
Aritmética Computacional Operações Complexas
Resolução de sistemas de equações lineares
Máquina de Turing Universal
Representação de Números Inteiros
POTENCIAÇÃO E RAIZ QUADRADA DE NÚMEROS RACIONAIS
Representação de Dados
BCC101 Matemática Discreta I
Subtrator e Somador BCD
Operações Aritméticas no Sistema binário
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
Aula 10 – Sumário Aritmética Pipelines Aceleração da adição
Transcrição da apresentação:

Representação de números Aritmética Representação de números

Representação de inteiros Números inteiros com sinal A representação mais comum é a representação em complemento para 2 Boas propriedades para adição e subtracção Como já viram em AC I... No entanto existem outras formas de representar: Magnitude Complemento para 1 Excesso m

Representação de inteiros Magnitude 1 bit de sinal seguido do valor absoluto do número Exemplos (em 8 bits) 0000 0000 -0 1000 0000 1 0000 0001 -1 1000 0001 41 0010 1001 -41 1010 1001 78 0100 1110 -78 1100 1110 OBS: A notação não tem boas propriedades para a adição: se fizer N + (-N) o resultado não dá 0... O ‘0’ pode ter duas representações diferentes...

Representação de inteiros Complemento para 1 O simétrico é a negação bit a bit Exemplos (em 8 bits) 0000 0000 -0 1111 1111 1 0000 0001 -1 1111 1110 41 0010 1001 -41 1101 0110 78 0100 1110 -78 1011 0001 OBS: Boas propriedades para adição, mas o ‘0’ pode ter duas representações diferentes...

Representação de inteiros Excesso m Representa-se o valor do número acrescido de m O menor número vale –m e é representado por 0’s Exemplo: excesso 128 (8 bits) 1000 0000 -0 1 1000 0001 -1 0111 1111 41 1010 1001 -41 0101 0111 78 1100 1110 -78 0011 0010 OBS: Quando m=2n-1 fica semelhante ao complemento para 2, mas com o bit de sinal trocado

Representação de inteiros Apesar de muito utilizada, a notação em complemento para 2 também tem um defeito: Existe mais um número negativo do que o número de positivos No caso da notação excesso-m, esse desequilíbrio pode ainda ser maior No entanto, não existe nenhuma notação “ideal”: o zero ter um única representação existirem tantos números negativos como positivos ter boas propriedades para adição/subtracção

Representação de números reais Norma IEEE 754 (versão mais recente: Ago/2008) Até meados dos anos 80, a representação de números reais não estava normalizada... Cada fabricante usava a sua representação Para ultrapassar problemas de compatibilidade, surgiu em 1985 a primeira versão da norma IEEE 754 A norma define: Os formatos de representação dos números reais Como devem ser feitos os arredondamentos Como devem ser feitas as operações Tratamento de excepções (ex: divisão por zero, underflow, overflow) …

Representação de números reais Formato de um número real (virgula flutuante) Precisão simples – 32 bits – float 1 bit que define o sinal (0 – positivo; 1 – negativo) 8 bits para o expoente (representado em excesso 127) 23 bits para a mantissa, representada em magnitude Valor do número: (-1)sinal  1.mantissa  2expoente

Representação de números reais Exemplo: Qual será o valor do número real C160 0000(hex)? Sinal = 1  número negativo Expoente = 1000 0010 = 130  o expoente vale 3 (não esquecer que está em excesso 127) Mantissa = 0.1100 0000 … = 2-1 + 2-2 = 0.5 + 0.25 = 0.75 O valor do número será então: –1.75  23 = –14.0

Representação de números reais Significados especiais Expoente Mantissa Valor Obs. –127 == 0 128  infinito Depende do sinal != 0 NaN (not a number) Valores não reais 0.mantissa  2-126 Forma desnormalizada Exemplos: 0000 0000(hex) = 0.0 7F80 0000(hex) = + FFFF FFFF(hex) = NaN 0040 0000(hex) = 0.5 * 2-126

Representação de números reais Precisão dupla – double Obtêm-se os valores de forma idêntica, mas os números são representados em 64 bits com 11 bits para o expoente (em excesso 1023) e 52 bits para a mantissa Gamas de representação (na forma normal) Precisão simples   1.2  10-38 a 3.4  1038 Precisão dupla   2.2  10-308 a 1.8  10308

Multiplicação binária Aritmética Multiplicação binária

Multiplicação binária Multiplicação (sem sinal) 1101 multiplicando (A) × 1010 multiplicador (B) 0000 10000010 produto (P) Quando se multiplicam dois números de n bits (sem sinal), o resultado terá, no máximo, 2n bits. 1101 (13) × 1010 (10) = 10000010 (130)

Multiplicação binária Multiplicação (sem sinal) A3 A2 A1 A0 × B3 B2 B1 B0 B0A3 B0A2 B0A1 B0A0 B1A3 B1A2 B1A1 B1A0 B2A3 B2A2 B2A1 B2A0 B3A3 B3A2 B3A1 B3A0 P7 P6 P5 P4 P3 P2 P1 P0 ANDs entre os bits de A e os bits de B

Multiplicação binária Utilizando vários adicionadores... A3 A2 A1 A0 × B3 B2 B1 B0 B0A3 B0A2 B0A1 B0A0 + B1A3 B1A2 B1A1 B1A0 cout1 S13 S12 S11 S10 B2A3 B2A2 B2A1 B2A0 cout2 S23 S22 S21 S20 B3A3 B3A2 B3A1 B3A0 cout3 S33 S32 S31 S30 P7 P6 P5 P4 P3 P2 P1 P0 Somadores

Multiplicação binária Pode-se seguir esta estrutura

Multiplicação binária Utilização de vários adicionadores Se os números a multiplicar são compostos por n bits então são necessários n – 1 adicionadores de n bits cada um Eventuais problemas: Excesso de material por exemplo, para multiplicar dois números de 32 bits seriam necessários 31 somadores de 32 bits Demasiado consumo de tempo durante um ciclo Num processador, ter um multiplicador deste género pode aumentar de forma significativa a duração de cada ciclo, devido aos tempos de propagação dos somadores

Multiplicação binária Alternativa: usar um único somador e registos O adicionador efectua todas as adições necessárias em n ciclos É necessário: Um registo para acumular as somas – RP Um registo de deslocamento para a esquerda e outro para a direita – RA e RB RP e RA são registos de 2n bits para RB, um registo de n bits é suficiente

Multiplicação binária Algoritmo básico (para inteiros sem sinal) Inicialização: RP ← 0, RA ← A, RB ← B Ciclo (n iterações) se ( RB0 == 1 ) // bit menos significativo em RB RP ← RP + RA RA ← RA << 1, RB ← RB >> 1 No final, o resultado da multiplicação está em RP

Multiplicação binária Hardware para o algoritmo básico

Multiplicação binária Exemplo – multiplicar 1010 por 1001 (i.e. 109) Inicialização: RP: 0000 0000 RA: 0000 1010 RB: 1001 Ciclo 3 (RB0 = 0) RP: 0000 1010 RA: 0101 0000 RB: 0001 Ciclo 1 (RB0 = 1) RP: 0000 1010 RA: 0001 0100 RB: 0100 Ciclo 4 (RB0 = 1) RP: 0101 1010 RA: 1010 0000 RB: 0000 Ciclo 2 (RB0 = 0) RP: 0000 1010 RA: 0010 1000 RB: 0010 O resultado será então: RP: 01011010 = 21+23+24+26 = 2+8+16+64 = 90

Aritmética Aceleração da adição

Adição básica (Ripple-carry) Um circuito full adder (dado em AC1) Soma os bits A e B com o transporte anterior (Cin), dando o resultado da soma (S) e o transporte que sai (Cout)

Adição básica (Ripple-carry) Adicionador Ripple-carry de n bits Problema: Os transportes (Ci’s) têm que se propagar entre os full adders Admitindo que cada full adder impõe um atraso, o tempo necessário para ser feita a soma será proporcional a n

Adição básica (Ripple-carry) Outra maneira de ver PFA PFA – Partial Full Adder

Adição básica (Ripple-carry) Outra maneira de ver Em que: Propagação de carry Geração de carry

Adição básica (Ripple-carry) Para um ripple adder de 4 bits P’s e G’s podem ser calculados em paralelo (ao mesmo tempo) As somas (os S’s) têm que esperar que chegue o Ci respectivo

Adição básica (Ripple-carry) Para um ripple adder de 4 bits Caminho crítico – corresponde ao pior caso na propagação dos sinais Tipicamente é o que atravessa mais portas lógicas

Acelerar a adição Genericamente tem-se:

Acelerar a adição Com base nessas equações obtém-se:

Adicionador Carry Lookahead Este tipo de adicionador designa-se por carry lookahead adder (CLA) Repare no atraso associado à propagação do carry neste caso corresponde ao de 2 portas lógicas E se quisesse construir um CLA de 8 bits ? Problema com o desenho anterior: para calcular carrys de ordem elevada (e.g. C7) precisaria de portas lógicas com muitas entradas... ...difícil de implementar na prática Uma abordagem mais realista seria usar portas com 2 entradas

Adicionador Carry Lookahead

Adicionador Carry Lookahead O caminho crítico está representado a vermelho

Adicionador Carry Lookahead Caminho crítico num CLA de 8 bits.

Adicionador Carry Lookahead Comparação entre os adicionadores: (supondo que apenas são utilizadas portas lógicas com 2 entradas) Nº de bits Ripple-carry CLA Tempo Nº de portas 4 9tPD 20 7tPD 29 8 17tPD 40 11tPD 61 16 33tPD 80 15tPD 125 32 65tPD 160 19tPD 253 64 129tPD 320 23tPD 509 128 257tPD 640 27tPD 1021 tPD – atraso de uma porta lógica (supondo que todas impõem o mesmo atraso)

Outros adicionadores Carry select adder Carry skip adder A ideia consiste em preparar somas parciais para ambas as hipóteses de carry in O carry out do bloco anterior irá seleccionar qual dos 2 resultados é válido Carry skip adder Composto por vários blocos onde são calculados os P’s, mas não os G’s Os P’s são utilizados para propagar o carry ao bloco seguinte

Outros adicionadores Carry select adder (8 bits)

Outros adicionadores Carry skip adder (16 bits)

Síntese Evolução do tempo necessário para fazer uma soma de dois números representados com n bits Adicionador Tempo Ripple O(n) Carry lookahead O(log2 n) Carry skip O(√n) Carry select n – número de bits O(x) – significa “evolui proporcionalmente com a grandeza x”

Síntese

Síntese