Stockage et mémoire, Du principe vers la réalité



Documents pareils
Chapitre V : La gestion de la mémoire. Hiérarchie de mémoires Objectifs Méthodes d'allocation Simulation de mémoire virtuelle Le mapping

Architecture des ordinateurs

1 Architecture du cœur ARM Cortex M3. Le cœur ARM Cortex M3 sera présenté en classe à partir des éléments suivants :

SGM. Master S.T.S. mention informatique, première année. Isabelle Puaut. Septembre Université de Rennes I - IRISA

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Conception de circuits numériques et architecture des ordinateurs

GESTION DE LA MEMOIRE

Partie 7 : Gestion de la mémoire

Exécution des instructions machine

Gestion de mémoire secondaire F. Boyer, Laboratoire Sardes

Chapitre 4 : Les mémoires

On distingue deux grandes catégories de mémoires : mémoire centrale (appelée également mémoire interne)

Introduction à l architecture des ordinateurs. Adrien Lebre Décembre 2007

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Structure fonctionnelle d un SGBD

Techniques de stockage. Techniques de stockage, P. Rigaux p.1/43

ASR1 TD7 : Un microprocesseur RISC 16 bits

Sur un ordinateur portable ou un All-in-One tactile, la plupart des éléments mentionnés précédemment sont regroupés. 10) 11)

6 - Le système de gestion de fichiers F. Boyer, UJF-Laboratoire Lig, Fabienne.Boyer@imag.fr

IV- Comment fonctionne un ordinateur?

Cours Informatique 1. Monsieur SADOUNI Salheddine

DU BINAIRE AU MICROPROCESSEUR - D ANGELIS CIRCUITS CONFIGURABLES NOTION DE PROGRAMMATION

Conception de circuits numériques et architecture des ordinateurs

Hiérarchie matériel dans le monde informatique. Architecture d ordinateur : introduction. Hiérarchie matériel dans le monde informatique

Organisation des Ordinateurs

Partie 1. Professeur : Haouati Abdelali. CPGE Lycée Omar Ibn Lkhattab - Meknès haouaticpge@gmail.com

La mémoire. Un ordinateur. L'octet. Le bit

GPA770 Microélectronique appliquée Exercices série A

SYS MEM. Gestion de la mémoire. Table des matières. IUT - Département Informatique. ASR2-Système. 1.1 Motivation

Assembleur. Faculté I&C, André Maurer, Claude Petitpierre

VIII- Circuits séquentiels. Mémoires

Introduction aux SGBDR

Tests de performance du matériel

Représentation des Nombres

Architecture des ordinateurs TD1 - Portes logiques et premiers circuits

Architecture des ordinateurs

Compilation (INF 564)

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Croisière au cœur d un OS Étape 4 : Mise en place de la pagination

Limitations of the Playstation 3 for High Performance Cluster Computing

Rappels d architecture

ELP 304 : Électronique Numérique. Cours 1 Introduction

1. Systèmes d entrée/sortie 2. Systèmes de fichiers 3. Structure de mémoire de masse (disques)

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Guide Mémoire NETRAM

Hubert & Bruno Lundi 12 octobre 2009 SAINT-QUENTIN (02)

Architecture matérielle des systèmes informatiques

Cours n 12. Technologies WAN 2nd partie

SYSTÈME DE GESTION DE FICHIERS

<Insert Picture Here> Solaris pour la base de donnés Oracle

IFT1215 Introduction aux systèmes informatiques

SYSTÈME DE GESTION DE FICHIERS SGF - DISQUE

Système de Gestion de Fichiers

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

Cours 3 : L'ordinateur

Informatique Générale

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

FAMILLE EMC RECOVERPOINT

Comme chaque ligne de cache a 1024 bits. Le nombre de lignes de cache contenu dans chaque ensemble est:

Leçon 1 : Les principaux composants d un ordinateur

Architecture des calculateurs

Systèmes d Exploitation - ENSIN6U3. Aix-Marseille Université

Matériel & Logiciels (Hardware & Software)

White Paper - Livre Blanc

Architecture des ordinateurs Introduction à l informatique

Technologie de déduplication de Barracuda Backup. Livre blanc

Informatique Industrielle Année Architecture des ordinateurs Note de cours T.Dumartin

QUESTION 1 {2 points}

Services OSI. if G.Beuchot. Services Application Services Présentation - Session Services Transport - Réseaux - Liaison de Données - Physique

