Comment ça marche : Microprocesseur

Vous utilisez actuellement un ordinateur ou un appareil mobile pour lire cette rubrique. L'ordinateur ou l'appareil mobile utilise un microprocesseur pour effectuer ces actions. Le microprocesseur est le cœur de tout appareil, serveur ou ordinateur portable. Il existe de nombreuses marques de microprocesseurs provenant d'une grande variété de fabricants, mais ils font tous à peu près la même chose et de la même manière.

Microprocesseur- également appelé processeur ou unité centrale de traitement, est un moteur de calcul réalisé sur une seule puce. Le premier microprocesseur était l'Intel 4004, apparu en 1971 et moins puissant. Il pouvait ajouter et soustraire, et ce n'est que 4 bits à la fois. Le processeur était incroyable car il était exécuté sur une seule puce. Vous demanderez pourquoi ? Ma réponse est que les ingénieurs de l'époque produisaient des processeurs à partir de plusieurs puces ou de composants discrets (les transistors étaient utilisés dans des boîtiers séparés).

Si vous vous êtes déjà demandé ce que fait un microprocesseur dans un ordinateur, à quoi il ressemble ou quelles sont ses différences par rapport à d'autres types de microprocesseurs, alors allez-y sous la coupe- il y a tous les plus intéressants et les détails.

Progrès du microprocesseur : Intel

Le premier microprocesseur, qui devint plus tard le cœur de l'ordinateur domestique simple, était l'Intel 8080, un ordinateur 8 bits complet sur une seule puce apparu en 1974. Le premier microprocesseur a provoqué un véritable essor du marché. Plus tard en 1979, un nouveau modèle est sorti - Intel 8088. Si vous connaissez le marché des PC et son histoire, alors vous savez que le marché des PC est passé d'Intel 8088 à Intel 80286, et celui-ci à Intel 80386 et Intel 80486, puis Pentium, Pentium II, Pentium III et Pentium 4. Tous ces microprocesseurs sont fabriqués par Intel, et ils sont tous des améliorations à la conception de base de l'Intel 8088. Le Pentium 4 peut exécuter n'importe quel code, mais il le fait 5000 fois plus rapide.

En 2004, Intel a introduit des microprocesseurs à cœurs multiples et un millionième transistor, mais même ces microprocesseurs suivaient les mêmes règles générales que les puces précédemment fabriquées. Informations complémentaires dans le tableau :

  • Date: est l'année où le processeur a été introduit pour la première fois. De nombreux processeurs ont été réédités, mais avec des vitesses d'horloge plus élevées, et cela a continué pendant de nombreuses années après la date de sortie d'origine.
  • Transistors: C'est le nombre de transistors sur une puce. Vous pouvez voir que le nombre de transistors par puce n'a cessé d'augmenter au fil des ans.
  • Micron: largeur, en microns, du plus petit fil de la puce. A titre de comparaison, je peux citer un cheveu humain, qui a une épaisseur d'environ 100 microns. Au fur et à mesure que les dimensions devenaient de plus en plus petites, le nombre de transistors augmentait.
  • Fréquence d'horloge: la vitesse maximale que la puce peut atteindre. Je vous parlerai de la fréquence d'horloge un peu plus tard.
  • Données de largeur (bus): est la largeur de l'ALU (Arithmetic Logic Unit). Une ALU 8 bits peut additionner, soustraire, multiplier, etc. Dans de nombreux cas, le bus de données a la même largeur que l'ALU, mais pas toujours. L'Intel 8088 était 16 bits et avait un bus 8 bits, tandis que les modèles Pentium modernes sont 64 bits.
  • MIPS: Cette colonne du tableau permet d'afficher le nombre d'opérations par seconde. C'est une unité de mesure pour les microprocesseurs. Les processeurs modernes peuvent faire tellement de choses différentes que les évaluations d'aujourd'hui, présentées dans le tableau, n'ont plus de sens. Mais vous pouvez sentir la puissance relative des microprocesseurs de cette époque.
