Aller au contenu principal

Matériel vs logiciel

Progression

#Matériel vs logiciel

À quoi ça sert ?

À quoi ça sert : comprendre comment le matériel exécute vraiment les instructions et comment le logiciel décrit ce qu’il faut faire, sans se soucier des détails physiques. Comment : relier les composants concrets (CPU, RAM, périphériques) aux couches logicielles (pilotes, système d’exploitation, applications) qui orchestrent le tout.

#Matériel (hardware)

Le matériel rassemble les composants physiques qui manipulent les signaux électriques. Le processeur lit des instructions depuis la mémoire, les décode et utilise ses unités (ALU pour l’arithmétique, FPU pour les nombres flottants, unités vectorielles) pour réaliser les calculs. La mémoire se décline en plusieurs niveaux : registres ultra rapides, caches (L1/L2/L3) pour rapprocher les données du CPU, RAM pour stocker le travail en cours, puis stockage persistant (SSD/HDD). Les entrées/sorties (clavier, écran, réseau, capteurs) convertissent le monde physique en signaux utilisables par l’ordinateur.

Chaque composant expose des signaux électriques très simples (lignes d’adresses, données, horloge). Sans logiciel, ils restent inertes : c’est le rôle des couches supérieures de configurer les registres, partager les ressources et organiser l’échange de données.

#Logiciel (software)

Le logiciel correspond aux instructions et aux données qui circulent sur ce matériel. Le système d’exploitation pilote la mémoire, les processus et les périphériques. Il fournit des appels système pour ouvrir un fichier, allouer de la mémoire ou envoyer un paquet réseau. Les pilotes traduisent les spécificités d’un périphérique (carte graphique, carte réseau) en une interface commune. Les applications (navigateur, IDE, tableur) se concentrent sur l’expérience utilisateur. Entre les deux, des bibliothèques (SDL, NumPy, OpenSSL) factorisent des fonctionnalités récurrentes sans réimplémenter la logique bas niveau.

Quand une application affiche un texte, elle appelle une bibliothèque graphique, qui s’appuie sur un pilote vidéo, qui programme la carte graphique via le bus PCIe. Toute cette chaîne s’enclenche automatiquement parce que chaque couche joue son rôle.

#Frontière matériel / logiciel

L’OS fournit des abstractions communes : fichiers pour le stockage, sockets pour le réseau, processus pour l’exécution concurrente, threads pour découper un travail, timers pour planifier des tâches. Les pilotes offrent à l’OS un vocabulaire uniforme même si les périphériques sont très différents. Cette séparation permet de changer de matériel (nouvelle carte réseau) sans réécrire toutes les applications.

#Hiérarchie mémoire et localité

Taille des données
Localité d’accès
Cache L1
1 ns
81.3%
Cache L2
4 ns
9.7%
Cache L3
10 ns
7.5%
RAM
100 ns
1.5%
SSD (NVMe)
150.0 µs
0.0%
Réseau (LAN)
100.0 ms
0.0%
Latence moyenne estimée
3 ns
Somme pondérée des latences par la distribution d’accès (hit/miss) selon la taille et la localité.
Conseils:
  • Favorisez la localité (parcours séquentiels, structures contiguës).
  • Réduisez la taille de travail active pour rester dans les caches.
  • Regroupez les E/S pour amortir les accès SSD/réseau plus lents.
Ordres de grandeur

Les caches (L1/L2/L3) sont des mémoires très rapides mais petites; la RAM est plus lente mais grande; le SSD et le réseau sont beaucoup plus lents. La localité (accès séquentiels/contigus) améliore les taux de succès dans les caches.

Les caches exploitent deux idées simples : localité spatiale (si on lit une adresse, on lira probablement la suivante) et localité temporelle (un même bloc est relu bientôt). Écrire des boucles qui parcourent les données dans l’ordre naturel ou regrouper les structures utilisées ensemble maximise cet effet. Quand ce n’est pas possible, le logiciel peut amorcer des préchargements (prefetch) ou utiliser des algorithmes pensés pour réduire les allers-retours vers la mémoire principale.

#Checklist de révision express

  • Être capable de citer un exemple concret de ressource matérielle pour chaque couche logicielle (ex. pilote GPU ↔ carte graphique, socket ↔ carte réseau).
  • Savoir expliquer le rôle de l’OS en trois verbes : « abstraire », « arbitrer », « isoler ».
  • Retenir deux métriques de performance par composant : latence pour la RAM et le SSD, débit pour le réseau, fréquence/IPC pour le CPU.
  • Répondre à la question « que se passe-t-il si… » pour quelques pannes simples : perte d’un pilote, disque absent, processus bloqué.
Astuce d’examen

On peut souvent structurer une réponse en trois couches : matériel (composants physiques), noyau (interfaces et arbitrage) et logiciel utilisateur (outils visibles). Un schéma simple avec ces trois boîtes suffit à clarifier beaucoup de sujets.