Introduction aux architectures matérielles
Composants fondamentaux d'un ordinateur
Un ordinateur est une machine complexe, mais il repose sur quelques éléments clés qui travaillent ensemble.
- Unité Centrale de Traitement (CPU) : C'est le « cerveau » de l'ordinateur. Le CPU exécute les instructions des programmes et effectue les calculs. Il est composé de l'unité arithmétique et logique (UAL) pour les calculs et de l'unité de commande pour orchestrer les opérations. Plus la fréquence d'horloge est élevée (mesurée en GHz), plus le CPU peut exécuter d'instructions par seconde.
- Mémoire vive (RAM) (Random Access Memory) : C'est une mémoire volatile et =rapide= qui stocke temporairement les données et les programmes en cours d'utilisation par le CPU. Quand l'ordinateur est éteint, son contenu est perdu. Plus il y a de RAM, plus l'ordinateur peut gérer de programmes simultanément sans ralentir.
- Périphériques d'entrée/sortie (E/S) : Ce sont les dispositifs qui permettent à l'ordinateur d'interagir avec le monde extérieur.
- Entrée : clavier, souris, microphone, scanner, webcam.
- Sortie : écran, imprimante, haut-parleurs.
- Entrée/Sortie : disque dur, SSD, clé USB, écran tactile, carte réseau.
- Bus de communication : Ce sont des ensembles de fils électriques qui permettent aux différents composants de l'ordinateur de communiquer entre eux. On peut les voir comme des "autoroutes" de données. Il existe plusieurs types de bus :
- Bus d'adresse : transporte les adresses des emplacements mémoire où se trouvent les données.
- Bus de données : transporte les données elles-mêmes.
- Bus de contrôle : transporte les signaux de commande et de synchronisation.
Architecture de von Neumann
L'architecture de von Neumann est le modèle de conception sur lequel sont basés la plupart des ordinateurs modernes. Elle a été proposée par John von Neumann en 1945.
- Principe du programme enregistré : C'est l'idée fondamentale. Les programmes (séquences d'instructions) sont stockés en mémoire au même titre que les données. Cela permet à l'ordinateur de modifier son propre programme ou d'exécuter différents programmes sans modification physique du matériel.
- Séparation données/instructions (conceptuelle) : Bien que les instructions et les données soient stockées dans la même mémoire, elles sont traitées différemment par le CPU. Le CPU sait s'il doit interpréter un bloc de mémoire comme une instruction à exécuter ou comme une donnée à manipuler.
- Cycle fetch-decode-execute : C'est le processus continuel par lequel le CPU exécute les instructions.
- Fetch (recherche) : Le CPU va chercher la prochaine instruction à exécuter dans la mémoire.
- Decode (décodage) : Le CPU interprète l'instruction pour comprendre quelle opération doit être effectuée (ex: addition, lecture mémoire).
- Execute (exécution) : Le CPU réalise l'opération spécifiée par l'instruction. Cela peut impliquer des calculs, des transferts de données, ou des opérations d'entrée/sortie.
- Limitations de l'architecture : La principale limitation est le goulot d'étranglement de von Neumann. Comme les données et les instructions partagent le même bus et la même mémoire, le CPU doit souvent attendre que les données ou les instructions soient chargées, ce qui peut ralentir les performances. Pour atténuer ce problème, des techniques comme la mémoire cache et le pipelining sont utilisées.
Hiérarchie mémoire
La mémoire d'un ordinateur est organisée en une hiérarchie, du plus rapide et coûteux au plus lent et moins cher, mais avec une capacité croissante. L'objectif est d'offrir une grande capacité de stockage à un coût raisonnable, tout en garantissant des accès rapides aux données les plus fréquemment utilisées.
- Registres : Ce sont de très petites mémoires intégrées directement dans le CPU. Ils sont les plus rapides et les plus coûteux, utilisés pour stocker temporairement des données pendant l'exécution des instructions (ex: opérandes d'un calcul, résultat intermédiaire). Leur accès est presque instantané.
- Mémoire cache (L1, L2, L3) : Située entre les registres et la RAM, la mémoire cache est une mémoire SRAM (Static RAM) très rapide et coûteuse. Elle stocke les copies des données et instructions les plus récemment ou fréquemment utilisées de la RAM, afin que le CPU n'ait pas à attendre la RAM.
- L1 (niveau 1) : La plus rapide et la plus proche du cœur du CPU, souvent intégrée au cœur.
- L2 (niveau 2) : Plus grande et un peu moins rapide que L1, souvent aussi intégrée au CPU.
- L3 (niveau 3) : La plus grande et la plus lente des caches, partagée entre plusieurs cœurs du CPU.
- Mémoire principale (RAM) : C'est la mémoire vive (DRAM - Dynamic RAM) dont nous avons parlé. Elle est beaucoup plus grande que la cache et les registres, mais plus lente et moins chère. C'est là que sont stockés les programmes et les données en cours d'exécution.
- Mémoire de masse (ou stockage secondaire) : Ce sont des dispositifs de stockage non volatils qui conservent les données même lorsque l'ordinateur est éteint. Ils ont une grande capacité et sont beaucoup moins chers par gigaoctet que la RAM ou la cache, mais aussi beaucoup plus lents.
- Disque dur (HDD) : Stockage magnétique, mécanique, plus lent mais grande capacité et bon marché.
- SSD (Solid State Drive) : Stockage à base de mémoire flash, sans pièces mobiles, beaucoup plus rapide que les HDD, mais plus cher.
- Clé USB, carte SD, disques optiques (CD/DVD/Blu-ray) : Autres formes de mémoire de masse.
L'idée est que le CPU accède d'abord aux registres, puis à la cache (L1, L2, L3), puis à la RAM. Si l'information n'est pas trouvée, elle est chargée depuis le niveau inférieur (plus lent) puis copiée dans les niveaux supérieurs (plus rapides) pour les accès futurs.


