Vous êtes sur la page 1sur 6

Chapitre2 CARACTERSTIQUES DES DSPs

Un autre 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 : les données sont représentées comme étant des nombres
fractionnaires à virgule fixe, (exemple -1.0 à +1.0), ou comme des entiers classiques.
La représentation de ces nombres fractionnaires s’appuie la méthode du « complément
à deux ». L’avantage de cette représentation (qui n’est qu’une convention des
informaticiens) est de permettre facilement l’addition binaire de nombres aussi bien
positifs que négatifs.

 Les DSP à virgule flottante : les données sont représentées en utilisant une mantisse et
un exposant. La représentation de ces nombres s’effectue selon la formule suivante : n
= mantisse x 2 exposant. Généralement, la mantisse est un nombre fractionnaire (-1.0 à
+1.0), et l’exposant est un entier indiquant la place de la virgule en base 2 (c’est le
même mécanise qu’en base 10).

Entiers relatif en complément à 2

La représentation des nombres entiers relatifs utilisée dans les DSP comme dans la plupart des
microprocesseurs est la représentation binaire en complément à 2.

Dans la représentation en complément à 2, un entier négatif x est codé par la représentation


binaire pure de l’entier positif y égal au complément à 2 de x :

y=2N-|𝑥|

Entier relatif -4 -3 -2 -1 0 1 2 3
complément à 2 100 101 110 111 000 001 010 011

Un nombre décimal est composé d'une partie entière et d'une partie fractionnaire après la virgule.

Représentation binaire des nombres fractionnaires en format virgule fixe

● En base B, ce nombre X s'écrit : (X)B = an an-1 ...a0 ,b1 ...bm

Il se convertit en décimal en : (X)10 = anBn+...+a0B0 ,b1B-1+...+bmB-m .


Exemples :
● 128,75 = 1 x 102 + 2 x 101 + 8 x 100 + 7 x 10-1 + 5 x 10-2 .
● (101,01)2 = 1 x 22 + 1 x 20 + 1 x 2-2 = 1 x 4 + 1 + 0,25 = 5,25
● (AE,1F)16 = 10 x 161 + 14 x 160+1 x 16-1+15 x 16-2 = 160 + 14 + 0,0625 + 0,5859375 = 174,12109375
Un nombre réel étant rarement de précision finie, la représentation sur un nombre finie de bits introduit
une erreur. En virgule fixe sur N bits avec format Qk, cette erreur est inferieure a 2-k .

Max=2N-1-k-2-k
Min=-2N-1-k

Valeur décimale Représentation binaire

virgule fixe Q5

3.5 011 10000

1.625 001 10100

-1.46875 111 01111

-4 100 00000

3.96875 011 11111

Valeur réelle Représentation binaire Equivalence décimale erreur

virgule fixe Q5

1/3 000 01011 0.34375 0,010416666…

√2 001.01101 1.40625 0,007963562…

𝜋 011 00101 3.15625 0.014657346…

Codage des décimaux en virgule flottante


● Un nombre décimal X est représenté en base b par :
X=(-1)sM x bE

– s : signe du nombre
– M : mantisse, écrite en virgule fixe en base b, sur p chiffres, de type x 0 x1 ...xi ,xi+1 ..xp-1 où xi , pour i
entre 0 et p-1, est entre 0 et b-1
– E : exposant
Le nombre flottant X est alors dit de précision p.
● bE correspond au facteur de mise à l'échelle => il est explicite
● La représentation n'est pas unique. Par exemple, avec b=10, et en précision 4, le nombre 2,617 peut
se présenter de différentes manières :
– 2617 x 10-3
– 261,7 x 10-2
– 26,17 x 10-1
– 2,617 x 100
– 0,2617 x 101
=> Nécessité de normaliser l'écriture pour qu'elle devienne unique
=> Rôle de la norme IEEE754, publiée en 1985 et révisée en 2008
● La norme IEEE 754-2008 définit 3 formats de base :
– Simple précision (float)
– Double précision (double)
– Quadruple précision

● Taille mantisse équivaut à la précision de p bits

