Maison >Problème commun >Quelles sont les trois méthodes de mappage d'adresses entre la mémoire principale et le cache ?

Quelles sont les trois méthodes de mappage d'adresses entre la mémoire principale et le cache ?

青灯夜游
青灯夜游original
2021-07-26 13:43:0317282parcourir

Il existe trois méthodes de cartographie : la méthode associative complète, la méthode directe et la méthode associative de groupe. Le mappage direct peut stocker un bloc de mémoire principale dans une ligne de cache unique ; le mappage entièrement associatif peut stocker un bloc de mémoire principale dans n'importe quelle ligne de groupe de cache ; le mappage associatif peut stocker un bloc de mémoire principale dans n'importe quelle ligne de groupe de cache.

Quelles sont les trois méthodes de mappage d'adresses entre la mémoire principale et le cache ?

L'environnement d'exploitation de ce tutoriel : système Windows 10, ordinateur Dell G3.

le cache est un registre tampon à grande vitesse et une technologie importante utilisée pour résoudre l'inadéquation de vitesse entre le processeur et la mémoire principale.

L'accès du processeur à la mémoire lit et écrit généralement une unité de mot à la fois. Lorsque l'accès du processeur au cache échoue, l'unité de mots stockée dans la mémoire principale doit être transférée dans le cache avec plusieurs mots suivants. La raison en est de garantir que les accès mémoire ultérieurs puissent atteindre le cache.

Par conséquent, l'unité de données échangée entre la mémoire principale et le cache en même temps doit être un bloc de données. La taille du bloc de données est fixe et se compose de plusieurs mots, et la taille du bloc de données de la mémoire principale et du cache est la même.

Du point de vue des objectifs atteints au niveau Cache-mémoire principale, d'une part, la vitesse d'accès mémoire du CPU doit être proche de la vitesse d'accès au Cache, et d'autre part, l'espace d'exécution prévu pour le Le programme utilisateur doit être conservé comme un espace de stockage égal à la capacité de la mémoire principale.

Dans un système qui utilise la hiérarchie Cache-mémoire principale, le Cache est transparent pour le programme utilisateur, c'est-à-dire que le programme utilisateur n'a pas besoin de connaître l'existence du Cache. Par conséquent, chaque fois que le CPU accède à la mémoire, il donne toujours une adresse de mémoire principale, comme lorsque le cache n'est pas utilisé. Mais dans la hiérarchie Cache-mémoire principale, la première chose à laquelle le processeur accède est le cache, et non la mémoire principale.

Pour cette raison, un mécanisme est nécessaire pour convertir l'adresse d'accès à la mémoire principale du CPU en adresse d'accès au cache. La conversion entre l'adresse de la mémoire principale et l'adresse du cache est étroitement liée à la relation de mappage entre le bloc de mémoire principale et le bloc de cache, c'est-à-dire que lorsque l'accès du processeur au cache échoue, le mot auquel accéder doit l'être. situé dans la mémoire principale. Le bloc est transféré dans le cache, et la stratégie utilisée pour le transférer affecte directement la relation correspondante entre l'adresse de la mémoire principale et l'adresse du cache. Il s'agit du problème de mappage d'adresses entre la mémoire principale et le cache. être résolu dans cette section.

Il existe trois méthodes de mappage d'adresses entre la mémoire principale et le cache : la méthode associative complète, la méthode directe et la méthode associative définie.

  • Mappage direct

    stocke un bloc de mémoire principale dans une ligne de cache unique.

  • Le mappage entièrement associatif

    peut stocker un bloc de mémoire principale sur n'importe quelle ligne de cache.

  • Set associative mapping (setassociative mapping)

    peut stocker un bloc de mémoire principale dans n'importe quelle ligne d'un groupe de cache unique.

Mappage direct

Relation de mappage plusieurs-à-un, mais un bloc de mémoire principale ne peut être copié que vers une position de ligne spécifique dans le cache.

Le numéro de ligne de cache i et le numéro de bloc de mémoire principale j ont la relation fonctionnelle suivante : i=j mod m (m est le nombre total de lignes dans le cache)

Avantages : matériel simple, facile à mettre en œuvre

Inconvénients : faible taux de réussite, L'utilisation de l'espace de stockage du cache est faible

Quelles sont les trois méthodes de mappage dadresses entre la mémoire principale et le cache ?

Mappage entièrement associatif

Un bloc de mémoire principale est directement copié sur n'importe quelle ligne du cache

Avantages : Le taux de réussite est élevé et l'utilisation de l'espace de stockage du Cache est élevée

Inconvénients : lignes complexes, coût élevé, faible vitesse

Quelles sont les trois méthodes de mappage dadresses entre la mémoire principale et le cache ?

définir le mappage associatif

Le cache est divisé en u groupes, chaque groupe a v lignes, et quel groupe le Le bloc de mémoire principale dans lequel est stocké est fixe. La ligne du groupe est flexible, c'est-à-dire qu'il existe la relation fonctionnelle suivante : Nombre total de lignes de cache m=u×v Numéro de groupe q=j mod u

Le mappage direct est utilisé. entre les groupes et entièrement associatif au sein du groupe

Le matériel est relativement simple, la vitesse est plus rapide et le taux de réussite plus élevé

Quelles sont les trois méthodes de mappage dadresses entre la mémoire principale et le cache ?

Pour plus de connaissances connexes, veuillez visiter la colonne FAQ !

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn