version PDF - Flash informatique

Transcription

version PDF - Flash informatique
Saut de puces
[email protected], Domaine IT
La
communauté d’utilisateurs Apple Macintosh a
évidemment été ébranlée par l’invraisemblable annonce faite durant la conférence annuelle des développeurs,
le 6 juin 2005, par le charismatique cofondateur de Apple,
Steve Jobs:
Apple abandonne l’usage des processeurs PowerPC, pour adopter les nouveaux processeurs Intel ! (citation officielle: Enfin
ensemble (Together at last), ce qui pourrait signifier: enfin les
mêmes processeurs que ceux de la concurrence)
Pour une entreprise qui basait toute sa stratégie matérielle
et même logicielle sur la différence d’architecture de processeur, et son lien indéfectible avec Motorola depuis le premier
Macintosh en 1984, l’événement avait de quoi surprendre.
Souvenons-nous que Jean-Louis Gassée, à cette époque
président de Apple-France, déclarait que le
Mac OS était optimisé pour le 68000,
et qu’il ne tournerait pas correctement
sur un x86.
Préambule
La course effrénée à la puissance
de calcul était jusqu’alors le principal
moteur de développement des processeurs. Et l’argument de la fréquence
horloge exprimée en mégahertz, puis gigahertz, occultait tous les autres. Finalement,
existe-t’il meilleur argument commercial ?
Jusqu’alors non, mais les problèmes d’autonomie des ordinateurs portables ont conduit à repenser
la stratégie commerciale, et la réorienter sur la sobriété.
Si les premiers ordinateurs portables étaient tout juste
aptes à effectuer du traitement de texte et des feuilles de
calcul, il y a longtemps que tous les processeurs sur le marché
peuvent assumer les tâches courantes les plus exigeantes, et
en particulier celles qui requièrent une exécution en temps
réel, telles que la décompression de formats d’encodage vidéo
les plus récents, voire même leur compression.
Dès lors, le principal souhait des utilisateurs est devenu
celui de l’autonomie des ordinateurs portables. Alors après
la remarquable évolution technologique des accumulateurs
électriques, il était impératif d’explorer les possibilités d’économie énergétique.
Désormais, la devise, ou le critère de mesure, est le Power
per Watt, autrement dit la puissance de calcul relative à la
puissance électrique consommée, ce qui revient presque à
parler de rendement thermodynamique des processeurs.
Et pour atteindre cet objectif, un changement d’architecture de processeur s’imposait, marqué par l’adoption de
l’architecture VLIW (Very Long Instruction Word).
Revenons alors brièvement sur les étapes marquantes de
l’histoire du Macintosh:
24 janvier 1984
 Le premier Mac 128K est annoncé au public.
 Son microprocesseur Motorola 68000, cadencé à 8 MHz,
est le plus puissant et le plus grand du marché, et le
premier microprocesseur microcodé de l’histoire.
 Sa numérotation reflétait justement le nombre de transistors que comportait le circuit: 68000.
 C’est un processeur d’architecture CISC.
 L’ultime modèle de la lignée fût le 68040 cadencé à
110 MHz.
14 mars 1994
 Annonce des premiers processeurs Motorola &
IBM PowerPC 601 cadencés de 60 à 80 MHz.
 Les logiciels, ainsi qu’une majeure partie
du système d’exploitation, s’exécutaient par
émulation du jeu d’instructions 68040 sans
FPU, par l’entremise d’un interpréteur à
recompilation dynamique.
 Le dernier modèle de la lignée est
aujourd’hui le G4 cadencé à 1.67 GHz
 C’est un processeur d’architecture
RISC.
23 juin 2003
 Annonce de la collaboration avec
IBM pour les nouveaux PowerPC G5,
cadencés de 1.6 à 2 GHz.
 La feuille de route initiale de IBM
