Forum des développeurs  

Le forum de référence en programmation et développement. Articles, cours et tutoriels du débutant au chef de projet et DBA confirmé.
Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Hardware

Hardware Forum d'entraide sur l'achat et le dépannage de votre matériel. Avant de poster -> FAQ et Tutoriels Hardware

Réponse
 
Outils de la discussion
Vieux 05/08/2008, 18h45   #1 (permalink)
Membre habitué
 
Date d'inscription: juin 2003
Messages: 154
Par défaut Pentium Pro / Hyperthreading / Pipeline

Bonjour,

Et oui, toujours moi !
J'ai lu (toujours dans Architecture de l'ordinateur, Andrew Tanenbaum) qu'une des caractéristiques du Pentium Pro était de pouvoir exécuter 5 instructions en même temps. En quoi est-ce différent de l'hyperthreading ?
Et quelle est la différence entre l'hyperthreading et un processeur à 2 pipelines ?

Merci par avance pour vos réponses
willowII est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 06/08/2008, 21h31   #2 (permalink)
Membre habitué
 
Date d'inscription: juin 2003
Messages: 154
Par défaut

J'ai lu attentivement ce lien que j'ai trouvé très bien fait.
Pour la comparaison hyperthreading/pipeline, je vais essayer de résumer :
  • pipeline et hyperthreading sont deux manières complémentaires d'optimiser l'utilisation des ressources du processeur.
  • l'hyperthreading s'applique au sein d'un pipeline
  • le pipeline a pour vocation de permettre d'optimiser le traitement d'une instruction alors que l'hyperthreading permet de traiter simultanément deux threads, les threads étant traités plus rapidement grace au pipeline
  • l'hyperthreading permet d'utiliser la partie des ressources non-utilisés généralement (car une instruction classique va utiliser seulement 35% des ressources.

Du coup, j'ai trois questions:
  • C'est ça ou je me suis complètement vautré ?
  • En ce qui concerne les 65% non-utilisés, le fait de multiplier le nombre de pipelines ne permet-il pas de réduire significativement cette "perte" ?
  • si la réponse à la question ci-dessus est oui, j'ai quand même du mal à voir ce qu'apporte l'hyperthreading par rapport à x pipelines ?

Passons maintenant au cas du pentium Pro et de ses 5 instructions exécutées simultanément.
Cela signifie qu'il y avait 5 pipelines ? (pas taper )

Merci par avance
willowII est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 07/08/2008, 11h00   #3 (permalink)
Expert Confirmé Sénior
 
Avatar de sperot51
 
Date d'inscription: avril 2007
Localisation: 63
Âge: 26
Messages: 2 917
Par défaut

pour l'hyperthreading, je crois que le processeur a 2 caches et peux passer de l'un à l'autre rapidement (sans passer par le controleur mémoire surement)
et donc pouvoir gérer 2 choses différentes plus facilement comme le ferait un dualcore (sauf que là y a qu'un truc pour faire le calcul derrière)
sperot51 est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 12/08/2008, 17h49   #4 (permalink)
Membre éclairé
 
Avatar de dapounet
 
Date d'inscription: juillet 2007
Localisation: Belgique
Messages: 390
Par défaut

Citation:
Envoyé par willowII Voir le message
Bonjour,

Et oui, toujours moi !
J'ai lu (toujours dans Architecture de l'ordinateur, Andrew Tanenbaum) qu'une des caractéristiques du Pentium Pro était de pouvoir exécuter 5 instructions en même temps. En quoi est-ce différent de l'hyperthreading ?
Et quelle est la différence entre l'hyperthreading et un processeur à 2 pipelines ?

Merci par avance pour vos réponses
Le Pentium Pro a cinq ports d'exécution différents donc il peut exécuter cinq instructions à la fois mais ça dépend des instructions qui sont disponibles.
L'hyperthreading sert à donner plus de choix au processeur : il va piocher les instructions dans deux programmes différents, en alternant entre les deux à chaque cycle.
__________________
“Low-level programming is good for the programmer's soul.” - John Carmack
dapounet est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 20h45   #5 (permalink)
Membre habitué
 
Avatar de MaliciaR
 
Date d'inscription: juillet 2008
Localisation: Paris
Âge: 26
Messages: 150
Par défaut

Salut,

Ces deux liens te donneront des informations supplémentaires et comparatives
Hyperthreading
Pipeline

Enfin, puisque tu as l'air de tenir à Pentium, voilà un pitit article qui pourrait t'intéresser : The Pentium : An architectural history
MaliciaR est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 20h58   #6 (permalink)
Expert Confirmé Sénior
 
Date d'inscription: novembre 2006
Localisation: Laval,Canada ( expat français)
Messages: 2 303
Par défaut

Citation:
Envoyé par willowII Voir le message
Passons maintenant au cas du pentium Pro et de ses 5 instructions exécutées simultanément.
Cela signifie qu'il y avait 5 pipelines ? (pas taper )
Non le pipeline ou plus precisement le pipeline d'instruction est en amont du processeur/decodeur d'instruction...
un CPU c'est fondamentalement compose d'un decodeur d'instruction une unite logique faite de portes XOR, NAND et compagnie.
Doc si tu as mov eax,10 dans le jeu d'instructions Intel mov equivaut a un code d'instructions de 0 a 255.
Le decodeur d'instructions recoit toutes ces valeurs provenant du pipeline qui s'arrange pour les envoyer de maniere optimisee c'est indique dans le lien de Wikipedia de Malicia.
Apres une fois que l'instruction est decodee soit c'est une operation arithmetique/logique et l'ALU ou Arithmetic Logical Unit effectue l'operation
( + - / * AND OR ..)
Ou bien c'est une interruption materielle ( processeurs Intel ) ou bien ecriture/lecture RAM..
Je dirais plutot que les n coeurs ont n pipelines correspondants...( a verifier )
L'hyperthreading comme le dit le lien de Wikipedia c'est faire en sorte d'executer une tache en la decoupant en 2 de maniere parallele..
mais je ne sais pas si c'est vraiment efficace ce procede de hyperthreading et l'article de Wikipedia le precise bien que d'une appli a une autre les performances peuvent etre differentes..
Citation:
Toutefois, les performances varient sensiblement selon les applications. Dans certains cas, l’exécution s’avère même plus lente quand l’hyper-threading est activé
Tout depend du programme s'il est bien programme et architecture pour tourner en multithreading et aussi de l'OS parce qu'entre l'appli et le CPU il y a l'OS.
Pour l'hyperthreading il faut pour que cela soit efficace que le CPU ait une frequence de commutation elevee en Khz
Mat.M est déconnecté   Envoyer un message privé Réponse avec citation
Vieux 15/08/2008, 22h37   #7 (permalink)
Membre habitué
 
Avatar de MaliciaR
 
Date d'inscription: juillet 2008
Localisation: Paris
Âge: 26
Messages: 150
Par défaut

Ce que j'ai lu dans un bouquin, c'est que le Pentium 4 a une seule pipeline avec 20 étages avec un coeur d'instructions type RISC qui, elles, sont traitées par un pipeline super-scalaire. D'un autre côté, l'AMD 64 opteron a 3 pipelines pour les entiers et 3 autres pour les calculs à virgule flottante, même coeur que le Pentium 4.


Citation:
Envoyé par Mat.M
mais je ne sais pas si c'est vraiment efficace ce procede de hyperthreading et l'article de Wikipedia le precise bien que d'une appli a une autre les performances peuvent etre differentes..

Voilà ce que j'ai trouvé ici :

Citation:
La raison pour laquelle nous ne testons pas cette fonctionnalité dans nos habituels comparatifs est simple : dans des benchmarks seuls, elle n'est pas supposée apporter quelque chose. Ce n'est que lorsque plusieurs applications sont utilisées en même temps que l'Hyper-Threading prend en effet tout son sens. Il est donc plus difficile de tester cette fonction du géant de Santa Clara car cela demande d'effectuer de nombreux tests et souvent le temps nous manque car le matériel mis à notre disposition l'est pour un lapse de temps souvent assez court. En outre, cela signifie qu'il faudrait faire ces tests pour tous les processeurs Intel supportant l'Hyper-Threading et ce n'est pas réalisable à moins de sortir un comparatif de processeurs tous les 4 ans…

Pourtant l'Hyper-Threading apporte un réel plus aux processeurs Intel par rapport à leurs équivalents AMD. Les utilisateurs réguliers de tels processeurs et ayant auparavant utilisé des processeurs AMD vous diront souvent que le confort d'utilisation d'un P4 doté de l'Hyper-Threading est plus grand qu'avec un AMD équivalent. Cependant, c'est difficile à quantifier et les pro AMD en face seront difficiles à convaincre sans chiffres concrets. Ils vous rétorqueront également que les Athlon 64 supportent le jeu d'instruction x86-64, ce qui est vrai, mais malheureusement les occasions d'en profiter sont encore très rares, au contraire de l'Hyper-Threading.

Donc bon... Ca a l'air d'être un débat comme celui sur le sexe des anges
MaliciaR est déconnecté   Envoyer un message privé Réponse avec citation
Réponse

Précédent   Forum des développeurs > Hardware, Systèmes et Logiciels > Hardware



Outils de la discussion

Règles de messages
Vous ne pouvez pas créer de nouvelles discussions
Vous ne pouvez pas envoyer des réponses
Vous ne pouvez pas envoyer des pièces jointes
Vous ne pouvez pas modifier vos messages

Les balises BB sont activées : oui
Les smileys sont activés : oui
La balise [IMG] est activée : oui
Le code HTML peut être employé : non
Trackbacks are non
Pingbacks are non
Refbacks are non
Navigation rapide