● Taille exposant : w bits

● Emax = 2w-1 – 1 et Emin = 1 - Emax

● Problème : même avec position de la virgule fixée dans la mantisse d'un nombre flottant, un nombre
peut avoir plusieurs représentations : 2,190 x 101 et 0,219 x 102 .

● La mantisse s'écrit : M = m0 m1 ...mp-1 pour une précision de p bits.

● Pour pallier au problème de la non unicité, on normalise la mantisse, i.e. m 0 ≠0.

– Représentation unique (pour les valeurs non nulles)

– Représentation qui minimise l'exposant

– En base 2, m0 = 1 => m0 n'est pas stocké en mémoire =>bit implicite=> utilisé pour le signe

On code sur N bits, avec une précision p


● Se souvenir que la partie entière de la mantisse en base 2 correspond au bit implicite, qui vaut 1

● L'exposant peut être négatif => comparaison est alors difficile => l'exposant est encodé en utilisant
une représentation biaisée E + Emax .

● Pas de valeur codable entre 0 et 2Emin .

Exemple

● Trouver le nombre à virgule correspondant à :


1100010001101001001111000011100000000000000000000000000000000000

● => codage sur 64 bits

– Signe 1 bit : 1, le nombre est donc négatif

– Exposant codé sur 11 bits : 10001000110, Ecodé = 1094, donc Eréel = Ecodé – Emax = 1094-1023 = 71

– Mantisse codée sur 53-1 = 52 bits (et en ajoutant le bit implicite)

M = 1,1001001111000011100000000000000000000000000000000000 = 1 + 1/2 +
1/24+1/27+1/28+1/29+1/210+1/215+1/216+1/217 = 206 727/131072

Le nombre représenté est -206727/131072 x 271 = -3,724... x 1021

Exemple de la simple précision

● En simple précision, on code sur 32 bits

Si 0≤Ecodé <255 et Mcodé ≠0, cela représente le nombre (-1)s x1,Mcodé x2Ecodé-127

Valeurs particulières :

– + infini : s=0 Ecodé =255 Mcodé =0 0 11111111 000000000000000000000000

– - infini : s=1 Ecodé =255 Mcodé =0 1 11111111 000000000000000000000000

– NaN, Not a number : Ecodé = 255 Mcodé ≠0


– Zéro : s=±1 Ecodé=0 Mcodé=0

Exercice : Conversion en virgule flottante IEEE 754 (32 bits)

1. Quelle est la valeur décimale des représentations binaires suivantes :

a. 1 10000010 11110110000000000000000

b. 01000000111100000000000000000000

c. 11000010000011100000000000000000

d. 0 10000010 11000000000000000000000

2. Quelle est la représentation binaire de chaque nombre décimale suivants :

a. 3.15

b. -123.75

c. 6.12

Correction

5
Pour améliorer les performances de l’unité de traitement, les DSP les plus récents utilisent la méthode
du pipeline. Elle consiste à imposer un ordre et un rythme dans le déroulement des instructions de
manière à optimiser en rapidité leur exécution. En un cycle processeur, les opérations élémentaires
suivantes peuvent être exécutées en parallèle :
1. Aller chercher l’instruction en mémoire programme (Fetch) ;
2. Réaliser le décodage de l’instruction, et des adresses des opérandes (Decode) ;

3. Lire les opérandes en mémoire de données (Read) ;

4. Exécuter l’opération et écrire le résultat (Execute).


Le principe de pipeline consiste à découper le travail en tâches élémentaires de même durée pour
permettre leur réalisation en parallèle. Il faut prévoir des registres tampon entre chaque opération
élémentaire, ce qui montre le Tableau 3 .1. Il y a donc en permanence quatre instructions dans le
pipeline, ce qui est le plus souvent invisible, sauf s’il y a « conflit » dans le pipeline, ce qui se passe quant
l’une des quatre instructions exige plus d’un cycle d’horloge. Dans la plupart des cas, DSP « rattrape » le
conflit en décalant alors les autres instructions d’un cycle.

Principe du pipeline

Vous aimerez peut-être aussi