Comment améliorer la capacité et la rapidité d'accès à la mémoire centrale?



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

Chapitre 4 : Les mémoires

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

Conception de circuits numériques et architecture des ordinateurs

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

Structure de base d un ordinateur

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)

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

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

Leçon 1 : Les principaux composants d un ordinateur

Architecture des ordinateurs

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

Cours Informatique 1. Monsieur SADOUNI Salheddine

GESTION DE LA MEMOIRE

Architecture des Ordinateurs. Partie II:

Structure fonctionnelle d un SGBD

Structure et fonctionnement d'un ordinateur : hardware

A -Systèmes de fichiers 1 - FAT vs NTFS

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Guide Mémoire NETRAM

Travaux pratiques Détermination de la capacité de stockage des données

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

TD Architecture des ordinateurs. Jean-Luc Dekeyser

Partie 7 : Gestion de la mémoire

Certificat Informatique et internet Niveau 1 TD D1. Domaine 1 : Travailler dans un environnement numérique évolutif. 1. Généralités : Filière

Matériel & Logiciels (Hardware & Software)

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

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

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

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

L ORDINATEUR. Les composants. La carte mère. Le processeur. Fréquence

Documentation d information technique spécifique Education. PGI Open Line PRO

en version SAN ou NAS

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

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

Exigences système Edition & Imprimeries de labeur

Présentation du module Base de données spatio-temporelles

Exigences système Edition & Imprimeries de labeur

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

vbladecenter S! tout-en-un en version SAN ou NAS

DE L ALGORITHME AU PROGRAMME INTRO AU LANGAGE C 51

Cours 3 : L'ordinateur

TIC. Tout d abord. Objectifs. L information et l ordinateur. TC IUT Montpellier

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

AUJOUR'HUI, NOUS ALLONS DÉCOUVRIR

Systemes d'exploitation des ordinateurs

Présentation du système informatique utilisé et éléments d architecture des ordinateurs

Ed 03/95 PAQ 1530 NON URGENTE (INFO PRODUIT) TEMPORAIRE DEFINITIVE

Windows 7, Configuration

Choix d'un serveur. Choix 1 : HP ProLiant DL380 G7 Base - Xeon E GHz

IV- Comment fonctionne un ordinateur?

Exécution des instructions machine

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

Découverte de l ordinateur. Partie matérielle

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

PGI EBP Openline

La virtualisation de serveurs avec VMWare Infrastructure - Retour d expérience. Rodérick Petetin CRI INSA Rennes

MODULE I1. Plan. Introduction. Introduction. Historique. Historique avant R&T 1ère année. Sylvain MERCHEZ

Éléments d'architecture des ordinateurs

Exigences système Commercial & Digital Printing

ESXi: Occupation RAM avec VM_Windows et VM_Linux. R. Babel, A. Ouadahi April 10, 2011

Windows 2000: W2K: Architecture. Introduction. W2K: amélioration du noyau. Gamme windows W2K pro: configuration.

Configurations maximales

Premiers pas sur l ordinateur Support d initiation

la virtualisation pour quoi faire?

Ordinateurs, Structure et Applications

Architecture des calculateurs

TAI049 Utiliser la virtualisation en assistance et en dépannage informatique TABLE DES MATIERES

Mémoire de l'imprimante

Limitations of the Playstation 3 for High Performance Cluster Computing

Pré-requis installation

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

Guide pour l Installation des Disques Durs SATA et la Configuration RAID

HP 600PD TWR i G 4.0G 39 PC

Exigences système Commercial & Digital Printing

Ordinateur Logiciel Mémoire. Entrées/sorties Périphériques. Suite d'instructions permettant de réaliser une ou plusieurs tâche(s), de résoudre un

Architecture des ordinateurs

Architecture des ordinateurs Introduction à l informatique

Protection des données avec les solutions de stockage NETGEAR

Tests de performance du matériel

SERVEUR LYNX CALLEO DATACENTER 2460

Module M1 Elément 2 : Informatique 1 (I1)

Les journées SQL Server 2013

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

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

Gestion de la mémoire

