Comment agit-on sur la mémoire de son PC avec quelques lignes de Rust ou de NodeJS ? Comment un processus est capable de bouger les électrons qu’il faut pour afficher un hello world ou stocker un fichier ?

Il y a de nombreuses couches imbriquées pour permettre cela comme le montre le schéma. Cette page va passer en revue les plus importantes.

Transistors, portes logiques et composantes de mémoire/d’arithmétique

Les portes logiques sont des arrangements de transistors permettant d’implémenter de la logique booléenne (AND, NOT, OR, XOR etc): Si la sortie est activée le courant passe par les transistors.

transistorexemples de porte logiques|200

On peut composer ces portes logiques pour former des composants permettant d’exécuter des opérations arithmétiques. Le chemin critique d’un composant est le chemin le plus long entre deux points du circuit.

micro-architecture

Une micro architecture désigne un circuit fabriqué avec des composants contenus dans un processeur. Parmi ces composants on va retrouver la banque de registres et l’ALU qui sont le strict minimum pour un processeur.

On peut connaître sa micro-architecture avec la commande lscpu

Exemple de micro architecture

ISA

L’Instruction Set Architecture définit la liste des instructions que la micro architecture peut comprendre (x64, ARM, MIPS etc.), c’est ce que les compilateurs vont cibler quand vous compilez votre code.

IMPORTANT

Il est important de noter qu’une ISA peut être supportée plusieurs micro-architectures, il s’agit concrètement d’une API