- Apprendre
- Informatique et numérique
- Informatique
- Informatique : données, algorithmes, Internet et IA
- Fonctionnement des ordinateurs
Fonctionnement des ordinateurs et exécution des programmes
DébutantUnité 3 sur 7 de la formation Formation : Informatique : données, algorithmes, Internet et IA
Ce que tu vas apprendre
- Identifie les principaux composants matériels d’un ordinateur, explique le principe du programme enregistré sur lequel repose l’architecture de von Neumann et décris comment les bus et les périphériques d’entrée et de sortie relient l’ensemble.
- Identifie les principaux composants d’un ordinateur et le principe du programme enregistréDistingue le matériel du logiciel et décris l’architecture de von Neumann : un processeur, une mémoire commune aux instructions et aux données, des entrées et des sorties, ainsi que les connexions entre ces éléments.
- Explique comment les bus transportent les adresses, les données et les signaux de contrôleDécris les parties du bus système consacrées aux adresses, aux données et au contrôle, suis une lecture et une écriture en mémoire, et calcule comment la largeur du bus limite la mémoire adressable et la vitesse de transfert.
- Classe les périphériques d’entrée et de sortie et explique comment ils sont reliés au processeurClasse les périphériques selon leur rôle, explique la conversion entre signaux analogiques et données numériques, et décris comment les contrôleurs, les pilotes, les interruptions et l’accès direct à la mémoire permettent à des périphériques lents de fonctionner avec un processeur rapide.
- Identifie les principaux composants d’un ordinateur et le principe du programme enregistré
- Montre comment les transistors et les portes logiques calculent avec des bits, nomme les composants du processeur, suis le cycle de lecture-décodage-exécution et explique ce qui rend un processeur plus rapide qu’un autre.
- Utilise des portes logiques pour comprendre comment le matériel effectue des calculs sur des bitsLis les tables de vérité des portes logiques de base, détermine la sortie d’un petit circuit et explique comment des portes construites à partir de transistors additionnent des nombres et stockent des bits.
- Nomme les composants du processeur et indique le rôle de chacunDécris l’unité de commande, l’unité arithmétique et logique, les registres généraux et spécialisés, l’horloge et les cœurs, ainsi que le rôle de chacun pendant l’exécution d’un programme.
- Suis le cycle de lecture-décodage-exécutionSuis les étapes que le processeur répète pour chaque instruction, observe les registres pendant l’exécution d’un court programme et explique comment les sauts et les interruptions modifient la suite de l’exécution.
- Explique ce qui rend un processeur plus rapideCompare les effets de la fréquence d’horloge, du nombre de cœurs, de la taille de la mémoire cache et du pipeline d’instructions, et estime comment chacun modifie le temps nécessaire à une tâche.
- Utilise des portes logiques pour comprendre comment le matériel effectue des calculs sur des bits
- Décris le code machine et les jeux d’instructions, lis un court programme en langage d’assemblage et explique comment les compilateurs, assembleurs, éditeurs de liens et interpréteurs permettent d’exécuter un programme à partir du code source.
- Lis du code machine et du langage d’assemblageExplique ce que contient une instruction machine, pourquoi un jeu d’instructions lie les programmes à une famille de processeurs et comment le langage d’assemblage rend le code machine lisible.
- Explique comment les compilateurs et les interpréteurs permettent d’exécuter des programmes à partir du code sourceCompare la compilation et l’interprétation, suis les étapes qui mènent d’un fichier source à un exécutable et explique le bytecode, les machines virtuelles et pourquoi un même programme peut fonctionner sur différents ordinateurs.
- Lis du code machine et du langage d’assemblage
- Compare la mémoire principale aux différents types de mémoire secondaire, explique la hiérarchie mémoire et la mise en cache, et choisis un support de stockage adapté à une tâche.
- Décris la mémoire principale et son adressageExplique la RAM et la ROM, la volatilité, les adresses d’octets et les unités de capacité, ainsi que la nécessité de placer un programme en mémoire principale pour l’exécuter.
- Compare les technologies de mémoire secondaireExplique comment les disques durs, SSD, supports flash, disques optiques, bandes magnétiques et le stockage dans le cloud conservent les données, et choisis un support selon sa capacité, sa vitesse, son coût, sa durabilité et sa portabilité.
- Explique la hiérarchie mémoire et la mise en cacheClasse les niveaux, des registres au stockage d’archives, selon leur vitesse, leur taille et leur coût ; explique pourquoi les mémoires caches fonctionnent et calcule l’effet des succès et des défauts de cache sur le temps d’accès moyen.
- Décris la mémoire principale et son adressage
- Décris le rôle d’un système d’exploitation, le démarrage d’un ordinateur et la façon dont le système d’exploitation charge les programmes en mémoire, les exécute sur le processeur et les isole les uns des autres.
- Décris le rôle du système d’exploitationExplique comment le système d’exploitation gère le processeur, la mémoire, le stockage et les périphériques, fournit une interface utilisateur et un système de fichiers, et protège les utilisateurs et les programmes.
- Suis le démarrage d’un ordinateur et l’exécution d’un programmeSuis la séquence de démarrage, puis le chargement et le lancement d’un programme par le système d’exploitation, et explique comment la mémoire virtuelle isole les programmes et leur permet d’utiliser plus de mémoire que la quantité installée.
- Décris le rôle du système d’exploitation
Fonctionnement des ordinateurs : cours
1Les composants d’un ordinateur et leurs liaisons
Un ordinateur devient plus facile à comprendre lorsque tu distingues les rôles de ses composants. Les entrées apportent les données, le processeur suit les instructions enregistrées, la mémoire fournit le contenu nécessaire au travail et les sorties présentent les résultats. Les connexions comptent autant que les composants : suis une adresse, une valeur et un signal de contrôle pour comprendre comment un processeur accède à la mémoire et aux périphériques, puis découvre comment les périphériques plus lents demandent une intervention.
1.1 Les composants qui font fonctionner un ordinateur
Un ordinateur reçoit des entrées, suit des instructions pour les traiter, stocke des données et produit des sorties. Ces rôles s’appliquent à un ordinateur portable comme à un contrôleur caché dans un lave-linge. La différence tient à la tâche et aux équipements qui lui sont associés.
Composants physiques et programmes
Le matériel informatique est constitué des équipements physiques. Le logiciel comprend les programmes et les données qu’ils manipulent. Le processeur est la puce de traitement, et non tout le boîtier de l’ordinateur. Une carte mère le relie à la RAM, au stockage, à un processeur graphique, à l’alimentation et aux ports des périphériques. Le processeur graphique s’occupe du dessin et d’autres tâches qui appliquent des opérations similaires à de nombreuses valeurs. Un téléphone réunit de nombreuses fonctions de ce type dans un système sur puce (SoC).
La RAM contient les instructions et les données utilisées à présent. Un support de stockage conserve les programmes et les fichiers enregistrés sans alimentation. Dans un ordinateur décrit comme ayant 16 Go de mémoire et un SSD de 512 Go, la première capacité désigne la RAM et la seconde le stockage. Un support de plus grande capacité ne fournit pas davantage de RAM de travail.
Un programme stocké sous forme de données
L’architecture de von Neumann comprend un processeur, une mémoire principale contenant à la fois les instructions et les données, des périphériques d’entrée-sortie et des bus qui les relient. John von Neumann a décrit cette architecture dans son « First Draft of a Report on the EDVAC » de 1945. Son idée centrale est le programme enregistré : les instructions sont des valeurs binaires en mémoire, prêtes à être lues par le processeur.
Les machines antérieures comme ENIAC étaient configurées pour leurs tâches à l’aide d’interrupteurs et de câbles. Le chargement d’un nouveau programme permet à une machine à programme enregistré de changer de tâche sans modifier son câblage. Le Manchester Baby a exécuté un programme dans une mémoire électronique réinscriptible le 21 juin 1948.
La mémoire n’attache pas de signification à chaque suite de bits. L’octet 01000001 peut représenter le nombre 65, la lettre ASCII « A » ou une partie d’une instruction. Ce que le processeur ou le programme fait de la suite détermine sa signification. Lors de la lecture d’une instruction, le processeur traite la suite de bits lue comme une instruction.
Pourquoi le processeur peut attendre
Les instructions et les données partagent le chemin entre le processeur et la mémoire principale. La mémoire les fournit aussi plus lentement que le processeur ne peut les utiliser. Cette restriction est le goulot d’étranglement de von Neumann. Un processeur rapide peut donc passer du temps à attendre la valeur suivante. De petites mémoires caches rapides conservent des copies utiles près du processeur et réduisent beaucoup de ces attentes.
| Architecture | Instructions et données | Conséquence utile |
|---|---|---|
| Von Neumann | Partagent la mémoire principale et son chemin d’accès | Une seule mémoire contient un mélange variable de code et de données. |
| Harvard | Disposent de mémoires et de chemins distincts | Une instruction et une donnée peuvent être lues ensemble. |
Les petits microcontrôleurs et processeurs de signal utilisent souvent une architecture Harvard. Les processeurs polyvalents modernes combinent les deux principes : une mémoire principale partagée, mais des mémoires caches de niveau 1 distinctes pour les instructions et les données.
Des ordinateurs dans d’autres appareils
Un système embarqué accomplit une tâche précise à l’intérieur d’un appareil plus grand. Un thermostat lit un capteur de température, traite la mesure et commande le chauffage. Son programme enregistré reste généralement dans une mémoire non volatile. Les rôles du processeur, de la mémoire et des entrées-sorties sont toujours présents, même sans clavier, écran ni système d’exploitation complet pour ordinateur de bureau.
Points clés
- Le matériel informatique est constitué d’équipements physiques ; le logiciel fournit les programmes et les données.
- Le processeur est un composant distinct de la RAM, du stockage et du boîtier de l’ordinateur.
- Un ordinateur à programme enregistré lit des instructions binaires conservées en mémoire.
- Une suite de bits reçoit sa signification de la façon dont elle est utilisée.
- Les mémoires caches réduisent l’attente causée par le goulot d’étranglement entre le processeur et la mémoire.
1.2 Comment circulent les adresses, les valeurs et les commandes
Pour accéder à la mémoire, un processeur a besoin de trois éléments : un emplacement, la valeur à transférer et une commande indiquant à la mémoire ce qu’elle doit faire. Distinguer ces rôles facilite le suivi d’une transaction sur le bus.
Trois rôles sur un bus système classique
Un bus est une voie de communication partagée. Dans un bus système parallèle classique, plusieurs fils ou pistes de carte électronique transportent des bits en même temps.
| Partie du bus | Ce qu’elle transporte | Sens lors d’un accès du processeur à la mémoire |
|---|---|---|
| Bus d’adresses | L’emplacement à utiliser | Du processeur vers la mémoire ou un périphérique |
| Bus de données | Une instruction ou une donnée | Vers le processeur pour une lecture ; depuis le processeur pour une écriture |
| Bus de contrôle | Signaux de lecture, d’écriture, de synchronisation et d’interruption | Dépend du signal |
Une adresse désigne un emplacement ; ce n’est pas la valeur qui y est stockée. L’adresse 200 peut contenir 7 aujourd’hui et 9 plus tard sans changer d’adresse. Une boîte aux lettres numérotée offre une comparaison utile : le numéro désigne la boîte, tandis que son contenu peut changer.
Suivre une lecture et une écriture
Pour lire l’adresse 200, le processeur place 200, soit 11001000 en binaire, sur le bus d’adresses et envoie une commande de lecture sur le bus de contrôle. La mémoire renvoie la valeur à cet emplacement, ici 7, sur le bus de données. Le processeur la copie dans un registre.
Pour écrire 9 à l’adresse 201, le processeur place 201 sur le bus d’adresses, 9 sur le bus de données et une commande d’écriture sur le bus de contrôle. La mémoire remplace le contenu de l’emplacement 201. Envoyer 201 sur le bus de données transmettrait la mauvaise valeur ; l’adresse et le contenu ont des rôles différents.
La largeur d’adresse limite le nombre d’emplacements
Avec bits d’adresse, il existe adresses différentes. Si chaque adresse désigne un octet, c’est aussi le nombre d’octets adressables.
- 16 bits donnent adresses, soit 64 KiB.
- 32 bits donnent adresses, soit 4 GiB.
- Passer de 20 à 21 bits double la capacité de 1 MiB à 2 MiB.
Chaque bit supplémentaire double le nombre de combinaisons. Doubler le nombre de bits de 16 à 32 multiplie le nombre d’emplacements par ; cela ne fait pas que le doubler. Ce calcul donne une limite d’adressage, et non la quantité de RAM réellement installée.
La largeur des données limite chaque transfert
Une voie de données de 64 bits transporte 8 octets en un transfert. Une voie de 8 bits nécessite quatre transferts pour transporter une valeur de 4 octets. La bande passante mesure la quantité de données qui peut être transférée par seconde :
À 1 milliard de transferts par seconde, une voie de 8 octets transporte 8 milliards d’octets par seconde, soit 8 Go/s. La largeur d’adresse détermine le nombre d’emplacements qui peuvent être désignés ; la largeur des données détermine la quantité transférée à la fois.
Un mot est la taille de données qu’un processeur traite naturellement, généralement 32 ou 64 bits. Un processeur 64 bits n’exige pas que chaque connexion possède 64 fils. Sa plage d’adresses effectivement utilisée peut aussi employer moins de 64 bits.
Les liaisons modernes gardent les mêmes rôles
Les canaux mémoire, PCI Express et USB remplacent un bus partagé unique par plusieurs liaisons. PCI Express et USB sont des liaisons série : les bits circulent les uns après les autres sur des paires de fils rapides. Les adresses, les valeurs et les commandes sont regroupées dans des messages. Elles désignent toujours une destination, transportent le contenu et coordonnent le transfert.
Points clés
- Une adresse désigne un emplacement ; les données sont le contenu transféré.
- Les commandes de lecture et d’écriture circulent sous forme de signaux de contrôle.
- Une adresse sur n bits possède 2ⁿ valeurs possibles ; l’adressage par octet donne une capacité de 2ⁿ octets.
- Chaque bit d’adresse supplémentaire double la plage d’adresses.
- La bande passante est égale au nombre d’octets par transfert multiplié par le nombre de transferts par seconde.
- Les liaisons série transportent les informations d’adressage, de données et de contrôle dans des messages.
1.3 Faire entrer et sortir les données d’un ordinateur
Un périphérique d’entrée fournit des données ; un périphérique de sortie présente un résultat ou agit en fonction de celui-ci. Le classement décrit le rôle du périphérique dans le système. Il ne décrit pas la complexité de son fonctionnement interne.
Classer l’action
Les claviers, caméras, microphones, lecteurs de codes-barres et capteurs fournissent des entrées. Les écrans, imprimantes, haut-parleurs et actionneurs fournissent des sorties. Un actionneur modifie un élément physique, par exemple en ouvrant une vanne ou en faisant tourner un moteur.
Certains périphériques font les deux. Un écran tactile détecte les contacts et affiche des images. Un casque-micro combine un microphone et des haut-parleurs. Une carte réseau envoie et reçoit des données. Les supports de stockage effectuent aussi des lectures et des écritures par l’intermédiaire de contrôleurs d’E/S, mais leur rôle principal est de conserver les données : ils forment donc la catégorie distincte de la mémoire secondaire.
Une imprimante peut contenir un processeur qui transforme une page en points imprimables. Elle reste un périphérique de sortie en raison de ce qu’elle fait pour l’ordinateur. Une souris sans fil fournit des entrées comme une souris filaire.
Transformer des signaux continus en nombres
Le son et la température varient de façon continue : ce sont des signaux analogiques. Un convertisseur analogique-numérique (ADC) mesure un signal à intervalles réguliers et encode les échantillons sous forme de nombres. Un convertisseur numérique-analogique (DAC) transforme des valeurs numériques en une sortie analogique, comme le signal qui commande un haut-parleur.
Pour un canal audio échantillonné 44 100 fois par seconde avec 16 bits par échantillon :
C’est le débit des données brutes des échantillons. Chaque seconde contient 44 100 mesures, et chaque mesure nécessite 16 bits. L’échantillonnage et l’encodage permettent à un ordinateur de stocker et de traiter l’enregistrement.
Contrôleur matériel, pilote logiciel
Les périphériques se connectent par des ports ou des liaisons sans fil comme USB, HDMI, Bluetooth ou Wi-Fi. Un contrôleur de périphérique est un circuit qui gère la communication de bas niveau et met à disposition des registres que le processeur peut lire ou modifier. Un pilote de périphérique est un logiciel qui traduit les demandes du système d’exploitation en commandes pour le périphérique. Le contrôleur est du matériel ; le pilote est du logiciel.
Laisser les périphériques demander une intervention
Avec la scrutation, le processeur vérifie régulièrement un registre d’état. C’est simple, mais un périphérique qui est généralement inactif peut entraîner de nombreuses vérifications sans résultat utile.
Avec une interruption, le contrôleur signale qu’une intervention est nécessaire. Dans le modèle simple du cycle d’instruction, le processeur termine l’instruction en cours, sauvegarde l’état interrompu et exécute un gestionnaire d’interruption. Il restaure ensuite l’état sauvegardé et continue. Un appui sur une touche ou la fin d’une lecture sur disque peut déclencher cette séquence.
Les personnes et de nombreux périphériques agissent bien plus lentement qu’un processeur. Une personne ne tape que quelques caractères par seconde, tandis qu’un processeur peut exécuter des milliards d’instructions par seconde. Les interruptions permettent au processeur de travailler entre les événements.
Pour un transfert important, l’accès direct à la mémoire (DMA) permet à un périphérique ou à un contrôleur DMA de déplacer un bloc directement vers la RAM ou depuis celle-ci. Le processeur prépare l’opération et travaille à autre chose. Une interruption de fin lui indique quand le bloc est prêt. L’accès direct à la mémoire évite au processeur de copier chaque octet ; il participe toutefois encore à la préparation et à la conclusion du transfert.
Points clés
- Classe les entrées et les sorties selon l’action effectuée pour l’ordinateur.
- Un convertisseur analogique-numérique encode une entrée analogique échantillonnée ; un convertisseur numérique-analogique produit une sortie analogique.
- Un contrôleur est du matériel, tandis qu’un pilote est du logiciel.
- La scrutation vérifie régulièrement l’état ; une interruption signale qu’une intervention est nécessaire.
- L’accès direct à la mémoire transfère des blocs entre un périphérique et la RAM sans que le processeur copie chaque octet.
2Comment un processeur effectue son travail
À l’intérieur d’un processeur, des circuits simples se combinent pour former une machine capable de suivre un programme. Commence par les portes qui agissent sur les bits, puis identifie les registres et les signaux de contrôle qui font progresser une instruction dans le processeur. Un court suivi d’exécution rend les changements d’état visibles. La fréquence d’horloge, les cœurs, les mémoires caches et les pipelines expliquent pourquoi un même travail utile peut prendre des durées différentes selon les systèmes.
2.1 Des interrupteurs aux calculs
Les opérations les plus élémentaires d’un ordinateur proviennent de circuits qui passent d’un niveau de signal à l’autre entre deux niveaux possibles. Une tension haute représente 1 et une tension basse représente 0. Ces niveaux représentent des bits ; une puce ne reconnaît pas la signification d’une photo ou d’une phrase.
Les portes transforment des bits d’entrée en une sortie
Un transistor fonctionne comme un interrupteur commandé électroniquement. De petits groupes de transistors forment des portes logiques, chacune suivant une règle fixe pour ses entrées et sa sortie. Une table de vérité indique chaque combinaison d’entrées et sa sortie. Avec deux entrées, il existe quatre combinaisons ; en général, entrées donnent lignes.
La porte NON inverse son unique entrée. Les portes à deux entrées se comportent ainsi :
| A | B | ET | OU | OU exclusif | NON-ET | NON-OU |
|---|---|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 | 1 | 1 |
| 0 | 1 | 0 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 | 1 | 0 |
| 1 | 1 | 1 | 1 | 0 | 0 | 0 |
La porte ET exige que les deux entrées valent 1. La porte OU exige qu’au moins une entrée soit à l’état haut, y compris lorsque les deux le sont. La porte OU exclusif exige des entrées différentes. NON-ET inverse ET ; NON-OU inverse OU. Comprendre OU comme « l’une mais pas les deux » revient à la confondre avec OU exclusif.
Pour évaluer (A AND B) OR (NOT C) avec A = 1, B = 0, C = 0, pars des entrées et progresse vers la sortie. A AND B donne 0. NOT C donne 1. Enfin, 0 OR 1 donne 1. Note les sorties intermédiaires pour que la dernière porte reçoive les bonnes entrées.
Les portes additionnent des chiffres binaires
Un demi-additionneur reçoit deux bits. Sa sortie de somme est un OU exclusif et sa sortie de retenue est un ET. Pour deux entrées valant 1, le bit de somme vaut 0 et le bit de retenue vaut 1 : le résultat sur deux bits est 10, soit 2.
Un additionneur complet reçoit aussi une retenue de la colonne précédente. En chaînant ces circuits, une unité arithmétique et logique peut additionner des nombres plus longs. Suis l’addition de 0110 et 0011 en partant de la droite :
- La colonne de droite donne 1, sans retenue.
- La colonne suivante contient deux bits valant 1 : écris 0 et retiens 1.
- La suivante contient 1, 0 et la retenue 1 : écris 0 et retiens 1.
- Celle de gauche contient 0, 0 et la retenue 1 : écris 1.
Le résultat est 1001, soit 9. Une retenue appartient à la colonne suivante ; l’oublier change la valeur.
Les portes peuvent conserver un bit
Une rétroaction consiste à renvoyer la sortie d’un circuit vers son entrée. Des portes NON-ET ou NON-OU couplées de façon croisée forment un verrou qui conserve un bit tant que l’alimentation reste active. Une bascule prend en compte un nouveau bit à un front d’horloge, ce qui synchronise les mises à jour avec l’horloge du processeur. Les registres utilisent des circuits de stockage commandés par l’horloge. Les cellules de cache SRAM utilisent des circuits de type verrou ; la DRAM stocke des charges dans des condensateurs.
Les portes NON-ET et NON-OU sont chacune universelles : chaque type de porte permet à lui seul de construire toute fonction logique. Relier les deux entrées d’une porte NON-ET à A donne A NAND A, qui fonctionne comme NON A.
Ce sont des couches d’abstraction. Les transistors construisent les portes ; les portes construisent les additionneurs, les registres et les circuits de commande ; ceux-ci construisent un processeur qui exécute des instructions. Une personne qui programme peut utiliser la couche des instructions sans concevoir les interrupteurs qui se trouvent en dessous.
Points clés
- Les tables de vérité énumèrent toutes les combinaisons d’entrées.
- OU inclut le cas où les deux entrées valent 1 ; OU exclusif l’exclut.
- Évalue un circuit en passant par les sorties intermédiaires de ses portes.
- Un demi-additionneur produit une somme avec OU exclusif et une retenue avec ET.
- La rétroaction permet de stocker des bits ; les fronts d’horloge commandent les mises à jour des bascules.
- NON-ET et NON-OU suffisent chacune à construire toute fonction logique.
2.2 Les composants de travail du processeur
Le processeur exécute les instructions d’un programme. Son unité de commande dirige le travail, son unité arithmétique et logique effectue les opérations et ses registres contiennent les valeurs nécessaires immédiatement. Une horloge coordonne les changements dans ces circuits.
Diriger et effectuer le travail
L’unité de commande lit une instruction, la décode et émet des signaux de contrôle. Elle peut demander à la mémoire de renvoyer une valeur, sélectionner deux entrées pour l’UAL et autoriser un registre à stocker le résultat. Elle coordonne l’opération ; l’UAL effectue le calcul arithmétique ou logique.
Les opérations de l’UAL comprennent l’addition, la soustraction, les comparaisons, les décalages de bits et les opérations de portes comme ET et OU exclusif. Les résultats mettent aussi à jour des indicateurs d’état. Un indicateur de zéro signale un résultat nul ; un indicateur de signe négatif enregistre un résultat négatif. Un branchement peut tester un indicateur pour choisir l’instruction suivante.
Les registres conservent l’état de travail immédiat
Les registres sont de très petits emplacements de stockage rapides à l’intérieur du processeur. Un registre général contient généralement un mot. Par exemple, x86-64 fournit 16 registres généraux pour les entiers, et ARM 64 bits en fournit 31. Les programmes les utilisent pour conserver des valeurs près de l’UAL.
Le modèle pédagogique du processeur rend visibles les rôles suivants :
| Registre | Rôle |
|---|---|
| Compteur ordinal, PC | Adresse de la prochaine instruction à lire |
| Registre d’adresses mémoire, MAR | Adresse de la prochaine lecture ou écriture en mémoire |
| Registre de données mémoire, MDR | Valeur qui vient d’être lue ou qui va être écrite |
| Registre d’instruction, CIR | Instruction en cours de décodage et d’exécution |
| Accumulateur, ACC | Valeur de travail et résultat de l’UAL dans la machine pédagogique |
Le MDR est aussi appelé registre tampon mémoire (MBR). Le CIR est aussi appelé registre d’instruction (IR). Les puces réelles organisent ces tâches de façon plus complexe, mais le modèle permet de suivre le déplacement d’une instruction et de ses données.
Le PC contient une adresse, et non le nombre total d’instructions terminées. Un saut peut le faire revenir en arrière pour répéter une boucle. Le MAR et le MDR diffèrent aussi : une adresse comme 10 va dans le MAR ; la valeur stockée à l’adresse 10 va dans le MDR.
Un cycle d’horloge est une étape de synchronisation
La fréquence d’horloge compte les impulsions par seconde, mesurées en hertz (Hz). Une horloge à 3 GHz produit 3 milliards de cycles par seconde. La durée d’un cycle est :
Une impulsion permet à des parties d’un circuit d’avancer. Certaines instructions nécessitent plusieurs étapes de synchronisation, et les processeurs modernes font se chevaucher le traitement de plusieurs instructions.
Plusieurs cœurs de traitement
Un cœur dispose des ressources de commande, de calcul, de registres et de mémoire cache nécessaires pour exécuter un flux d’instructions. Quatre cœurs peuvent exécuter quatre flux à la fois. Un programme en profite lorsque son travail peut être réparti entre eux ; posséder quatre cœurs ne répartit pas automatiquement chaque tâche.
Un processeur graphique possède de nombreuses unités de traitement plus petites, adaptées à l’exécution d’opérations similaires sur de nombreuses données. Le dessin de pixels, le traitement vidéo et certains calculs d’apprentissage automatique prennent cette forme. Un processeur central convient à une plus grande diversité d’instructions et de décisions.
Pense à une cuisine : l’unité de commande attribue les actions, l’UAL les effectue, les registres conservent les ingrédients à portée de main et la mémoire en fournit d’autres. Le processeur suit mécaniquement des suites de bits ; c’est le programme qui leur donne un sens utile.
Points clés
- L’unité de commande coordonne les opérations ; l’UAL effectue les opérations arithmétiques et logiques.
- Les indicateurs enregistrent des états comme un résultat nul pour les branchements ultérieurs.
- PC, MAR, MDR, CIR et ACC contiennent différentes parties de l’état de travail actuel.
- Un cycle d’horloge est une étape de synchronisation, pas nécessairement une instruction terminée.
- Plusieurs cœurs facilitent le travail qui peut être exécuté en parallèle.
2.3 Suis une instruction dans le processeur
Le cycle de lecture-décodage-exécution fait fonctionner ensemble les composants du processeur pour exécuter un programme. Chaque cycle lit une instruction, détermine son opération et l’effectue. Un suivi d’exécution consigne les changements des registres et de la mémoire afin que chaque résultat ait une cause visible.
Lire l’instruction
Dans le processeur simple, la lecture suit cette séquence :
- Copier le PC dans le MAR.
- Placer l’adresse sur le bus d’adresses et envoyer un signal de lecture en mémoire.
- Recevoir l’instruction dans le MDR par le bus de données.
- La copier dans le CIR.
- Faire avancer le PC jusqu’à l’instruction suivante.
Dans la machine pédagogique, chaque instruction occupe un emplacement, donc le PC augmente de 1. Un processeur dont la mémoire est adressable par octet avance de la longueur de l’instruction en octets. Pendant l’exécution, le PC pointe déjà après l’instruction lue.
Décoder, puis exécuter
L’unité de commande sépare le code opération, qui précise l’opération, de l’opérande, qui fournit une valeur, un registre ou une adresse. Elle envoie ensuite les signaux nécessaires à l’exécution de l’instruction. Un chargement lit des données, une addition utilise l’UAL, un stockage écrit des données et un saut modifie le PC. Certaines descriptions font de l’écriture du résultat une étape distincte appelée écriture du résultat.
Suivre l’exécution d’un programme complet
La machine pédagogique possède un accumulateur. Ici, LOAD, ADD et STORE utilisent des adresses mémoire comme opérandes.
Address Instruction Data address Value
0 LOAD 10 10 7
1 ADD 11 11 5
2 STORE 12 12 0
3 HALT
Commence avec le PC à 0. La lecture de LOAD 10 fait passer le PC à 1. L’exécution place l’adresse 10 dans le MAR, lit 7 par le MDR et donne à l’ACC la valeur 7. L’opérande 10 désigne un emplacement ; ce n’est pas la valeur chargée.
Ensuite, ADD 11 est lu et le PC devient 2. L’emplacement mémoire 11 fournit 5. L’UAL additionne 7 et 5, laissant 12 dans l’ACC. La lecture de STORE 12 fait passer le PC à 3. L’exécution place l’adresse 12 dans le MAR et la valeur 12 dans le MDR, puis écrit 12 à cet emplacement. L’ACC reste à 12. Enfin, la lecture de HALT fait passer le PC à 4 et l’exécution arrête la machine pédagogique. Quatre instructions ont été exécutées.
Les branchements remplacent l’adresse suivante
JUMP 0 place 0 dans le PC pendant l’exécution, quelle que soit sa valeur précédente. JUMPZ 6 ne saute que si l’ACC vaut zéro. Si cette instruction a été lue à l’adresse 4, la lecture fait d’abord passer le PC à 5. L’exécution donne ensuite au PC la valeur 6 si l’ACC vaut zéro ; sinon, le PC reste à 5. C’est ainsi qu’une séquence peut choisir un chemin ou répéter une boucle.
Interruptions et processeurs réels
Dans ce modèle, le processeur vérifie les interruptions à la fin d’une instruction. Pour en traiter une, il sauvegarde le PC et les autres registres de travail, exécute le gestionnaire, puis restaure l’état sauvegardé. Le programme interrompu reprend avec ses propres valeurs et sa prochaine adresse.
Un processeur ne lit pas tout un programme source à la fois. Il exécute des instructions machine, souvent plusieurs pour une seule instruction source. Les processeurs modernes font se chevaucher et réordonnent le travail interne tout en préservant les résultats attendus du programme.
Points clés
- La lecture place l’instruction dans le CIR en passant par le MAR et le MDR.
- Le PC avance pendant la lecture ; l’exécution d’un saut peut remplacer cette adresse.
- Un opérande qui est une adresse doit être utilisé pour lire la valeur stockée à cette adresse.
- Dans cette machine pédagogique, STORE écrit l’ACC en mémoire sans modifier l’ACC.
- Le traitement d’une interruption sauvegarde et restaure l’état de travail interrompu.
- Les processeurs réels font se chevaucher le travail tout en préservant les résultats attendus du programme.
2.4 Pourquoi un programme se termine plus tôt
Les performances d’un processeur dépendent du travail nécessaire à un programme et de la vitesse à laquelle l’ordinateur l’accomplit. La fréquence d’horloge, le travail utile par cycle, le temps d’attente et les possibilités de travail parallèle comptent tous.
Fréquence d’horloge et nombre fixe de cycles
Pour une tâche nécessitant un nombre connu de cycles d’horloge :
Une tâche nécessitant 6 milliards de cycles prend 2 secondes à 3 GHz et 1,5 seconde à 4 GHz. La comparaison suppose un nombre de cycles fixe. Avec des processeurs de conception différente, un programme peut nécessiter un nombre différent de cycles. Une puce à 3,5 GHz peut donc surpasser une puce à 4 GHz en terminant davantage d’instructions utiles par cycle.
Des fréquences d’horloge plus élevées consomment aussi davantage d’énergie et produisent de la chaleur. Le bridage thermique réduit la fréquence d’horloge lorsqu’un processeur chauffe trop. Cela aide à comprendre pourquoi les gains de performance proviennent d’autres améliorations que la seule augmentation des gigahertz.
Les cœurs ne répartissent que la partie parallélisable
Supposons qu’une tâche prenne 10 secondes sur un cœur. Deux secondes doivent se dérouler en séquence ; huit secondes peuvent être réparties également entre quatre cœurs. En ignorant le surcoût de coordination :
Diviser les 10 secondes entières par quatre donne 2,5 secondes, mais répartit à tort le travail séquentiel. Même un nombre illimité de cœurs ne peut pas supprimer ces deux secondes. Plusieurs cœurs aident aussi des programmes distincts à s’exécuter en même temps, même lorsque chaque programme n’utilise qu’un cœur.
Un pipeline fait se chevaucher les étapes
Dans un pipeline à trois étapes, une instruction s’exécute pendant que la suivante est décodée et qu’une autre est lue. Chaque instruction passe toujours par les trois étapes. Le gain est un plus grand nombre d’instructions terminées pendant une même durée.
Si chaque étape prend un cycle, dix instructions indépendantes prennent 30 cycles sans chevauchement. Un pipeline idéal nécessite trois cycles pour terminer la première instruction et un cycle supplémentaire pour chacune des instructions restantes :
Un branchement peut rendre inutiles des instructions déjà lues. Abandonner ce travail coûte des cycles ; les processeurs prédisent donc les branchements. Les dépendances réelles et les attentes de la mémoire empêchent aussi un pipeline d’atteindre toujours son débit idéal.
Alimenter le processeur en données
Une mémoire cache conserve à proximité des copies d’instructions et de données. Une capacité de cache utile plus grande peut réduire les accès à la RAM, en particulier lorsqu’un programme utilise de façon répétée un ensemble de travail qui ne tenait pas auparavant dans le cache. Si cet ensemble y tient déjà, une capacité supplémentaire peut apporter peu.
La bande passante mémoire limite la vitesse d’arrivée de nombreuses valeurs. La vitesse du stockage compte lors de l’ouverture de fichiers ou du lancement d’applications : passer d’un disque dur à un SSD peut réduire l’attente même si le processeur reste inchangé. La taille des mots et les instructions prises en charge par un processeur influent aussi sur les charges de travail qui lui conviennent.
Davantage de transistors, des usages différents
La loi de Moore décrit l’observation faite par Gordon Moore en 1965 et révisée en 1975, selon laquelle le nombre de transistors doublait environ tous les deux ans. Cette tendance historique n’est pas une règle selon laquelle les programmes deviennent deux fois plus rapides à intervalles fixes. Comme la miniaturisation a ralenti, les concepteurs de puces ont utilisé les transistors supplémentaires pour les cœurs, les mémoires caches, les processeurs graphiques et les accélérateurs spécialisés. Une comparaison utile demande combien de temps prend la même tâche dans les mêmes conditions.
Points clés
- Compare le temps d’exécution de la tâche réelle, et pas seulement la fréquence d’horloge.
- Davantage de cœurs ne réduisent que le travail qui peut être réparti entre eux.
- Le pipeline d’instructions augmente le débit en faisant se chevaucher les étapes des instructions.
- La mémoire cache, la bande passante mémoire, le stockage et la chaleur peuvent limiter le travail utile du processeur.
3Comment les programmes écrits deviennent des instructions machine
Un programme lisible et les instructions qu’exécute un processeur sont deux formes différentes du même travail recherché. Le langage d’assemblage montre les opérations et les branchements individuels ; les compilateurs et les interpréteurs relient le code de haut niveau à ces opérations. Suivre une construction montre pourquoi un fichier source diffère d’un exécutable, pourquoi les bibliothèques comptent et pourquoi le passage d’un logiciel à une autre plateforme peut nécessiter une nouvelle construction ou un environnement d’exécution adapté.
3.1 Lire les instructions exécutées par un processeur
Le code machine est constitué d’instructions binaires destinées à un type particulier de processeur. Le langage d’assemblage écrit ces instructions avec des noms lisibles. Tous deux décrivent des opérations beaucoup plus proches du matériel qu’un langage de haut niveau comme Python ou C.
Opérations et opérandes
Une instruction contient un code opération qui précise ce qu’il faut faire et généralement un ou plusieurs opérandes qui précisent quoi utiliser. Un opérande peut désigner un registre ou une adresse mémoire, ou fournir directement une valeur. Sa signification découle du format défini pour l’instruction.
Prenons un codage pédagogique sur 8 bits. Les quatre premiers bits contiennent un code opération ; les quatre derniers contiennent une adresse. Si LOAD est 0001, alors LOAD 10 devient 0001 1010, car 10 en décimal est 1010 en binaire. Quatre bits de code opération permettent codes opération. Quatre bits d’adresse désignent les emplacements de 0 à 15. Ce codage illustre un format limité ; les autres suivis d’exécution de la machine pédagogique utilisent des instructions écrites avec des adresses plus grandes.
Une architecture du jeu d’instructions (ISA) définit les instructions, les codages et les registres qu’un processeur offre. x86-64, ARM et RISC-V en sont des exemples. Les instructions A64 d’ARM ont une longueur de 32 bits ; les instructions x86-64 vont de 1 à 15 octets. La taille des mots d’un processeur 64 bits ne détermine pas la longueur de chaque instruction.
Une boucle lisible
Un assembleur transforme les mnémoniques et les étiquettes du langage d’assemblage en code machine pour une architecture de jeu d’instructions. Parmi les groupes d’instructions utiles figurent le transfert de données, l’arithmétique et la logique, le contrôle du déroulement et les opérations système ou d’E/S.
Ce programme à accumulateur effectue un compte à rebours à partir de 3. SUB 21 soustrait le contenu de l’adresse 21. JUMPZ effectue un branchement si l’ACC vaut zéro.
0 LOAD 20
1 SUB 21
2 STORE 20
3 JUMPZ 5
4 JUMP 0
5 HALT
20 holds 3; 21 holds 1.
Au premier passage, LOAD lit 3, SUB laisse 2 et STORE enregistre 2. Le test de zéro échoue, donc JUMP 0 démarre un autre passage. Le deuxième passage enregistre 1 et revient en arrière. Le troisième enregistre 0, donc JUMPZ 5 va à HALT.
Les deux premiers passages utilisent cinq instructions chacun. Le dernier en utilise quatre avant HALT, qui compte aussi comme une instruction : . Ne compter que les six lignes écrites fait oublier les exécutions répétées.
Une instruction source, plusieurs instructions machine
Une instruction de haut niveau comme total = price + tax peut devenir des opérations qui chargent une valeur, en ajoutent une autre et stockent le résultat. Les langages de haut niveau expriment les variables, les choix, les boucles et les fonctions sans nommer chaque registre. En langage d’assemblage, chaque instruction écrite correspond généralement à une instruction machine et dépend étroitement de son architecture de jeu d’instructions.
Du code machine pour x86-64 ne peut pas s’exécuter directement comme du code ARM. Le code source peut être recompilé pour ARM, ou une couche de traduction ou d’émulation peut prendre en charge cette incompatibilité.
RISC et CISC
Les architectures RISC comme ARM et RISC-V privilégient des instructions simples et régulières. Beaucoup utilisent des instructions de longueur fixe, mais RISC-V peut mélanger des formes compressées de 16 bits et des instructions standard de 32 bits. Les architectures CISC comme x86 proposent des instructions plus complexes et de longueur variable. Les processeurs x86 modernes décomposent les instructions en opérations internes plus simples. Ces désignations décrivent des approches de conception et ne garantissent pas qu’une machine est plus rapide.
Points clés
- Un code opération choisit une opération ; les opérandes précisent ses entrées ou ses destinations.
- Une architecture de jeu d’instructions définit le contrat du code machine qu’un processeur implémente.
- Un assembleur traduit des mnémoniques lisibles en code machine.
- Les boucles exécutent certaines instructions plusieurs fois : le nombre d’exécutions diffère donc du nombre de lignes.
- Les programmes de haut niveau nécessitent une traduction ou un interpréteur implémenté en code machine.
- RISC et CISC décrivent des styles de jeux d’instructions, avec des exceptions aux règles simples de longueur.
3.2 Du code source au programme en cours d’exécution
Le code source est le texte lisible d’un programme. Un processeur exécute des instructions machine : un outil doit donc faire le lien. La compilation et l’interprétation décrivent des façons de le faire ; de nombreuses implémentations réelles les combinent.
Les outils de traduction
| Outil | Son rôle |
|---|---|
| Assembleur | Traduit le langage d’assemblage en code machine |
| Compilateur | Traduit le code dans une autre forme, souvent du code machine ou du bytecode |
| Interpréteur | Effectue les opérations d’un programme pendant son exécution |
La plupart des compilateurs travaillent avant le démarrage d’un programme. Un compilateur à la volée travaille pendant l’exécution. Un interpréteur est lui-même un programme en code machine : le processeur exécute l’interpréteur, qui effectue les opérations du programme source.
Suivre la construction d’un programme C
La commande clang hello.c -o hello construit un exécutable nommé hello à partir de hello.c. Un outil de construction comme make peut organiser les commandes du compilateur pour la personne qui programme. Les principales étapes sont :
- Prétraitement : traiter les directives comme
#include <stdio.h>, en intégrant les déclarations des fichiers d’en-tête au code source. - Compilation : traduire le code C en opérations de niveau assemblage.
- Assemblage : encoder ces opérations en code machine dans des fichiers objets.
- Édition de liens : relier le code objet et les références aux bibliothèques pour produire un exécutable.
Les fichiers d’en-tête décrivent les interfaces des bibliothèques ; inclure un fichier d’en-tête ne copie pas en soi l’implémentation compilée de la bibliothèque dans le programme. L’édition de liens fournit la connexion à ce code. L’édition de liens statique copie le code de bibliothèque nécessaire dans l’exécutable. L’édition de liens dynamique enregistre les dépendances aux bibliothèques partagées, qui sont chargées et reliées lorsque nécessaire.
L’exécutable cible une architecture de jeu d’instructions et un format de système d’exploitation. La construction pour un Mac ARM et pour un ordinateur Windows x86-64 nécessite donc des constructions natives distinctes. La modification du code source exige aussi de reconstruire un exécutable compilé avant que la modification prenne effet.
Les erreurs surviennent à différentes étapes
Un compilateur peut signaler des erreurs de syntaxe, comme un point-virgule manquant en C, et des erreurs de type lorsque le langage vérifie les types. Une compilation réussie ne prouve pas que le programme résout le bon problème. Une erreur de logique produit un mauvais résultat. Une erreur d’exécution se produit pendant l’exécution du programme, par exemple une division par une valeur d’entrée qui s’avère être zéro.
Un interpréteur simple peut n’atteindre une erreur qu’après l’exécution des instructions précédentes. Python vérifie d’abord la syntaxe d’un fichier entier, mais un nom non défini peut tout de même provoquer une erreur uniquement lorsque l’exécution l’atteint. La seule méthode de traduction ne permet pas de savoir quand chaque type d’erreur est détecté.
Bytecode et machines virtuelles
Java compile le code source en bytecode, des instructions pour la machine virtuelle Java (JVM). Chaque plateforme prise en charge fournit sa propre JVM. Celle-ci peut interpréter le bytecode et compiler à la volée les parties fréquemment utilisées en code machine pour le processeur local. Le bytecode reste portable parce que la JVM propre à chaque plateforme gère les différences matérielles.
CPython compile aussi Python en bytecode et l’exécute avec une machine virtuelle. PyPy utilise un compilateur à la volée, et les moteurs JavaScript des navigateurs utilisent également la compilation à la volée. « Compilé » et « interprété » décrivent des implémentations, et non des propriétés permanentes d’un langage.
Le code natif compilé à l’avance évite généralement de répéter le travail d’interprétation. L’interprétation facilite le cycle de modification et d’exécution, tandis que le bytecode et la compilation à la volée combinent portabilité et optimisation pendant l’exécution. Dans tous les cas, le processeur suit finalement des instructions machine et le système d’exploitation charge le code exécutable nécessaire en mémoire.
Points clés
- Les compilateurs traduisent le code ; les interpréteurs effectuent les opérations pendant l’exécution.
- La construction d’un programme C comprend le prétraitement, la compilation, l’assemblage et l’édition de liens.
- L’édition de liens statique inclut le code des bibliothèques ; l’édition de liens dynamique enregistre les dépendances aux bibliothèques partagées.
- La compilation peut détecter des erreurs de syntaxe tout en laissant des erreurs de logique et d’exécution.
- Le bytecode s’exécute par l’intermédiaire d’une machine virtuelle propre à la plateforme.
- La compilation à la volée traduit pendant l’exécution ; les langages peuvent avoir différentes implémentations.
- Les exécutables natifs dépendent à la fois d’une architecture de jeu d’instructions et d’un format de système d’exploitation.
4Mémoire, stockage et copies rapides
L’endroit où un ordinateur conserve les données influe sur leur survie à une coupure d’alimentation et sur la vitesse à laquelle elles peuvent être utilisées. Compare la RAM de travail aux supports de stockage persistants, puis suis la hiérarchie des registres aux archives. Les choix de stockage dépendent des modes d’accès autant que de la capacité. La mise en cache explique comment un petit stockage rapide peut éviter de nombreux accès lents, et une moyenne pondérée montre à quel point les défauts de cache influent sur le résultat.
4.1 La mémoire de travail et ses adresses
La mémoire principale contient les instructions et les données actuellement disponibles pour le processeur. Pour une application ordinaire stockée sur un SSD, le système d’exploitation commence par charger le code et les données nécessaires dans la RAM. Le processeur lit ensuite les instructions par son système de mémoire et de caches.
RAM, DRAM et SRAM
La mémoire vive (RAM) est une mémoire à accès direct : un emplacement peut être atteint sans passer par tous les emplacements précédents. La RAM de travail ordinaire est volatile ; son contenu est donc perdu sans alimentation. Enregistrer un document copie ses données sur un support de stockage non volatile.
La mémoire principale utilise la DRAM, qui stocke les bits sous forme de charges dans de petits condensateurs. La charge se dissipe, si bien que les cellules ont besoin d’un rafraîchissement, généralement sur un intervalle de 64 ms. La SRAM utilise des circuits de transistors de type verrou qui conservent leur état tant qu’ils sont alimentés. Elle n’a pas besoin de rafraîchissement, mais prend davantage de place et coûte plus cher par bit. Sa vitesse convient aux mémoires caches du processeur.
| Type | Stocke un bit à l’aide de | Rôle habituel | Conserve son contenu sans alimentation ? |
|---|---|---|---|
| DRAM | Une charge dans un condensateur | Mémoire de travail principale | Non |
| SRAM | Un circuit de type verrou | Mémoire cache du processeur | Non |
| Mémoire flash du micrologiciel | Une charge piégée | Instructions de démarrage | Oui |
La mémoire morte (ROM) est une mémoire non volatile associée à des instructions fixes comme le micrologiciel. Les micrologiciels UEFI ou BIOS modernes se trouvent normalement dans une mémoire flash modifiable. La capacité de stockage de fichiers annoncée pour un téléphone est du stockage flash, même lorsqu’une description l’appelle de manière informelle « ROM » ; le téléphone y écrit régulièrement des fichiers.
Un octet possède une adresse
Dans une mémoire adressable par octet, chaque adresse désigne un octet. Un entier de 4 octets commençant à l’adresse décimale 1 000 occupe les emplacements 1 000, 1 001, 1 002 et 1 003. Le prochain emplacement inutilisé est 1 004. Les adresses sont souvent écrites en hexadécimal, comme 0x7FFE0010, car l’hexadécimal représente les suites de bits de manière compacte.
L’adresse indique où se trouvent les octets. Lire le nombre écrit comme adresse est différent de lire la valeur stockée à cette adresse.
Les unités de capacité utilisent deux systèmes
Un octet contient 8 bits. La lettre b minuscule désigne les bits ; la lettre B majuscule désigne les octets.
| Unité décimale | Octets | Unité binaire | Octets |
|---|---|---|---|
| kB | 1 000 | KiB | 1 024 |
| MB | 1 000 000 | MiB | 1 048 576 |
| GB | 1 000 000 000 | GiB | 1 073 741 824 |
| TB | 1 000 000 000 000 | - | - |
Un support vendu pour 1 TB contient octets. En GiB, le nombre est :
Certains systèmes d’exploitation affichent ce nombre binaire avec la notation « GB ». La différence provient de la taille de l’unité ; elle n’indique pas qu’il manque de l’espace.
La capacité diffère de la vitesse du processeur
Davantage de RAM permet de garder prêts à l’emploi simultanément davantage de programmes en cours et de données. Lorsque les données de travail dépassent la capacité de la RAM, le système d’exploitation peut déplacer des pages vers le stockage, ce qui ralentit l’accès. Ajouter de la RAM remédie à ce manque, mais n’augmente pas la fréquence d’horloge du processeur. Supprimer des fichiers enregistrés libère de l’espace de stockage. Fermer des programmes ou des onglets inutiles peut libérer de la RAM de travail.
Points clés
- La RAM de travail est volatile ; l’enregistrement transfère les données vers un stockage non volatile.
- La DRAM nécessite un rafraîchissement ; la SRAM utilise des circuits à verrou et convient aux mémoires caches rapides.
- Le micrologiciel persiste sans alimentation et peut se trouver dans une mémoire flash modifiable.
- Chaque adresse d’une mémoire adressable par octet désigne un octet.
- Le GB décimal et le GiB binaire correspondent à des nombres d’octets différents.
4.2 Choisir un stockage adapté à la tâche
La mémoire secondaire conserve les programmes et les fichiers sans alimentation. Par rapport à la RAM, elle offre davantage de capacité à un coût par octet inférieur, mais son accès est plus lent. Les différentes technologies de stockage font des compromis entre vitesse, coût, portabilité et durabilité.
Disques magnétiques et SSD
Un disque dur stocke des motifs magnétiques sur des plateaux en rotation. Une tête mobile cherche la bonne piste, puis attend que la partie voulue du plateau passe sous elle. Ces deux mouvements ajoutent un délai d’accès.
À 7 200 tours par minute, un tour prend :
L’attente moyenne due à la rotation est d’un demi-tour, soit environ 4,2 ms. Ce n’est que la partie due à la rotation, et non le temps de lecture complet ; la recherche et le transfert prennent aussi du temps. Les pièces mobiles rendent également un disque dur en fonctionnement vulnérable aux chocs.
Un SSD stocke des charges dans des cellules flash et ne possède aucune pièce mobile. Les petites lectures à des emplacements aléatoires prennent des dizaines de microsecondes au lieu des millisecondes habituelles pour l’accès à un disque dur. Les SSD sont silencieux, résistent aux chocs et conviennent aux ordinateurs portables. Les disques durs offrent généralement un coût par téraoctet inférieur pour les grandes collections.
Les cellules flash supportent un nombre limité de cycles d’effacement et d’écriture. Le contrôleur utilise la répartition de l’usure pour répartir les écritures entre les cellules. Les clés USB, les cartes mémoire et le stockage des téléphones utilisent aussi la mémoire flash, même si le contrôleur et l’interface influent sur leurs performances.
Disques optiques et bandes
| Support | Comment il stocke ou lit les données | Usage adapté |
|---|---|---|
| CD, DVD, Blu-ray | Un laser lit des marques sur une couche réfléchissante | Distribuer des contenus ou conserver une archive sur disque |
| Bande magnétique | Les données se suivent le long d’une longue bande | Sauvegardes et archives volumineuses |
Les capacités courantes sont d’environ 700 Mo pour un CD, 4,7 Go pour un DVD simple couche et 25 Go pour un disque Blu-ray simple couche. Les supports optiques sont faciles à transporter, mais lents par rapport aux supports modernes.
La bande offre un faible coût pour les grandes archives. Son accès séquentiel signifie que le lecteur doit la faire défiler pour atteindre un fichier éloigné. Les disques et les SSD offrent un accès direct, qui permet d’atteindre un emplacement choisi sans parcourir toutes les données précédentes. La bande convient donc mieux aux sauvegardes groupées planifiées qu’à une application qui ouvre régulièrement de petits fichiers dispersés.
Le stockage dans le cloud est un service
Le stockage dans le cloud conserve les fichiers sur des équipements situés dans les centres de données d’un fournisseur. Les supports sous-jacents restent des SSD, des disques durs ou des bandes. Une connexion réseau ajoute des délais d’accès et de transfert. Le service offre le partage, l’accès à distance et des copies hors site, avec des frais réguliers et une dépendance aux contrôles d’accès et à la fiabilité du fournisseur.
Tenir compte du facteur limitant
Le temps d’accès est le délai avant que les données commencent à arriver. Le débit de transfert mesure leur vitesse de circulation ensuite. De nombreuses lectures de petits fichiers subissent à chaque fois le délai d’accès ; pour un seul grand fichier continu, le débit de transfert compte davantage.
Un SSD convient aux programmes utilisés sur un ordinateur portable. Les disques durs conviennent à un serveur qui stocke économiquement 20 To de vidéo. Une bande ou une archive dans le cloud convient aux documents d’une entreprise conservés à long terme, tandis qu’une clé USB est pratique pour transporter des fichiers. Choisis selon la capacité, le temps d’accès, le débit de transfert, le coût par octet, la consommation d’énergie, la fiabilité et la portabilité. Être composé de puces ne fait pas d’un SSD une RAM de travail : il reste un stockage non volatile accessible par un contrôleur de stockage.
Points clés
- L’accès à un disque dur comprend un délai de recherche et de rotation ; les SSD n’ont pas de pièces mobiles.
- La répartition de l’usure distribue les écritures flash entre les cellules.
- La bande offre un accès séquentiel et convient aux grandes archives.
- Le stockage dans le cloud utilise des supports physiques accessibles par un réseau.
- Le temps d’accès et le débit de transfert mesurent des parties différentes d’une lecture.
- Choisis le stockage selon le mode d’accès de la tâche et les besoins pratiques.
4.3 Garder les données utiles près du processeur
Un ordinateur combine plusieurs types de stockage parce qu’aucune technologie ne réunit à elle seule un accès rapide, une grande capacité et un faible coût. La hiérarchie mémoire place une petite quantité de stockage très rapide près du processeur et des stockages plus grands et plus lents plus loin.
Les niveaux de la hiérarchie
Du plus rapide et du plus petit vers le plus lent et le plus grand, les principaux niveaux sont les registres, les caches L1/L2/L3, la RAM, le SSD, le disque dur et le stockage d’archives. Le coût par octet baisse généralement à mesure que la capacité augmente.
| Niveau | Exemple de temps d’accès | Ordre de grandeur habituel |
|---|---|---|
| Registres | Fraction de nanoseconde | Quelques kilo-octets ou moins |
| Cache L1 | Environ 1 ns | De dizaines à centaines de kilo-octets par cœur |
| Cache L2 | Quelques ns | Jusqu’à quelques mégaoctets |
| Cache L3 | Environ 10 à 20 ns | De plusieurs à plusieurs dizaines de mégaoctets |
| RAM | Environ 50 à 100 ns | De plusieurs à plusieurs dizaines de gigaoctets |
| SSD | Environ 20 à 100 µs | De centaines de gigaoctets à des téraoctets |
| Disque dur | Environ 5 à 10 ms | Plusieurs téraoctets |
Ces temps donnent un ordre de grandeur et non une caractéristique fixe pour chaque appareil. En prenant 1 ns pour L1, 100 ns pour la RAM et 10 ms pour un disque, la RAM prend environ 100 fois plus de temps que L1 et le disque environ 100 000 fois plus de temps que la RAM.
Succès, défauts et copies utiles
Une mémoire cache du processeur utilise de la SRAM pour conserver des blocs copiés depuis la mémoire principale. Le matériel parcourt les niveaux de cache avant de lire la RAM. Un succès de cache signifie que le contenu demandé est trouvé dans le cache. Un défaut de cache nécessite une lecture à un niveau plus lent et peut amener une copie dans le cache.
Le taux de succès est le nombre de succès divisé par le nombre total d’accès. Pour 950 succès en 1 000 accès, il est de 95 %. Un défaut ne signifie pas que les données sont manquantes ou endommagées ; il signifie que la copie rapide n’était pas disponible.
Pourquoi les accès passés permettent de prévoir les accès futurs
La localité temporelle signifie qu’un contenu récemment utilisé a de bonnes chances d’être bientôt réutilisé. Une boucle lit de façon répétée un compteur et ses propres instructions. La localité spatiale signifie que des adresses voisines ont de bonnes chances d’être bientôt utilisées. La lecture d’éléments consécutifs d’une liste suit ce schéma.
Une mémoire cache charge une ligne de cache entière, généralement 64 octets voisins, en tirant parti de la localité spatiale. Plusieurs niveaux établissent un compromis entre capacité et temps de recherche : un seul cache énorme prendrait plus de temps à parcourir.
Calculer le délai moyen
Supposons qu’une vérification du cache prenne 1 ns et qu’un accès à la RAM prenne 100 ns. Un défaut coûte les deux, donc prend 101 ns. Avec un taux de succès de 95 % :
Avec un taux de succès de 80 % :
La deuxième moyenne est fois plus grande. Pondère le coût complet des succès et celui des défauts par leur fréquence respective. Oublier la vérification du cache lors d’un défaut changerait la réponse dans ce modèle.
La mise en cache au-delà du processeur
Le système d’exploitation met en cache le contenu des fichiers dans la RAM. Un navigateur met en cache les fichiers web téléchargés sur le support de stockage, et les réseaux de diffusion de contenu conservent des copies près des utilisateurs. Tous réutilisent des copies proches pour éviter des récupérations lentes répétées. Vider le cache d’un navigateur supprime les fichiers du navigateur ; cela ne vide pas les circuits de cache du processeur. Les caches du processeur contiennent de petits blocs de mémoire, et non une bibliothèque organisée de documents entiers.
Points clés
- La hiérarchie établit un compromis entre la vitesse, le coût par octet et la capacité.
- Un succès de cache trouve une copie rapide ; un défaut entraîne une lecture à un niveau plus lent.
- La localité temporelle réutilise des contenus ; la localité spatiale utilise des adresses voisines.
- Le temps d’accès moyen pondère le coût complet des succès et des défauts.
- Les caches du navigateur, des fichiers et du processeur appliquent le même principe général à différentes couches.
5Comment le système d’exploitation met les composants au travail
L’ouverture d’une application dépend de plus d’éléments qu’un processeur et un fichier programme. Le système d’exploitation attribue de la mémoire, partage le temps du processeur, vérifie les autorisations et offre des services pour les fichiers et les périphériques. Suis le démarrage du micrologiciel au noyau, puis suis un éditeur en cours d’exécution à travers ses zones mémoire, ses événements d’entrée et une demande d’enregistrement. La mémoire virtuelle relie la vue des adresses de chaque processus à la RAM physique qu’il est autorisé à utiliser.
5.1 Les tâches courantes du système d’exploitation
Un système d’exploitation gère le matériel et fournit des services aux applications. Windows, macOS et Linux équipent les ordinateurs personnels et les serveurs ; Android et iOS équipent les appareils mobiles. Le bureau visible ne représente qu’une partie de ce travail.
Gérer les ressources et masquer les détails du matériel
En tant que gestionnaire de ressources, le système d’exploitation attribue le temps du processeur, la mémoire de travail, les fichiers et les périphériques aux programmes et aux utilisateurs. En tant qu’abstraction, il fournit des opérations plus simples qui masquent les détails du matériel. Un éditeur de texte peut demander « ouvre le fichier report.txt » sans choisir les pistes du disque ni les commandes du périphérique.
| Fonction | Ce que fait le système d’exploitation |
|---|---|
| Gestion des processus | Démarre, ordonnance et termine les programmes en cours d’exécution |
| Gestion de la mémoire | Attribue la mémoire et impose la séparation |
| Gestion des fichiers | Organise les fichiers, les dossiers et les données stockées |
| Gestion des périphériques | Communique avec les périphériques par l’intermédiaire de pilotes |
| Sécurité | Fait respecter les comptes et les autorisations |
| Gestion du réseau | Fournit des services d’échange de données |
L’interface utilisateur permet de demander ces opérations. Une interface graphique utilise des fenêtres, des icônes, des menus et le toucher ou un pointeur. Une interface en ligne de commande accepte des commandes saisies. Des commandes comme ls sous Linux et macOS ou dir sous Windows affichent la liste des fichiers ; des scripts peuvent combiner des commandes pour des tâches répétées.
Le noyau contrôle les opérations privilégiées
Le noyau est le cœur du système d’exploitation responsable du contrôle du matériel et des ressources protégées. Les applications s’exécutent en mode utilisateur avec des privilèges restreints. Le code du noyau s’exécute en mode noyau avec des privilèges plus étendus. Une application demande un service protégé au moyen d’un appel système, par exemple pour demander au système d’exploitation de lire un fichier.
Le noyau vérifie les autorisations et effectue l’action permise. Une application défectueuse ne peut pas simplement utiliser une instruction normale du mode utilisateur pour prendre le contrôle de tous les périphériques ou lire la mémoire protégée d’un autre processus.
Partager le temps du processeur
L’ordonnanceur décide quel programme prêt à s’exécuter reçoit du temps processeur. De courts tours sur un seul flux de traitement donnent l’impression que la lecture de musique et la modification d’un document sont simultanées. Plusieurs cœurs permettent aussi d’exécuter du travail au même moment. Certains processeurs prennent en charge le multithreading matériel au sein d’un cœur, mais le partage du temps reste nécessaire lorsque le travail prêt à être exécuté dépasse ce que le matériel peut effectuer simultanément.
Donner des noms aux fichiers et des pilotes aux périphériques
Un système de fichiers suit le contenu des fichiers et leurs métadonnées comme la taille, les dates et les autorisations. Les dossiers forment une hiérarchie ; un chemin désigne un fichier, par exemple /home/sam/notes.txt sous Linux. NTFS, APFS et ext4 sont des exemples de systèmes de fichiers.
Supprimer un fichier retire généralement son entrée du répertoire et libère son espace pour qu’il soit réutilisé. Cela diffère de l’écrasement volontaire de chaque octet. Les anciennes données peuvent parfois rester récupérables, en particulier sur les disques durs ; une suppression ordinaire ne garantit pas un effacement sécurisé.
Un pilote traduit les demandes générales relatives à un périphérique en commandes qu’un contrôleur comprend. Les pilotes standard prennent en charge de nombreux claviers et clés USB, tandis que certains périphériques nécessitent un pilote spécifique.
Associer chaque logiciel à son rôle
Le système d’exploitation, les pilotes et les utilitaires comme les outils de sauvegarde sont des logiciels système. Les navigateurs, les éditeurs, les jeux et les tableurs sont des applications. Les systèmes mobiles mettent l’accent sur l’autonomie de la batterie, le tactile et la séparation des applications ; les serveurs prennent en charge les services réseau. Un système d’exploitation temps réel respecte des délais de réponse fixés pour des tâches de commande. Des appareils embarqués très simples peuvent exécuter un programme sans système d’exploitation complet.
Points clés
- Le système d’exploitation gère les ressources partagées et masque les détails du matériel derrière des services.
- Les appels système permettent aux applications soumises aux restrictions du mode utilisateur de demander des services au noyau.
- L’ordonnanceur partage le temps du processeur entre les tâches prêtes à être exécutées.
- Les systèmes de fichiers suivent le contenu, les noms, les chemins et les autorisations des fichiers.
- Les pilotes relient les demandes générales du système d’exploitation aux commandes propres aux périphériques.
- Les logiciels système font fonctionner et entretiennent l’ordinateur ; les applications accomplissent les tâches des utilisateurs.
5.2 De la mise sous tension à l’enregistrement d’un document
Le démarrage d’un ordinateur et le lancement d’une application comportent des étapes différentes. Le démarrage donne le contrôle au système d’exploitation. Le chargement d’une application crée ensuite un processus en cours d’exécution qui utilise le processeur, la mémoire et les services du système d’exploitation.
Commencer par des instructions persistantes
À la mise sous tension, la RAM de travail ne contient aucun programme en cours d’exécution utilisable. Le processeur commence par le micrologiciel stocké dans une mémoire non volatile. Sur un PC moderne, le micrologiciel UEFI prépare le matériel et effectue des vérifications de démarrage, souvent appelées autotest au démarrage (POST). Il choisit un périphérique de démarrage et lance un chargeur d’amorçage. Celui-ci charge le noyau du système d’exploitation dans la RAM et lui transmet le contrôle. Le noyau prépare la gestion de la mémoire, les pilotes et les services avant l’apparition de l’écran de connexion ou d’accueil.
Transformer un fichier programme en processus
Un programme est constitué d’instructions stockées. Un processus est une instance en cours d’exécution, avec sa mémoire, l’état de ses registres et ses ressources. Des instances distinctes d’un même éditeur peuvent conserver des documents distincts, même si elles proviennent du même fichier programme.
Pour lancer une application, le système d’exploitation vérifie l’exécutable et l’autorisation de l’exécuter, crée un espace d’adressage, charge le code et les données nécessaires au départ, prépare une pile et définit l’adresse de l’instruction de départ. D’autres pages peuvent être chargées au moment de leur utilisation. L’ordonnanceur accorde du temps processeur au processus, dont les instructions machine sont alors exécutées.
Des zones différentes pour des contenus différents
| Zone | Contenu |
|---|---|
| Code | Instructions machine |
| Données | Variables globales |
| Tas | Mémoire demandée pendant l’exécution du programme |
| Pile | Appels de fonctions actifs, valeurs locales et adresses de retour |
L’appel d’une fonction ajoute des informations à la pile ; le retour libère la partie de cet appel. Des appels répétés sans arrêt peuvent épuiser la pile et provoquer un débordement de pile. Une fuite mémoire se produit lorsqu’un programme conserve de la mémoire dont il n’a plus besoin, ce qui augmente la mémoire qu’il garde allouée. Le simple fait d’utiliser une grande quantité de mémoire ne suffit pas à diagnostiquer une fuite.
Distinguer les adresses des emplacements physiques
La mémoire virtuelle donne à chaque processus son propre espace d’adressage. Le système d’exploitation et l’unité de gestion mémoire (MMU) du processeur font correspondre les adresses virtuelles à la RAM physique par pages, souvent de 4 KiB. Deux processus peuvent utiliser 0x1000 pour des emplacements physiques différents. Les autorisations d’accès empêchent les lectures ou écritures non autorisées ; le système d’exploitation peut aussi autoriser explicitement des pages partagées.
Un accès interdit provoque une erreur qui peut mettre fin au processus. Sous Linux ou macOS, un programme C peut signaler une « erreur de segmentation ». Une adresse virtuelle désigne un emplacement dans l’espace d’adressage du processus, et pas nécessairement un octet de RAM portant le même numéro.
Lorsque la demande de mémoire est élevée, le système d’exploitation peut déplacer les pages inactives vers un fichier d’échange ou de pagination sur le stockage. Dans cet exemple, récupérer une page en 100 µs prend environ 1 000 fois le temps d’un accès à la RAM de 100 ns. Le déplacement répété de pages, appelé écroulement du système, peut occuper l’essentiel du temps d’exécution. Réduire la demande de mémoire active ou ajouter de la RAM peut aider.
Suivre un appui sur une touche à travers les couches
Un contrôleur de clavier signale une interruption. Le gestionnaire et le pilote du système d’exploitation obtiennent l’événement et le transmettent au processus de l’éditeur. L’éditeur met à jour le document dans sa mémoire et demande aux services graphiques du système d’exploitation d’actualiser l’affichage. L’enregistrement demande au système de fichiers d’écrire le document sur le stockage. Lorsque le processus se termine, le système d’exploitation récupère sa mémoire et ses ressources. Les données enregistrées restent ; les modifications conservées uniquement dans la mémoire du processus disparaissent.
Points clés
- Le micrologiciel démarre avant que le chargeur d’amorçage ne charge le noyau.
- Un processus est une instance de programme en cours d’exécution avec son propre état.
- Le code, les données, le tas et la pile contiennent différentes parties d’un processus.
- La mémoire virtuelle fait correspondre les adresses des processus à la RAM et impose les autorisations d’accès.
- Le va-et-vient utilise le stockage pour les pages ; des transferts fréquents peuvent provoquer un écroulement du système.
- La modification change la mémoire de travail ; l’enregistrement écrit le document sur le stockage.
- Le système d’exploitation récupère les ressources d’un processus lorsque celui-ci se termine.
Fonctionnement des ordinateurs : exemples
1Suis les chemins à l’intérieur d’un ordinateur
13 étapes
- 1IntroductionSuis une action simple
L’ouverture d’une photo fait intervenir plusieurs composants : une entrée demande l’action, le stockage conserve le fichier, la RAM contient le contenu de travail et le processeur suit les instructions pour l’afficher. Les instructions partagent la mémoire avec les données selon l’architecture de von Neumann, ce qui permet à une même machine d’effectuer de nombreuses tâches.
Nous allons distinguer ces rôles, suivre un transfert mémoire et voir comment les périphériques demandent une intervention au moyen d’une interruption sans faire attendre le processeur. Ces rôles décrivent aussi un téléphone ou un contrôleur intégré à un appareil plus grand.
- 2ExplicationRepère les composants de travail
Le processeur exécute les instructions. La RAM contient les instructions et les données en cours d’utilisation ; un SSD ou un disque dur conserve les fichiers persistants. Les périphériques d’entrée fournissent des données et les périphériques de sortie présentent les résultats ou agissent en fonction de ceux-ci.
La carte mère relie ces composants. Un téléphone réunit de nombreuses fonctions dans un système sur puce. Le boîtier complet de l’ordinateur n’est pas le processeur : celui-ci est un composant du système.
- 3Point cléLes programmes sont du contenu en mémoire
Dans l’architecture de von Neumann, une même mémoire principale contient les instructions et les données. Le processeur y lit des instructions binaires, ce qui permet à un nouveau programme chargé de donner une tâche différente au même matériel.
Une suite de bits n’a pas de signification intégrée pour la mémoire. L’octet
01000001pourrait représenter 65, la lettre ASCII « A » ou une partie d’une instruction. C’est son utilisation qui détermine son interprétation. - 4DéfiChanger de tâche
Un contrôleur de température et un ordinateur portable contiennent tous deux des processeurs, de la mémoire et des entrées-sorties. Pourquoi le contrôleur est-il un système embarqué, et qu’est-ce qui permet à l’ordinateur portable de passer de la modification d’un texte à la lecture audio ?
---reveal---
Le contrôleur effectue une tâche précise à l’intérieur d’un autre appareil. L’ordinateur portable change de tâche en exécutant des instructions enregistrées différentes. Les rôles du matériel restent les mêmes tandis que le programme change le travail effectué.
- 5AnalogieChoisir une boîte aux lettres, puis son contenu
Imagine les emplacements mémoire comme des boîtes aux lettres numérotées. L’adresse sélectionne une boîte ; les données sont ce qu’elle contient. Une lecture demande son contenu et une écriture le remplace.
Dans le bus système classique, le bus d’adresses sélectionne l’emplacement, le bus de données transporte le contenu et le bus de contrôle transporte la commande de lecture ou d’écriture. Modifier le contenu ne change jamais le numéro de l’emplacement.
- 6ExempleLire l’adresse 200
Le processeur veut le contenu de l’adresse mémoire 200. Il envoie 200 sur le bus d’adresses et active une commande de lecture sur le bus de contrôle.
La mémoire trouve cet emplacement et place son contenu, ici 7, sur le bus de données. Le processeur reçoit 7 dans un registre. L’adresse a permis la sélection ; les données renvoyées fournissent la valeur. Aucune écriture n’a lieu : le contenu de l’emplacement 200 reste donc 7.
- 7ExplicationCompter les emplacements et les transferts
Avec 16 bits d’adresse, une mémoire adressable par octet possède 65 536 emplacements, soit 64 KiB. Ajouter un bit d’adresse double cette plage.
La largeur des données répond à une autre question. Une voie de 64 bits déplace 8 octets par transfert. À un milliard de transferts par seconde, sa bande passante est de 8 Go/s. Davantage de bits d’adresse permettent de désigner davantage d’emplacements ; davantage de bits de données permettent de déplacer davantage de contenu par transfert.
- 8DéfiDistinguer les deux largeurs
Un système pédagogique adressable par octet possède 11 bits d’adresse et une voie de données de 16 bits. Quelle quantité de mémoire peut-il adresser et combien d’octets sont déplacés par transfert ?
---reveal---
Il peut adresser octets, soit 2 KiB. La voie de données transporte 2 octets par transfert, car chaque octet contient 8 bits. Multiplier le nombre d’adresses par deux supposerait à tort que chaque adresse désigne deux octets.
- 9ExplicationPasser des signaux aux valeurs et inversement
Un microphone fournit une entrée et un haut-parleur une sortie. Le son varie de façon continue, tandis qu’un ordinateur conserve des valeurs numériques. Un convertisseur analogique-numérique échantillonne l’entrée et encode les mesures sous forme de nombres ; un convertisseur numérique-analogique transforme les valeurs numériques de sortie en signal analogique.
Un écran tactile remplit deux rôles : détecter les contacts fournit une entrée et afficher une image fournit une sortie. Un périphérique peut contenir des circuits de traitement et rester classé selon ce rôle.
- 10LienLe contrôleur et le pilote travaillent ensemble
Un contrôleur est un composant matériel qui communique avec un périphérique. Un pilote est un logiciel qui transforme les demandes du système d’exploitation en commandes pour ce contrôleur.
La scrutation demande régulièrement si le périphérique est prêt. Avec une interruption, le contrôleur signale lorsqu’une intervention est nécessaire. Pour un grand bloc, l’accès direct à la mémoire peut déplacer le contenu entre le périphérique et la RAM pendant que le processeur travaille ailleurs, puis signaler la fin du transfert.
- 11DéfiÉviter les vérifications inutiles
Un scanner envoie une grande image dans la RAM. Le processeur prépare le transfert, poursuit une autre tâche et reçoit un signal de fin. Quels rôles jouent l’accès direct à la mémoire et l’interruption ?
---reveal---
L’accès direct à la mémoire déplace le bloc de l’image sans que le processeur copie chaque octet. L’interruption annonce que le transfert est terminé afin que le système d’exploitation puisse le traiter. Le processeur organise toujours le transfert ; il évite simplement de déplacer lui-même tous les octets.
- 12DéfiRelier une mesure à un résultat
Un contrôleur de serre lit une valeur numérique de température dans la RAM, calcule une décision et ouvre une vanne. Quelles sont son entrée et sa sortie, et que doit-il passer entre la mémoire et le processeur ?
---reveal---
La mesure de température est l’entrée et l’actionnement de la vanne est la sortie. Le processeur a besoin des instructions de commande enregistrées et de la mesure en mémoire. L’adressage sélectionne ces emplacements, le transfert de données transporte leur contenu et les signaux de contrôle coordonnent l’accès.
- 13RécapitulatifLire tout le chemin
Identifie d’abord le rôle : entrée, traitement, mémoire de travail, stockage persistant ou sortie. Distingue ensuite l’emplacement sélectionné du contenu déplacé.
Les instructions enregistrées indiquent au processeur ce qu’il doit faire ; les bus ou les liaisons modernes transportent les adresses, les valeurs et les commandes. Les contrôleurs et les pilotes relient les périphériques, tandis que les interruptions et l’accès direct à la mémoire permettent de partager efficacement un ordinateur rapide avec des périphériques lents ou des transferts volumineux.
2Construis et suis une opération du processeur
19 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionRendre l’exécution visible
- 2ExplicationLire la règle d’une porte
- 3ExempleConstruire une retenue
- 4DéfiÉvaluer les sorties intermédiaires
- 5LienConserver un résultat entre deux étapes
- 6ExplicationAttribuer les tâches du processeur
- 7DéfiDistinguer l’adresse du contenu
- 8ExplicationLire l’instruction avant de l’utiliser
- 9ExemplePremière instruction : charger
- 10ExempleDeuxième instruction : additionner
- 11ExempleTroisième et quatrième instructions : stocker et arrêter
- 12DéfiPrendre ou ignorer un branchement
- 13Point cléReprendre après une interruption
- 14ExempleComparer un nombre fixe de cycles
- 15ExempleNe répartir que le travail parallèle
- 16ExplicationFaire se chevaucher les étapes sans changer leur sens
- 17DéfiEstimer une nouvelle tâche parallèle
- 18DéfiExpliquer pourquoi un pipeline rapide reste inutilisé
- 19RécapitulatifRelier les bits, l’état et le temps
3Suis un programme du texte à l’exécution
13 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionDistinguer les formes du programme
- 2ExplicationDiviser une instruction en champs
- 3ExplicationNommer le contrat avec le matériel
- 4ExemplePréparer un compte à rebours
- 5ExempleCompter les exécutions, sortie comprise
- 6DéfiChanger le départ et suivre la sortie
- 7ExplicationConstruire avant d’exécuter
- 8LienDéterminer où se trouve le code des bibliothèques
- 9DéfiExpliquer une construction réussie avec un résultat erroné
- 10Point cléL’interprétation exécute aussi du code machine
- 11DéfiDéplacer le programme vers un autre processeur
- 12DéfiSuivre deux chemins vers le même matériel
- 13RécapitulatifBien distinguer le rôle de chaque couche
4Compare la mémoire et calcule les effets du cache
14 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionPoser deux questions sur les données stockées
- 2ExplicationDistinguer le contenu de travail du contenu persistant
- 3ExempleLire l’unité de capacité
- 4DéfiLocaliser le dernier octet
- 5ExplicationDistinguer l’attente du transfert
- 6ExempleDéterminer une partie du délai d’un disque
- 7DéfiChoisir selon le comportement du stockage
- 8ExplicationDescendre dans la hiérarchie
- 9LienPrévoir les prochains octets utiles
- 10ExempleInclure les deux parties du coût d’un défaut
- 11ExempleModifier le taux de succès
- 12DéfiCalculer une nouvelle moyenne de cache
- 13DéfiChoisir l’amélioration pertinente
- 14RécapitulatifAdapter la ressource au besoin
5Suis un démarrage, un appui sur une touche et un enregistrement
15 étapes
Enregistre cette unité pour suivre chaque Leçon Interactive pas à pas.
- 1IntroductionSuivre un éditeur dans le système
- 2ExplicationDemander un service
- 3ExemplePartager le temps d’exécution
- 4DéfiIdentifier la limite du système d’exploitation
- 5ExplicationDémarrer avant le système d’exploitation
- 6ExempleCréer l’instance en cours d’exécution
- 7ExplicationDonner des rôles différents aux zones mémoire
- 8AnalogieUtiliser un espace d’adressage privé
- 9DéfiGarder séparées des adresses identiques
- 10Point cléLe stockage peut seconder la mémoire, lentement
- 11ExempleTransmettre l’événement de touche
- 12ExempleEnregistrer pour conserver le document après la fin du processus
- 13DéfiDistinguer deux types de ralentissement
- 14DéfiRelier la protection des processus et l’enregistrement
- 15RécapitulatifSuivre les services dans l’ordre
Fonctionnement des ordinateurs : QCM
Série 1 : Composants, instructions et tâches informatiques courantes10 Questions Pratiques
Question 1 sur 10
Afficher la réponseMasquer la réponse
Question 2 sur 10
Afficher la réponseMasquer la réponse
Question 3 sur 10
Afficher la réponseMasquer la réponse
Question 4 sur 10
Afficher la réponseMasquer la réponse
10 correspond aux sorties combinées de somme et de retenue d’un demi-additionneur, et non à l’unique sortie d’une porte OU exclusif.Question 5 sur 10
Afficher la réponseMasquer la réponse
Question 6 sur 10
LOAD 30 et l’adresse 30 contient 14. Le PC commence à 8. Que valent le PC et l’ACC après l’exécution de cette instruction ?Afficher la réponseMasquer la réponse
Question 7 sur 10
LOAD, ADD et d’autres mnémoniques d’assemblage en instructions binaires. De quel type d’outil s’agit-il ?Afficher la réponseMasquer la réponse
Question 8 sur 10
Afficher la réponseMasquer la réponse
Question 9 sur 10
Afficher la réponseMasquer la réponse
Question 10 sur 10
0x3000 pour des données privées. L’une y stocke 9 et l’autre 22. Pourquoi les deux valeurs peuvent-elles rester intactes ?Afficher la réponseMasquer la réponse
Série 2 : Connexions, traduction et choix de mémoire10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
JUMPZ 18 est lu à l’adresse 7 alors que l’ACC vaut 4. À quelle adresse la prochaine instruction est-elle lue ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
0010. Comment ADD 13 est-il encodé ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 3 : Suivi des choix et comparaison des performances10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
(A XOR B) AND (NOT C) lorsque A = 1, B = 1 et C = 0 ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
LOAD 40, SUB 41, STORE 40, JUMPZ 5, JUMP 0, HALT aux adresses 0 à 5. L’emplacement 40 contient 2 au départ et l’emplacement 41 contient 1. En partant d’un PC à 0, combien d’instructions s’exécutent jusqu’à HALT inclus ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
LOAD 50, SUB 51, JUMPZ 4, ADD 51, STORE 52, HALT aux adresses 0 à 5. Les emplacements 50 et 51 contiennent tous deux 6. Quelle valeur est stockée à l’adresse 52 lorsque la machine s’arrête ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 4 : Diagnostiquer le comportement d’un système informatique10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Série 5 : Relier les instructions, la mémoire et le système d’exploitation10 Questions Pratiques
Enregistre cette unité pour voir chaque réponse et t'entraîner sur chaque série.
Question 1 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 2 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 3 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 4 sur 10
LOAD 19 ?Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 5 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 6 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 7 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 8 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 9 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Question 10 sur 10
Afficher la réponseMasquer la réponse
Enregistre cette unité pour voir cette réponse.
Tu bloques sur ton propre exercice ? Aide aux Devoirs
Mots-Clés
A
Accès direct à la mémoire
Accumulateur
Appel système
Architecture de von Neumann
Architecture du jeu d’instructions
Architecture Harvard
Assembleur
B
Bande magnétique
Bande passante
Bascule
Bridage thermique
Bus
Bus d’adresses
Bus de contrôle
Bus de données
Bytecode
C
Chargeur d’amorçage
Code machine
Code opération
Code source
Cœur
Compilateur
Compilation à la volée
Compteur ordinal
Contrôleur de périphérique
Convertisseur analogique-numérique
Convertisseur numérique-analogique
Cycle d’horloge
Cycle de lecture-décodage-exécution
D
Débordement de pile
Demi-additionneur
10.Disque dur
Disque optique
É
Écriture du résultat
Écroulement du système (thrashing)
Éditeur de liens
Édition de liens statique et dynamique
E
Exécutable
F
Fréquence d’horloge
Fuite mémoire
G
Gestionnaire d’interruption
H
Hiérarchie mémoire
I
Indicateur d’état
Instruction de branchement
Interface graphique et interface en ligne de commande
ls dans une ligne de commande pour demander la liste de ses fichiers.Interpréteur
Interruption
L
Langage d’assemblage
Ligne de cache
Localité spatiale
Localité temporelle
Logiciel
Loi de Moore
M
Machine virtuelle
Matériel informatique
Mémoire adressable par octet
Mémoire cache
Mémoire morte (ROM)
Mémoire secondaire
Mémoire virtuelle
Mémoire vive (RAM)
Mémoire vive dynamique (DRAM)
Mémoire vive statique (SRAM)
Micrologiciel
Mot
N
Noyau
O
Opérande
LOAD 10, l’opérande est l’adresse 10, dont le contenu est lu dans l’accumulateur, ACC.Ordonnanceur
P
Page
Périphérique d’entrée
Périphérique de sortie
Pile
Pilote de périphérique
Pipeline d’instructions
Porte ET
Porte logique
Porte NON
Porte NON-ET
Porte NON-OU
Porte OU
Porte OU exclusif
Principe du programme enregistré
Processeur graphique
Processus
R
Registre
Registre d’adresses mémoire
Registre d’instruction
Registre de données mémoire
Répartition de l’usure
RISC et CISC
S
Scrutation
SSD
Stockage dans le cloud
Succès et défaut de cache
Système d’exploitation
Système d’exploitation temps réel
Système de fichiers
/home/sam/notes.txt désigne un fichier Linux sans révéler quels blocs de stockage le contiennent.Système embarqué
Système sur puce
T
Table de vérité
Tas
Taux de succès
Temps d’accès et débit de transfert
Transistor
U
Unité arithmétique et logique
Unité de commande
Unité de gestion mémoire
V
Va-et-vient
Verrou
À propos de cette unité
Crée ton propre Matériel d'Étude
Transforme tes notes, diapos et documents en Guides d'Étude, Questions Pratiques, Flashcards et 6 autres outils.