L informatique en solo

Le stockage. 1. Architecture de stockage disponible. a. Stockage local ou centralisé. b. Différences entre les architectures

Tsoft et Groupe Eyrolles, 2005, ISBN :

Dell Vostro 3350/3450/3550/3750

Tester Windows 8 sans l'installer avec Virtualbox

Manuel d utilisation Logiciel (Communications Utility)

VMWare. Vmware: machine virtuelle Un véritable pc avec : VmWare

Mise en oeuvre TSM 6.1

Serveur Lynx CALLEO Application 2240 Fiches Technique

DE L ORDINATEUR. Ligue Libérale des Pensionnés asbl

Partie théorique (20 points) :

PROJET TRIBOX-2012-A

Ordinateur portable Latitude E5410

Structure et Technologie des Ordinateurs A. Oumnad

Transcription:

Hiérarchie mémoire Comment améliorer la capacité et la rapidité d'accès à la mémoire centrale? 6. 1

Tous les programmes que l on exécute et toutes les données auxquelles on accède doivent être «chargés» en mémoire centrale afin que le CPU puisse y accéder L'accès à la mémoire centrale est l'étape la plus lente lors de l'exécution d'une instruction La mémoire centrale n'est pas assez grande pour contenir le programme et les données Les mémoires à grande capacité sont lentes et les mémoires rapides sont chères et à faible capacité! 6. 2

Modèle classique de processeur "Von Neumann" unité centrale mémoire Inconvénients "goulot d'étranglement" lenteur : accès mémoire les uns après les autres, avec une durée déterminée par le protocole de communication très coûteux puisque accès mémoire en plusieurs tops d horloge processeur pas adapté à l évolution technologique : les performances du CPU doublent tous les 18 mois, alors que celles des mémoires doublent tous les 7 ans (loi de Moore) Ordre de grandeur : période de l ordre de 1ns pour CPU du Pentium III, temps d accès DRAM de l ordre de 40ns 6. 3

Amélioration Tenir compte des caractéristiques des accès mémoire impliquées par les langages de haut niveau «localité des références» : on accède successivement dans le temps à des mots d adresses consécutives la mémoire est constituée de plusieurs unités conçues dans technologies. Les unités à accès rapide contiennent des copies des données des unités à accès lent en cours d utilisation (données à des adresses consécutives). CPU MEM1 MEM2 DISQUE capacité et temps d'accès de plus en plus grands 6. 4

1. Classes de mémoires ROM : Read Only Memory stockage permanent (tableau logique et / ou) accès rapide utilisée pour stocker les programmes de boot, le BIOS, les microinstructions dans le cas d une partie contrôle micro programmée modifiable : PROM, EPROM mémoire flash 6. 5

Disques durs disque magnétique, stockage permanent accès séquentiel : pas le même temps pour accéder à chaque piste très grande capacité, accès lent ensemble de disques unité de transfert : 512 o Copyright CommentCaMarche.net 6. 6

RAM: Random Access Memory volatile chaque mot est accessible indépendamment, avec le même temps d'accès Mémoires statiques SRAM Accent sur la rapidité d'accès L'information stockée reste valide statiquement (dans des flip/flop) temps d'accès mémoire temps d'acquisition de la donnée Utilisées pour les caches 6. 7

Mémoires dynamiques DRAM Accent sur la capacité mémoire Stockage dynamique dans des condensateurs, l'information doit être réécrite régulièrement (un millier de fois par seconde) temps d'accès mémoire décomposé en temps d'acquisition temps de mise à jour SDRAM : accès synchrone, DRAM Rambus : boitié bus, DRAM cache : avec cache intégré Utilisées pour la mémoire principale 6. 8

De plus en plus loin du CPU Type de mémoire Technologie Taille Temps d accès Registre flip flop 32, 64, 128 1 ps Cache SRAM 8 à 512 Ko 1 à 5 ns Mémoire centrale Disque DRAM Disque magnétique 256, 512 Mo à 1Go 120 Go à 200 Go 40 ns 7 à 10 ms 10 Mo par s Disque optique CD ROM 100 Go 300 ms 600 Ko par s Clé USB Mémoire flash 4 Go, 2 Go, 512 Mo, 216 Mo 11 Mo par s 6. 9

