Recherchez sur tout Techno-Science.net
       
Techno-Science.net : Suivez l'actualité des sciences et des technologies, découvrez, commentez
Catégories
Techniques
Sciences
Encore plus...
Techno-Science.net
Gearbest Page Spécial sur les nouveaux clients, Grande Réduction @GearBest! promotion
Photo Mystérieuse

Que représente
cette image ?
 A | B | C | D | E | F | G | H | I | J | K | L | M | N | O | P | Q | R | S | T | U | V | W | X | Y | Z | +
Processeur

Introduction

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 (Un ordinateur est une machine dotée d'une unité de traitement lui permettant d'exécuter des programmes enregistrés. C'est un ensemble de circuits électroniques permettant de manipuler des données sous forme...) qui exécute les programmes informatiques. Avec la mémoire (D'une manière générale, la mémoire est le stockage de l'information. C'est aussi le souvenir d'une information.) notamment, c'est l'un des composants qui existent depuis les premiers ordinateurs et qui sont présents dans tous les ordinateurs. Un processeur (Le processeur, ou CPU (de l'anglais Central Processing Unit, « Unité centrale de traitement »), est le composant de l'ordinateur qui...) construit en un seul circuit intégré (Le circuit intégré (CI), aussi appelé puce électronique, est un composant électronique reproduisant une ou plusieurs fonctions électroniques plus ou moins complexes, intégrant souvent plusieurs types de composants...) est un microprocesseur.

