Ch. 8 Mémoire Mounir Boukadoum Traduit et adapté de l’anglais sources anglaises Plan • Vue architecturale d’un ordinateur • L’interface CPU‐Mémoire • La mémoire et les différentes technologies • CPU‐Bus‐E/S • Protocoles de bus Traduit et adapté de l’anglais sources anglaises 1 Architecture fondamentale d’un ordinateur • CPU + mémoire + périphériques – Blocs/composants indépendants travaillant ensemble sous le contrôle du processeur central – Circuits d’interconnexion (glue circuits) et protocoles de communication compris de tous Traduit et adapté de l’anglais sources anglaises Lignes d’interconnexions dans une carte‐mère • Bus système (Front Side Bus) : relie le uP au concentrateur de contrôle mémoire (MCH ou north bridge) • Bus graphique : relie le MCH à la carte graphique – Un contrôleur interne (IGE) prend le relai en utilisant la mémoire vive locale si la carte est absente • Bus mémoire : relie le MCH à la mémoire vive • Bus d’extension d’E/S : relie le concentrateur du contrôleur d’E/S (ICH ou south bridge) aux connecteurs d’E/S – Ports USB , sériels, etc. Traduit et adapté de l’anglais sources anglaises 2 Mode étendu Bus d'adresses Bus de données Mémoire Alimentation Bus de contrôle CPU Horloge Mémoire Interrupt Port Périphérique Interrupt Port Périphérique Traduit et adapté de l’anglais sources anglaises Interface CPU Memoire • Comprend: – – – – – – Bus d`adresses unidirectionnel Bus de données bidirectionnel Ligne de commande de lecture (“read”) Ligne de commande d’écriture (“write”) Ligne indicatrice d’état prêt (“ready”) Ligne(s) de commande indicatrice(s) de taille (8, 16, 32 bit) address bus data bus Read* CPU • L’accès à une adresse demande : Write* Memory Ready size – Lecture : (1) Générer l’adresse et l’indication de taille, (2) Activer Read et copier les données si Ready ou fin de cycle * Peuvent être combinées en R/W* et horloge – Écriture: (1) Générer l’adresse et l’indication de taille, (2) Activer Write et attendre Ready ou fin de cycle Traduit et adapté de l’anglais sources anglaises 3 Organisation hiérarchique de la mémoire • Le CPU et la mémoire n’opèrent pas à la même vitesse, à moins d’utiliser des mémoires au coût élevé! • L’usage d’une mémoire cache offre un compromis Traduit et adapté de l’anglais sources anglaises • Si l'information cherchée ne se trouve pas dans la cache interne (appelée L1 pour niveau 1), le CPU va chercher plus loin – la mémoire cache externe (L2, quelque fois, elle est aussi interne) est plus lente, mais offre plus de capacité (jusqu’`a plusieurs Mo) • Dans les architeures de Harvard, l’usage d’une mémoire externe ramène l’architecture à une de Van Newman (pas de bus de données et instructions différenciés) Traduit et adapté de l’anglais sources anglaises 4 Types de mémoire • Dépendent de l’usage – Mémoire primaire : mémoire de travail, généralement volatile – Mémoire secondaire : mémoire de sauvegarde; non volatile • Variés en fonction de la taille, du format, et de la technologie – Taille : 1, 4, 8 bits – Format = capacité x taille (e.g., 1Gx1) Traduit et adapté de l’anglais sources anglaises Circuits de mémoire • Puces de mémoire + contrôleur d’accès • Chaque puce fournit un ou plusieurs bits par adresse address bus data bus Read Write Ready Size CPU – Les puces peuvent être groupées en parallèle pour obtenir 8/16/32 bits • Un contrôleur décode les adresse et génères les signaux de commande • Exemple: – 8 puces au format 16x1, fournissant chacune 1 bit pour former une mémoire de 16x8 Memory 16x8‐bit memory array 0000 0001 1 0 1 1 0 0 1 0 1 0 0 0 0 0 0 1 1111 0 1 0 1 0 0 1 1 D7 D6 D5 D4 D3 D2 D1 D0 address 1‐of‐16 decoder Boîtiers de 16x1‐bit Traduit et adapté de l’anglais sources anglaises 5 La Mémoire RAM • Mémoire à semiconducteurs volatile, à base d’un effet capacitif – Le contenu doit être raffraichi régulièrement • Le nom RAM (Random Access Mémory) vient du fait que les mémoires étaient à accès séquentiel avant, pour des temps d’accès plus lents • Puces souvent organisées en parallèle sur des barrettes de circuits imprimés au format SIMM/DIMM (Single/Double Inline Memory Module) Traduit et adapté de l’anglais sources anglaises Architecture d’implémentation d’une mémoire RAM • Le CPU voit la mémoire RAM comme une suite linéaire d’octets, mais l’organisation physique des puces est matricielle – Bits individuels répartis dans une matrice, auxquels on accède par rangée (« word line) et colonne (« bit line ») Traduit et adapté de l’anglais sources anglaises 6 Accès à une cellule RAM • L’accès à une cellule se fait en divisant l’addess en un champs de ligne et un autre de colonne Bit lines Word lines Traduit et adapté de l’anglais sources anglaises Accès à une RAM dynamique • Les broches d’adressage fournissent les coordonnées ligne/colonne séquentiellement grâce à deux lignes d’echantillonnage – Exemple: Un DRAM de 64K requiert 16 bits d’adresse (65 536= 216) mais le boitier comporte seulement 8 lignes d’adresse, plus une ligne CAS/ et une autre RAS/. RAS: Row Address Strobe CAS: Column Address Strobe Traduit et adapté de l’anglais sources anglaises 7 Puce DRAM • Les adresses des lignes et colonnes sont multiplexées • Deux lignes CAS et RAS servent au démultiplexage (et jouent le rôle de CS) • Des amplificateurs détecteurs (sens amps.) détectent et amplifient les charges des cellules • Un compteur de rafraichissement peut exister à l`interne Traduit et adapté de l’anglais sources anglaises Fonctionnement d’une puce DRAM • Ex. d’une lecture 4 Data bus closed for input (read) Traduit et adapté de l’anglais sources anglaises 8 Diagramme des temps en lecture d’une DRAM n ns Clock T1 Address T2 T3 T4 T1 Column Address Row Address RAS CAS Output enable Read/ Write Data output Hi-Z Data valid N ns Read cycle Traduit et adapté de l’anglais sources anglaises Technologies de mémoire • DRAM: Dynamic Random Access Memory – Traits positifs : dense (1 transistor par bit) and peu coûteuse – Traits négatifs : demande un circuit de rafraichissement du contenu et relativement lente – Commune comme mémoire primaire dand les PC • SRAM: Static Random Access Memory – Traits positifs : accès rapide et ne demandant pas de rafraichissement – Traits négatifs : peu dense et relativement coûteuse (~RAM/8) – Commune dans les systèmes embarqués et dans les mémoires caches • ROM et Flash ROM: Read Only Memory – Non volatile, non inscriptible (« Masked ROM ») ou temps d’écriture très grand devant le temps de lecture (« Flash ») – Commune dans les BIOS (programme de démarrage des PC) ou comme mémoire secondaire (clés USB, caméras numériques, etc.) Traduit et adapté de l’anglais sources anglaises 9 DRAM versus SRAM Word line Bit Line Cellule DRAM Cellule SRAM • Lecture/Écriture : On active la ligne de mot et on lit/écrit dans la ligne de bit • Dans le cas de la DRAM, la lecture est destructive du contenu qui doit être régénéré Traduit et adapté de l’anglais sources anglaises DRAM versus SRAM Cellule SRAM • Stable après accès • Gestion statique demandant seulement un courant de repos en dehors des accès Cellule DRAM • Accès destructif, circuit de rafraichissement requis ! • Gestion dynamique demandant plus d’énergie • Temps d’accès ralenti par les différentes capacités Traduit et adapté de l’anglais sources anglaises 10 Mémoire ROM à masque •Programmation à la fabrication •Non réinscriptible une fois en opération •Contenu non volatile Traduit et adapté de l’anglais sources anglaises Mémoire Flash • Contenu non volatile • Réinscriptible • À l’état effacé, les grilles sont isolées l’une de l’autre et le transistor ne conduit pas («1 ») • Pour programmer « 0 », deux tensions positives sont appliquées aux grilles pour trapper des électrons entre elles (ce qui fait baisser vth) • L`effet persiste une fois les tensions enlevées, à moins de déloger les électrons trappés avec un champ électrique approprié (ou attendre une dizaine d’années !) Traduit et adapté de l’anglais sources anglaises 11 Puces SRAM • Généralement organisées en tailles de 1, 4 ou 8 bits • Possèdent une entrée de validation appelée CS ou CE • Peuvent avoir des lignes Din et Dout commune Traduit et adapté de l’anglais sources anglaises Diagramme des temps en lecture d’une SRAM • Les lignes d’adresses et CS doivent être stables tAA avant les données • Dout fournit l`information demandée t RC tAA Address Bus 2147H Dout A11‐A0 Address A11‐A0 old address new address CS WE Dout DinWE CS 2147H High‐Speed 4096x1‐bit static RAM high impedance undef Data Valid tACS tHz tRC = Read cycle time tAA = Address access time tACS = Chip select access time tHZ = Chip deselections to highZ out Traduit et adapté de l’anglais sources anglaises 12 Diagramme des temps en écriture d’une SRAM • Les adresses et les données doivent être stables tS avant d’activer WE/ t • Din lit les données t WC AA Address A11‐A0 old address Address Bus new address tS CS WE 2147H Din A11‐A0 DinWE CS 2147H High‐Speed 4096X1‐bit static RAM Din old data new data tHz tACS tS = Signal setup time tRC = Read cycle time tAA = Address access time tACS = Chip select access time tHZ = Chip deselections to highZ out Traduit et adapté de l’anglais sources anglaises Augmentation de la capacité Data In Decoder • On branche plusieurs boîtiers en parallèle (lignes d’adresses, de données et R/W) en gardant les CS distincts • La validation de chaque CS est achevée avec les bits d’adresse non utilisés par les boîtiers (bits de poids fort). • Ex. : Mémoire 16x1 avec 4 boîtiers 4x1 A3 A2 A1 A0 R/W D3 A1 D-In A0 R/W CS D-Out D2 A1 D-In A0 R/W CS D-Out D1 A1 D-In A0 R/W CS D-Out S1 D0 S0 A1 D-In A0 R/W CS D-Out Data Out Traduit et adapté de l’anglais sources anglaises 13 Augmentation de la taille des mots Data In A1 D-In A0 R/W CS D-Out • On branche plusieurs boîtiers en parallèle (lignes d’adresses, CS et R/W) en gardant les lignes de données distinctes • Ex. : Mémoire 4x4‐bit avec 4 boîtiers 4x1 3210 A1 D-In A0 R/W CS D-Out A1 D-In A0 R/W CS D-Out A1 A0 R/W A1 D-In A0 R/W CS D-Out CS Data Out 3210 Traduit et adapté de l’anglais sources anglaises Performance d’une mémoire DRAM • Indicateurs de performance – Temps d’accès : temps requis pour lire une cellule (dépend essentiellement de la technologie des semi‐conducteurs) – Temps d’accès en mode page : temps d’accès à une cellule dans le même page qu’une cellule précédemment sélectionnée (pas besoin de répéter RAS) – Fréquence du raffraîchissement • Technologies d’amélioration – Extended Data Out (EDO) : permet de charger la prochaine addresse durant l’accès en cours – SDRAM : Synchronous DRAM utilise un compteur automatique pour accéder à plusieurs adresses en séquence, en synchronisation avec l’horloge du CPU – DDR SDRAM – Double Data Rate SDRAM permet des accès sur les deux fronts de l’horloge Traduit et adapté de l’anglais sources anglaises 14 Passage de bits à octets Traduit et adapté de l’anglais sources anglaises Modules DRAM • Intègrent plusieurs boîtiers DRAM pour augmenter la taille (quelquefois la capacité aussi) • Se distinguent des SRAMs par le besoin pour un contrôleur qui : – Sépare le bus d’adresses en adresses de rangées et de colonnes – Fournit les signaux RAS and CAS – Rafraichit les boîtiers à intervalles réguliers – Fournit de signaux d’état (e.g., mémoire active en occupée rafraichir les cellules) Traduit et adapté de l’anglais sources anglaises 15 Les différents Bus avec les mémoires : SRAM, DRAM, Mémo cache,… Traduit et adapté de l’anglais sources anglaises Gestion de mémoire virtuelle • Utile pour allouer et gérer la mémoire dans des environnements à usagers multiples; à mémoire fragementée, ou lorsque la capacité demandée dépasse la physique • Il s’agit d’établir un lien entre les adresses utilisées (virtuelles) et les adresses physiques ARM – Fait par un MMU (Memory Management Unit) Traduit et adapté de l’anglais sources anglaises 16 • Le MMU (Management Memory Unit) traduit les addresses virtuelles en adresses physiques, via un cache appelé TLB (Translation Lookaside Buffer). – Les addresses sont groupées en pages suivant une structure en tableau (page table) Traduit et adapté de l’anglais sources anglaises Gestion de mémoire virtuelle • Technique de pagination – L’espace d’adressage physique est divisé en un ensemble de pages formant un page frame et l’espace d’adressage virtuel est fait de pages virtuelles (virtual pages) – Les espaces virtuel et physique communiquent via le MMU Traduit et adapté de l’anglais sources anglaises 17 Traduit et adapté de l’anglais sources anglaises Fonctionnement du MMU interprétation du schéma au diapo précédent • L’adresse virtuelle est de 16 bits soit: 0010000000000100 = 213 + 22 = 8196 – 0010 = 4 bits utilisés pour le No de page, parmi 24 = 16 identificateurs de pages : page 0 à page 15 – 000000000100 = 12 bits de décalage (Offset) à l’intérieur de la page : 0–(212 ‐1) • On a: index = la page virtuelle #2: code 110; P/A bit =1 (P/A signifie: présence/absence) • L’adresse phsyique est = No.page correspondant + Offset= 110000000000100 ce qui donne: 214 + 213 + 22 = 16384+8192+4= 24580 NB: le bit de présence (P/A bit) ne rentre pas dans le compte !! Pour avoir 16 bits dans l’adresse physique, il rajouter un ‘0’ en avant. Traduit et adapté de l’anglais sources anglaises 18 Gestion de mémoire virtuelle • Le Swapping : technique de Pagination/segmentation Concept : Sauver les programmes et données de données inactifs (segments) dans la mémoire secondaire pour libérer de l’espace. Fonctionnement : le Swapping peut survenir pour des processus dormant depuis longtemps, alors que le système d'exploitation a besoin d'allouer de la mémoire aux processus actifs. Traduit et adapté de l’anglais sources anglaises Le Swapping Traduit et adapté de l’anglais sources anglaises 19 Segmentation vs Pagination • Le problème avec la segmentation est que l’unité d’allocation de mémoire (le segment) est de longueur variable • La pagination utilise des unités d’allocation de mémoire fixe, éliminant ce problème Traduit et adapté de l’anglais sources anglaises Traduit et adapté de l’anglais sources anglaises 20