À partir de ce tableau, vous pouvez voir qu'en général, il existe une relation entre la vitesse d'horloge et les MIPS (opérations par seconde). La vitesse d'horloge maximale est fonction du processeur de fabrication. Il existe également une relation entre le nombre de transistors et le nombre d'opérations par seconde. Par exemple, un Intel 8088 cadencé à 5 MHz (maintenant 2,5-3 GHz) n'exécute que 0,33 MIPS (environ une instruction tous les 15 cycles d'horloge). Les processeurs modernes peuvent souvent exécuter deux instructions par cycle d'horloge. Cette augmentation est directement liée au nombre de transistors sur la puce et j'en reparlerai plus loin.

Qu'est-ce qu'une puce ?

Une puce est également appelée circuit intégré. Il s'agit généralement d'un petit morceau de silicium mince sur lequel ont été gravés les transistors qui composent le microprocesseur. Une puce peut être aussi petite qu'un pouce, mais contenir encore des dizaines de millions de transistors. Les processeurs plus simples peuvent être constitués de plusieurs milliers de transistors gravés sur une puce de quelques millimètres carrés à peine.

Comment ça fonctionne


Intel Pentium 4


Pour comprendre comment fonctionne un microprocesseur, il serait utile de regarder à l'intérieur et d'en apprendre davantage sur ses composants internes. Au cours du processus, vous pouvez également en apprendre davantage sur le langage d'assemblage, la langue native du microprocesseur et de nombreuses choses que les ingénieurs peuvent faire pour augmenter la vitesse du processeur.

Le microprocesseur exécute un ensemble d'instructions machine qui indiquent au processeur ce qu'il doit faire. Sur la base des instructions, le microprocesseur fait trois choses principales :

  • Grâce à son ALU (Arithmetic Logic Unit), le microprocesseur peut effectuer des opérations mathématiques. Par exemple, addition, soustraction, multiplication et division. Les microprocesseurs modernes sont capables d'opérations extrêmement complexes
  • Le microprocesseur peut déplacer des données d'un emplacement de mémoire à un autre
  • Le microprocesseur peut prendre des décisions et passer à un nouvel ensemble d'instructions en fonction de ces décisions

Pour parler franchement, un microprocesseur fait des choses complexes, mais j'ai décrit ci-dessus trois activités principales. Le schéma suivant montre un microprocesseur très simple capable de faire ces trois choses. Ce microprocesseur a :

  • Bus d'adresse (8, 16 ou 32 bits) qui envoie l'accès mémoire
  • Bus de données (8, 16 ou 32 bits) qui transfère des données vers la mémoire ou reçoit des données de la mémoire
  • RD (lecture) et WR (écriture) indiquent à la mémoire s'ils souhaitent installer ou obtenir un emplacement adressé
  • Ligne d'horloge qui vous permet de visualiser la séquence d'horloge du processeur
  • Une ligne de réinitialisation qui remet le compteur de commandes à zéro et redémarre l'exécution

Mémoire du microprocesseur

Plus tôt, nous avons parlé des bus d'adresses et de données, ainsi que des lignes de lecture et d'écriture. Tout cela se connecte à la RAM (mémoire à accès aléatoire) ou à la ROM (mémoire en lecture seule ou mémoire en lecture seule, ROM) - généralement les deux. Dans notre exemple de microprocesseur, nous avons un bus d'adresses large de 8 bits et un bus de données tout aussi large - également 8 bits. Cela signifie que le microprocesseur peut accéder à 2 ^ 8 à 256 octets de mémoire, et peut lire et écrire 8 bits de mémoire à la fois. Supposons que ce microprocesseur simple a 128 octets de mémoire interne commençant à l'adresse 0 et 128 octets de RAM commençant à l'adresse 128.

La mémoire vive est synonyme de mémoire en lecture seule. La puce mémoire en lecture seule est programmée avec des octets prédéfinis permanents. L'adresse du bus indique à la puce RAM quel octet atteindre et s'adapter au bus de données. Lorsque la ligne de lecture change d'état, la puce mémoire en lecture seule présente l'octet sélectionné au bus de données.

RAM signifie RAM, lol. La RAM contient un octet d'information, et le microprocesseur peut lire ou écrire dans ces octets selon que la ligne de lecture ou d'écriture signale. L'un des problèmes que l'on peut trouver dans les puces d'aujourd'hui est qu'elles oublient tout dès qu'il n'y a plus d'énergie. Par conséquent, l'ordinateur doit avoir de la RAM.


