• Nenhum resultado encontrado

ARTHUR HENRIQUE COUTINHO MODELAGEM DE UMA UNIDADE DE SOMA PARA NÚMERO EM PONTO FLUTUANTE

N/A
N/A
Protected

Academic year: 2021

Share "ARTHUR HENRIQUE COUTINHO MODELAGEM DE UMA UNIDADE DE SOMA PARA NÚMERO EM PONTO FLUTUANTE"

Copied!
29
0
0

Texto

(1)

ARTHUR HENRIQUE COUTINHO

MODELAGEM DE UMA UNIDADE DE SOMA

PARA NÚMERO EM PONTO FLUTUANTE

LONDRINA–PR 2013

(2)
(3)

ARTHUR HENRIQUE COUTINHO

MODELAGEM DE UMA UNIDADE DE SOMA

PARA NÚMERO EM PONTO FLUTUANTE

Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel em Ciência da Computação.

Orientador: Prof. Dr. Wesley Attrot

LONDRINA–PR 2013

(4)

Arthur Henrique Coutinho

Modelagem de uma unidade de soma para número em ponto flutuante/ Arthur Henrique Coutinho. – Londrina–PR,

2013-27p. : il. (algumas color.) ; 30 cm. Orientador: Prof. Dr. Wesley Attrot

– Universidade Estadual de Londrina, 2013.

1. Ponto flutuante. 2. Palavra-chave2. I. Weslety Attrot. II. Universidade Estadual de Londrina. III. Faculdade de Ciência da Computação. IV. Título

(5)

ARTHUR HENRIQUE COUTINHO

MODELAGEM DE UMA UNIDADE DE SOMA

PARA NÚMERO EM PONTO FLUTUANTE

Trabalho de Conclusão de Curso apresentado ao curso de Bacharelado em Ciência da Com-putação da Universidade Estadual de Lon-drina para obtenção do título de Bacharel em Ciência da Computação.

BANCA EXAMINADORA

Prof. Dr. Wesley Attrot Universidade Estadual de Londrina

Orientador

Prof. Dr. Segundo Membro da Banca Universidade/Instituição do Segundo

Membro da Banca

Prof. Msc. Terceiro Membro da Banca Universidade/Instituição do Terceiro

Membro da Banca

Londrina–PR, 24 de novembrode 2013

LONDRINA–PR 2013

(6)
(7)

COUTINHO, A. H.. Modelagem de uma unidade de soma para número em ponto flutuante. 27 p. Trabalho de Conclusão de Curso (Graduação). Bacharelado em Ciência da Computação – Universidade Estadual de Londrina, 2013.

RESUMO

Este trabalho desvreve o funcionamento da soma entre números em ponto flutuante baseando-se no padrão IEEE 754. O circuito de uma unidade funcional para processadores de 32 bits foi modelado incluindo adaptações para correção de erros de arredondamento e adequação a um pipeline. A construção dessa unidade se dá em duas grandes etapas: apresentação e explicação de um modelo fiel ao do padrão IEEE 754 e seu aprimoramento para o pipeline. As duas versões são testadas usando-se a FPGA Xilinx Spartan-3A.

(8)
(9)

COUTINHO, A. H.. Modeling a sum unit to floating point number.27

p. Final Project (Undergraduation). Bachelor of Science in Computer Science – State University of Londrina, 2013.

ABSTRACT

This work discribes the sum between floating point numbers according to the IEEE 754 standard. A circuit of a functional unit for 32 bit processors was modeled including adaptations for rounding error correction e a pipeline adequation. The building process of this unit is given in two greate steps: presenting and explaning of a IEEE 754 faithful model and improving it to the pipeline. The two versions are tested in a FPGA Xilinx Spartan-3A.

(10)
(11)

LISTA DE ILUSTRAÇÕES

Figura 1 – Ilustração de um número em ponto flutuante representado em uma plavra de memória. O bit mais significativo é o primeiro à esquerda. Fonte [4]. . . 20

