/
Chapitre 11 Chapitre 11

Chapitre 11 - PowerPoint Presentation

marina-yarberry
marina-yarberry . @marina-yarberry
Follow
403 views
Uploaded On 2016-11-25

Chapitre 11 - PPT Presentation

Les nombres à virgule flottante 1 Représentation Il existe un nombre fini dentiers dans lintervalle Il y a cependant une infinité de nombres réels dans le même intervalle Comment représenter une infinité de ID: 493093

est pr

Share:

Link:

Embed:

Download Presentation from below link

Download Presentation The PPT/PDF document "Chapitre 11" is the property of its rightful owner. Permission is granted to download and print the materials on this web site for personal, non-commercial use only, and to display it on your personal computer provided you do not modify the materials and that you retain all copyright notices contained in the materials. By downloading content from our website, you accept the terms of this agreement.


Presentation Transcript

Slide1

Chapitre 11

Les nombres à virgule flottante

1Slide2

Représentation

Il existe un nombre fini

d’entiers dans

l’intervalle

Il y a cependant une infinité de nombres réels dans le même intervalleComment représenter une infinité de nombres?On approxime la plupart des nombres réels de l’intervalleCette approximation doit permettreUne bonne approximation des nombres réels non représentablesD’exprimer de très grands nombres réelsD’exprimer de très petits nombres réels

 

2Slide3

Représentation

Les points flottants

Une mantisse (

)

Une base ()Un exposant (

)

Un ensemble F de nombres virgule flottante s’exprime

est la base

est le nombre de symboles de la mantisse () est l’exposant minimal est l’exposant maximal

 

3

 Slide4

F=(B, l, m, M)

Nombre virgule flottante normalisé

Nombre pour lequel

La normalisation permet de mieux estimer la précision

 

4

est non normalisé

 

est normalisé  

 Slide5

F=(B, l, m, M)

Valeur absolue du plus petit nombre

Valeur absolue du plus grand nombre

 

5

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=

=Slide6

F=(B, l, m, M)

Précision

relative

Un nombre à virgule flottante est une approximation d’un réel

Il y a nécessairement perte de précisionIl y a une erreur lors du calcul, versus le même calcul avec des réelsL’estimation de la précision relative est Cardinalité 

6

 

Autant de négatifs que de positifs

On compte le nombre zéroB-1 possibilité pour le premier chiffre de la mantisse

B possibilités pour chacun des l-1 autres chiffres

Valeurs possibles pour l’exposantSlide7

F=(B, l, m, M)

Exemple

:

F=(2, 3, 1, 2)

Distance entre deux éléments, dans un intervalle de puissance de 2 voisines7

3

2

1

0

-1

-2

-3Slide8

Représentation interne

Exemple

:

F=(10, 5, 9, 9)

8

Signe de la mantisse

Signe de l’exposant

Exposant (0 à 9)

Mantisse

 

 

 

 Slide9

Représentation interne

Exemple

:

F=(10, 5, 9, 9)

9

Signe de la mantisse

Exposant biaisé(00 à 99)

Mantisse

 

 

 

 

On ajoute un biais de 50 à l’exposantSlide10

Norme IEEE754

S’appuie sur la représentation précédente

Exposant biaisé (sur 8 bits)

0 et 255 sont des valeurs réservées254 valeurs possibles  le biais est donc de 127

 

10

Précision

TailleSigneExposant biaiséMantisseSimple32 bits1 bit8 bits23 bitsDouble64 bits1 bit11 bits52 bitsQuadruple128 bits1 bit15 bits112 bits

S

Exposant

Mantisse

0

22

23

30

31

s

e

fSlide11

Norme IEEE754

Valeur d’un nombre normalisé

Si

est 0, le -1 disparait, sinon, il reste

Le nombre est normalisé, il commence toujours par 1

Inutile de le représenterLa mantisse est seulement les chiffres après la virgule

 

