Académique Documents
Professionnel Documents
Culture Documents
2/76
Partie 1
Exemple de codage :
Introduction
= 33 60 + 24 = 2004 Syst`me de position en base sur n chires (pour des entiers naturels) : e
n1
x = xn1xn2 x1x0 =
xi i
i=0
3/76
4/76
Illustration de la table de multie a plication par 25 trouve ` Suse et date du IIe millnaire av. J.-C e e (conserve au Muse du Louvre). e e Remarque : seuls les produits par (1), 2, 3, 4, 5, 6, 7, 8, 9, 10, 11, 12, 13, 14, 15, 16, 17, 18, 19, 20, 30, 40, 50 sont ncessaires sur les e 59 possibles.
x5
x1
Les colonnes reprsentent les units, les dizaines, les centaines, les mile e liers,. . . de la droite vers la gauche Les boules sont actives lorsquelles sont au plus proche de la barre du e e e e e milieu, et dsactives sinon (0 est donc reprsent ci-dessus) Les boules situes au dessus de la barre horizontale du milieu sont e multiplies par 5 (celles de dessous par 1). e
5/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 6/76
tat de dpart
tat 1
+1
La premi`re illustration connue dun boulier chinois dans un livre date de 1175. e Il existe des dispositifs proches (tablettes avec des rainures sur lesquelles on dplace des petits cailloux) depuis bien plus longtemps. e Il existe des concours de rapidit de calcul sur des bouliers. Le japonais Yoshio e Kogima a eectu correctement 50 divisions, avec des oprandes de 5 ` 7 e e a chires, en 1 min 18 s et 4 centi`mes sur un boulier japonais (soroban) ! e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 7/76
tat 2
+1
+3
tat 3
+1
+3
+6
tat 4
+1
+3
+6
+2
tat 5
8/76
Exemples de sujets de recherche dans lquipe/projet Arnaire : e e biblioth`que de fonctions lmentaires avec arrondi correct e ee biblioth`que darithmtique dintervalle en multi-prcision e e e oprateurs de cryptographie pour circuits FPGA e biblioth`que pour le support ottant dans les processeurs entiers e units ottantes et logarithmiques pour circuits FPGA e
oprateurs arithmtiques matriels ` basse consommation dnergie e e e a e arithmtique corps nis pour biblioth`que dalg`bre linaire e e e e preuves automatiques doprations arithmtiques e e
12/76
Syst`me logarithmique e
Un nombre est reprsent par son signe et le logarithme de sa valeur absolue e e crit en virgule xe (le nombre 0 doit tre reprsent par un codage spcial). e e e e e Les oprations dans ce syst`me seectuent en utilisant : e e log2(a b) = log2 a + log2 b log2(a b) = log2 a log2 b log2(a ) = q log2 a
q
log2 blog2 a
Ajout de nouvelles fonctionnalits de calcul, exemple : FMA (fused e multiply and add), oprateurs de cryptographie, units graphiques e e Sujets de recherche actuels sur les oprateurs arithmtiques matriels : e e e nouvelles fonctionnalits e basse consommation dnergie e oprateurs recongurables e oprateurs pour la cryptographie/signature e ...
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 14/76
o` les fonctions log2(1 + 2x) et log2(1 2x) sont tabules ou approches. u e e Applications en traitement du signal et en contrle numrique. Il y avait mme o e e un projet europen pour concevoir un processeur avec des units de calcul 32 e e bits en syst`me logarithmique. e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 13/76
50 u(n) 0 50 100 0 5 10 n 15 20
un programme C
2.000000000000000 -4.000000000000000 18.500000000000000 9.378377914428711 7.801147460937500 7.154346466064453 6.805830478668213 6.578579425811768 6.235515594482422
n
9 10 11 12 13 14 15 16 17
un programme C
2.913589954376221 -111.709793090820312 111.898239135742188 100.661544799804688 100.040603637695312 100.002494812011719 100.000152587890625 100.000007629394531 100.000000000000000
Rsolution numrique par la mthode de Runge-Kutta dordre 4 (et 100000 e e e points) sur un PentiumIV :
f (x) f (1) f (2) f (3) f (4) f (5) f (6)
15/76
est
est
Cause : probl`me dans la lecture des nombres entiers (integer parsing) : petits e entiers avec un format du processeur et grands entiers avec un format interne, erreur dans le mode de slection du format. e Source : http://maple.bug-list.org/
17/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 18/76
Comportement corrig : e
> 1001!/1000! ,1002!/1000! ,1002!/1001! ,1003!/1000! ,1003!/1001! ,1003!/1002!;
1 0 0 1 , 1 0 0 3 0 0 2 , 1 0 0 2 , 1 0 0 6 0 1 1 0 0 6 , 1 0 0 5 0 0 6 , 1003
Il y a une erreur dans le code de la fonction factorielle de la version 7 de Maple (il y des correctifs possibles pour cette version). Source : Maple User Group Answers (http://www-math.math.rwth-aachen.de/MapleAnswers/)
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 19/76
20/76
pour n = 50.
Sur un ordinateur IBM 370, on a : prcision e simple double tendue e valeur calcule e 1.172603 1.1726039400531 1.172603940053178
Mais ces rsultats tr`s proches sont totalement faux ! La bonne valeur est e e -0.82739605994682136814116. . .
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 21/76
xnexdx nxn1(ex)dx
0 1
xn1exdx
0
Rponse : en passant de In1 ` In, lerreur numrique (accumulation des e a e erreurs de reprsentation et des premiers calculs) est multiplie par n. Lerreur e e numrique sur lvaluation de In croit donc comme n!. e e
Rq : 50! = 30414093201713378043612608166064768844377641568960512000000000000
f (x)g (x)dx
23/76
24/76
Digital Arithmetic Milos Ercegovac et Tomas Lang 2003 Morgan Kaufmann ISBN : 1558607986 Arithmtique des ordinateurs e JeanMichel Muller 1989 Masson ISBN : 2225816891
Ip = 12345.0 12345 205.7561313 3.493627301 0.06657770245 0.007622055151 0.006705383863 0.006810633182 0.006938705081 0.007072040495 0.007210605417 0.007354706796
26/76
Autres rfrences ee
Livre de G. Guitel : Histoire compare des numrations crites, Flammae e e rion, 1975 Livre de G. Ifrah : Histoire universelle des chires, Robert Lafond, 1994 Livre collectif : Calcul et arithmtique des ordinateurs (Trait IC2), Hermes e e Sciences, 2004 (` para a tre) Livre collectif : Qualit des Calculs sur Ordinateur, Masson, 1997 e Numro spcial collectif de la revue Rseaux et syst`mes rpartis, calcue e e e e lateurs parall`les sur larithmtique des ordinateurs, Hermes, 2001 e e Document de Jean Vuillemin : Les Langages Numriques, e
http://www.di.ens.fr/~jv/HomePage/pdf/langnum.pdf
http://www.ee.ryerson.ca:8080/~elf/abacus/history.html
27/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 28/76
Reprsentation ottante e
Un nombre x est reprsent en virgule ottante de base par : e e son signe sx (codage sur un bit : 0 pour x positif et 1 pour x ngatif) e son exposant ex, un entier de k chires compris entre emin et emax sa mantisse mx de n + 1 chires tels que x = (1)sx mx ex avec mx = x 0 . x 1 x 2 x 3 x n
Probl`mes historiques e Reprsentation des nombres e Comportement des oprations e Proprits des nombres ottants ee Probl`mes de prcision e e Exemples
o` xi {0, 1, . . . , 1}. u
Pour des questions de prcision, on exige que la mantisse soit normalise, ceste e `-dire que son premier chire x0 soit dirent de 0. On a alors mx [1, [. Il a e e faut alors un codage spcial pour le nombre 0.
29/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 30/76
Sur certaines machines CDC et Cray on avait : x+y =y+x 0.5 x = x/2.0 Avec a, comment crire des programmes numriquement corrects de faon c e e c simple ? A lpoque, les constructeurs ne sintressent quaux formats de stockage des e e donnes et pas beaucoup aux proprits mathmatiques des units de calcul. . . e ee e e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 32/76
Probl`me : il ntait pas possible de faire raisonnablement des programmes et e e des biblioth`ques numriques portables ! e e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 31/76
permettre de faire des programmes portables Cette norme xe : les formats des donnes e les valeurs spciales e les modes darrondi la prcision des oprations de base e e les r`gles de conversion e En fait, il y a deux normes1 : ANSI/IEEE Standard for Binary Floating-Point Arithmetic en 1985 ANSI/IEEE Standard for Radix-Independent Floating-Point Arithmetic en 1987 (o` = 2 ou 10) u
1
rendre les programmes dterministes dune machine ` une autre e a conserver des proprits mathmatiques ee e permettre/imposer larrondi correct faciliter la construction de preuves faciliter la gestion des exceptions
faciliter les comparaisons (unicit de la reprsentation, sauf pour 0) e e permettre un support pour larithmtique dintervalle e
ANSI : American National Standards Institute, IEEE : Institute of Electrical and Electronics Engineers
33/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 34/76
o` les xi sont des bits. u La partie fractionnaire de mx est appele fraction (de n bits) : fx. On a alors : e mx = 1 + f x
simple prcision
On a aussi :
63 MSB 56 48 40 32 position des bits 24 16 8 0 LSB
1 mx < 2
35/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 36/76
IEEE-754 : exposant
Lexposant ex est un entier sign de k bits tel que : e emin e emax Direntes reprsentations sont possibles : complment ` 2, signe et magnitude, e e e a e biaise. Cest la reprsentation biaise qui est choisie. e e Ceci permet de faire les comparaisons entre ottants dans lordre lexicographique (sauf pour le signe sx) et de reprsenter le nombre 0 avec ex = fx = 0. e Lexposant stock physiquement est lexposant biais eb tel que : e e eb = e + b o` b est le biais. u
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 37/76
machine
biais
1
00000001
2
00000010
non biais
38/76
IEEE-754 : zro e
Le nombre zro est cod en mettant tous les bits de lexposant et de la fraction e e ` 0 dans le mot machine. Le bit de signe encore libre permet davoir deux a reprsentations direntes du nombre zro : 0 et +0. e e e Le fait que zro soit sign est cohrent avec le fait quil y ait deux innis e e e distincts. On a alors : 1 = + +0 et 1 = 0
Not a Number : NaN Permet de reprsenter le rsultat dune opration invalide telle que 0/0, e e e 1 ou 0 . NaN est cod en utilisant le plus grand exposant possible e et une fraction non-nulle. Les NaN se propagent dans les calculs. e = emax + 1 et fx = 0 En simple prcision, on a donc : e 1 11111111 00000000000000000000000 + 0 11111111 00000000000000000000000 NaN 0 11111111 00000000000000000000100
La norme impose que le test 0 = +0 retourne la valeur vrai. En simple prcision, on a donc : e 0 +0 1 00000000 00000000000000000000000 0 00000000 00000000000000000000000
39/76
(par exemple)
40/76
0 avec
e min
e min
+1
0.000
0.001
0.010
dnormaliss
0.011
0.100
0.101
0.110
0.111
1.000
1.001
1.010
1.011
1.100
1.101
1.110
1.111
1.000
modes darrondi
vers +inf
vers inf
au plus prs
Proprit darrondi correct : soient a et b deux nombres machine, ee une des oprations (+, , , ) et le mode darrondi choisi (parmi les 4 modes IEEE). e Le rsultat fourni lors du calcul de (a b) doit tre (a th b). e e Le rsultat retourn doit tre celui obtenu par un calcul avec une prcision e e e e innie, puis arrondi. On a la mme exigence pour la racine-carre. e e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 43/76
1.001
b , b ) ;
44/76
IEEE-754 : conversions
Les conversions normalises sont : e ottant vers entier entier vers ottant ottant vers entier stock dans un ottant e entre ottants de dirents formats e entre formats binaire et dcimal e Proprits des doubles conversions imposes par la norme : ee e binaire x dcimal x(10) binaire x(2) : e on retrouve le nombre initial, cest-`-dire x = x(2), si x(10) a au moins 9 a chires dcimaux pour x en simple prcision (17 en DP) e e dcimal y binaire y(2) dcimal y(10) : e e on retrouve le nombre initial, cest-`-dire y = y(10), si y a au plus 6 a chires dcimaux et que y(2) en simple prcision est converti en y(10) avec e e 6 chires dcimaux (15 en DP) e
45/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 46/76
... a
1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1 1
up up up up
= = = = = = = =
2 . 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e+00 0 128( 1) 0 0 128( 1) 1.00000000000000000000000 0 x40000000 1 . 9 9 9 9 9 9 8 8 0 7 9 0 7 1 0 4 4 9 2 1 8 7 5 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 0 e+00 0 127( 0) 8388607 0 127( 0) 1.11111111111111111111111 0x3fffffff
IEEE-754 : comparaisons
La norme impose que lopration de comparaison soit exacte et ne gr`e pas e ee de dpassement de capacit. e e Les comparaisons normalises sont : e galit e e suprieur e infrieur e non-ordonn e Lors de ces comparaisons le signe de zro nest pas pris en compte. e Dans le cas de comparaisons impliquant un NaN, la comparaison retourne faux. Sauf dans le cas de lgalit : si x = NaN alors x = x retourne faux2 et x = x e e retourne vrai.
2
taille exposant 11 15 15 15
en virgule ottante (e sur k bits et m sur n + 1 bits), on a : Df lottant mmax 2emax (2 21n) 22 1 = = mmin 2emin (21n) 22k1+2
k1
Dans les formats tendus, il ny a pas de bit implicite pour la mantisse, il doit e tre stock dans le mot machine. e e
IEEE-754 : rsum e e
normaliss e dnormaliss e e zro (sign) e e innis Not a Number format simple prcision e double prcision e valeur + grand normalis > 0 e + petit normalis > 0 e + grand dnormalis > 0 e e + petit dnormalis > 0 e e exposant emin e emax e = emin 1 e = emin 1 e = emax + 1 e = emax + 1 # bits total 32 64 k 8 11 fraction f 0 f >0 f =0 f =0 f >0 n 23 52 valeur (1.f ) 2e (0.f ) 2emin 0 NaN emax 127 1023 b 127 1023
inf
+inf 10
1.01
14 12 10 8 7 6 5 4 3 2 1 0 1 2 3 4 5 6 7 8
1.10 1.01 1.00 1.00 1.11
2 1 0 1
12
1.10
14
1.11
+inf 0 1 2
1.00
3
1.10 1.01 e=2
4
1.00 1.11
5
1.01 e=1
6
1.10
7
1.11
10
12
14
e=0
simple prcision e 3.40282347 1038 1.17549435 1038 1.17549421 1038 1.40129846 1045
double prcision e 1.7976931348623157 10308 2.2250738585072014 10308 2.2250738585072009 10308 4.9406564584124654 10324
51/76
0
0.00 0.01 0.10 0.11
0.5
1.00 1.01 1.10 1.11
1
1.00
1.25
1.01
1.5
1.10
1.75
1.11
2
1.00
0.0625
0.125
0.1875
0.3125
0.375
0.4375
0.25
0.5
0.625
0.75
0.875
52/76
Question histoire
53/76
54/76
Le Z3 : architecture et caractristiques e
Memory
address (lamps) (keyboard)
8
data
Output
Input
22
5.33 Hertz
Control Unit
instr. data
Clock generator
22
5 m 2 m 0.8 m 1000 kg 5.33 Hz lectrique ` relais (num. : 600, mm. : 1400) e a e 4000 W
processeur 32 bits coprocesseur arithmtique intgr e e e commercialisation en 1989 frquences : 50, 33 et 25 MHz e nombres de transistors : 1 200 000 technologie : CMOS 0.8 ou 1.0 m surface : 81 mm2 alimentation : 5 V boitier : 168 PGA pipeline : 5 tages e cache L1 : 8 KB (4w SA, WT) UAL : 1
unit flottante
pile de registres
CTRL
bus de donnes
57/76
58/76
14
13
12
11
10
N16 ou Z16
s
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15
1Q15
s
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
s
0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16
8Q16
2
7
39 MSB
32
24
16
0 LSB
23 MSB 16 position des bits 8 0 LSB
61/76
62/76
x 1 = x 0.5 x = x
x1 = x
2 x = x x = 2x
( x) 0 si ( 0) = 0
x0
64/76
0.1
0.01
0.001
0.0001
1e05 10 100 1000 10000 100000 1e+06 nombre de rectangles 1e+07 1e+08
e Si a est la valeur exacte, alors a reprsente a avec un 1 bit faux (et pas 8). 9 9 En eet, |a a | = 2 , o` 2 est le poids du dernier bit de a. u
65/76 A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 66/76
Phnom`ne dabsorption e e
Se produit lors de laddition de deux nombres ayant des ordres de grandeur tr`s dirents o` lon peut perdre le plus petit. e e u
... a b
partie entire
partie fractionnaire
2 1 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
... a
1 1 0 0 1 0 0 1 0 0 0 0 1 1 1 1 1 0 0 0 1 0 1 1
(ab)
1 1 1 1 0 1 1 0 1 1 0 0 0 0 0 0 0 0 0 0 0 0 0 0
Lopration (a b) est exacte car les oprandes sont supposs exactes. Mais e e e si les oprandes sont elles-mmes des rsultats de calculs avec des erreurs e e e darrondi, les 0 ajouts ` droite (partie rouge fonc) sont faux. La cancellation e a e est dite catastrophique quand il ny a presque plus de chires signicatifs.
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 67/76
On parle mme dabsorption catastrophique dans certains cas. Exemple : en e simple prcision, avec a = 230 et b = 230 on a alors : e a b = 230
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e
et donc
(a b)
a=0
68/76
modle
erreurs de mesure
erreurs de modlisation
` A notre niveau, on peut seulement travailler pour proposer des algorithmes numriques avec de plus petites erreurs de mthode et des implantations e e logicielles qui ma trisent mieux les probl`mes darrondi. e
En pratique, pour obtenir de bons rsultats, il faut concevoir des algorithmes e en prenant en compte d`s le dbut les erreurs darrondi. e e
70/76
Le 4 juin 1996, lors de son premier vol, la fuse europenne Ariane 5 explose 30 e e secondes apr`s son dcollage causant la perte de la fuse et de son chargement e e e estim ` 500 M$. ea
Apr`s deux semaines denqute, un probl`me est trouv dans le syst`me de e e e e e rfrence inertiel. La vitesse horizontale de la fuse par rapport au sol tait ee e e calcule sur des ottants 64 bits. Dans le programme du calculateur de bord, il e y avait une conversion de cette valeur ottante 64 bits vers un entier sign 16 e bits. Malheureusement, rien ntait fait pour tester que cette conversion tait e e bien possible mathmatiquement (sans dpassement de capacit). . . e e e
71/76
72/76
a=4
10
12
14
tests eectus e ((a + 1.0) a) 1.0 = ((2.0) a) 1.0 = (1.0) 1.0 = 0 ((a + 1.0) a) 1.0 = ((3.0) a) 1.0 = (1.0) 1.0 = 0 ((a + 1.0) a) 1.0 = ((5.0) a) 1.0 = (1.0) 1.0 = 0 ((a + 1.0) a) 1.0 = (( 8.0 ) a) 1.0 = (0.0) 1.0 = 1.0
round(9)
Fin
Questions ?
a/2
...
a2 a1
a+1 a+2
...
a+b
a+b
premi`re boucle : recherche de a reprsentable tel que a + 1 ne soit pas e e reprsentable e deuxi`me boucle : recherche de b reprsentable tel que a + b soit e e reprsentable e le rsultat est b = la base interne de lunit ottante e e
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 75/76
Pour me contacter : arnaud.tisserand@ens-lyon.fr http://perso.ens-lyon.fr/arnaud.tisserand/ Laboratoire LIP. ENS Lyon. 46 alle dItalie. F-69364 Lyon cedex 07. e
Merci.
A. Tisserand INRIA LIP Arnaire Arithmtique des ordinateurs e e 76/76
ai2i
i=0
Annexes
a i 2i
i=0
A1
A2
1111 1110 1101 1100 1011 1010 1001 0000 0001 0010 0011 0100 0101 0110 0111
A3
A4