UEO11 COURS/TD 1. nombres entiers et réels codés en mémoire centrale. Caractères alphabétiques et caractères spéciaux.

Les réseaux cellulaires

Les portes logiques. Voici les symboles des trois fonctions de base. Portes AND. Portes OR. Porte NOT

Représentation d un entier en base b

Cours Bases de données

Programmation C. Apprendre à développer des programmes simples dans le langage C

Licence Sciences et Technologies Examen janvier 2010

4. Utilisation d un SGBD : le langage SQL. 5. Normalisation

Traduction binaire dynamique de l extension SIMD Néon de l ARMv7 dans Qemu

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

Base de l'informatique. Généralité et Architecture Le système d'exploitation Les logiciels Le réseau et l'extérieur (WEB)

CH.3 SYSTÈMES D'EXPLOITATION

Cours 1 : Introduction Ordinateurs - Langages de haut niveau - Application

Assembleur i8086. Philippe Preux IUT Informatique du Littoral. Année universitaire 95 96

Windows Internet Name Service (WINS)

1 LE L S S ERV R EURS Si 5

Systemes d'exploitation des ordinateurs

1. PRESENTATION DU PROJET

Ordinateurs, Structure et Applications

EX4C Systèmes d exploitation. Séance 14 Structure des stockages de masse

INTERSYSTEMS CACHÉ COMME ALTERNATIVE AUX BASES DE DONNÉES RÉSIDENTES EN MÉMOIRE

UE Programmation Impérative Licence 2ème Année

Microprocesseur + Logiciel

Introduction. Adresses

Le protocole ARP (Address Resolution Protocol) Résolution d adresses et autoconfiguration. Les protocoles ARP, RARP, TFTP, BOOTP, DHCP

Concept de machine virtuelle

Gestion répartie de données - 1

Ecole des Hautes Etudes Commerciales HEC Alger. par Amina GACEM. Module Informatique 1ière Année Master Sciences Commerciales

Fonctionnement et performance des processeurs

Programmation assembleur : aperçu

Contributions à l expérimentation sur les systèmes distribués de grande taille

Transcription:

Stockage et mémoire, Du principe vers la réalité Responsable :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Intervenants :Tamy Boubekeur, Guillaume Duc, Gérard Mouret, Thomas Robert Institut Mines-Télécom

La vision idéalisée de la mémoire n 1 espace d adressage linéaire n Transfert simultané de w bits n L interaction : transaction Définition de l adresse Définition de la nature de l accès (lecture/écriture) Définition de la source ou de la destination locale (registre) Réalisation du transfert de donnée «atomique» avec un délai τ via le bus n Fonctionnement interne = traitement de la requête Processeur contrôleur stockage interface avec le bus registres + signaux de contrôle mémoire 2

Mémoire, principe et étude du cas de la DRAM 3

L accès à la mémoire Principe et exemple de mise en œuvre n Principe : Stockage d une quantité d information non triviale Échanges de petites quantités d information (vers ou depuis des registres) Accès à des adresses arbitrairement réparties (d où Random Access Memory) Échange via un modèle de transaction (requête / réponse ) contrôleur stockage 1) Décodage de la requête 2) Contrôle du stockage pour réaliser le transfert Sélection de l emplacement Mise à jour ou diffusion du contenu 4