11

 Slide12

Norme IEEE754

Valeur d’un nombre non normalisé (

e=0

)

Le nombre n’est plus normalisé, il ne commence donc plus nécessairement par 1On ne peut plus le cacher12

 

devient

 

 

(

bf

devient la nouvelle mantisse)

 Slide13

Norme IEEE754

Représentation de

0

Représentation de l’

infiniLe bit de signe indique si c’est

Obtenu, entre autres, lors d’une division par 0

 

13Slide14

Norme IEEE754

Représentation de

NaN

(

Not a Number)Si le premier bit de la mantisse est1 Provoque une erreur d’exécution0 Ne provoque pas d’erreur, la valeur est propagéeObtenu lors d’opération comme

 

14Slide15

Norme IEEE754

Valeur minimale et maximale

Nombres normalisés

Nombres non normalisés

15

=

0

11111110 11…11= 0 00000001 00…00

=

0

11111110 11…11

= 0 00000001 00…00

=

0

00000000 11…11

= 0 00000000 00…01

=

0

00000000 11…11

= 0 00000000 00…01Slide16

Unité virgule flottante

Possède

32 registres simple précision

F0

à F3132 registres double précisionF0, F2, …, F6216 registres de quadruple précisionF0, F4, …, F60Tous les registres sont globaux et accessibles en tout tempsIls ne font partie d’aucune fenêtre de registres16Slide17

Unité virgule flottante

Un registre FSR (64 bits)

17

Nom

BitsDescription38:63réservé

fcc336:37codes de condition

fcc2

34:35

codes de conditionfcc132:33codes de conditionRD30:31direction de l’arrondi28:29réservéTEM23:27erreurs détectablesNS22représentation non standard20:21réservéver17:19version de l’unitéftt14:16cause de l’exception

qne13interruptions logiques en attente

12réservé

fcc010:11codes de conditionaexc5:9exceptions accumulées

cexc

0:4

instruction ayant causé une

exceptionSlide18

Unité virgule flottante

Un registre FSR (64 bits)

Le champ d’intérêt est le

fcc0

(bits 10 et 11)18

1er opérande = 2

ème

opérande

1er opérande < 2e opérande1er opérande > 2e opérandeopérande non comparables (Nan)

1

er opérande = 2

ème opérande1er opérande < 2e

opérande

1

er

opérande > 2

e

opérande

opérande non comparables (Nan)Slide19

Instructions

On peut aussi charger des valeurs de la mémoire dans les registres virgule flottante

En fait, on ne peut pas copier directement la valeur d’un registre R vers un registre F!

On passe par la mémoire

19ld

Charge une valeur simple précision

ldd

Charge une valeur double précision

ldqCharge une valeur quadruple précisionstStocke une valeur simple précisionstdStocke une valeur double précisionstqStocke une valeur quadruple précision

ld

[%l1+%l2], %f3Slide20

Instructions

Les instructions arithmétiques sont légèrement modifiées pour prendre en charge les virgules flottantes

Voir annexe C.14 du manuel pour la liste complète

On peut aussi faire des branchements sur les codes condition de l’unité virgule flottante

On ajoute un « f » devant les instructions normales de branchement« bne » devient « fbne »20Slide21

Instructions

Il peut aussi être pratique de changer le format d’une valeur

Par exemple, si la valeur « 48 » est en mémoire, et qu’on veut la multiplier par la valeur « 1,465 »

Il faut transformer la valeur « 48 » d’un entier à un nombre virgule flottante

21

 

i

entier

s simple précision

d

 double précision

q quadruple précision

fitos

%f0, %f1Slide22

Instructions

Pour déclarer des données en virgule flottante

22

.

align

4

s:

.skip 4

.align 8d:.skip 8

.

align

4s:

.single 0r12.34

.

align

8

d:

.double 0r56.78

.

align

16

q:

.quad 0r90.12