Figura 2 – Funções de arredondamento para dois números positivos 𝑥 e 𝑦 . . . 22

Figura 3 – Somador de ponto flutuante. Fonte: [4]. . . 23

Figura 4 – Representação de um somador conforme o paradigma de packet-forwarding. Fonte: [8] . . . 25

Figura 5 – Representação de um somador com caminho de dados duplicado. Fonte: [9] . . . 26

(12)
(13)

LISTA DE TABELAS

Tabela 1 – Tabela de números especiais e seus respectivos preenchimentos de cada campo no padrão 32 bits . . . 20

Tabela 2 – Direções de arredondamento dadas pela função sobre round bit e sticky

bit. O sinal − significa que o resultado será truncado. O sinal + significa

(14)
(15)

SUMÁRIO

Introdução . . . . 15

1 NÚMEROS REAIS E COMPUTADORES . . . . 17

1.1 História . . . 17

1.2 O padrão IEEE 754 . . . 19

1.3 A operação de soma . . . 22

2 Proposta e Trabalhos Relacionados . . . . 25

(16)
(17)

15

INTRODUÇÃO

Uma unidade de ponto flutuante com propósito geral em processadores de 32 bits é uma ferramenta aceleradora de aplicações algébricas, gráficas e espaciais atualmente bastante presente no mercado. Seu uso permite que operações entre números reais sejam feitas em uma quantidade de ciclos muito menor do que quando são feitas coordenadas por software em uma unidade lógico-aritmética de inteiros. Consequentemente, as com-plexidades de tempo e de espaço de um algoritmo podem ser imediatamente melhoradas, já que deixam de ser necessárias algumas condições, espaço temporário e operações de escrita na memória. Com isso, implementações em hardware muito específicas, como chips de processamento de sinais, tornam-se possíveis e viáveis a um menor custo de construção.

Viabilizar ou acompanhar o funcionamento de parte importante dessa unidade funcional, como a soma, acarreta um bom domínio das características citadas. O levanta-mento de dificuldades e técnicas de confecção de circuitos e microchips, de arredondalevanta-mento de números reais discretizados, e de concorrência de operações em hardware, bem como os fundamentos teóricos desses dados, são o foco da pesquisa descrita neste documento. Juntamente com o trabalho proposto será implementado uma unidade funcional para soma em FP a fim de trazer visualização prática dos conceitos levantados. O projeto, por abordar técnicas de otimização em hardware, visa estender conhecimentos da disciplina de Arquitetura e Organização de Computadores.

(18)
(19)

17

1 NÚMEROS REAIS E COMPUTADORES

1.1

HISTÓRIA

A computação, desde quando realizada por equipamentos eletromecânicos, instigou estu-dos de representação de números reais e de operações sobre eles em computadores. Em 1914 Leonardo Torres y Quevedo havia preparado uma especificação de máquina eletro-mecânica inspirada na Máquina Analítica de Babbage prevendo operações com números reais [1]. Konrad Zuse, um pioneiro da computação, foi responsável em 1941 pela cri-ação do computador Z3, a primeira máquina automática e programável de cálculos, e preocupou-se em incluir tal funcionalidade [1].

O Z3 funcionava com uma representação em ponto flutuante de base dois para números reais, previa resultados correspondentes a valores infinitos e indeterminados. Além disso possuía um campo de significandos com 14 bits, um campo de expoente de 7 bits e um campo de 1 bit para sinal. No entanto, a preocupação com esse tipo de operação era incomum à época, visto que a programação permite se abstrair cálculos complexos.

O suporte a ponto flutuante passou a ser mais presente em equipamentos a partir da década de 1960. Já com a invenção do circuito integrado, nesse período, minicom-putadores, calculadoras financeiras e mainframes atendiam uma pequena demanda de mercado. Essa demanda estava nos usos de grandes escritórios corporativos ou em pes-quisas científicas de universidades e institutos. A realidade da computação era dada por, muitas vezes, imediata obsolescência de programas a cada modelo de computador disponi-bilizado pelos fabricantes. A programação com ponto flutuante refletia essa característica, podendo não apenas ser dependente de imposições do fabricante, mas se comportar de forma inadequada em processadores mais antigos ou mais novos [1].

