Architecture du système informatique et système NUMA

18 Jul 2022 18 Jul 2022 2073 vues ESSADDOUKI Mostafa 8 min de lecture

Classification des systèmes informatiques selon les processeurs

Principe de classification

Un système informatique peut être organisé de différentes manières, que nous pouvons classer en fonction du nombre de processeurs à usage général utilisés.

1. Systèmes à processeur unique

 Architecture classique

Système monoprocesseur

Il y a de nombreuses années, la plupart des systèmes informatiques utilisaient un seul processeur contenant un processeur avec un seul cœur de traitement. Le cœur est le composant qui exécute les instructions et les registres pour stocker les données localement.

Le processeur principal avec son cœur est capable d'exécuter un jeu d'instructions à usage général, y compris des instructions de processus.

Processeurs spéciaux

Ces systèmes ont également d'autres processeurs spéciaux. Ils peuvent se présenter sous la forme de processeurs spécifiques à l'appareil, tels que les contrôleurs de disque, de clavier et graphiques.

  • Tous ces processeurs spéciaux exécutent un jeu d'instructions limité et n'exécutent pas de processus.
  • Parfois, ils sont gérés par le système d'exploitation (le système d'exploitation leur envoie des informations sur leur prochaine tâche et surveille leur état).
  • Dans d'autres cas, ils sont des composants de bas niveau intégrés au matériel et fonctionnent de manière autonome.
Exemples de processeurs spéciaux
  • Contrôleur de disque : reçoit une séquence de requêtes du CPU principal et implémente sa propre file d'attente et son propre algorithme de planification.
  • Microprocesseur du clavier : convertit les frappes en codes à envoyer au CPU.
Définition importante

L'utilisation de microprocesseurs spéciaux est courante et ne transforme pas un système à processeur unique en un système multiprocesseur. S'il n'y a qu'un seul processeur à usage général avec un seul cœur de traitement, le système est un système à processeur unique.

2. Systèmes multiprocesseurs

Définition

Sur les ordinateurs modernes, les appareils mobiles et les serveurs, les systèmes multiprocesseurs dominent désormais le domaine informatique. Traditionnellement, ces systèmes ont deux processeurs (ou plus), chacun avec un processeur monocœur. Les processeurs partagent le bus informatique et parfois l'horloge, la mémoire et les périphériques.

Avantages des systèmes multiprocesseurs

  • Augmentation du débit : en augmentant le nombre de processeurs, nous nous attendons à faire plus de travail en moins de temps.
Attention : Accélération non linéaire

Le rapport d'accélération avec N processeurs n'est cependant pas N ; il est inférieur à N. Lorsque plusieurs processeurs coopèrent sur une tâche, une certaine surcharge est encourue pour que toutes les parties fonctionnent correctement. Cette surcharge, plus la contention pour les ressources partagées, réduit le gain attendu des processeurs supplémentaires.

2.1 Multitraitement symétrique (SMP)

 Architecture SMP

Symmetric Multiprocessing

Les systèmes multiprocesseurs les plus courants utilisent le multitraitement symétrique (SMP), dans lequel chaque processeur CPU homologue exécute toutes les tâches, y compris les fonctions du système d'exploitation et les processus utilisateur.

Figure : Architecture SMP avec deux processeurs partageant la mémoire

Caractéristiques :

  • Chaque processeur CPU dispose de son propre ensemble de registres.
  • Chaque processeur dispose d'un cache privé ou local.
  • Tous les processeurs partagent la mémoire physique sur le bus système.

Avantages :

  • De nombreux processus peuvent être exécutés simultanément (N processus avec N CPU).
  • Les performances ne se détériorent pas de manière significative.

Inconvénients :

  • Une CPU peut rester inactive tandis qu'une autre est surchargée.
  • Ces inefficacités peuvent être évitées si les processeurs partagent certaines structures de données.

2.2 Systèmes multicœurs

Évolution

La définition de multiprocesseur a évolué au fil du temps et inclut désormais les systèmes multicœurs, dans lesquels plusieurs cœurs de calcul résident sur une seule puce.

