Caches et cohérence des caches

Documents pareils
Limitations of the Playstation 3 for High Performance Cluster Computing

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

Le passage à l échelle de serveur J2EE : le cas des EJB

Licence Sciences et Technologies Examen janvier 2010

Cours de Base de Données Cours n.12

INF6500 : Structures des ordinateurs. Sylvain Martel - INF6500 1

Les liaisons SPI et I2C

Arithmétique binaire. Chapitre. 5.1 Notions Bit Mot

Architectures d implémentation de Click&DECiDE NSI

Module de sécurité Antivirus, anti-spam, anti-phishing,

Gestion répartie de données - 1

Cloud computing et sécurité

Surveiller et contrôler vos applications à travers le Web

WinBooks Logistics 5.0

Optimisations des SGBDR. Étude de cas : MySQL

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

CH.3 SYSTÈMES D'EXPLOITATION

FOIRE AUX QUESTIONS PAIEMENT PAR INTERNET. Nom de fichier : Monetico_Paiement_Foire_aux_Questions_v1.7 Numéro de version : 1.7 Date :

Concepts et systèmes de stockage

Partie 7 : Gestion de la mémoire

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

(Third-Man Attack) PASCAL BONHEUR PASCAL 4/07/2001. Introduction. 1 Domain Name Server. 2 Commandes DNS. 3 Hacking des serveurs DNS

NFC Near Field Communication

Le Dossier Médical Personnel et la sécurité

Optimisation WAN > Livre blanc. Des applications plus rapides pour tous vos utilisateurs, ou qu ils soient

PocketNet SNMP/Modbus

SugarCubes. Jean-Ferdinand Susini Maître de Conférences, CNAM Chaire systèmes enfouis et embarqués. Paris, le 9 janvier, 2009

Capacité d un canal Second Théorème de Shannon. Théorie de l information 1/34

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

Initiation au HPC - Généralités

Temps forts départementaux. Le calcul au cycle 2 Technique opératoire La soustraction

Guide d implémentation. Réussir l intégration de Systempay

IDENTIFIER LES TEMPS DE JEU NE PAS PERDRE LE BALLON

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

Intérêt du NAT (Network Address Translation) Administration Réseau Niveau routage. Exemple d Intranet. Principe NAT

Fonctionnement et performance des processeurs

Le Network File System de Sun (NFS)

Rappels d architecture

Système de stockage IBM XIV Storage System Description technique

Programmation parallèle et distribuée

Cours admin 200x serveur : DNS et Netbios

Initiation à LabView : Les exemples d applications :

Architecture des ordinateurs

NanoSense. Protocole Modbus de la sonde Particules P4000. (Version 01F)

Concilier mobilité et sécurité pour les postes nomades

Bases de données et sites WEB Licence d informatique LI345

Fiche Technique. Cisco Security Agent

NOTIONS DE RESEAUX INFORMATIQUES

Étape 1 / CHOISIR UN HÉBERGEMENT

La replication dans PostgreSQL

Le réseau sans fil "Wi - Fi" (Wireless Fidelity)

BASES DE DONNÉES. CNAM Centre associé de Clermont-Ferrand Cycle A Année J. Darmont I. INTRODUCTION II. LES SYSTÈMES HIÉRARCHIQUES

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

Représentation des Nombres

Attirez les meilleurs employés et consolidez votre entreprise

Architecture N-Tier. Ces données peuvent être saisies interactivement via l interface ou lues depuis un disque. Application

Sauvegarde collaborative entre pairs Ludovic Courtès LAAS-CNRS

MB Led. Benjamin Bonny Cédric Le Ninivin Guillaume Normand

Programmation parallèle et distribuée

Firewall IDS Architecture. Assurer le contrôle des connexions au. Sécurité 1

DNS ( DOMAIN NAME SYSTEM)

Systèmes de transmission

VIII- Circuits séquentiels. Mémoires

Linux sécurité des réseaux

FONCTION COMPTAGE BINAIRE ET DIVISION DE FRÉQUENCE

Sécurité et sûreté des systèmes embarqués et mobiles

M1 Informatique, Réseaux Cours 9 : Réseaux pour le multimédia

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

Fax sur IP. Panorama

Matrice d accès. Master SEMS, Pierre Paradinas. October 16, 2013

Conception de circuits numériques et architecture des ordinateurs

Concept de machine virtuelle

CATALOGUE FORMATION 2014/2015 Produits & Logiciels

