PDA

Voir la version complète : Activation de l'Hyper-Threading



Franck@x86
13/11/2002, 21h47
Suite à la news de VR-Zone sur l'activation de l'Hyper-Threading sur un P4
2.4GHz, je pense qu'il faut éclaircir un certain nombre de points, pour
éviter de gober tout et n'importe quoi.

Pour dire les choses clairement, il n'est pas possible d'activer l'HT sur un
P4 qui ne le supporte pas, et ce quoique fasse le BIOS.

On peut légitimement affirmer qu'Intel n'a pas pris le risque de permettre
l'activation de l'hyper-threading par un simple "tweak", et que, comme pour
les coefficients multiplicateurs, le bridage s'effectue au niveau des
transistors (ceci vaut également pour toute "désactivation" du même style,
je pense particulièrement au cache L2 des Celerons).

Voilà, et maintenant qu'en est-il de la démonstration publiée sur VR-Zone ?
Il s'agit très certainement d'un processeur confidentiel supportant l'Hyper-Threading. Intel a distribué aux constructeurs de tels processeurs à des fréquences inférieures à 3.06GHz.
Et donc rien à voir avec nos processeurs à nous qu'on a...

Voilà voilà ...

Doc TB
13/11/2002, 21h56
Le mec de VRZone dit :


You need to trick the BIOS into thinking it is an Officially supported CPU. I'm trying to figure out a BIOS hack... That was a once-off a lucky stumble if you like... I'm currently still unable to replicate the results...but if i do...believe me vr-zone would be the first to post the solution =)


Cependant, je suis entierement d'accord avec Franck, c'est impossible d'activer l'Hyperthreading de la sorte. Par contre, pense-tu qu'il soit possible que l'OS "pense" qu'il y ait deux CPUs a cause d'une information erronée renvoyée par le BIOS ?

Franck@x86
13/11/2002, 23h11
Pour répondre à ta question il faut comprendre le rôle joué par le BIOS dans l'activation de l'HT, et l'interaction entre le nombre de processeur et l'OS. Enfin du moins je vais tenter d'exposer brièvement ce que j'en ai compris ...

L'hyper-threading ne s'active pas grâce à un simple flag "activé / désactivé". Le processus d'initialisation des processeurs logiques est très proche de celui utilisé pour initialiser les deux processeurs (ou plus) dans un système SMP, à savoir le suivant :

Au boot, seul le processeur principal, appelé BSP (Boot Strap Processor) est actif et exécute le code du BIOS, tout comme dans un système à un processeur. Il a entre autres tâches de "réveiller" les autres processeurs du système (appelés "AP", Application Processor) en envoyant un signal sur le bus. En cas de réponse, le ou les AP sont branchés sur une partie de code du BIOS chargée de les initialiser à leur tour (ceci explique d'ailleurs pourquoi sur les écrans de boots de certains systèmes la présence du second processeur n'apparaît qu'un peu plus tard à l'écran), et chaque AP se trouve affecté d'un identifiant, le fameux APIC. Ainsi se construit, lors du processus de boot, une table d'APICs.

L'initialisation de l'hyper-threading est très proche : au boot, seul le premier processeur logique (jouant le rôle du BSP) est actif, et le second processeur logique est initialisé comme un AP (à quelques nuances près bien entendu).

Lorsque l'OS démarre, il compte juste les APICs, et considère autant de processeurs présents qu'il compte d'APICs différentes. L'HT créant deux APICs, l'OS voit deux processeurs, c'est aussi simple que ça.
Maintenant tout est possible, et on peut imaginer un BIOS renvoyant un nombre d'APICs supérieur à la réalité, mais si l'APIC n'est supportée par aucun processeur (physique ou logique), cela n'ira pas bien loin ...

En complément de l'article, comme le sujet des APICs n'a pas été abordé du tout (pour ne pas le rendre encore plus indigeste :-), et pour ceux que ça intéresse, ajoutons que Windows XP est capable de distinguer un processeur logique d'un processeur physique par l'APIC justement : un APIC impair correspond à un processeur logique (en fait l'APIC du processeur physique + 1). Ainsi, par exemple une liste d'APIC qui vaut 0, 1, 6, 7 correspond à deux processeurs (2 Xeons donc) hyperthreadés (0 et 6) et les deux processeurs logiques associés (1 et 7). L'OS voit donc 4 CPUs (s'il est capable d'en gérer autant).

Primus
14/11/2002, 12h47
Bonjour, j'ai une petite question : est-ce que sur les P4 ES il est possible que l'HT soit activable, car les coefs sont débloqués donc il y a peut etre une petite chance pour que l'HT soit activable ?

J'ai actuellement un P4 2Ghz ES (Core Northwood B0), mais je n'ai pas de carte mere (j'ai une MSI 645 Ultra :sweat: ) qui supporte l'HT, pour faire le test.

Est-ce que d'autres possesseurs de P4 ES ont deja fait le test (Je pensais a The Mad :wink: )?

Franck@x86
14/11/2002, 13h30
Regarde combien tu as de processeurs logiques (avec cpu-z par exemple, dans la page "features", "Logical CPU#").

Primus
14/11/2002, 13h43
J'ai 1 seul CPU logique avec CPUZ :sweat: , mais ma carte mere ne supporte pas du tout l'HT et pas officiellement les P4B, ca aurais une influence sur le resultat de CPUZ ?

Franck@x86
14/11/2002, 14h09
J'ai bien peur que non, cette info est renvoyée par cpuid, donc interne au processeur. Même si l'HT n'est pas activé ça renverrait 2 s'il était supporté.

Primus
14/11/2002, 14h30
:jap: , je vais essayer de voir de mon coté si on peut pas me preter une mobo qui supporte l'HT et faire le test, je vous tiendrais au courant :wink: