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 ÌÀ>ÌiiÌÊÓ ÕÌjÊ`i ÌÀ>ÌiiÌÊ£ ÕÌjÊ`i ÌÀ>ÌiiÌÊä 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