Abonnez-vous à Universalis pour 1 euro

ORDINATEURS

Article modifié le

Principes de fonctionnement d'un processeur

Un ordinateur, selon le modèle de John von Neumann, contient un assemblage de processeurs, de mémoires et de périphériques d'entrée/sortie interconnectés. Le processeur, ou unité centrale, peut être à juste titre considéré comme le « cerveau » de l'ordinateur, car tout se passe sous son contrôle. Dans un processeur, les informations sont représentées en binaire (codées sur deux états), car il est beaucoup plus simple de concevoir, de réaliser et d'utiliser des composants de base fonctionnant sur deux états physiquement quantifiables.

Le processeur traite les programmes en chargeant les instructions depuis la mémoire, en les décodant et en les exécutant les unes après les autres. Les instructions d'un processeur peuvent être grossièrement classées en trois catégories : les instructions de calcul arithmétique et logique, les instructions d'accès mémoire (lecture ou écriture d'une information en mémoire) et les instructions de saut (conditionnel ou inconditionnel) qui permettent d'effectuer les tests et les boucles indispensables à tout algorithme.

Abonnez-vous à Universalis pour 1 euro

Pour des raisons évidentes de performances, cet organe central est réalisé en électronique numérique, la technologie offrant aujourd'hui le maximum de vitesse et de souplesse d'utilisation. L'unité centrale contient des ressources matérielles de calcul, de mémorisation et de séquencement, toutes exprimées sous forme de composants numériques aux interfaces clairement définies.

Les constituants de base

L'exécution d'une instruction fait appel à deux catégories principales de constituants de base : les opérateurs de mémorisation qui fournissent les opérandes et conservent le résultat, et les opérateurs combinatoires qui permettent d'élaborer, à partir des opérandes, un résultat partiel ou définitif.

Registre

Un registre sur n bits permet de mémoriser un mot d'information sur n bits dans l'unité centrale. Ce constituant de base dispose de trois entrées et d'une sortie. Le registre reçoit en entrée le mot binaire à mémoriser, le signal de commande, le signal d'horloge et délivre en sortie la valeur mémorisée. Le signal de commande indique si le registre doit ou non mémoriser la nouvelle donnée présente sur son entrée ; le signal d'horloge définit sa fréquence de fonctionnement.

Mémoire

Une mémoire est un ensemble de cases identiques, chacune d'elles pouvant mémoriser un élément d'information. Chaque case mémoire (ou mot mémoire) est désignée par son numéro, l' adresse.

Une mémoire est caractérisée par deux grandeurs indépendantes l'une de l'autre : sa capacité, exprimée en nombre de mots, et sa longueur de mot, dont les valeurs courantes sont des puissances de 2 (8, 16, 32 bits,...).

Abonnez-vous à Universalis pour 1 euro

Sur un mot mémoire désigné par la valeur de l'adresse, deux opérations peuvent être effectuées : une lecture (consultation du contenu d'une case, sans modification de l'information qu'elle contient) et une écriture (remplacement du contenu d'une case, l'ancien contenu étant perdu).

Une mémoire possède des entrées d'adresse, des entrées et sorties d'informations (souvent confondues), ainsi qu'une entrée de commande définissant l'opération à effectuer (lecture ou écriture).

