1
1
LEEC - 5º ano - 1º semestre
Aritmética em Vírgula Flutuante: Algoritmos e Arquitecturas
António José Araújo([email protected])
FEUP, Nov. 2004
http://www.fe.up.pt/~aja/PSD2004_05
Projecto de Sistemas Digitais
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
2
Introdução• A representação em VFL e a norma IEEE 754
– Porquê VFL? Precisão e gama de representação– Rigidez da norma: não contempla formatos de
representação específicamente concebidos para determinadas aplicações
• Dificuldades– Optimização de formatos VFL– Fluxo de projecto tradicional ao nível RTL não
contempla a síntese de operadores VFL– Arquitecturas específicas colocam novos desafios– Faltam metodologias capazes de proporcionarem
uma visão integrada das fases de projecto
2
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
3
Cálculo em VFL
• Operações aritméticas: +, −, ×, ÷– Representação: sinal, significando e expoente– Formato: dimensão ajustada às características da
aplicação
• Funções transcendentes: ex, cos x, etc.– Métodos de aproximação: polinómios, tabelas e
processos iterativos (p. ex. CORDIC)– Precisão dependente das necessidades da
aplicação
• Expressões matemáticas
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
4
Conceitos e definições
Sinal Expoente Significando
sinal expoente
Significando(“mantissa”)
Número de bits
A base β (2) não é representada
3
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
5
Representação normalizadaExemplo:
0,1010•2011 = 0,0101•2100 = 1,0100•2010
f=0100E=010
normalizado
Forma de representação em que o MSB do significando é 1
Vantagens:• Poupa-se 1 bit no significando• Coerência de representação• Facilita a comparação de números VFL (expoentes)
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
6
Representação do significando
unit in the last position
Em binário (β =2) f∈ [0,1[, ou seja, M∈ [1,2[... e o 0, como é representado?
• a parte fraccionária do significandoconfunde-se por vezes com o própriosignificando• m não inclui o 1 implícito
Hidden bit fracção
4
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
7
Representação do expoente
Representação em excesso:
Ke = grandeza do expoente real mais negativo (2e-1-1)(geralmente designa-se por bias)
Para números ordinários E∈ ]0, 2e-1[
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
8
Exemplo de representação
Com (e,m) = (4,3):
bias = 24-1-1=7
0 0010 000 = 1,000x2-5 = 0,03125
ulp = 2-3
0 1110 001 = 1,001x27 = 144
Emin=0001 (Ereal=-6)
Emax=1110 (Ereal=7)
Mmin=1,000
Mmax=1,111
5
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
9
Gama de representação
0
Underflowpositivo
Overflowpositivo
βEminMmin. Mmax βEmax.
Overflownegativo
Underflownegativo
βEminMmin.-Mmax βEmax.-
F- F+
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
10
Erro de representação
βE βE+1 βE+2
número realrepresentação em VFL
6
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
11
Erro relativo e precisão
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
12
Resultado das operações
7
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
13
Modos de arredondamento
N(x)Z(x)
∇ (x)
βE
x∆(x)
• no sentido de −∞: ∇ (x) é o > número representável ≤ x;• no sentido de +∞: ∆(x) é o < número representável ≥ x; • por truncamento: Ζ(x)=∇ (x) se x>0 ou Ζ(x)= ∆(x) se x<0; • para o par mais próximo: Ν(x) é o número representável mais
próximo de x; caso x esteja à mesma distância de dois valores representáveis, então é escolhido o que for par.
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
14
Norma IEEE 754: formatos
b23... ...
S E f
b22 b0b30b31
Formato simples: (e,m) = (8, 23)
b52... ...
S E f
b51 b0b62b63
Formato duplo: (e,m) = (11, 52)
Formatos estendidos:simples (e,m) = (≥11, ≥ 31)duplo (e,m) = (≥15, ≥ 63)
8
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
15
Norma IEEE 754: formatos
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
16
Norma IEEE 754: valores especiais
(NaN = Not A Number)
9
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
17
Norma IEEE 754: valores especiais
Para (e,m) = (4,3):
x 1111 xxxNaN
1 1111 000−∞
0 1111 000+∞
x 0000 0000
xxx ≠ 0
x = 0 ∨ 1
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
18
Norma IEEE 754: excepções
• Operação inválida: resultado=NaN se operando=NaN, +∞+(−∞), +∞−(+∞), 0×∞, 0÷0 ou ∞÷∞
• Divisão por zero (x÷0, com x≠0): resultado = +∞ se x>0 ou −∞ se x<0
• Overflow: resultado (+∞ ou −∞ ou maior/menor número representável) depende da forma de arredondamento
• Underflow: resultado (0 ou menor número representável) depende da forma de arredondamento
• Resultado inexacto: se ocorre overflow ou se o resultado de uma operação arredondado não é exacto
10
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
19
A norma IEEE 754 em aplicações específicas
• Considerações de representação– Hidden bit, significando e expoente, valores
especiais, excepções, formas de arredondamento– Formato interno alargado com bits auxiliares: G
(guard bit), R (round bit) e S (sticky bit)
• Formatos e realizações em hardware– Rigidez dos formatos não se adequa ao contexto
de aplicações específicas– Aspectos arquitecturais: simplificações possíveis
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
20
Adição/subtracção VFL
• Detecção de operandos com valores especiais; identificação do operando com maior valor absoluto (comparação dos expoentes e significandos); sinal do resultado igual ao sinal do operando com menor valor absoluto (idem para o expoente)
• Alinhamento do significando do operando com menor valor absoluto
• Adição dos significandos (subtracção se os operandos tiveremsinais diferentes)
• Normalização: shift right se M∈ [2, 4[ ou shift left se M∈ [0, 2[ (LOD ou LOP); ajuste do expoente; detecção de overflow e underflow
• Arredondamento e ajuste do expoente.
11
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
21
Adição/subtracção VFL
• Parâmetros característicos:– Formato dos operandos
(s,m,e)– Blocos opcionais (p. ex.
detecção de overflow e arredondamento)
• Blocos fundamentais:– Somadores/subtractores
VFX, barrel-shifters
V1'=max(V1, V2)=(S1', E1', f1')V2'=min(V1, V2)=(S2', E2', f2')
V1 S1 E1 f1 V2 S2 E2 f2
+/-
-
Alinhamento
NormalizaçãoAjuste doexpoente
ArredondamentoAjuste doexpoente
V S E f
S1' S2' E1' E2' f1'f2'
Detecção devalores especiais
Nível 1
Nível 2
Nível 3
Nível 4
Nível 5
add/sub
Estado
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
22
Adição VFL: exemplo
V1 = 24,046875 = 0 1000011 1000000011V2 = −25,40625 = 1 1000011 1001011010
Seja (e,m)=(7,10)
V1=1 1000011 1001011010V2=0 1000011 1000000011
Como E1= E2 e f2 > f1, após swap:
M = 1,f1 − 1,f2 = 0,0001010111
S = 1E = 1000011
Após normalização (significando deslocado 4 bits para a esquerda e o expoente subtraído de 4): M = 1,0101110000 e E = 0111111
V = 1 0111111 0101110000 = − 1,359375
Considerando
e V1 + V2 = V = [S,E,M]
12
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
23
Multiplicação VFL
• Detecção de operandos com valores especiais; sinal do resultado é o XOR dos sinais dos operandos
• Multiplicação dos significandos; adição dos expoentes e subtracção do bias Ke da representação do expoente (porquê?)
• Normalização: como M1, M2∈ [1, 2[ então M∈ [1, 4[, o que poderá implicar um shift right e o consequente incremento do expoente (deixando de ser necessário fazer LOD, simplificando a normalização face à mesma operaçãonecessária na adição); detecção de overflow e underflow
• Arredondamento e ajuste do expoente.
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
24
Multiplicação VFL
ArredondamentoAjuste doexpoente
Detecção devalores especiais
NormalizaçãoAjuste doexpoente
V S E f
+
Nível 4
Nível 3
Nível 2
Estado
V1 S1 E1 f1 V2 S2 E2 f2
+
Nível 1
13
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
25
Divisão VFL
• Detecção de operandos com valores especiais; sinal do resultado é o XOR dos sinais dos operandos
• Divisão dos significandos; subtracção dos expoentes e adiçãodo bias Ke da representação do expoente (porquê?)
• Normalização: como M1, M2∈ [1, 2[ então M∈ ]1/2, 2[, o que poderá implicar um shift left e o consequente decremento do expoente (deixando de ser necessário fazer LOD, simplificando a normalização face à mesma operação necessária na adição); detecção de overflow e underflow
• Arredondamento e ajuste do expoente.
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
26
Divisão VFL
ArredondamentoAjuste doexpoente
Detecção devalores especiais
NormalizaçãoAjuste doexpoente
V S E f
-
Nível 4
Nível 3
Nível 2
Estado
V1 S1 E1 f1 V2 S2 E2 f2
Nível 1
14
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
27
Resultados das operações VFL envolvendo valores especiais
x + y
x × y
x − y
x ÷ y
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
28
Aplicação: cálculo de uma função transcendente
Recursos principais: somador e multiplicador VFL
f(x)
=(...(cnx+cn-1)x+...+c1)x+c0
p(x)=cnxn+ cn-1xn-1 +...+ c1x1 + c0
+
cn-1
c0
c1
c2
. . .
+
cn
MUX
x
Rf(x)
s
Unidade decontrolo
rst
clkdone
e := e - 1 ce
aproximaçãopolinomial
regra de Horner
15
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
29
Uma metodologia de projecto para aplicações específicas
• Especificação e optimização– Identificação de formatos dos operandos a partir
das características numéricas da informação a processar
– Estimação do desempenho e custo de implementação
• Geração e síntese– Geração de descrições sintetizáveis– Interface com sistema de síntese
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
30
Fluxo de projecto para VFL
GeradoresOperadores
Geradores FunçõesTranscendentes
VHDL estruturalVHDL funcionalentity top_level is
.. .architecture structural of top_level is.. .begin O1 : A2 port map (...); ... O3 : M1 port map (...); ...
entity adder_A2 is.. .architecture behavioral of adder_A2 is.. .begin ...
entity multiplier_M1 is.. .architecture behavioral of multiplier_M1 is.. .begin ...
Bibliotecastecnologia alvoSíntese
HW
Estimadores decusto e tempo
Especificação funcionalda unidade de cálculo
Modelos funcionaisdos operadores
+ ex
x +O1
O3O2 O4
Cy f
AB
M1
E1x
M1
A1
A1
A2
A2
Grafo de fluxode dados
Modelo matemático eoptimização por PLI
Operadoresseleccionados
A1 : (c1,t1)A2 : (c2,t2)A3 : (c3,t3). . .
+,-
x
/
ex
cos x
M1 : (c1,t1)M2 : (c2,t2). . .
D1 : (c1,t1)D2 : (c2,t2). . .
E1 : (c1,t1)E2 : (c2,t2). . .
. . .
. . .
Restrições(custo, atraso)
Simulaçãofuncional
Espe
cifi
caçã
o e
opti
miz
ação
Geração
e síntese
16
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
31
Simulação funcional
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
32
Geradores de operadores sintetizáveis
• Problema:Elevado número de combinações das características de um operador dificulta a construção de uma biblioteca de operadores
• Solução:Aplicação que descreva numa HDL um operador VFL com características específicas, isto é, um gerador de operadores sintetizáveis
17
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
33
Geradores de código sintetizável
– Formatos de representação
– Características arquitecturais
Classes de parâmetros:
OperadoresVFL
Funçõeselementares
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
34
Optimizaçãoo1 o2
o3o4
Cy f
A
B
x 1035
10 10
10
15
15
Atraso do multiplicador tem uma folga = 30
Logo, pode ser usada uma implementação mais lenta com custo inferior
Caminho crítico: x, A, B, f
18
FEUP/DEEC - Projecto de Sistemas Digitais, 2004/05António José Araújo
35
Optimização• Objectivo:
Usar as folgas temporais dos operadores fora do caminho crítico para alcançar uma solução global de menor custo
• Modelo matemático PLI– Função objectivo: minimização do custo (área)– Resolução leva à solução que apresenta menor
custo de implementação mantendo as características dos operadores pertencentes ao caminho crítico
Top Related