Fonctionnement d'un ordinateur
Dans ce cours, vous allez apprendre quels sont les composants d'un ordinateur et comment ceux-ci fonctionnent. Ce cours commencera par des choses simples, comme le binaire, pour arriver progressivement jusqu'au fonctionnement des derniers processeurs, en passant par plein de choses passionnantes comme l'assembleur, les mémoires caches, etc. Ce cours est accessible à n'importe qui, sans prérequis, mais se veut cependant assez complet et riche en informations.
- L'auteur du livre tient à remercier vivement Dominus Carnufex et Vayel, qui se sont chargés de la relecture et de la correction orthographique d'une ancienne version de ce cours. Merci à eux pour le travail titanesque qui a été fourni.
Le codage des informations[modifier | modifier le wikicode]
Les circuits électroniques[modifier | modifier le wikicode]
Les circuits combinatoires[modifier | modifier le wikicode]
Les circuits séquentiels[modifier | modifier le wikicode]
- Les bascules : des mémoires de 1 bit
- Les circuits synchrones et asynchrones
- Les registres et mémoires adressables
- Les circuits compteurs et décompteurs
- Les timers et diviseurs de fréquence
Les circuits de calcul et de comparaison[modifier | modifier le wikicode]
- Les circuits de décalage et de rotation
- Les circuits pour l'addition et la soustraction
- Les circuits pour la multiplication et la division
- Les circuits de calcul flottant
- Les circuits de comparaison
Les autres circuits[modifier | modifier le wikicode]
- Les circuits de correction d'erreur
- Les circuits de génération d'aléatoire
- Les circuits de conversion analogique-numérique
L'architecture d'un ordinateur[modifier | modifier le wikicode]
- L'architecture de base d'un ordinateur
- La hiérarchie mémoire
- La performance d'un ordinateur
- La consommation d'énergie d'un ordinateur
Les bus et liaisons point à point[modifier | modifier le wikicode]
- Les bus et liaisons point à point (généralités)
- Les liaisons point à point
- Les bus électroniques
- Quelques exemples de bus et de liaisons point à point
Les mémoires RAM/ROM[modifier | modifier le wikicode]
La micro-architecture d'une mémoire adressable[modifier | modifier le wikicode]
Les mémoires primaires[modifier | modifier le wikicode]
- Les mémoires ROM : Mask ROM, PROM, EPROM, EEPROM, Flash
- Les mémoires DRAM asynchrones : FPM et EDO-RAM
- Les mémoires DRAM synchrones : SDRAM et DDR
- Le contrôleur mémoire externe
- Les barrettes de mémoire
Les mémoires exotiques[modifier | modifier le wikicode]
Le processeur[modifier | modifier le wikicode]
L'architecture externe[modifier | modifier le wikicode]
- Langage machine et assembleur
- La pile d'appel et les fonctions
- Les registres du processeur
- L'encodage des instructions
- Les jeux d'instructions
- Le modèle mémoire : alignement et boutisme
- L'espace d'adressage du processeur
- Un exemple de jeu d'instruction : l'extension x87
La micro-architecture[modifier | modifier le wikicode]
Les jeux d'instruction spécialisés ou exotiques[modifier | modifier le wikicode]
Les entrées-sorties[modifier | modifier le wikicode]
La communication avec les entrées-sorties[modifier | modifier le wikicode]
- Le contrôleur de périphériques
- L'adressage des périphériques
- Les méthodes de synchronisation entre processeur et périphériques
Les périphériques et composants communs des PCs[modifier | modifier le wikicode]
Les mémoires de stockage[modifier | modifier le wikicode]
Les différentes mémoires de masse[modifier | modifier le wikicode]
Les optimisations des mémoires de masse[modifier | modifier le wikicode]
La hiérarchie mémoire[modifier | modifier le wikicode]
La mémoire virtuelle[modifier | modifier le wikicode]
La mémoire cache[modifier | modifier le wikicode]
Les caches spécialisés[modifier | modifier le wikicode]
Le parallélisme d’instructions[modifier | modifier le wikicode]
La gestion des dépendances par le pipeline[modifier | modifier le wikicode]
- Interruptions et pipeline
- Les dépendances de contrôle
- Les dépendances de données
- Les dépendances structurelles
L’exécution dans le désordre[modifier | modifier le wikicode]
- L'exécution dans le désordre
- Fenêtres d’instruction et stations de réservation
- Le renommage de registres
- La désambigüisation de la mémoire
- Les processeurs superscalaires
Le parallélisme d'instruction exposé au niveau du jeu d'instruction[modifier | modifier le wikicode]
Les architectures parallèles[modifier | modifier le wikicode]
Le parallélisme de tâches[modifier | modifier le wikicode]
- Les architectures multiprocesseurs et multicœurs
- Les architectures multithreadées et Hyperthreading
- Les architectures distribuées, NUMA et COMA
Le parallélisme de données[modifier | modifier le wikicode]
Les architectures parallèles exotiques[modifier | modifier le wikicode]
Annexes[modifier | modifier le wikicode]
- Le matériel réseau
- Les architectures découplées
- Les architectures à capacités
- Les architectures tolérantes aux pannes
- Les architectures neuromorphiques
- Les circuits réversibles