DRAM plus grande capacité que les SRAM SRAM plus rapides que les DRAM SRAM consomment plus que les DRAM SRAM plus chères que les DRAM SRAM plus encombrantes que les DRAM 6. 10

2. Mémoire multi niveau Coordonner des mémoires à accès rapide (chère, petite) avec des mémoires à accès lent (peu chère, grande) de façon à ce que la plus grande partie des accès se fasse vers les mémoires rapides Basé sur le principe de localité des références : Des parties de programmes accèdent successivement dans le temps (localité temporelle) à des adresses consécutives de la mémoire (localité spatiale). Localité dans la mémoire de données Localité dans la pile Localité dans la mémoire d'instructions Des exemples de localité de référence? 6. 11

Objectif des mémoires multi niveau : temps d'accès mémoire du système global temps d'accès à la mémoire rapide capacité du système global capacité de la grande mémoire Principe utilisé entre : cache primaire et secondaire cache secondaire et mémoire centrale cache intégré dans la mémoire mémoire centrale et disque (mémoire virtuelle) 6. 12

2.1. Principes Plusieurs niveaux de mémoire, deux niveaux adjacents sont manipulés à la fois anté mémoire : plus proche du CPU, plus petite et plus rapide mémoire : plus grande et plus lente bloc Processeur Anté mémoire Mémoire unité minimale d'information: bloc = x mots (par exemple 1 bloc = 8 mots) 6. 13

L'information de l'anté mémoire est une copie d'une partie de l'information de la mémoire Si on trouve la donnée dans l'anté mémoire on y accède Si la donnée n'est pas dans l'anté mémoire on recopie le bloc complet qui contient cette donnée de la mémoire vers l'anté mémoire défaut défaut Anté mémoire Mémoire Selon le principe de la localité des références, si l'on vient d'accéder à une adresse d'un bloc, on accèdera bientôt à des adresses du même bloc 6. 14

2.2. Performances des mémoires multi niveau Pe: taux d'échec d'accès à l'anté mémoire (i.e probabilité qu'un mot mémoire accédé ne soit pas dans l'anté mémoire) Ta: temps d'accès à l'anté mémoire si succès Te: temps de traitement si échec temps moyen accès mémoire = Pe * Te + (1 Pe) * Ta 6. 15

Exemple: temps d accès anté mémoire de 3 ns, temps d'accès mémoire de 50 ns, les blocs contiennent 8 mots donc Te = 8 x 50 ns. Temps moyen d accès à un mot mémoire sans hiérarchie : 50 ns Pe = O,01 Te = 8 50ns Ta = 3 ns for (j = 1;j < 100; j++) traiter(tableau(i)); Temps moyen d accès avec hiérarchie: 0,01 8 50 + 0,99 3 = 6,97 ns Pe = O,9 switch (choix) { Te = 8 50ns case 1: pas = 10; rienfaire(tableau, pas); case 2: pas = 50; dodo(tableau, pas);... Ta = 3 ns } Temps moyen d accès avec hiérarchie: 0,9 8 50 + 0,1 3 = 360.3 ns 6. 16

3. Mémoire cache Cache Mémoire centrale CPU un mot un bloc 1 bloc x mots (4 ici) Petite mémoire entre processeur et mémoire centrale Contient des copies des mots de la mémoire qui risquent d'être accédés par le processeur (localité des références) Le cache est redondant > il n'augmente pas la capacité de la mémoire principale, mais seulement sa rapidité. 6. 17