Figure : Architecture double cœur avec caches L1 et L2

Avantages des multicœurs
  • Communication plus rapide : la communication sur la puce est plus rapide que la communication entre les puces.
  • Efficacité énergétique : une puce à plusieurs cœurs consomme beaucoup moins d'énergie que plusieurs puces à un seul cœur (important pour les appareils mobiles et ordinateurs portables).
Organisation des caches
  • Chaque cœur dispose de son propre jeu de registres.
  • Chaque cœur a son propre cache local (L1).
  • Un cache de niveau 2 (L2) est local à la puce mais partagé par tous les cœurs.
Point de vue du système d'exploitation

En dehors des considérations architecturales (contention de cache, de mémoire et de bus), un processeur multicœur avec N cœurs apparaît au système d'exploitation comme N CPU standard. Cette caractéristique met la pression sur les concepteurs de systèmes d'exploitation et les programmeurs d'applications pour utiliser efficacement ces cœurs.

Pratiquement tous les systèmes d'exploitation modernes (Windows, macOS, Linux, Android, iOS) prennent en charge les systèmes SMP multicœurs.

2.3 Architecture NUMA (Non-Uniform Memory Access)

Principe NUMA

L'ajout de processeurs supplémentaires à un système multiprocesseur augmente la puissance de calcul, mais la contention pour le bus système devient un problème et les performances commencent à se dégrader.

L'approche NUMA (Non-Uniform Memory Access) fournit à chaque CPU (ou groupe de CPU) sa propre mémoire locale accessible via un petit bus local rapide.

Figure : Architecture NUMA avec mémoires locales et interconnexion système

Avantages NUMA
  • Les processeurs sont connectés par une interconnexion système partagée.
  • Tous les processeurs partagent un espace d'adressage physique.
  • L'accès à la mémoire locale est rapide et sans conflit sur l'interconnexion.
  • Les systèmes NUMA peuvent évoluer plus efficacement à mesure que de nouveaux processeurs sont ajoutés.
Inconvénients NUMA
  • Latence accrue lorsqu'un processeur doit accéder à la mémoire distante via l'interconnexion.
  • Exemple : CPU0 ne peut pas accéder à la mémoire locale de CPU3 aussi rapidement qu'à sa propre mémoire locale.
  • Les systèmes d'exploitation peuvent minimiser cette pénalité grâce à une planification minutieuse du processeur et à une gestion de la mémoire adaptée.

Récapitulatif des architectures

ArchitectureCaractéristiqueAvantagesInconvénients
MonoprocesseurUn seul CPU à usage généralSimple, peu coûteuxLimité en performance, pas de parallélisme
SMPPlusieurs CPU partageant la mémoireParallélisme, mémoire partagée uniformeContention sur le bus, scaling limité
MulticœurPlusieurs cœurs sur une puceCommunication rapide, faible consommationComplexité de programmation
NUMAMémoire locale par CPU + interconnexionBon scaling, accès local rapideLatence mémoire non uniforme
Points clés à retenir
  • Les systèmes se classent selon le nombre de processeurs à usage général : monoprocesseur ou multiprocesseur.
  • Les processeurs spéciaux (contrôleurs) ne comptent pas dans cette classification.
  • Les systèmes multiprocesseurs dominent aujourd'hui (ordinateurs, mobiles, serveurs).
  • Le multitraitement symétrique (SMP) est l'architecture la plus courante.
  • Les systèmes multicœurs placent plusieurs cœurs sur une même puce (économie d'énergie, communication rapide).
  • L'architecture NUMA attribue une mémoire locale à chaque processeur pour améliorer le passage à l'échelle.
  • L'accélération avec N processeurs est toujours inférieure à N (surcharge, contention).
  • Les systèmes d'exploitation modernes supportent toutes ces architectures.

Discussion (0)

Soyez le premier à laisser un commentaire !

Laisser un commentaire

Votre commentaire sera visible après modération.