Un Ordinateur, comment ça marche en vrai? Décembre 2006
Plan Introduction Hard Électronique Microprocesseur Ordinateurs Soft OS Conclusion 2
Couches Langages de Haut niveau Traduction - Compilation Assemblage Traduction - Assemblage OS Interprétation partielle (OS) On peut avoir, en théorie, une séparation hard/soft à n'importe quel niveau. Pico-Java Couche jeu d'instructions Microprogramme ou exécution directe Couche MicroArchitecture Matériel Couche Logique Numérique 3
Introduction Plus, plus vite, mieux, moins cher Incomparable aux industries classiques Loi de Moore (loi de Rock) Loi de Kryder (disques) Loi de Metcalfe (valeur des réseaux) Lieux communs Restera encore quelques années Histoire (Wikipedia, commentcamarche.net) 4
Loi de Moore 5
Introduction Base Fée électricité Binaire Simple physiquement (présence ou pas...) Codage mathématique Hexadécimal human readable Compatible binaire 2006 bin hex 111 1101 0110 7 D 6 6
Plan Introduction Hard Électronique Niveau 0 Microprocesseur Ordinateurs Soft OS Conclusion 7
Électronique Transistor MOS = Interrupteur commandé Lorsqu'une tension adéquate est à la grille (gate), le courant passe Metal Oxide Semiconducteur Mise en place de portes logiques 8
Exemple : NAND 9
Fonctions mathématiques Algèbre de Boole: + : ou. : et X : non / inverse Tableaux de Karnaugh. Découverte de la fonction mathématique Câblage Exemple : additionneur 10
11
Additionneur binaire Demi Complet 1 Bit Complet 4 bits 12
Mémoires Bascules D et RS 13
Mémoire 4x3 14
Plan Introduction Hard Électronique Microprocesseur Niveau 1 2 Ordinateurs Soft OS Conclusion 15
Plan Hard Microprocesseur Niveau 1 2 Généralités Chemin de données Opérandes Micro programme ISA Pipeline SuperScalaire MMX et multimédia 16
Microprocesseur CPU Central Processing Unit Cerveau, calculs centraux Fonctionne très rapidement n Ghz => 1/n ns de cycle IPC Instruction Per Cycle Dialogue Mémoire Principale E/S 17
Chemin de données Schéma simple d'une ALU 1. Données (1, 2, 3...) 2. Instructions ( add...) Deux chemins différents Deux Mémoires différentes ALU : Opérations arithmétiques de base (+) Opérations logiques de base ( &&,, test) Décalages 18
Opérandes Opérandes en Mémoire: (schéma suit) Pile (Instructions directes) Accumulateur (une opérande) Registre Mémoire (une opérande directe mém.) Registre Registre (toutes sont dans les registres) Registre, Immédiat et Mémoire Registre Immédiat (limité en taille utile pour x +12) 19
20
Cycle d'instruction Exemple de Cycle Charger l'instruction depuis le registre Instruction Modifier le compteur pour pointer sur l'instruction suivante Décoder, l'instruction Localiser en mémoire les opérandes Charger les opérandes Exécuter / Stocker Revenir au début 21
Bilan Architecture 3 bus 22
MicroProgramme (Couche 1) Historique CISC 1 instruction plusieurs actions séquentielles Utilisation de commandes de haut niveau, complexes Boucles et branchements Call/Return Adressage de tableaux, de décimaux... Microprogramme 23
Microprogramme Mémoire spécifique (Portes, Mémoires) 1.Connect Register 1 to the "A" side of the ALU 2.Connect Register 7 to the "B" side of the ALU 3.Set the ALU to perform two's-complement addition 4.Set the ALU's carry input to zero 5.Store the result value in Register 8 6.Update the "condition codes" with the ALU status flags ("Negative", "Zero", "Overflow", and "Carry") 7.Microjump to MicroPC nnn for the next microinstruction Formats d'instructions divers IPC très variable Invisible 24
Micro-Programmation 25
RISC / CISC : TROLL CISC RISC Parfois très complexe Code plus court Instructions de taille variable Code plus long Pipeline complexe Pipeline Pas plus rapide Orthogonalité! 1 Instruction = 1cycle Format instructions identique Compilateurs... 26
Bilan 27
ISA Registres : $0, $1, $2 $31 (tous des registres de 32 bits); $0 =0; Les Instructions de l architecture MIPS L instruction ADD ADD $a, $b, $c # $a < = $b + $c L instruction SUB SUB $a, $b, $c # $a < = $b $c L instruction Rangement/Chargement LW (load Word) # Cherche Un mot en mémoire => accès mémoire. LW $a, IMM ($b) #mode relatif ADDI : Additionner une valeur immédiate mais elle va être encoder comme instruction de type chargement/dechargement. ADDi $a, $b,imm # $a < = $b + IMM 28
ISA LUI : LOAD UPPER IMMEDIATE LUI $a, IMM # $a < = IMM * 2^16 Branchement BEQ $a, $b, IMM # Si $a == $b alors PC <= PC + (IMM * 4) BNE $a, $b, IMM # Si $a!= $b alors PC <= PC + IMM * 4 SLT : Set Least Then SLT $a, $b, $c # Si $b <$c alors $a <= 1 sinon $a <= 0 Instruction de Contrôle non conditionnel J : Jump to J etiq # prend étiquette et saute a cette étiquette JAL : Jump and Link JALR : jump and link to registry 29
Pipelines Plusieurs étapes de différentes instructions en parallèle Lit Décode Exécute Accès Mémoire Rangement IPC augmente 30
Conséquences Multiples opérateurs Accès multiple aux registres Cache Instruction et Données séparées Plus simple avec Instruction de taille fixe 31
DLX 32
Limitations Dépendance de données Dépendance de noms Dépendance de contrôle Flottants, entier, nombre d'instructions différents 33
Dépendances de données Données LAE, vraie dépendance EAE, EAL, antidépendance Principe de l'ordonnancement dyn. Rajouter des instructions intermédiaires Tomasulo (Suppression des EAE et EAL) 34
Dépendances Noms Noms de registres identiques Renommage des registres Contrôle Prédicteurs de branchements Spéculation 35
SuperScalaire Plusieurs opérations en même temps Pipeline SuperScalaire SparcII 36
Multimédia MMX, MMX2, SSE, SSE2, SSE3, SSSE3 Nouveaux registres en sus de int et float Calculs parallélisés, vectoriels 1 instructions 2, 4, 8 calculs Vidéo 3D 37
Plan Introduction Hard Électronique Microprocesseur Niveau 1 2 Ordinateurs Soft OS Conclusion 38
Plan Hard Ordinateurs Mémoire Bus E/S ROM, BIOS, EFI 39
Localités Principe de la localité Mémoire Localité temporelle Boucle et répétition Une exécution a une forte probabilité de se répéter Localité spatiale Un accès mémoire rend probable l'accès aux zones contiguës 40
Caches Tailles, coûts et rapidité Travail sur le cache, Si absence de donnée, défaut de cache, copie et chargement depuis/vers la MP (RAM) Compliqué :p 41
Associativité Directe Cache 42
Associativité 2 Associatif n Associativité Cache 43
Améliorer les échecs du cache Taille du cache (T) Taille des lignes (T) Couramment qq dizaine octets Associativité à augmenter (T) Une règle empirique importante, appelé règle des 2:1, stipule qu un cache à correspondance directe de taille N a environ le même taux d échec qu un cache de taille N/2 à correspondance associative par ensemble de deux lignes. Limite physique 4 ou 8 associatif Tampon de fusion d'écriture, priorité aux lectures (P) Mot critique en premier (P) Cache des victimes (P) 44
Bus / CM Bus Mémoire CPU RAM Bus Système Bus E/S Connexion des périphériques sur la CM Chef d'orchestre Chipset NorthBridge / SouthBridge Partage des ressources IRQ, DMA, Interruptions 45
AMD 46
Intel P4E 47
Interruptions, Exceptions Les périphériques I/O (E/S) sont très lents. Interrogation au contrôleur (polling) Réponse par interruption Interruptions prioritaires Disques, Carte réseaux (DMA) Exceptions Défaut de page, violation mémoire Erreur arithmétique, programmation 48
Interruptions, Exceptions Masquable / non Arrêt de l'instruction / Redémarrage Synchrone / Asynchrone Sauvegarde du contexte / Restitution 49
50
BIOS, Démarrage ROM Programme de base qui coordonne les périphériques au démarrage Détection matérielle Sauvegarde de paramètre Boot Donne la main à l'os EFI 51
Introduction Hard Plan Électronique Microprocesseur Niveau 1 2 Ordinateurs Soft Compilation OS Conclusion 52
Compilation Écriture dans un langage noble C, C++, Pascal, Fortran, Goto++, Delphi Passage au compilateur linkeur Code Machine Code Assembleur Appels systèmes (mémoire, threads..) Dépend OS Machine 53
Operating System Gestion des Processus, threads Gestion des ressources: E/S virtuelles Mémoire Gestion des FS Interface entre les programmes et le matériel Noyau, périphériques TROLL Exemples TROLL 54
Processus Instanciation d'un programme Espace mémoire propre protégé, ressources allouées Parent, enfants, fork Table des processus (info) Passage par le noyau Partage des ressources par le noyau Ordonnancement 55
Threads «Sous processus» User Plusieurs thread dans un même espace mémoire Ordonnancement interne Ressources partagées Solutions noyau table des processus Plus lourd, cause des appels systèmes 56
Ordonnancements Ordonnancements par le noyau En f des ressources, des demandes, priorités Des E/S, de l'algo, de la tâche du système Pas trop souvent, mais équitable Communication Passage de messages Mutex, sémaphore Locks, exclusion mutuelle Barrières 57
Mémoire Pagination (table de pages, pages inversées) Protection de la mémoire Virtuelle Allocation aux processus Un seul espace de mémoire Défaut de pages mémoire 58
FS Disque physique Disque logique (Partitions) Volume physique (fichiers) Volume logique (arborescence) FS : Gestion de l'arborescence Noms de fichiers, de répertoire Types de fichiers En-têtes Attributs Enregistrements, accès, droits sur le disque 59
Drivers E/S Tous les périphériques (Interruptions, DMA) Indépendance du matériel Gestion des interruptions par un périphérique Blocs/Chars Pilotes Statique, dans le noyau (UNIX) Chargement dynamique (MS DOS) 60
Architecture du noyau Micro Kernel vs. Monolithique Kernel Un noyau qui a tout dedans Un noyau minimaliste tout est chargé Linux : kernel Monolithique (modulaire) Mach, L4 : micro kernel Windows est hybride 61
Jean-Baptiste Kempf 62
63