Processeurs : que nous réserve le multi-core ?

Gestion du Multi-Threading par un CPU super-scalaire

Publié le 25 octobre 2004 , par Alexandre K - mis à jour le 03 février 2010 à 00h

Lors d'une utilisation classique, même bureautique, de nombreux threads cohabitent et qui doivent tous être exécutés. Le microprocesseur se doit donc de les exécuter un par un, ce qui ne va pas sans poser quelques problèmes. En effet, lors de son exécution, l'état d'un thread est stocké dans des registres internes au CPU. Lorsque le microprocesseur débute l'exécution d'un nouveau thread, le système d'exploitation (Windows par exemple) doit copier dans la RAM les informations relatives à l'état du premier thread. Cette opération fait donc appel à une couche logicielle, ce qui prend un temps non négligeable. On appelle cette période de transition entre deux threads "context switch". Nous avons donc le schéma suivant, en prenant pour exemple un CPU super-scalaire "4-ways" :

Image

Ici, les carrés bleus représentent les exécutions d'instructions relatives au thread 1, et les carrés rouges celles relatives au thread 2. En gris sont représentées celles permettant le context switch, et vous pouvez observer la perte de cycles, donc de rendement. On appelle ce type de perte une "perte verticale".

Cependant, même si le CPU perd du temps dans cette opération, et même si elle se répète assez souvent selon les situations, il ne faut pas perdre de vue le fait qu'une poignée de cycles ne représente que quelques nanosecondes, l'utilisateur a donc une impression de traitement simultané des threads, bien que ce ne soit pas le cas. C'est ce mode de fonctionnement qu'utilisent les Athlon XP/64/FX et les Opteron d'AMD.

Technologies de Multi-Threading   Gestion du Multi-Threading par un CPU super-scalaire CMT
Les commentaires sur ce document sont clos.
  • Tout
  • Hi-Tech
  • Matériel
  • Mac
  • Jeux

Derniers Tests

Tous les tests