• [^] # Re: TCPA

    Posté par (site web personnel) . En réponse à la dépêche Une faille majeure de la cryptographie courante. Évalué à 8.

    en quoi est-ce que cela permet de gagner du temps ?

    Sur un pentium 4, l'architecture pipeline contient plus de trente niveaux. Cela signifie que la sortie effective du processeur à environ 30 instructions de retard par rapport à la lecture du code exécutable. Si tu as besoin des résultats d'une comparaison pour faire un branchement conditionnel, ça signifie que tu vas attendre le résultat pendant 30 cycles d'horloge avant de sauter à la bonne adresse ... je te laisse juge pour la performance d'une boucle for ...
    Une solution peut consister à essayer de prédire les dits branchements, de façon à ce que le cpu précharge les instructions qui correspondent alors au saut prédit.

    Comment est faite cette prédiction ?

    Il existe plein de méthode plus ou moins sophistiquées, mais pour donner un exemple simple, on peut dire par exemple qu'on prédit que le saut pris sera en arrière (c'est simplissime, mais pas idiot !)
    Bien sûr il existe des méthodes bien plus sophistiquées que je n'ai pas le temps de détailler ici.

    Pour info, la qualité prédiction des branchements de cpu est vraiment cruciale pour des cpu comme le pentium 4 (avec beaucoup d'étages pipelines), car à chaque fois que le prédicteur se vautre, il faut vider le pipe et recharger tout avec le bon code exécutable !
    Cela explique en partie pourquoi les cpu d'amd sont bien plus performants que les cpu intel (a fréquence égale) pour des applications difficiles à prédire (ie : jeux, compilation ...), alors que les cpu d'intel vont plutot roxer sur des trucs monotones (compression de données ...)

    tu pourra trouver des éléments de compréhension ici :
    http://www.onversity.net/cgi-bin/progarti/art_aff.cgi?Eudo=b(...)

    Adhérer à l'April, ça vous tente ?