prévoyait d’atteindre les 3 GHz en été
2004 afin de rattraper les Pentium, mais tel
ne fût pas le cas.
 Malheureusement, à l’été 2005, le plafond se situait
encore 10% en dessous de cet objectif. Et toujours pas
de version adaptée aux portables annoncée.
6 juin 2005
 Annonce de la transition sur les nouveaux processeurs
Intel, dès 2006, et complète conversion de la gamme en
2007.
Il est évidemment cocasse de se souvenir des publicités
comparatives Apple, à commencer par les
vidéos Snail et Toasted Bunnies, parues lors de l’annonce du PowerPC
G3 en 1997, se riant de la
lenteur des exothermiques
processeurs Pentium. Puis, suite
à l’annonce des PowerPC G5: Le G5
qui pulvérise le Pentium 4 dans une multitude
de tests et réduit en miettes la réputation des PC !
Un pareil retournement de situation requiert un décodage. Afin de mieux comprendre le contexte, retraçons
l’histoire récente de l’architecture des processeurs.
FI 9 – 22 novembre 2005 – page Saut de puces
Objectif des architectures
CISC
L’architecture CISC (Complex Instruction Set Computer)
visait à effectuer une tâche avec le minimum d’instructions,
d’où des instructions très complexes à décoder, nécessitant
de nombreuses impulsions d’horloge pour être traitées. Cette
particularité présentait à l’époque un avantage substantiel, car
les mémoires centrales ayant des temps d’accès très longs, les
codes exécutables compacts réduisaient proportionnellement
le nombre d’accès-mémoire.
De surcroît, l’adressage orthogonal impliquait que chaque instruction puisse accéder à tous les modes d’adressage,
complexifiant inutilement la circuiterie.
Une importante part des transistors que comportaient
les processeurs était affectée au traitement d’instructions
rarement utilisées. Ceci essentiellement parce que les compilateurs produisaient intrinsèquement des codes exécutables
comportant un jeu d’instructions réduit.
D’où l’idée de développer une nouvelle génération de
processeurs optimisés pour les instructions les plus usitées.
Exemples d’architectures CISC:
PDP-11, VAX, 68000, x86, Pentium.
L’architecture RISC (Reduced Instruction Set Computer)
visait à simplifier radicalement la circuiterie de décodage
d’instructions et de traitement, par réduction de leur nombre.
En effet, l’observation du code produit par les compilateurs
a conduit au constat suivant: seul un petit sous-ensemble du
jeu d’instruction des processeurs CISC était exploité, d’où
l’idée de réduire ce jeu aux instructions les plus usitées, tout
en optimisant leur décodage et économiser ainsi une importante circuiterie de décodage devenue superflue.
Le second objectif était d’optimiser le traitement de chaque instruction et de s’assurer qu’une instruction soit terminée à chaque coup d’horloge, par l’adoption de pipeline. Leur
fonctionnement s’apparente à une chaîne de production, où
chaque phase d’une instruction est traitée séquentiellement,
chaque unité de cette chaîne accomplissant une seule étape
de son traitement. (analogie avec la chaîne de production,
Charlie Chaplin dans Les temps modernes).
Dans un processeur sans pipeline, l’exécution d’une
instruction ne peut commencer avant la fin d’exécution de
l’instruction précédente.
t
FE
t+1
DE
FE
t+2
EX
DE
FE
t+3
EX
DE
FE
t+4
EX
DE
t+5
La classification CISC/RISC demeure parfois ambiguë,
car le Pentium 4 est vu de l’extérieur comme un processeur
CISC, alors qu’intérieurement, il fonctionne comme un
RISC émulant un CISC, par le truchement de suites d’instructions internes constituant un étroit microcode vertical.
Exemples d’architectures RISC:
Alpha, ARM, HP-PA, Sparc, Mips, PowerPC.
VLIW
vÀœ˜ÌÊi˜`ÊiÌ
œ«Ìˆ“ˆÃ>̈œ˜
ÃÕ«iÀÃV>>ˆÀi
`jÌiÀ“ˆ˜>̈œ˜Ê`iÃ
`j«i˜`>˜ViÃ
`jÌiÀ“ˆ˜>̈œ˜Ê`iÃ
`j«i˜`>˜ViÃ
>œV>̈œ˜Ê`iÃ
ÀiÃÜÕÀViÃ
67
>œV>̈œ˜Ê`iÃ
ÀiÃÜÕÀViÃ
iÝjVṎœ˜
Vœ“«ˆ>ÌiÕÀ
>ÀV…ˆÌiVÌÕÀi
«ÀœViÃÃiÕÀ
Tout le travail de détermination des dépendances, et
d’assignation des ressources, jusqu’alors assuré au vol par une
complexe circuiterie dans les processeurs RISC, est désormais
reporté sur le compilateur, qui l’accomplira une seule fois en
amont pour toutes les exécutions ultérieures.
ˆ˜ÃÌÀÕV̈œ˜Ê67
“iÌ>‡ˆ˜ÃÌÀÊÓ
“iÌ>‡ˆ˜ÃÌÀÊ£
“iÌ>‡ˆ˜ÃÌÀÊä
`jVœ`>}i
`jVœ`>}i
`jVœ`>}i
՘ˆÌjÊ`i
ÌÀ>ˆÌi“i˜ÌÊÓ
՘ˆÌjÊ`i
ÌÀ>ˆÌi“i˜ÌÊ£
՘ˆÌjÊ`i
ÌÀ>ˆÌi“i˜ÌÊä
EX
La plupart des processeurs RISC récents spéculent sur le
branchement conditionnel qui sera effectué avant même que
le calcul du résultat ne soit terminé, et préchargent le pipeline
en conséquence. L’inconvénient majeur des pipelines est leur
décrochage en cas de branchement contraire au branchement
prévu. Si les constructeurs n’hésitent pas à dévoiler leurs
statistiques de prédiction de saut, et claironner un taux de
FI 9 – 22 novembre 2005 – page 10
Remarque:
L’architecture VLIW (Very Long Instruction Word) vise à
transférer toute l’optimisation de l’exécution du programme
et des branchements sur le compilateur, en implémentant une
forme de parallélisme au niveau de l’instruction.
RISC
i
i+1
i+2
i+3
branchements réussis de 90%, ils se gardent bien d’indiquer
la pénalité temporelle supportée en cas d’échec. Lorsque le
branchement est contraire à la prédiction, il faut vidanger le
pipeline et recommencer l’exécution du bloc d’instructions
concerné par ce branchement. La pénalité temporelle issue
de cette récupération est importante, surtout si elle intervient
répétitivement.
Pour affiner ces spéculations, il a fallu encore complexifier la circuiterie d’acheminement, ce qui a encore érodé la
simplicité originelle de l’architecture RISC.
Pour y parvenir, le mot mémoire doit nécessairement
comporter plusieurs instructions, chacune étant attribuée à
une unité de traitement. C’est la raison de cette architecture à
long mot. Cette notion est similaire à la large microprogrammation horizontale, jadis utilisée par les Digital Equipment
PDP-8. Ces processeurs offraient la possibilité de microprogrammer nos propres instructions optimisées au moyen du
Writable Control Store.
Saut de puces
Feuille de route de Intel
Comme pour les processeurs superscalaires, on recourt
à plusieurs unités de traitement (ex. 2 multiplicateurs)
permettant au processeur d’exécuter plusieurs opérations simultanées (ex. 2 multiplications). Si le processeur est capable
d’effectuer 2 opérations arithmétiques simultanées, il ne faut
toutefois pas que l’une des 2 instructions dépende de l’autre.
Si tel est le cas, la seconde sera mise en veille, en attendant
que la première soit effectuée. Avec l’architecture RISC, le
traitement en découlant était entièrement assumé par le matériel, alors qu’avec l’architecture VLIW, le compilateur ajuste
le séquencement des opérations, en assignant une instruction
blanche (NOP) à la seconde unité arithmétique, dans l’attente
que la première unité ait terminé sa multiplication.
Dans l’architecture VLIW, le compilateur utilise des
méthodes heuristiques pour déterminer la probable direction
du branchement conditionnel. Cela lui permet de déplacer
spéculativement des instructions avant que le branchement
ne soit pris, favorisant les instructions concurrentes. Toutefois, si le branchement s’avère opposé à la prédiction, le
compilateur aura déjà préparé un code exécutable alternatif
écartant les résultats spéculatifs, et préservant ainsi la sémantique du programme.
Découlant de ce qui précède, une part considérable
de transistors pouvant être supprimée, la complexité et la
consommation du circuit intégré en bénéficient directement.
Exemples d’architectures VLIW:
Philips Trimedia, Intel Itanium, Transmeta Crusoe.
Balance des performances.
La puissance de calcul étant déterminée par cette équation, nous observons que les processeurs CISC minimisent le
nombre d’instructions nécessaires à l’accomplissement d’une
tâche, alors que les processeurs RISC minimisent le nombre
d’impulsions d’horloge requises pour chaque instruction. En
revanche, grâce au pipeline, à l’architecture superscalaire et
à l’optimisation des instructions, le processeur RISC prend
l’avantage.
Les processeurs VLIW, quant à eux, ne souffrent pas d’effet de bord affectant leur performance, et s’inscrivent dans la
lignée des RISC, avec les avantages d’une circuiterie réduite
et d’une substantielle optimisation fonctionnelle.
Production de processeurs dont les enveloppes de
consommation respective n’excèdent respectivement pas
5 W pour les portables, 65 W pour les desktops et 80 W
pour les serveurs.
Ceci revient à spectaculairement diviser la consommation
spécifique par 4 en regard des actuels Pentium M.
Cela donnera un facteur puissance/consommation
[SPECint / Watt] de 70 pour les nouveaux processeurs Intel
contre 15 pour les actuels IBM G5 (!)
Toujours en ce qui concerne les portables, Intel produira
le premier processeur en nouvelle architecture, nom de code
Yonah, d’ici fin 2006, puis Merom en 2007, ce dernier devant
atteindre l’objectif des 5 W.
Energy cutbacks
Current [Watt]
Coming [Watt]
Notebooks
22 Pentium M
5.0 Merom
Desktops
95 Pentium 4
65 Conroe
Servers
110 Xeon
80 Woodcrest
Tous seront des processeurs multi-cores, et Merom sera
doté d’une gestion sophistiquée de l’alimentation électrique
permettant d’ajuster individuellement la tension de service
des noyaux.
Conclusion
La remarquable reprise de parts de marché par Apple
s’est essentiellement réalisée grâce à sa ligne de portables,
depuis l’avènement du PowerBook G4 Titanium en 2001.
Par conséquent, la consommation des processeurs est une
question primordiale pour Apple, et ne pas se faire distancer
par la concurrence dans le domaine des portables est une
question de survie. La récente inversion de parts de marché
entre ordinateurs portables et ordinateurs de bureau est
d’ailleurs observée chez tous les constructeurs.
Cette drastique réduction de la consommation électrique des processeurs laisse augurer une nouvelle génération
d’ordinateurs portables disposant d’une autonomie énergétique suffisante pour travailler durant une traversée de
l’atlantique et, idéalement, pour visionner entièrement un
film sur DVD.
Corollaire de cette réduction des dissipations thermiques, elle pourrait enrayer la dramatique baisse de fertilité
masculine (...)
Remerciements
Au Prof. Eduardo Sanchez pour son exceptionnelle
présentation à PolyMac le 26 septembre, qui a servi de base
à cet article. n
FI 9 – 22 novembre 2005 – page 11

Documents pareils