L' électron en mouvement   



Une Introduction aux DSP



2.4. Types et formats de données manipulées par les DSP


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 :



     



2.4.1 Les DSP à virgules flottantes


Les DSP à virgule flottante sont plus souples et plus faciles à programmer que les DSP à virgule fixe. Un DSP comme le TMS320C30 manipule des nombres formés avec une mantisse de 24 bits et un exposant de 8 bits (taille de la donnée en mémoire : 32 bits). Les valeurs intermédiaires des calculs sont mémorisées dans des registres avec un format de 32 bits de mantisse et un exposant de 8 bits (taille du registre : 32 + 8 bits supplémentaires). La dynamique disponible est très grande, elle va de -1 x 2128 à (1-2-23) x 2127, toutefois la résolution reste limitée à 24 bits au mieux. Outre les nombres fractionnaires, ce DSP sait également manipuler les entiers avec une précision de 32 bits.


La très grande dynamique proposée par les DSP à virgule flottante permet virtuellement de ne pas se soucier des limites des résultats calculés lors de la conception d’un programme. Cet avantage a cependant un prix, à savoir qu’un système basé sur un DSP à virgule flottante a un coût de fabrication supérieur par rapport à un système basé sur DSP à virgule fixe. La puce d’un DSP à virgule flottante nécessite à la fois une surface de silicium plus importante (cœur plus complexe), et un nombre de broches supérieur, car la mémoire externe est elle aussi au format 32 bits. Le système revient donc plus cher (exemple : 2 x 32 broches ne serait ce que pour les bus de données externes avec une architecture Harvard de base).


Un DSP à virgule flottante est plutôt adapté (sans être impératif) à des applications dans lesquelles :


De partleurs facilités de programmation, ils peuvent également se justifier dans des projets ou le temps et la facilité de développement sont des facteurs importants. On les trouve également dans des produits de faible volume de production, pour lesquels le prix du DSP n’est pas significatif.




2.4.2 Les DSP à virgules fixes


Un DSP à virgule fixe est un peu plus compliqué à programmer qu’un DSP à virgule flottante. Dans un DSP à virgule fixe typique comme le TMS320C25, les nombre sont codés sur 16 bits (rappel : des entiers classiques ou des fractionnaires).


Toutefois, sur ce DSP, les calculs sont effectués avec des accumulateurs de 32 bits. Lorsque les résultats doivent être stockés en mémoire, les 16 bits les moins significatifs sont perdus. Ceci permet de limiter les erreurs d’arrondis cumulatives. Il est toujours possible de stocker séparément en mémoire les 16 bits faibles puis les 16 bits fort s’il n’y a plus de registres libres lors d’une étape de calcul.


Cette particularité n’est pas toujours disponible sur tous les DSP. Dans ce cas, les calculs requérant absolument une double précision sont réalisés en chaînant deux à deux des instructions spéciales manipulant des données 16 bits en simple précision, au détriment du temps d’exécution.


La précision des calculs est un point critique des DSP à virgule fixe, car le concepteur de programmes doit rester vigilant à chaque étape d’un calcul. Il doit rechercher la plus grande dynamique possible (c.à.d. exploiter au mieux la gamme des nombres disponibles), pour conserver une bonne précision des calculs, tout en évitant autant que faire ce peu les débordements du ou des accumulateurs. Les bits supplémentaires des accumulateurs (les bits de garde) prévus à cet effet permettent de réduire cette contrainte.


Les programmeurs contournent les limites des DSP à virgule fixe en déterminant à l’avance, et avec soins, la précision et la dynamique nécessaire (par méthode analytique ou avec des outils de simulation) pour réaliser leurs projets.


Il est également possible d’effectuer des opérations en virgule flottante dans un DSP à virgule fixe par le biais de routines logicielles adéquates. Cette approche est néanmoins pénalisante en temps d’exécution, même sur un DSP à virgule fixe très rapide.


En termes de rapidité, les DSP à virgule fixe se placent d'ordinaire devant leurs homologues à virgule flottante, ce qui constitue un critère de choix important.


Les DSP à virgule fixe sont les plus utilisés, car ils sont moins chers que les DSP à virgule flottantes. On les trouve dans tous les produits de grande diffusion ou le coût est un facteur important. Il peut cependant exister des exceptions, certains DSP à virgule fixe se présentant comme des micro contrôleurs perfectionnés plus chers qu’un DSP à virgule flottante de base.



Page Principale       Index Global du Site       Page Precedente       Page Superieure       Page Suivante

Page Principale    Index Site   Page Précédente   Page Supérieure   Page Suivante

Site créé et maintenu par laurent.battista@laposte.net

© 1998 - 2005 - Laurent Battista