Le stockage technologies et propriétés n Technologie de stockage : le problème de stabilité Static : information == tension dans un circuit de 6 transistors Stabilité <= alimentation du circuit de stockage (indépendant de l information contenue Dynamic : information == charge sur une capacité Stabilité <= consultation du contenu (détection par seuil) et rechargement périodique de la capacité n Comparaison Coût de production SRAM >> DRAM Latence d accès SRAM << DRAM Consommation énergétique Si aucun accès DRAM>SRAM Si accès fréquent (lecture/écriture) SRAM ~DRAM (ou >) 5

Comprendre la structure Unité de transfert, de stockage L information transférée w bit = mot = 8, 16..64 bits L information stockée w cellules = unité de stockage ~ supercellule w divise w Adresse A Bus d échange Coordonnées (i A,j A ),j A w < Bus i A 6

Comprendre le traitement d une lecture Accès à l adresse A codée sur 4 bits n Remarque 1 : 2 4 =16 la taille du block n Étapes : Traduction de l adresse en coordonnées Récupération de la ligne contenant la cible Sélection de la cellule désirée (extraction) Envoi sur un bus d échange avec le processeur RAS Contrôleur mémoire CAS tampon 7

Latence et débit n Latence d accès : Temps de recopie de la ligne Temps de sélection de la colonne n Débit : Le circuit DRAM émet le contenu d une cellule, potentiellement << taille d un mot Le cycle doit se terminer pour sélectionner une ligne n Amélioration : Juxtaposition de plusieurs circuits DRAM (+ de débit) Synchronisation des étapes sur une horloge acquittement (+ rapide) 8

Module mémoire et découpe de l espace d adressage (1) DRAM0 Espace d adressage Contrôleur mémoire DRAM1 @1 07/10/14 DRAM2 @2 Objectif : spéculation sur la possibilité de traiter en parallèle les requêtes sur @1 et @2 DRAM3 9

Module mémoire et découpe de l espace d adressage (2) A30-A0 == sélection cellules DRAM0 multiplexeur données DRAM1 07/10/14 A32 A31 == sélection bloc DRAM2 Registre d attente pour envoi sur le bus d échange avec le processeur Attention : efficace si Latence envoi sur le bus << latence accès DRAM DRAM3 10

Les bus et le contrôleur n Observation : Une instruction est en mémoire => 1 accès pour la récupérer Une instruction peut avoir besoin d opérandes en mémoire => besoin de traiter plusieurs accès par instruction n Pb : comment l information remonte-t-elle jusqu au processeur? n Solutions Matérielles : Fréquence des bus très élevée + (multiplexage ou mise en file) Multiplication des bus en sortie de la «mémoire» (dual bus) 11

Le cas de l architecture ADSP2106x une architecture Harvard détournée 2 modules d adressage 2*2 Bus 2 Bus en sortie du contrôleur 12

Le cas de l architecture ADSP2106x n Unité d adressage peut changer n Par bloc : 32 ou 48 bit n Réalité : super cellule=16 n Débit de transfert Les deux blocs peuvent contenir des données 1 bus d adresse et d échange par bloc 1 cycle processeur = 1 transaction mémoire => 2 transferts mémoire par cycles 13

Le cas de l architecture ADSP2106x 14

Les autres stockages 15

Architecture de l ordinateur et stockage 16

Quelques mots sur les autres stockages n Les contraintes d accès Granularité grossière d accès (>>>octet) Lecture synchronisée avec le processeur du contenu et filtrage Le transfert de contenu avec des stockage de masse peut se faire de manière asynchrone en partageant la mémoire n Les performances Le temps d accès à la donnée est souvent très long car l accès à l information nécessite Un déplacement physique l accès au bus pour faire remonter l information n Synchronisation avec le processeur Utilisation des interruptions pour dialoguer avec le processeur 17

Cache et hiérarchie mémoire 18

Le problème de performance 19

Principe d un cache n Accès lent aux données dans le «dépôt» Consommation de données médium dépôt n Principe : conserver une copie, plus facilement accessible de ces données sur un stockage rapide SR n Question ouverte : Cette copie va-t-elle servir Comment cela modifie-t-il la procédure d accès aux données Comment gère-t-on la ressource SR 20

Les événements élémentaires sur un cache Cache 4 processeur 10 Consomme 4 Consomme 10 Consomme 10 Memory 10 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Cache hit = accès à la donnée via le cache sans accès à la mémoire Cache miss, accès à une donnée absente du cache => accès mémoire + mise à jour du cache 21

Placement et Identification du contenu du cache n Les questions clés : Quelle quantité d information recopie-t-on? Où la dispose-t-on? Comment gère-t-on la surpopulation? n Les familles de cache == une taille + stratégie de placement + une politique de remplacement n Identification du contenu du cache : Observation : 1 place dans le cache => N emplacement mémoire Proposition : le cache doit contenir des informations pour déterminer l emplacement stocké 22

Stockage et identification du contenu du cache n Hypothèse : Le cache accélère l accès à un ensemble d octets indexés linéairement (adresses sur 2 M bits) n Identification : stockage conjoint Identifiant + donnée n Initialisation et cohérence avec le niveau inférieur (mémoire) État d initialisation : valid/not valid (indique si la ligne est initialisée) État d usage : (pas de nom standard) si 0 même contenu en mémoire et dans le cache n 1 ligne = unité de transfert/stockage B octets répartis entre : W bits pour l identifiant X bits pour l état (souvant plus petit qu un octet) Y octets pour le contenu identifiant état contenu n Remarque : pour des raison pratique W X Y sont souvent des puissances de 2 23

Placement : Quelle ligne de cache utilise-t-on n Stratégie de placement : Du point de vue de la ligne, une ligne peut stocker un contenu d adresse quelconque er un contenu provenant d un ensemble d adresse restreint Du point de vue de l adresse, une adresse se place au choix dans un ensemble de lignes (en fonction de leur contenu) dans une seule ligne (prédéterminée par l adresse) @ ligne Stocke un contenu d @ quelconque Stocke un contenu d un ensemble d @ Peut être placé sur plusieurs lignes Ne peut aller que sur 1 ligne Cache associatif complet (fully associative) Pas cohérent Cache associatif par blocs (set associative) Cache par placement direct (direct map) 24

Le cache associatif complet (1) n Observation : L identifiant doit permettre de reconnaître le contenu n Encodage de l Identifiant & adressage du Contenu C est un vase communiquant Adresses sur 2 M bits, 1 adresse = 1 octet Contenu 2 5 octets => 2 M-5 contenus juxtaposés Identifiant Adresse d un contenu, contenu plus grand qu un registre Récupération du contenu complet sur des registres ou filtrage Identifiant du contenu sur M-5 bits (poids fort de l adresse) n Identification Extraction des bits de poids fort Comparaison avec l identifiant stocké dans la ligne Si correspondance sélection du contenu intéressant 25 INF 227 Architecture et Parallélisme - Mémoire

Le cache associatif complet (1) n Adresse == id de 1 ligne + 1 position dans la ligne n Recherche dans le cache (3 ligne, exemple jouet) Comparaison identifiant requis / identifiant de ligne En parallèle sélection de la fraction souhaitée du contenu Le comparateur contrôle le sélecteur qui laisse passer (ou pas le contenu de la ligne Identifiant requis Décalage Sélection par décalage dans le contenu identifiant état contenu identifiant état contenu identifiant état contenu Détection Hit/Miss Sélection Hit = Ou ({Comp}) 26 INF 227 Architecture et Parallélisme - Mémoire

Un compromis 1 comparateur pour 1 ensemble de lignes n Principe : fragmenter le cache en colonnes => N ensembles de P entrées, 1 comparateur pour 1 ensemble Placement des contenus en fonction d un critère de répartition dans la mémoire d un critère de fraicheur / fréquence de l accès 27 INF 227 Architecture et Parallélisme - Mémoire

Comment cela marche dans le détail 28

Politique least recently used sur 2 blocs n LRU sur deux bloc == complément du dernier lu n Encodage de LRU sur 1 bit n Avantage Occupation des blocs indépendante pour chaque entrée Exemple : I80486 29

Hiérarchie mémoire au sens de l inclusion - de capacité +rapide + cher / unité de stockage L2: L0: Registres L1: SRAM Mémoire principale Registre = fraction (SRAM) SRAM = partie de DRAM. + de capacité - cher - rapide L4: L3: Stockage de masse local Stockage distant Référencement continu de l information => adressage du contenu du disque dur? 30

Mémoire virtuelle, le besoin, la mise en œuvre 31

Du code à l adresse physique Binaire mov addr1,a mov addr1+2,b mul A, B Call addr2 n Ce que l on ne veut pas Placement en dur des données et fonctions n Pourquoi? rend le «partage» de la mémoire plus complexe entre deux fonctions Conception du logiciel requiert une vue globale de la mémoire n Solution Généraliser l adressage indexé base + addr n En pratique : Adresse = 2 composantes, 1 segment + 1 décalage Résolution de l adresse : Segment défini par un registre Décalage défini dans l instruction 32

Un code relogeable (1) n Peut on déplacer les codes suivant à n importe qu elle adresse : mov ax, 4 mov ax, 4 mov bx, 7 add ax, bx mov ax, mov bx, 2 add ax, bx mul ax, bx mov bx, [ax]//@ indexé 33 08/10/14 Institut Mines-Télécom

Un code relogeable (2) n Un code est relogeable si l on peut le charger à un emplacement quelconque en mémoire avant le début de son exécution n Solution pour un code relogeable : Usage systématique d adressage indexé Créer l illusion d espace d adressage séparés pour chaque application n Mémoire virtuelle : mécanisme permettant de créer un niveau d indirection entre une adresse et le contenu mémoire Adresse physique = Traduction (adresse virtuelle) 34 08/10/14 Institut Mines-Télécom

Adressage Virtuel n Limites de l Adressage physique : 1 adresse = 1 cellule de stockage (sauf exception) => espace d adresse limité par le nombre de cellules mémoire 1 fonction d adressage => construit l adresse physique : De la prochaine instruction Des opérandes résidant en mémoire n Objectifs des Adresses virtuelles : 1. Permettre d avoir un espace d adressage plus grand 2. Partager efficacement la mémoire 3. Gérer des contraintes de contrôle d accès n Idée : une donnée dans un programme possède une adresse indépendamment de son stockage (mémoire, disque) 35

Espace d adressage virtuel n Espace d adressage virtuel : Intervalle d adresse permettant de référencé des données indépendamment de leur stockage effectif n Adresse Virtuelle dans la pratique Adresses dans [0,2 N ] avec N très grand Découplage entre adresse et présence en mémoire (hypothèse, si absent de la mémoire => présent sur le disque) Adresse dans le «code» = mode d adressage dans l espace virtuel n Pb : Comment indiquer au processeur où trouver l information? Des mécanismes matériels pour traduire l adresse virtuelle Des données permettant de conserver l information sur ce qui est en mémoire 36

La segmentation dans les processeurs n Idée découper la mémoire en N segments de taille fixe (2 x ), décomposer l adresse en 2 composante : Le segment (identifie le tronçon Le décalage n Traduction de l adresse : Segment stocké dans un registre Multiplication par 2 x puis addition avec le «décalage» n Exemple : x86, CS registre pour le segment de code => calcul de l adresse d un saut n Problème toujours autant d adresses que de mémoire 37

Organisation en Pages n Espace virtuel décomposé en M/2 k pages, (k usuellement vaut 10, 11 ou 12 pour des pages de 1, 2 ou 4 kilo octets) n Espace d adressage physique Découpé en page Chaque page physique contient une page virtuelle Données en mémoire pour faire la traduction @Virt => @ Physique n La page = unité d association espace physique / virtuel Besoin de stocker ces correspondances, + la page est petite, + il y a de correspondances n Comment stocker cette association? 38

Adresse virtuelle, la table de page simple n Espace d adressage = N pages => tableau à N entrées n Chaque entrée = 1 page virtuelle N de page = index dans la table => facile de retrouver l entrée Contenu de l entrée : l adresse du début de page physique où la page est présente (si elle est en mémoire) Information sur les contraintes d accès (lecture / écriture) La table est stockée en mémoire n Sur le processeur 1 registre pour retrouver la table des pages PTBR (Page Table Base Register) 1 bloc de traduction 1. Consulte la table de page pour trouver le numéro de page physique 2. Si présent Construit l adresse physique en additionnant NumPage*2 k +décalage dans la page 2bis. Si absent branchement / interruption pour charger la page 39

Multi programmation et pages de table multi niveaux n Pb : multiprogrammation = Partager les ressources du processeur entre P programmes n Pour la mémoire => P espaces virtuels => P pages tables n Si les espaces virtuels sont grands (N taille de la table) => P tables de taille N = risque d explosion n Application numérique : Adressage virtuel sur 32 bits pour des pages de 4ko => 2 20 pages pour P processus (sur Unix se compte en milliers) 2 32 entrées à stocker en mémoire (saturation) n Solution : Traduction en plusieurs étapes 40

L exemple du IA 32 Hiérarchisation de la table de page => stockage dans l espace virtuel + chargement en mémoire des pages contenant les tables utiles 41

Le mécanisme de TLB : cache de traduction n TLB : Translation Look-aside Buffer Cache pour stocker le résultat de la traduction Décomposition du numéro de Page pour construire un cache associatif (complet ou par bloc) n Exemple d un cache associatif complet @ virtuelle NumPageVirt offset Décomposition de l adresse Alimente la batterie de comparateur du TLB Tag1 @PPhy1 Tag1 @PPhy1 Retourne la valeur PPhy1, PPhy2, ou miss en fonction des comparateurs 42

Un accès de A à Z n de page Décalage MMU Cache mémoire Registres d état Registre pointant la table de page active Cache «TLB» Mémoire physique Table de Pages 1) Interroger le TLB puis la tables des pages pour l entrée identifiée par n page dans la table courante 2) Vérifier la validité de l accès 3) Construire l @ Physique 43 08/10/14 Institut Mines-Télécom