jack Posté(e) le 12 mai 2006 Partager Posté(e) le 12 mai 2006 Voila donc ma premiere fiche HW comme je l'avais dit sur IRC pendant le blackout Je vais essayer de répondre ici à une question qui taraude beaucoup de gens : Comment à fréquence égale, un AMD Athlon 64 peut être plus puissant qu’un Intel Pentium 4 ? Je vais donc essayer de vous expliquer cet état de fait de la façon la plus simple possible. Cela va se passer en 3 étapes : I - Pipeline / Cache II - Contrôleur mémoire III - Cas des processeurs Dual Core N’ayez pas peur de la « complexité » des mots que je viens d’employer, cela peut s’expliquer de manière assez simple. Les différentes étapes que je viens de citer ne seront pas forcément écrites aujourd’hui, mais celles-ci viendront prochainement … Lien vers le commentaire Partager sur d’autres sites More sharing options...
jack Posté(e) le 12 mai 2006 Auteur Partager Posté(e) le 12 mai 2006 I - Pipeline/Cache Partons du commencement, lorsqu'un processeur du type de ceux dont nous allons parler veut exécuter une instruction (une tache comme une multiplication par exemple), celui-ci va diviser l'opération en plusieurs étapes appelées niveaux, et formant ainsi ce que l'on peut appeler un Pipeline. Chaque étape est faite l'une après l'autre, la suivante ayant absolument besoin de la précédente pour être faite. Si, pour une raison quelconque une de ces étapes venaient à être erronée ou dans l'incapacité d'être faite, il faudra recommencer ces étapes depuis le début, d'où une énorme perte de temps... Pour pouvoir faire ces étapes, notre processeur a besoin de connaître plusieurs choses, il a besoin d'informations pour pouvoir travailler. Plusieurs endroits lui sont proposés : - Les registres, minuscules mais ultra rapides, c'est là que doivent se trouver les informations dont le processeur a besoin. - La mémoire Cache, d'une taille relativement petite et d'une vitesse très élevée. C'est ici que le processeur va chercher en priorité ses informations lorsqu'elle ne sont pas dans les Registres. - La mémoire centrale, la RAM. D'une capacité conséquente, mais très lente (par rapport au processeur), c&'est le dernier endroit où va aller chercher le processeur, et ce seulement si les deux endroits cités ci-dessus ne lui ont pas donné satisfaction. Si le processeur ne trouve pas ce qu'il veut dans les registres ou dans le cache, celui-ci va devoir recommencer toutes les étapes du pipeline depuis le début, il va devoir également aller chercher dans la mémoire centrale, ce qui lui fait perdre un temps non négligeable... Partant de cela, une parade a été trouve au problème : Essayer de « prédire » à l'avance quelles informations vont êtres utilisés par l'étape qui suit celle que l'on exécute en ce moment. Nos fabricants de processeur ont optimisé ce procédé, tant et si bien qu'à l'heure actuel, il y a entre 95 et 98% de chance que le processeur ait accès aux informations dont il a besoin au bon moment. Une deuxième solution été trouvée pour encore augmenter les chances de réussite : augmenter la taille du cache. En effet plus il y a de place pour stocker, plus on a de chance de trouver ce que l'on veut. Nous pouvons cependant nuancer ce fait car la prédiction de branchement est à notre époque tellement « parfaite » que le cache ne joue plus le rôle qu'il avait, il y a quelques années. Multiplier par deux la taille du cache ne fait gagner même pas 1% de chance supplémentaire... Nous pouvons donc grâce à ses caractéristiques évaluer de façon globale la puissance d'un processeur. Une façon simple de calculer la puissance peut s'écrire de la façon suivante : I=(P^L)*F - I est un nombre de point représentant la puissance du processeur - P est la probabilité de passer à l'étape suivante - L est le nombre de niveaux du pipeline - F est la fréquence à laquelle notre processeur travaille Ce calcul découle du raisonnement suivant : La « puissance » d'un processeur peut être considéré comme le produit de sa fréquence F et d'un coefficient R. J'ai simplifié l'expression de ce coefficient en disant que il était égal a la probabilité qu'une instruction arrive a son terme, donc R est égal ici à P puissance L. Rentrons maintenant dans le vif du sujet, et présentons sommairement l'architecture Pipeline/Cache des Athlon 64 ainsi que des Pentium 4 : - Le processeur haut de gamme actuel du fondeur AMD utilise une architecture appelée K8, celle-ci est l'ultime évolution de l'architecture K5 qui fait son chemin depuis que celle-ci est concurrente du Pentium. Notre K8 est basé sur ce que l'on appelle couramment un pipeline court puisque celle-ci utilise seulement 12 niveaux. Le cache actuel varie de 640KB à 1152KB pour les Athlon 64 simples coeurs, vous pouvez doubler ces chiffres les Athlon 64 X2. - Le processeur anciennement « phare » d'Intel, le Pentium 4 est basé sur une architecture nouvelle connue sous le nom de NetBurst. Celle-ci est basée sur un pipeline long (31 niveaux sur la dernière vraie évolution de celui-ci : le core Prescott). Cette architecture est totalement différente de ce que l'on a pu voir jusqu'au Pentium 3. Le cache va de 1052KB à 2076KB pour les versions plus performantes, on peut doubler cette capacité dans les Pentium D à la lecture de ces informations, on aurait tendance à croire que l'Athlon 64 aura une probabilité plus faible que le Pentium 4. Il n'en est rien, car AMD n'a eu cessé d'optimiser son rendement faute de pouvoir monter en fréquence. Tant et si bien que les probabilités des deux sont quasi identiques à niveau de cache équivalent. Cette probabilité, il faut bien le préciser n'est jamais la même, elle change en fonction de ce que vous faites avec votre ordinateur, les valeurs que je vais donner ne sont pas forcément les valeurs officielles mais elles sont pour moi représentatives de ce qui se passe. Ce sont en quelque sorte des moyennes : - Athlon 64_640 : 95.6% - Athlon 64_1152 : 96.7% - Pentium 4_1052 : 96.3% - Pentium 4_2076 : 97% Grâce à ces valeurs je vais pouvoir vous démontrer ce dont je parle depuis tout ce temps. Je vais commencer par faire un comparatif à fréquence égale et équivalence de cache: - Prenons un Athlon 64_640 cadencé à 2400MHz ainsi qu'un Pentium 4_1052 cadencé lui aussi à 2400MHz Pour l'Athlon : (0.956^12)*2400=1398 Pour le Pentium 4 : (0.963^31)*2400=745 Soit une différence de 88% en faveur de l'Athlon comme vous pouvez le constater. - Maintenant essayons de prendre deux processeur de puissance équivalente : Un Athlon 64 3700+ et un Pentium 4 cadencé à 3700MHz et équipé de 2076KB. Pour l'Athlon 64 : (0.967^12)*2200=1470 Pour le Pentium 4 : (0.97^31)*3600=1439 Soit une différence de 2%, CQFD, la puissance est équivalente. La prochaine fois, je vous expliquerais une autre particularité qui fait la supériorité de l'Athlon : le Contrôleur mémoire. Lien vers le commentaire Partager sur d’autres sites More sharing options...
jack Posté(e) le 12 mai 2006 Auteur Partager Posté(e) le 12 mai 2006 II – Contrôleur Mémoire Comme nous l’avons vu plus haut, lorsque notre processeur ne trouve pas ce qu’il veut dans le cache ou dans les registres ou qu’il a pensé que dans quelques temps il aura besoin d’une information en particulier, il va devoir aller demander cela à la mémoire centrale, la fameuse RAM. Il en existe de plusieurs types, mais ce n’est pas là l’objet de cette partie. Je vais donc parler de celles-ci en général. Cette fameuse mémoire ne va pas répondre au quart de tour, il lui faut un petit moment pour aller regarder au bon endroit, lire l’information, et aller la retourner. Cela prend quelques « temps mémoire ». Vous avez sans doute déjà entendu parler des CAS ? Ces fameux chiffres que nos vendeurs arborent… Et bien ceux-ci évaluent le temps nécessaire pour que la RAM réponde aux questions qu’on lui pose … Vous avez pu constater que ce genre de mémoire était aussi relativement lente comparé à la fréquence des processeurs actuels. Il était une époque ou les processeur avaient la même fréquence que la RAM, mais cette époque est loin derrière nous … Un problème se pose alors, et celui-ci n’a pas de solutions miracles : le processeur ne peut avoir accès à la mémoire tout le temps, il ne peut demander a la mémoire ce qu’il veut quand il le veut, il va devoir attendre un nombre de « temps processeur » particulier (celui-ci est égal au fameux multiplicateur cher aux overclockers … mais ce n’est pas le sujet …) Rentrons maintenant dans le vif du sujet : la façon dont les différentes architectures présentes ici travaillent avec cette RAM : - Pour l’architecture Pentium 4, le contrôleur mémoire est intégré au chipset, c’est un composant annexe soudé sur la carte mère et qui est en gros celui qui contrôle celle-ci … Le processeur doit donc aller demander à ce chipset ce dont il a besoin et c’est lui qui va aller demander à la RAM. - En ce qui concerne l’architecture K8, le contrôleur mémoire est directement intégré au processeur lui-même, l’Athlon64 demande donc sans intermédiaire ce qu’il veux à la mémoire, le chipset est toujours présent mais est seulement utilisé pour l’accès aux périphériques annexes tels lecteurs de disques ou cartes d’extensions, périphériques de saisie, etc. Après avoir sommairement parlé de tout cela, parlons de ce qui en découle. Lorsque un P4 va avoir besoin d’une information, il va devoir d’abord formuler sa demande au chipset, le chipset va devoir comprendre cette demande et la reformuler pour que la RAM la comprenne. Et la réponse de la RAM doit refaire tout le chemin inverse en passant dans ces mêmes endroits… Sur un A64, le chemin est plus court, le processeur formule sa demande directement à la RAM sans intermédiaire. Petite explication à l’aide d’un exemple : J’appuie le fait que cet exemple est énormément simplifié pour que la plupart des gens puissent comprendre le phénomène. Il existe un véritable gouffre entre ce que je vais vous montrer et la réalité du terrain, je ne peut par une simple équation montrer ce qu’il se passe vraiment lorsque une requête mémoire est envoyée, trop de facteurs rentrent en jeu. Cependant ce petit calcul montre d’une façon simple le phénomène … Supposons que nos deux processeur utilisent le même type de RAM qui a une latence de 4 temps mémoire en moyenne. Supposons que le P4 comme le A64 prennent l’équivalent de 2 temps mémoire pour écrire ou comprendre une requête. Supposons que le chipset ai lui aussi latence de 2 temps mémoire pour répondre aux requêtes. Donc le temps moyen pour l’accès aux données sur nos deux plateforme sont : - Pour le Pentium 4 : 2+2+4+2+2=12 temps mémoire - Pour l‘Athlon 64 : 2+4+2=8 temps mémoire Soit un gain de 33% en temps dans cette configuration, ce qui veut dire que pour aller chercher dans la RAM l’Athlon 64 est plus rapide que le Pentium 4 … La prochaine fois, nous parlerons des processeurs Dual Core ainsi que de leurs particularités… Lien vers le commentaire Partager sur d’autres sites More sharing options...
jack Posté(e) le 12 mai 2006 Auteur Partager Posté(e) le 12 mai 2006 Reservé : Dual Core Lien vers le commentaire Partager sur d’autres sites More sharing options...
Maka Posté(e) le 12 mai 2006 Partager Posté(e) le 12 mai 2006 Super taf' (ayé je peux poster ) Merci Lien vers le commentaire Partager sur d’autres sites More sharing options...
loic_151091 Posté(e) le 12 mai 2006 Partager Posté(e) le 12 mai 2006 good job j'ai déjà eu l'occasion de lire le dossier entier Lien vers le commentaire Partager sur d’autres sites More sharing options...
Chris88 Posté(e) le 12 mai 2006 Partager Posté(e) le 12 mai 2006 Bon travail the-jack mais avec la prochaine architecture Core d'Intel la tendance risque de s'inverser au niveau du rapport puissance/fréquence avec une dissipation thermique plus élevée pour l'Athlon car lorsque l'on voit ce que peut donner un Pentium M avec un TDP bien plus bas, AMD va se trouver dans une impasse à force de tirer sur l'archi K8 qui est lui-meme un derivé du K7. Je pense que AMD a une chance de s'en sortir pour les 2 ou 3 ans à venir si seulement il arrive a mettre au point le threading hardware. Bon courage pour la suite the-jack Lien vers le commentaire Partager sur d’autres sites More sharing options...
jack Posté(e) le 12 mai 2006 Auteur Partager Posté(e) le 12 mai 2006 Je sais que cette fiche arrive un peu en retard, le Core Duo et le Core 2 Duo sont dans la place Je vais juste faire un petit retour dans le passé pour nuancer : L'archi Core est derivé du Pentium-M, qui elle même derive du Pentium III, qui est elle aussi un derivé du Pentium II, pour en arriver au Pentium Pro. Tout ces processeurs derivent de l'architecture P6 une superbe architecture d'ailleurs L'archi K8 derive elle du K7, et on peut remonter ainsi jusqu'au K5 Tout ce pour dire que tout architecture a de l'avenir, du moment que l'on sait comment l'améliorer Lien vers le commentaire Partager sur d’autres sites More sharing options...
DjE_ThE_BoSS Posté(e) le 12 mai 2006 Partager Posté(e) le 12 mai 2006 Superbe explication vivement la suite!! Moi qui voulait m'acheter mon PC je comprend enfin pourquoi je prendrai un amd Lien vers le commentaire Partager sur d’autres sites More sharing options...
Hypnos Posté(e) le 13 mai 2006 Partager Posté(e) le 13 mai 2006 franchement bravo the_jack j'avais pas vu ca comme ca . C'est pour ca qu'on dit qu'un souvent qu'un amd athlon est plus performant qu'un pentium un peu plus puissant ^^ (sinon desole de pas avoir pu t'aider plus ) juste un truc Chaque étape est faite l’une après l’autre c'est le cas meme des hyper threading aussi ??? vu que justement ils doivent faire plusieur choses en meme temps au lieu de les faire une a une ^^ Lien vers le commentaire Partager sur d’autres sites More sharing options...
Messages recommandés
Veuillez vous connecter pour commenter
Vous pourrez laisser un commentaire après vous êtes connecté.
Connectez-vous maintenant