INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1



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

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

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)

Chapitre 4 : Les mémoires

Conception de circuits numériques et architecture des ordinateurs

Partie 7 : Gestion de la mémoire

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

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

Structure fonctionnelle d un SGBD

Guide Mémoire NETRAM

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

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

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

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Architecture des ordinateurs

Leçon 1 : Les principaux composants d un ordinateur

Tests de performance du matériel

GESTION DE LA MEMOIRE

Cours de Systèmes d Exploitation

IV- Comment fonctionne un ordinateur?

Concepts et systèmes de stockage

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

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

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

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

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

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

THEME 1 : L ORDINATEUR ET SON ENVIRONNEMENT. Objectifs

Ne laissez pas le stockage cloud pénaliser votre retour sur investissement

Éléments d'architecture des ordinateurs

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

Structure et fonctionnement d'un ordinateur : hardware

qwertyuiopasdfghjklzxcvbnmqwerty uiopasdfghjklzxcvbnmqwertyuiopasd fghjklzxcvbnmqwertyuiopasdfghjklzx cvbnmqwertyuiopasdfghjklzxcvbnmq

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

Micro ordinateur & Périphériques Mémoire de masse Disque dur (SOLUTION)

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

ISO/CEI NORME INTERNATIONALE

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

Architecture des calculateurs

Informatique pour scientifiques hiver Plan général Systèmes d exploitation

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

Gestion répartie de données - 1

Structure de base d un ordinateur

Stockage des machines virtuelles d un système ESXi jose.tavares@hesge.ch & gerald.litzistorf@hesge.ch

Métriques de performance pour les algorithmes et programmes parallèles

Alchin Couderc Flambard TBSEID 2

Introduction à la Programmation Parallèle: MPI

Caches web. Olivier Aubert 1/35

VMware ESX/ESXi. 1. Les composants d ESX. VMware ESX4 est le cœur de l infrastructure vsphere 4.

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

Livre blanc. Au cœur de Diskeeper 2010 avec IntelliWrite

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

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

EPREUVE OPTIONNELLE d INFORMATIQUE CORRIGE

Technologie de déduplication de Barracuda Backup. Livre blanc

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

FileMaker Server 14. Guide de démarrage

VIII- Circuits séquentiels. Mémoires

Vers du matériel libre

Architecture matérielle des systèmes informatiques

Prise en main. Prise en main - 0

Spécifications détaillées

IN SYSTEM. Préconisations techniques pour Sage 100 Windows, MAC/OS, et pour Sage 100 pour SQL Server V16. Objectif :

Mise en oeuvre TSM 6.1

Démarrer et quitter... 13

«clustering» et «load balancing» avec Zope et ZEO

CHAPITRE 4 LA MÉMOIRE DE L'ORDINATEUR

NOTIONS DE RESEAUX INFORMATIQUES

Les liaisons SPI et I2C

INTRODUCTION AUX SYSTEMES D EXPLOITATION. TD2 Exclusion mutuelle / Sémaphores

Le Programme SYGADE SYGADE 5.2. Besoins en équipement, logiciels et formation. UNCTAD/GID/DMFAS/Misc.6/Rev.7

I00 Éléments d architecture

Architecture des ordinateurs

Exécution des instructions machine

Cours Informatique 1. Monsieur SADOUNI Salheddine

Le Raid c est quoi? Comment ca marche? Les différents modes RAID :

SQL Server 2008 et YourSqlDba

Gestion des sauvegardes

Cours n 12. Technologies WAN 2nd partie

Système de stockage IBM XIV Storage System Description technique

Pré-requis techniques

Sommaire 1. Aperçu du Produit

2.1 Le point mémoire statique Le point mémoire statique est fondé sur le bistable, dessiné de manière différente en Figure 1.

Architecture des Ordinateurs. Partie II:

Adressage des données des contrôleurs du WAGO-I/O-SYSTEM 750. Note d application

Axis IP-Surveillance. Solutions de vidéo sur IP professionnelles pour la sécurité, la vidéosurveillance et le contrôle à distance

LIVRE BLANC Pratiques recommandées pour l utilisation de Diskeeper sur les réseaux SAN (Storage Area Networks)

COMPOSANTS DE L ARCHITECTURE D UN SGBD. Chapitre 1

Matériel & Logiciels (Hardware & Software)

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 données avec les bibliothèques Final Cut Pro X. Livre blanc Juin 2014

Premiers pas sur l ordinateur Support d initiation

EVault Endpoint Protection en détails : Gestion de l entreprise, Sauvegarde, Restauration et Sécurité

Système de Gestion de Fichiers

TD Architecture des ordinateurs. Jean-Luc Dekeyser

environnements SQL Server?

Organisation des Ordinateurs

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

Limitations of the Playstation 3 for High Performance Cluster Computing

Transcription:

INF6500 : Structures des ordinateurs Sylvain Martel - INF6500 1

Cours 2 : Mémoires Sylvain Martel - INF6500 2

Cache Location Niveau 1 Niveau 2 Dimension Vitesse 0 WS 1 WS > 1 WS Type de cache Correspondance directe Entièrement associatif Associatif par ensemble de blocs Dimension (nombre) de blocs Associativité 2-way 4-way 8-way CLK Implémentation Single-port Dual-port Algorithme de remplacement LRU Random FIFO LIFO, Dirty bit Oui Non Type Instructions Data Instr. et Data Option d écriture Écriture simultanée Réécriture Tampon d écriture Oui Non Dimension Vitesse 0 WS 1 WS > 1 WS Type FIFO DPRAM Sylvain Martel - INF6500 3

Techniques d amélioration Stratégie 1. Réduire le taux d échecs 2. Réduire la pénalité d échecs 3. 1 ou 2 via parallélisme 4. Réduire le temps d accès réussi Techniques d amélioration Caches plus petits et simples Éviter la traduction d adresse durant l indexation du cache Pipeliner les écritures pour des écritures réussies rapides Trace cache Caches non bloquants Lecture anticipée par matériel des instructions et des données Lecture anticipée contrôlée par le compilateur Type d échecs Obligatoire Capacité Conflit Augmenter la taille du bloc Augmenter la dimension du cache Associativité plus élevée Optimisation par le compilateur Caches multi-niveaux Redémarrage précoce/ mot critique en premier Priorité échecs lectures sur écritures Caches victimes Type Pseudo Non-pseudo Change ordre de chargement Fusion de tableaux Échange de boucles Fusion de boucles Améliore localité temporelle Blocage Sylvain Martel - INF6500 4

Mémoire Volatile SRAM DRAM Non-volatile: IC ROM (lecture seule) PROM EEPROM FLASH Non-volatile: Systèmes de stockage Disques magnétiques SSD Disques optiques (lecture seule) CD-ROM (lecture seule) CD (modifiable, plus lent) Bandes magnétiques Bibliothèques automatiques de bandes Spécifications Vitesse électronique Latence Débit Type SCSI Non-SCSI Fiabilité RAID1 RAID3 RAID5 Application Cache (voir cache) Mémoire tampon Mémoire principale BIOS Configuration Mémoire virtuelle Catégorie Pages Segments Type Hybride Non-hybride Spécifications Taille du secteur RPM Densité Port d accès Single Dual Techniques pour augmenter le débit Mémoire élargie Mémoire entrelacée Bancs indépendants Entrelacement DRAM spécifique Mode Nibble Page Colonne statique (RAMBUS, etc.) Type FIFO DPRAM Éviter conflits à l aide du compilateur Sylvain Martel - INF6500 5

Concept de la hiérarchie mémoire 0 WS Registres L1 Cache L2 Cache Vitesse Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 6

Pentium SRAM (Cache) DUAL-PORT (ACCESS) Sylvain Martel - INF6500 7

Concept de la hiérarchie mémoire 0 WS Registres L1 Cache L2 Cache Vitesse Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 8

Mémoire principale (DRAM) Sylvain Martel - INF6500 9