Lecture 3.1. Fonctionnement du cache Ecriture Réception de l'adresse AD fournie par le CPU Réception de l'adresse AD fournie par le CPU Le bloc contenant AD est il dans le cache? NON Lecture mémoire centrale du bloc contenant AD Le bloc contenant AD est il dans le cache? NON Ecriture de la nouvelle valeur du mot AD dans la mémoire centrale OUI Lecture du mot AD dans cache et envoie au CPU Allocation emplacement cache pour bloc contenant AD Chargement du bloc mémoire dans cache Envoie du mot AD au CPU OUI Ecriture simultanée? OUI NON Ecriture de la nouvelle valeur du mot AD dans le cache ET dans mémoire centrale Ecriture de la nouvelle valeur du mot AD dans le cache (recopie dans la mémoire centrale lors du remplacement du bloc) cohérence de l'information coûteux 6. 18

3.2. Lien entre adresse mémoire et blocs mémoire Si les blocs contiennent p mots, le mot d'adresse ad en mémoire : est dans le bloc "ad div p" de la mémoire à l'indice "ad mod p" Mémoire principale 1 mot mémoire 0 1 2 3 4 5 6 1 bloc mémoire n bloc mémoire 0 1 2 3 4 15 5 Exemple: p = 4, ad = 6 le mot d'adresse 6 se trouve dans le bloc 6 div 4 = 1 de la mémoire avec un déplacement de 6 mod 4 = 2 6. 19

3.3. Bloc de cache Le cache contient beaucoup moins de blocs que la mémoire : un bloc de cache recevra successivement plusieurs blocs mémoire il faut donc pouvoir identifier quel est le bloc mémoire présent dans le cache Bloc de cache: clé valeur du bloc Clé : identificateur du numéro de bloc mémoire Valeur : contenu du bloc mémoire (x cases mémoire) Cache Mémoire principale n bloc cache 3 6 11 15 0 1 2 3 n bloc 0 1 2 3 4 5 mémoire Il y actuellement les blocs mémoire 3, 6, 11 et 15 dans le cache 6. 20

3.4. Où placer/chercher un bloc mémoire dans le cache? La place d un bloc mémoire dans le cache est calculée à partir du numéro de bloc mémoire selon une stratégie de placement qui assure : le plus bas taux d'échec de recherche du bloc le bloc cherché est bien dans le cache à la place calculée un coût réduit de recherche du bloc un bloc mémoire a peu d emplacements possibles dans le cache 3 stratégies caches associatifs caches à accès direct caches associatifs par ensemble de blocs 6. 21

Cache associatif: Un bloc mémoire peut se trouver n'importe où dans le cache Mémoire principale n bloc mém 0 1 2 3 4 12 Cache n bloc cache 0 1 2 3 6. 22

Recherche d'un mot dans un cache de taille N > O(N) comparaisons Pour un accès en (1), ajout d'une logique de comparaison des clés (rapide mais coûteux) CAM: Content Adressable Memories CPU AD <C, D> cache C1 Val1 C2 Val2 Ci Vali AD : adresse mémoire réelle <C,D> : clé du bloc mémoire et déplacement calculés à partir de AD = = = Le mot d'adresse D dans le bloc Val Data=Val[D] Accès réussi 6. 23

Cache à accès direct: Un bloc mémoire a un unique emplacement possible dans le cache Mémoire principale Le bloc mémoire M se place dans le bloc M mod N du cache où N est le nombre de blocs du cache n bloc mém 0 1 2 3 4 13 Cache 13 mod 4 = 1 n bloc cache 0 1 2 3 6. 24

Sacrifier le parallélisme des caches associatifs pour utiliser des RAM ordinaires adresse CPU AD <C,D> 0 1 Cache C mod N clé val = data = val[d] accès réussi 6. 25

Exemple Cache à accès direct organisé en 4 blocs de 16 mots; lecture du mot d'adresse 178 cache 8 17 6 5 0 1 3 2 mémoire Bloc 0 adresses 0..15 Bloc 1 adresses 16..31... Bloc 11 adresses 176..192 1. Quel est le bloc mémoire correspondant? 2. Où se trouve ce bloc dans le cache? 3. Y a t il défaut de cache? 6. 26

