Articles

HTG Explique: Comment Fonctionne Réellement un Processeur?

  • Anthony Heddings

    @anthonyheddings

  • Mise à jour le 28 février 2020 à 16h58 HAE
CPU
Rost/

La plupart des choses dans un ordinateur sont relativement simples à comprendre: la RAM, le stockage, les périphériques et le logiciel fonctionnent tous ensemble pour faire fonctionner un ordinateur. Mais le cœur de votre système, le processeur, semble magique même pour de nombreux techniciens. Ici, nous ferons de notre mieux pour le décomposer.

La plupart des recherches pour cet article proviennent de « Mais Comment Sait-il? » par J. Clark Scott. C’est une lecture fantastique, va beaucoup plus en profondeur que cet article, et vaut bien les quelques dollars sur Amazon.

Une note avant de commencer: les PROCESSEURS modernes sont des ordres de grandeur plus complexes que ce que nous décrivons ici. Il est presque impossible pour une personne de comprendre toutes les nuances d’une puce avec plus d’un milliard de transistors. Cependant, les principes de base de la façon dont tout cela s’intègre restent les mêmes, et la compréhension des bases vous donnera une meilleure compréhension des systèmes modernes.

Démarrage petit

Les ordinateurs fonctionnent en binaire. Ils ne comprennent que deux états: on et off. Pour effectuer des calculs en binaire, ils utilisent ce qu’on appelle un transistor. Le transistor ne permet au courant de source de le traverser vers le drain que s’il y a du courant à travers la grille. Essentiellement, cela forme un interrupteur binaire, qui coupe le fil en fonction d’un deuxième signal d’entrée.

CONNEXE: Qu’est-ce que le Binaire, et Pourquoi les ordinateurs L’Utilisent-Ils ?

Publicité

Les ordinateurs modernes utilisent des milliards de transistors pour effectuer des calculs, mais aux niveaux les plus bas, il suffit d’une poignée pour former les composants les plus élémentaires, appelés portes.

Portes logiques

Empilez correctement quelques transistors, et vous avez ce qu’on appelle une porte logique. Les portes logiques prennent deux entrées binaires, effectuent une opération sur elles et renvoient une sortie. La porte OU, par exemple, renvoie true si l’une des entrées est true. La porte ET vérifie si les deux entrées sont vraies, XOR vérifie si une seule des entrées est vraie, et les N-variantes (NOR, NAND et XNOR) sont des versions inversées de leurs portes de base.

Faire des mathématiques Avec des portes

Avec seulement deux portes, vous pouvez effectuer une addition binaire de base. Ce diagramme ci-dessus montre un demi-additionneur, créé à l’aide de Logicly, un terrain de jeu en ligne gratuit pour les portes logiques. La porte XOR s’allume ici si une seule des entrées est activée, mais pas les deux. La porte ET s’allume si les deux entrées sont activées, mais reste éteinte s’il n’y a pas d’entrée. Donc, si les deux sont allumés, le XOR reste éteint et la porte ET s’allume, arrivant à la bonne réponse de deux:

Publicité

Cela nous donne une configuration simple avec trois sorties distinctes: zéro, une et deux. Mais un bit ne peut rien stocker de plus haut que 1, et cette machine n’est pas trop utile car elle ne résout que l’un des problèmes mathématiques les plus simples possibles. Mais ce n’est qu’un demi-additionneur, et si vous en connectez deux avec une autre entrée, vous obtenez un additionneur complet:

L’additionneur complet a trois entrées — les deux nombres à ajouter et un « report. »Le report est utilisé lorsque le nombre final dépasse ce qui peut être stocké dans un seul bit. Les additionneurs complets seront liés dans une chaîne, et le report est passé d’un additionneur à l’autre. Le report est ajouté au résultat de la porte XOR dans l’additionneur de la première moitié, et il y a une porte OU supplémentaire pour gérer les deux cas où le so devrait être activé.

Lorsque les deux entrées sont activées, le report s’active et l’envoie au prochain additionneur complet de la chaîne:

Et c’est à peu près aussi complexe que l’addition. Passer à plus de bits signifie essentiellement plus d’additionneurs complets dans une chaîne plus longue.

Publicité

La plupart des autres opérations mathématiques peuvent être effectuées avec l’addition; la multiplication n’est qu’une addition répétée, la soustraction peut être effectuée avec une inversion de bits de fantaisie, et la division n’est qu’une soustraction répétée. Et bien que tous les ordinateurs modernes disposent de solutions matérielles pour accélérer des opérations plus compliquées, vous pouvez techniquement tout faire avec l’additionneur complet.

Le bus et la mémoire

En ce moment, notre ordinateur n’est rien de plus qu’une mauvaise calculatrice. C’est parce qu’il ne se souvient de rien et ne fait rien avec ses sorties. Ci-dessus est une cellule mémoire, qui peut faire tout cela. Sous le capot, il utilise beaucoup de portes NAND, et dans la vraie vie peut être très différent selon la technique de stockage, mais sa fonction est la même. Vous lui donnez quelques entrées, activez le bit « écriture », et il stockera les entrées à l’intérieur de la cellule. Ce n’est pas seulement une cellule mémoire, car nous avons également besoin d’un moyen de lire des informations à partir de celle-ci. Ceci est fait avec un enabler, qui est une collection de portes ET pour chaque bit de la mémoire, toutes liées à une autre entrée, le bit « lu”. Les bits d’écriture et de lecture sont souvent appelés « set » et ”enable ».