L'invention du transistor en 1948 a ouvert la voie à la miniaturisation des composants électroniques.

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 (Le terme masse est utilisé pour désigner deux grandeurs attachées à un corps : l'une quantifie l'inertie du corps (la masse inerte) et l'autre la contribution du corps à la force de gravitation (la 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 (L'accélération désigne couramment une augmentation de la vitesse ; en physique, plus précisément en cinématique, l'accélération est une grandeur vectorielle qui...) 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 le langage courant, le terme diffusion fait référence à une notion de « distribution », de « mise à disposition » (diffusion d'un produit, d'une...) dans la vie (La vie est le nom donné :) moderne bien au-delà des usages des machines programmables dédiées.

Fonctionnement

Composition d'un processeur

Les parties essentielles d’un processeur sont :

  • l’Unité Arithmétique et Logique (La logique (du grec logikê, dérivé de logos (λόγος), terme inventé par Xénocrate signifiant à la fois raison, langage, et raisonnement)...) (UAL, en anglais Arithmetic and Logical Unit - ALU), qui prend en charge (La charge utile (payload en anglais ; la charge payante) représente ce qui est effectivement transporté par un moyen de transport donné, et qui donne lieu à un paiement ou un bénéfice non pécuniaire...) 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 (La notion de nombre en linguistique est traitée à l’article « Nombre grammatical ».) de registres sont communs à la plupart des processeurs :
    • Compteur ordinal : ce registre contient l’adresse (Les adresses forment une notion importante en communication, elles permettent à une entité de s'adresser à une autre parmi un ensemble d'entités. Pour...) mémoire de l’instruction (Une instruction est une forme d'information communiquée qui est à la fois une commande et une explication pour décrire l'action, le comportement, la méthode ou la tâche qui devra commencer, se terminer, être conduit, ou...) en cours d’exécution ;
    • accumulateur : ce registre est utilisé pour stocker les données (Dans les technologies de l'information (TI), une donnée est une description élémentaire, souvent codée, d'une chose, d'une transaction d'affaire, d'un événement, etc.) en cours de traitement par l’UAL ;
    • registre d’adresses : il contient toujours l’adresse de la prochaine information à lire par l’UAL, soit la suite de l’instruction en cours, soit la prochaine instruction ;
    • registre d’instructions : il contient l’instruction en cours de traitement ;
    • registre d’état : il sert à stocker le contexte (Le contexte d'un évènement inclut les circonstances et conditions qui l'entourent; le contexte d'un mot, d'une phrase ou d'un texte inclut les mots qui l'entourent. Le concept de 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 (La communication concerne aussi bien l'homme (communication intra-psychique, interpersonnelle, groupale...) que l'animal (communication intra- ou inter- espèces) ou la...) 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 (Le temps est un concept développé par l'être humain pour appréhender le changement dans le monde.). 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 ;
  • l'architecture pipeline permet de découper temporellement les traitements à effectuer. C’est une technique qui vient du monde (Le mot monde peut désigner :) des supercalculateurs ;
  • une unité de prédiction de saut, qui permet au processeur d’anticiper un saut 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 ;
  • 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 ou L3. Dans les processeurs évolués, des unités spéciales du processeur sont dévolues à la recherche (La recherche scientifique désigne en premier lieu l’ensemble des actions entreprises en vue de produire et de développer les connaissances scientifiques. Par extension métonymique, la recherche scientifique désigne...), par des moyens statistiques (La statistique est à la fois une science formelle, une méthode et une technique. Elle comprend la collecte, l'analyse, l'interprétation de données ainsi...) et/ou prédictifs, des prochains accès en mémoire centrale.

Un processeur est défini par :

  • la largeur (La largeur d’un objet représente sa dimension perpendiculaire à sa longueur, soit la mesure la plus étroite de sa face. En géométrie plane, la largeur est la plus petite des deux mesures d'un rectangle,...) de ses registres internes de manipulation de données (8, 16, 32, 64, 128) bits ;
  • la cadence de son horloge exprimée en MHz (mega hertz) ou GHz (giga hertz) ;
  • le nombre de noyaux de calcul (core) ;
  • son jeu d'instructions (ISA en anglais, Instructions Set Architecture) dépendant de la famille (CISC, RISC, etc) ;
  • sa finesse de gravure exprimée en nm (nanomètres) et sa microarchitecture.

Mais ce qui caractérise principalement un processeur est la famille à laquelle il appartient :

  • 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 ( Termes généraux Un signal est un message simplifié et généralement codé. Il existe sous forme d'objets ayant des formes particulières. Les signaux lumineux sont...) 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 (Le tout compris comme ensemble de ce qui existe est souvent interprété comme le monde ou l'univers.) 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.

Un processeur possède trois types de bus :

  • un bus de données, définit la taille des données manipulables (indépendamment de la taille des registres internes) ;
  • un bus d'adresse définit le nombre de cases mémoire accessibles ;
  • un bus de contrôle définit la gestion du processeur IRQ, RESET etc.

Les opérations du processeur

Le rôle fondamental de la plupart des unités centrales de traitement, indépendamment de la forme physique (La physique (du grec φυσις, la nature) est étymologiquement la « science de la nature ». Dans un sens général et ancien, la physique désigne la connaissance de...) 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ées à l'ALU qui les interprète.

L’ensemble (En théorie des ensembles, un ensemble désigne intuitivement une collection d’objets (les éléments de l'ensemble), « une multitude qui peut...) 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 (L´informatique - contraction d´information et automatique - est le domaine d'activité scientifique, technique et industriel en rapport avec le traitement automatique de l'information par des machines...) a développé toute une série de langages, dits de haut niveau (comme le BASIC (En programmation, BASIC est un acronyme pour Beginner's All-purpose Symbolic Instruction Code. qui désigne une famille de langages de programmations de haut niveau.), 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 (La mémoire vive, mémoire système ou mémoire volatile, aussi appelée RAM de l'anglais Random Access Memory (que l'on traduit en français par 'mémoire à accès aléatoire'), est la...) 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 (Un diagramme est une représentation visuelle simplifiée et structurée des concepts, des idées, des constructions, des relations, des données statistiques, de l'anatomie etc. employé dans tous les aspects des...) 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 (La longueur d’un objet est la distance entre ses deux extrémités les plus éloignées. Lorsque l’objet est filiforme ou en forme...) 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 sauts). Le jeu d'instructions qui emploie des instructions de longueurs variables comme l'x86 (La famille x86 regroupe les microprocesseurs compatibles avec le jeu d'instructions de l'Intel 8086. Cette série est nommée IA-32 (pour Intel architecture 32 bits) par Intel pour ses...), 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 processeur. Souvent, une partie d'une instruction, appelée opcode (code d'opération), indique quelle opération est à faire, par exemple une addition (L'addition est une opération élémentaire, permettant notamment de décrire la réunion de quantités ou l'adjonction de grandeurs extensives de même nature, comme les...). 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, un microprogramme 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 (De façon générale un codage permet de passer d'une représentation des données vers une autre.) 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 (En France, ce nom désigne un médecin, un pharmacien ou un chirurgien-dentiste, à la fois en activité et en formation à l'hôpital ou en cabinet...) 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 sauts (jumps) et permettent de réaliser des boucles (loops), des programmes à exécution conditionnelle ou des fonctions (sous-programmes) dans des programmes. Beaucoup d'instructions servent (Servent est la contraction du mot serveur et client.) 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.

Source: Wikipédia publiée sous licence CC-BY-SA 3.0. Vous pouvez soumettre une modification à cette définition sur cette page.

La liste des auteurs de cet article est disponible ici.