Exemple Cache à accès direct organisé en 4 blocs de 16 mots; lecture du mot d'adresse 178 cache 8 17 6 5 0 1 3 2 mémoire Bloc 0 adresses 0..15 Bloc 1 adresses 16..31... Bloc 11 adresses 176..192 1. Quel est le bloc mémoire correspondant? Le mot d'adresse 178 est dans le bloc 178 div 16 = 11 de la mémoire 2. Où se trouve ce bloc dans le cache? le bloc 11 mémoire se cherche dans le bloc 11 mod 4 = 3 du cache 3. Accès cache Le bloc 3 du cache contient le bloc 5 de la mémoire : il y a défaut de cache copie du bloc 11 mémoire dans le bloc 3 du cache 6. 27

Cache associatif par ensemble de blocs: mot mémoire placé dans le cache n'importe où dans un ensemble de blocs. Le numéro d'ensemble est calculé comme dans le cas accès direct : M mod N où N est le nombre d'ensembles du cache Mémoire principale n bloc mém 0 12 Cache ensemble 0 = 12 mod 2 on place le bloc 12 n importe où dans l ensemble 0 n bloc cache 0 1 2 3 n ensemble 0 1 6. 28 N way associative cache

3.5. Quel bloc remplacer lors d'un défaut de cache? cache à correspondance directe: une seule place possible on écrase le bloc correspondant cache associatif: on écrase le bloc qui n a pas été utilisé depuis le plus longtemps (Last Recently Used), ou celui qui est le moins souvent utilisé (Least Frequently Used) cache associatif par ensemble de blocs: dans l ensemble associé au bloc mémoire, on utilise la stratégie LRU ou LFU 6. 29

Récapitulatif cache à accès direct: recherche facile mais une seule place possible fort taux d échec Exemple: pour un cache de 4 blocs, les blocs mémoire 1, 5, 9, 13,. sont tous égaux à 1 modulo 4 et se placent tous dans le bloc 1 du cache ils ne peuvent donc pas être dans le cache en même temps cache associatif: moins d échec car on peut mettre le bloc où l on veut mais recherche difficile (caches chers) cache associatif par ensemble de blocs : compromis entre les 2 6. 30

3.6. Eléments de conception des caches Taille du cache : assez petite pour que le coût global des accès soit proche de celui de la mémoire centrale seule mais assez grande pour être efficace. Ex : IBM 360 (1968) 16Ko, Intel 486 (1989) 8Ko, Intel Pentium (1993) 8Ko/8Ko + 512 Ko, Itanium (2001) 16Ko/16Ko + 96Ko + 4 Mo Taille des blocs : assez grande pour accéder pendant longtemps à des données consécutives mais par trop grande car sinon il y a peu de blocs et donc on écrase des blocs utiles Nombre de caches : la taille des composants diminue donc il est possible d'intégrer dans la puce plusieurs caches. En général, un (ou deux) cache interne L1 plus un cache externe L2. L1 : unifié ou séparé (instructions/données). 6. 31

Exemple: cache du Pentium III 2 niveaux de cache : cache primaire de 32 Ko (16ko instructions, 16ko données) cache secondaire de 256 Ko accès au cache en 1 cycle organisation associative par ensemble de blocs (8 blocs par ensembles, 1 bloc = 16 octets) stratégie de remplacement: bloc le moins récemment utilisé stratégies d'écriture: recopie immédiate Exemple: cache du Pentium 4 Cache L1 micro op (12 Ko) DE 64 Bus système Unité calcul entier Unité calcul flottant Cache L2 (256 Ko) Cache L1 données (8 Ko) 256 6. 32

4. Pagination et mémoire virtuelle But de la pagination: obtenir une mémoire virtuelle à très grande capacité + simplifier la gestion multi processus Mémoire virtuelle = mémoire centrale + disque page: unité de transfert (bloc) adresse virtuelle: clé d'un mot de la mémoire virtuelle adresse physique: adresse réelle du mot dans le disque ou la mémoire centrale La gestion des défauts de page est faite par software (routine d interruption) Remarque: accès disque: mili seconde, 100 000 cycles horloge processeur accès mémoire:nano seconde, 1 à 10 cycles horloge processeur 6. 33

Conclusion Processeur File instructions cache instruction cache données Unité de pagination TLB Disque Cache secondaire Mémoire centrale 6. 34