Alguns processadores desse período funcionavam com base 8 para ponto flutuante. O PDP-10, da fabricante DEC, os Burroughs 570 e 6700 são exemplos. Já o IBM 360 usava base 16. Atualmente, a maioria extensiva das calculadoras usa base 10 em sua representação interna de ponto flutuante [1].

Esse quadro indica que a escolha da base durante o projeto interferia em fato-res competitivos. Os fabricantes promoviam seus produtos conforme sua velocidade, em detrimento de sua acurária, assim como também ocorria o contrário [2]. Porém, a na-tureza do ponto flutuante persistia em cada produto, tendo os fabricantes que encarar um grupo compartilhado de problemas. Esses problemas estavam relacionados com as exceções elaboradas pelos projetistas.

(20)

trata-18 Capítulo 1. NÚMEROS REAIS E COMPUTADORES

dos como não-zero em comparações, mas como zero em divisões e multiplicações. Uma boa prática era multiplicar o operando por 1.0 antes de torná-lo um divisor. Entretanto, em outros computadores essa multiplicação poderia ocasionar uma exceção de overflow. Dividir números muito pequenos por eles mesmos poderia resultar em overflow. Alguns computadores poderiam destruir dígitos de precisão durante a multiplicação por 1.0. Ope-rações do tipo 𝑥 − 𝑦 poderiam resultar em 0 mesmo que 𝑥 e 𝑦 fossem diferentes e, em alguns casos, fossem valores altos ([2]).

Programadores dessa época adquiriam hábitos de depuração que, muitas vezes, poderiam diminuir performance. Um exemplo de prática comum era o acréscimo atribui-ções do tipo 𝑥 = (𝑥 + 𝑥) − 𝑥 em pontos críticos do código após a obtenção de algum resultado inesperado durante testes. ([2])

Até então, manter portáteis os softwares numéricos possuía um alto custo com o qual apenas grandes corporações e governos, como AT&T e o Pentágono, arcavam. A própria imobilidade e custo dos grandes mainframes filtrava interessados em portabilidade de código. Quando microprocessadores começaram a proliferar na década de 1970, realizar aritmética de ponto flutuante de forma confiável e previsível em diferentes computadores tornou-se uma preocupação entre mais pessoas ([2]).

Os microprocessadores à época evoluíam rapidamente e já havia sido publicada a análise de Gordon Earle Moore (fundador da Intel) conhecida como “Lei de Moore” ([2]). Ela afirma que os custos de circuitos integrados mantém-se constantes ao passo que sua capacidade de processamento dobra em 18 meses. Em 1976, a Intel projetava um coprocessador (processador auxiliar à CPU) para seu microprocessador 8086 (de 8 bits). O dispositivo, denominado 8087, deveria fazer cálculos de ponto flutuante usando uma aritmética superior às dos chips concorrentes. Prevendo que novos modelos de processador poderiam surgir rapidamente (já era planejado a nova CPU 8088, de 16 bits), o gerente do projeto, Dr. John Palmer, procurou o professor William Kahan como consultor na elabo-ração de uma nova especificação de aritmética. William Kahan era um dos pesquisadores que apontavam o crescente custo e dificuldade na manutenção de softwares numéricos, além de já ter experiência em projetos comerciais bem-sucedidos.

Coprocessadores tanto aritméticos quanto para outras finalidades já existiam, po-rém eram produtos recentes. Diversas empresas interessadas em amadurecer seus projetos, foram atraídas pelas reuniões do IEEE p754. A fim de acabar com a anarquia na pro-gramação em ponto flutuante, esse grupo se formou sob a organização do Dr. Robert Stewart apoiado pela IEEE. As reuniões, iniciadas em 1977, promoviam reuniões focadas em estabelecer um padrão de aritmética possível de ser seguido por todos os projetistas de microchip. Este padrão veio a ser o IEEE 754-1985.

