Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
800 connectés 

  FORUM HardWare.fr
  Programmation
  Divers

  Processeur à virgule flottante et à virgule fixe

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Processeur à virgule flottante et à virgule fixe

n°1507181
Keres_ens
Posté le 25-01-2007 à 15:45:34  profilanswer
 

Bonjour,
 
je voulais porter JACK audio (http://jackaudio.org/) sous PDA où il y a Linux installé dessus (version Familiar - http://familiar.handhelds.org). Mais le souci, c'est que j'utilise un PDA dont le processeur est un Xscale PXA270 qui serait à virgule fixe (information que je n'ai pas encore vérifié, mais je donnerais l'info dès que je l'ai) alors que JACK Audio a été développé pour les processeurs à virgule flottante.  
 
Ma question est en quoi le fait que le processeur soit à virgule flottante ou à virgule fixe vient changer le programme ou plutôt la façon de coder ?
 
Merci par avance,
 
Ker

mood
Publicité
Posté le 25-01-2007 à 15:45:34  profilanswer
 

n°1507183
MagicBuzz
Posté le 25-01-2007 à 15:57:30  profilanswer
 

problème de précision et d'optimisation certainement.
 
virgule fixe : à priori, c'est simplement un entier auquel on indique qu'un certain nombre de chiffres sont après la virgule (mettons que tu un int32, on a les 16 premiers bits pour la partie entière et les 16 suivants pur la partie décimale). du coup, en interne, le processeur ne fait que gérer des entiers.
 
alors qu'en virgule flottante, le nombre est une fraction de deux nombres entiers. tout ce qui est calcul est donc très différent, et les optimisations largement différentes.
 
les calculs en virgule flottante garantissent un maximum de précision tout au long des calculs, alors qu'en virgule fixe, à priori, tu vas perdre de la précision à chaque calcul.
 
pour du traîtement audio, je ne pense pasque ce soit critique, étant donné que l'oreille va avoirdu mal à distinguer des nuances minimes et que le son se traîte facilement sur les processeurs modernes.
 
bon, je dis ça, mais c'est 100% des supposition, je ne connais pas suffisament pour affirmer de façon sûre ce que j'avance ;)
 
faudra demander à harko :)

n°1507189
Keres_ens
Posté le 25-01-2007 à 16:25:52  profilanswer
 

Ok. J'ai trouvé l'info :  
The PXA27x processor complies with the ARM*
Architecture V5TE instruction set (excluding floating point instructions) and follows the ARM*
programmer’s model.
ftp://download.intel.com/design/p [...] 000003.pdf
 
Merci pour ta réponse, mais tu me décris plus la différence entre un processeur à virgule fixe et à virgule flottante. Ce que je voulais savoir, c'était, y a-t-il une différence entre la façon de coder entre un processeur à virgule flottante et à virgule fixe ?
 
Par contre, je me doute qu'il y a une différence dans le compilateur, car, comme il est dit dans la datasheet, les instructions à virgule flottante, qui étaient présentes dans les ARM, ne le sont plus dans les Xcale :(
 
Mais, je pensais utiliser une compilation croisée avec un compilateur dédié au Xscale...
 

n°1507195
MagicBuzz
Posté le 25-01-2007 à 16:39:53  profilanswer
 

ben oui, tout comme il y a une différence dans la façon de coder quand tu travailles sur un 8086 avec des registres 8 bits alors que tu veux faire des calculs sur des entiers de 32 bits...
 
là où dans un cas ça va se faire tout seul, dans l'autre tu vas devoir faire des bidouilles à la main pour t'en sortir.
 
ceci dit, cela concerne à mon avis uniquement des zones précises dans le code :
-> parties fortement optmisées
-> parties où la précision doit être maximale
 
pour le reste, logiquement, le compilateur devrait être capable de faire les mêmes calculs à partir du même code sur deux processeurs différents. c'est d'ailleurs le but du compilo d'un langage évolué.
 
tu peux parfaitement manipuler des entiers 32 bits sur un 8086 en C. seul problème : le compilateur va devoir rajouter du code spécifique afin de saucissonner les nombres et les calculs, car ils vont devoir passer dans des registres 8 bits (ou 16 bits, je sais plus pour le 8086).
 
la seule différence, c'est que ça va être bien plus lent, et là où 32 bits de précision sont inutiles, au lieu d'utiliser "int" dans ton code tu aurais préféré "byte" si tu avais prévu dès le départ de bosser avec un proco 8 bits.


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Programmation
  Divers

  Processeur à virgule flottante et à virgule fixe

 

Sujets relatifs
menu fixe suivant sa positiontable avec header fixe
Colonne fixe dans un tableau et retour chariot.lien fixe sur image aléatoire
Processeur d'exécutionCompil C++ en RAM & charge processeur
Comment faire un menu fixe ?Arrière plan fixe dans un site ?
Plus de sujets relatifs à : Processeur à virgule flottante et à virgule fixe


Copyright © 1997-2022 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR