architecture du processeur

Demain, nous continuerons à travailler sur la cache, et les suivantes, 

Voici le schéma du cadre du processeur

commencer à expliquer le processeur

1. Contrôleur

Le contrôleur est également appelé unité de contrôle (CU en abrégé), voici la composition du contrôleur

1. Registre d'instructions IR : Il est utilisé pour stocker une instruction en cours d'exécution. Lorsqu'une instruction doit être exécutée, une instruction est extraite de la mémoire cache vers le registre d'instructions IR selon l'adresse d'instruction indiquée par le compteur de programme PC.

Le code d'opération est le mov, add, jmp et d'autres codes de symboles en langage assembleur ; l'adresse de l'opérande indique l'adresse de l'opérande requise par l'instruction dans le cache de données. 

2. ID du décodeur d'instructions : l'instruction dans le registre d'instructions est décodée pour déterminer quelle opération l'instruction doit effectuer (c'est-à-dire le code d'opération dans l'instruction) et où se trouve l'opérande (l'adresse de l'opérande).

3. Générateur de synchronisation TG : Semblable au "calendrier", il fournit les repères temporels nécessaires au travail de chaque partie de l'ordinateur et est généralement réalisé en utilisant la séquence d'impulsions de synchronisation et différents intervalles d'impulsions.

4. Contrôleur de fonctionnement CU : selon les opérations et les signaux devant être complétés par les instructions, diverses séquences de commandes de micro-opérations sont émises pour contrôler tous les objets contrôlés et terminer l'exécution des instructions.

5. Compteur de programme PC : Il sert à stocker l'adresse de la prochaine instruction à exécuter, et il existe un chemin direct entre celle-ci et la mémoire (mémoire). Lors de l'exécution d'une instruction, il est d'abord nécessaire d'extraire l'instruction de la mémoire vers le registre d'instructions IR selon l'adresse d'instruction stockée dans le compteur de programme PC pour terminer l'opération « d'extraction d'instruction ». Le compteur de programme PC lui-même a pour fonction d'additionner automatiquement 1, ce qui peut donner automatiquement l'adresse de l'instruction suivante, de sorte que chaque instruction s'exécute en boucle.

2. Calculatrice

L'unité arithmétique comprend généralement au moins 3 registres et 1 unité arithmétique et logique (ALU).Les ordinateurs modernes ont souvent des groupes de registres à usage général à l'intérieur.

Register, une unité de stockage à grande vitesse avec une capacité de stockage limitée, peut être utilisée pour stocker temporairement des instructions, des données et des adresses. Il existe de nombreux types de registres. Généralement, il existe 3 types liés aux quatre opérations arithmétiques. ACC (Accumulator) est un accumulateur, MQ (Multiplier-Quotient Register) est un registre multiplicateur et X est un registre d'opérandes. Lorsque les trois les types de registres effectuent des opérations différentes. Les types d'opérandes stockés varient également.

calculatrice

 En ce qui concerne le concept du chiffre haut du produit et du chiffre bas du produit, en prenant le système décimal comme exemple, le chiffre des centaines est le chiffre haut du chiffre des dizaines, et le chiffre des dizaines est le chiffre bas du chiffre des centaines . Lorsque deux nombres de 16 bits sont multipliés, le résultat peut être des bits de 32. Les 16 bits de la moitié gauche sont les bits de poids fort du produit, qui sont stockés dans ACC, et les 16 bits de la moitié de droite sont les bits de poids faible de le produit, qui sont stockés dans MQ.
L'unité arithmétique et logique (ALU, Arithmetic and Logic Unit) est un composant des opérations arithmétiques et logiques. Les opérations arithmétiques incluent les opérations sur les nombres entiers telles que l'addition, la soustraction et la multiplication. Les opérations logiques sont les opérations logiques telles que AND, OR, NOT et XOR, ainsi que les opérations telles que le décalage, la comparaison et le transfert.
Les opérations de décalage, le décalage d'un caractère vers la gauche ou la droite ou le flottement d'un bit spécifique, y compris l'extension signée et l'extension non signée, sont largement utilisés dans les programmes.

3. Inscrivez-vous

Il doit y avoir au moins six types de registres dans la CPU : registre d'instructions (IR), compteur de programme (PC), registre d'adresses (AR), registre de données (DR), registre d'accumulation (AC) et registre de mots d'état du programme (PSW). ).

