Bonjour,
juste pour info : un PIV pour augmenter sa fréquence a dû aussi
augmenter la longeur des pipelines.... or il faut savoir qu'un cpu
actuel pour ne pas perdre trop de temps lors d'un branchement
ie une structure d'un prgramme
if (condition)
{
branche 1....
}
else
{
branche2...
}
utilisé dans tous les programmes, va engender un prédiction de
branchement, cad que le cpu va commencer à exécuter les commandes de
la branche la plus probable (par exemple la branche1)
il va donc commencer à mettre des instructions dans le pipeline.....
hors si par malheur la prédiction fut fausse, le pipeline rempli doit
être flushé..... hors ce méchanisme est extrêmement gourmand en
temps.....
sur un programme sans branche (il faut bien rêver) un PIV serait
beaucoup plus rapide qu'un AMD ou un centrino (qui au passage est un
jeu de puces et non pas un proc, le PIV M est un proc [qui d'ailleur
dérive de l'architecture PIII et non pas PIV] mais je m'égare....)
mais il s'avère que tout cpu ne sait pas lire le marc de café.....
donc un PIV va passer son temps à flusher ses pipelines..... question
ménage c'est bien.....
Intéressante, cette discussion.
Au passage, c'est souvent le programmeur le mieux placé pour aider le
processeur à deviner ce qui est le plus probable. Par exemple, le noyau
linux fournit des macros "likely" ou "unlikely" (voir
http://lxr.linux.no/ident?i=likely) que les programmeurs peuvent utiliser.
Est-ce que certain(e)s d'entre vous sauraient faire ca dans un programme
utilisateur C ou C++? C'est à dire indiquer au compilateur quelle est la
branche la plus probable?
:-)
Michael.
--
Michael Opdenacker, Free Electrons
Free Embedded Linux Training Materials
on http://free-electrons.com/training
Linux-Azur : http://www.linux-azur.org
Désinscriptions: http://www.linux-azur.org/liste.php3
**** Pas de message au format HTML, SVP ****