|
{revue}
Un microprocesseur est un processeur dont les composants ont été suffisamment miniaturisés pour être regroupés dans un unique circuit intégré. Fonctionnellement, le processeur est la partie d’un ordinateur qui exécute les instructions et traite les données des programmes.
DescriptionJusqu’au début des années 1970, les différents composants électroniques formant un processeur ne pouvaient tenir sur un seul circuit intégré. On devait donc les placer sur plusieurs circuits intégrés. En 1971, la société américaine Intel réussit, pour la première fois, à placer tous les transistors qui constituent un processeur sur un seul circuit intégré donnant ainsi naissance au microprocesseur1. Cette miniaturisation a permis :
Les principales caractéristiques d'un microprocesseur sont :
Tout ceci est théorique, dans la pratique, selon l'architecture du processeur, le nombre de cycles d'horloge pour réaliser une opération élémentaire peut varier d'un cycle à plusieurs dizaines par unité d'exécution (typiquement une sur un processeur classique). Par exemple, un processeur A cadencé à 400 MHz peut être plus rapide qu'un autre B lui cadencé à 1 GHz, tout dépend de leurs architectures respectives. La combinaison des caractéristiques précédentes détermine la puissance du microprocesseur. La puissance d'un microprocesseur s’exprime en Millions d'Instructions Par Seconde (MIPS). Dans les années 1970, les microprocesseurs effectuaient moins d’un million d’instructions par seconde, les processeurs actuels (en 2007) peuvent effectuer plus de 10 milliards d’instructions par seconde. Histoire
Illustration de la loi dite de « progression géométrique » qui régit l’évolution du nombre de transistors sur les puces de silicium. Source : adapté de "Nanoinformatique et intelligence ambiante - Inventer l'ordinateur du XXIe siècle" Jean-Baptiste Waldner, Hermes Science, Londres, 2007 (avec la permission de l'auteur).
Le microprocesseur a été inventé par deux ingénieurs d'Intel: Marcian Hoff (surnommé Ted Hoff) and Federico Faggin. Marcian Hoff a formulé l'architecture du microprocesseur (une architecture de bloc et un jeu d'instructions) en 1969. Federico Faggin a inventé la conception du microprocesseur (méthodologie de conception nouvelle pour la puce et la logique, fondée pour la première fois sur la technologie silicon gate développé par lui en 1968 at Fairchild; conception de circuits et de la logique; nouveau layout; plusieurs nouvelles solutions techniques) en 1970. Federico Faggin a aussi dirigé l’execution du premier microprocesseur jusqu'à son introduction sur le marché en 1971. [1]
Le premier microprocesseur commercialisé, le 15 novembre 1971, est l' Intel 4004 4-bits. Il fut suivi par l'Intel 8008. Ce microprocesseur a servi initialement à fabriquer des contrôleurs graphiques en mode texte, mais jugé trop lent par le client qui en avait demandé la conception, il devint un processeur d'usage général. Ces processeurs sont les précurseurs des Intel 8080, Zilog Z80, et de la future famille des Intel x86. Le tableau suivant décrit les principales caractéristiques des microprocesseurs fabriqués par Intel et montre leur fulgurante évolution à la fois en augmentation du nombre de transistors, en miniaturisation des circuits et en augmentation de puissance. Il faut garder à l'esprit que si ce tableau décrit l'évolution des produits d'Intel, l'évolution des produit des concurrents on suivis avec plus ou moins d'avance ou retard la même marche. Un programme informatique est, par essence, un flux d'instructions exécutées par un processeur. Chaque instruction nécessite un à plusieurs cycles d'horloge, l'instruction est exécuté en autant d'étape que de cycle nécessaire. Les microprocesseurs séquentiels exécutent l'instruction suivante lorsqu'ils ont terminé l'instruction en cour. Dans le cas du parallélisme d'instruction, le microprocesseurs pourra traiter plusieurs instructions dans le même cycle d'horloge, à condition que ces instructions différentes ne mobilisent pas simultanément une unique ressource interne. Autrement dit, le processeur exécute des instructions qui se suivent, et ne sont pas dépendantes l'une de l'autre, à différents stades d'achèvement. Cette file d'exécution à venir s'appelle un pipeline. Ce mécanisme a été implémenté la première fois dans les années 1960 par IBM. Les processeurs plus évolués exécutent en même temps autant d'instructions qu'ils ont de pipelines, ce à la condition que tous les instructions à exécuter parallèlement ne soient pas interdépendantes, c'est à dire que, le résultats de l'exécution de chacune d'entre elles ne modifie pas les conditions d'exécution de l'une des autres. Les processeurs de ce types sont appelés processeurs superscalaires. Le premier ordinateur a être équipé de ce type de processeur était le Seymour Cray CDC 6600 en 1965. L'Intel Pentium 5 est le premier des processeurs superscalaires pour compatible PC. Aujourd'hui, les concepteurs de processeur ne cherchent pas simplement à exécuter plusieurs instructions indépendantes en même temps, ils cherchent à optimiser le temps d'exécution de l'ensemble des instructions. Par exemple le processeur peut trier les instructions de manière à ce que tous ses pipelines contiennent des instructions indépendantes. Ce mécanisme s'appelle l'exécution out-of-order. Ce type de processeur s'est imposé pour les machines grand public à partir des années 1980 et jusqu'aux années 19904. L'exemple canonique de ce type de pipeline est celui d'un processeur RISC, en cinq étapes. Le Intel Pentium 4 dispose de 35 étages de pipeline5. Un compilateur optimisé pour ce genre de processeur fournira un code qui sera exécuté plus rapidement. Pour éviter une perte de temps liée à l'attente de nouvelles instructions et surtout le délais de rechargement du contexte entre chaque changement de threads, les fondeurs6 ont ajouté à leurs processeurs des procédés d'optimisations pour que les threads puissent partager les pipelines, les caches et les registres. Ces procédés, regroupé sous l'appelation Simultaneous Multi Threading, ont été mis au point dans les années 1950. Par contre, pour obtenir une augmentation des performances, les compilateurs doivent prendre en compte ces procédés, il faut donc re-compiler les programmes pour ces types de processeurs. Intel a commencé à produire, début des années 2000, des processeurs implémentant la technologie SMT à deux voies. Ces processeurs, les Xeon, peuvent exécuter simultanément deux threads qui se partagent les mêmes pipelines, caches et registres. Intel a appelé cette technologie SMT à deux voies : l’Hyperthreading. Le Super-threading est, quant à lui, une technologie SMT dans la quelle plusieurs threads partagent aussi les mêmes ressources, mais ces threads ne s'exécutent que l'un après l'autre et non simultanément. Depuis longtemps déjà, existait l'idée de faire cohabiter plusieurs processeurs au seins d'un même composant, par exemple les System on Chip. Cela consistait, par exemple, à ajouter au processeur, un coprocesseur arithmétique, un DSP, voir un cache mémoire éventuellement même l'intégralité des composants que l'on trouve sur une carte mère. Des processeurs utilisant deux ou quatre cores sont donc apparus comme par exemple le POWER4 d'IBM sorti en 2001. Il disposent des technologies citées préalablement. Les ordinateurs qui disposent de ce type de processeurs coûte moins cher que l'achat d'un nombre équivalent processeurs, cependant, les performances ne sont pas directement comparable, cela dépend du problème traité. Des API spécialisées ont été développées afin de tirer parti au mieux de ces technologies, comme le Threading Building Blocks d'Intel.
Date : l’année de commercialisation du microprocesseur. Familles de microprocesseursLes microprocesseurs sont habituellement regroupés en familles, en fonction du jeu d'instructions qu'ils exécutent. Ce jeu d'instructions comprend, souvent, une base commune à toute la famille, souvent les microprocesseurs les plus récents d'une famille présentent de nouvelles instructions. La rétrocompatibilité au sein d'une famille n'est donc pas toujours assurée. Par exemple un programme dit compatible x86 écrit pour un processeur 80386, qui permet la protection mémoire, pourrait ne pas fonctionner pas sur des processeurs antérieurs, mais fonctionne sur tous les processeurs plus récents (par exemple un Core Duo d'Intel ou un Athlon d'AMD). Il existe plusieurs familles de microprocesseurs :
Parmi les familles moins connues du grand public :
Rapidité d'exécution des instructionsFréquence de fonctionnementLes microprocesseurs sont cadencés par un signal d'horloge (signal oscillant régulier imposant un rythme au circuit). Au milieu des années 1980, ce signal avait une fréquence de 4 à 8 MHz. Dans les années 2000, cette fréquence atteint 4 GHz. Plus cette fréquence est élevée, plus le microprocesseur peut exécuter à un rythme élevé les instructions de base des programmes. L'augmentation de la fréquence présente des inconvénients :
OverclockingArticle détaillé : overclocking.
L'overclocking consiste forcer l'augmentation de la fréquence du signal d'horloge du microprocesseur (par rapport aux recommandations du fabriquant), afin de pouvoir exécuter plus d'instructions à chaque seconde. Optimisation du chemin d'exécutionLes microprocesseurs actuels sont optimisés pour exécuter plus d'une instruction par cycle d'horloge, ce sont des microprocesseurs avec des unités d'exécution parallélisées. De plus ils sont dotés de procédures qui « anticipent » les instructions suivantes avec l'aide de la statistique. Dans la course à la puissance des microprocesseurs, deux méthodes d'optimisation sont en concurrence :
Néanmoins, avec la diminution de la taille des puces électroniques et l'accélération des fréquences d'horloge, la distinction entre RISC et CISC a quasiment complètement disparu. Là où des familles tranchées existaient, on observe aujourd'hui des microprocesseurs où une structure interne RISC apporte de la puissance tout en restant compatible avec une utilisation de type CISC (la famille Intel x86 a ainsi subi une transition entre une organisation initialement très typique d'une structure CISC. Actuellement elle utilise un cœur RISC très rapide, s'appuyant sur un système de réarrangement du code à la volée) mis en œuvre, en partie, grâce à des mémoires cache de plus en plus grandes, comportant jusqu'à trois niveaux. Structure d'un microprocesseurArticles détaillés : Architecture des processeurs et microarchitecture.
L'unité centrale d'un microprocesseur comprend essentiellement :
Certains registres ont un rôle très particulier :
Seul le Program Counter est indispensable, il existe de (rares) processeurs ne comportant pas de registre d'état ou pas de pointeur de pile (par exemple le NS32000). L'unité de contrôle peut aussi se décomposer :
Fabrication des microprocesseursArticle détaillé : Fabrication des dispositifs à semi-conducteurs.
La fabrication d'un microprocesseur est essentiellement identique à celle de n'importe quel circuit intégré. Elle suit donc un procédé complexe. Mais l'énorme taille et complexité de la plupart des microprocesseurs a tendance à augmenter encore le coût de l'opération. La loi de Moore, qui indique que le degré d'intégration des microprocesseurs double tous les 18 mois, indique également que les coûts de production doublent en même temps que le degré d'intégration. La fabrication des microprocesseurs est aujourd'hui considérée comme l'un des deux facteurs d'augmentation de la capacité des unités de fabrication (avec les contraintes liées à la fabrication des mémoires à grande capacité). La finesse de la gravure industrielle a atteint 45 nm en 20067. En diminuant encore la finesse de gravure, les fondeurs se heurtent aux règles de la mécanique quantique. Fonctions à développerOrganisation parallèleSelon le système d'exploitation, la tendance actuelle est l'installation de plusieurs processeurs parallèles et de multiples tâches d'où l'importance grandissante des fonctions d'arbitrages entre processus (par exemple l'hyper threading). En effet, l'architecture super scalaire (mise en parallèle des tâches dans une unité d'exécution) des processeurs actuels ne suffit actuellement plus au multi-threading tel qu'il est utilisé. En revanche, les processeurs à plusieurs cœurs exigent que soit étudiée de près la répartition des tâches entre eux si on ne veut pas voir observer un ralentissement des opérations; c'est ce qu'on nomme les affinités entre processeurs (processor affinity). Sécurité et locationIl existe de nombreux projets d'intégration au cœur des microprocesseurs de fonctions visant à empêcher les copies illégales de fichiers (technologies DRM). Le consortium Trusted Computing Group, notamment, a déjà créé des puces permettant de créer une "zone de confiance" au sein du système informatique, à l'aide d'une puce d'identification spécifique. Certains modèles d'ordinateurs, comme les portables d'IBM intègrent déjà de telles puces. La prochaine génération de cette technologie sera probablement intégrée dans les processeurs centraux des ordinateurs. Ces technologies sont décriées, notamment par des partisans du logiciel libre, pour qui elles possèdent un potentiel liberticide. En effet, conjuguées à un système d'exploitation prévu à cet effet, par exemple dérivé du projet NGSCB de Microsoft, ce type de technologie permet au tiers de confiance (le prestataire qui va vérifier la validité des composants du système) d'accéder à distance au contenu de l'ordinateur, voire d'empêcher l'exécution de certaines opérations sur celui-ci. Linus Torvalds estime inapproprié de comparer un logiciel à un contenu, et approuve totalement la protection des contenus par leurs propriétaires, bien qu'il considère que celle des logiciels ne soit pas une bonne idée pour ceux qui la pratiquent8. Mémoire étendueAncien système d'extension de la mémoire permettant de dépasser la limite de 1 Mio du microprocesseur 8086 de l'époque. Cette mémoire était accessible par pages de 64 Kio. On ne l'utilise plus de nos jours en raison des capacités d'adressage étendues des processeurs récents ainsi qu'en raison de l'extrême lenteur des accès aléatoires dès que ceux-ci nécessitent un changement de page mémoire. Systèmes d'exploitation multiplesVanderpool/Silvervale : si un système d'exploitation de travail est infecté par un virus coriace, un autre de préférence sur une autre base comme Linux vers Mac OS ou Windows pourrait agir comme gardien et désinfecter le premier tout en ne laissant pas la possibilité au virus de se propager. Anticipation des problèmes et gestion à distanceParticulièrement utile pour les serveurs. Le problème de l'échauffementMalgré l'usage de techniques de gravures de plus en plus fines, l'échauffement des microprocesseurs reste approximativement proportionnel au carré de leur tension à architecture donnée. Avec V la tension, f la fréquence, et k un coefficient d'ajustement, on peut calculer la puissance dissipée P :
Ce problème est lié à un autre, celui de la dissipation thermique et donc souvent des ventilateurs, sources de nuisances sonores. Le refroidissement liquide peut être utilisé. L'utilisation d'une pâte thermique assure une meilleure conduction de la chaleur du processeur vers le radiateur. Si l'échauffement ne pose pas de problème majeur pour des applications type ordinateur de bureau, il en pose pour toutes les applications portables. Il est techniquement facile d'alimenter et de refroidir un ordinateur fixe. Pour les applications portables, ce sont deux problèmes délicats. Le téléphone portable, l'ordinateur portable, l'appareil photo numérique, le PDA, le baladeur MP3 ont une batterie qu'il s'agit de ménager pour que l'appareil portable ait une meilleure autonomie. Notes et références
Voir aussiArticles connexes
Bibliographie
Liens externesLe Texte ci-dessus est disponible sous GNU Free Documentation License. La source est wikipedia http://fr.wikipedia.org/wiki/{title} |