Ces registres sont utilisés pour stocker de petites quantités de données pour une utilisation rapide par le CPU.

  1. Data Register
    Data Register (Data Register, DR) est également appelé registre tampon de données. Sa fonction principale est de servir de station de transfert pour la transmission d'informations entre le CPU, la mémoire principale et les périphériques pour compenser l'augmentation de la vitesse de fonctionnement entre le CPU , mémoire principale et périphériques.
    Le registre de données sert à stocker temporairement une instruction ou un mot de données lu dans la mémoire principale ; à l'inverse, lorsqu'une instruction ou un mot de données est stocké dans la mémoire principale, ils sont également stockés temporairement dans le registre de données.
    Le rôle du registre de données est :
    (1) En tant que station de transfert pour la transmission d'informations entre le CPU, la mémoire principale et les périphériques ;
    (2) Pour compenser la différence de vitesse de fonctionnement entre le CPU, la mémoire principale et les périphériques (3) Dans une seule Dans une unité arithmétique avec une structure d'
    accumulateur, le registre de données peut également servir de registre d'opérandes.

  2. Instruction Register
    Instruction Register (Instruction Register, IR) est utilisé pour enregistrer une instruction en cours d'exécution.
    Lorsqu'une instruction est exécutée, l'instruction est d'abord lue de la mémoire principale dans le registre de données, puis transférée dans le registre d'instructions.
    Les instructions comprennent deux champs : code opération et code d'adresse. Afin d'exécuter l'instruction, le code opération doit être testé pour identifier l'opération requise. Le décodeur d'instruction (Instruction Decoder, ID) complète ce travail. Le décodeur d'instructions décode la partie code d'opération du registre d'instructions pour générer le potentiel de commande de l'opération requise par l'instruction, et l'envoie au circuit de commande de micro-opération, et génère une commande d'opération spécifique sous l'action du signal de synchronisation du Signal composant séquentiel.
    La sortie du champ opcode dans le registre d'instructions est l'entrée du décodeur d'instructions. Une fois que le code d'opération est décodé, un signal spécifique pour une opération spécifique peut être envoyé au contrôleur d'opération.

  3. Compteur de programme
    Le compteur de programme (Program Counter, PC) est utilisé pour indiquer l'adresse de la prochaine instruction dans la mémoire principale.
    Avant que le programme ne soit exécuté, la première adresse du programme, c'est-à-dire l'adresse de l'unité de mémoire principale où se trouve la première instruction du programme, doit être envoyée au PC, de sorte que le contenu du PC est l'adresse de la première instruction extraite de la mémoire principale.
    Lors de l'exécution d'une instruction, la CPU peut incrémenter automatiquement le contenu du PC afin qu'il enregistre toujours l'adresse de la mémoire principale de la prochaine instruction à exécuter, prête à récupérer la prochaine instruction. Si c'est une instruction simple mot, alors (PC)+1àPC, si c'est une instruction double mot, alors (PC)+2àPC, et ainsi de suite.
    Cependant, lorsqu'une instruction de branchement est rencontrée, l'adresse de l'instruction suivante sera spécifiée par le champ de code d'adresse de l'instruction de branchement, plutôt qu'obtenue en incrémentant séquentiellement le contenu du PC comme d'habitude.
    Par conséquent, la structure du compteur de programme doit être une structure avec deux fonctions d'enregistrement d'informations et de comptage.

  4. Registre d'adresses
    Le registre d'adresses (registre d'adresses, AR) est utilisé pour enregistrer l'adresse de l'unité de mémoire principale actuellement accédée par la CPU.
    Etant donné qu'il existe une différence de vitesse de fonctionnement entre la mémoire principale et la CPU, des registres d'adresse doivent être utilisés pour sauvegarder temporairement les informations d'adresse de la mémoire principale jusqu'à ce que l'opération d'accès à la mémoire principale soit terminée.
    Lorsque le CPU et la mémoire principale échangent des informations, c'est-à-dire lorsque le CPU stocke des données/instructions dans la mémoire principale ou lit des données/instructions dans la mémoire principale, le registre d'adresses et le registre de données sont utilisés.
    Si nous adressons uniformément le périphérique et l'unité de mémoire principale, alors lorsque le CPU et le périphérique échangent des informations, nous devons également utiliser le registre d'adresse et le registre de données.

  5. Registre d'accumulation
    Le registre d'accumulation est généralement appelé simplement l'accumulateur (Accumulateur, AC), qui est un registre à usage général.
    La fonction de l'accumulateur est la suivante : lorsque l'unité logique arithmétique ALU de l'unité arithmétique effectue des opérations arithmétiques ou logiques, il fournit une zone de travail pour l'ALU et peut temporairement enregistrer un opérande ou un résultat d'opération pour l'ALU.
    Bien entendu, il doit y avoir au moins un registre d'accumulation dans l'unité arithmétique.

  6. Mot d'état du programme Registre
    Mot d'état du programme (Mot d'état du programme, PSW) est utilisé pour représenter l'état de fonctionnement actuel et le mode de fonctionnement du programme.
    Le registre de mot d'état du programme est utilisé pour enregistrer divers contenus de code de condition établis par l'opération ou les résultats de test des instructions arithmétiques/logiques, tels que l'indicateur de report/emprunt de résultat d'opération (C), l'indicateur de dépassement de résultat d'opération (O) et le le résultat de l'opération est le drapeau zéro (Z), le résultat de l'opération est le drapeau négatif (N), le drapeau de signe du résultat de l'opération (S), etc. Ces bits de drapeau sont généralement enregistrés par une bascule 1 bit.
    De plus, le registre de mots d'état du programme est également utilisé pour enregistrer des informations telles que les interruptions et l'état de fonctionnement du système, afin que la CPU et le système puissent se tenir au courant de l'état de fonctionnement de la machine et de l'état de fonctionnement du programme.
    Par conséquent, le registre de mots d'état du programme est un registre qui contient divers indicateurs de condition d'état.

