0% ont trouvé ce document utile (0 vote)
687 vues23 pages

Chapitre 2 - Virgule Fixe Ou Virgule Flottante

Transféré par

khalid.ennaji
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd
0% ont trouvé ce document utile (0 vote)
687 vues23 pages

Chapitre 2 - Virgule Fixe Ou Virgule Flottante

Transféré par

khalid.ennaji
Copyright
© © All Rights Reserved
Nous prenons très au sérieux les droits relatifs au contenu. Si vous pensez qu’il s’agit de votre contenu, signalez une atteinte au droit d’auteur ici.
Formats disponibles
Téléchargez aux formats PDF, TXT ou lisez en ligne sur Scribd

ECOLE NATIONALE DES

SCIENCES APPLIQUÉES DE
TETOUAN

DSP: DIGITAL SIGNAL


PROCESSOR
---- GSTR2 ----
Pr. Fouad AYTOUNA
2019-2020
Chapitre 2
- Virgule fixe et virgule flottante-

2
Virgule fixe ou flottante
• Les DSP ont besoin de nombres représentant le monde réel :
réels/fractions
• Les DSP ont besoin de nombre pour les adresses : Entiers
• Les valeurs traitées (coefficients, échantillons. . . ) sont
représentées sous 2 formes :
• Dans un processeur (calculateur), un nombre est toujours
écrit sous forme d’un bloc de n bits (considère comme un
entier N), pour représenter les nombres fractionnaires il
est nécessaire de définir la position de la virgule : pour ce
faire, il existe deux méthodes.
– La représentation en virgule fixe.
– La représentation en virgule flottante 3
Représentation des nombres : Nombres entiers positifs

• Les nombres sont représentés en binaire sur n bits : n


= nombre d’unités mémoires (n = 8,16,32,64,...)

• On peut représenter des nombres allant de 0 a 2n - 1

4
Représentation des nombres : Binaire entiers signés
• Traditionnellement on met un signe " - " pour représenter les nombres
négatifs. Mais les systèmes logiques ne permettent de présenter qu’un
des deux symboles " 0 " et "1 ", il faut chercher une convention pour
remplacer le "- " .
• Représentation module et signe :

• Problème : on a ici deux représentations différentes pour le zéro :


’00...0’ et ’10...0’.
5
Représentation en complément restreint (CR) ou complément à 1(C1)

• -A = 𝐴:ҧ pour prendre l’inverse d’un nombre, il suffit de le


complémenter (inversion de tous ses bits). Comme dans le
cas précèdent, la nature du premier bit donnera le signe : 0
 + et 1  -.
• Exemple de notation en complément à 1:
1 0 1 1 0 1 nombre binaire initial
0 1 0 0 1 0 complément de chaque bit pour obtenir le
complément à 1 Complément à 1 de N : C1(N) = not(N)

• Avec 4 bits, on a : +5 = 0101 et -5 = 1010.


Problème :De nouveau, on a deux représentations
différentes pour le zéro (0000 et 1111)
6
Représentation en complément vrai (CV) ou complément à 2 (C2)

• C’est la représentation la plus utilisée.


• Un entier signé est un entier pouvant être négatif. Il faut donc coder
le nombre de telle façon que l’on puisse savoir s’il s’agit d’un nombre
positif ou d’un nombre négatif, et il faut de plus que les règles
d’addition soient conservées. L’astuce consiste à utiliser un codage
que l’on appelle complément à deux.
• Exemple de notation en complément à 2 sur 5 bits:
x = +2 = 00010 => C1(x) = 11101(complément à 1)
+1 (ajouter 1) => 11110 (complément à 2 du chiffre +2 sur 5 bits)
• C’est la représentation la plus utilisée. Le bit le plus à
gauche est encore le bit de signe :0  + et 1  -.
• -A = A¯ + 1 : est appelé complément à 2
7
Représentation en complément vrai (CV) ou complément à 2 (C2)

• Exemple 1:
• On veut coder -5 sur 8 bits, il suffit d’´écrire :
5 = 0000 0101
C1(5)= 1111 1010
• C2(5) = C1(5) + 1 = 1111 1011= -5

• Le bit de poids fort (MSB) = 1, il s’agit bien d’un


nombre négatif

8
Représentation en complément vrai (CV) ou complément à 2 (C2)

• Exemple 2
On veut coder 1100011 sur 7 bits en décimal signé:
• Le premier bit est à 1, donc le nombre est negatif.
• On procède de la meme manière, c-à-dire, on prend le
complément à 2.
C1(1100011) = 0011100
C2(1100011)= C1(1100011)+1=0011101
• D’où 0011101=29
• Le bit de poids fort (MSB) = 1, il s’agit bien d’un nombre
négatif .
1100011= -29
9
Représentation en complément vrai (CV) ou complément à 2 (C2)

• Pour passer d’une valeur négative à une valeur


positive, on applique aussi le complément à 2.

• Une seule représentation pour le zéro.

• Avec des mots de n éléments binaires, on obtient 2n


valeurs différentes, de 0 à 2n-1 - 1 pour les valeurs
positives, et de -1 à -2n-1 pour les valeurs négatives ;
• Exemple: n = 8 (mots de 8 bits) alors
si (nb > 0) de 0 à127 et si (nb<0) de -1 à -128
10
Représentation des nombres réels dans un calculateur

• Dans un calculateur, un nombre est toujours écrit


sous forme d’un bloc de n éléments binaires
(considéré comme un entier N).
• Pour représenter les nombres fractionnaires il est
nécessaire de définir la position de la virgule.
• Pour ce faire, il existe deux méthodes :

 La représentation en virgule fixe,


 La représentation en virgule flottante.

