Stockage : capacité, performances Intervenant :Thomas Robert C234-4 thomas.robert@telecom-paristech.fr Transparents : Thomas Robert Institut Mines-Télécom
Lectures possibles Chapitre 7.2 de : http://ceit.aut.ac.ir/~amirkhani/ Downloads/patterson_book.pdf 2
Concepts de base 3 07/10/15 Institut Mines-Télécom
Stockage : contenu adressable par le «pipeline» Définition : Le contenu est adressable par le pipeline si il peut être utilisé dans une instruction (e.g. stocké dans un registre). n Exemples : DRAM, SRAM, Flash n Contre-exemples : disque dur à plateaux, SSD n Caractéristique d un Stockage non adressable Granularité du transfert >> 1 mot Passage obligé par la mémoire Comportement asynchrone 4 07/10/15 Institut Mines-Télécom
Stockage : permanent / volatile n Stockage permanent : mémorisation d information sans contrainte d alimentation du support Disque dur CD n Stockage volatile : mémorisation d information dont l état n est conservé que si le support est alimenté (parfois, l état électronique doit être «rafraichi») n Pratiques usuelles : Permanent => non adressable par le pipeline (contre exemple : la mémoire flash) Stockage Volatil mot clé volatile en C J 5 07/10/15 Institut Mines-Télécom
Espace d adressage n Espace d adressage linéaire : Ensemble d adresses = {0 NbAdresses-1} 1 adresse parmi 2 N = représentation en base 2 sur N bits n 1 adresse = référence vers un contenu n Granularité : octet vs mot 1 Mo = 1024*1024 octet ou 1024* 256 mots de 4 octets # Adresses des octets 2 20 valeurs # Adresses des mots de 4 octets 2 18 Nombres de bits requis par adresse = log 2 (#Adresse) 6 07/10/15 Institut Mines-Télécom
La vision idéalisée du stockage n 1 espace d adressage 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) Envoi de la requête Retour d une valeur si lecture n Fonctionnement interne = traitement de la requête Processeur contrôleur stockage interface avec le bus registres + signaux de contrôle mémoire 7
Mémoire, principe et étude du cas de la DRAM 8
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 9
Le stockage technologies et propriétés n Technologie de stockage : le problème de stabilité/latence 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 >) 10
Comprendre la structure Unité de transfert, de stockage L information transférée w bits = mot (en pratique 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 11
Comprendre le traitement d une lecture Accès à l adresse A codée sur 4 bits n Remarque: 2 4 =16 la taille du bloc = grille 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 12
Latence et débit n Latence d accès : délai entre l envoi de la requête et le début du transfert pour un accès en lecture n Débit : nombre de bits transférés par cycle du bus d échange n Délai d accès mémoire en lecture Latence + (Taille du Mot / débit) Exemple : accès DRAM 14 cycle de latence, débit 2 octets/ cycles, mot de taille 4 => 14+2 cycles 13
Latence et débit : les causes n Latence d accès = temps décodage + récupération interne Temps de sélection et 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 du bus d échange Conflit «structurel» possible sur le tampon (diminue la mise en parallèle des requêtes) n Amélioration : Juxtaposition de plusieurs circuits DRAM (+ de débit) et organisation du stockage en «colonnes» (1 er octet bloc 1, 2 ième bloc 2 Synchronisation des étapes sur une horloge acquittement (+ rapide) Pipelining du traitement des requêtes 14
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 18
Le cas de l architecture ADSP2106x 20
Les autres stockages (suite) 21
Architecture de l ordinateur et stockage Stockage permanent vu comme des E/S 22
Un mot sur les entrées sorties n Vision simplifié du dispositif d entrée sortie Rôle : consomme ou produit des données Ces données seront soit stockée par le dispositif, soit par le processeur (e.g. en mémoire) Si le stockage est local au dispositif : il est peut être directement adressable Le processeur pilote les interactions avec le dispositif via la définition de commandes et la consultation de l état du dispositif Le dispositif possède un moyen de signaler un changement d état au processeur (interruption) n Notion de Mempry mapped I/O : Un dispositif possède des registres internes pour mémoriser son état / ses commandes / ses données. L ensemble des registres sont adressables par le processeur, et les adresses sont définies dans un intervalle connu. 23 07/10/15 Institut Mines-Télécom
Interruption : le fonctionnement n Principe : un événement externe déclenchant un traitement n Note : événement d interruption = numéro n Support matériel pour : stocker l état d exécution interrompu Identifier l adresse du code à exécuter % événement n Fonctionnement : Détection d un changement d état par le processeur à chaque cycle Sauvegarde de l état (limitée souvent à PC, parfois certains registre dont le registre de statu) Calcul de l adresse du traitement et saut En fin de traitement : exécution d une instruction de restauration de l exécution interrompue 24 07/10/15 Institut Mines-Télécom
Cartographie mémoire n 1 carte = 1 processeur + différente mémoires + E/S n 1 bloc mémoire == 1 ensemble avec 2 K mots adressables n Cas usuel pour l embarqué 1 SRAM 1Mbits 1 DRAM 1Gbits 1 Flash 32 Gbits 1 dispositif d E/S utilisant 1024 adresses n Supposons des adresses par octet 4 intervalles de taille variables Cartographie mémoire (Memory map) : placement des intervalles dans 0..2 N 25 07/10/15 Institut Mines-Télécom
Quelques mots sur les stockages de masse n Les contraintes d accès Granularité des lectures /écriture grossière (>>>octet) Référence adresse (notion de bloc) Le transfert de contenu avec des stockages de masse peut se faire de manière asynchrone Mémoire = zone tampon pour stocker le résultat des lectures/ l entrée des écritures n Les performances Latence d accès très importante Temps total de transfert significatif car transferts volumineux Le temps d accès à la donnée = cumul latence mémoire + stockage n Synchronisation avec le processeur Utilisation des interruptions pour dialoguer avec le processeur 26
Autres stockages adressables notables n «Mémoire» Flash : Principe : le support doit être «effacé» pour pouvoir être écrit Effacement macroscopique (>>> octet par octet) Lecture mot par mot Ecrite si effacé mot par mot. n Contenu adressable => positionné dans l espace d adressage. n Latence stable pour les accès en lecture n Latence variable pour les accès en écriture 27 07/10/15 Institut Mines-Télécom
Cache et hiérarchie mémoire 28
Le problème de performance 29
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 30
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 Fonctionnement : Comment organise-t-on le stockage (placement et degré d associativité) Comment détermine-t-on si un contenu est présent (identification) Quoi faire si le stockage est plein (politique de remplacement) Comment traite-t-on les écritures (politique de réécriture) 31 07/10/15 Institut Mines-Télécom
Le vocabulaire lié à la structure du cache Cache Memory! 10 4 processeur! 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Bloc : unité de donnée échangée entre le cache et la mémoire Entrée : unité de stockage permettant de mémoriser 1 bloc et les données nécessaires à sa gestion Cache verrouillé = état fixe Initialisation : 1 bit d état pour le cas «vide» ATTENTION mot bloc utilisé à toutes les sauces 32
Les événements élémentaires sur un cache Cache Memory processeur 4 10 10 4 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 Consomme 4 Consomme 10 Consomme 10 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 Remplacement : action consistant à libérer une entrée pour y stocker un nouveau bloc 33 07/10/15 Institut Mines-Télécom
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 caches == une taille + stratégie de placement + une politique de remplacement n Identification du contenu du cache : Observation : 1 place dans le cache => N emplacements mémoire Proposition : le cache doit contenir des informations pour déterminer l emplacement stocké 34
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 entrée = 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 raisons pratiques W X Y sont souvent des puissances de 2 35
Placement : Quelle ligne de cache utilise-t-on n Stratégie de placement (deux faces d une même pièce) : Du point de vue de la ligne, une ligne peut stocker un contenu d adresse quelconque un contenu provenant d un ensemble d adresse restreint (taille 1-N) 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) 36
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 l adresse souhaité est dans le contenu. 37 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}) 38 INF 227 Architecture et Parallélisme - Mémoire
Le cache associatif complet (2) n Propriétés : 1 accès == consultation de toutes les entrées Au plus un contenu sort La taille sélectionnée/adressée doit être connue Efficace mais couteux 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}) 39 07/10/15 Institut Mines-Télécom INF 227 Architecture et Parallélisme - Mémoire
Associatif par bloc (ou N way associative) n Principe : Visualiser le contenu du cache comme une grille avec des colonnes et des lignes (une entrée = une case) Chaque ligne = 1 ensemble d entrées en mode associatif complet. Chaque colonne est munie d un unique comparateur tag/ Adresse Vérification de la présence : Identification de la «ligne» ou ensemble associatif via un groups de bit appelé index Vérification de la présence du contenu dans l ensemble associatif (via comparaison de l étiquette sur chaque colonne) n Vocabulaire : way = colonne (dit parfois bloc en français ) 40 INF 227 Architecture et Parallélisme - Mémoire
Politique de remplacement n Politique de remplacement : stratégie de sélection d une entrée occupée qui sera libérée lors de la résolution d un défaut de cache (cache miss). n Remarque : n a de sens que pour des caches un minimum associatifs n LRU : évincer l entrée avec la date de dernière accès la plus ancienne n FIFO : évincer l entrée chargée en premier n Si l entrée contient un contenu différent de la mémoire la libération 41
Ecriture dans les caches n Un bloc modifié doit être recopié en mémoire pour assurer la cohérence (bloc complet) n Write back : Recopie mémoire seulement sur éviction n Write-through : recopie mémoire à chaque accès 42 07/10/15 Institut Mines-Télécom
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? 43