Ce qui suit est le diagramme de trame du processeur et de la mémoire principale

4.MMU

appartient au processeur

 Le rôle de mmu est de faire la conversion entre les adresses virtuelles et les adresses physiques.

La relation entre l'adresse virtuelle et l'adresse physique est enregistrée dans la table de pages, et la table de pages est stockée en mémoire.

Le TLB est un cache pour mettre en cache les résultats des traductions de table de pages, réduisant ainsi le temps de consultation des tables de pages.

S'il n'y a pas de hit dans le TLB, utilisez TWU pour parcourir la table des pages dans la mémoire, obtenir l'adresse physique ou l'adresse virtuelle et l'enregistrer dans le TLB.

 5. cache

appartient au processeur

Tout d'abord, le cache est appelé cache haute vitesse, pourquoi il y a du cache, car bien que les données d'accès à la mémoire soient rapides, elles sont encore trop lentes par rapport au CPU, le cache est des centaines de fois plus rapide que la mémoire, et l'accès la vitesse est équivalente à celle du CPU, donc chargez d'abord les données de la mémoire dans le cache à l'avance, et créez un cache à utiliser par le CPU.

Le cache est divisé en cache L3/cache L2/cache L1, le cache L1 est divisé en cache cache d'instructions et cache cache de données

Les caches L1 et L2 sont sur le même processeur et le cache L3 est généralement partagé entre plusieurs processeurs

 La figure ci-dessous montre les types de toutes les données stockées dans l'ordinateur

1. Stockage 2. Cache 3. Mémoire 4. Disque dur

2. Processus d'exécution du processeur

processus d'exécution du processeur

1. Récupérer les instructions

L'unité centrale lit une instruction dans le cache d'instructions pointé par le compteur de programme et lit l'instruction dans le registre d'instructions IR.

2. Analyser et donner des instructions

L'ID du décodeur d'instruction analyse l'instruction

Le contrôleur d'opération CU et le générateur de synchronisation TG envoient des commandes de contrôle aux composants concernés selon la fonction de la commande, et exécutent l'opération de la commande de contrôle.

3. Exécuter les instructions

L'exécution des instructions est divisée en deux étapes : la récupération des opérandes et l'exécution des opérations.

Récupération des opérandes : la CPU lit les opérandes du cache de données dans les registres via des opérations d'adressage et les enregistre temporairement

Effectuer des opérations : l'unité d'opération opère sur le numéro dans le registre via l'opcode dans l'instruction

4. Nombre d'instructions

Modifier le compteur de programme PC pour qu'il pointe sur l'adresse de l'instruction suivante Continuer à boucler les étapes ci-dessus jusqu'à ce qu'il n'y ait plus d'instruction.

La taille du cache L3 du processeur

Le cache de premier niveau a la plus petite capacité et l'unité est Ko. Il n'y a aucune différence dans le cache de premier niveau entre les différents processeurs.

Le cache de deuxième niveau est essentiellement un Mo à un chiffre, sauf que certains processeurs de serveur auront plus de 10 Mo,

Cache L3, le cache L3 du processeur commun n'est que d'environ 10 Mo (maintenant, la série X d'AMD EPYC a atteint 768 Mo de cache L3).

La relation entre CPU et IO

Le matériel informatique utilise DMA pour accéder au disque et à d'autres E/S, c'est-à-dire qu'après l'envoi de la demande, le processeur ne le gère plus jusqu'à ce que le processeur DMA ait terminé la tâche, puis informe le processeur via une interruption. Par conséquent, un seul temps d'E/S occupe très peu de CPU, et s'il est bloqué, il n'occupera pas le CPU, car le programme ne continue pas à s'exécuter, et le temps CPU est donné à d'autres threads et processus. Bien que les E/S ne prennent pas beaucoup de temps CPU, les E/S très fréquentes gaspilleront tout de même du temps CPU Par conséquent, face à un grand nombre de tâches d'E/S, des algorithmes sont parfois nécessaires pour fusionner les E/S, ou utiliser le cache pour soulager la pression des E/S.



 

Je suppose que tu aimes

Origine blog.csdn.net/weixin_70280523/article/details/132157339
conseillé
Classement