Intel Pentium 4 3.06 Ghz HyperThreading
By Samuel D. / Franck D. - 14/11/2002
Sommaire:

 

Compatibilité Hardware / Software

 

 

Pour fonctionner correctement, la technologie Hyperthreading nécessite, selon Intel, les éléments suivants :

  • Un Pentium 4 cadencé à 3.06 Ghz ou +
  • Un Chipset Intel supportant l'Hyperthreading
  • Un BIOS supportant l'Hyperthreading
  • Un système d'exploitation qui inclus des optimisations pour l'HT

Actuellement, le seul OS incluant des optimisations pour l'Hyperthreading est Windows XP. Que ce soit en version Home ou Pro, ce système d'exploitation est capable de tirer le meilleur parti du SMT. Etrangement, toutes les versions de Windows 2000 font partie du groupe "non recommandé" (tout comme Windows Millenium ou 98) et Intel suggère même de désactiver l'Hyperthreading sur ces systèmes.

 

  • Compatibilité Software

Le choix du système d'exploitation est donc primordial pour tirer le mieux parti de l'Hyperthreading. Avant de s'intéresser aux produits Microsoft, soulignons que nous avons installé le P4 3.06 Ghz sur une RedHat 8.0 et que le SMT a été correctement reconnu. Selon Intel, le Kernel 2.4.18 minimum est requis et les RedHat 7.3, 8.0 ainsi que la SuSe 8 sont compatibles. Mais revenons à Windows. Nous avons cherché à comprendre pourquoi Windows 2000 n'était pas conseillé et si il y avait une raison valable, technique.

Tout système d'exploitation capable de gérer plus d'un processeur est capable d'exploiter l'HT : Windows 2000, Windows XP, Linux pour citer les plus répandus. Sur un système d'exploitation mono-processeur (Windows 95, 98, Me), seul le premier processeur logique est exploité, le second restant alors inutilisé.

Cependant, il convient d'être très prudent quant à l'exploitation de l'HT sur les OS multi-processeurs. En effet, la capacité d'exploiter deux processeurs physiques ne signifie pas une exploitation optimale de l'HT, et plus particulièrement lors de l'utilisation d'applications mono-threads. L'explication tient dans la gestion des threads par le système d'exploitation. Lors d'une utilisation courante, un système d'exploitation tel que Windows 2000 gère entre 200 et 400 threads simultanément. Cela peut sembler beaucoup, mais il faut préciser que beaucoup de ces threads sont dans un état de repos, dit "idle", et ne consomment pratiquement aucune ressource système. Cependant, un certain nombre de threads tournent en permanence, tels que les threads du système d'exploitation, toujours à l'affût du moindre événement (mouvement de la souris, frappe d'une touche, lancement d'une application...).

Prenons maintenant l'exemple de l'utilisation d'un benchmark mono-thread, programme qui par essence utilise beaucoup de ressources processeur. Sur un système avec un seul processeur, les threads tournent en alternance, et le thread du benchmark ne laisse que très peu de temps aux threads système, ce qui se traduit par une diminution perceptible du temps de réponse du système (la souris saccade par exemple), et ce d'autant plus que le bench utilise une priorité élevée.
Sur un système à deux processeurs, le thread du benchmark occupera pratiquement toutes les ressources d'un des deux processeurs, laissant le second gérer les threads annexes. Aucun ralentissement n'est alors perceptible, ce qui donne ce confort d'utilisation propre aux machines multi-processeurs.


