Techniques pour limiter l'impact des caches
Hiérarchie mémoire : les caches
H1002 v1 Article de référence

Techniques pour limiter l'impact des caches
Hiérarchie mémoire : les caches

Auteur(s) : Daniel ETIEMBLE, François ANCEAU

Relu et validé le 08 mars 2022 | Read in English

Logo Techniques de l'Ingenieur Cet article est réservé aux abonnés
Pour explorer cet article plus en profondeur Consulter l'extrait gratuit

Déjà abonné ?

Présentation

1 - Hiérarchie mémoire

2 - Fonctionnement des caches

3 - Caches des multiprocesseurs symétriques

4 - Techniques pour limiter l'impact des caches

  • 4.1 - Préchargement
  • 4.2 - Caches logiciels

5 - Caches et mémoires secondaires

6 - Caches et programmes utilisateur

7 - Remarques pour conclure

Sommaire

Présentation

RÉSUMÉ

Entre le ou les processeurs d'un ordinateur et les organes de stockage existe une hiérarchie de mémoires, dont les temps d'accès augmentent et les débits diminuent lorsqu'on s'éloigne des processeurs. Cet article décrit les principes et le fonctionnement de cette hiérarchie comprise entre un processeur et la mémoire principale, pour les architectures monoprocesseurs et les architectures parallèles multiprocesseurs et multicoeurs. Après avoir introduit les principes de base et les techniques d'amélioration des performances, les protocoles de cohérence sont introduits ainsi que les relations entre les caches et l'autre partie de la hiérarchie, entre la mémoire principale et les mémoires secondaires. Les principales optimisations logicielles tenant compte des propriétés des caches sont également introduites.

Lire cet article issu d'une ressource documentaire complète, actualisée et validée par des comités scientifiques.

Lire l’article

Auteur(s)

  • Daniel ETIEMBLE : Ingénieur INSA Lyon - Professeur à l'université Paris Sud

  • François ANCEAU : Ingénieur INPG Grenoble - Professeur émérite au CNAM

INTRODUCTION

L'objectif de ce dossier est l'étude de la hiérarchie de mémoires caches situées entre le ou les processeurs d'un ordinateur et la mémoire principale. Il existe une différence de performance énorme entre les vitesses de fonctionnement d'un processeur et, plus généralement, les temps d'accès et les débits de transferts entre éléments de mémorisation situés sur une puce électronique et les temps d'accès et débits entre puces différentes. Entre un processeur et sa mémoire principale, il existe une hiérarchie de caches, certains sur la puce du processeur, et d'autres sur des puces externes, qui jouent le rôle d'adaptateurs de débit et de temps d'accès car les débits diminuent et les temps d'accès augmentent lorsque l'on s'éloigne du processeur. L'autre partie de la hiérarchie mémoire, située entre la mémoire principale et les disques et autres unités de stockage, fait l'objet d'un autre dossier.

Ce dossier présente les principes de fonctionnement des caches et les techniques matérielles permettant d'améliorer les performances, que ce soit pour des systèmes bas de gamme monoprocesseur, des systèmes avec processeur exécutant plusieurs instructions par cycle ou des systèmes parallèles utilisant des processeurs multicœurs ou des clusters de multicœurs. Les différentes techniques permettant d'assurer la cohérence des caches sont notamment présentées, des protocoles centralisés ou décentralisés de base aux protocoles pour architectures hiérarchiques.

Les techniques pour limiter l'impact des caches et les relations entre le fonctionnement des caches et les mémoires secondaires, notamment les traductions d'adresse liées à la mémoire virtuelle, sont également abordées.

Si le dossier se focalise essentiellement sur les techniques matérielles d'implantation de la hiérarchie de caches, l'impact des caches sur les temps d'exécution des programmes est souligné via la présentation des techniques d'optimisation logicielles classiques prenant en compte l'existence des caches.

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


DOI (Digital Object Identifier)

https://doi.org/10.51257/a-v1-h1002

Lecture en cours
Présentation

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

4. Techniques pour limiter l'impact des caches

4.1 Préchargement

Une manière de limiter l'impact des caches sur les performances est d'éviter les défauts de cache en provoquant le préchargement des lignes de cache nécessaires avant l'exécution de l'instruction qui provoquerait le défaut de cache. Ce préchargement peut être effectué par matériel ou par l'exécution logicielle d'instructions de préchargement.