Sommaire Introduction Les bases de la cryptographie Introduction aux concepts d infrastructure à clés publiques Conclusions Références

: seul le dossier dossier sera cherché, tous les sousdomaines

SGBDR. Systèmes de Gestion de Bases de Données (Relationnelles)

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

Surveillance de réseau : un élément indispensable de la sécurité informatique

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

De veloppements et nouvelles fonctionnalite s SIL ans d expertise. Nouvelles fonctionnalite s SIL

Pour vos questions ou une autorisation d utilisation relative à cette étude vous pouvez contacter l équipe via contact@4gmark.com

Installation Serveur DNS Bind9 Ubuntu LTS

UML Diagramme de communication (communication diagram) Emmanuel Pichon 2013

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

MANUEL D UTILISATION DE LA SALLE DES MARCHES APPEL D OFFRES OUVERT ACCES ENTREPRISES. Version 8.2

Télécommunications. IPv4. IPv4 classes. IPv4 réseau locaux. IV - IPv4&6, ARP, DHCP, DNS

Réplication des données

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

Manuel d utilisation de la plate-forme de gestion de parc UCOPIA. La mobilité à la hauteur des exigences professionnelles

ACQUISITION. Traitement de l image. Classement. Préparation. Ouverture. Performance

Fonctionnement et mise en place d un reverse proxy sécurisé avec Apache. Dimitri ségard 8 mai 2011

COURS AUTOCAD. Création et utilisation des blocs. b leclerc. ERP Jean Moulin METZ

Machines virtuelles Cours 1 : Introduction

Implémentation Matérielle des Services d un RTOS sur Circuit Reconfigurable

Ordinateurs, Structure et Applications

PASS v2.0 : solution d authentification unique basée sur les composants Shibboleth Service Provider v2.5.1 et Identity Provider v2.3.

Leçon 1 : Les principaux composants d un ordinateur

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

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

Linux embarqué: une alternative à Windows CE?

Transcription:

Caches multiprocesseurs Daniel tiemble de@lri.fr Caches et cohérence des caches Rôle clé des caches Réduisent le temps d accès moyen aux données Réduisent les besoins en bande passante sur l interconnexion partagée. Les caches privés des processeurs posent problème Les copies d une variable peuvent être présentes dans plusieurs caches Une écriture par un processeur peut ne pas être visible aux autres Problème de la cohérence des caches Actions nécessaires pour assurer la visibilité 2 1

Cohérence des caches avec un bus Construite au dessus de deux fondements des systèmes monoprocesseurs Les transactions de bus Le diagramme de transitions d états des caches La transaction de bus monoprocesseur Trois phases : arbitrage, commande/adresse, transfert de données Tous les composants observent les adresses ; un seul maître du bus Les états du cache monoprocesseur criture simultanée sans allocation d écriture Deux états : valide et invalide Réécriture Trois états : valide, invalide, modifié xtension aux multiprocesseurs pour implémenter la cohérence 3 La cohérence par espionnage de bus dée de base Les transactions bus sont visibles par tous les processeurs. Les processeurs peuvent observer le bus et effectuer les actions nécessaires sur les évènements importants (changer l état) mplémenter un protocole Le contrôleur de cache reçoit des entrées de deux côtés : Requêtes venant du processeur, requêtes/réponses bus depuis l espion Dans chaque cas, effectue les actions nécessaires ise à jour des états, fourniture des données, génération de nouvelles transactions bus Le protocole est un algorithme distribué : machines d états coopérantes. nsemble d états, diagramme de transitions, actions La granularité de la cohérence est typiquement le bloc de cache 4 2

Cohérence avec cache à écriture simultanée P 1 spionnage de bus P n Cache Cache émoire Composants / Transaction Cache-mémoire xtension simple du monoprocesseur : les caches à espionnage avec invalidation ou propagation d écriture Pas de nouveaux états ou de transactions bus Protocoles à diffusion d écriture Propagation des écritures la mémoire est à jour (écriture simultanée) Bande passante élevée nécessaire 5 Les actions du cache à écriture simultanée (monoprocesseur) tat présent uccès lecture uccès écriture chec lecture chec écriture nvalide ----- ----- Valide Valide tat futur chec lecture chec écriture ----- ----- Action sur Bus sur Bus Valide Valide Valide Valide Valide tat futur CPU lit le cache criture bus CPU écrit dans le cache chec lecture sur Bus chec écriture sur Bus Action 6 3

