« Technologie/Matériaux/Céramiques » : différence entre les versions

Un livre de Wikilivres.
Contenu supprimé Contenu ajouté
m Révocation des modifications de 194.199.35.74 (discussion) vers la dernière version de JackPotte
wcwcwc
Ligne 1 : Ligne 1 :
{{Céramique}}




= Processeur =
<center>(page importée de WP par son principal rédacteur, puis revue et complétée pour son intégration dans le livre)</center>
« CPU » redirige ici. Pour les autres significations, voir CPU (homonymie).
{|
|
|<strong>Cet article ne cite pas suffisamment ses sources</strong><small> (novembre 2007)</small>.


Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article).
== Généralités ==
|}
La puce d'un microprocesseur Intel 80486DX2 dans son boîtier (taille réelle : 12 × 6,75 mm).


Le '''processeur''' (ou '''CPU''' de l'anglais ''Central Processing Unit'', « Unité centrale de traitement ») est le composant de l'ordinateur qui exécute les instructions machine des programmes informatiques. Avec la mémoire notamment, c'est l'un des composants qui existent depuis les premiers ordinateurs et qui sont présents dans tous les ordinateurs. Un processeur construit en un seul circuit intégré est un microprocesseur.
Le terme '''céramique''' a pour origine le mot grec ''keramos'', qui fait référence à la poterie et à la « terre brûlée ». En fait le mot serait d'origine sanscrite et signifierait « à brûler ». Les '''céramiques''' constituent une gamme très étendue de matériaux non métalliques. Elles sont toutes élaborées par des procédés thermiques et incluent de nombreux silicates et oxydes ; beaucoup ont pour origine les argiles naturelles analogues à celles qui servent à la fabrication de tuiles et de briques pour le bâtiment, argiles qui sont durcies par chauffage. Les céramiques à base de silicates comprennent tous les objets faits à partir d'argile, comme les poteries, les tuiles, les briques ou les porcelaines. Les constituants principaux sont les argiles et les aluminosilicates provenant des feldspaths. Aujourd'hui la gamme de matières premières est beaucoup plus étendue et elle aboutit, via la poterie et la céramique d'art, à des produits industriels très élaborés.


L'invention du transistor en 1948 a ouvert la voie à la miniaturisation des composants électroniques. Car auparavant les ordinateurs prenaient la taille d'une pièce entière.
La structure moléculaire des céramiques est parmi les plus complexes de toutes celles du monde minéral. Les liaisons entre les atomes, de type covalent ou ionique, sont très fortes. En conséquence, du point de vue de la dureté, de la résistance thermique ou mécanique, les céramiques montrent une nette supériorité par rapport à la plupart des matériaux métalliques.


Les processeurs des débuts étaient conçus spécifiquement pour un ordinateur d'un type donné. Cette méthode coûteuse de conception des processeurs pour une application spécifique a conduit au développement de la production de masse de processeurs qui conviennent pour un ou plusieurs usages. Cette tendance à la standardisation qui débuta dans le domaine des ordinateurs centraux (''mainframes'' à transistors discrets et mini-ordinateurs) a connu une accélération rapide avec l'avènement des circuits intégrés. Les circuits intégrés ont permis la miniaturisation des processeurs. La miniaturisation et la standardisation des processeurs ont conduit à leur diffusion dans la vie moderne bien au-delà des usages des machines programmables dédiées.
Les céramiques possèdent trois avantages importants par rapport à d'autres matériaux concurrents : les matières premières utilisées pour leur fabrication sont relativement disponibles et peu onéreuses, elles sont peu denses et résistent à des températures très élevées, là où la plupart des métaux perdent leur résistance, enfin elles ont des propriétés optiques, électriques, chimiques, magnétiques, thermiques, etc. qui les rendent irremplaçables dans de nombreuses industries, en particulier pour la fabrication de matériel électronique et informatique. En revanche elles présentent un défaut très important, qui est leur plus ou moins grande fragilité ; cependant celle-ci est due avant tout à des défauts de structure ou à des impuretés dans les réseaux moléculaires et on les rend plus résistances en améliorant la pureté des matériaux de base et en maîtrisant mieux les processus de fabrication.


== Sommaire ==
 [masquer] 
* 1 Histoire
* 2 Microprocesseurs
* 3 Fonctionnement
** 3.1 Composition d'un processeur
** 3.2 Classification des processeurs
** 3.3 Les opérations du processeur
* 4 Vitesse de traitement
* 5 Conception et implémentation
** 5.1 Le codage des nombres
** 5.2 Le signal d'horloge
** 5.3 Parallélisme
*** 5.3.1 ILP : Pipelining d'instructions et architecture superscalaire
*** 5.3.2 TLP : exécution simultanée de programmes
* 6 Notes et références
** 6.1 Notes
** 6.2 Références
* 7 Annexes
** 7.1 Articles connexes
** 7.2 Liens externes


== Histoire[modifier | modifier le code] ==
== Aspects historiques ==
Article détaillé : histoire des processeurs.


== Microprocesseurs[modifier | modifier le code] ==
L'art de fabriquer des poteries en modelant et en cuisant l'argile a été pratiqué par les civilisations les plus anciennes, et d'ailleurs l'examen des objets en terre cuite relevés au cours des fouilles est l'un des meilleurs outils dont disposent les archéologues. La poterie remonte à au moins 15.000 ans avant notre ère ; elle est devenue une industrie en Égypte depuis -5.000 ans et l'usage du kaolin est avéré en Chine depuis -4.000 ans au moins.
Articles détaillés : microprocesseur et gravure (électronique).


Intel 80486DX2 microprocesseur en boîtier céramique PGA.
Le domaine des céramiques est traditionnellement lié à ceux des verres et des ciments. De façon semblable, la fabrication de verres à base de silicates est également très ancienne. Les verres naturels tels que l'obsidienne ont été utilisés depuis l'âge de pierre et les premières vitres ont été fabriquées vers -12.000. Les verres travaillés sont apparus vers -7.000 / -5.000 et l'industrie du verre était bien établie en Égypte vers -1.500. Au contraire, l'industrie du ciment est bien plus récente. Les Égyptiens avaient utilisé le calcaire calciné, autrement dit la chaux, pour fabriquer des mortiers ; plus tard, les Romains combinèrent la chaux avec les cendres volcaniques pour obtenir un véritable ciment hydraulique. Cette technique semble s'être perdue par la suite, avant d'être redécouverte en Angleterre vers 1750, où l'on calcinait des marnes, autrement dit des calcaires mélangés à de l'argile. L'industrie des ciments, telle que nous la connaissons, ne date guère que d'un siècle.


L'introduction du microprocesseur dans les années 1970 a marqué de manière significative la conception et l'implémentation des unités centrales de traitement. Depuis l'introduction du premier microprocesseur (Intel 4004) en 1971 et du premier microprocesseur employé couramment (Intel 8080) en 1974, cette classe de processeurs a presque totalement dépassé toutes les autres méthodes d'implémentation d'unité centrale de traitement. Les fabricants d'ordinateurs centraux (mainframe et miniordinateurs) de l'époque ont lancé leurs propres programmes de développement de circuits intégrés pour mettre à niveau les architectures anciennes de leurs ordinateurs et ont par la suite produit des microprocesseurs à jeu d'instructions compatible en assurant la compatibilité ascendante avec leurs anciens modèles. Les générations précédentes des unités centrales de traitement comportaient un assemblage de composants discrets et de nombreux circuits faiblement intégrés sur une ou plusieurs cartes électroniques. Les microprocesseurs sont construits avec un très petit nombre de circuits très fortement intégrés (ULSI), habituellement un seul. Les microprocesseurs sont implémentés sur une seule puce électronique, donc de dimensions réduites, ce qui veut dire des temps de commutation plus courts liés à des facteurs physiques comme la diminution de la capacité parasite des portes. Ceci a permis aux microprocesseurs synchrones d'augmenter leur fréquence de base de quelques dizaines de mégahertz à plusieurs gigahertz. De plus, à mesure que la capacité à fabriquer des transistors extrêmement petits sur un circuit intégré a augmenté, la complexité et le nombre de transistors dans un seul processeur ont considérablement crû. Cette tendance largement observée est décrite par la loi de Moore, qui s'est avérée être jusqu'ici un facteur prédictif assez précis de la croissance de la complexité des processeurs (et de tout autre circuit intégré).
== L'industrie des céramiques ==


Les processeurs multi cœurs (''multicores'') récents comportent maintenant plusieurs cœurs dans un seul circuit intégré. Leur efficacité dépend grandement de la topologie d'interconnexion entre les cœurs. De nouvelles approches, comme la superposition de la mémoire et du cœur de processeur (''memory stacking''), sont à l'étude, et devraient conduire à un nouvel accroissement des performances. En se basant sur les tendances des dix dernières années, les performances des processeurs devraient atteindre le pétaFLOPS, vers 2010 pour les serveurs, et à l'horizon 2030 dans les PC.<sup>[réf. nécessaire]</sup>
Cette industrie est aujourd'hui vitale pour d'autres industries. Les matériaux réfractaires sont largement utilisés dans toute l'industrie métallurgique. Les abrasifs utilisés dans les ateliers d'usinage ne sont plus d'origine naturelle, mais reposent sur l'utilisation rationnelle de produits de synthèse. Beaucoup de produits manufacturés actuels comportent des éléments en céramiques, utilisés en raison de leur résistance thermique, de leurs propriétés isolantes vis-à-vis de l'électricité ou de la chaleur, de leur inertie chimique, de leur stabilité dimensionnelle. Elles ont envahi par exemple les domaines des isolateurs, des condensateurs électriques, de la robinetterie domestique, etc.


Début juin 2008, le supercalculateur militaire IBM Roadrunner est le premier à franchir cette barre symbolique du pétaFLOPS. Puis, en novembre 2008, c'est au tour du supercalculateur Jaguar de Cray. En avril 2009, ce sont les deux seuls supercalculateurs à avoir dépassé le pétaFLOPS.
Les domaines de prédilection de la verrerie sont les vitrages et les isolants pour le bâtiment, et plus encore les emballages, et l'essentiel de ces produits sont à base de silicates de calcium et de sodium. Les plus forts tonnages de céramiques et de ciments sont utilisés dans les domaines de la construction de bâtiments et d'ouvrages d'art tels que ponts, barrages, etc. Les « produits blancs » qui comprennent les faïences sanitaires et celles destinées à la poterie et à la vaisselle, mais aussi les porcelaines, correspondent en fait à des produits très variés et choisis spécifiquement pour tel ou tel usage. Ces produits sont le plus souvent associés à des verres ou des émaux vitrifiables qui en constituent les glaçures.


Tandis que la complexité, la taille, la construction, et la forme générale des processeurs ont fortement évolué au cours des soixante dernières années, la conception et la fonction de base n'ont pas beaucoup changé. Presque tous les processeurs communs d'aujourd'hui peuvent être décrits très précisément comme machines à programme enregistré de von Neumann. Alors que la loi de Moore, mentionnée ci-dessus, continue de se vérifier, des questions ont surgi au sujet des limites de la technologie des circuits intégrés à transistors. La miniaturisation des portes électroniques est si importante que les effets de phénomènes comme l'électromigration(dégradation progressive des interconnexions métalliques entraînant une diminution de la fiabilité des circuits intégrés) et les courants de fuite (leur importance augmente avec la réduction des dimensions des circuits intégrés ; ils sont à l'origine d'une consommation d'énergie électrique pénalisante), auparavant négligeables, deviennent de plus en plus significatifs. Ces nouveaux problèmes sont parmi les nombreux facteurs conduisant les chercheurs à étudier, d'une part, de nouvelles technologies de traitement telles que l'ordinateur quantique ou l'usage du calcul parallèle et, d'autre part, d'autres méthodes d'utilisation du modèle classique de von Neumann.
Environ 40 % des réfractaires comportent une base d'argile, ceux qui sont destinés à des usages spécifiques, à très haute température ou dans des milieux chimiques agressifs, ne comportent pas d'argile mais des oxydes d'aluminium, de chrome, de magnésium, des nitrures, du carbone sous forme de graphite, etc.


== Fonctionnement[modifier | modifier le code] ==
== Céramiques traditionnelles, céramiques modernes ==


=== Composition d'un processeur[modifier | modifier le code] ===
Les céramiques à base d'argile sont employées depuis des millénaires et restent, de très loin, les plus répandues dans tous les domaines. Les nouveaux matériaux récemment mis sur le marché sont à base de composés minéraux relativement simples, par exemple des oxydes, des carbures ou des nitrures. Lorsqu'ils sont mélangés à l'eau, ils ne possèdent pas les propriétés de déformation et de plasticité que présentent les argiles, il faut donc les combiner à d'autres produits pour pouvoir les mettre en forme par les procédés habituels. Il a fallu aussi, pour certains d'entre eux, inventer des procédés de fabrication nouveaux, qui n'avaient jamais été utilisés pour les argiles.
Schéma de principe d'un processeur 32 bits.


Les parties essentielles d’un processeur sont :
* l’'''Unité arithmétique et logique''' (UAL, en anglais ''Arithmetic and Logical Unit'' - ''ALU''), qui prend en charge les calculs arithmétiques élémentaires et les tests ;
* l''''unité de contrôle''' ou '''séquenceur''', qui permet de synchroniser les différents éléments du processeur. En particulier, il initialise les registres lors du démarrage de la machine et il gère les interruptions ;
* les '''registres''', qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que l'UAL puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à la plupart des processeurs :
** '''compteur ordinal''' : ce registre contient l’adresse mémoire de l’instruction en cours d’exécution ou de la suivante, selon l'architecture ;
** '''accumulateur''' : ce registre est utilisé pour stocker les données en cours de traitement par l’UAL ;
** '''registre d’instructions''' : il contient l’instruction en cours de traitement ;
** '''registre d’état''' : il sert à stocker le contexte du processeur, ce qui veut dire que les différents bits de ce registre sont des drapeaux (''flags'') servant à stocker des informations concernant le résultat de la dernière instruction exécutée ;
** '''pointeurs de pile''' : ce type de registre, dont le nombre varie en fonction du type de processeur, contient l’adresse du sommet de la pile (ou des piles) ;
** '''registres généraux''' : ces registres sont disponibles pour les calculs ;
* l’'''horloge''' qui synchronise toutes les actions de l’unité centrale. Elle est présente dans les processeurs synchrones, et absente des processeurs asynchrones et des processeurs autosynchrones ;
* l''''unité d’entrée-sortie''', qui prend en charge la communication avec la mémoire de l’ordinateur ou la transmission des ordres destinés à piloter ses processeurs spécialisés, permettant au processeur d’accéder aux périphériques de l’ordinateur.
Les processeurs actuels intègrent également des éléments plus complexes :
* plusieurs UAL, ce qui permet de traiter plusieurs instructions en même temps. L''''architecture superscalaire''', en particulier, permet de disposer des UAL en parallèle, chaque UAL pouvant exécuter une instruction indépendamment de l'autre ;
* un pipeline '''permet de découper temporellement les traitements à effectuer.'''
* une '''unité de prédiction de branchement''', qui permet au processeur d’anticiper un branchement dans le déroulement d’un programme, permettant d’éviter d’attendre la valeur définitive d’adresse du saut. Cela permet de mieux remplir le pipeline ;
* une '''unité de calcul en virgule flottante''' (en anglais ''Floating Point Unit'' - ''FPU''), qui permet d’accélérer les calculs sur des nombres réels codés en virgule flottante ;
* de la '''mémoire cache''', qui permet d’accélérer les traitements en diminuant les temps d'accès à la mémoire. Ces mémoires tampons sont en effet beaucoup plus rapides que la RAM et ralentissent moins le CPU. Le cache instructions reçoit les prochaines instructions à exécuter, le cache données manipule les données. Parfois, un seul cache unifié est utilisé pour le code et les données. Plusieurs niveaux de caches peuvent coexister, on les désigne souvent sous les noms de L1, L2, L3 ou L4. Dans les processeurs évolués, des unités spéciales du processeur sont dévolues à la recherche, par des moyens statistiques et/ou prédictifs, des prochains accès en mémoire centrale.
Un processeur possède trois types de bus :
* un '''bus de données''', définit la taille des données pour les entrées/sorties, dont les accès à la mémoire (indépendamment de la taille des registres internes) ;
* un '''bus d'adresse''' permet, lors d'une lecture ou une écriture, d'envoyer l'adresse où elle s'effectue, et donc définit le nombre de cases mémoire accessibles ;
* un '''bus de contrôle''' permet la gestion du matériel, via les interruptions.


=== Classification des processeurs[modifier | modifier le code] ===
Articles détaillés : Architecture de processeur et Microarchitecture.


Un processeur est défini par :
{{En travaux}}
* Son architecture, c'est-à-dire son comportement vu par le programmeur, liée à :
** son jeu d'instructions (''ISA'' en anglais, ''Instructions Set Architecture'') ;
** la largeur de ses registres internes de manipulation de données (8, 16, 32, 64, 128) bits et leur utilisation ;
** les spécifications des entrées/sorties, de l'accès à la mémoire, etc.


* Ses caractéristiques, variables même entre processeurs compatibles :
== Propriétés générales des céramiques ==
** sa microarchitecture ;
** la cadence de son horloge exprimée en MHz (mégahertz) ou GHz (gigahertz) ;
** sa finesse de gravure exprimée en nm (nanomètres) et ;
** le nombre de noyaux de calcul (cœurs).
On classe les architectures en plusieurs grandes familles :
* CISC (Complex Instruction Set Computer : choix d'instructions aussi proches que possible d'un langage de haut niveau) ;
* RISC (Reduced Instruction Set Computer : choix d'instructions plus simples et d'une structure permettant une exécution très rapide) ;
* VLIW (Very Long Instruction Word) ;
* DSP (Digital Signal Processor). Même si cette dernière famille (DSP) est relativement spécifique. En effet un processeur est un composant programmable et est donc ''a priori'' capable de réaliser tout type de programme. Toutefois, dans un souci d'optimisation, des processeurs spécialisés sont conçus et adaptés à certains types de calculs (3D, son, etc.). Les DSP sont des processeurs spécialisés pour les calculs liés au traitement de signaux. Par exemple, il n'est pas rare de voir implémenter des transformées de Fourier dans un DSP.
* Au contraire d'un DSP, un processeur softcore est un circuit logique programmable et n'a plus du tout de fonction précablée.


=== Les opérations du processeur[modifier | modifier le code] ===
=== Aspect ===
Le rôle fondamental de la plupart des unités centrales de traitement, indépendamment de la forme physique qu'elles prennent, est d'exécuter une série d'instructions stockées appelées « programme ».
Les céramiques présentent des formes cristallines opaques et des formes vitreuses amorphes plus ou moins translucides.


Les instructions (parfois décomposées en micro instructions) et les données transmises au processeur sont exprimées en mots binaires (code machine). Elles sont généralement stockées dans la mémoire. Le séquenceur ordonne la lecture du contenu de la mémoire et la constitution des mots présentés à l'ALU qui les interprète.
=== Propriétés mécaniques ===
Les objets en céramique sont habituellement assez peu denses, très durs et dotés d'une bonne résistance mécanique, même à des températures très élevées. D'une manière générale, leur résistance à la compression est bien supérieure à leur résistance à la traction, ce qui est une des caractéristiques des matériaux fragiles. En fait, c'est la présence de petites imperfections ou d'impuretés qui leur confère ce comportement ; les céramiques très pures peuvent souvent supporter des chocs mécaniques relativement violents.


L’ensemble des instructions et des données constitue un programme.
La réputation faite aux céramiques de bien résister à l'usure doit être considérée avec une certaine prudence.{{T|[[Tribologie/Matériaux utilisables pour le_frottement#Céramiques|Matériaux utilisables pour le frottement]]}}


Le langage le plus proche du code machine tout en restant lisible par des humains est le langage d’assemblage, aussi appelé langage assembleur (forme francisée du mot anglais « ''assembler'' »). Toutefois, l’informatique a développé toute une série de langages, dits de « haut niveau » (comme le Pascal, C, C++, Fortran, Ada, etc), destinés à simplifier l’écriture des programmes.
=== Propriétés thermiques ===
[[File:Coloured ceramic thermal barrier coating on exhaust component.jpg|thumb|260px|Isolation thermique d'une tubulure d'échappement par un revêtement de céramique colorée]]
Les céramiques gardent leur solidité même à des températures très élevées, résistent aux chocs thermiques (voir les « tuiles » de protection des navette spatiales américaine). L'une des raisons de cette résistance réside dans leur faible coefficient de dilatation, très inférieur à celui de la plupart des métaux et alliages. La conductivité thermique est généralement médiocre ou faible, d'où leur utilisation comme isolants thermiques.


Les opérations décrites ici sont conformes à l'architecture de von Neumann. Le programme est représenté par une série d'instructions qui réalisent des opérations en liaison avec la mémoire vive de l'ordinateur. Il y a quatre étapes que presque toutes les architectures von Neumann utilisent :
=== Propriétés électriques ===
* fetch - recherche de l'instruction ;
Les céramiques sont d'excellent isolants électriques et peuvent servir de support à des éléments de circuits électriques. Ce sont elles, en particulier, qui constituent les isolateurs des lignes à hautes tension. Dans certaines conditions, comme des températures extrêmement basses, certaines céramiques deviennent des [[w:supraconductivité|supraconducteurs]].
* decode - décodage de l'instruction (opération et opérandes) ;
* execute - exécution de l'opération ;
* writeback - écriture du résultat.
Le diagramme montre comment une instruction de MIPS32 est décodée.


La première étape, '''FETCH''' (recherche), consiste à rechercher une instruction dans la mémoire vive de l'ordinateur. L'emplacement dans la mémoire est déterminé par le compteur de programme (PC), qui stocke l'adresse de la prochaine instruction dans la mémoire de programme. Après qu'une instruction a été recherchée, le PC est incrémenté par la longueur du mot d'instruction. Dans le cas de mot de longueur constante simple, c'est toujours le même nombre. Par exemple, un mot de 32 bits de longueur constante qui emploie des mots de 8 bits de mémoire incrémenterait toujours le PC par 4 (excepté dans le cas des branchements). Le jeu d'instructions qui emploie des instructions de longueurs variables comme l'x86, incrémentent le PC par le nombre de mots de mémoire correspondant à la dernière longueur d'instruction. En outre, dans des unités centrales de traitement plus complexes, l'incrémentation du PC ne se produit pas nécessairement à la fin de l'exécution d'instruction. C'est particulièrement le cas dans des architectures fortement parallélisées et superscalaires. Souvent, la recherche de l'instruction doit être opérée dans des mémoires lentes, ralentissant l'unité centrale de traitement qui attend l'instruction. Cette question est en grande partie résolue dans les processeurs modernes par l'utilisation de caches et d'architectures pipelines.
=== Propriétés chimiques et environnementales ===
Les céramiques présentent généralement une très grande inertie chimique et résistent bien aux attaques de substances agressives, à l'oxydation et aux agressions climatiques. Ce caractère de matériaux neutres et inertes fait qu'elle ne présentent pas de danger pour l'homme et pour la nature. On les utilise d'ailleurs largement pour les équipements sanitaires, médicaux ou alimentaires.


L'instruction que le processeur recherche en mémoire est utilisée pour déterminer ce que le CPU doit faire. Dans l'étape '''DECODE''' (décodage), l'instruction est découpée en plusieurs parties telles qu'elles puissent être utilisées par d'autres parties du processeur. La façon dont la valeur de l'instruction est interprétée est définie par le jeu d'instructions (ISA) du processeurnote 1. Souvent, une partie d'une instruction, appelée opcode (code d'opération), indique quelle opération est à faire, par exemple une addition. Les parties restantes de l'instruction comportent habituellement les autres informations nécessaires à l'exécution de l'instruction comme par exemples les opérandes de l'addition. Ces opérandes peuvent prendre une valeur constante, appelée valeur immédiate, ou bien contenir l'emplacement où retrouver (dans un registre ou une adresse mémoire) la valeur de l'opérande, suivant le mode d'adressage utilisé. Dans les conceptions anciennes, les parties du processeur responsables du décodage étaient fixes et non modifiables car elles étaient codées dans les circuits. Dans les processeurs plus récents, unmicroprogramme est souvent utilisé pour traduire les instructions en différents ordres. Ce microprogramme est parfois modifiable pour changer la façon dont le CPU décode les instructions, même après sa fabrication.
== Les principales céramiques ==


Diagramme fonctionnel d'un processeur simple.
{| border="1" cellpadding="5" cellspacing="0"
|-align="center"
| width="25%"| '''Produit'''
| '''Propriétés'''
| '''Utilisations'''
|-
| '''alumine'''
(oxyde d'aluminium Al<sub>2</sub>O<sub>3</sub>)
| bonne tenue mécanique aux températures élevées, bonne conductivité thermique, grande résistivité électrique, grande dureté, bonne résistance à l'[[Tribologie/Usure des surfaces|usure]], inertie chimique
| isolateurs électriques, supports d'éléments chauffants, protections thermiques, éléments de broyage, composants mécaniques, bagues d'[[étanchéité]], prothèses dentaires, composants de robinetterie
|-
| '''borure d'aluminium'''
AlB<sub>2</sub>
|
| renforcement des composites métalliques
|-
| '''carbure de bore'''
B<sub>4</sub>C
|
| blindages de chars d'assaut et d'hélicoptères
|-
| '''carbure de silicium''' ou '''carborundum'''
SiC
| grande dureté, bonne résistance aux chocs thermiques, grande conductivité thermique, faible dilatation thermique, excellente inertie chimique
| réfractaires, résistances chauffantes, outils de coupe, pièces de frottement, joints d'[[étanchéité]] des pompes à eau, support de catalyseur, abrasifs
|-
| '''carbure de tungstène'''
|
| Pièces d'usure, outils de coupe, guide-fils, glaces de joints d'[[étanchéité]]
|-
| '''cordiérite'''
(silicate alumineux ferro-magnésien)
| bonne résistance aux chocs thermiques, bonne conductivité thermique
| isolants électriques, échangeurs thermiques, éléments chauffants
|-
| '''mullite'''
Al<sub>6</sub>Si<sub>2</sub>O<sub>13</sub>
| bonne résistance aux chocs thermiques, conductivité thermique faible, résistivité électrique importante
| produits réfractaires.
|-
| '''nitrure d'aluminium'''
AlN
| conductivité thermique élevée, bonne résistance électrique, transparent aux longueurs d'onde du visible et de l'infra-rouge
| circuits imprimés, colonnes thermiques, fenêtres pour radar, creusets pour la fonderie
|-
| '''nitrure de bore'''
NB
| haute conductivité thermique, faible dilatation thermique, excellente résistance aux chocs thermiques, haute résistance diélectrique, faible constante diélectrique, inerte chimiquement, transparent aux micro-ondes, facilement usinable
| isolants électriques à très hautes températures, creusets pour la fonderie, garnitures de fours, gaines de thermocouples, supports de résistances, [[Tribologie/Lubrifiants|lubrifiant]] à haute température.
|-
| '''nitrure de silicium'''
Si<sub>3</sub>N<sub>4</sub>
| grande dureté, bonne résistance à l'usure et à l'abrasion, bonne inertie chimique, bonne résistance aux chocs thermiques. Il existe deux types de nitrure de silicium : lié par nitruration de poudre de silicium comprimée ou par pressage de la poudre de nitrure de silicium à température élevée (frittage)
| poudres abrasives, outils de coupe, réfractaires pour la sidérurgie, billes de roulements, bagues d'étanchéité pour le moulage des métaux, soupapes de moteurs
|-
| '''oxyde magnétique de fer'''
Fe<sub>3</sub>O<sub>4</sub>
|
| transformateurs, selfs, stockage magnétique des données
|-
| '''oxyde de magnésium'''
MgO
| résistance aux métaux fondus, bonne résistance mécanique
| traitement des matériaux piézoélectriques, réfractaires, composants optiques
|-
| '''oxyde d'uranium'''
UO<sub>2</sub>
|
| combustible dans les réacteurs nucléaires
|-
| '''oxyde de zinc'''
ZnO
|
| utilisé dans les diodes pour ses propriétés électriques, voir [[w:Varistance|Varistance]]
|-
| '''pérovskites'''
vaste famille de matériaux cristallins de formule (A)(B)O<sub>3</sub> comme BaTiO<sub>3</sub>, CaTiO<sub>3</sub>, SrTiO<sub>3</sub> ou (PbSr)TiO<sub>3</sub>, Pb(Zr<sub>0.5</sub>Ti<sub>0.5</sub>)O<sub>3</sub>
|
| diélectriques pour la fabrication de condensateurs multicouches, thermistances, transducteurs piézoélectriques
|-
| '''sialon'''
solution solide de nitrure de silicium, de nitrure d'aluminium et de d'oxyde d'aluminium
|
|
|-
| '''silicates d'aluminium'''
(argiles)
|
| * céramiques du bâtiment, briques, tuiles, carreaux, éviers, bacs à douches, cuvette de WC, tuyaux
* céramiques des arts de la table, terre cuite, faïence, grès, porcelaine, assiettes, bols, plats
* céramiques artistiques, sculptures, terre cuites, vases, lampes
|-
| '''stéatite'''
(silicate de magnésium (SiO<sub>4</sub>)Mg<sub>2</sub>)
| bonne résistivité électrique
| isolants électriques
|-
| '''zircone'''
(oxyde de zirconium ZrO<sub>2</sub>)
| excellentes propriétés mécaniques aux températures élevées, conductivité thermique faible à température ambiante, conducteur électrique à T > 1.000°C, grande dureté, bonne résistance à l'usure, bonne inertie chimique, bonne résistance aux attaques des métaux. Il en existe deux sortes
* zircone non stabilisée, utilisée en tant qu'additif, matériau de revêtement, poudre abrasive
* zircone stabilisée à l'yttrium (ZrO<sub>2</sub>/Y<sub>2</sub>O<sub>3</sub> = TZP) ou à la magnésie (ZrO<sub>2</sub>/MgO = PSZ).
| creusets, buses de coulée, éléments chauffants, revêtement anti-thermique, conducteurs ioniques, prothèses dentaires
|-
|}


Après les étapes de recherche et de décodage arrive l'étape '''EXECUTE''' (exécution) de l'instruction. Au cours de cette étape, différentes parties du processeur sont mises en relation pour réaliser l'opération souhaitée. Par exemple, pour une addition, l'unité arithmétique et logique (ALU) sera connectée à des entrées et des sorties. Les entrées présentent les nombres à additionner et les sorties contiennent la somme finale. L'ALU contient la circuiterie pour réaliser des opérations d'arithmétique et de logique simples sur les entrées (addition, opération sur les bits). Si le résultat d'une addition est trop grand pour être codé par le processeur, un signal de débordement est positionné dans un registre d'état (voir ci-dessous le chapitre sur le codage des nombres).


La dernière étape '''WRITEBACK''' (écriture du résultat), écrit tout simplement les résultats de l'étape d'exécution en mémoire. Très souvent, les résultats sont écrits dans un registre interne au processeur pour bénéficier de temps d'accès très courts pour les instructions suivantes. Dans d'autres cas, les résultats sont écrits plus lentement dans des mémoires RAM, donc à moindre coût et acceptant des codages de nombres plus grands.
Les verres, les émaux, certains types de ciments et de liants hydrauliques, sont souvent associés aux céramiques en raison de leurs propriétés et de leurs utilisations très comparables.


Certains types d'instructions manipulent le compteur de programme plutôt que de produire directement des données de résultat. Ces instructions sont appelées des branchement (« ''branch'' ») et permettent de réaliser des boucles (« ''loops'' »), des programmes à exécution conditionnelle ou des fonctions (sous-programmes) dans des programmesnote 2. Beaucoup d'instructions servent aussi à changer l'état de drapeaux (« ''flags'' ») dans un registre d'état. Ces états peuvent être utilisés pour conditionner le comportement d'un programme, puisqu'ils indiquent souvent la fin d'exécution de différentes opérations. Par exemple, une instruction de comparaison entre deux nombres va positionner un drapeau dans un registre d'état suivant le résultat de la comparaison. Ce drapeau peut alors être réutilisé par une instruction de saut pour poursuivre le déroulement du programme.
== Utilisations des céramiques ==


Après l'exécution de l'instruction et l'écriture des résultats, tout le processus se répète, le prochain cycle d'instructions recherche la séquence d'instruction suivante puisque le compteur de programme avait été incrémenté. Si l'instruction précédente était un saut, c'est l'adresse de destination du saut qui est enregistrée dans le compteur de programme. Dans des processeurs plus complexes, plusieurs instructions peuvent être recherchées, décodées et exécutées simultanément, on parle alors d'architecture pipeline, aujourd'hui communément utilisée dans les équipements électroniques.
=== Bâtiment ===


== Vitesse de traitement[modifier | modifier le code] ==
Les céramiques à base d'argile sont largement utilisées pour fabriquer des briques, des tuiles, des canalisations, des carrelages, etc.
La vitesse de traitement d'un processeur est encore parfois exprimée en MIPS (million d'instructions par seconde) ou en mégaFLOPS (millions de floating-point operations per second) pour la partie virgule flottante, dite FPU (Floating Point Unit). Pourtant, aujourd'hui, les processeurs sont basés sur différentes architectures et techniques de parallélisation des traitements qui ne permettent plus de déterminer simplement leurs performances. Des programmes spécifiques d'évaluation des performances (benchmarks) ont été mis au point pour obtenir des comparatifs des temps d'exécution de programmes réels.


== Conception et implémentation[modifier | modifier le code] ==
=== Produits blancs ===


=== Le codage des nombres[modifier | modifier le code] ===
On désigne sous ce nom essentiellement des faïences et des porcelaines. Ces produits constituent les assiettes, tasses et autres éléments des services de table, mais aussi les sanitaires, les porcelaines servant d'isolants électriques ou les céramiques murales décoratives.
La manière dont un CPU représente les nombres est un choix de conception qui affecte de façon profonde son fonctionnement de base. Certains des ordinateurs les plus anciens utilisaient un modèle électrique du système numérique décimal (base 10). Certains autres ont fait le choix de systèmes numériques plus exotiques comme les systèmes trinaires (base 3). Les processeurs modernes représentent les nombres dans le système binaire (base 2) dans lequel chacun des chiffres est représenté par une grandeur physique qui ne peut prendre que deux valeurs comme une tension électrique « haute » ou « basse ».


Le concept physique de tension électrique est analogique par nature car elle peut prendre une infinité de valeurs. Pour les besoins de représentation physique des nombres binaires, les valeurs des tensions électriques sont définies comme des états « 1 » et « 0 ». Ces états résultent des paramètres opérationnels des éléments de commutation qui composent le processeur comme les niveaux de seuil des transistors.
=== Abrasifs ===


Le microprocesseur 6502 en technologie MOS dans un boîtier ''dual in-line'' une conception très répandue.
Les céramiques sont utilisées pour fabriquer des meules, des papiers abrasifs ou des poudres à projeter. On fait intervenir des produits naturels comme la silice, le diamant, ou des produits synthétiques comme le carbure de silicium ou l'alumine. Les abrasifs sont utilisés pour les opérations de meulage, de rectification, de coupe, de polissage ou de superfinition.


En plus du système de représentation des nombres, il faut s'intéresser à la taille et la précision des nombres qu'un processeur peut manipuler. Dans le cas d'un processeur binaire, un « bit » correspond à une position particulière dans les nombres que le processeur peut gérer. Le nombre de bits (chiffres) qu'un processeur utilise pour représenter un nombre est souvent appelé « taille du mot » (« ''word size'' », « ''bit width'' », « ''data path width'' ») ou « précision entière » lorsqu'il s'agit denombres entiers (à l'opposé des nombres flottants). Ce nombre diffère suivant les architectures, et souvent, suivant les différents modules d'un même processeur. Par exemple, un CPU 8-bit gère des nombres qui peuvent être représentés par huit chiffres binaires (chaque chiffre pouvant prendre deux valeurs), soit 2<sup>8</sup> ou 256 valeurs discrètes. En conséquence, la taille du nombre entier définit une limite à la plage des nombres entiers que le logiciel exécuté par le processeur pourra utiliser.
=== Construction électrique et électronique ===
Les céramiques sont largement utilisées pour la fabrication de condensateurs, d'isolateurs, de supports d'appareillages et de circuits, de matériaux piézoélectriques et magnétiques et dans le domaine des supraconducteurs.


La taille du nombre entier affecte également le nombre d'emplacements mémoire que le processeur peut adresser (localiser). Par exemple, si un processeur binaire utilise 32 bits pour représenter une adresse mémoire et que chaque adresse mémoire est représentée par un octet (8 bits), la taille mémoire maximum qui peut être adressée par ce processeur est de 2<sup>32</sup> octets, ou 4 Go. C'est une vision très simpliste de l'espace d'adressage d'un processeur et beaucoup de conceptions utilisent des types d'adressages bien plus complexes, comme la pagination, pour adresser plus de mémoire que la taille du nombre entier le leur permettrait avec un espace d'adressage à plat.
* '''Alumine'''
:De nombreux composants électroniques comportent des parties en céramiques, principalement à base alumine (de 80 à 95 %). On réalise ainsi des supports pour circuits intégrés, qui peuvent être découpés au laser et munis d'ouvertures ou de trous réalisés à la demande. Des boîtiers hermétiques possèdent à la fois une bonne résistance mécanique, une conductivité thermique élevée et une étanchéité quasi parfaite. Certains substrats en alumine peuvent être traités pour adhérer aux métaux, en vue d'applications comportant des soudures ou des brasures. Des tubes et des bâtonnets servent de support à des résistances à couches de carbone, à couche métallique ou bobinées.


De plus grandes plages de nombres entiers nécessitent plus de structures élémentaires pour gérer les chiffres additionnels, conduisant à plus de complexité, des dimensions plus importantes, plus de consommation d'énergie et des coûts plus élevés. Il n'est donc pas rare de rencontrer des microcontrôleurs 4-bit ou 8-bit dans des applications modernes, même si des processeurs 16-bit, 32-bit, 64-bit et même 128-bit sont disponibles. Pour bénéficier des avantages à la fois des tailles d'entier courtes et longues, beaucoup de CPU sont conçus avec différentes largeurs d'entiers dans différentes parties du composant. Par exemple, le System/370 d'IBM est doté d'un CPU nativement 32-bit mais qui utilise une unité de calcul flottant (FPU) de 128-bit de précision pour atteindre une plus grande précision dans les calculs avec les nombres flottants. Beaucoup des processeurs les plus récents utilisent une combinaison comparable de taille de nombres, spécialement lorsque le processeur est destiné à un usage généraliste pour lequel il est nécessaire de trouver le juste équilibre entre les capacités à traiter les nombres entiers et les nombres flottants.
=== Médecine ===


=== Le signal d'horloge[modifier | modifier le code] ===
Leur inertie chimique et leur biocompatibilité en font des candidats valables pour les prothèses chirurgicales et dentaires.
Article connexe : Signal d'horloge.


La plupart des processeurs, et plus largement la plupart des circuits de logique séquentielle, ont un fonctionnement synchrone par naturenote 3. Cela veut dire qu'ils sont conçus et fonctionnent au rythme d'un signal de synchronisation. Ce signal est le « signal d'horloge ». Il prend souvent la forme d'une onde carrée périodique. En calculant le temps maximum que prend le signal électrique pour se propager dans les différentes branches des circuits du processeur, le concepteur peut sélectionner la période appropriée du signal d'horloge.
=== Optique ===


Cette période doit être supérieure au temps que prend le signal pour se propager dans le pire des cas. En fixant la période de l'horloge à une valeur bien au-dessus du pire des cas de temps de propagation, il est possible de concevoir entièrement le processeur et la façon dont il déplace les données autour des « fronts » montants ou descendants du signal d'horloge. Ceci a pour avantage de simplifier significativement le processeur tant du point de vue de sa conception que de celui du nombre de ses composants. Par contre, ceci a pour inconvénient le ralentissement du processeur puisque sa vitesse doit s'adapter à celle de son élément le plus lent, même si d'autres parties sont beaucoup plus rapides. Ces limitations sont largement compensées par différentes méthodes d'accroissement du parallélisme des processeurs (voir ci-dessous).
Les propriétés optiques de certaines céramiques permettent leur utilisation dans les lampes à vapeur métallique, dans des lasers, ainsi que dans des détecteurs infrarouge.


Les améliorations d'architecture ne peuvent pas, à elles seules, résoudre tous les inconvénients des processeurs globalement synchrones. Par exemple, un signal d'horloge est sujet à des retards comme tous les autres signaux électriques. Les fréquences d'horloge plus élevées que l'on trouve dans les processeurs à la complexité croissante engendrent des difficultés pour conserver le signal d'horloge en phase (synchronisé) à travers toute l'unité centrale de traitement. En conséquence, beaucoup des processeurs d'aujourd'hui nécessitent la fourniture de plusieurs signaux d'horloge identiques de façon à éviter que le retard d'un seul signal ne puisse être la cause d'un dysfonctionnement du processeur. La forte quantité de chaleur qui doit être dissipée par le processeur constitue un autre problème majeur dû à l'accroissement des fréquences d'horloge. Les changements d'état fréquents de l'horloge font commuter un grand nombre de composants, qu'ils soient ou non utilisés à cet instant. En général, les composants qui commutent utilisent plus d'énergie que ceux qui restent dans un état statique. ainsi, plus les fréquences d'horloge augmentent et plus la dissipation de chaleur en fait autant, ce qui fait que les processeurs requièrent des solutions de refroidissement plus efficaces.
=== Génie thermique ===


La méthode dite de « ''clock gating'' » permet de gérer la commutation involontaire de composants en inhibant le signal d'horloge sur les éléments choisis mais cette pratique est difficile à implémenter et reste réservée aux besoins de circuits à très faible consommation.
Leur faible conductivité thermique fait qu'elles sont utilisées comme [[Matériaux/Isolants thermiques|isolants thermiques]] ou [[Matériaux/Matériaux réfractaires|matériaux réfractaires]], aussi bien pour la construction de parois de fours que pour fabriquer les tuiles du bouclier thermique des navettes spatiales ou pour recouvrir des aubes de turbines de réacteurs. Il peut s'agir de produits « monolithiques » comme des briques ou des blocs de formes diverses, mais aussi de produits fibreux, tissés ou non. Leur usage est courant dans la sidérurgie, l'industrie des métaux non ferreux, les systèmes de conversion d'énergie, les pétroles, les industries chimiques, la construction aéronautique et spatiale.


Une autre méthode consiste à abandonner le signal global d'horloge, la consommation d'énergie et la dissipation thermique sont réduites mais la conception du circuit devient plus complexe. On parle alors de processeurs asynchrones. Certaines conceptions ont été réalisés sans signal global d'horloge, utilisant par exemple les jeux d'instructions ARM ou MIPS, d'autres ne présentent que des parties asynchrones comme l'utilisation d'une UAL asynchrone avec un « ''pipelining'' »superscalaire pour atteindre des gains de performance dans les calculs arithmétiques. De tels processeurs sont actuellement plutôt réservés aux applications embarquées (ordinateurs de poche, consoles de jeux...).
Dans les années 1980, la société Toyota a mis au point un moteur en céramique pouvant supporter une température supérieure à 3.300 °C. Ce type de moteur n'a pas besoin d'être refroidi, il permet un gain de rendement et de poids très important par rapport aux moteurs à explosion classiques. Cependant, il n'a pas eu d'applications commerciales du fait des nombreuses difficultés industrielles rencontrées lors de sa fabrication, en particulier pour l'obtention de matières premières d'un degré de pureté suffisant.


=== Parallélisme[modifier | modifier le code] ===
=== Tribologie ===
Article détaillé : Parallélisme (informatique).


Modèle de processeur subscalaire : il faut 15 cycles pour exécuter trois instructions.
Les propriétés particulières des céramiques peuvent également être utilisées pour réduire les frottements entre les pièces mécaniques et lutter contre l'usure. On les trouve à l'état massif ou sous forme de revêtements pour des éléments de moteurs, des éléments de guidage, des outils de coupe et de nombreuses pièces qui doivent résister à l'usure. Ces questions sont étudiées dans plusieurs chapitres du [[Tribologie|livre de tribologie]] :
{{T|[[Tribologie/Matériaux utilisables pour le frottement|matériaux utilisables pour le frottement]]}}
{{T|[[Tribologie/Usure des surfaces|usure des surfaces]]}}
{{T|[[Tribologie/Guidage par roulement|roulements à billes en céramiques]]}}


La description du mode de fonctionnement de base d'un processeur présentée au chapitre précédent présente la forme la plus simple que peut prendre un CPU. Ce type de processeur, appelé subscalaire, exécute une instruction sur un ou deux champs de données à la fois.
=== Applications diverses ===


Ce processus est inefficace et inhérent aux processeurs subscalaires. Puisqu'une seule instruction est exécutée à la fois, tout le processeur attend la fin du traitement de cette instruction avant de s'intéresser à la suivante avec pour conséquence que le processeur reste figé sur les instructions qui nécessitent plus d'un cycle d'horloge pour s'exécuter. L'ajout d'une seconde unité de traitement (voir ci-dessous), ne permet pas d'améliorer notablement les performances, ce n'est plus une unité de traitement qui se trouve figée mais 2, en augmentant encore le nombre de transistors inutilisés. Ce type de conception, dans laquelle les ressources d'exécution du CPU ne traitent qu'une seule instruction à la fois ne peut atteindre que des performances scalaires (une instruction par cycle d'horloge), voire subscalaires (moins d'une instruction par cycle d'horloge).
* appareils de détection des gaz, de l'humidité,
* catalyseurs,
* réalisation d'électrodes,
* réalisation de formes et de moules pour la fabrication d'objets au trempé, par exemple des gants de caoutchouc.


En tentant d'obtenir des performances scalaires et au-delà, on a abouti à diverses méthodes qui conduisent le CPU a un comportement moins linéaire et plus parallèle. Lorsqu'on parle de parallélisme de processeur, deux termes sont utilisés pour classifier ces techniques de conception :
== Les matières premières ==
* Instruction Level Parallelism (ILP) - Parallélisme au niveau instruction ;
* Thread Level Parallelism (TLP) - Parallélisme au niveau thread (groupe d'instructions).
L'ILP cherche à augmenter la vitesse à laquelle les instructions sont exécutées par un CPU (c’est-à-dire augmenter l'utilisation des ressources d'exécution présentes dans le circuit intégré). L'objectif du TLP est d'accroître le nombre de threads que le CPU pourra exécuter simultanément. Chaque méthode diffère de l'autre d'une part, par la façon avec laquelle elle est implémentée et d'autre part, du fait de leur efficacité relative à augmenter les performances des processeurs pour une application.


==== ILP : Pipelining d'instructions et architecture superscalaire[modifier | modifier le code] ====
Les divers procédés utilisables doivent nécessairement tenir compte de la nature des matières premières brutes que l'on souhaite utiliser et des méthodes qui servent à les mettre en forme et à les traiter par la chaleur. La plupart des céramiques sont obtenues à partir de matériaux d'origine naturelle, relativement faciles à obtenir et peu coûteux, mais contenant beaucoup d'impuretés. Si celles-ci sont nuisibles, il est possible de les éliminer grâce à divers traitements physiques et chimiques mais les coûts augmentent en conséquence.
Pipeline de base à 5 étages. Dans le meilleur scénario, ce pipeline peut soutenir un taux d'exécution d'une instruction par cycle.


Une des méthodes les plus simples pour accroître le parallélisme consiste à démarrer les premières étapes de recherche (« ''fetch'' ») et décodage (« ''decode'' ») d'une instruction avant la fin d'exécution de l'instruction précédente. C'est la forme la plus simple de la technique de pipelining, elle est utilisée dans la plupart des processeurs modernes non spécialisés. Le pipelining permet d'exécuter plus d'une instruction à la fois en décomposant le chemin d'exécution en différentes étapes. Ce découpage peut être comparé à une chaîne d'assemblage.
Bien qu'il existe une large gamme de matières premières utilisable, l'industrie des céramiques traditionnelles repose essentiellement sur l'usage de l'argile qui apporte la plasticité, du feldspath qui fond à température relativement basse et de la silice qui peut se vitrifier malgré son caractère fortement réfractaire. D'autres espèces minérales interviennent également, par exemple l'alumine, les silicates d'aluminium, le talc et les matériaux analogues, les abrasifs, etc. Le choix des composés naturels est fortement dicté par leur abondance dans la croûte terrestre et par leurs caractéristiques géochimiques. À partir du moment où l'on considère que l'oxygène, le silicium et l'aluminium constituent ensemble 90 % de la croûte terrestre, il n'est pas étonnant des les retrouver en abondance dans la composition des céramiques.


Le pipelining peut créer des conflits de dépendance de données, lorsque le résultat de l'opération précédente est nécessaire à l'exécution de l'opération suivante. Pour résoudre ce problème, un soin particulier doit être apporté pour vérifier ce type de situation et retarder, le cas échéant, une partie du pipeline d'instruction. Naturellement, les compléments de circuits à apporter pour cela ajoutent à la complexité des processeurs parallèles. Un processeur parallèle peut devenir presque scalaire, ralenti uniquement par les attentes du pipeline (une instruction prend moins d'un cycle d'horloge par étape).
;Les argiles : Elles sont constituées de très files particules d'aluminosilicates hydratés qui deviennent plastiques une fois mélangés avec de l'eau. Leurs propriétés varient notablement selon des critères chimiques, physiques et minéralogiques. Leur rôle dans les pièces de céramiques est très important, en ce sens qu'elles permettent une mise en forme facile mais qu'une fois séchées elles acquièrent une solidité qui leur permet de résister à la cuisson. Les argiles très pures sont très réfractaires mais celles qui sont riches en impureté ont une température de fusion généralement plus basse. On distingue trois groupes principaux de type kaolinite, montmorillonite et illite (mica hydraté). Plus récemment on a mis en évidence le groupe des chlorites qui se trouvent dans de nombreux dépôts sédimentaires.


Pipeline superscalaire simple. En recherchant et affectant deux instructions à la fois, le CPU peut exécuter un maximum de deux instructions par cycle.
== Les procédés de mise en forme ==


Les développements suivants du pipelining ont conduit au développement d'une méthode qui diminue encore plus les temps d'attente des composants du processeur. Les conceptions dites superscalaires comportent un pipeline à instruction longue et plusieurs unités d'exécution identiques 1. Dans un pipeline superscalaire, plusieurs instructions sont lues et transmises à un répartisseur qui décide si les instructions seront exécutées en parallèle (simultanément) ou non. Le cas échéant, les instructions sont réparties sur les unités d'exécution disponibles. En général, plus un processeur superscalaire est capable d'exécuter d'instructions en parallèle et plus le nombre d'instructions exécutées dans un cycle sera élevé.
=== Pressage à sec ===


La plupart des difficultés rencontrées dans la conception des architectures de processeurs superscalaires résident dans la mise au point du répartisseur. Le répartisseur doit être disponible rapidement et être capable de déterminer sans erreur si les instructions peuvent être exécutées en parallèle, il doit alors les distribuer de façon à charger les unités d'exécution autant qu'il est possible. Pour cela, le pipeline d'instructions doit être rempli aussi souvent que possible, créant le besoin d'une quantité importante de mémoire cache. Les techniques de traitement aléatoire comme la prédiction de branchement, l'exécution spéculative et la résolution des dépendances aux données deviennent cruciales pour maintenir un haut niveau de performance. En tentant de prédire quel branchement (ou chemin) une instruction conditionnelle prendra, le processeur peut minimiser le temps que tout le pipeline doit attendre jusqu'à la fin d'exécution de l'instruction conditionnelle. L'exécution spéculative améliore les performances modestes en exécutant des portions de code qui seront, ou ne seront pas, nécessaires à la suite d'une instruction conditionnelle. La résolution de la dépendance aux données est obtenue en réorganisant l'ordre dans lequel les instructions sont exécutées en optimisant la disponibilité des données.
=== Pressage humide ===


Lorsque seule une partie de processeur est superscalaire, la partie qui ne l'est pas rencontre des problèmes de performance dus aux temps d'attente d'ordonnancement. Le Pentium original (P5) disposait de deux ALU superscalaires qui pouvaient chacune accepter une instruction par cycle. Ensuite le P5 est devenu superscalaire pour les calculs sur les nombres entiers mais pas sur les nombres à virgule flottante. Les successeurs des architectures Pentium d'Intel, les P6, ont été dotés de capacités superscalaires pour les calculs sur les nombres à virgule flottante améliorant par là leurs performances en calcul flottant.
=== Extrusion ===
[[Image:Extrusion process 1.png|thumb|300px|Schéma simplifié de la technique d'extrusion. 1 : vis, 2 : pâte plastique à mettre en forme, 3 : filière à taille réglable, 4 : matériau mis en forme]]


Les conceptions de pipelining simple et superscalaires augmentent le parallélisme (ILP) des CPU en permettant à un processeur unique d'exécuter des instructions à un rythme de plus d'une instruction par cycle. La plupart des processeurs d'aujourd'hui ont au moins une partie superscalaires. Au cours des dernières années, certaines évolutions dans la conception des processeurs à fort parallélisme ne se trouvent plus dans les circuits du processeur mais ont été placées dans le logiciel ou dans son interface avec le logiciel (ISA). La stratégie des instructions très longues (Very Long Instruction Word - VLIW) conduit à implémenter certains parallélismes directement dans le logiciel, cela réduit la participation du processeur au gain de performance mais en réduit la complexité.
=== Pressage hydrostatique ===


==== TLP : exécution simultanée de programmes[modifier | modifier le code] ====
=== Coulée en barbotine ===
Une autre stratégie communément employée pour augmenter le parallélisme des processeurs consiste à introduire la capacité d'exécuter plusieurs programmes (threads) simultanément. De manière générale, les processeurs multi-threads ont été utilisés depuis plus longtemps que les processeurs à architecture pipeline. Bon nombre des conceptions pionnières, réalisées par la société Cray Research, datant de la fin des années 1970 et des années 1980, mettaient en œuvre principalement la méthode TLP, dégageant alors de très grandes capacités de calcul (pour l'époque). En fait, le multithreading était connu dès les années 1950(réf. : Smotherman 2005).


Dans le cas des processeurs simples, les deux méthodologies principales employées pour développer des TLP sont le multiprocessing au niveau des circuits (Chip-level multiprocessing - CMP) et le multithreading simultané (Simultaneous multithreading - SMT). À un plus haut niveau, il est d'usage de réaliser des ordinateurs avec plusieurs processeurs totalement indépendants dans des organisations de type symétrique (Symmetric multiprocessing - SMP) ou à accès mémoire non uniforme (Non Uniform Memory Access - NUMA). Il s'agit alors de multiprocesseurs ou de processeurs multi-cœur. Alors que ces techniques diffèrent par les moyens qu'elles mettent en œuvre, elles visent toutes le même but : augmenter le nombre de threads qu'un processeur peut exécuter en parallèle.
=== Coulée en feuilles fines ===

=== Moulage par injection ===
Les méthodes de parallélisme CMP et SMP sont assez semblables, elles demandent plus d'effort de conception que l'utilisation de deux ou trois processeurs totalement indépendants. Dans le cas du CMP, plusieurs cœurs (core, en anglais) de processeurs sont intégrés dans le même boîtier, parfois même dans le même circuit intégré. Les SMP, eux, utilisent plusieurs boîtiers indépendants. NUMA est comparable au CMP mais met en œuvre un modèle d'accès mémoire non uniforme (les temps d'accès sont différents suivant que la mémoire est locale ou non locale à un processeur donné). Cette caractéristique est fondamentale dans les ordinateurs à plusieurs processeurs car pour les modèles SMP à mémoire partagée, les temps d'accès à la mémoire sont rapidement dégradés en cas d'accès simultané par plusieurs processeurs. À ce titre, NUMA est considéré comme un modèle plus évolutif en nombre de processeurs.

SMT diffère des autres améliorations de TLP puisqu'il vise à dupliquer aussi peu de portions de CPU que possible. La mise en œuvre d'une stratégie de type TLP ressemble à une architecture superscalaire et se trouve souvent utilisée dans les microprocesseurs superscalaires (comme les POWER5 d'IBM). Plutôt que de dupliquer un CPU complet, la conception SMT ne duplique que les parties nécessaires pour la recherche (« ''fetch'' »), le décodage, (« ''decode'' ») et la répartition des instructions (« ''dispatch'' ») ainsi que les registres non spécialisés. Ceci permet a un processeur SMT de maintenir ses unités d'exécution occupées plus souvent, en leur fournissant des instructions en provenance de deux programmes différents. Comme on vient de la voir, le SMT est proche de l'architecture ILP superscalaire mais, plutôt que d'exécuter simultanément plusieurs instructions en provenance de deux programmes différents, elle permet d'exécuter simultanément plusieurs instructions en provenance du même programme.

== Notes et références[modifier | modifier le code] ==

=== Notes[modifier | modifier le code] ===
# ↑ Parce que l'architecture du jeu d'instruction d'un CPU est fondamentale pour son interface et utilisation, cela est souvent utilisé comme une classification pour le « type » de CPU. Par exemple, un CPU PowerPC utilise une variation du PowerPC ISA. Un système peut exécuter un ISA différent en exécutant un émulateur.
# ↑ Parmi les premiers ordinateurs tel que le Harvard Mark I aucun type de sauts n'était supporté, limitant par conséquent la complexité des programmes pouvant être exécutés. C'est essentiellement pour cette raison que ces ordinateurs sont souvent considérés comme ne contenant pas un CPU propre, malgré leurs similitudes aux ordinateurs à programme enregistré.
# ↑ Dans les faits, tous les CPU synchrones utilisent un mélange de logique séquentielle et de logique combinatoire (voir logique booléenne).

=== Références[modifier | modifier le code] ===
# ↑ (<abbr>en</abbr>) Jack Huynh, «  »<small> [archive]</small>, University of Illinois - Urbana-Champaign,‎ 2003 <small>(consulté en sept. 2011)</small>, <abbr>p.</abbr> 6-11 <abbr>[PDF]</abbr>

== Annexes[modifier | modifier le code] ==
Sur les autres projets Wikimedia :
* Processeur, sur Wikimedia Commons 
* processeur, sur le Wiktionnaire

=== Articles connexes[modifier | modifier le code] ===
* Microprocesseur
* Microcontrôleur
* Pipeline (informatique)
* Processeur vectoriel
* Processeur superscalaire
* Processeur synchrone
* Processeur asynchrone
* Processeur autosynchrone
* Processeur 64 bit
* lithographie en immersion
* TPU

=== Liens externes[modifier | modifier le code] ===
{| class="navbox collapsible noprint autocollapse"
! colspan="2" |[masquer]
<abbr>v</abbr> · <abbr>d</abbr> · <abbr>m</abbr>

Technologies CPU
|-
|Architecture
|Architecture Harvard · Architecture Harvard Modifiée · Architecture de von Neumann · Taxinomie de Flynn (SISD, SIMD, MISD et MIMD) · 8 bits ·15 bits · 16 bits · 22 bits · 32 bits · 40 bits · 50 bits · 64 bits · 128 bits · variable
|-
|Jeu d'instructions
|ISA : Processeur basé sur la pile · Processeur de signal numérique · Processeur vectoriel · CISC · RISC · VLIW · EPIC · Architecture Dataflow ·EDGE · MISC · OISC · ZISC
|-
|Microarchitecture
|Microcode · Unité de contrôle · Banc de registres · UAL · FPU · MMU · TLB · Cache · Backside bus
|-
|Parallélisme
|
{| class="navbox"
!Instruction
|Pipelining · Prédiction de branchement · Exécution out-of-order · Renommage de registres · Exécution spéculative ·Superscalaire
|-
!Processus
|Multithreading · Simultaneous multithreading · Hyperthreading · Superthreading
|}
|-
|Circuits
|Barrel shifter · Multiplexeur · Démultiplexeur · Additionneur · Multiplieur · Décaleur · Soustracteur · Registres · Registre à décalage
|-
|Types
|APU · DSP · GPGPU · Microprocesseur · Microcontrôleur · Microprocesseur multi-cœur · Réseau sur puce · Système sur puce ·Processeur graphique
|-
|Cadencement
|Signal d’horloge · Overclocking · Processeur synchrone · Processeur asynchrone · Processeur autosynchrone
|-
|Gestion de l’alimentation
|Clock gating · Ajustement dynamique de la fréquence · APM · ACPI · Ajustement dynamique de la tension (en)
|}
* Portail de l’électricité et de l’électronique 
* Portail de l’informatique 
* Portail des technologies
Catégorie : 
* Processeur | [+]


=== Applications techniques ===
== Menu de navigation ==
* Créer un compte
* Se connecter


* Article
{{T|[[/Céramiques techniques usinables|Céramiques techniques usinables]]}}
* Discussion
{{T|[[/Papier céramique|Papier céramique]]}}


* Lire
<gallery></gallery>
* Modifier
* Modifier le code
* Historique


* Accueil
== Sociétés savantes et associations ==
* Portails thématiques
* Groupe Français de la Céramique (affilié à l'''European Ceramic Society'')
* Article au hasard
:LMP - UVHC, Bâtiment PECMA, Z.I. Champ de l'Abbesse 59600 MAUBEUGE
* Contact
:Tél : 03 27 53 16 60
:Fax : 03 27 53 16 67
:Site : http://www.univ-valenciennes.fr/gfc
:Mail : gfc@univ-valenciennes.fr


== Fournisseurs ==
=== Contribuer ===
* Débuter sur Wikipédia
* Gimex technische keramiek bv (Pays-Bas): http://www.gimex.nl/
* Aide
* CeramTec Hoechst (Allemagne) : http://www.ceramtec.com/
* Communauté
* Ceramic and Heating Elements Company (Cerhec, France) : http://www.cerhec.com
* Modifications récentes
* Zircotec (Royaume-Uni) : http://www.zircotec.com/
* Faire un don
* Akeoplus (France) : http://www.akeoplus.com/materiaux/
* Doceram (Allemagne) : http://www.doceram.cn/index_en.html


== Centres de formation ==
=== Imprimer / exporter ===
* Créer un livre
* [http://www.ensci.fr/ École Nationale Supérieure de Céramique Industrielle]
* Télécharger comme PDF
* [http://www.lyc-ceram-longchamp.fr/ Lycée professionnel de la Céramique] de Longchamp
* Version imprimable
* [http://www.lycees-henribrisson.com/page.php?ID=1 Lycée Henri Brisson] de Vierzon
* [http://www.lyc-lemasjambost-limoges.ac-limoges.fr/ Lycée des Métiers Le Mas Jambost] de Limoges


== Bibliographie ==
=== Outils ===
* Pages liées
* Suivi des pages liées
* Importer un fichier
* Pages spéciales
* Adresse de cette version
* Information sur la page
* Élément Wikidata
* Citer cette page


=== Autres langues ===
* Afrikaans
* Alemannisch
* Aragonés
* العربية
* مصرى
* Azərbaycanca
* Башҡортса
* Беларуская
* Беларуская (тарашкевіца)‎
* Български
* བོད་ཡིག
* Bosanski
* Català
* کوردی
* Čeština
* Чӑвашла
* Cymraeg
* Dansk
* Deutsch
* Ελληνικά
* English
* Esperanto
* Español
* Eesti
* Euskara
* فارسی
* Suomi
* Furlan
* Gaeilge
* Galego
* گیلکی
* עברית
* Hrvatski
* Magyar
* Հայերեն
* Interlingua
* Bahasa Indonesia
* Íslenska
* Italiano
* 日本語
* Basa Jawa
* Gĩkũyũ
* Қазақша
* ភាសាខ្មែរ
* ಕನ್ನಡ
* 한국어
* Къарачай-малкъар
* Кыргызча
* Latina
* Lingála
* ລາວ
* Lietuvių
* Latviešu
* Олык марий
* Македонски
* മലയാളം
* Монгол
* Bahasa Melayu
* Plattdüütsch
* Nederlands
* Norsk nynorsk
* Norsk bokmål
* Occitan
* Polski
* پنجابی
* Ποντιακά
* Português
* Română
* Русский
* Русиньскый
* Саха тыла
* Scots
* Srpskohrvatski / српскохрватски
* සිංහල
* Simple English
* Slovenčina
* Slovenščina
* Soomaaliga
* Shqip
* Српски / srpski
* Svenska
* Kiswahili
* தமிழ்
* తెలుగు
* Тоҷикӣ
* ไทย
* Tagalog
* Türkçe
* Татарча/tatarça
* Українська
* اردو
* Oʻzbekcha
* Tiếng Việt
* Winaray
* ייִדיש
* 中文
* 粵語
Modifier les liens
* Dernière modification de cette page le 9 septembre 2014 à 14:00.<br>
* Droit d'auteur : les textes sont disponibles sous licence Creative Commons paternité partage à l’identique ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que lescrédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et mentionner la licence.<br>Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le paragraphe 501(c)(3) du code fiscal des États-Unis.<br>


* Politique de confidentialité
* À propos de Wikipédia
* Avertissements
* Développeurs
* Version mobile


*
*
[[nap:Ceramica]]
[[nap:Ceramica]]
[[nn:Keramikk]]
[[nn:Keramikk]]

Version du 27 novembre 2014 à 16:47


Processeur

« CPU » redirige ici. Pour les autres significations, voir CPU (homonymie).

Cet article ne cite pas suffisamment ses sources (novembre 2007).

Si vous disposez d'ouvrages ou d'articles de référence ou si vous connaissez des sites web de qualité traitant du thème abordé ici, merci de compléter l'article en donnant les références utiles à sa vérifiabilité et en les liant à la section « Notes et références » (modifier l'article).

La puce d'un microprocesseur Intel 80486DX2 dans son boîtier (taille réelle : 12 × 6,75 mm).

Le processeur (ou CPU de l'anglais Central Processing Unit, « Unité centrale de traitement ») est le composant de l'ordinateur qui exécute les instructions machine des programmes informatiques. Avec la mémoire notamment, c'est l'un des composants qui existent depuis les premiers ordinateurs et qui sont présents dans tous les ordinateurs. Un processeur construit en un seul circuit intégré est un microprocesseur.

L'invention du transistor en 1948 a ouvert la voie à la miniaturisation des composants électroniques. Car auparavant les ordinateurs prenaient la taille d'une pièce entière.

Les processeurs des débuts étaient conçus spécifiquement pour un ordinateur d'un type donné. Cette méthode coûteuse de conception des processeurs pour une application spécifique a conduit au développement de la production de masse de processeurs qui conviennent pour un ou plusieurs usages. Cette tendance à la standardisation qui débuta dans le domaine des ordinateurs centraux (mainframes à transistors discrets et mini-ordinateurs) a connu une accélération rapide avec l'avènement des circuits intégrés. Les circuits intégrés ont permis la miniaturisation des processeurs. La miniaturisation et la standardisation des processeurs ont conduit à leur diffusion dans la vie moderne bien au-delà des usages des machines programmables dédiées.

Sommaire

 [masquer] 

  • 1 Histoire
  • 2 Microprocesseurs
  • 3 Fonctionnement
    • 3.1 Composition d'un processeur
    • 3.2 Classification des processeurs
    • 3.3 Les opérations du processeur
  • 4 Vitesse de traitement
  • 5 Conception et implémentation
    • 5.1 Le codage des nombres
    • 5.2 Le signal d'horloge
    • 5.3 Parallélisme
      • 5.3.1 ILP : Pipelining d'instructions et architecture superscalaire
      • 5.3.2 TLP : exécution simultanée de programmes
  • 6 Notes et références
    • 6.1 Notes
    • 6.2 Références
  • 7 Annexes
    • 7.1 Articles connexes
    • 7.2 Liens externes

Histoire[modifier | modifier le code]

Article détaillé : histoire des processeurs.

Microprocesseurs[modifier | modifier le code]

Articles détaillés : microprocesseur et gravure (électronique).

Intel 80486DX2 microprocesseur en boîtier céramique PGA.

L'introduction du microprocesseur dans les années 1970 a marqué de manière significative la conception et l'implémentation des unités centrales de traitement. Depuis l'introduction du premier microprocesseur (Intel 4004) en 1971 et du premier microprocesseur employé couramment (Intel 8080) en 1974, cette classe de processeurs a presque totalement dépassé toutes les autres méthodes d'implémentation d'unité centrale de traitement. Les fabricants d'ordinateurs centraux (mainframe et miniordinateurs) de l'époque ont lancé leurs propres programmes de développement de circuits intégrés pour mettre à niveau les architectures anciennes de leurs ordinateurs et ont par la suite produit des microprocesseurs à jeu d'instructions compatible en assurant la compatibilité ascendante avec leurs anciens modèles. Les générations précédentes des unités centrales de traitement comportaient un assemblage de composants discrets et de nombreux circuits faiblement intégrés sur une ou plusieurs cartes électroniques. Les microprocesseurs sont construits avec un très petit nombre de circuits très fortement intégrés (ULSI), habituellement un seul. Les microprocesseurs sont implémentés sur une seule puce électronique, donc de dimensions réduites, ce qui veut dire des temps de commutation plus courts liés à des facteurs physiques comme la diminution de la capacité parasite des portes. Ceci a permis aux microprocesseurs synchrones d'augmenter leur fréquence de base de quelques dizaines de mégahertz à plusieurs gigahertz. De plus, à mesure que la capacité à fabriquer des transistors extrêmement petits sur un circuit intégré a augmenté, la complexité et le nombre de transistors dans un seul processeur ont considérablement crû. Cette tendance largement observée est décrite par la loi de Moore, qui s'est avérée être jusqu'ici un facteur prédictif assez précis de la croissance de la complexité des processeurs (et de tout autre circuit intégré).

Les processeurs multi cœurs (multicores) récents comportent maintenant plusieurs cœurs dans un seul circuit intégré. Leur efficacité dépend grandement de la topologie d'interconnexion entre les cœurs. De nouvelles approches, comme la superposition de la mémoire et du cœur de processeur (memory stacking), sont à l'étude, et devraient conduire à un nouvel accroissement des performances. En se basant sur les tendances des dix dernières années, les performances des processeurs devraient atteindre le pétaFLOPS, vers 2010 pour les serveurs, et à l'horizon 2030 dans les PC.[réf. nécessaire]

Début juin 2008, le supercalculateur militaire IBM Roadrunner est le premier à franchir cette barre symbolique du pétaFLOPS. Puis, en novembre 2008, c'est au tour du supercalculateur Jaguar de Cray. En avril 2009, ce sont les deux seuls supercalculateurs à avoir dépassé le pétaFLOPS.

Tandis que la complexité, la taille, la construction, et la forme générale des processeurs ont fortement évolué au cours des soixante dernières années, la conception et la fonction de base n'ont pas beaucoup changé. Presque tous les processeurs communs d'aujourd'hui peuvent être décrits très précisément comme machines à programme enregistré de von Neumann. Alors que la loi de Moore, mentionnée ci-dessus, continue de se vérifier, des questions ont surgi au sujet des limites de la technologie des circuits intégrés à transistors. La miniaturisation des portes électroniques est si importante que les effets de phénomènes comme l'électromigration(dégradation progressive des interconnexions métalliques entraînant une diminution de la fiabilité des circuits intégrés) et les courants de fuite (leur importance augmente avec la réduction des dimensions des circuits intégrés ; ils sont à l'origine d'une consommation d'énergie électrique pénalisante), auparavant négligeables, deviennent de plus en plus significatifs. Ces nouveaux problèmes sont parmi les nombreux facteurs conduisant les chercheurs à étudier, d'une part, de nouvelles technologies de traitement telles que l'ordinateur quantique ou l'usage du calcul parallèle et, d'autre part, d'autres méthodes d'utilisation du modèle classique de von Neumann.

Fonctionnement[modifier | modifier le code]

Composition d'un processeur[modifier | modifier le code]

Schéma de principe d'un processeur 32 bits.

Les parties essentielles d’un processeur sont :

  • l’Unité arithmétique et logique (UAL, en anglais Arithmetic and Logical Unit - ALU), qui prend en charge les calculs arithmétiques élémentaires et les tests ;
  • l'unité de contrôle ou séquenceur, qui permet de synchroniser les différents éléments du processeur. En particulier, il initialise les registres lors du démarrage de la machine et il gère les interruptions ;
  • les registres, qui sont des mémoires de petite taille (quelques octets), suffisamment rapides pour que l'UAL puisse manipuler leur contenu à chaque cycle de l’horloge. Un certain nombre de registres sont communs à la plupart des processeurs :
    • compteur ordinal : ce registre contient l’adresse mémoire de l’instruction en cours d’exécution ou de la suivante, selon l'architecture ;
    • accumulateur : ce registre est utilisé pour stocker les données en cours de traitement par l’UAL ;
    • registre d’instructions : il contient l’instruction en cours de traitement ;
    • registre d’état : il sert à stocker le contexte du processeur, ce qui veut dire que les différents bits de ce registre sont des drapeaux (flags) servant à stocker des informations concernant le résultat de la dernière instruction exécutée ;
    • pointeurs de pile : ce type de registre, dont le nombre varie en fonction du type de processeur, contient l’adresse du sommet de la pile (ou des piles) ;
    • registres généraux : ces registres sont disponibles pour les calculs ;
  • l’horloge qui synchronise toutes les actions de l’unité centrale. Elle est présente dans les processeurs synchrones, et absente des processeurs asynchrones et des processeurs autosynchrones ;
  • l'unité d’entrée-sortie, qui prend en charge la communication avec la mémoire de l’ordinateur ou la transmission des ordres destinés à piloter ses processeurs spécialisés, permettant au processeur d’accéder aux périphériques de l’ordinateur.

Les processeurs actuels intègrent également des éléments plus complexes :

  • plusieurs UAL, ce qui permet de traiter plusieurs instructions en même temps. L'architecture superscalaire, en particulier, permet de disposer des UAL en parallèle, chaque UAL pouvant exécuter une instruction indépendamment de l'autre ;
  • un pipeline permet de découper temporellement les traitements à effectuer.
  • une unité de prédiction de branchement, qui permet au processeur d’anticiper un branchement dans le déroulement d’un programme, permettant d’éviter d’attendre la valeur définitive d’adresse du saut. Cela permet de mieux remplir le pipeline ;
  • une unité de calcul en virgule flottante (en anglais Floating Point Unit - FPU), qui permet d’accélérer les calculs sur des nombres réels codés en virgule flottante ;
  • de la mémoire cache, qui permet d’accélérer les traitements en diminuant les temps d'accès à la mémoire. Ces mémoires tampons sont en effet beaucoup plus rapides que la RAM et ralentissent moins le CPU. Le cache instructions reçoit les prochaines instructions à exécuter, le cache données manipule les données. Parfois, un seul cache unifié est utilisé pour le code et les données. Plusieurs niveaux de caches peuvent coexister, on les désigne souvent sous les noms de L1, L2, L3 ou L4. Dans les processeurs évolués, des unités spéciales du processeur sont dévolues à la recherche, par des moyens statistiques et/ou prédictifs, des prochains accès en mémoire centrale.

Un processeur possède trois types de bus :

  • un bus de données, définit la taille des données pour les entrées/sorties, dont les accès à la mémoire (indépendamment de la taille des registres internes) ;
  • un bus d'adresse permet, lors d'une lecture ou une écriture, d'envoyer l'adresse où elle s'effectue, et donc définit le nombre de cases mémoire accessibles ;
  • un bus de contrôle permet la gestion du matériel, via les interruptions.

Classification des processeurs[modifier | modifier le code]

Articles détaillés : Architecture de processeur et Microarchitecture.

Un processeur est défini par :

  • Son architecture, c'est-à-dire son comportement vu par le programmeur, liée à :
    • son jeu d'instructions (ISA en anglais, Instructions Set Architecture) ;
    • la largeur de ses registres internes de manipulation de données (8, 16, 32, 64, 128) bits et leur utilisation ;
    • les spécifications des entrées/sorties, de l'accès à la mémoire, etc.
  • Ses caractéristiques, variables même entre processeurs compatibles :
    • sa microarchitecture ;
    • la cadence de son horloge exprimée en MHz (mégahertz) ou GHz (gigahertz) ;
    • sa finesse de gravure exprimée en nm (nanomètres) et ;
    • le nombre de noyaux de calcul (cœurs).

On classe les architectures en plusieurs grandes familles :

  • CISC (Complex Instruction Set Computer : choix d'instructions aussi proches que possible d'un langage de haut niveau) ;
  • RISC (Reduced Instruction Set Computer : choix d'instructions plus simples et d'une structure permettant une exécution très rapide) ;
  • VLIW (Very Long Instruction Word) ;
  • DSP (Digital Signal Processor). Même si cette dernière famille (DSP) est relativement spécifique. En effet un processeur est un composant programmable et est donc a priori capable de réaliser tout type de programme. Toutefois, dans un souci d'optimisation, des processeurs spécialisés sont conçus et adaptés à certains types de calculs (3D, son, etc.). Les DSP sont des processeurs spécialisés pour les calculs liés au traitement de signaux. Par exemple, il n'est pas rare de voir implémenter des transformées de Fourier dans un DSP.
  • Au contraire d'un DSP, un processeur softcore est un circuit logique programmable et n'a plus du tout de fonction précablée.

Les opérations du processeur[modifier | modifier le code]

Le rôle fondamental de la plupart des unités centrales de traitement, indépendamment de la forme physique qu'elles prennent, est d'exécuter une série d'instructions stockées appelées « programme ».

Les instructions (parfois décomposées en micro instructions) et les données transmises au processeur sont exprimées en mots binaires (code machine). Elles sont généralement stockées dans la mémoire. Le séquenceur ordonne la lecture du contenu de la mémoire et la constitution des mots présentés à l'ALU qui les interprète.

L’ensemble des instructions et des données constitue un programme.

Le langage le plus proche du code machine tout en restant lisible par des humains est le langage d’assemblage, aussi appelé langage assembleur (forme francisée du mot anglais « assembler »). Toutefois, l’informatique a développé toute une série de langages, dits de « haut niveau » (comme le Pascal, C, C++, Fortran, Ada, etc), destinés à simplifier l’écriture des programmes.

Les opérations décrites ici sont conformes à l'architecture de von Neumann. Le programme est représenté par une série d'instructions qui réalisent des opérations en liaison avec la mémoire vive de l'ordinateur. Il y a quatre étapes que presque toutes les architectures von Neumann utilisent :

  • fetch - recherche de l'instruction ;
  • decode - décodage de l'instruction (opération et opérandes) ;
  • execute - exécution de l'opération ;
  • writeback - écriture du résultat.

Le diagramme montre comment une instruction de MIPS32 est décodée.

La première étape, FETCH (recherche), consiste à rechercher une instruction dans la mémoire vive de l'ordinateur. L'emplacement dans la mémoire est déterminé par le compteur de programme (PC), qui stocke l'adresse de la prochaine instruction dans la mémoire de programme. Après qu'une instruction a été recherchée, le PC est incrémenté par la longueur du mot d'instruction. Dans le cas de mot de longueur constante simple, c'est toujours le même nombre. Par exemple, un mot de 32 bits de longueur constante qui emploie des mots de 8 bits de mémoire incrémenterait toujours le PC par 4 (excepté dans le cas des branchements). Le jeu d'instructions qui emploie des instructions de longueurs variables comme l'x86, incrémentent le PC par le nombre de mots de mémoire correspondant à la dernière longueur d'instruction. En outre, dans des unités centrales de traitement plus complexes, l'incrémentation du PC ne se produit pas nécessairement à la fin de l'exécution d'instruction. C'est particulièrement le cas dans des architectures fortement parallélisées et superscalaires. Souvent, la recherche de l'instruction doit être opérée dans des mémoires lentes, ralentissant l'unité centrale de traitement qui attend l'instruction. Cette question est en grande partie résolue dans les processeurs modernes par l'utilisation de caches et d'architectures pipelines.

L'instruction que le processeur recherche en mémoire est utilisée pour déterminer ce que le CPU doit faire. Dans l'étape DECODE (décodage), l'instruction est découpée en plusieurs parties telles qu'elles puissent être utilisées par d'autres parties du processeur. La façon dont la valeur de l'instruction est interprétée est définie par le jeu d'instructions (ISA) du processeurnote 1. Souvent, une partie d'une instruction, appelée opcode (code d'opération), indique quelle opération est à faire, par exemple une addition. Les parties restantes de l'instruction comportent habituellement les autres informations nécessaires à l'exécution de l'instruction comme par exemples les opérandes de l'addition. Ces opérandes peuvent prendre une valeur constante, appelée valeur immédiate, ou bien contenir l'emplacement où retrouver (dans un registre ou une adresse mémoire) la valeur de l'opérande, suivant le mode d'adressage utilisé. Dans les conceptions anciennes, les parties du processeur responsables du décodage étaient fixes et non modifiables car elles étaient codées dans les circuits. Dans les processeurs plus récents, unmicroprogramme est souvent utilisé pour traduire les instructions en différents ordres. Ce microprogramme est parfois modifiable pour changer la façon dont le CPU décode les instructions, même après sa fabrication.

Diagramme fonctionnel d'un processeur simple.

Après les étapes de recherche et de décodage arrive l'étape EXECUTE (exécution) de l'instruction. Au cours de cette étape, différentes parties du processeur sont mises en relation pour réaliser l'opération souhaitée. Par exemple, pour une addition, l'unité arithmétique et logique (ALU) sera connectée à des entrées et des sorties. Les entrées présentent les nombres à additionner et les sorties contiennent la somme finale. L'ALU contient la circuiterie pour réaliser des opérations d'arithmétique et de logique simples sur les entrées (addition, opération sur les bits). Si le résultat d'une addition est trop grand pour être codé par le processeur, un signal de débordement est positionné dans un registre d'état (voir ci-dessous le chapitre sur le codage des nombres).

La dernière étape WRITEBACK (écriture du résultat), écrit tout simplement les résultats de l'étape d'exécution en mémoire. Très souvent, les résultats sont écrits dans un registre interne au processeur pour bénéficier de temps d'accès très courts pour les instructions suivantes. Dans d'autres cas, les résultats sont écrits plus lentement dans des mémoires RAM, donc à moindre coût et acceptant des codages de nombres plus grands.

Certains types d'instructions manipulent le compteur de programme plutôt que de produire directement des données de résultat. Ces instructions sont appelées des branchement (« branch ») et permettent de réaliser des boucles (« loops »), des programmes à exécution conditionnelle ou des fonctions (sous-programmes) dans des programmesnote 2. Beaucoup d'instructions servent aussi à changer l'état de drapeaux (« flags ») dans un registre d'état. Ces états peuvent être utilisés pour conditionner le comportement d'un programme, puisqu'ils indiquent souvent la fin d'exécution de différentes opérations. Par exemple, une instruction de comparaison entre deux nombres va positionner un drapeau dans un registre d'état suivant le résultat de la comparaison. Ce drapeau peut alors être réutilisé par une instruction de saut pour poursuivre le déroulement du programme.

Après l'exécution de l'instruction et l'écriture des résultats, tout le processus se répète, le prochain cycle d'instructions recherche la séquence d'instruction suivante puisque le compteur de programme avait été incrémenté. Si l'instruction précédente était un saut, c'est l'adresse de destination du saut qui est enregistrée dans le compteur de programme. Dans des processeurs plus complexes, plusieurs instructions peuvent être recherchées, décodées et exécutées simultanément, on parle alors d'architecture pipeline, aujourd'hui communément utilisée dans les équipements électroniques.

Vitesse de traitement[modifier | modifier le code]

La vitesse de traitement d'un processeur est encore parfois exprimée en MIPS (million d'instructions par seconde) ou en mégaFLOPS (millions de floating-point operations per second) pour la partie virgule flottante, dite FPU (Floating Point Unit). Pourtant, aujourd'hui, les processeurs sont basés sur différentes architectures et techniques de parallélisation des traitements qui ne permettent plus de déterminer simplement leurs performances. Des programmes spécifiques d'évaluation des performances (benchmarks) ont été mis au point pour obtenir des comparatifs des temps d'exécution de programmes réels.

Conception et implémentation[modifier | modifier le code]

Le codage des nombres[modifier | modifier le code]

La manière dont un CPU représente les nombres est un choix de conception qui affecte de façon profonde son fonctionnement de base. Certains des ordinateurs les plus anciens utilisaient un modèle électrique du système numérique décimal (base 10). Certains autres ont fait le choix de systèmes numériques plus exotiques comme les systèmes trinaires (base 3). Les processeurs modernes représentent les nombres dans le système binaire (base 2) dans lequel chacun des chiffres est représenté par une grandeur physique qui ne peut prendre que deux valeurs comme une tension électrique « haute » ou « basse ».

Le concept physique de tension électrique est analogique par nature car elle peut prendre une infinité de valeurs. Pour les besoins de représentation physique des nombres binaires, les valeurs des tensions électriques sont définies comme des états « 1 » et « 0 ». Ces états résultent des paramètres opérationnels des éléments de commutation qui composent le processeur comme les niveaux de seuil des transistors.

Le microprocesseur 6502 en technologie MOS dans un boîtier dual in-line une conception très répandue.

En plus du système de représentation des nombres, il faut s'intéresser à la taille et la précision des nombres qu'un processeur peut manipuler. Dans le cas d'un processeur binaire, un « bit » correspond à une position particulière dans les nombres que le processeur peut gérer. Le nombre de bits (chiffres) qu'un processeur utilise pour représenter un nombre est souvent appelé « taille du mot » (« word size », « bit width », « data path width ») ou « précision entière » lorsqu'il s'agit denombres entiers (à l'opposé des nombres flottants). Ce nombre diffère suivant les architectures, et souvent, suivant les différents modules d'un même processeur. Par exemple, un CPU 8-bit gère des nombres qui peuvent être représentés par huit chiffres binaires (chaque chiffre pouvant prendre deux valeurs), soit 28 ou 256 valeurs discrètes. En conséquence, la taille du nombre entier définit une limite à la plage des nombres entiers que le logiciel exécuté par le processeur pourra utiliser.

La taille du nombre entier affecte également le nombre d'emplacements mémoire que le processeur peut adresser (localiser). Par exemple, si un processeur binaire utilise 32 bits pour représenter une adresse mémoire et que chaque adresse mémoire est représentée par un octet (8 bits), la taille mémoire maximum qui peut être adressée par ce processeur est de 232 octets, ou 4 Go. C'est une vision très simpliste de l'espace d'adressage d'un processeur et beaucoup de conceptions utilisent des types d'adressages bien plus complexes, comme la pagination, pour adresser plus de mémoire que la taille du nombre entier le leur permettrait avec un espace d'adressage à plat.

De plus grandes plages de nombres entiers nécessitent plus de structures élémentaires pour gérer les chiffres additionnels, conduisant à plus de complexité, des dimensions plus importantes, plus de consommation d'énergie et des coûts plus élevés. Il n'est donc pas rare de rencontrer des microcontrôleurs 4-bit ou 8-bit dans des applications modernes, même si des processeurs 16-bit, 32-bit, 64-bit et même 128-bit sont disponibles. Pour bénéficier des avantages à la fois des tailles d'entier courtes et longues, beaucoup de CPU sont conçus avec différentes largeurs d'entiers dans différentes parties du composant. Par exemple, le System/370 d'IBM est doté d'un CPU nativement 32-bit mais qui utilise une unité de calcul flottant (FPU) de 128-bit de précision pour atteindre une plus grande précision dans les calculs avec les nombres flottants. Beaucoup des processeurs les plus récents utilisent une combinaison comparable de taille de nombres, spécialement lorsque le processeur est destiné à un usage généraliste pour lequel il est nécessaire de trouver le juste équilibre entre les capacités à traiter les nombres entiers et les nombres flottants.

Le signal d'horloge[modifier | modifier le code]

Article connexe : Signal d'horloge.

La plupart des processeurs, et plus largement la plupart des circuits de logique séquentielle, ont un fonctionnement synchrone par naturenote 3. Cela veut dire qu'ils sont conçus et fonctionnent au rythme d'un signal de synchronisation. Ce signal est le « signal d'horloge ». Il prend souvent la forme d'une onde carrée périodique. En calculant le temps maximum que prend le signal électrique pour se propager dans les différentes branches des circuits du processeur, le concepteur peut sélectionner la période appropriée du signal d'horloge.

Cette période doit être supérieure au temps que prend le signal pour se propager dans le pire des cas. En fixant la période de l'horloge à une valeur bien au-dessus du pire des cas de temps de propagation, il est possible de concevoir entièrement le processeur et la façon dont il déplace les données autour des « fronts » montants ou descendants du signal d'horloge. Ceci a pour avantage de simplifier significativement le processeur tant du point de vue de sa conception que de celui du nombre de ses composants. Par contre, ceci a pour inconvénient le ralentissement du processeur puisque sa vitesse doit s'adapter à celle de son élément le plus lent, même si d'autres parties sont beaucoup plus rapides. Ces limitations sont largement compensées par différentes méthodes d'accroissement du parallélisme des processeurs (voir ci-dessous).

Les améliorations d'architecture ne peuvent pas, à elles seules, résoudre tous les inconvénients des processeurs globalement synchrones. Par exemple, un signal d'horloge est sujet à des retards comme tous les autres signaux électriques. Les fréquences d'horloge plus élevées que l'on trouve dans les processeurs à la complexité croissante engendrent des difficultés pour conserver le signal d'horloge en phase (synchronisé) à travers toute l'unité centrale de traitement. En conséquence, beaucoup des processeurs d'aujourd'hui nécessitent la fourniture de plusieurs signaux d'horloge identiques de façon à éviter que le retard d'un seul signal ne puisse être la cause d'un dysfonctionnement du processeur. La forte quantité de chaleur qui doit être dissipée par le processeur constitue un autre problème majeur dû à l'accroissement des fréquences d'horloge. Les changements d'état fréquents de l'horloge font commuter un grand nombre de composants, qu'ils soient ou non utilisés à cet instant. En général, les composants qui commutent utilisent plus d'énergie que ceux qui restent dans un état statique. ainsi, plus les fréquences d'horloge augmentent et plus la dissipation de chaleur en fait autant, ce qui fait que les processeurs requièrent des solutions de refroidissement plus efficaces.

La méthode dite de « clock gating » permet de gérer la commutation involontaire de composants en inhibant le signal d'horloge sur les éléments choisis mais cette pratique est difficile à implémenter et reste réservée aux besoins de circuits à très faible consommation.

Une autre méthode consiste à abandonner le signal global d'horloge, la consommation d'énergie et la dissipation thermique sont réduites mais la conception du circuit devient plus complexe. On parle alors de processeurs asynchrones. Certaines conceptions ont été réalisés sans signal global d'horloge, utilisant par exemple les jeux d'instructions ARM ou MIPS, d'autres ne présentent que des parties asynchrones comme l'utilisation d'une UAL asynchrone avec un « pipelining »superscalaire pour atteindre des gains de performance dans les calculs arithmétiques. De tels processeurs sont actuellement plutôt réservés aux applications embarquées (ordinateurs de poche, consoles de jeux...).

Parallélisme[modifier | modifier le code]

Article détaillé : Parallélisme (informatique).

Modèle de processeur subscalaire : il faut 15 cycles pour exécuter trois instructions.

La description du mode de fonctionnement de base d'un processeur présentée au chapitre précédent présente la forme la plus simple que peut prendre un CPU. Ce type de processeur, appelé subscalaire, exécute une instruction sur un ou deux champs de données à la fois.

Ce processus est inefficace et inhérent aux processeurs subscalaires. Puisqu'une seule instruction est exécutée à la fois, tout le processeur attend la fin du traitement de cette instruction avant de s'intéresser à la suivante avec pour conséquence que le processeur reste figé sur les instructions qui nécessitent plus d'un cycle d'horloge pour s'exécuter. L'ajout d'une seconde unité de traitement (voir ci-dessous), ne permet pas d'améliorer notablement les performances, ce n'est plus une unité de traitement qui se trouve figée mais 2, en augmentant encore le nombre de transistors inutilisés. Ce type de conception, dans laquelle les ressources d'exécution du CPU ne traitent qu'une seule instruction à la fois ne peut atteindre que des performances scalaires (une instruction par cycle d'horloge), voire subscalaires (moins d'une instruction par cycle d'horloge).

En tentant d'obtenir des performances scalaires et au-delà, on a abouti à diverses méthodes qui conduisent le CPU a un comportement moins linéaire et plus parallèle. Lorsqu'on parle de parallélisme de processeur, deux termes sont utilisés pour classifier ces techniques de conception :

  • Instruction Level Parallelism (ILP) - Parallélisme au niveau instruction ;
  • Thread Level Parallelism (TLP) - Parallélisme au niveau thread (groupe d'instructions).

L'ILP cherche à augmenter la vitesse à laquelle les instructions sont exécutées par un CPU (c’est-à-dire augmenter l'utilisation des ressources d'exécution présentes dans le circuit intégré). L'objectif du TLP est d'accroître le nombre de threads que le CPU pourra exécuter simultanément. Chaque méthode diffère de l'autre d'une part, par la façon avec laquelle elle est implémentée et d'autre part, du fait de leur efficacité relative à augmenter les performances des processeurs pour une application.

ILP : Pipelining d'instructions et architecture superscalaire[modifier | modifier le code]

Pipeline de base à 5 étages. Dans le meilleur scénario, ce pipeline peut soutenir un taux d'exécution d'une instruction par cycle.

Une des méthodes les plus simples pour accroître le parallélisme consiste à démarrer les premières étapes de recherche (« fetch ») et décodage (« decode ») d'une instruction avant la fin d'exécution de l'instruction précédente. C'est la forme la plus simple de la technique de pipelining, elle est utilisée dans la plupart des processeurs modernes non spécialisés. Le pipelining permet d'exécuter plus d'une instruction à la fois en décomposant le chemin d'exécution en différentes étapes. Ce découpage peut être comparé à une chaîne d'assemblage.

Le pipelining peut créer des conflits de dépendance de données, lorsque le résultat de l'opération précédente est nécessaire à l'exécution de l'opération suivante. Pour résoudre ce problème, un soin particulier doit être apporté pour vérifier ce type de situation et retarder, le cas échéant, une partie du pipeline d'instruction. Naturellement, les compléments de circuits à apporter pour cela ajoutent à la complexité des processeurs parallèles. Un processeur parallèle peut devenir presque scalaire, ralenti uniquement par les attentes du pipeline (une instruction prend moins d'un cycle d'horloge par étape).

Pipeline superscalaire simple. En recherchant et affectant deux instructions à la fois, le CPU peut exécuter un maximum de deux instructions par cycle.

Les développements suivants du pipelining ont conduit au développement d'une méthode qui diminue encore plus les temps d'attente des composants du processeur. Les conceptions dites superscalaires comportent un pipeline à instruction longue et plusieurs unités d'exécution identiques 1. Dans un pipeline superscalaire, plusieurs instructions sont lues et transmises à un répartisseur qui décide si les instructions seront exécutées en parallèle (simultanément) ou non. Le cas échéant, les instructions sont réparties sur les unités d'exécution disponibles. En général, plus un processeur superscalaire est capable d'exécuter d'instructions en parallèle et plus le nombre d'instructions exécutées dans un cycle sera élevé.

La plupart des difficultés rencontrées dans la conception des architectures de processeurs superscalaires résident dans la mise au point du répartisseur. Le répartisseur doit être disponible rapidement et être capable de déterminer sans erreur si les instructions peuvent être exécutées en parallèle, il doit alors les distribuer de façon à charger les unités d'exécution autant qu'il est possible. Pour cela, le pipeline d'instructions doit être rempli aussi souvent que possible, créant le besoin d'une quantité importante de mémoire cache. Les techniques de traitement aléatoire comme la prédiction de branchement, l'exécution spéculative et la résolution des dépendances aux données deviennent cruciales pour maintenir un haut niveau de performance. En tentant de prédire quel branchement (ou chemin) une instruction conditionnelle prendra, le processeur peut minimiser le temps que tout le pipeline doit attendre jusqu'à la fin d'exécution de l'instruction conditionnelle. L'exécution spéculative améliore les performances modestes en exécutant des portions de code qui seront, ou ne seront pas, nécessaires à la suite d'une instruction conditionnelle. La résolution de la dépendance aux données est obtenue en réorganisant l'ordre dans lequel les instructions sont exécutées en optimisant la disponibilité des données.

Lorsque seule une partie de processeur est superscalaire, la partie qui ne l'est pas rencontre des problèmes de performance dus aux temps d'attente d'ordonnancement. Le Pentium original (P5) disposait de deux ALU superscalaires qui pouvaient chacune accepter une instruction par cycle. Ensuite le P5 est devenu superscalaire pour les calculs sur les nombres entiers mais pas sur les nombres à virgule flottante. Les successeurs des architectures Pentium d'Intel, les P6, ont été dotés de capacités superscalaires pour les calculs sur les nombres à virgule flottante améliorant par là leurs performances en calcul flottant.

Les conceptions de pipelining simple et superscalaires augmentent le parallélisme (ILP) des CPU en permettant à un processeur unique d'exécuter des instructions à un rythme de plus d'une instruction par cycle. La plupart des processeurs d'aujourd'hui ont au moins une partie superscalaires. Au cours des dernières années, certaines évolutions dans la conception des processeurs à fort parallélisme ne se trouvent plus dans les circuits du processeur mais ont été placées dans le logiciel ou dans son interface avec le logiciel (ISA). La stratégie des instructions très longues (Very Long Instruction Word - VLIW) conduit à implémenter certains parallélismes directement dans le logiciel, cela réduit la participation du processeur au gain de performance mais en réduit la complexité.

TLP : exécution simultanée de programmes[modifier | modifier le code]

Une autre stratégie communément employée pour augmenter le parallélisme des processeurs consiste à introduire la capacité d'exécuter plusieurs programmes (threads) simultanément. De manière générale, les processeurs multi-threads ont été utilisés depuis plus longtemps que les processeurs à architecture pipeline. Bon nombre des conceptions pionnières, réalisées par la société Cray Research, datant de la fin des années 1970 et des années 1980, mettaient en œuvre principalement la méthode TLP, dégageant alors de très grandes capacités de calcul (pour l'époque). En fait, le multithreading était connu dès les années 1950(réf. : Smotherman 2005).

Dans le cas des processeurs simples, les deux méthodologies principales employées pour développer des TLP sont le multiprocessing au niveau des circuits (Chip-level multiprocessing - CMP) et le multithreading simultané (Simultaneous multithreading - SMT). À un plus haut niveau, il est d'usage de réaliser des ordinateurs avec plusieurs processeurs totalement indépendants dans des organisations de type symétrique (Symmetric multiprocessing - SMP) ou à accès mémoire non uniforme (Non Uniform Memory Access - NUMA). Il s'agit alors de multiprocesseurs ou de processeurs multi-cœur. Alors que ces techniques diffèrent par les moyens qu'elles mettent en œuvre, elles visent toutes le même but : augmenter le nombre de threads qu'un processeur peut exécuter en parallèle.

Les méthodes de parallélisme CMP et SMP sont assez semblables, elles demandent plus d'effort de conception que l'utilisation de deux ou trois processeurs totalement indépendants. Dans le cas du CMP, plusieurs cœurs (core, en anglais) de processeurs sont intégrés dans le même boîtier, parfois même dans le même circuit intégré. Les SMP, eux, utilisent plusieurs boîtiers indépendants. NUMA est comparable au CMP mais met en œuvre un modèle d'accès mémoire non uniforme (les temps d'accès sont différents suivant que la mémoire est locale ou non locale à un processeur donné). Cette caractéristique est fondamentale dans les ordinateurs à plusieurs processeurs car pour les modèles SMP à mémoire partagée, les temps d'accès à la mémoire sont rapidement dégradés en cas d'accès simultané par plusieurs processeurs. À ce titre, NUMA est considéré comme un modèle plus évolutif en nombre de processeurs.

SMT diffère des autres améliorations de TLP puisqu'il vise à dupliquer aussi peu de portions de CPU que possible. La mise en œuvre d'une stratégie de type TLP ressemble à une architecture superscalaire et se trouve souvent utilisée dans les microprocesseurs superscalaires (comme les POWER5 d'IBM). Plutôt que de dupliquer un CPU complet, la conception SMT ne duplique que les parties nécessaires pour la recherche (« fetch »), le décodage, (« decode ») et la répartition des instructions (« dispatch ») ainsi que les registres non spécialisés. Ceci permet a un processeur SMT de maintenir ses unités d'exécution occupées plus souvent, en leur fournissant des instructions en provenance de deux programmes différents. Comme on vient de la voir, le SMT est proche de l'architecture ILP superscalaire mais, plutôt que d'exécuter simultanément plusieurs instructions en provenance de deux programmes différents, elle permet d'exécuter simultanément plusieurs instructions en provenance du même programme.

Notes et références[modifier | modifier le code]

Notes[modifier | modifier le code]

  1. ↑ Parce que l'architecture du jeu d'instruction d'un CPU est fondamentale pour son interface et utilisation, cela est souvent utilisé comme une classification pour le « type » de CPU. Par exemple, un CPU PowerPC utilise une variation du PowerPC ISA. Un système peut exécuter un ISA différent en exécutant un émulateur.
  2. ↑ Parmi les premiers ordinateurs tel que le Harvard Mark I aucun type de sauts n'était supporté, limitant par conséquent la complexité des programmes pouvant être exécutés. C'est essentiellement pour cette raison que ces ordinateurs sont souvent considérés comme ne contenant pas un CPU propre, malgré leurs similitudes aux ordinateurs à programme enregistré.
  3. ↑ Dans les faits, tous les CPU synchrones utilisent un mélange de logique séquentielle et de logique combinatoire (voir logique booléenne).

Références[modifier | modifier le code]

  1. ↑ (en) Jack Huynh, «  » [archive], University of Illinois - Urbana-Champaign,‎ 2003 (consulté en sept. 2011)p. 6-11 [PDF]

Annexes[modifier | modifier le code]

Sur les autres projets Wikimedia :

  • Processeur, sur Wikimedia Commons 
  • processeur, sur le Wiktionnaire

Articles connexes[modifier | modifier le code]

  • Microprocesseur
  • Microcontrôleur
  • Pipeline (informatique)
  • Processeur vectoriel
  • Processeur superscalaire
  • Processeur synchrone
  • Processeur asynchrone
  • Processeur autosynchrone
  • Processeur 64 bit
  • lithographie en immersion
  • TPU

Liens externes[modifier | modifier le code]

  • Portail de l’électricité et de l’électronique 
  • Portail de l’informatique 
  • Portail des technologies

Catégorie : 

  • Processeur | [+]

Menu de navigation

  • Créer un compte
  • Se connecter
  • Article
  • Discussion
  • Lire
  • Modifier
  • Modifier le code
  • Historique
  • Accueil
  • Portails thématiques
  • Article au hasard
  • Contact

Contribuer

  • Débuter sur Wikipédia
  • Aide
  • Communauté
  • Modifications récentes
  • Faire un don

Imprimer / exporter

  • Créer un livre
  • Télécharger comme PDF
  • Version imprimable

Outils

  • Pages liées
  • Suivi des pages liées
  • Importer un fichier
  • Pages spéciales
  • Adresse de cette version
  • Information sur la page
  • Élément Wikidata
  • Citer cette page

Autres langues

  • Afrikaans
  • Alemannisch
  • Aragonés
  • العربية
  • مصرى
  • Azərbaycanca
  • Башҡортса
  • Беларуская
  • Беларуская (тарашкевіца)‎
  • Български
  • བོད་ཡིག
  • Bosanski
  • Català
  • کوردی
  • Čeština
  • Чӑвашла
  • Cymraeg
  • Dansk
  • Deutsch
  • Ελληνικά
  • English
  • Esperanto
  • Español
  • Eesti
  • Euskara
  • فارسی
  • Suomi
  • Furlan
  • Gaeilge
  • Galego
  • گیلکی
  • עברית
  • Hrvatski
  • Magyar
  • Հայերեն
  • Interlingua
  • Bahasa Indonesia
  • Íslenska
  • Italiano
  • 日本語
  • Basa Jawa
  • Gĩkũyũ
  • Қазақша
  • ភាសាខ្មែរ
  • ಕನ್ನಡ
  • 한국어
  • Къарачай-малкъар
  • Кыргызча
  • Latina
  • Lingála
  • ລາວ
  • Lietuvių
  • Latviešu
  • Олык марий
  • Македонски
  • മലയാളം
  • Монгол
  • Bahasa Melayu
  • Plattdüütsch
  • Nederlands
  • Norsk nynorsk
  • Norsk bokmål
  • Occitan
  • Polski
  • پنجابی
  • Ποντιακά
  • Português
  • Română
  • Русский
  • Русиньскый
  • Саха тыла
  • Scots
  • Srpskohrvatski / српскохрватски
  • සිංහල
  • Simple English
  • Slovenčina
  • Slovenščina
  • Soomaaliga
  • Shqip
  • Српски / srpski
  • Svenska
  • Kiswahili
  • தமிழ்
  • తెలుగు
  • Тоҷикӣ
  • ไทย
  • Tagalog
  • Türkçe
  • Татарча/tatarça
  • Українська
  • اردو
  • Oʻzbekcha
  • Tiếng Việt
  • Winaray
  • ייִדיש
  • 中文
  • 粵語

Modifier les liens

  • Dernière modification de cette page le 9 septembre 2014 à 14:00.
  • Droit d'auteur : les textes sont disponibles sous licence Creative Commons paternité partage à l’identique ; d’autres conditions peuvent s’appliquer. Voyez les conditions d’utilisation pour plus de détails, ainsi que lescrédits graphiques. En cas de réutilisation des textes de cette page, voyez comment citer les auteurs et mentionner la licence.
    Wikipedia® est une marque déposée de la Wikimedia Foundation, Inc., organisation de bienfaisance régie par le paragraphe 501(c)(3) du code fiscal des États-Unis.
  • Politique de confidentialité
  • À propos de Wikipédia
  • Avertissements
  • Développeurs
  • Version mobile