Technopedia Center
PMB University Brochure
Faculty of Engineering and Computer Science
S1 Informatics S1 Information Systems S1 Information Technology S1 Computer Engineering S1 Electrical Engineering S1 Civil Engineering

faculty of Economics and Business
S1 Management S1 Accountancy

Faculty of Letters and Educational Sciences
S1 English literature S1 English language education S1 Mathematics education S1 Sports Education
  • Registerasi
  • Brosur UTI
  • Kip Scholarship Information
  • Performance
  1. WeltenzyklopÀdie
  2. Processeur
Processeur 👆 Click Here! Read More..
Un article de Wikipédia, l'encyclopédie libre.
(Redirigé depuis CPU)
Page d’aide sur les redirections

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

Processeur
Type
Circuit électronique, plateforme informatique, composant semiconducteur, matériel informatiqueVoir et modifier les données sur Wikidata
Caractéristiques
Matériau
SiliciumVoir et modifier les données sur Wikidata
Composé de
Socket
Unité arithmétique et logique
Unité de calcul en virgule flottanteVoir et modifier les données sur Wikidata
Utilisation
Usage
OrdinateurVoir et modifier les données sur Wikidata

modifier - modifier le code - modifier WikidataDocumentation du modĂšle

Processeur Intel Core i7-12700KF.

Un processeur (ou unitĂ© centrale de calcul, UCC ; en anglais central processing unit, CPU) ou unitĂ© centrale de traitement est un composant Ă©lectronique prĂ©sent dans de nombreux dispositifs Ă©lectroniques qui exĂ©cute les instructions machine des programmes informatiques, c’est le « cerveau Â» de l’ordinateur. Avec la mĂ©moire, c'est notamment l'une des fonctions qui existent depuis les premiers ordinateurs. Un processeur construit en un seul circuit intĂ©grĂ© est un microprocesseur.

L'invention du transistor, en 1947, ouvrit la voie Ă  la miniaturisation des composants Ă©lectroniques. Car, auparavant, les ordinateurs prenaient la taille d'une piĂšce entiĂšre du fait de l'utilisation de tubes Ă  vide volumineux[1],[2], gros consommateurs d'Ă©nergie et gĂ©nĂ©rant beaucoup de chaleur : chaque transistor Ă©tait un tube cathodique.

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.

Histoire

[modifier | modifier le code]
Article dĂ©taillĂ© : Histoire des processeurs.

Les premiers processeurs nécessitaient un espace important, puisqu'ils étaient construits à base de tubes électroniques ou de relais électromécaniques.

Leur crĂ©ation a pour origine les travaux de John von Neumann, qui rĂ©pondaient aux difficultĂ©s liĂ©es Ă  la reprogrammation de calculateurs comme l'ENIAC oĂč il Ă©tait nĂ©cessaire de recĂąbler le systĂšme pour faire fonctionner un nouveau programme[3].

Dans cette architecture, une unité de contrÎle se charge de coordonner un processeur (ayant accÚs aux entrées/sorties) et la mémoire.

Tout cela a Ă©tĂ© dĂ©crit par un document intitulĂ© « premiĂšre Ă©bauche d'un rapport sur l'EDVAC Â»[4].

Microprocesseurs

[modifier | modifier le code]
Articles dĂ©taillĂ©s : Microprocesseur et Gravure (microfabrication).
Le microprocesseur 6502 en technologie MOS dans un boßtier dual in-line une conception trÚs répandue dans les années 1970/1980.
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[5], 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)[6], 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 mĂ©gahertz[a] Ă  plusieurs gigahertz[b]. 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[7], 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Ă©)[8].

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[rĂ©f. nĂ©cessaire]. Celles des processeurs ont atteint 2 pĂ©taFLOPS en 2010 pour les serveurs[9]. Selon les projections, les PC devraient eux aussi atteindre le pĂ©taFLOPS Ă  l'horizon 2030.[rĂ©f. nĂ©cessaire]

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

En novembre 2015, pour la sixiĂšme fois consĂ©cutive, le supercalculateur chinois Tianhe-2 "milky way-2", dĂ©veloppĂ© par l'universitĂ© nationale chinoise pour les technologies de dĂ©fense, atteint la premiĂšre place du classement semestriel mondial TOP500[10] des supercalculateurs avec 33,86 pĂ©taFLOPS.

