Le processeur, également appelé microprocesseur, est le cœur et/ ou le cerveau d’un ordinateur. Permet de plonger en profondeur dans le cœur de l’ordinateur et de comprendre le fonctionnement du processeur, ce qui nous aidera à écrire des programmes informatiques efficacement.
Un ordinateur est une machine alimentée principalement par l’électricité mais sa flexibilité et sa programmabilité ont permis d’atteindre la simplicité d’un outil.
Le processeur est le cœur et/ou le cerveau d’un ordinateur. Il exécute les instructions qui leur sont fournies. Son travail principal consiste à effectuer des opérations arithmétiques et logiques et à orchestrer les instructions ensemble. Avant de plonger dans les parties principales, commençons par regarder quels sont les principaux composants d’un processeur et quels sont leurs rôles:
- Deux composants principaux d’un processeur (processeur)
- Unité de contrôle -CU
- Unité arithmétique et logique – ALU
- Stockage – Registres et mémoire
- Registres
- Mémoire (RAM)
- Qu’est-ce que les instructions
- Horloge CPU
- Comment une instruction est-elle exécutée
- ÉTAPE 1 — LOAD_A 8:
- ÉTAPE 2 — LOAD_B 2
- ÉTAPE 3 – AJOUTER B A
- ÉTAPE 4 – STORE_A 23
- BUS
- Cache
- Pipelining d’instructions
- Ordinateur multicœur
- Performance
Deux composants principaux d’un processeur (processeur)
- Unité de contrôle -CU
- Unité arithmétique et logique – ALU
Unité de contrôle -CU
L’unité de contrôle CU est la partie du processeur qui aide à orchestrer l’exécution des instructions. Il dit quoi faire. Selon l’instruction, il aide à activer les fils reliant le processeur à différentes autres parties de l’ordinateur, y compris l’ALU. L’unité de commande est le premier composant de la CPU à recevoir l’instruction de traitement.
Il existe deux types d’unités de commande :
- unités de commande câblées.
- unités de commande micro programmables (microprogrammées).
Les unités de commande câblées sont le matériel et nécessitent le changement de matériel pour l’ajouter, alors que l’unité de commande micro-programmable peut être programmée pour changer son comportement. Le CU câblé est plus rapide dans l’instruction de traitement alors que le micro-programmable est plus flexible.
Unité arithmétique et logique – ALU
L’unité arithmétique et logique ALU comme son nom l’indique fait tous les calculs arithmétiques et logiques. ALU effectue des opérations comme l’addition, la soustraction. ALU est constitué de circuits logiques ou de portes logiques qui effectuent ces opérations.
La plupart des portes logiques prennent deux entrées et produisent une sortie
Voici un exemple de circuit demi-additionneur qui prend deux entrées et produit le résultat. Ici A et B sont l’entrée, S est la sortie et C est le report.
Stockage – Registres et mémoire
Le travail principal de la CPU est d’exécuter les instructions qui lui sont fournies. Pour traiter ces instructions la plupart du temps, il a besoin de données. Certaines données sont des données intermédiaires, certaines sont des entrées et d’autres sont la sortie. Ces données ainsi que les instructions sont stockées dans le stockage suivant:
Registres
Un registre est un petit ensemble d’endroits où les données peuvent être stockées. Un registre est une combinaison de verrous. Les verrous également appelés bascules sont des combinaisons de portes logiques qui stockent 1 bit d’information.
Un loquet a deux fils d’entrée, un fil d’écriture et un fil d’entrée et un fil de sortie. Nous pouvons permettre au fil d’écriture d’apporter des modifications aux données stockées. Lorsque le fil d’écriture est désactivé, la sortie reste toujours la même.
Le processeur a des registres pour stocker les données de sortie. L’envoi vers la mémoire principale (RAM) serait lent car il s’agit des données intermédiaires. Ces données sont envoyées à d’autres registres reliés par un BUS. Un registre peut stocker des instructions, des données de sortie, une adresse de stockage ou tout type de données.
Mémoire (RAM)
La ram est une collection de registres agencés et compacts de manière optimisée afin de pouvoir stocker un plus grand nombre de données. La RAM (mémoire vive) est volatile et ses données sont perdues lorsque nous éteignons l’alimentation. Comme la RAM est une collection de registres pour lire / écrire des données, une RAM prend une entrée d’adresse 8 bits, une entrée de données pour les données réelles à stocker et enfin un facilitateur de lecture et d’écriture qui fonctionne comme pour les verrous.
Qu’est-ce que les instructions
L’instruction est le calcul de niveau granulaire qu’un ordinateur peut effectuer. Il existe différents types d’instructions qu’un processeur peut traiter.
Les instructions incluent:
- Arithmétique telle que additionner et soustraire
- Instructions logiques telles que et, ou, et non
- Instructions de données telles que déplacer, entrée, sortie, charger et stocker
- Instructions de flux de contrôle telles que goto, if ggoto, call et return
- Notifier au PROCESSEUR que le programme a terminé Halt
Les instructions sont fournies à un ordinateur en utilisant un langage d’assemblage ou sont générées par un compilateur ou sont interprétées dans une certaine mesure – langues de niveau.
Ces instructions sont câblées à l’intérieur du processeur. ALU contient arithmétique et logique alors que le flux de contrôle est géré par CU.
Dans un cycle d’horloge, les ordinateurs peuvent exécuter une instruction, mais les ordinateurs modernes peuvent en exécuter plusieurs.
Un groupe d’instructions qu’un ordinateur peut exécuter s’appelle un jeu d’instructions.
Horloge CPU
Cycle d’horloge
La vitesse d’un ordinateur est déterminée par son cycle d’horloge. C’est le nombre de périodes d’horloge par seconde sur lesquelles un ordinateur travaille. Les cycles d’horloge simples sont très petits comme autour 250 * 10 *-12 sec. Plus le cycle d’horloge est rapide, plus le processeur est rapide.
Un cycle d’horloge CPU est mesuré en GHz (Gigahertz). 1 GHz est égal à 10 Hz (hertz). Un hertz signifie une seconde. Donc 1Gigahertz signifie 10 cycles cycles par seconde.
Plus le cycle d’horloge est rapide, plus le PROCESSEUR peut exécuter d’instructions. Cycle d’horloge = 1 / fréquence d’horloge Temps CPU = nombre de cycles d’horloge / fréquence d’horloge
Cela signifie que pour améliorer le temps CPU, nous pouvons augmenter la fréquence d’horloge ou diminuer le nombre de cycles d’horloge en optimisant l’instruction que nous fournissons au CPU. Certains processeurs offrent la possibilité d’augmenter le cycle d’horloge, mais comme il s’agit de changements physiques, il peut y avoir une surchauffe et même des fumées / incendies.
Comment une instruction est-elle exécutée
Les instructions sont stockées sur la RAM dans un ordre séquentiel. Pour une CPU hypothétique, l’instruction se compose du code OP (code opérationnel) et de la mémoire ou de l’adresse de registre.
Il y a deux registres à l’intérieur d’un registre d’instructions de l’unité de commande (IR) qui charge le code OP de l’instruction et le registre d’adresses d’instructions qui charge l’adresse de l’instruction en cours d’exécution. Il existe d’autres registres à l’intérieur d’un processeur qui stockent la valeur stockée dans l’adresse des 4 derniers bits d’une instruction.
Prenons un exemple d’un ensemble d’instructions qui ajoute deux nombres. Voici les instructions ainsi que leur description. Le processeur fonctionne en exécutant les instructions suivantes:
ÉTAPE 1 — LOAD_A 8:
L’instruction est initialement enregistrée dans la RAM comme disons <>. Le premier bit 4 est le code op. Cela détermine l’instruction. Cette instruction est récupérée dans l’IR de l’unité de commande. L’instruction est décodée pour être load_A, ce qui signifie qu’elle doit charger les données dans l’adresse 1000 qui est le dernier bit 4 de l’instruction pour enregistrer A.
ÉTAPE 2 — LOAD_B 2
Similaire à ci—dessus, cela charge les données dans l’adresse mémoire 2 (0010) dans le registre CPU B.
ÉTAPE 3 – AJOUTER B A
Maintenant, l’instruction suivante consiste à ajouter ces deux nombres. Ici, le CU indique à ALU d’effectuer l’opération d’ajout et d’enregistrer le résultat dans le registre A.
ÉTAPE 4 – STORE_A 23
Il s’agit d’un ensemble d’instructions très simple qui permet d’ajouter deux nombres.
Nous avons réussi à ajouter deux nombres!
BUS
Toutes les données entre le CPU, le registre, la mémoire et le dispositif d’E/S sont transférées via le bus. Pour charger les données en mémoire qu’il vient d’ajouter, le CPU met l’adresse mémoire sur le bus d’adresses et le résultat de la somme sur le bus de données et active le bon signal dans le bus de contrôle. De cette façon, les données sont chargées en mémoire à l’aide du bus.
Cache
Le processeur dispose également d’un mécanisme permettant de pré-extraire l’instruction dans sa mémoire cache. Comme nous le savons, il existe des millions d’instructions qu’un processeur peut compléter en une seconde. Cela signifie qu’il y aura plus de temps passé à récupérer les instructions de la RAM qu’à les exécuter. Ainsi, le cache du PROCESSEUR prélève une partie des instructions et des données afin que l’exécution soit rapide.
Si les données dans le cache et la mémoire de fonctionnement sont différentes, les données sont marquées comme un bit sale.
Pipelining d’instructions
Le processeur moderne utilise le pipelining d’instructions pour la parallélisation dans l’exécution des instructions. Récupérer, Décoder, Exécuter. Lorsqu’une instruction est en phase de décodage, le processeur peut traiter une autre instruction pour la phase de récupération.
Cela pose un problème lorsqu’une instruction dépend d’une autre. Ainsi, les processeurs exécutent l’instruction qui n’est pas dépendante et dans un ordre différent.
Ordinateur multicœur
Il s’agit essentiellement du PROCESSEUR différent mais dispose de ressources partagées comme le cache.
Performance
Les performances du processeur sont déterminées par son temps d’exécution. Performance= 1/ temps d’exécution
disons qu’il faut 20 ms pour qu’un programme s’exécute. Les performances du processeur sont de 1/20 = 0.05msRelative performance = temps d’exécution 1/ temps d’exécution 2
Le facteur pris en compte pour les performances d’un processeur est le temps d’exécution des instructions et la vitesse d’horloge du processeur. Donc, pour augmenter les performances d’un programme, nous devons soit augmenter la vitesse d’horloge, soit diminuer le nombre d’instructions dans un programme. La vitesse du processeur est limitée et les ordinateurs modernes multi-cœurs peuvent prendre en charge des millions d’instructions par seconde. Mais si le programme que nous avons écrit contient beaucoup d’instructions, cela diminuera les performances globales.
La notation Big O détermine avec l’entrée donnée comment la performance sera affectée.
Il y a beaucoup d’optimisations effectuées dans le CPU pour le rendre plus rapide et effectuer autant que possible. Lors de l’écriture d’un programme, nous devons considérer comment la réduction du nombre d’instructions que nous fournissons à la CPU augmentera les performances du programme informatique.
Intéressé par l’optimisation des bases de données ? En savoir plus ici: https://milapneupane.com.np/2019/07/06/how-to-work-optimally-with-relational-databases/