06.07.2013 Views

Unités de calcul flottant - Lirmm

Unités de calcul flottant - Lirmm

Unités de calcul flottant - Lirmm

SHOW MORE
SHOW LESS

Create successful ePaper yourself

Turn your PDF publications into a flip-book with our unique Google optimized e-Paper software.

Objectifs <strong>de</strong> la norme IEEE-754<br />

• permettre <strong>de</strong> faire <strong>de</strong>s programmes portables<br />

• rendre les programmes déterministes d’une machine à une autre<br />

• conserver <strong>de</strong>s propriétés mathématiques<br />

• permettre/imposer l’arrondi correct<br />

• permettre/imposer <strong>de</strong>s conversions fiables<br />

• faciliter la construction <strong>de</strong> preuves<br />

• faciliter la gestion <strong>de</strong>s exceptions<br />

• faciliter les comparaisons (unicité <strong>de</strong> la représentation, sauf pour 0)<br />

• permettre un support pour l’arithmétique d’intervalle<br />

A. Tisserand – LIRMM, CNRS-UM2 – ARCHI07 – <strong>Unités</strong> <strong>de</strong> <strong>calcul</strong> <strong>flottant</strong> 29/144<br />

IEEE-754 : mantisse et fraction<br />

La mantisse (normalisée) du nombre <strong>flottant</strong> x est représentée par n + 1<br />

bits :<br />

où les xi sont <strong>de</strong>s bits.<br />

mx = 1 . x1 x2 x3 · · · xn−1 xn<br />

<br />

La partie fractionnaire <strong>de</strong> mx est appelée fraction (<strong>de</strong> n bits) : fx. On a<br />

alors :<br />

On a aussi :<br />

fx<br />

mx = 1 + fx<br />

1 ≤ mx < 2<br />

A. Tisserand – LIRMM, CNRS-UM2 – ARCHI07 – <strong>Unités</strong> <strong>de</strong> <strong>calcul</strong> <strong>flottant</strong> 31/144<br />

IEEE-754 : formats <strong>de</strong> base<br />

En base β = 2, la normalisation <strong>de</strong> la mantisse implique que le premier<br />

bit est toujours un “1” qui n’est pas stocké physiquement, on parle <strong>de</strong> 1<br />

implicite.<br />

63<br />

nombre <strong>de</strong> bits<br />

format total signe exposant mantisse<br />

double précision 64 1 11 52 + 1<br />

simple précision 32 1 8 23 + 1<br />

56<br />

48<br />

MSB position <strong>de</strong>s bits<br />

40<br />

32<br />

24<br />

double précision<br />

simple précision<br />

A. Tisserand – LIRMM, CNRS-UM2 – ARCHI07 – <strong>Unités</strong> <strong>de</strong> <strong>calcul</strong> <strong>flottant</strong> 30/144<br />

IEEE-754 : exposant<br />

L’exposant ex est un entier signé <strong>de</strong> k bits tel que :<br />

emin ≤ e ≤ emax<br />

Différentes représentations sont possibles : complément à 2, signe et<br />

magnitu<strong>de</strong>, biaisée. C’est la représentation biaisée qui est choisie.<br />

Ceci permet <strong>de</strong> faire les comparaisons entre <strong>flottant</strong>s dans l’ordre<br />

lexicographique (sauf pour le signe sx) et <strong>de</strong> représenter le nombre 0 avec<br />

ex = fx = 0.<br />

L’exposant stocké physiquement est l’exposant biaisé eb tel que :<br />

où b est le biais.<br />

eb = e + b<br />

A. Tisserand – LIRMM, CNRS-UM2 – ARCHI07 – <strong>Unités</strong> <strong>de</strong> <strong>calcul</strong> <strong>flottant</strong> 32/144<br />

16<br />

8<br />

0<br />

LSB

Hooray! Your file is uploaded and ready to be published.

Saved successfully!

Ooh no, something went wrong!