Tout ce paquet est enveloppé dans ce qu’on appelle un registre. Ces registres sont connectés au bus, qui est un faisceau de fils parcourant l’ensemble du système, connectés à chaque composant. Même les ordinateurs modernes ont un bus, bien qu’ils puissent avoir plusieurs bus pour améliorer les performances multitâches.

Chaque registre a toujours un bit d’écriture et de lecture, mais dans cette configuration, l’entrée et la sortie sont la même chose. C’est vraiment bien. Exemple. Si vous vouliez copier le contenu de R1 dans R2, vous activeriez le bit de lecture pour R1, ce qui pousserait le contenu de R1 sur le bus. Lorsque le bit de lecture est activé, vous activez le bit d’écriture pour R2, ce qui copiera le contenu du bus dans R2.Les registres

Advertisement

sont également utilisés pour fabriquer de la RAM. La RAM est souvent disposée en grille, avec des fils allant dans deux directions:

Les décodeurs prennent une entrée binaire et activent le fil numéroté correspondant. Par exemple, « 11 » est 3 en binaire, le nombre de 2 bits le plus élevé, de sorte que le décodeur allumerait le fil le plus élevé. À chaque intersection, il y a un registre. Tous ces éléments sont connectés au bus central et à une entrée centrale d’écriture et de lecture. Les entrées de lecture et d’écriture ne s’activeront que si les deux fils traversant le registre sont également activés, ce qui vous permet de sélectionner le registre à partir duquel écrire et lire. Encore une fois, la RAM moderne est beaucoup plus compliquée, mais cette configuration fonctionne toujours.

Les registres de l’horloge, du Stepper et du décodeur

sont utilisés partout et constituent l’outil de base pour déplacer des données et stocker des informations dans le processeur. Alors, qu’est-ce qui leur dit de faire bouger les choses?

L’horloge est le premier composant du cœur du processeur et s’éteint et s’allume à un intervalle défini, mesuré en hertz, ou cycles par seconde. C’est la vitesse que vous voyez annoncée aux côtés des PROCESSEURS; une puce de 5 GHz peut effectuer 5 milliards de cycles par seconde. La vitesse d’horloge est souvent une très bonne mesure de la vitesse d’un processeur.

Publicité

L’horloge a trois états différents: l’horloge de base, l’horloge d’activation et l’horloge de réglage. L’horloge de base sera allumée pendant un demi-cycle et éteinte pour l’autre moitié. L’horloge d’activation est utilisée pour activer les registres et devra être allumée plus longtemps pour s’assurer que les données sont activées. L’horloge réglée doit toujours être allumée en même temps que l’horloge d’activation, sinon des données incorrectes pourraient être écrites.

L’horloge est connectée au pas à pas, qui comptera de un à l’étape maximale, et se réinitialisera à un lorsque c’est fait. L’horloge est également connectée à des portes ET pour chaque registre dans lequel le CPU peut écrire :

Ces portes ET sont également connectées à la sortie d’un autre composant, le décodeur d’instructions. Le décodeur d’instructions prend une instruction comme « SET R2 TO R1 » et la décode en quelque chose que le CPU peut comprendre. Il possède son propre registre interne, appelé « Registre d’instructions”, où est stockée l’opération en cours. Comment cela se fait-il exactement dépend du système sur lequel vous utilisez, mais une fois décodé, il activera le bon ensemble et activera les bits pour les registres corrects, qui se déclencheront conformément à l’horloge.

Les instructions du programme sont stockées dans la RAM (ou le cache L1 sur les systèmes modernes, plus près de la CPU). Comme les données du programme sont stockées dans des registres, comme toutes les autres variables, elles peuvent être manipulées à la volée pour faire le tour du programme. C’est ainsi que les programmes obtiennent leur structure, avec des boucles et des instructions if. Une instruction de saut définit l’emplacement actuel en mémoire depuis lequel le décodeur d’instructions lit vers un emplacement différent.

Comment Tout cela se combine

Maintenant, notre simplification excessive du fonctionnement d’un processeur est terminée. Le bus principal couvre l’ensemble du système et se connecte à tous les registres. Les additionneurs complets, ainsi qu’un tas d’autres opérations, sont emballés dans l’unité logique Arithmétique, ou l’ALU. Cette ALU aura des connexions au bus et aura également ses propres registres pour stocker le deuxième numéro sur lequel elle fonctionne.

Publicité

Pour effectuer un calcul, les données du programme sont chargées à partir de la RAM système dans la section de contrôle. La section de contrôle lit deux nombres de la RAM, charge le premier dans le registre d’instructions de l’ALU, puis charge le second sur le bus. Pendant ce temps, il envoie à l’ALU un code d’instruction lui indiquant quoi faire. L’ALU effectue ensuite tous les calculs et stocke le résultat dans un registre différent, à partir duquel le processeur peut lire, puis poursuivre le processus.

Crédit d’image: Rost9 /

Anthony Heddings
Anthony Heddings est ingénieur cloud résident pour LifeSavvy Media, rédacteur technique, programmeur et expert de la plate-forme AWS d’Amazon. Il a écrit des centaines d’articles pour How-To Geek et CloudSavvy IT qui ont été lus des millions de fois.Lire la Bio complète «