LePr/LeBus cpr/cbus Le diagramme de transition (écriture simultanée non allouée) V cpr/cbus cbus/ Transactions venant du processeur Transactions venant du bus Deux états par bloc de cache L état d un bloc peut être considéré comme un vecteur de p éléments. Les bits d état sont associés aux seuls blocs présents dans le cache Les autres blocs sont considérés invalides (non présents) L écriture va invalider tous les autres caches l peut y avoir plusieurs blocs lus simultanément, mais l écriture les invalide 7 Les actions du cache à réécriture (monoprocesseur) tat présent uccès lecture uccès écriture chec lecture chec écriture nvalide ----- ----- Valide odifié tat futur chec lecture sur Bus chec écriture sur bus Action CPU Valide Valide odifié Valide odifié tat futur CPU lit le cache CPU écrit dans le cache chec lecture sur Bus chec écriture sur bus Action CPU odifié odifié odifié Valide odifié tat futur CPU lit le cache CPU écrit dans le cache Bloc éjecté et copié en P chec lecture sur Bus Bloc éjecté et copié en P chec écriture sur bus Action CPU 8 4

Le protocole de base : réécriture et invalidation tats nvalide () Partagé (): un ou plusieurs odifié (): un seul Les évènements processeurs : LePr (lecture) cpr (écriture) Les transactions bus LeBus: demande une copie sans vouloir la modifier LexBus: demande une copie pour la modifier RéBus : ise à jour de la mémoire Actions odifie l état, effectue une transaction bus, envoie les données sur le bus 9 : uccès local lecture Le bloc doit être dans l un des états ou C est la valeur correcte (si, elle a été modifiée par une écriture locale) Renvoie la valeur au CPU Pas de changement d état LePr/LeBus cpr/ LeBus/Purge LeBus/ LexBus/RéBus LexBus/ 10 5

Défaut local en lecture Plusieurs caches ont une copie Le processeur fait une requête bus vers la mémoire Un cache met une copie sur le bus L accès mémoire est abandonné Le cache local obtient la copie (). Les autres copies restent () Un cache a une copie Le processeur fait une requête bus vers la mémoire Un cache met la copie sur le bus L accès mémoire est abandonné Le cache local obtient la copie (). Le bloc est écrit en mémoire. Le bloc passe à. LePr/LeBus cpr/ LeBus/ LeBus/Purge LexBus/RéBus LexBus/ 11 : succès local en écriture Les blocs doivent être ou le bloc est déjà modifiée mettre à jour la valeur locale Pas de changement d état Le processeur diffuse sur le bus LexBus L état du bloc local passe de à Les caches avec une copie passe à Le bloc local est mis à jour. LePr/LeBus cpr/ LeBus/ LeBus/Purge LexBus/RéBus LexBus/ 12 6

: chec local en écriture Pas d autres copies Valeur lue depuis la mémoire vers cache local tat bloc local à D autres copies à Valeur lue depuis la mémoire vers cache local (LexBus) Les autres caches mettent leur copie à La copie locale est mise à jour et état Une autre copie Le processeur local envoie LexBus Le cache avec copie la voit, bloque LexBus, prend contrôle du bus et écrit sa copie en mémoire. Le bloc et les blocs passent en. Le processeur local réémet Lexbus : c est maintenant le cas sans copie Valeur lue depuis la mémoire vers cache local tat bloc local à LePr/LeBus cpr/ LeBus/ LeBus/Purge LexBus/RéBus LexBus/ 13 Le protocole à invalidation : Diagramme de transitions criture à un bloc modifié A déjà la valeur la plus récente ; peut utiliser la mise à jour (BusUpgr) au lieu de la LexBus Un remplacement change l état de deux blocs : le bloc remplacé et le bloc arrivant LePr/LeBus cpr/ LeBus/ LeBus/Purge LexBus/RéBus LexBus/ 14 7