Le temps d'accès d'une mémoire est l'intervalle de temps séparant la désignation d'un mot mémoire (positionnement de l'adresse) de la disponibilité de son contenu sur les sorties lors d'une opération de lecture.

Unité arithmétique et logique

Une unité arithmétique et logique permet de combiner deux opérandes de n bits pour obtenir un résultat sur n bits. Cette unité comporte deux groupes d'entrées de n bits correspondant aux opérandes et n sorties ou plus correspondant au résultat éventuellement tronqué. Des entrées de commandes définissent l'opération à effectuer sur les opérandes (addition, soustraction, décalage, et bit à bit, etc.). Des sorties supplémentaires (drapeaux ou indicateurs) caractérisent le résultat de l'opération effectuée. En consultant ces indicateurs à l'aide d'instructions appropriées, il est possible par exemple de savoir si le résultat d'une addition est nul, positif ou négatif ou encore si la retenue vaut zéro ou un.

Liaisons, bus et multiplexeurs

Les liaisons relient entre eux les constituants de base précédents et permettent ainsi des déplacements d'information d'un point à un autre du processeur. Par exemple, pour transférer dans un registre R de n bits l'élément d'information contenu dans un registre E de n bits, il faut que chaque entrée du registre R soit reliée directement à la sortie correspondante du registre E. Le registre E est l'émetteur, le registre R le récepteur.

Un bus est un mécanisme complexe reliant plusieurs émetteurs à un même récepteur. Les entrées de commande servent à sélectionner l'émetteur à connecter physiquement sur les fils de sortie. Dans certains cas, le bus peut induire des comportements électriques indésirables. On lui préfère souvent dans les processeurs intégrés des structures purement combinatoires appelées multiplexeurs.

Comportement temporel des constituants

L'implantation physique d'un composant numérique élaboré grâce à l'algèbre de Boole est limitée par des contraintes technologiques inhérentes aux lois physiques. En effet, une porte logique électronique ne délivre son information binaire qu'après un temps de propagation mesuré en picosecondes ; une mémoire possède un temps d'accès exprimé en nanosecondes. L'augmentation de la fréquence de fonctionnement d'un ordinateur se traduit par un échauffement thermique (effet Joule). Le processeur, comme tout circuit numérique contenant des registres, a un fonctionnement synchrone : il évolue au rythme de l'horloge, un signal de synchronisation unique prenant la forme d'une onde périodique carrée. Le concepteur de processeur doit donc évaluer de manière fine le temps de propagation maximal entre deux registres dans le pire cas afin de déterminer la période minimale de cette horloge. Réduire la période de l'horloge revient toujours à minimiser le nombre de portes logiques traversées entre la sortie d'un registre émetteur et l'entrée d'un registre récepteur. L'overclocking consiste à réduire la période d'horloge, c'est-à-dire à augmenter la fréquence de fonctionnement, pour que le processeur atteigne ses limites de fonctionnement temporel, thermique et électrique.

Structure d'un processeur

Un processeur est un ensemble matériel capable d'exécuter, de façon autonome, une suite d'instructions représentant un traitement d'informations. Il est connecté à une mémoire contenant les instructions et les données à traiter. Le processeur se compose de deux parties, le chemin de données (datapath), dans lequel s'effectue le traitement des informations, et une unité de commande pilotant le chemin de données.

Chemin de données

Machine de von Neumann : chemin de données - crédits : Encyclopædia Universalis France

Machine de von Neumann : chemin de données

Abonnez-vous à Universalis pour 1 euro

La figure 2 montre un exemple simplifié de chemin de données d'une machine de von Neumann. Le chemin de données est constitué par : un ensemble de registres, une unité de calcul arithmétique et logique et des multiplexeurs. Parmi les registres, on trouve le compteur ordinal (CO), le registre instruction (RI), le registre de donnée (DT), le registre d'adresse (AD), ainsi que deux registres généraux (R0) et (R1). Les registres compteur ordinal et instruction jouent un rôle très important : le compteur ordinal donne la position en mémoire de la prochaine instruction à exécuter et le registre d'instruction contient le mot binaire représentant l'instruction à exécuter. Les contenus de CO et RI sont renouvelés après l'exécution de chaque nouvelle instruction.

Les trois multiplexeurs MUX, MUXY et MUXAD permettent respectivement de désigner le premier opérande, le deuxième opérande et l'adresse à utiliser pour le prochain accès mémoire. Les entrées de commande des registres, des multiplexeurs et de l'unité de calcul sont reliées aux sorties correspondantes de l'unité de commande. Celle-ci fixe la valeur de tous les signaux de commande à chaque cycle de base. Par exemple, si la commande du registre CO vaut 1 pendant un cycle de base, le registre CO prend une nouvelle valeur à la fin du cycle. Selon la valeur de son entrée de commande, l'unité de calcul effectue toute opération arithmétique et logique de son jeu d'instructions. La sortie de l'unité de calcul est réinjectée à l'entrée des registres du chemin de données.

Notions de transfert élémentaire et de cycle de base

Un transfert élémentaire est défini comme le déplacement d'un élément d'information ayant pour origine un registre ou un mot mémoire et pour destination un registre ou un mot mémoire. L'élément d'information transféré peut éventuellement être modifié lors de son passage dans l'unité arithmétique et logique. L'exécution de chaque instruction est décomposée en une suite de transferts élémentaires. Un transfert élémentaire n'est pas instantané car les informations, représentées par des signaux électriques, prennent du temps pour traverser les différents constituants.

Un cycle de base correspond à l'intervalle de temps nécessaire à l'exécution d'un transfert élémentaire ayant pour origine un registre et pour destination un registre. Ainsi, pour réaliser l'addition des registres R0 et AD et ranger le résultat dans R1, il faut deux transferts élémentaires simultanés : « prendre le contenu du registre R0, l'amener sur l'entrée X de l'unité de calcul » et « prendre le contenu du registre AD, l'amener sur l'entrée Y de l'unité de calcul, demander à l'unité de calcul de faire une addition et ranger le résultat dans le registre R1 ». Ces deux transferts élémentaires s'effectuent pendant le même cycle de base. Pour exécuter l'opération, les commandes affectées par l'unité de commande sont : MUXX sélectionne R0, MUXY choisit AD, l'unité de calcul effectue une addition. La commande d'écriture « ÉCRIRE R1 » du registre R1 est positionnée afin que R1 reçoive le résultat de l'addition en fin de cycle de base. L'exécution d'une instruction consiste donc à enchaîner les transferts élémentaires, de manière cohérente, en un minimum de cycles de base.

Abonnez-vous à Universalis pour 1 euro

Dans la plupart des cas, le temps d'accès d'une mémoire est supérieur au cycle de base. Un transfert élémentaire utilisant le contenu d'un mot mémoire s'étalera donc sur plusieurs cycles de base.

La durée minimale du cycle de base dépend à la fois de l'organisation du chemin de données et de la technologie utilisée pour réaliser les constituants. Une fois cette durée déterminée, on utilise un oscillateur fournissant un signal périodique appelé horloge, dont la période est réglée de façon à être égale à la durée du cycle de base.

Unité de commande

L' unité de commande d'un processeur, aussi appelée partie contrôle, peut être vue comme la manière de réaliser de manière optimale les enchaînements de transferts élémentaires pendant et entre le traitement des instructions. L'unité de commande possède une représentation de la suite des commandes nécessaires à l'exécution de chaque instruction. Elle est généralement réalisée sous la forme d'un séquenceur microprogrammé.

Ordinateur : unité de commande et chemin de données - crédits : Encyclopædia Universalis France

Ordinateur : unité de commande et chemin de données

La figure 3 décrit les relations entre l'unité de commande et le chemin de données. Pendant chaque cycle de base, les commandes issues de l'unité de commande définissent un ou plusieurs transferts élémentaires dans le chemin de données. Ce dernier fournit en retour des états (par exemple, la valeur des indicateurs de l'unité arithmétique et logique, le code opération de l'instruction), qui sont exploités par l'unité de commande et lui permettent de choisir les nouvelles commandes à envoyer au chemin de données pendant le cycle de base suivant.

Microprogrammation

C'est une des techniques possibles de réalisation de l'unité de commande. Elle consiste à utiliser une mémoire de commande dans laquelle sont stockées les différentes combinaisons de commandes. Une micro-instruction représente les commandes activées pendant un cycle de base. Chaque micro-instruction est stockée dans un mot de la mémoire de commande et son contenu est fixé au moment de la construction de celle-ci. L'ensemble des micro-instructions (le microprogramme) constitue la suite des commandes nécessaires à l'exécution du jeu d'instructions. La microprogrammation permet de réaliser un jeu d'instructions aussi complexe que l'on veut pouvant s'exécuter sur une gamme complète de machines.

L'unité de commande d'une machine microprogrammée comporte trois parties : une mémoire contenant les micro-instructions, un séquenceur réalisant l'enchaînement des micro-instructions et une horloge représentant la référence de temps.

Organe de commande microprogrammé - crédits : Encyclopædia Universalis France

Organe de commande microprogrammé

On voit sur la figure 4 qu'une micro-instruction comporte deux parties : les commandes destinées au chemin de données et la partie enchaînement destinée au séquenceur. Cette dernière partie indique au séquenceur comment élaborer l'adresse de la micro-instruction suivante.

Exécution d'une instruction

Le processeur exécute séquentiellement une suite d'instructions. La position en mémoire de l'instruction à exécuter est donnée par le compteur ordinal ou compteur de programme, dont le contenu est mis à jour durant l'exécution de chaque instruction. L'exécution d'une instruction par l'unité de commande comporte cinq étapes. Selon la structure du processeur et de ses caractéristiques architecturales, des étapes peuvent s'exécuter simultanément pendant le même cycle de base. Les différentes étapes sont :

– « Instruction Fetch » (IF, récupération d'instruction), pour lire l'instruction dont l'adresse mémoire est contenue dans le compteur ordinal et la charger dans le registre instruction ;

Abonnez-vous à Universalis pour 1 euro

– « Instruction Decode » (ID, décodage d'instruction), pour décoder l'instruction contenue dans le registre instruction, connaître sa signification et mettre à jour le compteur ordinal de façon à ce qu'il contienne l'adresse de la prochaine instruction à exécuter ;

– « Instruction Execution » (EX, exécution), pour exécuter l'instruction grâce à l'unité arithmétique et logique ;

– « Memory Access » (MEM, accès mémoire), pour réaliser un éventuel accès mémoire si l'instruction décodée le requiert ;

Abonnez-vous à Universalis pour 1 euro

– « Write Back » (WB, écriture du résultat), pour ranger le résultat de l'instruction dans un registre ou dans la mémoire.

Ordinateur : exécution d'instructions - crédits : Encyclopædia Universalis France

Ordinateur : exécution d'instructions

Abonnez-vous à Universalis pour 1 euro

À la fin de la cinquième étape, il suffit de revenir à la première pour passer à l'exécution de l'instruction suivante. La figure 5a montre l'exécution de deux instructions sur 10 cycles de base.

Accédez à l'intégralité de nos articles

  • Des contenus variés, complets et fiables
  • Accessible sur tous les écrans
  • Pas de publicité

Découvrez nos offres

Déjà abonné ? Se connecter

Écrit par

  • : maître de conférences à l'université de Paris-VI-Pierre-et-Marie-Curie, ingénieur de l'École polytechnique féminine, docteur-ingénieur
  • : professeur, Sorbonne université

Classification

Médias

Machine à calculer de Charles Babbage - crédits : AKG-images

Machine à calculer de Charles Babbage

E.N.I.A.C. - crédits : AKG-images

E.N.I.A.C.

John von Neumann - crédits : Bettmann/ Getty Images

John von Neumann

Autres références

  • COMMERCIALISATION DES PREMIERS ORDINATEURS

    • Écrit par
    • 217 mots

    En Grande-Bretagne, une grande machine développée à l'université de Manchester, M.A.D.M. (Manchester Automatic Digital Machine), sert de prototype au Mark-1, ordinateur mis au point par la firme Ferranti et commercialisé dès 1951. En même temps, aux États-Unis, John P. Eckert et John W. Mauchly,...

  • PREMIERS ORDINATEURS - (repères chronologiques)

    • Écrit par
    • 1 110 mots

    1904 Le Britannique John Ambrose Fleming invente la diode, premier tube à vide comportant deux électrodes, qui permet de capter et de redresser un signal radio.

    1906 L'Américain Lee De Forest invente la triode, tube à vide à trois électrodes, qui permet d'amplifier un faible courant...

  • AIKEN HOWARD HATHAWAY (1900-1973)

    • Écrit par
    • 506 mots

    L’Américain Howard Aiken fut un des pionniers de l'informatique, concepteur de l'IBM Automatic Sequence Controlled Calculator (ASCC) encore appelé Harvard Mark I.

    Après avoir suivi les cours d'une école technique tout en travaillant la nuit, Howard Hathaway Aiken, né le 9 mars 1900 à...

  • ALGORITHME

    • Écrit par et
    • 5 919 mots
    • 4 médias
    ...fondateur dans la définition des principes théoriques de l’informatique. Mais c’est par la conception, la construction et la diffusion à large échelle des ordinateurs que la pratique informatique a pu pleinement se façonner et contribuer entre autres à l’évolution de la notion d’algorithme. La réalisation...
  • APPLE

    • Écrit par
    • 2 548 mots
    • 2 médias

    Archétype des start-up de la Silicon Valley, la société américaine Apple, fondée en 1976, a gagné fortune et célébrité par ses innovations de rupture, de l’ordinateur Macintosh au téléphone portable iPhone et à la tablette numérique iPad. Associée au talent visionnaire de son président historique,...

  • APPRENTISSAGE PROFOND ou DEEP LEARNING

    • Écrit par
    • 2 646 mots
    • 1 média

    Apprentissage profond, deeplearning en anglais, ou encore « rétropropagation de gradient »… ces termes, quasi synonymes, désignent des techniques d’apprentissage machine (machine learning), une sous-branche de l’intelligence artificielle qui vise à construire automatiquement des connaissances...

  • Afficher les 73 références

Voir aussi