Puce RAM ou puce mémoire morte (ROM)


Soit dit en passant, presque tous les ordinateurs contiennent une certaine quantité de RAM. Sur un ordinateur personnel, la mémoire morte est appelée BIOS (Basic Input / Output System). Au démarrage, le microprocesseur commence à exécuter les instructions qu'il trouve dans le BIOS. Soit dit en passant, les instructions du BIOS font également leur part : elles vérifient le matériel, puis toutes les informations sont transférées sur le disque dur pour créer le secteur de démarrage. Le secteur de démarrage est un petit programme et le BIOS le stocke en mémoire après l'avoir lu à partir du disque. Le microprocesseur commence alors à exécuter les instructions du secteur d'amorçage à partir de la RAM. Le programme du secteur d'amorçage montrera au microprocesseur quoi d'autre à emporter du disque dur vers la RAM, puis il fera tout cela et ainsi de suite. C'est ainsi que le microprocesseur charge et exécute l'ensemble du système d'exploitation.

Instructions du microprocesseur

Même le microprocesseur incroyablement simple que je viens de décrire aura un ensemble d'instructions assez important qu'il peut exécuter. La collection d'instructions est implémentée sous forme de motifs binaires, dont chacun a une signification différente lorsqu'il est chargé dans le secteur d'instructions. Les gens ne sont pas particulièrement doués pour se souvenir des motifs binaires car ils sont une collection de mots courts. Soit dit en passant, cet ensemble de mots courts s'appelle le langage d'assemblage du processeur. Un assembleur peut traduire des mots en un motif binaire très facilement, puis les efforts de l'assembleur seront mis en mémoire pour le microprocesseur pour exécution.

Voici un ensemble d'instructions en langage assembleur :

  • LOADA mem- charger dans le registre avec l'adresse mémoire
  • LOADB mem- charger dans le registre B à partir de l'adresse mémoire
  • CONB mem- charger la valeur constante dans le registre B
  • SAVEB mem- enregistrer le registre B dans l'adresse mémoire
  • SAVEC mem- enregistrer le registre C dans l'adresse mémoire
  • AJOUTER- ajouter A et B et enregistrer le résultat dans C
  • SOUS- soustraire A et B et stocker le résultat dans C
  • MUL- multiplier A et B et stocker le résultat dans C
  • DIV- diviser A et B et stocker le résultat dans C
  • COM- comparer A et B et enregistrer le résultat dans le test
  • Adresse JUMP- aller à l'adresse
  • adresse JEQ- aller, si égal, résoudre
  • adresse JNEQ- aller, sinon égal, résoudre
  • adresse JG- allez, si plus, pour la solution
  • adresse JGE- aller si supérieur ou égal à résoudre
  • adresse JL- aller, si moins, résoudre
  • adresse Jle- aller si inférieur ou égal à résoudre
  • ARRÊTER- arrêter l'exécution
Langage d'assemblage
Le compilateur C traduit ce code C en langage assembleur. En supposant que la RAM commence à l'adresse 128 dans ce processeur et que la mémoire en lecture seule (qui contient le programme en langage assembleur) commence à l'adresse 0, alors pour notre microprocesseur simple, l'assembleur pourrait ressembler à ceci :

// Suppose que a est à l'adresse 128 // Suppose F est à l'adresse 1290 CONB 1 // a = 1; 1 SAVEB 1282 CONB 1 // f = 1; 3 SAVEB 1294 LOADA 128 // si a> 5 le saut à 175 CONB 56 COM7 JG 178 LOADA 129 // f = f * a; 9 LOADB 12810 MUL11 SAVEC 12912 LOADA 128 // a = a + 1; 13 CONB 114 ADD15 SAVEC 12816 JUMP 4 // retour à if17 STOP