En 2022 et en l’absence de chiffres officiels pour les Sunway Oceanlite et Tianhe-3 chinois, le Frontiera Ă©tĂ© dĂ©clarĂ© le premier supercalculateur Ă  franchir la barre de l’ExaFLOPS[11]. En matiĂšre de record de performance, la tendance est Ă  un lĂ©ger au ralentissement de 2014 Ă  2024[11].

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]

Définition d'un processeur

[modifier | modifier le code]

Un processeur est un dispositif qui exĂ©cute une sĂ©rie de fonctions nĂ©cessaires Ă  la rĂ©alisation d'un processus donnĂ©[12]. Cet Ă©lĂ©ment repose sur la programmation et doit, au minimum, assurer les fonctions suivantes [13] :

Composition d'un processeur

[modifier | modifier le code]
SchĂ©ma de principe d'un processeur 32 bits.

Un processeur n'est pas qu'une unité de calcul. Cette derniÚre est incluse dans le processeur mais il fait aussi appel à une unité de contrÎle, une unité d'entrée-sortie, à une horloge et à des registres.

Le séquenceur, ou unité de contrÎle, se charge de gérer le processeur. Il peut décoder les instructions, choisir les registres à utiliser, gérer les interruptions ou initialiser les registres au démarrage. Il fait appel à l'unité d'entrée-sortie pour communiquer avec la mémoire ou les périphériques.

L'horloge doit fournir un signal régulier pour synchroniser tout le fonctionnement du processeur. Elle est présente dans les processeurs synchrones mais absente des processeurs asynchrones et des processeurs auto-synchrones.

