operações de ponto flutuante para o femtojava alunos: felipe zschornack - [email protected]...

19
Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack @ inf . ufrgs . br Bruno Silveira Neves - bsneves @ inf . ufrgs .br Arquitetura e Projeto de Sistemas VLSI I Professores: Flávio Rech Wagner Marcelo Johann

Upload: internet

Post on 17-Apr-2015

111 views

Category:

Documents


2 download

TRANSCRIPT

Page 1: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

Alunos: Felipe Zschornack - [email protected]

Bruno Silveira Neves - [email protected]

Arquitetura e Projeto de Sistemas VLSI I

Professores: Flávio Rech WagnerMarcelo Johann

Page 2: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

2

Motivação

FemtoJava Implementa parte das instruções da JVM

(Java Virtual Machine) Executa bytecodes Java nativamente Voltado para aplicações embarcadas Diversas Versões (Low Power, Low Power

com Forwarding, etc) Operações aritméticas inteiras (8 e 16

bits)

Page 3: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

3

Introdução

Computadores lidam com formatos numéricos de ponto fixo e ponto flutuante

1985: Uso do padrão IEEE 754 aumenta a portabilidade dos programas que

trabalham com números nesse formato melhorar a qualidade das operações aritméticas

realizadas

Page 4: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

4

Números em FP (IEEE 754)

Sinal: 1 bit (bit 31) Expoente: 8 bits (bits 30 à 23) Mantissa: 23 bits (bits 22 à 0)

Representação Geral:

(-1)sinal x mantissa x 2expoente

Page 5: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

5

Números em FP (IEEE 754)

Forma Normalizada: número não possui dígito não significativo na

representação contém 24 bits e não 23 (primeiro dígito

sempre 1 e implícito) aumenta a precisão dos números

Representação:

(-1)sinal x (1 + mantissa) x 2expoente

Page 6: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

6

Números em FP (IEEE 754)

Expoente em notação com peso Peso = número a ser subtraído do valor

representado no expoente de maneira a representar o valor real do expoente

Valor = 12710

Facilidade para ordenações a partir de comparações inteiras

Nova Representação:

(-1)sinal x (1 + mantissa) x 2(expoente – peso)

Page 7: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

7

Representações Numéricas eCasos Especiais (IEEE 754)

e = expoente + peso

e = 255, mantissa <> 0 v = NaN e = 255, mantissa = 0 v = (-1)s e = 0, mantissa <> 0 v = desnormalizado e = 0, mantissa = 0 v = (-1)sx(zero) 0 < e < 255 v = (-1)sx(1.mantissa)x2(e-peso)

Page 8: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

8

Estrutura Geral

Page 9: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

9

Visão Interna da FPU

Page 10: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

10

FPU_SUM

Page 11: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

11

FPU_PRENORM_AS

Page 12: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

12

FPU_POSNORM_AS

Page 13: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

13

FPU_MULT

Page 14: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

14

FPU_POSNORM_MD

Page 15: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

15

Estágio Alcançado

Módulos de soma, subtração e multiplicação implementados

Verificação parcial da validade dos resultados de operação (mais testes) 2710 células lógicas 100 pinos I/O

Page 16: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

16

Trabalhos Futuros Validação dos módulos implementados, e do sistema como um todo,

de maneira mais exaustiva; Melhoramento no processo de arredondamento (atualmente

somente é realizado o truncamento do número); Detecção de ocorrência de overflow/underflow sobre os resultados

das operações realizadas; Implementação de um módulo para divisão em ponto flutuante, o

qual ainda não foi iniciado; Definição de um divisor em ponto fixo (a ser utilizado no divisor de

ponto flutuante); Melhoramento no algoritmo de multiplicação inteira (fator crítico) Verificação da ocorrência de casos especiais Incorporação dos módulos à arquitetura do FemtoJava

Page 17: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

17

Aspectos Positivos

Visão mais abrangente da linguagem e suas potencialidades

Melhor compreensão de conceitos relacionados a projeto de hardware

Maior conhecimento sobre a arquitetura do FemtoJava e da aritmética FP

Troca de experiências com os demais colegasReusabilidade e adaptabilidade de

componentes previamente desenvolvidos

Page 18: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

18

Dificuldades Encontradas

Inexperiência em relação ao uso da linguagem VHDL e com o paradigma de projeto de hardware

Inexperiência em relação as ferramentas utilizadas (Quartus II e Max-Plus II)

Pouca prática no uso dos conceitos relacionados com o desenvolvimento de sistemas digitais

Falta de uma compreensão inicial mais aprofundada do domínio do problema

Page 19: Operações de Ponto Flutuante para o FemtoJava Alunos: Felipe Zschornack - fzschornack@inf.ufrgs.br fzschornack@inf.ufrgs.br Bruno Silveira Neves - bsneves@inf.ufrgs.br

Operações de Ponto Flutuante para o FemtoJava

19

Bibliografia[ASH 98] ASHENDEN, Peter J.. The Designer's Guide to VHDL. San Francisco:

Morgan Kaufmann, 1998.[CAR 01] CARRO, Luigi. Projeto e Prototipação de Sistemas Digitais. Porto Alegre:

Ed. Universidade/UFRGS, 2001.[ERC 00] ERCEGOVAC, Milos. Introdução aos Sistemas Digitais. Porto Alegre:

Bookman, 2000.[HEN 00] HENNESSY, John L.. Organização e projeto e computadores: a interface

hardware/software. 2 ed.. Rio de Janeiro: LTC, 2000.[IDO 81] IDOETA, Ivan V.. Elementos de Eletrônica Digital. 3 ed.. São Paulo: Érica,

1981.[IEE 85] Institute of Electrical and Electronics Engineers. IEEE Standard for Binary

Floating-Point Arithmetic (IEEE Std 754-1985). New York: IEEE, 1985.

[ITO 99] ITO, Sergio Akira. Estudo de requisitos de hardware para a plataforma java : trabalho individual. Porto Alegre: CPGCC da UFRGS, 1999.

[ITO 00] ITO, Sergio A.. Projeto de Aplicações Específicas com Microcontroladores Java Dedicados. Porto Alegre: 2000.

[USS 03] USSELMAN, Rudolf. Documentation for Floating Point Unit Project.