(21)

1.2. O padrão IEEE 754 19

1.2

O PADRÃO IEEE 754

Para o conjunto dos reais a decomposição de um número pode ser dada pela notação científica. Nessa representação, um item fracionário e uma potência de 10 multi-plicados traduzem explicitamente a ordem de grandeza e a granularidade do valor:

𝑓 𝑟𝑎𝑐 × 10𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒 (1.1)

A fração deve ser normalizada como um significando e, portanto, engloba um sinal (positivo ou negativo), um dígito de unidade e dígitos decimais em quantidade indefinida. A potência de dez exige uma base e um expoente dado por um número inteiro. Avaliando cada componente, nota-se que a quantidade não contável de valores advém das quanti-dades ilimitadas de dígitos fracionários para o significando e de dígitos unitários para o expoente, sendo o produto cartesiano entre os dois conjuntos um conjunto infinito [3]. Li-mitando as duas quantidades, limita-se a quantidade de elementos no produto cartesiano [3].

Ao obter um subconjunto discreto dos reais, consegue-se um conjunto de números em ponto flutuante determinado pela precisão (quantidade de dígitos da fração) e pelo alcance (expoentes máximo e mínimo) do formato de seus elementos. Um número binário em FP é, portanto, representado pela tripla (sinal, expoente, significando) denominada sinal-magnitude [4] e seu valor é inferido a partir de

(−1)𝑠𝑖𝑛𝑎𝑙 × 𝑏𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒× 𝑠𝑖𝑔𝑛𝑖𝑓 𝑖𝑐𝑎𝑛𝑑𝑜 (1.2)

onde b é a base numérica constante sobre a qual funcionam as computações [5]. Em um ambiente binário, essa constante é obrigatoriamente fixada em dois.

Como as únicas configurações possíveis para cada bit são zero ou um, o padrão torna implícito que o dígito correspondente à unidade do significando seja sempre um, passando-se a considerar apenas os dígitos fracionários. Esses dígitos formam o campo denominado mantissa [4] e o cálculo do elemento representado pode ser visualizado como

(−1)𝑠𝑖𝑛𝑎𝑙 × 𝑏𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒× (1 + 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑎) (1.3)

Conforme o padrão IEEE 754, há dois formatos de número em FP: precisão única (single precision), que usa 32 bits ou uma palavra de memória, e precisão dupla (double

precision), que usa 64 bits ou duas palavras de memória. A precisão única, ilustrada na

(22)

20 Capítulo 1. NÚMEROS REAIS E COMPUTADORES

Figura 1 – Ilustração de um número em ponto flutuante representado em uma plavra de memória. O bit mais significativo é o primeiro à esquerda. Fonte [4].

precisão dupla também é dedicado 1 bit para o sinal, porém 11 bits ao expoente e 52 bits à mantissa.

A fim de reaproveitar hardware de comparação de inteiros, comum a diferentes arquiteturas, o padrão IEEE 754 também determina um ajuste fixado ao expoente para que seu menor valor possível seja representado com dígitos zero. Assim os bits do expoente tornam-se efetivos em serem mais significativos que os bits fracionários durante a compa-ração inteira. Para que a compacompa-ração inteira continue sendo possível, o expoente precisa ser armazenado como um “complemento de dois” [4]. Essa notação ajustada denomina-se

biased notation e faz com que o valor do número representado seja determinado por

(−1)𝑠𝑖𝑛𝑎𝑙 × 2𝑐𝑎𝑚𝑝𝑜𝑒𝑥𝑝𝑜𝑒𝑛𝑡𝑒−𝑏𝑖𝑎𝑠× (1 + 𝑚𝑎𝑛𝑡𝑖𝑠𝑠𝑎). (1.4)