Les registres sont des petites mĂ©moires internes trĂšs rapides, pouvant ĂȘtre accĂ©dĂ©es facilement. Un plus grand nombre de registres permettra au processeur d'ĂȘtre plus indĂ©pendant de la mĂ©moire. La taille des registres dĂ©pend de l'architecture, mais est gĂ©nĂ©ralement de quelques octets et correspond au nombre de bit de l'architecture (un processeur 8 bits aura des registres d'un octet). Il existe plusieurs registres, dont l'accumulateur et le compteur ordinal qui constituent la structure de base du processeur. Le premier sert Ă  stocker les donnĂ©es traitĂ©es par l'UAL (l'unitĂ© de calcul arithmĂ©tique et logique), et le second donne l'adresse mĂ©moire de l'instruction en cours d'exĂ©cution ou de la suivante (en fonction de l'architecture). D'autres registres ont Ă©tĂ© ajoutĂ©s au fil du temps :

  • le pointeur de pile : il sert Ă  stocker l'adresse du sommet des piles, qui sont en fait des structures de donnĂ©es gĂ©nĂ©ralement utilisĂ©es pour gĂ©rer des appels de sous-programmes ;
  • le registre d'instruction : il permet quant Ă  lui de stocker l'instruction en cours de traitement ;
  • le registre d'Ă©tat : il est composĂ© de plusieurs bits, appelĂ©s drapeaux (flags), servant Ă  stocker des informations concernant le rĂ©sultat de la derniĂšre instruction exĂ©cutĂ©e ;
  • les registres gĂ©nĂ©raux, qui servent Ă  stocker les donnĂ©es allant ĂȘtre utilisĂ©es (ce qui permet d'Ă©conomiser des allers-retours avec la mĂ©moire).

Les processeurs actuels intĂšgrent Ă©galement des Ă©lĂ©ments plus complexes :

  • plusieurs unitĂ©s arithmĂ©tiques et logiques, qui permettent 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 ;
  • unitĂ© de calcul en virgule flottante (en anglais floating-point unit, FPU), qui permet d'accĂ©lĂ©rer les calculs sur les nombres rĂ©els codĂ©s en virgule flottante ;
  • unitĂ© de prĂ©diction de branchement, qui permet au processeur d'anticiper un branchement dans le dĂ©roulement d'un programme afin d'Ă©viter d'attendre la valeur dĂ©finitive de l'adresse du saut. Il permet de mieux remplir le pipeline ;
  • pipeline, qui permet de dĂ©couper temporellement les traitements Ă  effectuer ;
  • mĂ©moire cache, qui permet d'accĂ©lĂ©rer les traitements en diminuant les accĂšs Ă  la mĂ©moire vive. Le cache d'instructions reçoit les prochaines instructions Ă  exĂ©cuter, le cache de donnĂ©es manipule les donnĂ©es. Parfois un cache unifiĂ© est utilisĂ© pour les instructions et les donnĂ©es. Plusieurs niveaux (levels) 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 Ă  la mĂ©moire vive.

Un processeur possĂšde aussi trois types de bus :

  • bus de donnĂ©es, qui 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) ;
  • bus d'adresse, qui permet, lors d'une lecture ou d'une Ă©criture, d'envoyer l'adresse oĂč elle s'effectue, et donc dĂ©finit le nombre de cases mĂ©moire accessibles ;
  • bus de contrĂŽle, qui 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 (en anglais instruction set architecture, ISA),
    • 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 mĂ©gahertz (MHz) ou gigahertz (GHz),
    • sa finesse de gravure exprimĂ©e en nanomĂštres (nm),
    • son nombre de cƓurs de calcul.

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 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[14]

. Par exemple, il n'est pas rare de voir implĂ©menter des transformĂ©es de Fourier dans un DSP ;

  • processeur softcore, est un circuit logique programmable et n'a plus du tout de fonction prĂ©cablĂ©e contrairement Ă  un DSP.
  • NPU (Neural Processing Unit)
  • TPU (Tensor Processing Unit)[15]
  • LPU (Language Processing Unit)[16],[17],[18]

Les opérations du processeur

[modifier | modifier le code]

Le rÎle fondamental de la plupart des processeurs, indépendamment de la forme physique qu'ils prennent, est d'exécuter une série d'instructions stockées appelée 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.

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 « bas niveau Â» (comme le Pascal, C, C++, Fortran, Ada, etc.), « haut niveau Â» (comme le python, java,C#,Ruby, 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 de von Neumann utilisent :

  1. Fetch, recherche de l'instruction ;
  2. Decode, interprĂ©tation de l'instruction (opĂ©ration et opĂ©randes) ;
  3. Execute, exĂ©cution de l'instruction ;
  4. Writeback, écriture du résultat.
Le diagramme montre comment une instruction de MIPS32 est décodée.

La premiĂšre Ă©tape, fetch (recherche de l'instruction), recherche 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 ait Ă©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). Les jeux d'instructions qui emploient 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 processeurs plus complexes, l'incrĂ©mentation du PC ne se produit pas nĂ©cessairement Ă  la fin de l'exĂ©cution d'une 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 le processeur qui attend l'instruction. Cette question est en grande partie rĂ©solue dans les processeurs modernes par l'utilisation de caches et de pipelines.

La seconde Ă©tape, decode (interprĂ©tation de l'instruction), dĂ©coupe l'instruction 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 du processeur[c]. Souvent, une partie d'une instruction, appelĂ©e opcode (code opĂ©ration), indique l'opĂ©ration Ă  effectuer, par exemple une addition. Les parties restantes de l'instruction comportent habituellement les opĂ©randes de l'opĂ©ration. 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 de l'interprĂ©tation Ă©taient fixes et non modifiables car elles Ă©taient codĂ©es dans les circuits. Dans les processeurs plus rĂ©cents, un microprogramme est souvent utilisĂ© pour l'interprĂ©tation. Ce microprogramme est parfois modifiable pour changer la façon dont le processeur interprĂšte les instructions, mĂȘme aprĂšs sa fabrication.

Diagramme fonctionnel d'un processeur simple.

La troisiĂšme Ă©tape, execute (exĂ©cution de l'instruction), met en relation diffĂ©rentes parties du processeur 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 une sortie. Les entrĂ©es contiennent les nombres Ă  additionner et la sortie contient le rĂ©sultat. L'ALU est dotĂ©e de circuits 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.

La derniÚre étape, writeback (écriture du résultat), écrit 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. Parfois, les résultats sont écrits plus lentement dans la mémoire vive pour bénéficier de 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 branchements (branch) et permettent de rĂ©aliser des boucles (loops), des programmes Ă  exĂ©cution conditionnelle ou des fonctions (sous-programmes) dans des programmes[d]. 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 l'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 IPS (instructions par seconde) ou en FLOPS (opérations à virgule flottante par seconde) pour l'unité de calcul en virgule flottante. 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 processeur 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/basse Â» ou en informatique « vrai/faux Â».

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.

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 nativement. 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 Â» (en anglais « word size Â», « bit width Â», « data path width Â») ou « prĂ©cision entiĂšre Â» lorsqu'il s'agit de nombres 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 processeur 8-bit gĂšre nativement 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.

La taille du mot machine affecte 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, soit 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 processeurs 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 processeurs 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 processeur nativement 32-bit mais qui utilise une 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 nature[e]. 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 tout le processeur. En consĂ©quence, beaucoup de processeurs actuels nĂ©cessitent 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 thermique en fait autant, ce qui fait que les processeurs requiĂšrent des solutions de refroidissement plus efficaces.

La méthode 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, etc.).

Parallélisme

[modifier | modifier le code]
Article dĂ©taillĂ© : ParallĂ©lisme (informatique).
ModĂšle de processeur subscalaire : il faut 15 cycles d'horloge 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 processeur. Ce type de processeur, appelé subscalaire, exécute une instruction sur un ou deux flux 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é d'exécution (voir ci-dessous) ne permet pas d'améliorer notablement les performances, ce n'est plus une unité d'exécution qui se trouve figée mais deux, en augmentant encore le nombre de transistors inutilisés. Ce type de conception, dans laquelle les ressources d'exécution du processeur 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 processeur a un comportement moins linĂ©aire et plus parallĂšle. Lorsqu'on parle de parallĂ©lisme de processeur, deux techniques de conception sont utilisĂ©es :

  • parallĂ©lisme au niveau instruction (en anglais : instruction-level parallelism, ILP) ;
  • parallĂ©lisme au niveau thread (en anglais : thread-level parallelism, TLP).

L'ILP vise Ă  augmenter la vitesse Ă  laquelle les instructions sont exĂ©cutĂ©es par un processeur (c’est-Ă -dire augmenter l'utilisation des ressources d'exĂ©cution prĂ©sentes dans le circuit intĂ©grĂ©). Le TLP vise Ă  augmenter le nombre de threads que le processeur 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 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 d'horloge.

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'interprĂ©tation (decode) d'une instruction avant la fin de l'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 cycle d'instruction 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. En recherchant et affectant deux instructions à la fois, le processeur peut exécuter un maximum de deux instructions par cycle d'horloge.

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 architectures dites superscalaires comportent plusieurs unités d'exécution identiques[19]. Dans un processeur 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Ă©partiteur. Le rĂ©partiteur 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) d'Intel 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 architectures à pipeline et superscalaires augmentent le parallélisme (ILP) des processeurs 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 superscalaire. 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, le jeu d'instructions (instruction set architecture, ISA). La stratégie des instructions trÚs longues (very long instruction word, VLIW) implémente certains parallélismes directement dans le logiciel, ce qui réduit la participation du processeur au gain de performance mais augmente aussi sa simplicité.

TLP : multithreading simultanĂ© et architecture multicƓur

[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 threads simultanĂ©ment. De maniĂšre gĂ©nĂ©rale, les processeurs multithreads ont Ă©tĂ© utilisĂ©s depuis plus longtemps que les processeurs Ă  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 le 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 (Smotherman 2005).

Dans le cas des processeurs simples, les deux mĂ©thodologies principales employĂ©es pour dĂ©velopper le TLP sont le multiprocessing au niveau circuit (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), donc en particulier Ă  accĂšs mĂ©moire uniforme (uniform memory access, UMA), ou asymĂ©trique (asymmetric multiprocessing) Ă  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 et 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 (cores) 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. Le 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, la mĂ©moire est partagĂ©e et les temps d'accĂšs Ă  la mĂ©moire sont donc rapidement dĂ©gradĂ©s en cas d'accĂšs simultanĂ© par plusieurs processeurs. À ce titre, le 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 processeur que possible. Sa mise en Ɠuvre 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 processeur complet, la conception SMT ne duplique que les parties nĂ©cessaires pour la recherche (fetch), l'interprĂ©tation (decode) et la rĂ©partition des instructions (dispatch) ainsi que les registres non spĂ©cialisĂ©s. Ceci permet Ă  un processeur SMT de maintenir ses unitĂ©s d'exĂ©cution occupĂ©es plus souvent, en leur fournissant des instructions en provenance de deux threads diffĂ©rents. Comme on vient de la voir, le SMT est proche de l'architecture ILP superscalaire, mais cette derniĂšre exĂ©cute des instructions en provenance du mĂȘme thread.

Notes et références

[modifier | modifier le code]

Notes

[modifier | modifier le code]
  1. ↑ 2,5 MHz pour le Zilog Z80 en 1976
    4,77 MHz pour l'Intel 8088 sur le premier IBM-PC en 1981
  2. ↑ 4 GHz pour l'Intel Core i7 6700K en 2015
  3. ↑ Parce que l'architecture du jeu d'instructions d'une CPU est fondamentale pour son interface et utilisation, cela est souvent utilisĂ© comme une classification pour le « type Â» de CPU. Par exemple, une CPU PowerPC utilise une variation du PowerPC ISA. Un systĂšme peut exĂ©cuter un ISA diffĂ©rent en exĂ©cutant un Ă©mulateur.
  4. ↑ 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 une CPU propre, malgrĂ© leurs similitudes aux ordinateurs Ă  programme enregistrĂ©.
  5. ↑ 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) Robert Garner et Frederick (Rick) Dill, « The Legendary IBM 1401 Data Processing System Â», IEEE Solid-State Circuits Magazine, vol. 2, no 1,‎ hiver 2010, p. 28–39 (DOI 10.1109/MSSC.2009.935295, S2CID 31608817, lire en ligne)
  2. ↑ (en) « IBM100 - The IBM 700 Series Â», sur www-03.ibm.com, 2012 (consultĂ© le 7 novembre 2024)
  3. ↑ « Le modĂšle d’architecture de von Neumann Â», sur interstices.info (consultĂ© le 24 octobre 2018)
  4. ↑ (en) John Von Neuman, First Draft of a Report on the EDVAC, Moore School of Electrical Engineering University of Pennsylvania, 1945, 47lire en ligne=https://www.researchgate.net/publication/312599265_Introduction_to_The_First_Draft_of_a_Report_on_the_EDVAC_Update_January_2017[PDF]
  5. ↑ Captain Tech, « L’histoire fascinante des microprocesseurs : du premier circuit intĂ©grĂ© aux puces modernes Â», 2023 (consultĂ© en novembre 2024)
  6. ↑ (en) GeeksforGeeks, « What is Ultra Large-Scale Integration? Â», 2024 (consultĂ© le 6 novembre 2024)
  7. ↑ (en) Gordon E. Moor, « Cramming more components onto integrated circuits Â», Electronics, vol. 38, no 8,‎ 19 avril 1965 (lire en ligne)
  8. ↑ « Moore's Law Â», sur www.umsl.edu (consultĂ© le 28 janvier 2022)
  9. ↑ a b et c Gordon E. Moor, « Les supercalculateurs, un impĂ©ratif scientifique et industriel Â», La note de veille, vol. 188, no 8,‎ juillet 2010 (lire en ligne)
  10. ↑ Top 500,novembre 2015, top500.org de novembre 2015, consultĂ© le 29 dĂ©cembre 2019
  11. ↑ a et b Yannick Guerrini, « 29 ans de supercalculateurs, une puissance multipliĂ©e par 18 millions ! Â», 2022 (consultĂ© le 6 novembre 2024)
  12. ↑ Demirdjian 1994, p. 146.
  13. ↑ adagio777, « Quels sont les composants d'un PC ? Â», sur BuildMyPc, 22 juin 2024 (consultĂ© le 23 juillet 2024)
  14. ↑ (en) Stephen A. Dyer et Brian K. Harms, Advances in Computers, vol. 37, Academic Press, 13 aoĂ»t 1993, 59 et 118 p. (ISBN 978-0120121373, ISSN 0065-2458, OCLC 858439915, LCCN 59015761, DOI 10.1016/S0065-2458(08)60403-9), « Digital Signal Processing Â»
  15. ↑ « Cloud Tensor Processing Units (TPUs) Â», sur Google Cloud (consultĂ© le 8 novembre 2024)
  16. ↑ (en) Wayne Williams, « 'Feels like magic!': Groq's ultrafast LPU could well be the first LLM-native processor — and its latest demo may well convince Nvidia and AMD to get out their checkbooks Â», sur TechRadar Pro, TechRadar, 27 fĂ©vrier 2024 (consultĂ© le 8 novembre 2024)
  17. ↑ (en) Chris Mellor, « Grokking Groq's Groqness Â», sur Blocks & Files, 23 janvier 2024 (consultĂ© le 19 avril 2024)
  18. ↑ (en) Dennis Abts, Jonathan Ross, Jonathan Sparling, Mark Wong-VanHaren, Max Baker, Tom Hawkins, Andrew Bell, John Thompson, Temesghen Kahsai, Garrin Kimmell, Jennifer Hwang, Rebekah Leslie-Hurd, Michael Bye, E.R. Creswick, Matthew Boyd, Mahitha Venigalla, Evan Laforge, Jon Purdy, Purushotham Kamath, Dinesh Maheshwari, Michael Beidler, Geert Rosseel, Omar Ahmad, Gleb Gagarin, Richard Czekalski, Ashay Rane, Sahil Parmar, Jeff Werner, Jim Sproch, Adrian Macias et Brian Kurtz, 2020 ACM/IEEE 47th Annual International Symposium on Computer Architecture (ISCA), mai 2020, 145–158 p. (ISBN 978-1-7281-4661-4, DOI 10.1109/ISCA45697.2020.00023), « Think Fast: A Tensor Streaming Processor (TSP) for Accelerating Deep Learning Workloads Â»
  19. ↑ (en) Jack Huynh, « The AMD Athlon XP Processor with 512KB L2 Cache Â», University of Illinois - Urbana-Champaign, 2003 (consultĂ© en septembre 2011), p. 6-11 [PDF]

Annexes

[modifier | modifier le code]

Bibliographie

[modifier | modifier le code]

Ouvrages

[modifier | modifier le code]
  • Patrick Demirdjian, De la diode au microprocesseur, Editions Technip, 1994, 302 p. (ISBN 9782710806615, lire en ligne). Ouvrage utilisĂ© pour la rĂ©daction de l'article

Sur les autres projets Wikimedia :

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

Articles connexes

[modifier | modifier le code]
  • Lithographie en immersion
  • Microprocesseur
  • MicrocontrĂŽleur
  • Pipeline (informatique)
  • Processeur graphique (GPU)
  • Processeur superscalaire
  • Processeur synchrone
  • Processeur asynchrone
  • Processeur autosynchrone
  • Processeur 64 bits
  • Processeur vectoriel
  • TPU

Liens externes

[modifier | modifier le code]

  • Ressource relative Ă  la santĂ©Voir et modifier les donnĂ©es sur Wikidata :
    • WikiSkripta
  • Notices dans des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistesVoir et modifier les donnĂ©es sur Wikidata :
    • Enciclopedia De Agostini
    • Treccani
    • Visuotinė lietuviĆł enciklopedija
  • Notices d'autoritĂ©Voir et modifier les donnĂ©es sur Wikidata :
    • GND
    • TchĂ©quie
v Â· m
Technologies de processeur
  • Chronologie des microprocesseurs
  • Semi-conducteur
  • Transistor
ModĂšles
  • Machine abstraite
  • Ordinateur Ă  programme enregistrĂ©
  • Automate fini
    • DĂ©terministe
    • À file
    • Cellulaire
  • Machine de Turing
  • Alternante
  • Universelle
  • Non dĂ©terministe
  • Probabiliste
  • Hypercalcul
  • Processeur basĂ© sur la pile
    • Machine Ă  registres illimitĂ©s
    • Machine Ă  compteurs
    • Random access machine
  • Chemin de donnĂ©es
Architecture
Général
  • Microarchitecture
  • Architecture de type Harvard
  • Architecture de von Neumann
  • Architecture Dataflow
  • Transport triggered architecture
  • Boutisme
  • MĂ©moire
    • Non uniform memory access (NUMA)
  • HiĂ©rarchie de mĂ©moire
    • MĂ©moire virtuelle
  • Bus informatique
  • RĂ©seau systolique
Mots
  • Architecture 8 bits
  • 15 bits (Apollo Guidance Computer)
  • 16 bits
  • 22 bits (Zuse 3)
  • 32 bits
  • 40 bits
  • 50 bits (Atanasoff–Berry Computer)
  • 64 bits
  • 128 bits
Instruction
Jeu
  • Processeur basĂ© sur la pile
  • Processeur de signal numĂ©rique
  • Processeur vectoriel
  • Microprocesseur Ă  jeu d'instructions Ă©tendu (CISC)
  • Processeur Ă  jeu d'instructions rĂ©duit (RISC)
  • Very long instruction word (VLIW)
  • Explicitly parallel instruction computing (EPIC)
  • Explicit data graph execution (en) (EDGE)
  • Minimal instruction set computer (MISC)
  • Ordinateur Ă  jeu d'instruction unique (OISC)
  • Zero instruction set computer (ZISC)
  • Informatique quantique
  • Mode d'adressage
Famille
  • Motorola 680x0
  • VAX
  • x86
  • Architecture ARM
  • Architecture MIPS
  • PowerPC
  • Architecture SPARC
  • SuperH
  • DEC Alpha
  • IA-64
  • OpenRISC
  • RISC-V
  • Microblaze
  • Little man computer
  • IBM System/3x0
    • System/390
    • System z
Exécution
  • Pipeline
    • Bulle
  • ExĂ©cution dans le dĂ©sordre
    • Algorithme de Tomasulo
    • Renommage de registres
  • PrĂ©diction de branchement
  • ExĂ©cution spĂ©culative
  • File
Performance
  • Instructions par cycle (IPC)
  • Instructions par seconde (IPS)
  • OpĂ©rations en virgule flottante par seconde (FLOPS)
Types
Général
  • Central processing unit (CPU)
  • Processeur graphique (GPU)
    • General-purpose processing on graphics processing units (GPGPU)
  • Processeur vectoriel
  • Coprocesseur
  • Application-specific integrated circuit (ASIC)
  • System in package (SiP)
Par usage
  • SystĂšme embarquĂ©
  • Microprocesseur
    • Multi-cƓur
  • Multiprocesseur
  • MicrocontrĂŽleur
  • Processeur softcore
On chip
  • SystĂšme sur une puce (SoC)
  • Programmable (PSoC)
  • RĂ©seau sur une puce (NoC)
Accélération
matérielle
  • Accelerated processing unit (APU)
  • Puce d'accĂ©lĂ©ration de rĂ©seaux de neurones (NPU)
  • Processeur d'images (IPU)
  • Processeur physique (PPU)
  • Processeur de signal numĂ©rique (DSP)
  • Tensor Processing Unit (TPU)
  • Cryptoprocesseur sĂ©curisĂ©
  • Processeur rĂ©seau (NPU)
  • Processeur de bande de base (BP)
Microarchitecture
  • Microcode
  • UnitĂ© de contrĂŽle
  • Banc de registres
  • ALU
  • FPU
  • MMU
  • TLB
  • Cache
  • Front side bus (FSB)
  • Back-side bus (en) (BSB)
Parallélisme
Général
  • Pipelining
    • Scalaire
    • Superscalaire
  • TĂąche
    • Thread
    • Processus
  • MultitĂąche
    • PrĂ©emptif
  • ParallĂ©lisme de donnĂ©e
  • Processeur vectoriel
  • Calcul distribuĂ©
Processus
  • Multithreading
  • Hyperthreading
  • Superthreading (en)
  • Simultaneous multithreading (SMT)
  • Symmetric multiprocessing (SMP)
  • Asymmetric multiprocessing (AMP)
Taxonomie de Flynn
  • Single instruction on single data (SISD)
  • Single instruction multiple data (SIMD)
    • SWAR
  • Single instruction multiple threads (SIMT)
  • Multiple instructions single data (MISD)
  • Multiple instructions on multiple data (MIMD)
Circuiterie et unité
Général
  • Circuit intĂ©grĂ©
    • Signaux mixtes
  • Circuit boolĂ©en
  • Interrupteur
  • Électronique analogique
  • CƓur
  • Cache
    • Processeur
    • Algorithme
    • CohĂ©rence
  • Bus
Exécution
  • UnitĂ© arithmĂ©tique et logique (ALU)
    • Additionneur
    • Multiplieur
  • UnitĂ© de calcul en virgule flottante (FPU)
  • UnitĂ© de gestion de mĂ©moire (MMU)
    • Translation lookaside buffer (TLB)
  • PrĂ©diction de branchement
  • ContrĂŽleur mĂ©moire
Porte logique
  • Combinatoire
  • SĂ©quentielle
  • Quantique
Registre
  • Registre de processeur
  • Registre d'Ă©tat
  • Banc de registres
  • Registre Ă  dĂ©calage
  • Registre tampon mĂ©moire
  • Registre d'adresse mĂ©moire
  • Compteur ordinal
ContrĂŽle
  • MĂ©moire tampon
  • Microprogrammation
  • Image ROM
  • Compteur
Chemin de données
  • Multiplexeur
  • DĂ©caleur
Cadencement
  • Signal d'horloge
  • FrĂ©quence d'horloge
  • Coefficient multiplicateur
  • Overclocking
  • Synchrone
  • Asynchrone
  • Autosynchrone
Gestion de l'alimentation
  • Clock gating
  • Ajustement dynamique de la frĂ©quence
  • APM
  • ACPI
  • Ajustement dynamique de la tension
Fabrication
  • Fabrication des dispositifs Ă  semi-conducteurs
    • Lithographie en immersion
Articles liés
  • BoĂźtier de circuit intĂ©grĂ©
  • Calcul hĂ©tĂ©rogĂšne
  • Circuit imprimĂ©
  • Électronique numĂ©rique
  • Hardware Security Module
  • Matrice de broches (PGA)
  • Plastic Leaded Chip Carrier (PLCC)
  • icĂŽne dĂ©corative Portail de l’électricitĂ© et de l’électronique
  • icĂŽne dĂ©corative Portail de l’informatique
  • icĂŽne dĂ©corative Portail des technologies
Ce document provient de « https://fr.wikipedia.org/w/index.php?title=Processeur&oldid=231907448 Â».
CatĂ©gorie :
  • Processeur
CatĂ©gories cachĂ©es :
  • Page utilisant des arguments dupliquĂ©s dans les appels de modĂšle
  • Page utilisant P279
  • Page utilisant P186
  • Page utilisant P527
  • Page utilisant P366
  • Page utilisant P18
  • Article utilisant l'infobox Objet
  • Article utilisant une Infobox
  • Article Ă  rĂ©fĂ©rence nĂ©cessaire
  • Page utilisant P3471
  • Page pointant vers des bases externes
  • Page pointant vers des bases relatives Ă  la santĂ©
  • Page utilisant P6706
  • Page utilisant P3365
  • Page utilisant P7666
  • Page pointant vers des dictionnaires ou encyclopĂ©dies gĂ©nĂ©ralistes
  • Article de WikipĂ©dia avec notice d'autoritĂ©
  • Article contenant un appel Ă  traduction en anglais
  • Portail:ÉlectricitĂ© et Ă©lectronique/Articles liĂ©s
  • Portail:Technologies/Articles liĂ©s
  • Portail:Informatique/Articles liĂ©s

  • indonesia
  • Polski
  • Ű§Ù„Ű±ÙŠŰ©
  • Deutsch
  • English
  • Español
  • Français
  • Italiano
  • Ù…Ű”Ű±
  • Nederlands
  • æœŹèȘž
  • PortuguĂȘs
  • Sinugboanong Binisaya
  • Svenska
  • ĐŁĐșŃ€Đ°Ń—ĐœŃĐșа
  • Tiáșżng Việt
  • Winaray
  • äž­æ–‡
  • РуссĐșĐž
Sunting pranala
Pusat Layanan

UNIVERSITAS TEKNOKRAT INDONESIA | ASEAN's Best Private University
Jl. ZA. Pagar Alam No.9 -11, Labuhan Ratu, Kec. Kedaton, Kota Bandar Lampung, Lampung 35132
Phone: (0721) 702022
Email: pmb@teknokrat.ac.id