HAUT DE PAGE

4.1.1 Préchargement matériel

Charger à l'avance des lignes d'instructions ou de données dans les caches respectifs pose un certain nombre de problèmes :

  • quelle ligne faut-il précharger : la suivante, compte tenu de la localité spatiale ? une ligne prédite ?

  • quand faut-il précharger : toujours ? ou sur un échec ? ou sur un échec et que l'on accède à une donnée préchargée ?

  • où faut-il précharger : directement dans le cache ? Dans ce cas, il y a un risque potentiel de pollution, puisque l'on peut éjecter une ligne dont on aura besoin bientôt, pour la remplacer par une ligne dont on n'aura peut-être pas besoin. Ou faut-il précharger dans un tampon spécial, avec la nécessité de gérer les transferts entre ce tampon et le cache ?

Le préchargement matériel est surtout utilisé pour l'accès aux instructions.

Dans l'architecture Intel Netburst, qui a été celle utilisée pour les Pentium 4 de 2000 à 2006, le préchargement matériel dans le cache L2 d'instructions et de données se fait lors d'échecs cache L1 successifs et lorsqu'un pas dans la configuration des accès a été détecté, comme cela intervient pour des itérations de boucle qui accèdent à des tableaux d'éléments. Il existe également un préchargement de lignes de cache adjacentes. Lorsque ce préchargement est actif, un défaut de cache provoque le transfert de 2 lignes de 64 octets au lieu d'un seul. Des mécanismes identiques existent dans la microarchitecture Core qui a succédé à Netburst.

Le préchargement matériel est transparent à l'utilisateur dont l'intervention consiste uniquement à autoriser ou non l'utilisation...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 95 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Lecture en cours
Techniques pour limiter l'impact des caches

Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Sommaire
Sommaire

BIBLIOGRAPHIE

  • (1) - HEWLETT PACKARD -   Memory technology evolution : an overview of system memory technologies.  -  Technology brief, 9th edition (2010).

  • (2) - HENNESSY (J.-L.), PATTERSON (D.) -   Architecture des ordinateurs – Une approche quantitative.  -  Vuibert Informatique (2003).

  • (3) - SICOLO (J.E.) -   A multiported nonblocking cache for a superscalar uniprocessor.  -  MS Thesis, University of Illinois at Urbana Champaign (1992) http://impact.crhc.illinois.edu/ftp/report/ms-thesis-jim-sicolo.pdf.

  • (4) - ROTENBERG (E.), BENNETT (S.), SMITH (J.E.) -   Trace cache : a low latency approach to high bandwidth instruction fetching.  -  In Proceedings of the 29th International Symposium on Microarchitecture, p. 24-34, déc. 1996.

  • (5) - KIN (J.), GUPTA (M.), MANGIONE-SMITH (W.H.) -   The filter cache : an energy efficient memory structure.  -  In Proc. 43rd Hawaii International Conference on System Sciences (HICSS), p. 1-8, janv. 2010.

  • ...

Logo Techniques de l'Ingenieur

Cet article est réservé aux abonnés.
Il vous reste 93 % à découvrir.

Pour explorer cet article Consulter l'extrait gratuit

Déjà abonné ?


Article inclus dans l'offre

"Technologies logicielles Architectures des systèmes"

(236 articles)

Une base complète d’articles

Actualisée et enrichie d’articles validés par nos comités scientifiques.

Des contenus enrichis

Quiz, médias, tableaux, formules, vidéos, etc.

Des modules pratiques

Opérationnels et didactiques, pour garantir l'acquisition des compétences transverses.

Des avantages inclus

Un ensemble de services exclusifs en complément des ressources.

Voir l'offre

Ressources documentaires

Processeurs multithreads et multicœurs

Les processeurs multithreads et les processeurs multicœurs permettent l’utilisation des trois types de ...

Processeurs : exécution pipeline des instructions

Cet article présente les caractéristiques essentielles de l'exécution pipeline des instructions dans les ...

Introduction au parallélisme et aux architectures parallèles

Le parallélisme est dorénavant utilisé dans la majorité des architectures, des systèmes embarqués aux ...

Introduction à l'architecture des ordinateurs

L'article commence par une brève histoire des machines informatiques et introduit ensuite les principes ...