Regardons maintenant ce qu'il se passe sur un processeur muni de l'HT. Le système d'exploitation affecte le thread du benchmark à un des deux processeurs logiques, et les threads annexes au second. Seulement cela pose un problème : le thread du benchmark est certes prioritaire sur les threads susceptibles d'utiliser le même processeur logique, mais pas du tout sur ceux tournant sur le second processeur logique (car cela n'aurait aucun sens sur un système à deux processeurs). Le résultat est que les threads annexes tournant sur le second processeur logique occupent une part non négligeable des ressources du processeur physique, et le thread lié au benchmark en sera fortement ralenti !


Afin de visualiser concrètement cet effet, regardons les résultats aux benchs CPUMark99 et ScienceMark sur notre système équipé du Pentium 4 HT, et ce sous Windows 2000 et sous Windows XP.

 

 

 

Le phénomène que nous venons de décrire apparaît de façon notable sous Windows 2000, où l'utilisation de l'HT fait chuter le résultats CPUMark de près de 20%. Sous Windows XP en revanche, l'activation de l'HT ne change rien au score. Pourquoi l'effet ne se produit-il pas sous Windows XP ?

Tout simplement parce que celui-ci est optimisé pour l'HT. En fait, la solution au problème que nous avons abordé existe : il suffit de "déconnecter" le second processeur logique lors du lancement d'une application mono-thread telle que le benchmark. Pour cela, l'OS envoie l'instruction HLT (halt) au second processeur logique afin de suspendre l'exécution des threads qui lui sont affectés. Toutes les ressources sont donc disponibles pour le premier processeur logique. Cette solution est simple, encore faut-il que l'OS l'utilise, et ce n'est pas toujours le cas car c'est une précaution inutile pour un système à deux processeurs physiques. Ainsi, Windows 2000 n'est pas à même d'exploiter correctement l'HT, ou plus précisément le cas particulier d'une application mono-thread. Mais d'une façon paradoxale, les applications multi-threads tourneront parfaitement, et à plein régime ! Quoiqu'il en soit, Intel recommande l'utilisation de Windows XP pour exploiter de façon optimale l'HT.

Voila donc pour les Systèmes d'exploitation. Concernant les applications, nous avons détecté quelques petites incompatibilités, principalement au niveau des jeux comme Heroes of Might and Magic IX ou Icewind Dale. Ces petites incompatibilités sont réglées dés l'installation du SP1 de Windows XP. Le seul problème qui nous n'avons pas réussi a résoudre est l'étrange chute de performance sous Quake 3 lorsque le paramètre "r_smp" est placé à "1". Rien de bien méchant ceci dit. Passons à la partie matérielle :

 

  • Compatibilité Hardware

Après les logiciels, il faut que le matériel soit capable de supporter l'Hyperthreading. Outre le BIOS, la pièce maîtresse de la gestion de l'Hyperthreading est le chipset. Nous avons donc repris tous les chipsets dont nous disposions pour tester le processeur et constater dans quel cas il fonctionne ou pas.

 

 

 

    • i845D

     

    Intel i845D
    Carte de test : Abit BD7-RAID
    Support Officiel : NON
    Support du processeur : OUI
    Support de l'HT : NON
    Remarque : L'i845D est la première génération supportant la DDR-SDRAM de l'I845D. Intel ne supporte pas l'Hyperthreading sur ce chipset puisque celui-ci ne supporte pas le bus 533 QDR utilisé dans le Pentium 4 3.06 Ghz. Cependant, nous avons pu faire fonctionner ce processeur sur une Abit BD7-RAID. L'hyperthreading n'était par contre, pas supporté.

     

     
    • i845E

     

    Intel i845E
    Carte de Test : Asus P4B533
    Support Officiel : OUI
    Support du processeur : OUI
    Support de l'HT : OUI
    Remarque : L'i845E fait partie des chipsets officiellement supportés par Intel pour L'Hyperthreading. Une Asus P4B533 a reconnu sans problème notre P4 3.06 Ghz ainsi que l'Hyperthreading grâce au BIOS 1011.

     

     
    • i845G

     

    Intel i845G
    Carte de Test : Epox 4G4A+
    Support Officiel : OUI/NON
    Support du processeur : OUI
    Support de l'HT : OUI/NON
    Remarque : l'i845G est assez problématique quant à son support de l'Hyperthreading. En effet, la révision A du chipset est annoncée pour ne PAS supporter l'Hyperthreading. Alors qu'une nouvelle révision (la "B") supporte, elle, l'Hyperthreading. Nous avons essayé sur une Epox 4G4A+ et une DFI NB76, les deux ont bien accepté le CPU, mais aucune n'a reconnu l'Hyperthreading.

 

 

    • i850

     

    Intel i850
    Carte de Test : Asus P4T-E
    Support Officiel : NON
    Support du processeur : NON
    Support de l'HT : NON
    Remarque : Sur une ancienne P4T-E, nous ne sommes pas parvenus à faire fonctionner le processeur à plus de 2300 Mhz (23x100). Pas d'Hyperthreading non plus et un support 533 QDR qui n'était pas stable.

     

     
    • i850E

     

    Intel i850E
    Carte de Test : Asus P4T533-C
    Support Officiel : OUI
    Support du processeur : OUI
    Support de l'HT : OUI
    Remarque : L'i850E a été l'un des premiers à être annoncé comme supportant l'Hyperthreading. Sans surprise, le support du Pentium 4 3.06 Ghz ainsi que de l'Hyperthreading est excellent. Sur l'Asus P4T533-C, un simple update du BIOS nous a permis de faire reconnaître le SMT par l'OS.

     

     
    • i845PE

     

    Intel i845PE
    Carte de Test : Abit BE7
    Support Officiel : OUI
    Support du processeur : OUI
    Support de l'HT : OUI
    Remarque : Bien que l'i845PE supporte aussi l'Hyperthreading, la BE7 d'Abit a été incapable de le détecter et de l'activer. Peut être qu'Abit sortira un nouveau BIOS des l'annonce officielle de l'Hyperthreading par Intel. La P4PE d'Asus a par contre activé l'hyperthreading directement et le tout a fonctionné sans problème

 

 

    • i845GE

     

    Intel i845GE
    Carte de Test : Asus P4GE-V
    Support Officiel : OUI
    Support du processeur : OUI
    Support de l'HT : OUI
    Remarque : L'i845GE fait aussi partie de la famille "Hyperthreading Ready". Rien à dire concernant la P4GE-V de test puisque c'est avec cette carte que nous avons réalisé tout les benchmarks de cet article.

     

     
    • VIA P4X400

     

    VIA P4X400
    Carte de Test : DFI PE21-EC
    Support Officiel : NON
    Support du processeur : OUI
    Support de l'HT : NON
    Remarque : Le P4X400 actuel ne supporte pas l'Hyperthreading. Probablement à cause du conflit qui oppose Intel à VIA sur le plan juridique. Si le processeur en lui même fonctionne correctement à 3.06 Ghz sur la carte mère de test, l'Hyperthreading est ignoré. Cependant, selon une de nos sources, le nouveau P4X400A supportera malgré tout l'Hyperthreading. Cette option est d'ailleurs présente dans son BIOS

     

     
    • SiS645

     

    SiS645 (non testé)
    Support Officiel : NON
    Support du processeur : NON ?
    Support de l'HT : NON
    Remarque : Nous n'avons actuellement aucune carte basée sur le SiS645 pour pouvoir faire des tests. Cependant, ce chipset ne supporte pas officiellement le FSB 533 QDR et ne supportera donc jamais l'Hyperthreading.

 

     
    • SiS645dx

     

    SiS645dx
    Carte de Test : Asus P4S533
    Support Officiel : NON
    Support du processeur : OUI
    Support de l'HT : NON
    Remarque : le SiS645dx réagit comme tous les chipsets qui ne sont pas prévus pour l'Hyperthreading. Le processeur fonctionne, mais aucune trace de l'HT.

     

     
    • SiS648

     

    SiS648
    Carte de Test : Abit SR7-8X
    Support Officiel : NON
    Support du processeur : OUI
    Support de l'HT : NON
    Remarque : Même chose pour le SiS648. Actuellement, le BIOS de la SR7-8X ne supporte pas cette option et n'est donc pas à même d'activer l'Hyperthreading. Selon SiS, une nouvelle révision du SiS648 sera nécessaire pour supporter cette option. Cependant, selon certaines rumeurs, un simple update de BIOS permettra d'activer cette fonctionnalités. A l'heure où nous écrivons ces lignes (Octobre 2002), aucune information n'a filtré.
    [Update Novembre 2002] : Il semble que le SiS648 actuel soit capable d'un support partiel de l'Hyperthreading selon Asus et Abit. Il faudra probablement attendre le 14 pour en savoir plus.

 

 

Concernant le support du Pentium 4 3.06 Ghz proprement dit, toutes les cartes à l'exception de la P4T-E d'Asus ont été en mesure de supporter la fréquence de 3066 Mhz. C'est donc un succès et les rumeurs de cartes FMB 2.0 absolument nécessaires n'était bien qu'un argument marketing pour promouvoir la nouvelle génération de cartes mères. Pour ce qui est du support de l'Hyperthreading par contre, il semble que le support soit plus restreint. Si tous les chipsets Intel recents le supporte, il faut encore que le constructeur de la carte-mère publie un update de BIOS pour l'activer. Concernant SiS, le tableau est moins rose. Seul le SiS648 peut prétendre au support de l'Hyperthreading. Et seulement d'une manière partielle... Ceci dit, tous les chipsets à venir supporteront l'Hyperthreading, que ce soit le SiS648FX, le SiS655 ou l'E7205 chez Intel.

 

Suite ( Overclocking )

Fermer