Comparaison avec un seul cache à réécriture imilarités uccès lecture invisible sur le bus Tous les échecs sont visibles sur le bus Différences Avec un seul cache WB, tous les blocs provoquant un échec sont fournis par la P. Dans le protocole à trois états, les blocs sont fournis soit par la P ou par le seul bloc de cache contenant la seule copie odifié Avec un seul cache WB, un échec écriture est invisible sur le bus. Dans le protocole à trois états, un succès en écriture sur un bloc Valide invalide tous les autres blocs Valide par un chec écriture Bus (action nécessaire) 15 Validation du protocole à trois états Problème : la transition d état d un automate est supposée être atomique, mais ce n est pas le cas dans ce protocole à cause du bus xemple : chec lecture CPU sur un bloc odifié L accès CPU au cache détecte l échec Requête bus Acquisition du bus, et changement de l état du bloc de cache viction du bloc du cache et copie en P Positionnement de l chec lecture bus sur le bus Réception du bloc demandé depuis la P ou un autre cache Libération du bus, et lecture à partir du bloc de cache que l on vient de recevoir L arbitrage du bus peut provoquer un écart entre les étapes 2 et 3 Toute la séquence n est plus atomique. Le protocole fonctionne correctement si les étapes 3 à 7 sont atomiques, c est à dire si l on n a pas un bus à transactions éclatées 16 8

Le protocole Quatre états, à invalidation d écriture Version améliorée du protocole à 3 états L état Valide est séparé en xclusif et odifié xclusif : seule copie identique au bloc en P Partagé : plusieurs copies identique au bloc en P Différentes versions légèrement différentes du protocole Le protocole du PowerPC 601 ne supporte pas les transferts de bloc de cache à cache. 17 Le protocole 4 états xclusif eule copie du bloc Non modifié (= émoire) odifié odifié (!= émoire) Partagé Copie dans plusieurs blocs dentique en mémoire nvalide Actions Processeurs Bus BusRd ( ) BusRd() 18 9

uccès local lecture Le bloc doit être dans l un des états, ou C est la valeur correcte (si, elle a été modifiée par une écriture locale) Renvoie la valeur Pas de changement d état BusRd ( ) BusRd() 19 Défaut local en lecture (1) Pas d autres copies dans un cache Le processeur fait une requête bus vers la mémoire Valeur lue dans le cache local () Un cache a une copie Le processeur fait une requête bus vers la mémoire La copie est mise sur le bus. La requête mémoire est stoppée Le cache local récupère la valeur Les deux blocs passent à BusRd ( ) BusRd() 20 10

Défaut local en lecture (2) Plusieurs caches ont une copie Le processeur fait une requête bus vers la mémoire Un cache met une copie sur le bus L accès mémoire est abandonné Le cache local obtient la copie (). Les autres copies restent () Un cache a une copie Le processeur fait une requête bus vers la mémoire Un cache met la copie sur le bus L accès mémoire est abandonné Le cache local obtient la copie (). Le bloc est écrit en mémoire. Le bloc passe à. BusRd ( ) BusRd() 21 uccès local en écriture Les blocs doivent être, ou le bloc est exclusive et déjà modifiée mettre à jour la valeur locale Pas de changement d état ettre à jour la valeur locale L état passe de à Le processeur diffuse une invalidation sur le bus Les caches avec une copie passe à Le bloc local est mis à jour L état du bloc local passe de à. BusRd ( ) BusRd() 22 11

chec local en écriture Pas d autres copies Valeur lue depuis la mémoire vers cache local tat bloc local à D autres copies, soit (1) soit (n) Valeur lue depuis la mémoire vers cache local Transaction bus RWT (lecture avec intention de modifier) Les autres caches mettent leur copie à La copie locale est mise à jour et état BusRd ( ) BusRd() 23 chec local en écriture (2) Une autre copie Le processeur local envoie une Transaction bus RWT (lecture avec intention de modifier) Le cache avec copie la voit, bloque RWT, prend contrôle du bus et écrit sa copie en mémoire. Le bloc passe en. Le processeur local réémet RWT : c est maintenant le cas sans copie Valeur lue depuis la mémoire vers cache local tat bloc local à BusRd ( ) BusRd() 24 12

Le problème du faux partage Un processeur écrit dans une partie d une ligne de cache. Un autre processeur écrit dans une autre partie d une ligne de cache ême si chaque processeur ne modifie que sa «partie» de la ligne de cache, toute écriture dans un cache provoque une invalidation de «toute» la ligne de cache dans les autres caches. 25 Alternatives aux caches Approche des processeurs vectoriels Chargement/rangement de vecteurs dans des registres vectoriels Utilisation de mémoires RA multi-bancs Approche «mémoire scratch pad» (processeurs embarqués) Zone mémoire contrôlée par logiciel Préchargement par logiciel des données nécessaires nstructions de manipulation de blocs 26 13