Concept de la hiérarchie mémoire 0 WS Registres L1 Cache L2 Cache Vitesse Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 10

Mémoire virtuelle (disque magnétique, etc.) Ex. «HD» Sylvain Martel - INF6500 11

Registres: Dimension: <1KB Temps d accès: 0.25-0.5 ns (Note 1/1ns = 1GHz) Gérés par: Compilateur Sylvain Martel - INF6500 12

Cache: Dimension: <16MB Temps d accès: 0.5-25 ns (Note: court délais supplémentaires, ex. décodeur plus complexe) Géré par: Hardware (matériel) Sylvain Martel - INF6500 13

Mémoire principale: Dimension: <16GB Temps d accès: 80-250 ns Géré par: Operating System -OS (système d exploitation) Sylvain Martel - INF6500 14

Mémoire virtuelle (disque magnétique): Dimension: >100GB Temps d accès: 5,000,000 ns Géré par: système d exploitation/utilisateur Ex. «HD» Sylvain Martel - INF6500 15

Délais Mémoire principale Registres Cache Mémoire virtuelle Sylvain Martel - INF6500 16

Coût par bit 0 WS Registres L1 Cache L2 Cache Vitesse et Coût par bit Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 17

Mémoire cache Sylvain Martel - INF6500 18

SRAM VS. DRAM Design optimisé d un SRAM 4-6 transistors par bit Temps d accès très court Design optimisé d un DRAM 1 transistor par bit (plus de densité d information donc moins $ par bit) Temps d`accès plus long Sylvain Martel - INF6500 19

Amélioration ratio: 1.35 jusqu à 1986, 1.55 après 1986 Performance Processeur/Mémoire Performance 1 Processeur 2 Deux niveaux de cache L1: 0 WS L2: >0 WS et Capacité > L1 Mémoire Un niveau de cache Année Sylvain Martel - INF6500 20

Copie d une portion de la mémoire principale dans le cache 0 WS Registres L1 Cache L2 Cache Vitesse Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 21

La base des caches (Blocs) MEM Bloc 0 Bloc 0 ADDR0 Processeur CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 1 ADDR64K ADDR64K+1 Bloc 7 ADDR128K Sylvain Martel - INF6500 22

La base des caches (Fonctionnement succès (Hit)) Processeur CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Lecture adresse (120,546) Adresse (120,546) est dans le bloc 1 de MEM Le bloc 1 est dans le cache donc cache HIT Bloc 0 Bloc 1 ADDR0 ADDR64K ADDR64K+1 ADDR128K Sylvain Martel - INF6500 23

La base des caches (Fonctionnement Échec (Miss)) Processeur CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Lecture adresse (32,546) Adresse (32,546) est dans le bloc 0 de MEM Le bloc 0 n est dans le cache donc cache MISS Bloc 0 Bloc 1 ADDR0 ADDR64K ADDR64K+1 ADDR128K Sylvain Martel - INF6500 24

La base des caches (Fonctionnement Miss - Suite) Processeur CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Bloc 0 Bloc 1 ACTION: Remplacer un bloc du cache par le bloc 0 Lequel: algorithme de replacement LRU, Random, FIFO, etc ADDR0 ADDR64K ADDR64K+1 ADDR128K Sylvain Martel - INF6500 25

La base des caches Cache est le nom généralement donné au premier niveau de hiérarchie mémoire que l on rencontre en quittant l UCT. Il existe trois types d organisation de cache: Si chaque bloc a uniquement un seule place possible dans le cache, c est un cache à correspondance directe (direct mapped). (Numéro de bloc) mod (Nombre d' ensembles dans le cache) Si un bloc peut être placé n importe où dans le cache, c est un cache totalement associatif (fully associative). Si un bloc peut être placé dans un ensemble restreint de places, c est un cache associatif par ensemble de blocs (set associative). L ensemble est choisi par sélection de bits : (Numéro de bloc) mod (nombre de blocs dans le cache) Sylvain Martel - INF6500 26

Correspondance directe MEM (32 blocs) Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 0 1 2 3 4 5 6 7 CACHE (8 blocs) Bloc 12 Bloc 12 12 MOD 8 = 4 Bloc 31 Sylvain Martel - INF6500 27

Associatif par ensemble (set) de blocs (2-way set associative) MEM (32 blocs) Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Bloc 12 Bloc 31 2-way (2 choix) CACHE (4 ensembles) Bloc 12 0 1 Set 0 LRU 2 Set 1 3 4 Set 2 5 6 Set 3 7 12 MOD 4 = 0 Sylvain Martel - INF6500 28

Associatif par ensemble (set) de blocs (4-way set associative) MEM (32 blocs) Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 4-way (4 choix) Bloc 12 LRU 0 1 2 3 4 5 6 7 CACHE (2 ensembles) Set 0 Set 1 Bloc 12 12 MOD 2 = 0 Bloc 31 Sylvain Martel - INF6500 29

Entièrement associatif MEM (32 blocs) Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 (tous les choix) Bloc 12 LRU 0 1 2 3 4 5 6 7 CACHE (1 ensemble) Set 0 Bloc 12 12 MOD 1 = 0 Bloc 31 Sylvain Martel - INF6500 30

Associativité Impact: Algorithmes de remplacement et dimension (Statistiques: échecs par 1000 instructions) 2-way set associative Dimension LRU Random FIFO 16KB 114.1 117.3 115.5 64KB 103.4 104.3 103.9 256KB 92.2 92.1 92.5 Sylvain Martel - INF6500 31

Associativité Impact: Algorithmes de remplacement et dimension (Statistiques: échecs par 1000 instructions) 4-way set associative Dimension LRU Random FIFO 16KB 111.7 115.1 113.3 64KB 102.4 102.3 103.1 256KB 92.1 92.1 92.5 Sylvain Martel - INF6500 32

Associativité Impact: Algorithmes de remplacement et dimension (Statistiques: échecs par 1000 instructions) 8-way set associative Dimension LRU Random FIFO 16KB 109.0 111.8 110.4 64KB 99.7 100.5 100.3 256KB 92.1 92.1 92.5 Sylvain Martel - INF6500 33

Observations Peu de différence entre LRU et random pour les dimensions plus grandes de cache LRU meilleure pour caches de dimensions plus petites FIFO généralement plus performant que random pour les caches de plus petites dimensions Sylvain Martel - INF6500 34

Associativité Impact: Niveaux d associativité (Statistiques: échecs par 1000 instructions) Algorithme de remplacement: LRU Dimension 2-way 4-way 8-way 16KB 114.1 111.7 109.0 64KB 103.4 102.4 99.7 256KB 92.2 92.1 92.1 Sylvain Martel - INF6500 35

La base des caches (Blocs) (1 bit) CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 (1 bit) Set 0 Set 1 (16 bits) Ensemble 0 (0) ou ensemble 1 (1) MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Bloc 0 Bloc 1 ADDR0 (0000h) ADDR64K (FFFFh) ADDR64K+1 ADDR128K Sylvain Martel - INF6500 36

La base des caches Les lectures dominent les accès cache (25% du trafic du cache de données pour les écritures). Il faut donc que celles-ci soit optimisées à fin de diminuer l attente des processeurs. Il est possible de lire le bloc pendant que l étiquette est lue et comparée. Ce n est pas le cas pour l écriture. Les écritures prennent plus de temps que les lectures. Il existe deux options pour écrire dans le cache: L écriture simultanée (write through): L information est écrite à la fois dans le bloc du cache et dans le bloc de la mémoire. La réécriture (write/copy back): L information est écrite uniquement dans le bloc du cache. Le bloc modifié du cache est recopié en mémoire principale uniquement quand il est remplacé. Sylvain Martel - INF6500 37

La base des caches (L écriture simultanée succès au cache) Écriture au Bloc 1 du cache Accès rapide CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Écriture au Bloc 1 de la mémoire principale Accès lent Mêmes copies MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Remarque: même performance qu un échec au cache Sylvain Martel - INF6500 38

La base des caches (La réécriture succès au cache) MEM Bloc 0 CACHE Bloc 1 Écriture au Bloc 1 du cache Accès rapide Bloc 4 Bloc 2 Bloc 5 Bloc 1 Différentes copies Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Sylvain Martel - INF6500 39

La base des caches (La réécriture échec au cache) Écriture au Bloc 0 du cache 1 Écriture du Bloc 0 de la mémoire principale vers le cache CACHE échec Bloc 4 Bloc 2 Bloc 5 Bloc 1 2 3 LRU Bloc 1 5 Écriture du Bloc 1 du cache vers la mémoire principale 4 Différentes copies? MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Remarque: L étape 4 est faite même si le bloc 1 n a pas été modifié Sylvain Martel - INF6500 40

La base des caches (Dirty bit) Pour diminuer le nombre de remplacements, on ajoute un bit modifié (dirty bit). Ce bit indique si le bloc a été modifié on non. S il ne l a pas été, le bloc n est pas écrit lors d un défaut de cache puisque l information est la même. Sylvain Martel - INF6500 41

La base des caches (La réécriture échec au cache avec dirty bit ) Écriture au Bloc 0 du cache 1 Écriture du Bloc 0 de la mémoire principale vers le cache CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 2 3 Bloc 1 échec LRU 4 Écriture Xdu Bloc 1 du cache vers la mémoire principale Différentes copies? NON MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Bloc 1 n a pas été modifié Sylvain Martel - INF6500 42

La base des caches (La réécriture échec au cache avec dirty bit ) Écriture au Bloc 0 du cache 1 Écriture du Bloc 0 de la mémoire principale vers le cache CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 2 3 Bloc 1 échec LRU 5 Écriture du Bloc 1 du cache vers la mémoire principale 4 Différentes copies? OUI MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Bloc 1 a été modifié Sylvain Martel - INF6500 43

La base des caches (tampon d écriture) L UCT doit attendre la fin des écritures lors d écritures simultanées. On dit alors que l UCT est en suspension d écriture (write stall). Un tampon d écriture (write buffer) permet à l UCT de continuer son traitement une fois que la donnée est écrite dans le tampon. Sylvain Martel - INF6500 44

La base des caches (L écriture simultanée sans tampon d écriture succès au cache) Écriture au Bloc 1 du cache Accès rapide CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Écriture au Bloc 1 de la mémoire principale Accès lent Mêmes copies MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Remarque: même performance qu un échec au cache Sylvain Martel - INF6500 45

La base des caches (L écriture simultanée avec tampon d écriture succès au cache) Écriture au Bloc 1 du cache Accès rapide CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Tampon d écriture Accès rapide Accès lent Mêmes copies Écriture au Bloc 1 de la mémoire principale MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Remarque: même performance qu un succès au cache Sylvain Martel - INF6500 46

Pentium: Data et instruction caches Instruction Cache (Single-access) Data Cache (Dual-access) Sylvain Martel - INF6500 47

Techniques d amélioration de la performance de la mémoire cache Sylvain Martel - INF6500 48

Stratégies pour améliorer la performance des caches Améliorer les performances des caches implique: Réduire le taux d échecs au cache Réduire la pénalité d échec Réduire le temps d accès réussi au cache Sylvain Martel - INF6500 49

Stratégies pour améliorer la performance des caches Améliorer les performances des caches implique: Réduire le taux d échecs au cache Réduire la pénalité d échec Réduire le temps d accès réussi au cache Sylvain Martel - INF6500 50

Réduire le taux d échecs au cache Il existe trois types d échecs: Obligatoire (compulsory):le premier accès à un bloc n est pas dans le cache, et il doit être transféré dans le cache; ils sont aussi appelés échecs de démarrage à froid. Capacité (capacity): Si le cache ne peut contenir tous les blocs nécessaires pendant l exécution d un programme, des échecs de capacité interviendront à cause de blocs écartés puis rappelés plus tard. Conflit (conflict): Si la stratégie de placement des blocs est associative par ensemble ou à correspondance directe, les échecs de conflit interviennent parce qu un bloc peut être écarté et rappelé plus tard si trop de blocs doivent être placés dans son ensemble. Sylvain Martel - INF6500 51

Types de taux d échecs % /100% d échecs LRU (Statistiques pour 4 KB cache) Associativité Compulsif Capacité Conflit 1-way 0.1 72 28 2-way 0.1 93 7 4-way 0.1 99 1 8-way 0.1 100 0 Sylvain Martel - INF6500 52

Types de taux d échecs % /100% d échecs LRU (Statistiques pour 512 KB cache) Associativité Compulsif Capacité Conflit 1-way 0.8 66 33 2-way 0.9 71 28 4-way 1.1 91 8 8-way 1.1 95 4 Sylvain Martel - INF6500 53

Observations Le nombre d échecs compulsifs est indépendant de la dimension du cache Le nombre d échecs de capacité diminue lorsque la dimension du cache augmente Le nombre d échecs de conflit diminue lorsque l associativité augmente Sylvain Martel - INF6500 54

Réduire le taux d échecs au cache Première solution: Une taille de bloc plus grande. L augmentation du la taille du bloc, diminue les échecs obligatoires en raison de la localité spatiale. Elle augmente aussi la pénalité d échec (moins de blocs dans le cache (bloc plus grand à remplacer, plus d échecs de conflit). Sylvain Martel - INF6500 55

Statistiques Taux d échecs vs. Dimension du bloc Dimension du bloc Cache 4K Cache 64K Cache 256K 16 8.57% 2.04% 1.09% 64 7.00% 1.06% 0.51% 256 9.51% 1.15% 0.49% Sylvain Martel - INF6500 56

Réduire le taux d échecs au cache Deuxième solution: Une mémoire cache plus grande. L augmentation du la taille du cache, diminue les échecs de capacité. Elle augmente aussi le $ du cache. Exemple de performance pour 1-way (correspondance directe) cache (Dimension du cache en KB, % total d échecs, % total d échecs capacité): (4 KB, 9.8%, 7%) (8 KB, 6.8%, 4.4%) (16 KB, 4.9%, 4%) (512 KB, 0.8%, 0.5%) Sylvain Martel - INF6500 57

Réduire le taux d échecs au cache Troisième solution: Une associativité plus élevée. Une associativité élevée améliore les taux d échecs L associativité de 8 est approximativement aussi efficace que l associativité totale. Loi empirique 2:1 (un cache de taille N a environ le même taux d échec qu un cache associatif à deux blocs par ensemble de taille N/2). Une associativité élevée augmente le temps d accès réussi Sylvain Martel - INF6500 58

Statistiques de pourcentage du taux d échecs pour différents niveaux d associativité Associativité 1-way Cache 4K 9.8% Cache 64K 3.7% Cache 512K 0.8% 2-way 7.6% 3.1% 0.7% 4-way 7.1% 3.0% 0.6% 8-way 7.1% 2.9% 0.6% Sylvain Martel - INF6500 59

Augmenter la dimension du cache ou l associativité Règle 2:1 cache s applique pour dimensions de 128 KB et moins: Une cache à correspondance directe de dimension N a approximativement le même taux d échecs que 2- way set associative de dimension N/2 Notes: Une cache à correspondance directe est plus simple mais a plus de SRAM que cache associatif de même performance, cependant il est possible que la complexité de la logique de contrôle du cache associatif engendre des délais additionnels donc baisse de la fréquence horloge ou compensation avec SRAM plus rapide donc augmentation de $, si moins que 2 fois le SRAM «direct mapped» pour «2-way set associative «, donc OK. Sylvain Martel - INF6500 60

Réduire le taux d échecs au cache (cache pseudo-associatif) Quatrième solution: des caches pseudo-associatifs. Les succès cache se comportent comme dans un cache à correspondance directe. Lors d un échec, avant d aller vers le niveau inférieur, une autre entrée cache est vérifiée (inversion du bit le plus significatif de l index pour trouver l autre bloc) Ces caches ont un temps d accès réussi rapide si l accès est effectivement réussi et un temps d accès réussi lent qui correspond à un temps d accès réussi en plus d un pseudo accès réussi et de la pénalité d échec. Le danger: trop de pseudo accès réussis baisse la performance. De plus, un temps d accès réussi peut compliquer le pipeline de l UCT. Sylvain Martel - INF6500 61

Associatif par ensemble (set) de blocs (2-way set associative) MEM (32 blocs) Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 TAG Bloc 8 Bloc 31 Set 0 Set 3 01000 TAG Bloc? Bloc? Bloc? Bloc? 8 MOD 4 = 0 (Set 0) DATA DATA MUX CMP CMP OR DATA OUT Enable Hit/ Miss Sylvain Martel - INF6500 62

Associatif par ensemble (set) de blocs (2-way set associative) Etiquette INDEX 01 1 st Way Ensemble 0 Ensemble 1 Ensemble 2 Ensemble 3 01000 Compare 2 nd Way Ensemble 0 Ensemble 1 Ensemble 2 Ensemble 3 Compare OU Sylvain Martel - INF6500 63

Pseudo-associatif par ensemble (set) de blocs Etiquette 01000 INDEX 01 1 st Way Ensemble 0 Ensemble 1 Ensemble 2 Ensemble 3 2 nd Way Ensemble 0 Ensemble 1 Ensemble 2 Ensemble 3 Cycle 1 Compare Cycle 2 Sylvain Martel - INF6500 64

Statistiques de temps d accès moyen au cache pseudo-associatif (0 WS) avec taux d échecs Assoc. 1-way Cache 4K 9.8%-3.44 Cache 64K 3.7%-1.92 Cache 512K 0.8%-1.2 2-way 7.6%-3.25 3.1%-2.14 0.7%-1.55 4-way 7.1%-3.22 3.0%-2.18 0.6%-1.59 8-way 7.1%-3.28 2.9%-2.25 0.6%-1.66 Sylvain Martel - INF6500 65

Réduire le taux d échecs au cache Cinquième solution: Optimisation du compilateur. Aucune modification matérielle nécessaire. Tente d améliorer la localité spatiale et temporelle des données. Sylvain Martel - INF6500 66

Ordre de chargements For(i=0;i<1;i=i+1) For(j=0;j <100;j=j+1) a[j][i]= Le tableau a est écrit dans l ordre de chargement en mémoire, il ne bénéficie donc pas d une localité spatiale. 1 a[0][0] a[0][1] a[0][2] a[0][3] ADDR X ADDR X+1 ADDR X+2 ADDR X+3 2 a[1][0] Sylvain Martel - INF6500 67

Ordre de chargements For(i=0;i<1;i=i+1) For(j=0;j <100;j=j+1) a[i][j]= Le tableau a est écrit dans l ordre de chargement en mémoire, il bénéficie donc d une localité spatiale. 1 2 3 4 a[0][0] a[0][1] a[0][2] a[0][3] ADDR X ADDR X+1 ADDR X+2 ADDR X+3 Sylvain Martel - INF6500 68

Réduire le taux d échecs au cache La fusion de tableaux (augmente la localité spatiale) Combiner des tableaux indépendants en un seul tableau composé de telle sorte qu un seul bloc de cache contiennent les éléments voulus Avant: int val [size] int key[size] Après : struct merge{ int val; int key; }; Struct merge merged_array[size] Sylvain Martel - INF6500 69

Réduire le taux d échecs au cache L échange de boucles Changer l ordre d imbrication des boucles peut faire correspondre l ordre d accès à l ordre de rangement. Avant for(j=0; j<100; j=j+1) for(i=0;i<5000;i=i+1) x[i][j]=2*x[i][j]; Après for(i=0; i<5000; i=i+1) for(j=0;j<100;j=j+1) x[i][j]=2*x[i][j]; Sylvain Martel - INF6500 70

Réduire le taux d échecs au cache La fusion de boucles Fusionner de sections de code séparées accédant à certains tableaux en une même boucle. Les données qui sont amenées dans le cache peuvent être utilisées de nombreuses fois avant d être rejetées. Avant for(i=0;i<n;i=i+1) for(j=0;j<n;j=j+1) a[i][j]=1/b[i][j]*c[i][j]; for(i=0;i<n; i=i+1) for(j=0;j<n;j=j+1) d[i][j]=a[i][j]+c[i][j] Après for(i=0;i<n;i=i+1) for(j=0;j<n;j=j+1){ a[i][j]=1/b[i][j]*c[i][j]; d[i][j]=a[i][j]+c[i][j]; } Sylvain Martel - INF6500 71

Réduire le taux d échecs au cache Le blocage Améliore la localité temporelle. Faire le maximum d accès aux données dans le cache avant que les données soient remplacées. Avant for(i=0;i<n;i=i+1) for(j=0;j<n;j=j+1) {r=0; for (k=0; k<n; k=k+1) r=r+y[i][k]*z[k][j]; x[i][j]=r; }; Les deux boucles internes lisent toutes N par N éléments de z, accèdent de manière répétitive aux mêmes N éléments d une ligne de y, et écrivent une ligne de N éléments de x. Voici les accès aux trois tableaux, la zone sombre indiquant un accès restreint, la zone claire indiquant un accès plus ancien et la zone blanche indiquant l absence d accès. Sylvain Martel - INF6500 72

Réduire le taux d échecs au cache Le blocage (suite) Sylvain Martel - INF6500 73

Réduire le taux d échecs au cache Le blocage (suite) Le code original est changé pour calculer sur une sous matrice de taille B par B de telle sorte que les deux boucles internent calculent par étapes de taille B plutôt que de calculer du début à la fin de x et z. B est appellé le facteur de blocage. Après for(jj=0;jj<n;jj=j+b) for(kk=0;kk<n;kk=kk+b) for(i=0;i<n;i=i+1) for(j=jj; j<min(jj+b-1,n);j=j+1) { r =0; for (k=kk; k<min(kk+b-1,n); k=k+1) r=r+y[i][k]*z[k][j]; x[i][j]=r; }; Sylvain Martel - INF6500 74

Réduire le taux d échecs au cache Le blocage (suite) Sylvain Martel - INF6500 75

Stratégies pour améliorer la performance des caches Améliorer les performances des caches implique: Réduire le taux d échecs au cache Réduire la pénalité d échec Réduire le temps d accès réussi au cache Sylvain Martel - INF6500 76

Réduire la pénalité d échec au cache L objectif est de diminuer le temps moyen d accès mémoire. Les tendances technologiques ont amélioré la vitesse des processeurs plus rapidement que les DRAM, ce qui a augmenté le coût relatif des pénalités d échec avec les années. Voici des optimisations possibles pour répondre au problème: Sylvain Martel - INF6500 77

Réduire la pénalité d échec au cache Première technique: Caches multiniveaux. Cache L1 peut-être assez petit pour fonctionner à 0 WS (à la même vitesse que l UCT); Cache L2 peut-être assez grande pour capturer des accès qui autrement iraient à la mémoire principale et donc, augmenter la pénalité d échecs effectif au cache. Sylvain Martel - INF6500 78

Pentium I-Cache et D-Cache L1) Sylvain Martel - INF6500 79

Réduire la pénalité d échec cache Deuxième technique:le redémarrage précoce et le mot critique en premier. Les deux première techniques nécessitent du matériel supplémentaire. Principe: l UCT a juste besoin d un mot d un bloc à la fois. On n attend pas que le bloc complet soit chargé avant d envoyer le mot demandé à l UCT et redémarrer. Deux stratégies existent: Redémarrage précoce: Aussitôt qu arrive le mot demandé du bloc, l envoyer à l UCT et laisser l UCT continuer l exécution. Le mot critique en premier: Aller chercher d abord en mémoire le mot manquant et l envoyer à l UCT dès qu il arrive; laisser l UCT continuer l exécution pendant qu on remplit le reste des mots du bloc. Sylvain Martel - INF6500 80

Échec (Miss) Processeur CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Lecture adresse (32,546) Adresse (32,546) est dans le bloc 0 de MEM Le bloc 0 n est dans le cache donc cache MISS Bloc 0 Bloc 1 ADDR0 ADDR64K ADDR64K+1 ADDR128K Sylvain Martel - INF6500 81

Échec (Miss) Transfert normal CACHE 1 2 Bloc 0 ADDR0 Processeur 4 Bloc 0 ADDR0 3 ADDR64K ADDR64K Sylvain Martel - INF6500 82

Réduire la pénalité d échec au cache Deuxième technique: «early restart» et «critical word first» - Ne pas attendre que le bloc soit entièrement chargé avant qu il soit envoyé à l UCT. «Early restart» (redémarrage précoce): transférer les mots du bloc dans l ordre normal et aussitôt que le mot requis par l UCT arrive, l envoyer à l UCT et continuer l exécution; Sylvain Martel - INF6500 83

Échec (Miss) Early restart CACHE 1 2 Bloc 0 ADDR0 Processeur 4 Bloc 0 ADDR0 3 5 ADDR64K ADDR64K Sylvain Martel - INF6500 84

Réduire la pénalité d échec au cache Deuxième technique: «early restart» et «critical word first» - Ne pas attendre que le bloc soit entièrement chargé avant qu il soit envoyé à l UCT. «Critical word first» (mot critique en premier): demander de la mémoire le mot manquant en premier et l envoyer à l UCT aussitôt que le mot arrive; laisser l UCT continuer l exécution en mêm temps que le reste du bloc est transféré. Sylvain Martel - INF6500 85

Échec (Miss) Critical word first CACHE 4 5 Bloc 0 ADDR0 Processeur 2 Bloc 0 ADDR0 1 3 ADDR64K ADDR64K Sylvain Martel - INF6500 86

Réduire la pénalité d échec au cache Troisième technique: Donner la priorité aux échecs lecture sur les écritures. Avec un cache à écriture simultanée, l amélioration la plus importante est un tampon d écriture de taille adéquate. Les tampons d écriture compliquent les choses car ils peuvent contenir des valeurs modifiées d une case qui fait l objet d un échec en lecture. Solution la plus simple: les échec en lecture attendent jusqu à ce que le tampon d écriture soit vide L augmentation du tampon d écriture provoque cependant également l augmentation de la pénalité d échecs en lecture. Une alternative: Vérifier le contenu du tampon d écriture sur un échec en lecture, si n y a aucun conflit et que la mémoire est disponible, laisser l échec en lecture se poursuivre. Sylvain Martel - INF6500 87

La base des caches (L écriture simultanée avec tampon d écriture) Écriture au Bloc 1 du cache Accès rapide CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Tampon d écriture Accès rapide Accès lent Bloc 1 (même copie) Copies différentes Écriture au Bloc 1 de la mémoire principale MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Remarque: même performance qu un succès au cache Sylvain Martel - INF6500 88

Si l UCT a besoin d un mot dans le bloc 1 attendre que le bloc 1 de la mémoire principale soit à jour (tampon type FIFO, longue pénalité) Écriture au Bloc 1 du cache Accès rapide Tampon d écriture Accès rapide Accès lent CACHE Bloc 4 Bloc 1 (même copie) Bloc 2 Bloc 5 Bloc 1 MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Sylvain Martel - INF6500 89

Si l UCT a besoin d un mot dans le bloc 1 charger le bloc 1 du tampon d écriture (tampon type DPRAM, courte pénalité, plus complexe et $) Écriture au Bloc 1 du cache Accès rapide Accès rapide CACHE Bloc 4 Bloc 2 Bloc 5 Bloc 1 Tampon d écriture Lecture Accès lent Copies différentes MEM Bloc 0 Bloc 1 Bloc 2 Bloc 3 Bloc 4 Bloc 5 Bloc 6 Bloc 7 Sylvain Martel - INF6500 90

Réduire la pénalité d échec cache Troisième technique: Donner la priorité aux échecs lecture sur les écritures (suite). On peut également baisser le coût des écritures dans un cache à réécriture. Supposons qu un échec en lecture provoque un remplacement d un bloc modifié. Au lieu d écrire le bloc modifié en mémoire, et d effectuer ensuite la lecture, on peut copier le bloc modifié dans un tampon, puis faire la lecture, puis l écriture. De cette manière, la lecture que l UCT est probablement en train d attendre, finira plus tôt. Sylvain Martel - INF6500 91

Réduire la pénalité d échec cache Quatrième technique: Le placement par sous bloc (merging write buffer) Si il y a trop d étiquettes pour tenir dans la puce, on peut choisir de plus gros blocs, ce qui réduit le stockage des étiquettes dans décroître la quantité d information que l on peut ranger dans le cache. Cela fera baisser le taux d échec mais augmentera la pénalité d échec. Sylvain Martel - INF6500 92

Réduire la pénalité d échec au cache Quatrième technique: Le placement par sous bloc (suite). Un alternative: le placement en sous-blocs. Un bit valide est ajouté à des unités plus petites que le bloc entier, appelées sous-blocs. Ce bit spécifie la validité de certaines parties du bloc. En plus de l égalité de l étiquette, le bit de validité doit également être positionné pour que le mot soit dans le cache. La pénalité d échec des sous-blocs est alors réduite. Sylvain Martel - INF6500 93

Réduire la pénalité d échec au cache Cinquième solution: Les caches victimes. N influence pas la fréquence d horloge. Consiste à ajouter un petit cache totalement associatif entre le cache et le chemin de rechargement. Ce cache contient uniquement les blocs qui sont rejetés du cache à cause d un échec et qui sont examinés lors d un échec pour voir s ils contiennent l information désirée avant d aller vers le niveau inférieur. Sylvain Martel - INF6500 94

Stratégies pour améliorer la performance des caches Améliorer les performances des caches implique: Réduire le taux d échecs au cache OU Réduire la pénalité d échec via le parallélisme Réduire le temps d accès réussi au cache Sylvain Martel - INF6500 95

Réduire le taux d échecs ou la pénalité d échec au cache Première technique: les caches non bloquants pour réduire les suspensions sur les défauts de cache (non blocking caches to reduce stalls on cache misses). Un cache non bloquant permet au cache de données de continuer à fournir des accès réussis pendant le traitement d un échec. Cette optimisation accès réussis pendant le traitement d un échec réduit la pénalité d échec effective en utilisant le cache pendant le traitement d un échec au lieu d ignorer les requêtes de l UCT. Sylvain Martel - INF6500 96

Réduire le taux d échecs ou la pénalité d échec au cache Deuxième solution: la lecture anticipée par matériel des instructions et des données (Hardware prefetching of instructions and data) Il s agit d une lecture anticipée dans le cache ou dans un tampon externe avant que la donnée soit réquisitionnée par l UCT Cela accélère l accès à la mémoire principale. Cette technique est faite par le matériel à l extérieur du cache. Utilise la bande passante de la mémoire qui serait autrement inutilisée. Cette technique peut diminuer les performances si elle interfère avec le traitement des échecs. Les compilateurs peuvent aider à réduire les lectures anticipées inutiles. Sylvain Martel - INF6500 97

Réduire les défauts de cache Troisième solution: la lecture anticipée contrôlée par le compilateur (compiler controlled prefetching). Le compilateur introduit des instructions de préchargement pour aller chercher la donnée avant qu elle ne soit nécessaire. Il y a deux principaux types de lectures anticipées: La lecture anticipée de registre : charge la valeur dans un registre La lecture anticipée du cache: charge la valeur uniquement dans le cache et pas dans le registre. Sylvain Martel - INF6500 98

Réduire les défauts de cache Troisième solution: la lecture anticipée contrôlée par le compilateur (compiler controlled prefetching) (suite). Les instructions de prélecture provoquent un surcoût d instructions, il faut donc s assurer que ces surcoûts n excèdent pas les avantages. Ex: For(i=0;i<3;i=i+1) For(j=0;j <100;j=j+1) a[i][j]=b[j][0]*b[j+1][0] Le tableau a est écrit dans l ordre de chargement en mémoire, il bénéficie donc d une localité spatiale contrairement au tableau b. Sylvain Martel - INF6500 99

Stratégies pour améliorer la performance des caches Améliorer les performances des caches implique: Réduire le taux d échec (défauts de cache) Réduire la pénalité d échec Réduire le temps d accès réussi au cache Sylvain Martel - INF6500 100

Réduire le temps de l accès réussi Première technique: des caches petits et simples. Une partie importante du temps d accès réussi au cache est l utilisation de la partie index de l adresse pour lire la mémoire d étiquettes et ensuite de la comparer à l adresse. Garder un cache petit pour qu il tienne dans le même circuit que le processeur pour éviter la pénalité temporelle liée à la sortie du boîtier. Seconde technique: éviter la traduction d adresse durant l indexation du cache. Un adresse virtuelle sur disque doit être transcrite en adresse physique pour accéder au contenu mémoire par le processeur. Les accès réussis sont beaucoup plus courants avec les adresses virtuelles sur le cache. Sylvain Martel - INF6500 101

Réduire le temps de l accès réussi Seconde technique: éviter la traduction d adresse durant l indexation du cache (suite). L adressage virtuel élimine le temps de traduction de l adresse du temps de l accès réussi. Il ne serait cependant pas judicieux de construire que des caches adressés virtuellement car à chaque fois qu un processus (programme) est commuté, les adresses virtuelles réfèrent des adresses physiques différentes, ce qui nécessite une purge du cache. Une purge du cache trop fréquente augmente énormément les taux d échec. De plus, les systèmes d exploitation et les programmes utilisateurs peuvent utiliser deux adresses virtuelles différentes pour la même adresse physique (synonymes) peuvent conduire à deux copies de la même donnée dans un cache virtuel. Sylvain Martel - INF6500 102

Réduire le temps de l accès réussi Seconde technique: éviter la traduction d adresse durant l indexation du cache (suite). De manière à obtenir le meilleur des deux types de caches, est d utiliser le déplacement dans la page, qui est la partie non affectée par la traduction d adresses, pour indexer le cache pendant que l on envoie la partie virtuelle à traduire. Cependant, le cache à correspondance directe ne peut pas être plus gros que la taille de la page. Troisième technique: pipeliner les écritures pour des écritures réussies rapides. Les écritures réussies prennent plus longtemps que les lectures réussies parce que les étiquettes doivent être vérifiées avant d écrire la donnée. Sylvain Martel - INF6500 103

Réduire le temps de l accès réussi Troisième technique: pipeliner les écritures pour des écritures réussies rapides (suite) L étiquette et les données sont séparées pour qu elles puissent être adressées indépendamment. Sur une écriture, la cache compare l étiquette avec l adresse courante de l écriture. La différence concerne l écriture de la partie données du cache qui intervient durant la comparaison d étiquettes. Elle doit utiliser une autre adresse, puisque l adresse d écriture courante est encore en cours de vérification. Le cache utilise l adresse et la donnée de la précédente écriture, qui a déjà été reconnue comme un succès. Le pipeline logique est entre les écritures: la seconde étape de l écriture intervient durant la première étape de l écriture suivante. Sylvain Martel - INF6500 104

Réduire le temps de l accès réussi Troisième technique: pipeliner les écritures pour des écritures réussies rapides (suite). Les écritures peuvent donc être effectuées de manière continue au rythme d une par cycle parce que l UCT n a pas à attendre la comparaison d étiquettes avant d écrire. Sylvain Martel - INF6500 105

Réduire le temps de l accès réussi Quatrième technique: Trace cache. Objectif: Fournir le plus d instructions à chaque cycle de l UCT sans dépendance. Au lieu de limiter les instructions dans un bloc cache statique qui vise la localité spatiale, le «trace cache» trouve une séquence dynamique d instructions pour charger dans le bloc du cache. Mécanisme de «address mapping» plus compliqué. Sylvain Martel - INF6500 106

Mémoire principale, mémoire virtuelle, et systèmes de stockage Sylvain Martel - INF6500 107

Mémoire principale 0 WS Registres L1 Cache L2 Cache Vitesse Mémoire principale Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 108

Mémoire (DRAM) Sylvain Martel - INF6500 109

RAM statique (SRAM) DIN3 DIN2 DIN1 DIN0 bit line word line 3-to-8 decoder 0 IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR 0 1 IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR 2 A2 2 3 IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR A1 A0 1 0 4 IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR 5 IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR 6 2 3 = 8 adresses 2 3, 2 16?, 2 32?? WE_L CS_L OE_L 7 WR_L IOE_L IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR IN OUT SEL WR 7 DOUT3 DOUT2 DOUT1 DOUT0 Copyright 2000 by Prentice Hall, Inc. Digital Design Principles and Practices, 3/e Sylvain Martel - INF6500 110

SRAM VS. DRAM SRAM (4-6 transistors par bit) vs. 1 transistor pour DRAM (meilleure densité d information) À mesure que la capacité des DRAM augmentait, le prix du package avec toute les lignes d adresse nécessaires devenaient un problème Solution: multiplexer les lignes d adresse en deux. Sylvain Martel - INF6500 111

DRAM (Dynamic RAM dynamique) Storage Cell CAS Column Decoder D A0..AX Address Buffer RAS Row Decoder Memory Array Q Sylvain Martel - INF6500 112

La mémoire principale Notions de base La latence des mémoires se mesure principalement avec le temps d accès et le temps de cycle. Le temps d accès est le temps écoulé entre une demande de lecture et le moment où le mot demandé arrive. Le temps de cycle est le temps minimum entre deux requêtes successives à la mémoire. La moitié de l adresse est d abord envoyée, pendant le signal d écriture des accès (RAS). L autre moitié de l adresse est envoyée pendant le signal d écriture des accès colonnes (CAS). Les DRAM utilisent un seul transistor pour stocker un bit. Pour empêcher la perte d information, chaque bit doit être rafraîchi périodiquement (DynamicRandomAccesMemory) La plus part de ordinateurs vendus depuis 1975 est composée de DRAM. Seules les caches utilisent de la SRAM. Sylvain Martel - INF6500 113

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Première technique: une mémoire principale élargie L augmentation de largeur de la mémoire, diminue généralement la pénalité d échec. Il y a un coût à l élargissement : la bus mémoire. L UCT accèdera encore mot par mot et un multiplexeur est maintenant nécessaire entre le cache et l UCT. Également, si un utilisateur veut étendre sa mémoire, l incrément minimum est doublé ou quadruplé quand la largeur est doublée ou quadruplée. Sylvain Martel - INF6500 114

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Première technique: une mémoire principale élargie UCT Cache MUX Cache L1 L2 Mémoire Sylvain Martel - INF6500 115

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Seconde technique: la mémoire entrelacée simple (interleaved) Accroître la largeur de bande augmente la bande passante. Un autre façon est d exploiter le parallélisme potentiel en ayant beaucoup de DRAM dans un système mémoire. Utiliser la bande passante de toutes les DRAM dans le système. Les bancs ont souvent une largeur d un mot. L envoi d adresses à plusieurs bancs leur permet à tous de lire simultanément. Une mémoire entrelacée est une mémoire avec bancs, dont les mots sont entrelacés. Ceci optimise les accès mémoires séquentiels. Sylvain Martel - INF6500 116

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Deuxième technique: une mémoire entrelacée simple C1 Mémoire Banc 0 C8 UCT Cache Mémoire Banc 1 Mémoire Banc 2 Mémoire Banc 3 Note: débit élevé mais latence assez longue, PCB plus simple Sylvain Martel - INF6500 117

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Troisième technique: des bancs mémoires indépendants. Les bancs mémoires permettaient une bande passante élevée en entrelaçant des accès séquentiels. Une généralisation des bancs est de permettre plusieurs accès indépendants, avec plusieurs contrôleurs mémoires pour permettre aux banc d opérer indépendamment. Quatrième technique: éviter le conflits de bancs mémoire. L augmentation du nombre de bancs entraînent quand même plusieurs conflits. Uns solution serait d utiliser un compilateur pour éviter d accéder au même banc et réduire ainsi les conflits. Numéro de banc = Adresse MOD (Nombre de bancs) Adresse dans le banc = Adresse/Nombre de bancs Sylvain Martel - INF6500 118

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Entrelacement spécifique aux DRAM pour améliorer les performances des mémoires principales. Le temps d accès des DRAM se divise en accès ligne et accès colonne. Les DRAM mémorisent une ligne de bits dans un registre tampon du circuit pour l accès colonne. Trois modes d optimisation: Le mode nibble : La DRAM peut fournir trois bits supplémentaires depuis des cases séquentielles pour chaque RAS. Le mode page : Le tampon agit comme une SRAM; en changeant l adresse colonne, on peut accéder à n importe quel bit du tampon jusqu au prochain accès ligne ou jusqu au moment du rafraîchissement. Colonne statique : Très semblables au mode page, sauf qu il n est pas nécessaire d agir sur la ligne d échantillonnage de l accès colonne à chaque fois que les adresses colonne changent. Sylvain Martel - INF6500 119

Techniques pour augmenter les performances de la mémoire principale (augmenter le débit des mémoires) Entrelacement spécifique aux DRAM pour améliorer les performances des mémoires principales (suite). De nouveaux types de DRAM ont vus le jour, optimisant l interface entre la DRAM et l UCT. RAMBUS supprime RAS et CAS, les remplaçant par un bus qui permet d autres accès sur le bus entre l envoi de l adresse de retour de la donnée. VRAM est un DRAM avec une ligne de sortie série rapide, utilisée pour piloter les consoles. Etc. Sylvain Martel - INF6500 120

Autres types de mémoire que l on retrouve dans un ordinateur (volatile vs. non-volatile) ROM, PROM, EPROM, EEPROM, FLASH Sylvain Martel - INF6500 121

Pentium ROM Sylvain Martel - INF6500 122

Mémoire virtuelle Chaque processus (programme qui tourne sur une machine) possède un espace d adressage. On ne peut pas attribuer à chaque processus un espace d adressage mémoire complet. On doit répartir une quantité beaucoup plus petite de mémoire physique entre plusieurs processus. La mémoire virtuelle divise la mémoire physique en blocs qu elle alloue à différents processus. Cette approche implique un système de protection qui confine un processus aux blocs qui lui appartiennent effectivement. La mémoire virtuelle fut inventée pour décharger les programmeurs. Sylvain Martel - INF6500 123

Mémoire virtuelle Elle gère automatiquement les deux niveaux de hiérarchie mémoire (mémoire principale et secondaire). La mémoire virtuelle simplifie le chargement et le déchargement du programme pour l exécution. Un bloc de mémoire physique est l équivalent d un nombre de pages < nombre de pages de mémoire virtuelle. L UCT fournit des adresses virtuelles qui sont traduites, par une combinaison matérielle et logicielle, en adresses physiques, utilisées pour accéder à la mémoire principale. C est la correspondance mémoire ou traduction d adresse (memory mapping or address translation) TLB TranslationLookaside Buffer Sylvain Martel - INF6500 124

Concept de la hiérarchie mémoire 0 WS Registres L1 Cache Vitesse Adresses Physiques L2 Cache Mémoire principale Adresses Virtuelles Mémoire virtuelle Dimension/capacité Sylvain Martel - INF6500 125

Mémoire virtuelle (disque magnétique, etc.) Ex. «HD» Sylvain Martel - INF6500 126

Mémoire virtuelle Sylvain Martel - INF6500 127

Mémoire virtuelle Il existe quelque différences quantitatives entre la mémoire virtuelle et les caches: Le remplacement, lors de défauts de cache, est contrôlé essentiellement par matériel, alors que le remplacement dans la mémoire virtuelle est contrôlé essentiellement par le système d exploitation. La taille de l adresse du processeur détermine la taille de la mémoire virtuelle alors que la taille du cache est normalement indépendante de l adresse du processeur. Il existe deux catégories de mémoire virtuelle: Blocs de taille fixe : pages (entre 4096 et 65536 octets). Blocs de taille variable : segments (entre 1 octet et 2^32 octets). Sylvain Martel - INF6500 128

Pentium 232 adresses Sylvain Martel - INF6500 129

Mémoire virtuelle L adressage paginé a une seule adresse, de taille fixe, divisée en numéro de page et adresse dans la page, comme pour l adressage du cache. Pour l adressage segmenté, nécessite un mot pour le numéro de segment et un mot pour le déplacement dans le segment, soit un total de deux mots. Un espace d adressage segmenté est plus simple pour le compilateur. Aujourd'hui, quelques machines utilisent une approche hybride : la segmentation paginée, où un segment correspond à un nombre entier de pages, ce qui simplifie le remplacement des pages. Sylvain Martel - INF6500 130

Mémoire virtuelle Une autre approche hybride plus récente correspond aux machines qui offrent plusieurs tailles de page, les tailles les plus grandes étant une puissance de deux fois la plus petite taille de page. La pénalité d échec pour une mémoire virtuelle correspond à l accès à un disque magnétique tournant. Celle-ci est donc relativement importante. Les systèmes d exploitation permettent aux blocs d être situés n importe où en mémoire principale. Sylvain Martel - INF6500 131

Mémoire virtuelle La pagination et la segmentation sont basées sur une structure de données qui est indexée par le numéro de page ou de segment. Cette structure contient l adresse physique du bloc. Pour la segmentation, l adresse dans la page est ajoutée à l adresse physique du segment pour obtenir l adresse virtuelle finale. Sylvain Martel - INF6500 132

Mémoire virtuelle Pour la pagination, l adresse dans la page est simplement concaténée au numéro de page physique. La structure de données contenant les numéros de page physique se retrouve sous une table des pages. Pour réduire la taille de cette structure, certaines machines appliquent une fonction de hachage à l adresse virtuelle. Pour réduire le temps de traduction d adresse, ont utilise un cache dédié à ces traductions, le tampon de traduction anticipé (translation lookaside bufferi) TLB. L OS est responsable de minimiser les défauts de page. Ces derniers utilisent la technique LRU avec un bit de référence pour effectuer ce remplacement. Sylvain Martel - INF6500 133

Pentium TLB Sylvain Martel - INF6500 134

Mémoire virtuelle Durant une écriture la stratégie est toujours une réécriture. Le coût d un accès inutile est très grand, on utilise donc un bit modifié, de telle sorte que les seuls blocs écrits sur disque sont ceux qui ont été modifiés depuis leur chargement à partir du disque. Les techniques de traduction rapide d adresse. Les tables de pages sont rangées en mémoire principale (très grande taille) Les accès mémoires sont donc au moins deux fois plus long (1 accès pour l adresse physique et un autre pour la donnée) Ce coût est trop grand. Un solution: mémoriser la dernière traduction pour que le processus de correspondance n intervienne pas si l adresse courante correspond à la même page que l adresse précédente. Sylvain Martel - INF6500 135

Mémoire virtuelle Une autre solution générale consiste à localiser les traductions d adresses, comme les accès. En conservant les traductions d adresses dans un cache spécial, un accès mémoire utilise rarement un second accès pour obtenir la donnée: c est le TLB. Une entrée TLB contient une étiquette avec des parties de l adresse virtuelle et une données qui contient un numéro de page physique, le champ de protection, le bit de valide et généralement le bit d utilisation et le bit modifié. Les étapes de traductions sont: Envoi de l adresse virtuelles à toutes les étiquette. On s assure que l étiquette est marquée comme valide. On s assure qu il n y a pas de violation de la protection mémoire. L étiquette qui coïncide envoie l adresse physique à travers le multiplexeur 32:1. Sylvain Martel - INF6500 136

Mémoire virtuelle Le déplacement dans la page est alors combiné avec le numéro de page physique pour constituer une adresse physique complète sur 34 bits. La sélection d une taille de page Arguments pour une grande taille sur une petite taille: La taille de la table des pages est inversement proportionnelle à la taille de la page. La taille de la mémoire peut ainsi être réduite avec des pages plus grandes. Une taille de page plus grande facilite des temps de succès cache rapides. Le transfert de plus grandes pages vers ou depuis la mémoire secondaire, éventuellement à travers le réseau, est plus efficace que le transfert de petites pages. Le nombre d entrées du TLB est limitée. Sylvain Martel - INF6500 137

Mémoire virtuelle La motivation principale pour une taille de page plus petite est la minimisation de l espace mémoire. Une taille de page plus petite conduira à moins de pertes quand une région contïgue de mémoire virtuelle n est pas gale en taille à un multiple de la taille des pages. Cette mémoire inutilisée se nomme la fragmentation interne. Sylvain Martel - INF6500 138

Les systèmes de stockage Sylvain Martel - INF6500 139

Les types de composants de stockage Les disques magnétiques. Haute capacité Mémoire à long terme non volatile 1 à 20 plateaux rotatifs avec des disques métalliques recouverts avec un matériel d enregistrement magnétique des deux côtés. La surface des disques est divisé en cercles concentriques (pistes). Il y a entre 500 et 2500 pistes sur chaque surface. Chaque piste est divisée en secteurs qui contiennent les informations. Un secteur est la plus petite unité qui peut être écrite ou lue. Il y environ 64 secteurs par piste. Généralement toutes les pistes ont le même nombre de secteurs. Les pistes extérieures sont plus longues et enregistrent l information à une densité plus faible que les pistes intérieures. Sylvain Martel - INF6500 140

Les types de composants de stockage Avec l arrivé d interfaces intelligentes comme SCSI, il est possible d enregistrer plus de secteurs par piste. Pour lire ou écrire, un bras mobile avec une tête de lecture/écriture est situé au-dessus de chaque surface. Les bras se déplacent ensemble au dessus de la même piste de toutes les surfaces. Un cylindre est l ensemble des pistes sous le bras en un point donné de toutes les surfaces. Lors d un lecture ou d une écriture, le contrôleur de disque envoie une commande pour déplacer le bras sur la bonne piste (seek). Le temps nécessaire à cette opération est le temps de recherche. Le temps pour que le secteur désiré atteigne la tête est appelé délais de rotation. Les nouveaux disques atteignent des vitesses de 7200 tours par minute (RPM). Sylvain Martel - INF6500 141

Les types de composants de stockage Délai de rotation moyen = 0.5 Nombre de tours / minute Le temps pour que le secteur désiré atteigne la tête est appelé délais de rotation. Les nouveaux disques atteignent des vitesses de 7200 tours par minute (RPM). Le temps de transfert est le temps nécessaire pour transférer un bloc de bits, typiquement un secteur. Cette variable dépend de la taille du bloc, de la vitesse de rotation, de la densité d enregistrement d une piste et de la vitesse de l électronique interconnectant le disque à l ordinateur. Le temps contrôleur est le surcoût que le contrôleur impose pour effectuer l accès E/S. Sylvain Martel - INF6500 142

Les types de composants de stockage L avenir des disques magnétiques. L amélioration de la capacité des disques s exprime par la densité par unité de surface. Pistes Densité de surface = sur la surface du disque Pouce Bits Pouce sur une piste L utilisation de DRAM en tant que disques. Solid state disks (SSD). Ce sont des DRAMs avec une batterie pour rendre le système non volatile. Il fait appel au système d exploitation pour le transferts. Une autre technologie est le stockage étendu (Extended Storage). C est une grande mémoire qui autorise uniquement des transferts de blocs depuis et vers la mémoire principale. Les deux techniques ont des temps de recherche courts et un grand débit de transfert. Sylvain Martel - INF6500 143

Les types de composants de stockage Les disques optiques. CD-ROM. Ils sont peu chers à fabriquer. Lecture seule (Les données sont non modifiables). Il existe des CD réinscriptibles (plus lents que le CD-ROM) oú l information peut être inscrite un nombre limité de fois. Les bandes magnétiques. Même technologie que les disques magnétiques mais beaucoup moins chère en raison la géométrie de la bande qui ne permet pas un accès aléatoire. Accès séquentiel Utilisé principalement pour les sauvegardes. Les bibliothèques automatiques de bandes. Couplage de plusieurs bandes magnétiques gérées par un robot. Enorme quantité d information peut y être stockée. Sylvain Martel - INF6500 144

E/S Mémoire principale Registres Cache Mémoire virtuelle Sylvain Martel - INF6500 145

Mesures des performances des E/S. Deux mesures : Bande passante E/S Latence E/S Modèle client-serveur: Le client crée des tâches à réaliser et les place dans un tampon; le serveur les prend dans un tampon de type FIFO (premier entré, premier sorti) et les exécute. Le temps de réponse est défini comme le temps qui s écoule entre le moment où une tâche est placée dans le tampon et le moment où le serveur termine son exécution. Sylvain Martel - INF6500 146

Mesures des performances des E/S. Le débit est le nombre moyen de tâches effectuées par le serveur pendant une période donnée. Sylvain Martel - INF6500 147

Fiabilité, disponibilité et RAID La fiabilité peut seulement être accrue par l amélioration de l environnement, en construisant des composants plus fiables. La disponibilité détermine s il un système donné est encore en mesure de performer malgré une contrainte donnée. Une innovation qui améliore à la fois la disponibilité et la performance d un système de stockage correspond aux matrices de disques. Puisque le prix par méga octet est indépendant de la taille du disque, le débit potentiel peut être augmenté en ayant beaucoup de contrôleurs de disques, et donc beaucoup de bras de disques. L inconvénient : avec trop de composants, la fiabilité chute : N composants ont généralement 1/N fois la fiabilité d un seul composant. Sylvain Martel - INF6500 148

Fiabilité, disponibilité et RAID Une matrice de disque ne peut jamais être plus fiable qu un petit nombre de disques de plus grande capacité si chaque disque a le même taux de pannes. La disponibilité peut cependant être améliorée en ajoutant des disques redondants. Si un disque tombe en panne, l information perdue peut être reconstituée à partir de l information redondante. Le seul danger: avoir une nouvelle panne disque entre le moment où un disque tombe en panne et le moment où il est remplacé, c est le temps moyen jusqu à réparation (mean time to repair MTTR). Ces systèmes de disques redondants porte le nom de RAID (Redundant Array of Inexpensive Disks). Sylvain Martel - INF6500 149

Fiabilité, disponibilité et RAID RAID 1: Disques miroir. Utilise le double du nombre de disques. Chaque données est écrite sur le deux disques. Il y constamment deux copies de l information. Si un disque tombe en panne, le système s adresse au miroir pour obtenir l information. RAID 3: La parité entrelacée au niveau du bit. Au lieu d avoir une copie complète de toute l information, on a juste besoin de suffisamment d information redondante pour reconstituer l information perdue en cas de défaillance. Les lectures et les écritures vont vers tous les disques du groupe, avec un disque supplémentaire pour contenir l information de vérification au cas où il y ait une défaillance. Sylvain Martel - INF6500 150

Fiabilité, disponibilité et RAID RAID 3: La parité entrelacée au niveau du bit (suite). Quand un disque tombe en panne, on soustrait alors toutes les données des bons disques des données du disque de parité. L information résultante est l information manquante. La parité est simplement la somme modulo 2. RAID 5: La parité distribuée entrelacée par bloc. Même organisation des disques mais les données sont accèdées différemment. De petites écritures peuvent être faites en parallèle La parité associée à chaque ligne de blocs de données n est plus restreinte à un seul disque. Cela permet plusieurs écritures simultanées si les unité de découpage ne sont pas situées sur les mêmes disques. Sylvain Martel - INF6500 151

Sylvain Martel - INF6500 152