Introduction aux systèmes informatiques Structure d'un ordinateur - Michel Salomon
←
→
Transcription du contenu de la page
Si votre navigateur ne rend pas la page correctement, lisez s'il vous plaît le contenu de la page ci-dessous
Introduction aux systèmes informatiques Structure d’un ordinateur Michel Salomon IUT de Belfort-Montbéliard Département d’informatique Michel Salomon Intro. aux sys. info. 1 / 50
Qu’est-ce qu’un système informatique ? Système informatique = ensemble de matériels et de logiciels Un système informatique traite des informations Traitements contrôlés par un programme via des instructions Programme instructions Donnees Donnees en entree Traitements en sortie Donnees intermediaires Traitements sur les données Calculs arithmétiques et booléens Rupture de séquence en fonction d’un résultat Mise en forme des données Les informations sont représentées sous forme binaire Michel Salomon Intro. aux sys. info. 2 / 50
Représentation physique de l’information Grande variété de supports physiques de l’information Différentes grandeurs physiques / chimiques permettent d’encoder l’information sous forme d’un signal Alvéole ou pas d’alvéole sur la surface d’un disque optique Polarisation d’un matériau magnétique Courant électrique présent ou non etc. Types de signaux 1 Analogique → peut prendre toutes les valeurs d’une plage fixée 2 Numérique → ne peut prendre qu’un nombre fini de valeurs Transition d’un type à un autre via un convertisseur Michel Salomon Intro. aux sys. info. 3 / 50
Architecture des ordinateurs actuels - Transistor Un ordinateur est une machine électronique Composant élémentaire : le transistor Fonctionne comme un “robinet” qui laisse passer du courant Fonctionne comme un interrupteur dans un ordinateur Modules fonctionnels matériels Internet Composants de complexité croissante Reseau local Avec des transistors on construit Ordinateur Cartes → des portes logiques Circuits integres Avec des portes log. on construit Portes logiques → des circuit intégrés Transistors Semi−conduct. Michel Salomon Intro. aux sys. info. 4 / 50
Architecture des ordinateurs actuels - Complexité Composants de complexité croissante 1 Portes logiques → opérateurs de l’algèbre de Boole AND, OR, NOT, XOR, NAND, NOR 2 Circuits logiques → combinaison de portes logiques Opérateur logique complet (permet de construire tout circuit) → NAND ; NOR Combinatoires et séquentiels (capacité de mémorisation) Montages en série ou en parallèle → additionneur n bits à partir d’additionneur(s) 1 bit, etc. 3 Circuits intégrés → implémentation physique de circuits log. Un microprocesseur est construit en un seul circuit intégré Gain en performance lié pour partie aux transistors Taille des transistors & ⇒ complexité / performance des proc. % Michel Salomon Intro. aux sys. info. 5 / 50
Architecture des ordinateurs actuels - Circuits logiques Illustration 1 - Synthèse d’un demi-additionneur (half-adder ) Addition de 2 bits x et y de plus bas poids x y x +y =S retenue = R 0 0 0 0 0 1 1 0 1 0 1 0 1 1 0 1 Expressions logiques équivalentes pour les sorties S = x ⊕ y = x · y + x · y = (x + y ) · (x · y ) R =x ·y Réalisations et représentation schématique x x S x y y S S y HA R R R Michel Salomon Intro. aux sys. info. 6 / 50
Architecture des ordinateurs actuels - Circuits logiques Illustration 2 - Synthèse d’un additionneur complet (full-adder ) Addition de 2 mots binaires Addition bit à bit en considérant le retenue de rang inférieure L’add. complet calcule la somme de 3 bits d’un même rang Il comporte 3 entrées x , y et Re et 2 sorties S et Rs Expressions logiques équivalentes pour les sorties S = x ⊕ y ⊕ Re Rs = x · y + Re · (x ⊕ y ) Réalisations et représentation schématique Re Re Re x S x S x y y HA HA S FA y Rs Rs Rs Michel Salomon Intro. aux sys. info. 7 / 50
Architecture des ordinateurs actuels - Performances Performances des processeurs Mesures → nombre d’op. / instructions exécutées par seconde Unités → Millions d’Instructions Par Seconde, etc. Sujet à critique → utilisation de benchmark Cadencement de l’exécution des opérations / instructions Processeur puissant voudrait dire fréquence élevée ? → Oui et non Barrières Chaleur Plus de transistors par unité de surface → plus d’énergie Complexité Que faire de tous ces transistors ? Difficile d’améliorer un proc. individuel (1 cœur de calcul) La complexité consomme trop d’énergie Michel Salomon Intro. aux sys. info. 8 / 50
Architecture des ordinateurs actuels - Puissance Puissance dynamique absorbée et dissipée en chaleur Dépend de plusieurs facteurs Fréquence de fonctionnement (F ) Tension de fonctionnement (V ) Capacité électrique du processeur (C ) liée aux transistors Nombre de transistors par unité de surface (densité) Taille du semi-conducteur Pdyn (en Watts) = C × V 2 × F Thermal Design Power donnée par le fondeur Puissance moyenne qu’un processeur peut dissiper en charge Puissance maximale moins une marge de sécurité (20 à 30%) Réduire le coût énergétique de l’exécution d’une instruction Michel Salomon Intro. aux sys. info. 9 / 50
Architecture des ordinateurs actuels - Évolution Comparaison des performances des processeurs Processeur Intel 4004 - 1971 2300 transistors Fréquence de 740 kHz 0.092 MIPS Processeur AMD Ryzen Threadripper 3990X - 2020 ≈39,54 milliards de transistors Fréquence de 2,9/4,3 GHz 64 cœurs et 128 threads ≈ 2356230 MIPS (Benchmark Arithmétique - Dhrystone) Que constate-t-on ? ⇒ l’impact fort des évolutions architecturales Nombre de transistors multiplié par plus de 17 millions Fréquence multipliée par plus de 5800 Puissance en MIPS multipliée par plus de 25,6 millions Michel Salomon Intro. aux sys. info. 10 / 50
Architecture des ordinateurs actuels - Structure globale On distingue plusieurs composants : 1 l’unité centrale de traitement (ou CPU) ou processeur (ou microprocesseur) ; 1 l’Unité de Contrôle 2 l’Unité Arithmétique et Logique 3 Un ensemble de registres 2 la mémoire centrale ou principale ; Contient programmes et données 3 les interfaces d’Entrées/Sorties et les périphériques ; Interfacent les périphériques avec le CPU, la mémoire centrale Composants reliés par un bus de communication Remarques : description des ordinateurs monoprocesseur avec un seul cœur ; il existe des architectures plus complexes comme les machines parallèles, multiprocesseurs. Michel Salomon Intro. aux sys. info. 11 / 50
Architecture des ordinateurs actuels - Structure globale Chemin de données, instructions, micro-instructions Micro−instructions CPU Mémoire RAM E/S Unité Arith. Périphérique n°1 donnée instruct. 1 et Logique donnée instruct. 2 Entrée Sortie donnée instruct. 3 Unité de d/i Controle donnée instruct. n Interface Registres Données Programme données données / / instructions instructions donnée instruction Bus de communication Michel Salomon Intro. aux sys. info. 12 / 50
Architecture des ordinateurs actuels - Structure globale La RAM de la mémoire centrale occupe une place essentielle Tout transite par elle (données et instructions) Chaque instruction est décodée par l’unité de contrôle L’unité de contrôle interprète l’instruction ; elle contrôle l’activation des autres composants ; via des micro-instructions contrôlant les circuits (définissent sous forme de séquence binaire les signaux de contrôle) Une instruction peut consister en : une opération d’entrée ou de sortie ; un déplacement de données en mémoire ; des opérations arithmétiques et logiques ; etc. Un processeur peut exécuter un certain nombre d’instructions Le jeu d’instructions constitue le langage machine Le langage machine est propre à une architecture de processeur L’assembleur est le langage le plus proche du langage machine Michel Salomon Intro. aux sys. info. 13 / 50
Langages, programmes et exécution Différents niveaux de programmation Un processeur ne comprend que du langage machine Difficile à maîtriser par un être humain Instructions élémentaires ; programmation longue Plus bas niveau de programmation Création de langages de plus haut niveau Plus facile de programmer, avec moins d’erreurs Programmes indépendants du processeur Nécessité de passer d’un haut niveau à un bas niveau Exécuter un programme → passer d’un langage de haut niveau LH à du langage bas niveau LB plus compréhensible par un processeur Interprétation Traduction Michel Salomon Intro. aux sys. info. 14 / 50
Langages, programmes et exécution Interprétation ⇒ Exécution par une machine plus ou moins virtuelle Prog. écrit en LB prenant en entrée des instructions de LH Pour chaque instruction de LH une séquence équivalente en LB est exécutée Les instructions de LB sont ensuite décodées et exécutées Traduction ⇒ Compilation Instructions de LH remplacées par des instructions de LB Transforme un prog. écrit avec LH en un équivalent en LB Exécution du programme LB Michel Salomon Intro. aux sys. info. 15 / 50
Architecture des ordinateurs actuels - Machine multi-couches Au début il n’y avait que la couche matérielle de plus bas niveau Réalisation de calculs élémentaires Exécution directe des instructions du langage machine Apparition de jeux d’instructions complexes → économiser la mémoire Interprétation par une couche micro-codée Puis du besoin de partager l’utilisation de machines → multi-utilisateurs ; multitâches Nouvelle gestion de la mémoire et des ressources Retour vers des jeux d’instructions réduits → plus efficace Disparition de la couche micro-codée Importance du travail des compilateurs Michel Salomon Intro. aux sys. info. 16 / 50
Architecture des ordinateurs actuels - Machine multi-couches Machines actuelles Rôle des différentes couches Langage de haut niveau Langage de haut niveau Traduction (compilateur) → Utilisé par les développeurs Langage d’assemblage Langage d’assemblage Traduction (assembleur) → Interaction avec les couches inf. Systeme d’exploitation Système d’exploitation Interpretation partielle → Mémoire, exécution concurrente Jeu d’instructions Jeu d’instructions disponible Interpretation / Execution → Exéc. directe ou micro-prog. Micro−architecture Micro-architecture Materiel → Registres, UAL, etc. Circuits logiques → Caractéristiques phys. du proc. Une opération logicielle peut être réalisée par du matériel Une opération matérielle peut être émulée par du logiciel Michel Salomon Intro. aux sys. info. 17 / 50
Unité centrale de traitement (CPU) - Unité de contrôle Constituée de 3 éléments 1 d’un séquenceur ; Synchronise l’exécution des instructions sur l’horloge ; gère les signaux qui contrôlent les autres composants 2 d’un compteur ordinal (CO) ; Adresse mémoire de la prochaine instruction à exécuter ; correspond au registre IP (Instruction Pointer ) en x86 3 registre d’instruction (RI) Contient l’instruction à exécuter, composée de deux champs : 1 − le code de l’opération ; 2 − les opérandes de l’opération (repérées par leur adresse - d’aucune à plusieurs) Cadencement de l’exécution des opérations / instructions Décodage code op. → micro-instructions cadencées sur l’horloge Horloge rapide → une instruction est rapidement réalisée Michel Salomon Intro. aux sys. info. 18 / 50
Unité centrale de traitement (CPU) - Unité de contrôle Exécuter un programme revient à répéter un même cycle d’opérations (étapes 3 et 5 en cas d’opérande en mémoire) : 1 chercher instruction (Instruction Fetch) ; 2 décoder (Instruction Decode) ; 3 chercher opérande(s) (Operand(s) Fetch ) ; 4 exécuter (EXecute) 5 écrire en mémoire (Write Back) Cycle d’exécution d’instructions loop chercher l’instruction à l’adresse dans CO, la mettre dans RI modification du registre CO décoder l’instruction dans RI chercher les opérandes éventuelles exécuter l’opération associée au code opération écrire le résultat end loop Michel Salomon Intro. aux sys. info. 19 / 50
Unité centrale de traitement (CPU) - Unité de contrôle Rôle du séquenceur ⇒ engendrer les micro-instructions Séquenceur câblé → réalisé par un circuit Séquenceur micro-prog. → décrit par des micro-instructions Micro-programme exécuté par une micro-machine comportant un micro-compteur et une mémoire Type de séquenceur ⇒ dépend du type de jeu d’instructions Jeu étendu → famille Complex Instruction Set Computer Grand nombre d’instructions de tailles variables ⇒ micro-programmé Jeu réduit → famille Reduced Instruction Set Computer Petit nombre d’instructions de taille fixe ⇒ câblé (plus efficace) Remarques : intérêt de l’architecture CISC → réduire les accès mémoire ; intérêt de l’architecture RISC → constat dans les années 70/80 80% des prog. ne comportaient que 20% des instr. machines Michel Salomon Intro. aux sys. info. 20 / 50
Unité centrale de traitement (CPU) - UAL L’Unité Arithmétique et Logique est en charge de l’exécution des calculs arithmétiques → addition, etc. ; des calculs logiques → comparaison de mots binaires, etc. Arithmetic and Logic Unit Des informations sur le déroulement d’un calcul sont données par les différents bits du registre FLAG(S) (ou registre d’état, ou encore registre des drapeaux) : indicateur OF (Overflow ) → armé (mis à 1) en cas de débordement en arithmétique signée ; indicateur CF (Carry ) → armé (mis à 1) en cas de débordement en arithmétique non signée ; indicateur ZF (Zero) → armé si le résultat d’une instruction arithmétique est 0 etc. Michel Salomon Intro. aux sys. info. 21 / 50
Unité centrale de traitement (CPU) - UAL Exécution - Principe Une instruction arithmétique nécessiterait 3 adresses mémoire l’Adresse des 2 opérandes du calcul ; l’Adresse où ranger le résultat → nécessite beaucoup de bits pour coder l’instruction Exécution - Pratique Pour simplifier, un registre accumulateur (ACC) était utilisé pour faire le calcul en 3 étapes 1 Transférer l’opérande 1 dans le registre ACC ; 2 Effectuer le calcul entre ACC et l’opérande 2, puis mettre le résultat dans le registre ACC ; 3 Transférer le résultat de ACC à l’adresse mémoire adéquate → à la place d’1 instruction complexe on en a 3 plus simples Michel Salomon Intro. aux sys. info. 22 / 50
Unité centrale de traitement (CPU) - UAL Processeurs actuels Disposent de registres généraux (ou de travail) Architecture 32 bits → 8 registres (EAX,EBX,ECX,EDX, etc.) Architecture 64 bits → 16 registres (RAX,RBX,RCX,RDX, etc.) AX AH AL 63 32 31 16 15 8 7 0 EAX RAX Utilisent uniquement des registres → 1 calcul en 3 étapes : 1 Transférer l’opérande 1 dans le registre Rα ; 2 Transférer l’opérande 2 dans le registre Rβ ; 3 Effectuer le calcul entre Rα et Rβ 4 Transférer le résultat de Rα à l’adresse mémoire adéquate Registres adressés par des bits : 2 bits → 4 registres, etc. Michel Salomon Intro. aux sys. info. 23 / 50
Unité centrale de traitement (CPU) - UAL Illustration du fonctionnement Registre CO 1 FETCH instruction instruction 1 Registre RI Programme instruction 2 3 FETCH operand instruction 3 Registres de travail Mémoire opérande 1 Données opérande 2 ou écriture 5 Reg. FLAG UAL WRITE BACK 2 DECODE 4 EXECUTE Michel Salomon Intro. aux sys. info. 24 / 50
Unité centrale de traitement (CPU) - Techniques diverses Unité de calcul en virgule flottante (coprocesseur mathématique) Floating Point Unit extérieure avant proc. 486 DX Initialement émulée via un micro-code en utilisant l’UAL Jeu d’instructions x87 inclu dans le jeu global x86 Architecture 16 bits, 32 bits, 64 bits Registres plus grands et plus nombreux Jeu d’instructions étendu / spécialisées (MMX, SSEx , etc.) Exemple : x64 Architecture (ou x86-64 ; x86_64 ; AMD64) 16 registres généraux de 64 bits 8 registres FPU(x87) / MMX(“parallélisme” SIMD) de 80 bits 16 registres SSE de 128 bits (extension de MMX) 16 / 32 registres AVX2 de 256 bits / AVX512 de 512 bits Architecture → abstraction définie par un jeu d’instructions Micro-architecture → caractéristiques physiques du processeur Michel Salomon Intro. aux sys. info. 25 / 50
Unité centrale de traitement (CPU) - Techniques diverses Registres du jeu d’instructions x86-64 16 registres généraux de 64 bits (General Purpose Registers) Registres x86 “originaux” → rax, rbx, rcx, rdx, → rbp (start of stack) → rsp (current location in stack, growing downwards) → rsi et rdi (data source / destination copies) Registres pour le mode 64-bit (adresses virtuelles) → r8 à r15 Michel Salomon Intro. aux sys. info. 26 / 50
Unité centrale de traitement (CPU) - Techniques diverses Mémoire cache ⇒ réduire les accès à la RAM Intégration dans le processeur depuis le proc. 486 Différents niveaux : L1, L2 et L3 (du moins au plus rapide) Un niveau peut être Dédié à un cœur Partagé entre plusieurs cœurs Pipeline, puis superpipeline ⇒ “travail à la chaîne” Découpage de l’exécution d’une instruction en étages, à chaque instant un étage peut ainsi exécuter une instruction Superpipeline → augmentation du nombre d’étages (profondeur) Exemple : Pentium 4 / Core ix → pipeline à 20 / 14 étages Problématique pour certaines instructions Instructions ayant des dépendances entre elles Branchements conditionnels Michel Salomon Intro. aux sys. info. 27 / 50
Unité centrale de traitement (CPU) - Techniques diverses Pipeline, puis superpipeline → “travail à la chaîne” Exécution sans pipeline → 25 cycles pour exécuter 5 instructions 0 T 2T 3T 4T 5T 6T 7T 8T 9T temps Inst. Fetch IF1 IF2 Inst. Decode ID1 ID2 Op. Fetch OF1 OF2 EXecute EX1 EX2 Write Back WB1 étages inst. 1 inst. 2 Exécution avec un pipeline à 5 étages → 9 cycles pour exécuter 0 T 2T 3T 4T 5T 6T 7T 8T 9T temps Inst. Fetch IF1 IF2 IF3 IF4 IF5 Inst. Decode ID1 ID2 ID3 ID4 ID5 Op. Fetch OF1 OF2 OF3 OF4 OF5 EXecute EX1 EX2 EX3 EX4 EX5 Write Back WB1 WB2 WB3 WB4 WB5 étages inst. 1 inst. 2 inst. 3 inst. 4 inst. 5 Michel Salomon Intro. aux sys. info. 28 / 50
Unité centrale de traitement (CPU) - Techniques diverses Problèmes lors de l’exécution d’instructions par le pipeline Il y a 3 types d’aléas possible 1 Aléas de structure → Plusieurs étages veulent utiliser simultanément de même parties du CPU ⇒ EX et IF veulent accéder à la mémoire → Solutions : attendre ; dupliquer ; découper le cache L1 en deux 2 Aléas de données → L’instruction en cours d’exécution dépend d’une valeur non encore calculée ⇒ R1=R2+10 suivi de R3=R1*20 → Solutions : suspension ; court-circuit ; réordonnancement 3 Aléas de contrôle → L’instruction suivante dépend du résultat d’une instruction ⇒ saut conditionnel (WB écrit l’adresse de la prochaine inst.) Solution : prédiction du branchement conditionnel (indispensable pour l’efficacité du pipeline) Michel Salomon Intro. aux sys. info. 29 / 50
Unité centrale de traitement (CPU) - Techniques diverses Architecture superscalaire Exécution simultanée de plusieurs instructions Plusieurs pipelines → unités de calcul / d’exécution multiples Pas de dépendance entre instructions exécutées en parallèle Degré = nb de pipelines / unités de calcul multiples Processeurs Core ix → 6-way superscalar = degré 6 1 cycle 2 cycles 3 cycles 5 cycles 2 cycles 1 cycle 1 cycle 1 cycle A B C D E F G H UC A C E F G 0 UC B D H 1 temps 0 5T 10T 15T Exécution d’instructions nécessitant différents nombres de cycles Michel Salomon Intro. aux sys. info. 30 / 50
Unité centrale de traitement (CPU) - Techniques diverses Multicœur et hyper-threading (ou multi-threading) Multicœur Plusieurs cœurs de calcul travaillant en parallèle Programmes dont l’exécution est parallélisable Problème → échange des infos entre les cœurs Hyper-Threading (concept du Simultaneous Multi-Threading) Objectif : utiliser les unités de calcul d’un cœur en permanence Comment ? Création de deux processeurs logiques pour un cœur physique Registres de données, de contrôle dupliqués Partage des unités d’exécution du cœur, cache et du bus Processeurs Core ix → 2-way simultaneous multi-threading Michel Salomon Intro. aux sys. info. 31 / 50
Unité centrale de traitement (CPU) - Techniques diverses Hyper-Threading (ou multi-threading) idle Execution Units Registers L1D cache L2 cache L1I cache Memory Control Execution Units L1D Registers cache L2 cache L1I cache Control Memory 2-way simultaneous multi-threading = 2 processeurs logiques Michel Salomon Intro. aux sys. info. 32 / 50
Unité centrale de traitement (CPU) - Techniques diverses Out-of-order execution ⇒ exécution dans le désordre In-order execution 1 Instruction fetch 2 Operands availables ? (yes → dispatch ; no → fetch) 3 Execution by the appropriate functional unit 4 Write Back results to the register file Out-of-order execution 1 Instruction fetch 2 Instruction dispatch to queue (reservation stations) 3 Instruction waits in queue for operands 4 Execution by the appropriate functional unit 5 Results wait in queue until older instructions are processed 6 Write Back results to the register file Michel Salomon Intro. aux sys. info. 33 / 50
Unité centrale de traitement (CPU) - Techniques diverses Instruction and data flow in Nehalem cores Un cache Translation Lookaside Buffer stocke des translations adresses virtuelles / physiques pour la MMU Michel Salomon Intro. aux sys. info. 34 / 50
Unité centrale de traitement (CPU) - Techniques diverses Instruction and data flow in processors Les Translation Lookaside Buffer stockent des translations adresses virtuelles / physiques pour la MMU Michel Salomon Intro. aux sys. info. 35 / 50
Unité centrale de traitement (CPU) - Techniques diverses Nehalem Core : Front-End Pipeline Michel Salomon Intro. aux sys. info. 36 / 50
Unité centrale de traitement (CPU) - Techniques diverses Nehalem Core : Out-of-order Execution Engine Michel Salomon Intro. aux sys. info. 37 / 50
Unité centrale de traitement (CPU) - Techniques diverses Branch Prediction Unit ⇒ prédiction de branchement conditionnel Vider le pipeline lors d’un branchement est très coûteux Solution réduisant ce problème : un mécanisme de prédiction Prédire le comportement le plus probable lors d’un branchement (instructions conditionnelles et boucles) Taux de prédiction fiable à 90-95% mov AX,0 a=0; mov CX,1 c=1; while: while (c
Mémoires - Hiérarchie Plusieurs types de mémoire cohabitent Mémoire cache (L1, etc.) ; Mémoire centrale (RAM) ; Mémoire de masse (disque dur, CD, DVD, etc.) ; → chaque type présente des caractéristiques différentes Principes guidant l’organisation de ces mémoires 1 Principe de localité → 90% du temps d’exéc. est passé dans 10% du code Localité temporelle ⇒ une donnée (ou instruction) sera probablement réutilisée plus tard ; Localité spatiale ⇒ une donnée (ou instruction) localisée près d’une donnée (ou instruction) utilisée récemment le sera sans doute prochainement ; 2 Plus une mémoire est rapide, plus elle est petite → coût d’encombrement proportionnel à la rapidité Michel Salomon Intro. aux sys. info. 39 / 50
Mémoires - Hiérarchie Pyramide des mémoires Michel Salomon Intro. aux sys. info. 40 / 50
Mémoires - Hiérarchie Nehalem : cache memory organization Michel Salomon Intro. aux sys. info. 41 / 50
Mémoires - Caractéristiques Capacité (ou taille) Nombre d’octets qui peuvent être stockés Cycle mémoire Temps minimum entre deux accès consécutifs Débit Nombre d’octets lus / écrits par seconde Temps d’accès Temps s’écoulant entre une demande d’accès (lecture ou écriture) et son accomplissement Type d’accès direct → accès via une adresse ; par le contenu → mémoire associative ; séquentiel Volatilité Perte éventuelle de l’information Michel Salomon Intro. aux sys. info. 42 / 50
Mémoires - Technologies de réalisation Mémoire de type Static Random Access Memory (Wikipedia) Principe : 1 bit mémorisé via une bascule à base de transistors Très rapide et “coûteuse” Utilisée pour les registres et la mémoire cache dans les proc. Michel Salomon Intro. aux sys. info. 43 / 50
Mémoires - Technologies de réalisation Mémoire de type Static Random Access Memory Principe : 1 bit mémorisé via une bascule à base de transistors Très rapide et “coûteuse” Utilisée pour les registres et la mémoire cache dans les proc. Mémoire de type Dynamic Random Access Memory Principe : 1 bit mémorisé via un transistor couplé à un condensateur Moins rapide (rafraîchissement), facile à fabriquer et d’un coût réduit Utilisée pour la mémoire centrale (SDRAM, DDRAM, etc.) Michel Salomon Intro. aux sys. info. 44 / 50
Mémoire cache - Objectif et types Concept utilisé à différents niveaux On trouve une mémoire cache ou antémémoire dans différents composants matériels ou logiciels tels que : disque dur ; serveur de pages dynamiques ; etc. ; microprocesseur (CPU, GPU) Objectif dans le cas d’un processeur Ne pas avoir à rechercher en mémoire centrale des informations (données, instructions) déjà utilisées ; pour cela on les mémorise près du processeur Types de mémoire cache 1 séparé → données et instructions dans des caches différents 2 unifié → données et instructions dans le même cache Michel Salomon Intro. aux sys. info. 45 / 50
Mémoire cache - Niveaux de cache d’un CPU Dans un processeur on peut avoir jusqu’à 3 niveaux de cache Cache de niveau 1 ou L1 → propre à chaque cœur ; Habituellement cache séparé → opérations simultanées Cache de niveau 2 ou L2 → capacité plus importante Cache de niveau 3 ou L3 → partagé Mot Ligne Bloc CPU L1 L2 L3 Illustration avec deux processeurs Nehalem quadcore Michel Salomon Intro. aux sys. info. 46 / 50
Mémoire cache - Fonctionnement et mapping Fonctionnement 1 Le processeur demande une information ; 2 le contrôleur de cache regarde sa disponibilité dans le cache Oui → succès de cache Non → défaut de cache 3 en cas de défaut de cache le contrôleur demande à la mémoire centrale de lui fournir l’information ; 4 l’information en provenance de la mémoire centrale est stockée dans le cache pour une utilisation ultérieure Mapping de 3 types Méthode indiquant à quelle adresse écrire dans le cache 1 Cache direct → écrire à un endroit précis 2 Cache associatif → écrire n’importe où en suivant une politique 3 Cache associatif par n-ensembles → combine les précédentes (n-way set associative = n nb d’endroits) Michel Salomon Intro. aux sys. info. 47 / 50
Mémoire cache - Fonctionnement et mapping Illustration des mappings (Wikipedia) 1 Cache direct-mapped 2 Cache fully associative Michel Salomon Intro. aux sys. info. 48 / 50
Mémoire cache - Fonctionnement et mapping Illustration des mappings (Wikipedia) 3 Cache n-way associative Michel Salomon Intro. aux sys. info. 49 / 50
Mémoire cache - Remplacement et interaction Politique d’écriture / de remplacement pour les caches associatifs Random → info. choisie aléatoirement First-In-First-Out → info. la plus ancienne Least-Recently-Used → info. la moins récemment utilisée Least-Frequently-Used → info. la moins fréquemment utilisée Most-Frequently-Used → info. la plus fréquemment utilisée Politique de lecture dans la mémoire centrale si défaut de cache Read Through → lecture directe RAM ⇒ CPU No Read Through → lecture RAM ⇒ cache ⇒ CPU Politique d’écriture dans la mémoire centrale Write Through → dans le cache et la RAM Write Back → dans le cache, puis la RAM à l’effacement Michel Salomon Intro. aux sys. info. 50 / 50
Vous pouvez aussi lire