• [^] # Re: Commun des mortels ?

    Posté par . En réponse à la dépêche Article sur le POWER4 d'IBM. Évalué à 3.

    J'ai pas lu l'article mais ta phrase sur le pipeline et la prédiction de branchement me semble relativement compréhensible pour quelqu'un qui connait l'assembleur x86, et qui a une petite idée du fonctionnement interne d'un processeur.
    C'est le genre de truc que l'on apprends lorsque l'on essait d'optimiser du code par exemple pour faire des jeux ou de la 3D ce qui est quand même la principale motivation pour faire de l'assembleur (chez les etudiants tout du moins).

    Maitenant pour quelqu'un qui n'a jamais fait d'ASM c'est sur qu'il ne peut pas comprendre.
    Mais c'est comme pour tout les articles un peu développeur, si tu ne sait pas programmer en C, malloc() ça peut être du chinois. Si tu ne connais pas TCP/IP un port ou une IP c'est du chinois aussi.

    Sinon, pour la phrase, depuis le 486 les processeurs sont pipelinées, c'est à dire que l'on découpe l'éxécution de l'instruction en tranches par exemple pour le 486 : Fetch (lecture), Decode 1, Decode 2, Execution, et Write (ds les registres). L'avantage c'est que l'on gagne en fréquence, car celles-ci sont limités par la latence des porte-logiques, si tu découpe ton processeur en 5 étapes, tu peux espérer utiliser dans chaque étape 5 fois de portes. Comme tu as 5 fois moins de portes, même si la latence de chaque porte est la même qu'avant (parce que tu grave toujours avec le même process, tu n'est pas passé par exemple du 0.18 micron au 0.13), la durée minimale pour que toute les portes aient le temps de basculer est diviser par 5, donc au lieu que la freq maximale de ton processeur soit de 10 Mhz elle passe à 50 Mhz.
    Maintenant, l'inconvénient c'est que des fois tu dois vider ton pipeline par exemple parce qu'il y a un saut conditionnel et que ton pipeline il est remplie avec des instructions que tu n'aurais pas executer. Donc tu jette tout, et tu recommence le fetch, le décodage, l'éxécution ... ce qui te fais perdre un nombre de cycle égal au nombre d'étape du pipeline.

    Ex : Le pentium 4 a 20 étages dans son pipeline contre 12 pour le PII/PIII donc il atteint des fréquences plus élevés mais comme le cout d'un vidage de pipeline est plus élévé à fréquence égale ses perf sont inférieures à celles d'un PIII (car il passe plus de cycles à ne rien faire).