11
Conversion réel décimal en binaire
• Exemple : Conversion de 12,6875 en binaire
• Conversion de 12 : donne (1100)2
• Conversion de 0,6875 :

Figure 4: Conversion réel décimal en binaire


• (12,6875)10 = (1100,1011)2 Binaire rationnels
• Exemple : de binaire au décimal
(101,101)2 = 1.22 + 0.21 + 1.20 + 1.2-1 + 0.2-2 + 1.2-3 = 4 + 1 +
0,5 + 0,125 = 5,625 )10 12
Virgule fixe ou flottante
• Un point essentiel des DSP est la représentation des
nombres (les données) qu’ils peuvent manipuler. Il est
possible de distinguer deux familles :

• Les DSP à virgule fixe : nombres sont représentés sous


format des Entiers ou fractionnaires.

• Les DSP à virgule flottante : Dans les DSP à virgule


flottante, l’arithmétique à point fixe et flottante peuvent être
supportés par ce DSP. avec DSP à virgule flottante C6713, il
permet une grande dynamique (grand intervalle des nombres
peuvent être représentés) par rapport au DSP de virgule fixe.
13
Virgule fixe ou flottante

Figure 5: Représentation des nombres réguliers dans les DSP

14
Représentation en virgule fixe
• Format courant : 16/24 bits.
• Idéal avec CAN/CNA 12/14 bits
• Applications : Contrôle industriel, communications,
instrumentation, parole, médical, militaire. . .

15
Représentation en virgule fixe

16
Codage binaire des réel à virgule flottante
• On sait qu’un nombre à virgule flottante peut être représenté
sous plusieurs formats équivalents, alors il est important d’avoir
une seule représentation standard à utiliser ="format
standard".
• Très utilisé par tous les processeurs/coprocesseurs arithmétique
actuels.
• Objectif : Faciliter la portabilité du programme d’un processeur à
un autre.
• Généralement, on dit qu’un nombre binaire est normalisé si le
nombre à gauche de la virgule est égale à 1, c-à-d = 1,….x2n.
• Exemple : 101,1 => 1,011x22 = version normalisée
• Par contre 0,10101.23 c’est une version non-normalisée.
17
Codage binaire des réel à virgule flottante
• Il s’agit de représenter un nombre binaire à virgule (par exemple
101,01 qui ne se lit pas « cent un virgule zéro un » puisque c’est un
nombre binaire mais 5,25 en décimale) sous la forme 1,XXXXX... * 2n
(c’est-à-dire dans notre exemple 1,0101*22).
• La norme IEEE754 définit la façon de coder un nombre réel.
Cette norme se propose de coder le nombre sur 32 bits et définit trois
composantes :
• Le signe est représenté par un seul bit, le bit de poids fort (celui le
plus à gauche),
• l’exposant est codé sur les 8 bits consécutifs au signe*,
• la mantisse (les bits situés après la virgule) sur les 23 bits restants.

18
Codage binaire des réel à virgule flottante
• Du moment que les nombres réels peuvent prendre des valeurs très
grandes ou très petites, ils sont représentés en virgule flottante selon le
format IEEE normalisé.

• Il existe deux formats pour les nombres a virgule flottante : Format 32


bits et 64 bits

• Ainsi le codage se fait sous la forme suivante :


seeeeeeeemmmmmmmmmmmmmmmmmmmmmmm
– le s représente le bit relatif au signe,
– les e représentent les bits relatifs à l’exposant,
– les m représentent les bits relatifs à la mantisse.

19
Codage binaire des réel à virgule flottante
Soit à représenter le nombre A=8.25 sous format IEEE 32 bits:
• Conversion décimale binairede 8,25)10=1000,01)2
• On écrit le nombre obtenu sous la forme : 1,……..2m
1000,01)2=1,00001x23
 Le bit de signe (bit 31) indique le signe du nombre 1 (-) ; 0  (+)
 L’exposant est codé sur 8 bits (bits 23 à 30). Il est égal à m+127
 La mantisse s’écrit sur 23 bits (bits à 22). Elle représente la suite des
bits après la virgule (dans notre cas 00001)
Ainsi, le format IEEE du nombre 8,25)10 est :

0 10000010 00001000000000000000000

20
Représentation d’un réel selon la norme IEEE754
Exemple : Codage de 8,625 sous la norme IEEE 754

• 8.625 = 8 + 0.625 , avec 810 = 10002


0.625 *2 = 1.250 = 1 + 0.250
0.250 * 2 = 0.5 = 0 + 0.5
0.5*2 = 1 = 1+0
d’ou : 0.625 = 0.1012
d’ou le résultat final : 8.62510 = 1000,1012
sous format normalisé : 8.625 = 1,000101.23

Exposant biaisé à 127 = 3 + 127 = 13010 = 100000102


d’ou la représentation sous format IEEE 754 :

0 10000010 000101000000000000000000
21
Représentation d’un réel selon la norme IEEE754
La norme IEEE 754 définit la façon de coder un
nombre réel.

• Il s’agit de représenter un nombre binaire à virgule


flottante (ex :101,01) sous la forme 1,xxx.2n, cad
101,01 => 1,0101.22

• Format simple précision sur 32 bits : x = (s):E:M


avec s=0 (nbr.positif), s=1 (nbr.négatif), E : Exposant
codé sur 8 bits et M :Mantisse codé sur 23 bits.
22
FIN

23

Vous aimerez peut-être aussi