O valor bias é a constante necessária para transformar o menor expoente possível no inteiro zero através de uma soma. Em precisão única a constante bias é 127 e em precisão dupla ela é 1023 [5].

Há valores especiais reservados para aritmética de máquina. A Tabela 1 indica suas representações.

Objeto representado Sinal Expoente Fração

+∞ 1 255 0

−∞ 0 255 0

NaN 1 ou 0 255 não-zero

Tabela 1 – Tabela de números especiais e seus respectivos preenchimentos de cada campo no padrão 32 bits

Os valores +∞ e −∞ satisfazem os casos em que um limite existe e é relevante para a computação. Nas comparações ele é submetido à regra −∞ <qualquer número <+∞ e as operações aritméticas mantém o fechamento existente em R. O item NaN (Not a Number) é um valor não numérico resultante majoritariamente de cálculos indevidos. O formato IEEE 754 dá espaço para diagnóstico de ocorrência na própria representação de um NaN [5].

(23)

1.2. O padrão IEEE 754 21

∙ Operação inválida: pelo menos um dos operandos é inválido para a operação. O resultado será NaN.

∙ Divisão por zero (DivideByZero): lançada quando operandos finitos resultam um valor infinito.

∙ Overflow: se o valor resultante para o campo de expoente for maior do que o expoente máximo suportado, essa exceção será lançada.

∙ Underflow: se o valor resultante para o campo de expoente for menor do que o expoente mínimo suportado, essa exceção será lançada. O padrão IEEE 754 não especifica se o Underflow ocorre antes ou após o arredondamento do resultado das operações, ficando a critério do projetista. Uma conclusão a ser inferida na ocor-rência dessa exceção pode ser que o resultado seja muito pequeno comparado à acurácia do processador. Assim, o programador pode diferenciar entre um número zero aproximado e um zero exato (não sinalizado).

∙ Resultado inexato (inexact): Essa é uma exceção típica do arredondamento. Sua flag é levantada para que o programador possa saber se o resultado de uma operação é exato ou não.

Na soma em FP algumas exceções nunca ocorrerão (como a divisão por zero) ou ocorrerão sob condições específicas [6]. Porém as exceções overflow, underflow, e resultado inexato podem ocorrer comumente devido à possibilidade de resultados com expoentes positivos ou negativos muito grandes (em módulo). Resultados inexatos decorrem de arredondamentos [5].

Um resultado de operação em ponto flutuante pode não caber na representação utilizada. Diante disso, surge a necessidade de arredondamento. O IEEE 754 oferece quatro maneiras de se arredondar um resultado obtido. O modo de arredondamento é um estado do circuito e ao mesmo tempo um sinal a ser propagado. O comportamento assumido transformará o resultado em um número finito ou infinito. Os quatro modos especificados são:

∙ Arredondamento para −∞: dado pela função 𝑅𝐷(𝑥), é o maior número em ponto flutuante inferior ou igual a 𝑥 (pode ser −∞).

∙ Arredondamento para +∞: dado pela função 𝑅𝑈 (𝑥), é o menor número em ponto flutuante superior ou igual a 𝑥 (pode ser +∞).

∙ Arredondamento para zero: dado pela função 𝑅𝑍(𝑥), é o número em ponto flutuante mais próximo de 𝑥 tal que seu módulo não exceda o módulo de 𝑥.

(24)

22 Capítulo 1. NÚMEROS REAIS E COMPUTADORES

Figura 2 – Funções de arredondamento para dois números positivos 𝑥 e 𝑦

Fonte: [1]

Supondo que uma operação de ponto flutuante seja realizada e armazenada tempo-rariamente com uma precisão infinita. Dado um significando composto de dígitos 1.𝑚1𝑚2𝑚3...,

a direção de seu arredondamento pode ser dada por uma função entre os bits 𝑟𝑜𝑢𝑛𝑑 = 𝑚𝑝

(round bit), tal que 𝑝 é o maior índice de precisão do significando, e 𝑠𝑡𝑖𝑐𝑘𝑦 = 𝑚𝑝+1𝑚𝑝+1∨ ... (sticky bit). A tabela Table 2 explicita essa função.

