Arquitetura de Computadores I

Slides:



Advertisements
Apresentações semelhantes
Parte 1: Organização de Computadores
Advertisements

Representação de Ponto Flutuante
Representação de Números
Arquitetura de Computadores
Sistemas de Numeração.
Representação de números
Software Básico Silvio Fernandes Universidade Federal Rural do Semi-Árido Departamento de Ciências Ambientais Ciência da Computação Aula 03: Computador.
Representação de Dados e Sistemas de Numeração Aula 4
O Co-Processador Matemático
Exemplo de arquitetura registrador-registrador- MIPS
Aula 03 Aritmética.
William Stallings Arquitetura e Organização de Computadores 8a Edição
Algoritmos e Programação Linguagens de Programação Teoria Aula 5 (05/05) Universidade Federal do Vale do São.
MC542 Organização de Computadores Teoria e Prática
MO401 – Arquitetura de Computadores I
ORGANIZAÇÃO BÁSICA DE COMPUTADORES E LINGUAGEM DE MONTAGEM
MC542 Organização de Computadores Teoria e Prática
O MICROPROCESSADOR INTEL 8080
Universidade do Estado de Santa Catarina – CCT/UDESC
Significante ou mantissa
Paradigmas da Programação
Sistemas de Numeração e linguagem dos computadores
Introdução a Programação JAVA
Introdução a Computação e Cálculo Numérico
Arrays em Java Revisão Assuntos Aulas Anteriores
Nivelamento.
Linguagem de Montagem.
Representações Avançadas em Binário
ORGANIZAÇÃO E ARQUITETURA DE COMPUTADORES I prof. Dr. César Augusto M. Marcon prof. Dr. Edson Ifarraguirre Moreno Qualificadores.
Manipulação de informação
Introdução a Linguagem de Programação C
PROGRAMAÇÃO I UNIDADE 2.
Arquitetura de computadores
ICC – 4.2. Aritmética Binária
Tipos de Dados Paradigmas de Programação
Numeração.
Aula de apoio aos feras: Arquitetura de Computadores e
Representação de dados
Pet computação UFPE Aula de apoio aos feras: Sistemas de Numeração.
Mini Curso Java como Programar
Sistemas Numéricos SISTEMA DECIMAL
Aritmética Computacional Operações Complexas
Sistemas de Numeração.
Aulas 2 e 3 – Java – Prof. Marcelo Heitor # O método main e argumentos na linha de comando; # Fluxo padrão de entrada e saída; # A classe JOptionPane;
Curso de Aprendizado Industrial Desenvolvedor WEB Disciplina: Programação Orientada a Objetos I Professora: Cheli Mendes Costa Tutorial de Utilização.
Representação de Números Inteiros
Representação de Dados
Operações Aritméticas no Sistema binário
Programação I Aula 3 (Entrada de Dados) Prof. Gilberto Irajá Müller Última atualização 11/3/2009.
Campus de Caraguatatuba Aula 9: Noções Básicas sobre Erros (3)
REPRESENTAÇÃO BINÁRIA E CONVERSÃO
8088 Assembly Software Básico Mitsuo Takaki.
FUNDAMENTOS DE COMPUTAÇÃO
Linguagem C - Funções Automação Industrial Informática Básica
Aula Prática 3 14/04/2010 Conversão de Tipos. Conversão de tipos Definição – Refere-se a processo de converter uma entidade de um tipo para outro. Tipos.
Aula Prática Programação em Ponto Flutuante Paulo Maciel.
LABORG Parte 4 – Programação em Linguagem de Montagem do MIPS
Universidade Federal de Uberlândia
Cálculo Numérico Conceitos Básicos
Algoritmos e Programação MC102 Prof. Paulo Miranda IC-UNICAMP Aula 2 Variáveis e Atribuições.
Métodos Numéricos Computacionais
Programação Computacional Aula 8: Entrada e Saída pelo Console Prof a. Madeleine Medrano
INTRODUÇÃO AOS MÉTODOS NUMÉRICOS Professor: Dr. Edwin B. Mitacc Meza
Tipos de Dados Todo o trabalho realizado por um computador é baseado na manipulação das informações contidas em sua memória. Estas informações podem.
UNDB ESTRUTURAS DE DADOS Prof. Alessandro Gonçalves
Organização e Arquitetura de Computadores A.L.Lapolli – Organização e Arquitetura de Computadores Objetivo: Objetivo: Realizar as quatro.
ARM – Movimentação de Dados
Construção de Via de dados Trabalho Avaliativo do Primeiro Bimestre. Marcos André de Sena Silva.
Disciplina: Circuitos Digitais Curso: Engenharia de Telecomunicações
STC 5 Professora Helena Oliveira Curso EFA AEOH Fábio Rodrigues Rafael Lourenço.
Transcrição da apresentação:

Arquitetura de Computadores I Ponto Flutuante - MIPS - -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Padronizar É simples trocar dados que incluem números em ponto flutuante; Simplifica os algoritmos de aritmética de ponto flutuante saber que os números sempre estarão nesta forma; Aumenta a precisão de números que podem ser armazenados em uma palavra, já que os 0’s desnecessários da frente são substituídos por números reais à direita do ponto decimal (,). -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Ponto Flutuante: Padronização IEEE 754 floatting point standard (-1)s x F x 2e Representação de float (precisão simples) Representação de double (precisão dupla) -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Padronização Representação de números negativos usando notação em excesso Notação “excesso”: N é o número de bits do valor em questão. Ex. 1111, N = 4 Para realizar uma conversão na representação “excesso”, fazer: 2^N-1 + número. Ex: convertendo 5, 2^3 + 5 = 1101 (1101 = +5). Convertendo -3, 2^3 + -3 = 1010 (1010 = -3). Polarização (ou bias) Bias é um caso especial da representação “excesso”, onde o “número mágico” é escolhido pelo usuário (ex. IEEE-754 float utiliza bias=127). -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Exercício 1) Mostre a representação em P.F. do número -0,75 (10) 2) Mostre a representação decimal deste número: 1-10000001-010000..... -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Resposta exercício 1 Convertendo para Binário o número;  devemos formatar o número;  remover o primeiro 1;  Aqui temos o expoente (1), e a parte significativa 0,1; Até aqui sabemos que: o bit de sinal é 1 e que a parte significativa é: 100000.... -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Resposta exercício 1 cont. Vamos calcular o expoente; Lembramos que Ex=Número-polarização; -1=Número-127; Número = 126; Número = 01111110; Resposta: -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Resposta Exercício 2 Como o bit de sinal é 1, sabemos que o número é negativo; Vamos pegar a parte significativa do número: 0,01; Vamos somar um (1) para respeitarmos a formatação: 1+0,25 = 1,25; Aqui nós temos a parte significativa do número: 1,25. -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Resposta do exercício 2 cont. Vamos ver o expoente, lembrando que Ex=Número-polarização; Ex=10000001-01111111; Ex=129-127; Ex=2; Agora vamos juntar os dados: -1,25x22 = -1,25x4 = -5; Resposta: -5 -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Coisas que devemos saber! Para programar com números com precisão de ponto flutuante, devemos usar o co-processador de ponto flutuante do MIPS; O co-processador possui seus próprios registradores (32), de 32 bits; Existem instruções específicas para números de precisão simples (32 bits) e para números de precisão dupla (64 bits). Quando trabalhamos com números de precisão dupla, ocupamos dois registradores; Para precisão dupla devemos sempre utilizar registradores de “índice” ($fn) par. -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo Float data msg1: .asciiz "Exemplo de uso de float no spim.\nEntre com um valor: " .text .globl main main: li $2, 4 # print string (syscall code 4) la $4, msg1 syscall -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa exemplo Float cont. li $2, 6 # read float (syscall code 6, returns #value read in $f0) syscall mov.s $f2, $f0 # $f2 = $f0 add.s $f2, $f2, $f0 -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa exemplo Float cont. li $2, 2 # print float (syscall code 2) mov.s $f12, $f2 # $f12 has value to be #printed syscall li $2, 10 # exit (syscall code 10) syscall -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo Double .data msg1: .asciiz "\n\nf = ( g + h ) - ( i + j )\n" msg2: .asciiz "\nEntre com o valor de g: \n" msg3: .asciiz "\nEntre com o valor de h: \n" msg4: .asciiz "\nEntre com o valor de i: \n" msg5: .asciiz "\nEntre com o valor de j: \n" msg6: .asciiz "\nO valor de f é: " .text .globl main -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo cont. main: li $2, 4 #service 4: print_str la $4, msg1 syscall la $4, msg2 li $2, 7 #service 7: read_double syscall #$2 receives input mov.d $f4, $f0 #$f4 receives value of variable g -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo cont. li $2, 4 la $4, msg3 syscall li $2, 7 mov.d $f6, $f0 #$f6 receives value of variable h la $4, msg4 -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo cont. li $2, 7 syscall mov.d $f8, $f0 #$f8 receives value of variable i li $2, 4 la $4, msg5 mov.d $f10, $f0 #$f10 receives value of variable j -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I

Programa Exemplo add.d $f20, $f4, $f6 add.d $f22, $f8, $f10 sub.d $f2, $f20, $f22 li $2, 4 la $4, msg6 syscall li $2, 3 #service 3: print_double mov.d $f12, $f2 li $2, 10 #service 10: exit -Breda, Bortoluzzi, Luz – Arquitetura de Computadores I