Le microprocesseur a été inventé par deux ingénieurs d’Intel: Marcian Hoff (surnommé Ted Hoff) et 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 chez Fairchild ; conception de circuits et de la logique ; nouveau layout ; plusieurs nouvelles solutions techniques) en 1970. Federico Faggin a aussi dirigé la conception du premier microprocesseur jusqu’à son introduction sur le marché en 1971.
En 1990, Gilbert Hyatt a revendiqué la paternité du microprocesseur en se basant sur un brevet qu’il avait déposé en 1970. La reconnaissance de l’antériorité du brevet de Hyatt aurait permis à ce dernier de réclamer des redevances sur tous les microprocesseurs fabriqués de par le monde. Cependant, le brevet de Hyatt a été invalidé en 1995 par l’office américain des brevets, sur la base du fait que le microprocesseur décrit dans la demande de brevet n’avait pas été réalisé, et n’aurait d’ailleurs pas pu l’être avec la technologie disponible au moment du dépôt du brevet.
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 produits des concurrents a suivi avec plus ou moins d’avance ou de retard la même marche.
Un programme informatique est, par essence, un flux d’instructions exécutées par un processeur[1]. Chaque instruction nécessite un à plusieurs cycles d’horloge, l’instruction est exécutée en autant d’étapes que de cycles nécessaires. Les microprocesseurs séquentiels exécutent l’instruction suivante lorsqu’ils ont terminé l’instruction en cours. Dans le cas du parallélisme d’instructions, le microprocesseur 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[1] 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 toutes les instructions à exécuter parallèlement ne soient pas interdépendantes, c’est-à-dire que le résultat 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 type sont appelés processeurs superscalaires. Le premier ordinateur[2] a être équipé de ce type de processeur[1] était le Seymour Cray CDC 6600 en 1965. Le Pentium est le premier des processeurs superscalaires pour compatible PC.
Aujourd’hui, les concepteurs de processeurs 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[1] 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[1] s’est imposé pour les machines grand public à partir des années 1980 et jusqu’aux années 1990.
L’exemple canonique de ce type de pipeline est celui d’un processeur[1] RISC, en cinq étapes. Le Intel Pentium 4 dispose de 35 étages de pipeline. Un compilateur optimisé pour ce genre de processeur[1] fournira un code qui sera exécuté plus rapidement.
Pour éviter une perte de temps liée à l’attente de nouvelles instructions, et surtout au délai de rechargement du contexte entre chaque changement de threads, les fondeurs ont ajouté à leurs processeurs des procédés d’optimisation pour que les threads puissent partager les pipelines, les caches et les registres. Ces procédés, regroupés sous l’appellation 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 laquelle 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 sein d’un même composant, par exemple les System on Chip. Cela consistait, par exemple, à ajouter au processeur[1], un coprocesseur arithmétique, un DSP, voire 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. Ils disposent des technologies citées préalablement. Les ordinateurs qui disposent de ce type de processeurs coûtent moins cher que l’achat d’un nombre équivalent de processeurs, cependant, les performances ne sont pas directement comparables, 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 | Nom | Nombre de transistors |
Finesse de gravure (µm) |
Fréquence de l’horloge |
Largeur des données |
MIPS |
---|---|---|---|---|---|---|
1971 | 4004 | 2 300 | 108 kHz | 4 bits/4 bits bus | ||
1974 | 8080 | 6 000 | 6 | 2 MHz | 8 bits/8 bits bus | 0,64 |
1979 | 8088 | 29 000 | 3 | 5 MHz | 16 bits/8 bits bus | 0,33 |
1982 | 80286 | 134 000 | 1,5 | 6 à 16 MHz (20 MHz chez AMD) | 16 bits/16 bits bus | 1 |
1985 | 80386 | 275 000 | 1,5 | 16 à 40 MHz | 32 bits/32 bits bus | 5 |
1989 | 80486 | 1 200 000 | 1 | 16 à 100 MHz | 32 bits/32 bits bus | 20 |
1993 | Pentium | 3 100 000 | 0,8 à 0,28 | 60 à 233 MHz | 32 bits/64 bits bus | 100 |
1997 | Pentium II | 7 500 000 | 0,35 à 0,25 | 233 à 450 MHz | 32 bits/64 bits bus | 300 |
1999 | Pentium III | 9 500 000 | 0,25 à 0,13 | 450 à 1 400 MHz | 32 bits/64 bits bus | 510 |
2000 | Pentium 4 | 42 000 000 | 0,18 à 0,065 | 1,3 à 3,8 GHz | 32 bits/64 bits bus | 1 700 |
2004 | Pentium 4D « Prescott » | 125 000 000 | 0,09 à 0,065 | 2.66 à 3,6 GHz | 32 bits/64 bits bus | 9 000 |
2006 | Core 2™ Duo | 291 000 000 | 0,065 | 2,4 GHz (E6600) | 64 bits/64 bits bus | 22 000 |
2007 | Core 2™ Quad | 2*291 000 000 | 0,065 | 3 GHz (Q6850) | 64 bits/64 bits bus | 2*22 000 (?) |
2008 | Core 2™ Duo (Penryn) | 410 000 000 | 0,045 | 3,33 GHz (E8600) | 64 bits/64 bits bus | ~24 200 |
2008 | Core 2™ Quad (Penryn) | 2*410 000 000 | 0,045 | 3,2 GHz (QX9770) | 64 bits/64 bits bus | ~2*24 200 |
2008 | Intel Core i7 (Nehalem) | 731 000 000 | 0,045 (2008) 0,032 (2009) |
2,66 GHz (Core i7 920) 3,33 GHz (Core i7 Ext. Ed. 975) |
64 bits/64 bits bus | ? |
2009 | Intel Core i5/i7 (Lynnfield) | 774 000 000 | 0,045 (2009) | 2,66 GHz (Core i5 750) 2,93 GHz (Core i7 870) |
64 bits/64 bits bus | ? |
2010 | Intel Core i7 (Gulftown) | 1 170 000 000 | 0,032 | 3,33 GHz (Core i7 980X) | 64 bits/64 bits bus | ? |
Date : l’année de commercialisation du microprocesseur.
Nom : le nom du microprocesseur.
Nombre de transistors : le nombre de transistors contenus dans le microprocesseur.
Finesse de gravure (µm) : le diamètre (en micromètres) du plus petit fil reliant deux composantes du microprocesseur. En comparaison, l’épaisseur d’un cheveu humain est de 100 microns.
Fréquence de l’horloge : la fréquence de l’horloge de la carte mère[3] qui cadence le microprocesseur. MHz = million(s) de cycles par seconde. GHz = milliard(s) de cycles par seconde.
Largeur des données : le premier nombre indique le nombre de bits sur lequel une opération est faite. Le second nombre indique le nombre de bits transférés à la fois entre la mémoire et le microprocesseur.
MIPS : le nombre de millions d’instructions effectuées par le microprocesseur en une seconde.
Les processeurs d’aujourd’hui sont capables de traiter des milliards d’informations par seconde, et accomplir des calculs immenses, qui permettent à la science, la médecine… de progresser rapidement. C’est là dedans que réside le secret de la puissance informatique. La société Intel est la firme qui fabrique le plus de proceeseurs au monde.
Voici à quoi ressemble un processeur :
C’est une puce de 4 à 5 centimètres de côté, et quelques millimètres d’épaisseur seulement ! Il est passionnant de se dire que cette petite pièce de métal renferme autant de puissance ! Vous trouverez le processeur dans l’unité centrale de votre ordinateur, branché sur la carte mère.
Nous avons réalisé un cours dédié au processeur et au matériel informatique, consultez-le pour en savoir plus !
L’ordinateur fixe possède une unité centrale et un écran séparés. L’ordinateur portable est un tout en un, équipé d’une batterie. Il est possible d’y ajouter des périphériques comme une imprimante, une webcam, un disque dur externe…
La carte mère est en quelque sortes le support sur lequel tout vient se brancher dans votre ordinateur, c’est la colonne vertébrale du système, essentielle à son bon fonctionnement. Le processeur est directement branché dessus, c’est le cerveau de l’ordinateur.