Accueil » Dossier » L’émergence du 64 bits » Page 10

L’émergence du 64 bits

1 : Introduction 2 : Le 64 bits qu’est ce que c’est ? 3 : Le 64 bits, quel intérêt ? 4 : Le 64 bits selon AMD 5 : Le 64 bits selon AMD (suite) 6 : AMD64 7 : AMD64 (suite) 8 : Le 64 bits selon IBM 9 : Le PowerPC 970 11 : Conclusion

Le PowerPC 970 (suite)

Mais cette astuce a bien évidemment des inconvénients qui limitent l’efficacité. En effet l’organisation des groupes répond à plusieurs règles strictes. La première coule de source : les 5 slots de chaque groupe doivent être remplis dans l’ordre du programme, l’instruction la plus ancienne étant située dans le slot 0 etc. Pourquoi coule de source ? Tout simplement parce que comme on l’a vu que, pour économiser les ressources, le Reorder Buffer du PPC970 (appelé GCT : Group Completion Table) ne conserve que l’ordre des groupes et pas des instructions indépendantes le formant. Le programme devant se dérouler dans l’ordre il faut trouver un moyen de connaître l’ordre des instructions dans chaque groupe sans le conserver sinon tout l’intérêt d’utiliser des groupes serait perdu.
La seule solution c’est donc celle qui a été choisie par IBM : imposer un ordre prédéfini dans le remplissage des slots. La deuxième règle est que le slot 4 est réservé aux instructions de branchement uniquement et c’est le seul slot à les accepter et, vu les restrictions sur l’ordre des instructions au sein d’un groupe, il peut donc être parfois nécessaire de remplir certains des slots précédents avec des instructions noop (instruction qui ne fait rien et laisse donc des ressources inutilisées). Si l’ordonnanceur ne parvient pas à trouver dans sa fenêtre de traitement une instruction de branchement à insérer dans ce slot alors il sera contraint d’y mettre une instruction Noop ce qui une fois de plus contribuera à diminuer l’efficacité de l’ensemble.

Voilà pour les principales limitations, le groupe est ensuite envoyé aux unités d’exécution (toutes les instructions le composant sont envoyées ensembles) les résultats sont disponibles lorsque les groupe a terminé son exécution (i.e lorsque toutes les instructions le composant ont terminé leur exécution). Pour être tout à fait correct toutefois il convient de préciser qu’avant qu’un groupe ne puisse être envoyé aux unités d’exécution, certaines ressources doivent être disponibles. Il faut en particulier qu’une entrée dans le GCT soit libre, qu’un slot soit inoccupé dans les files d’exécution utilisées par chaque instruction du groupe et, si cela est nécessaire, que des registres de renommage soient disponibles. Tant que ces conditions ne sont pas remplies pour toutes les instructions du groupe, ce dernier ne peut pas être transmis aux unités d’exécution.

Le PPC970 s’accompagne également d’un nouveau FSB constitué de deux bus unidirectionnels de 32 bits chacun qui a beaucoup fait parler de lui. Si l’on écoute Apple, ce bus « magique » (le terme provient d’Apple…) opère à une fréquence pouvant atteindre 1GHz et offre une bande passante supérieure à celle proposée par le meilleur bus d’intel. En pratique les choses ne sont pas aussi tranchées : tout d’abord le bus n’est pas cadencé à 1GHz, il est effectivement synchrone avec le CPU mais ne fonctionne pas à la moitié de sa fréquence, seulement au quart soit 500MHz pour un PPC970 à 2GHz. Toutefois il est de type DDR ce qui offre en théorie l’équivalent d’un bus SDR à 1GHz même si ces raccourcis nous semble toujours bien hasardeux. Mais comme en pratique intel et AMD utilise la même manie on n’en tiendra pas rigueur à Apple.

En revanche ce que ne précise pas Apple en comparant ces chiffres avec ceux d’intel, c’est que ce dernier tout comme AMD utilisent un bus bidirectionnel ce qui dans certaines conditions permet d’obtenir une meilleur bande passante. Dans le cas où il n’y aurait que des écritures en mémoire ou que des lectures la bande passante du PPC970 est divisée par deux car un des deux bus reste inutilisé, ce qui n’est pas le cas des solutions concurrentes. Donc si la bande passante agrégée du PPC970 est supérieure à celle de ses concurrents son bus est en revanche moins flexible et par conséquent moins apte à atteindre son maximum théorique. De plus contrairement aux autres processeurs qui utilisent des chemins distincts pour les données, les adresses et les informations de contrôle le bus du PPC970 multiplexe toutes ces informations sur un seul chemin, ce qui économise certes des ressources mais diminue aussi l’efficacité.
On le voit donc ce bus est moins impressionnant que le marketing veut le laisser croire, mais il reste tout de même une belle réussite technologique et loin de nous l’idée de vouloir minimiser le travail des ingénieurs d’IBM. Une dernière particularité de ce bus est qu’il est de type point à point ce qui signifie que dans un environnement multi processeur chaque processeur dispose d’une interface dédiée vers le chipset, c’est la même technique que celle du bus EV6 de l’Athlon et de l’Alpha, et cette solution est nettement supérieure au bus partagé d’intel.

Comme cette partie vient de le présenter, vous avez du comprendre que le mot d’ordre du PPC970 est démesure : démesure dans le nombre d’étages du pipeline, démesure dans le nombre d’unités d’exécution, démesure dans la conception du bus. Cela contraste grandement avec l’architecture de son prédécesseur dans les machines d’Apple, le G4, qui misait tout sur un contrôle précis de ce qui se passait et une efficacité maximale. A l’inverse il est extrêmement probable qu’à chaque cycle de nombreuses ressources du PPC970 soient inexploitées à cause des restrictions que nous avons vues, mais ses nombreuses unités d’exécution et sa fréquence largement supérieure lui permettent de contrebalancer largement la perte d’efficacité. Au final comme toujours on en revient à une question de compromis : que faut il privilégier ? L’efficacité au détriment de la fréquence (G4) ou bien l’inverse (P4) ? Pour sa nouvelle architecture IBM semble avoir tranché en faveur de la deuxième solution et déjà Motorola semblait avoir fait le même constat en développant le G4e une version de son processeur atteignant de plus hautes fréquences mais au détriment de l’IPC.

Sommaire :

  1. Introduction
  2. Le 64 bits qu’est ce que c’est ?
  3. Le 64 bits, quel intérêt ?
  4. Le 64 bits selon AMD
  5. Le 64 bits selon AMD (suite)
  6. AMD64
  7. AMD64 (suite)
  8. Le 64 bits selon IBM
  9. Le PowerPC 970
  10. Le PowerPC 970 (suite)
  11. Conclusion