Tabela 2 – Direções de arredondamento dadas pela função sobre round bit e sticky bit. O sinal − significa que o resultado será truncado. O sinal + significa que o resultado será acrescido do valor 2−𝑝+1

round / sticky RD RU RN 0 / 0 − − − 0 / 1 − + − 1 / 0 − + − / + 1 / 1 − + + Fonte: [1]

Para as quatro operações aritméticas básicas (adição, subtração, multiplicação e divisão) e raiz quadrada, esses quatro modos de arredondamento são suficientes para que sejam evitados problemas.

1.3

A OPERAÇÃO DE SOMA

Assim como na soma de inteiros, o hardware de soma em ponto flutuante realiza também a subtração [4]. Da mesma forma, é usado o bit mais significativo (most signifi-cative bit - MSB) para indicar a operação. O procedimento não será um simples cálculo e armazenamento em “complemento de dois”. É necessário realizar diferentes operações em cada campo dos dois operandos e, ao final do processo, agrupar os três campos do

(25)

1.3. A operação de soma 23

resultado e normalizar a disposição dos bits, com shifts à direita ou à esquerda, para que seja mantido o bit implícito do significando 1.𝑚1𝑚2𝑚3....

A soma básica em ponto flutuante consiste de quatro passos principais [4] [7].

O primeiro passo é a equivalência de expoentes, onde se elege o operando com o menor valor desse campo para decréscimo de seu significando. Nesse passo, a cada incremento iterativo do expoente a mantissa sofre uma divisão pelo valor da base numérica utilizada. Na representação binária, onde a base é dois, uma operação de shift na direção menos significativa dos bits atende essa divisão. A iteração ocorre até que os expoentes sejam iguais. As exceções de underflow, overflow e de inexatidão podem ser sinalizadas nessa etapa.

Em seguida, no segundo passo, a soma dos significandos é realizada como uma soma de inteiros e, então, armazenada. O terceiro passo normaliza o resultado para que o significando tenha seu bit implícito de unidade ativado, novamente podendo sinalizar

underflow, overflow e inexatidão. O quarto e último passo aplica algum método de

arre-dondamento caso a mantissa final exceda a quantidade de bits determinada pelo formato.

(26)
(27)

25

2 PROPOSTA E TRABALHOS RELACIONADOS

Em [8] projetou-se a realização paralela da soma através de um paradigma de re-presentação binária denominado packet-forwarding. Esse paradigma permite que se con-sigam baixas latências de hardware ao não prosseguir em passos da soma tradicional. A economia de passos é determinada por funções combinacionais de trechos redundantes dos operandos. Um número redundante é um número representado por mais bits do que o ne-cessário. Através do paradigma packet-forwarding, uma sequência de bits participante do número original é recodificada para uso na operação. Um novo formato de representação é necessário, onde todos os campos do IEEE 754 são mantidos, porém um é acrescentado: o carry-round packet. Devido a essa nova representação, previsões de campos resultantes podem ser feitas a um baixo custo. Ao final, no passo de arredondamento, trechos dos campos são efetivamente somados.

Entretanto, a dificuldade de se utilizar uma nova representação de ponto flutuante leva a escolhas mais clássicas de paralelização. Em [9] uma unidade de soma em ponto flutuante foi projetada para que duas operações fossem realizadas simultaneamente. Para isso, são construídos dois caminhos de dados diferentes, por onde cada par de operan-dos passa, desde que as operações não sejam dependentes. Um operan-dos caminhos, chamado

(28)

26 Capítulo 2. Proposta e Trabalhos Relacionados

Figura 5 – Representação de um somador com caminho de dados duplicado. Fonte: [9]

CLOSE, serve para somas em que a diferença entre expoentes seja 1 ou 0. O segundo