Mémoire morte (ROM)
La question est donc maintenant : « Comment toutes ces instructions s'intègrent-elles à la mémoire en lecture seule ? » Je m'explique, bien sûr : chacune de ces instructions en langage assembleur doit être représentée sous la forme d'un nombre binaire. Par souci de simplicité, supposons que chaque instruction en langage assembleur s'attribue un numéro unique. Par exemple, cela ressemblerait à ceci :

  • CHARGER - 1
  • LOADB - 2
  • CONB - 3
  • SAUVEGARDE - 4
  • SAVEC mem - 5
  • AJOUTER - 6
  • SOUS - 7
  • MUL - 8
  • DIV - 9
  • COM - 10
  • Adresse JUMP - 11
  • adresse JEQ - 12
  • adresse JNEQ - 13
  • adresse JG - 14
  • adresse JGE - 15
  • adresse JL - 16
  • adresse Jle - 17
  • ARRÊTER - 18
Ces numéros seront appelés opcodes. En mémoire morte, notre petit programme ressemblera à ceci :

// Supposons que a soit à l'adresse 128 // Suppose que F soit à l'adresse 129Addr opcode / value0 3 // CONB 11 12 4 // SAVEB 1283 1284 3 // CONB 15 16 4 // SAVEB 1297 1298 1 // LOADA 1289 12810 3 // CONB 511 512 10 // COM13 14 // JG 1714 3115 1 // LOADA 12916 12917 2 // LOADB 12818 12819 8 // MUL20 5 // SAVEC 12921 12922 1 // LOADA 12823 12824 3 // CONB 125 126 6 // ADD27 5 // SAVEC 12828 12829 11 // JUMP 430 831 18 // STOP

Vous pouvez voir que 7 lignes de code C sont devenues 18 lignes d'assembleur, et que toutes sont devenues 32 octets en mémoire morte.

Décodage
L'instruction de décodage doit transformer chacun des opcodes en un ensemble de signaux qui piloteront divers composants à l'intérieur du microprocesseur. Prenons les instructions ADD comme exemple et voyons ce qu'elles doivent faire. Donc:

  • 1. Dans le premier cycle d'horloge, il est nécessaire de charger l'instruction elle-même, donc le décodeur doit : activer le tampon pour le compteur de commandes par trois états, activer la ligne de lecture (RD), activer les données dans les trois états du tampon dans le registre de commandes
  • 2. Dans le deuxième cycle d'horloge, l'instruction ADD est décodée. Il n'y a pas grand-chose à faire ici : régler l'opération de l'unité arithmétique et logique (ALU) sur le registre C
  • 3. Au cours du troisième cycle, le compteur de programme augmente (en théorie, cela peut se chevaucher au deuxième cycle)
Chaque instruction peut être décomposée en un ensemble d'opérations séquencées - comme nous venons de le voir. Ils manipulent les composants du microprocesseur dans le bon ordre. Certaines instructions, telles que l'instruction ADD, peuvent nécessiter deux à trois cycles d'horloge. D'autres peuvent prendre cinq ou six mesures.

Venons en à la fin

Le nombre de transistors a un impact énorme sur les performances du processeur. Comme vous pouvez le voir ci-dessus, un microprocesseur Intel 8088 typique peut effectuer 15 cycles. Plus il y a de transistors, plus les performances sont élevées - c'est simple. Le grand nombre de transistors permet également des technologies telles que le pipeline.

L'architecture du pipeline est constituée de l'exécution de commandes. L'exécution d'une instruction peut prendre cinq cycles, mais il ne peut pas y avoir cinq instructions à différents stades d'exécution en même temps. Il semble donc qu'une instruction termine chaque cycle d'horloge.

Toutes ces tendances permettent au nombre de transistors d'augmenter, résultant en les poids lourds de transistors de plusieurs millions de dollars qui sont disponibles aujourd'hui. De tels processeurs peuvent effectuer environ un milliard d'opérations par seconde - imaginez. Soit dit en passant, de nombreux fabricants se sont maintenant intéressés à la sortie des processeurs mobiles 64 bits et une autre vague est évidemment à venir, mais cette fois, l'architecture 64 bits est le roi de la mode. Peut-être que je vais aborder ce sujet dans un proche avenir et vous dire comment cela fonctionne réellement. C'est peut-être tout pour aujourd'hui. J'espère que vous l'avez trouvé intéressant et que vous avez beaucoup appris.

2021 wisemotors.ru. Comment ça fonctionne. Le fer. Exploitation minière. Crypto-monnaie.