caminho, denominado FAR de dados dedica-se a somas com diferença de expoentes maior do que 1. Os mesmos blocos somadores são aproveitados, porém outros blocos são dupli-cados. Isso é uma desvantagem do circuito, que ocupa cerca de 20% mais espaço do que uma unidade convencional.

Neste trabalho será construído um circuito que recebe dois operandos de 32 bits em ponto flutuante e realiza a sua soma conforme o padrão IEEE 754. Isso implica na construção de blocos de arredondamento e de emissão de exceções. O circuito será, em seguida adaptado para o funcionamento em um pipeline. A técnica usada será baseada no segundo trabalho, exposto em [9]. A motivação dessa escolha é a menor dificuldade de se adaptar o circuito existente e a não necessidade de se usar um formato novo de representação.

(29)

27

REFERÊNCIAS

1 MULLER, J. M. et al. Handbook of Floating-Point Arithmetic. 1st. ed. [S.l.]: Springer, 2009.

2 SEVERANCE, C. An Interview with the Old Man of Floating-Point. 1998. Disponível em: <http://www.cs.berkeley.edu/˜wkahan/ieee754status/754story.html>. Acesso em: 5.8.2013.

3 GERSTING, J. L. Mathematical Structures for Computer Science. 3rd. ed. [S.l.]: W. H. Freeman and Company, 1993.

4 PATTERSON, D. A.; HENNESSY, J. L. Computer Organization and Design. 3rd. ed. [S.l.]: Elsevier, 2005.

5 IEEE Standard for Floating-Point Arithmetic. IEEE Std 754-2008, p. 1–58, 2008.

6 BRUGUERA, J.; LANG, T. Floating-point fused multiply-add: reduced latency for floating-point addition. In: Computer Arithmetic, 2005. ARITH-17 2005. 17th IEEE

Symposium on. [S.l.: s.n.], 2005. p. 42–51. ISSN 1063-6889.

7 WANG, L.-K. et al. Hardware designs for decimal floating-point addition and related operations. Computers, IEEE Transactions on, v. 58, n. 3, p. 322–335, 2009. ISSN 0018-9340.

8 NIELSEN, A. et al. An ieee compliant floating-point adder that conforms with the pipeline packet-forwarding paradigm. Computers, IEEE Transactions on, v. 49, n. 1, p. 33–47, 2000. ISSN 0018-9340.

9 AMARICAI, A. et al. Exploiting parallelism in double path adders’ structure for increased throughput of floating point addition. In: Digital System Design Architectures,

Methods and Tools, 2007. DSD 2007. 10th Euromicro Conference on. [S.l.: s.n.], 2007. p.

Referências

Documentos relacionados

Os resultados deste estudo mostram que entre os grupos pesquisados de diferentes faixas etárias não há diferenças nos envoltórios lineares normalizados das três porções do

Podem treinar tropas (fornecidas pelo cliente) ou levá-las para combate. Geralmente, organizam-se de forma ad-hoc, que respondem a solicitações de Estados; 2)

O Auxílio Financeiro para Par cipação em Eventos é a subvenção financeira em até um salário mínimo no valor vigente, concedida aos estudantes para apoiar a par cipação estudan

As abraçadeiras tipo TUCHO SIMPLES INOX , foram desenvolvidas para aplicações que necessitam alto torque de aperto e condições severas de temperatura, permitin- do assim,

* Para os alunos da área de concentração em Biologia Celular e Saúde Toxicologia Geral é obrigatória para quem optar pela grade nova e optativa para quem optar pela antiga.

Com intuito, de oferecer os gestores informações precisas atualizadas e pré-formatas sobre os custos que auxiliem nas tomadas de decisões corretas, nos diversos

O valor da reputação dos pseudônimos é igual a 0,8 devido aos fal- sos positivos do mecanismo auxiliar, que acabam por fazer com que a reputação mesmo dos usuários que enviam

ensino superior como um todo e para o curso específico; desenho do projeto: a identidade da educação a distância; equipe profissional multidisciplinar;comunicação/interatividade