Organisation de la mémoire des systèmes informatiques. Systèmes informatiques à mémoire partagée

Sujet 3.1 Organisation des calculs en systèmes informatiques Oh

But et caractéristiques de l'avion. Organisation des calculs dans les systèmes informatiques. Ordinateur parallèle, notions de flux de commandes et de flux de données. Systèmes associatifs. Systèmes matriciels. Calcul de pipeline. Pipeline de commande, pipeline de données. Superscalarisation.

L'étudiant doit

connaître:

Concept de flux de commande ;

concept de flux de données ;

Types de systèmes informatiques;

Caractéristiques architecturales des systèmes informatiques

Systèmes informatiques

Système informatique(Soleil)- un ensemble de processeurs ou d'ordinateurs interconnectés et interactifs, d'équipements périphériques et Logiciel, conçu pour collecter, stocker, traiter et diffuser des informations.

La création des Forces armées poursuit les principaux objectifs suivants :

· Augmenter les performances du système en accélérant le traitement des données ;

· Augmenter la fiabilité et la précision des calculs ;

· Fourniture de services supplémentaires à l'utilisateur, etc.

Sujet 3.2

Classification des aéronefs en fonction du nombre de flux de commandes et de données : SISD, SIMD, MISD, MIMD.

Classification des aéronefs multiprocesseurs avec différentes façons implémentations de mémoire partagée : UMA, NUMA, SOMA. Caractéristiques comparatives, fonctionnalités matérielles et logicielles.

Classification des aéronefs multi-véhicules : MPP, NDW et COW. Nomination, caractéristiques, caractéristiques.

Exemples d'avions de divers types. Avantages et inconvénients des différents types de systèmes informatiques.

Classification des systèmes informatiques

Particularité VS par rapport aux ordinateurs classiques est la présence de plusieurs ordinateurs qui implémentent traitement parallèle .

Le parallélisme de l'exécution des opérations augmente considérablement la vitesse du système ; il peut augmenter considérablement la fiabilité (si un composant du système tombe en panne, sa fonction peut être prise en charge par un autre), ainsi que la fiabilité du fonctionnement du système, si les opérations sont dupliquées et les résultats comparés.

Les systèmes informatiques peuvent être divisés en deux groupes :

· multi-machine ;

· multiprocesseur .

Système informatique multi-machines se compose de plusieurs ordinateurs individuels... Chaque ordinateur dans un système multi-machines a une architecture classique, et un tel système est largement utilisé. Cependant, l'effet de l'utilisation d'un tel système informatique ne peut être obtenu qu'en résolvant un problème avec une structure particulière : il doit être décomposé en autant de sous-tâches faiblement couplées qu'il y a d'ordinateurs dans le système.

Architecture multiprocesseur suppose la présence de plusieurs processeurs dans l'ordinateur, par conséquent, de nombreux flux de données et de nombreux flux d'instructions peuvent être organisés en parallèle. Ainsi, plusieurs fragments d'une même tâche peuvent être exécutés simultanément. L'avantage de vitesse des systèmes informatiques multiprocesseurs par rapport aux systèmes monoprocesseurs est évident.

L'inconvénient est la possibilité de situations de conflit lorsque plusieurs processeurs accèdent à la même zone mémoire.

Une caractéristique des systèmes informatiques multiprocesseurs est la présence d'un mémoire vive en tant que ressource partagée (Figure 11).

Figure 11 - Architecture d'un système informatique multiprocesseur

Le classement de Flynn

Parmi tous les systèmes de classification des aéronefs considérés, le plus répandu était la classification proposée en 1966 par M. Flynn. C'est basé sur notion de flux , qui s'entend comme une séquence de commandes ou d'éléments de données traités par le processeur. Flynn distingue 4 classes d'architectures en fonction du nombre de flux de commandes et de flux de données :

· D'accord - flux de commandes unique - flux de données unique. Ceux-ci incluent les machines virtuelles classiques de von Neumann. Le traitement du convoyeur n'a pas d'importance, c'est pourquoi le VM 6600 avec des dispositifs fonctionnels scalaires et le 7600 avec ceux du convoyeur appartiennent à la classe OKOD.

· ICOD - flux de commandes multiples - flux de données unique. Dans cette architecture, plusieurs processeurs gèrent le même flux de données. Un exemple serait un VS, aux processeurs duquel un signal déformé est fourni, et chacun des processeurs traite ce signal en utilisant son propre algorithme de filtrage. Néanmoins, ni Flynn ni d'autres spécialistes dans le domaine de l'architecture informatique n'ont encore pu imaginer un véritable avion construit sur ce principe... Un certain nombre de chercheurs attribuent les systèmes de convoyeurs à cette classe, mais cela n'a pas trouvé de reconnaissance définitive. La présence d'une classe vide ne doit pas être considérée comme une faille dans la classification de Flynn. De telles classes peuvent être utiles dans le développement de nouveaux concepts dans la théorie et la pratique de la construction d'un aéronef.

· OKMD - un flux de commandes - de nombreux flux de données - les commandes sont émises par un processeur de contrôle et sont exécutées simultanément sur tous les processeurs de traitement sur les données locales de ces processeurs. SIMD (instruction unique - données multiples)

· ICMD - de nombreux flux de commandes - de nombreux flux de données - un ensemble d'ordinateurs travaillant dans leurs programmes avec leurs données initiales. MIMD (instruction multiple - données multiples)

Le schéma de classification de Flynn est le plus courant dans l'évaluation initiale de l'avion, car il vous permet immédiatement d'évaluer principe de base opération Système. Cependant, la classification de Flynn présente également des inconvénients évidents : par exemple, l'impossibilité d'affecter sans ambiguïté certaines architectures à une classe ou à une autre. Le deuxième inconvénient est la saturation excessive de la classe MIMD.

Les systèmes informatiques existants de la classe MIMD forment trois sous-classes : multiprocesseurs symétriques (SMP), groupes et systèmes massivement parallèles (MPP). Cette classification est basée sur une approche structurelle - fonctionnelle.

Multiprocesseurs symétriques se composent d'un ensemble de processeurs avec les mêmes capacités pour accéder à la mémoire et aux périphériques externes et fonctionnant sous le contrôle d'un système opérateur(SE). Un cas particulier de SMP est celui des ordinateurs monoprocesseurs. Tous les processeurs SMP ont une mémoire partagée avec un seul espace d'adressage.

L'utilisation de SMP offre les fonctionnalités suivantes :

· Mise à l'échelle des applications à faible coût initial, en appliquant sans convertir les applications sur un nouveau matériel plus productif ;

· Création d'applications dans des environnements logiciels familiers;

· Le même temps d'accès à toute la mémoire ;

· La capacité de transférer des messages avec une bande passante élevée ;

· Prise en charge de la cohérence d'un ensemble de caches et de blocs de mémoire principale, d'opérations de synchronisation et de verrouillage indivisibles.

Système de cluster formé de modules connectés par un système de communication ou des dispositifs partagés mémoire externe, par exemple, les baies de disques.

La taille du cluster varie de quelques modules à plusieurs dizaines de modules.

Au sein de la mémoire partagée et distribuée, plusieurs modèles d'architectures de système de mémoire sont implémentés. La figure 12 montre la classification de tels modèles utilisés dans les systèmes informatiques de la classe MIMD (c'est également vrai pour la classe SIMD).

Figure 12 - Classification des modèles d'architectures mémoire des systèmes informatiques

Dans les systèmes avec mémoire partagée tous les processeurs ont des chances égales d'accéder à un seul espace d'adressage. Une mémoire unique peut être construite en un seul bloc ou modulaire, mais cette dernière option est généralement pratiquée.

Les systèmes informatiques à mémoire partagée, où l'accès de tout processeur à la mémoire est effectué uniformément et prend le même temps, sont appelés systèmes avec accès mémoire uniforme et sont abrégés en UMA (Uniform Memory Access). Il s'agit de l'architecture de mémoire la plus courante pour les VS parallèles avec mémoire partagée.

Techniquement, les systèmes UMA supposent la présence d'un nœud reliant chacun des P processeurs avec chacun des t modules de mémoire. La manière la plus simple de construire un tel aéronef - combinant plusieurs processeurs (P i.) avec une seule mémoire (M P) via un bus commun - est représentée sur la figure 12a. . Dans ce cas, cependant, un seul des processeurs peut échanger sur le bus à la fois, c'est-à-dire que les processeurs doivent rivaliser pour accéder au bus. Lorsque le processeur je, récupère la commande de la mémoire, d'autres processeurs P j(je j) doit attendre que le pneu soit libre. Si le système ne comprend que deux processeurs, ils sont capables de fonctionner à des performances presque maximales, car leur accès au bus peut être entrelacé : tandis qu'un processeur décode et exécute une instruction, l'autre peut utiliser le bus pour récupérer l'instruction suivante en mémoire . Cependant, lorsqu'un troisième processeur est ajouté, les performances commencent à se dégrader. S'il y a dix processeurs sur le bus, la courbe de vitesse du bus (Figure 12b) devient horizontale, donc l'ajout d'un processeur 11 n'améliore pas les performances. La courbe du bas de cette figure illustre le fait que la mémoire et le bus ont une bande passante fixe déterminée par la combinaison du temps de cycle de la mémoire et du protocole du bus, et dans un système multiprocesseur avec un bus partagé, cette bande passante est répartie entre plusieurs processeurs. Si le temps de cycle du processeur est plus long que le cycle de la mémoire, de nombreux processeurs peuvent être connectés au bus. Cependant, le processeur réel est généralement beaucoup plus rapide que la mémoire, donc ce schéma n'est pas largement utilisé.

Manière alternative la construction d'un VS multiprocesseur à mémoire partagée basée sur UMA est illustrée à la figure 13c. . Ici, le bus est remplacé par un commutateur qui achemine les requêtes du processeur vers l'un des modules de mémoire. Malgré le fait qu'il existe plusieurs modules de mémoire, ils appartiennent tous à un seul espace d'adressage virtuel. L'avantage de cette approche est que le commutateur est capable de servir plusieurs requêtes en parallèle. Chaque processeur peut être connecté à son propre module mémoire et y avoir accès à la vitesse maximale autorisée. La rivalité entre les processeurs peut survenir lorsque vous essayez d'accéder au même module de mémoire en même temps. Dans ce cas, un seul processeur a accès et les autres sont bloqués.

Malheureusement, l'architecture UMA ne s'adapte pas bien. Les systèmes les plus courants contiennent 4 à 8 processeurs, beaucoup moins souvent 32 à 64 processeurs. De plus, de tels systèmes ne peuvent être attribués à à sécurité intégrée, puisque la défaillance d'un processeur ou d'un module de mémoire entraîne la défaillance de l'ensemble de l'aéronef.

Figure 13 - Mémoire partagée :

a) combiner des processeurs utilisant un bus et un système avec des caches locaux ;

b) les performances du système en fonction du nombre de processeurs sur le bus ;

c) aéronef multiprocesseur à mémoire partagée, constitué de modules séparés

Une autre approche pour construire une mémoire partagée VS est accès mémoire non uniforme , désigné comme NUMA (Non-Uniform Memory Access). Ici, comme précédemment, il n'y a qu'un seul espace d'adressage, mais chaque processeur dispose d'une mémoire locale. Le processeur accède directement à sa propre mémoire locale, ce qui est beaucoup plus rapide que l'accès à la mémoire distante via un commutateur ou un réseau. Un tel système peut être complété par une mémoire globale, puis les dispositifs de stockage locaux font office de mémoire cache rapide pour la mémoire globale. Un tel schéma peut améliorer les performances de l'aéronef, mais il n'est pas capable de retarder indéfiniment l'égalisation des performances directes. Si chaque processeur dispose d'un cache local (Figure 13a), il y a une forte probabilité (p> 0.9) que la commande ou les données requises sont déjà dans la mémoire locale. Une probabilité raisonnable d'atteindre la mémoire locale réduit considérablement le nombre d'appels du processeur à la mémoire globale et améliore ainsi l'efficacité. La place de la rupture dans la courbe de performance (la courbe supérieure de la figure 13b ), le point auquel l'ajout de processeurs est encore effectif est maintenant déplacé vers la zone de processeur 20, et le point où la courbe devient horizontale est déplacé vers la zone de processeur 30.

Dans le concept NUMA plusieurs approches différentes sont mises en œuvre, désignées par des abréviations SOMA, CC-NUMA et NCC-NUMA.

DANS architecture de cache uniquement (SOMA, Cache Only Memory Architecture) La mémoire locale de chaque processeur est construite comme un grand cache pour accès rapide du côté du "propre" processeur. Les caches de tous les processeurs sont collectivement considérés comme la mémoire globale du système. Il n'y a pas de mémoire globale réelle. La caractéristique fondamentale du concept SOMA s'exprime dans la dynamique. Ici, les données ne sont pas liées statiquement à un module de mémoire spécifique et n'ont pas d'adresse unique qui reste inchangée pendant toute la durée de vie de la variable. Dans l'architecture SOMA, les données sont transférées dans la mémoire cache du dernier processeur qui les a demandées, tandis que la variable n'est pas fixée avec une adresse unique et peut à tout moment être localisée dans n'importe quelle cellule physique. Le déplacement de données d'un cache local à un autre ne nécessite pas la participation du système d'exploitation à ce processus, mais implique un matériel de gestion de mémoire complexe et coûteux. Pour organiser un tel régime, le soi-disant répertoires de cache . Notez également que la dernière copie de l'élément n'est jamais supprimée du cache.

Étant donné que dans l'architecture SOMA, les données sont déplacées vers la mémoire cache locale du processeur propriétaire, de tels avions présentent un avantage de performance significatif par rapport aux autres architectures NUMA. D'autre part, si une seule variable ou deux variables différentes stockées sur la même ligne dans le même cache sont requises par deux processeurs, cette ligne de cache doit être déplacée entre les processeurs à chaque accès aux données. De tels effets peuvent dépendre des détails de l'allocation de mémoire et conduire à des situations imprévisibles.

Modèle accès mémoire hétérogène cohérent avec le cache (CC-NUMA, Cache Coherent Non-Uniform Memory Architecture) est fondamentalement différent du modèle SOMA. Le système CC-NUMA n'utilise pas de mémoire cache, mais une mémoire régulièrement allouée physiquement. Aucune page ou donnée n'est copiée entre les emplacements mémoire. Il n'y a pas de messagerie logicielle. Il n'y a qu'une seule clé USB, avec des pièces physiquement connectées par un câble en cuivre et du matériel intelligent. La cohérence du cache basée sur le matériel signifie qu'aucun logiciel n'est requis pour stocker plusieurs copies des données mises à jour ou les transférer. Le niveau matériel gère tout cela. L'accès aux modules de mémoire locaux dans différents nœuds du système peut être effectué simultanément et est plus rapide qu'aux modules de mémoire distants.

La différence entre le modèle avec cache accès incohérent à la mémoire non uniforme (NCC-NUMA, Non-Cache Coherent Non-Uniform Memory Architecture) de CC-NUMA est évident d'après le nom. L'architecture mémoire suppose un espace d'adressage unique, mais n'assure pas la cohérence des données globales au niveau matériel. La gestion de l'utilisation de ces données relève entièrement du logiciel (applications ou compilateurs). Malgré cette circonstance, qui semble être un inconvénient de l'architecture, elle s'avère très utile pour augmenter les performances des systèmes de calcul avec une architecture mémoire de type DSM, considérée dans la section « Modèles d'architecture de mémoire distribuée ».

En général, les AC à mémoire partagée, construits selon le schéma NUMA, sont appelés architectures de mémoire virtuelle partagée (architectures de mémoire virtuelle partagée). Cette vue architecture, en particulier CC-NUMA, en Dernièrement est considéré comme un type indépendant et plutôt prometteur de systèmes informatiques de la classe M1MD.

Modèles d'architecture de mémoire distribuée. Dans un système de mémoire distribuée, chaque processeur a sa propre mémoire et ne peut que l'adresser. Certains auteurs appellent ce type de systèmes avion multi-véhicules ou multi-ordinateurs , soulignant le fait que « les blocs à partir desquels le système est construit sont en eux-mêmes de petits systèmes informatiques dotés d'un processeur et d'une mémoire. Les modèles d'architectures à mémoire distribuée sont généralement désignés par architecture sans direct accès mémoire à distance (NORMA, pas d'accès à la mémoire à distance). Ce nom découle du fait que chaque processeur n'a accès qu'à sa mémoire locale. L'accès à la mémoire distante (mémoire locale d'un autre processeur) n'est possible qu'en échangeant des messages avec le processeur propriétaire de la mémoire adressable.

Cette organisation présente de nombreux avantages. Premièrement, il n'y a pas de conflit pour le bus ou les commutateurs lors de l'accès aux données : chaque processeur peut utiliser pleinement la bande passante du chemin de communication avec sa propre mémoire locale. Deuxièmement, l'absence de bus partagé signifie qu'il n'y a pas de restrictions associées sur le nombre de processeurs : la taille du système n'est limitée que par le réseau de processeurs. Troisièmement, le problème de cohérence de la mémoire cache est supprimé. Chaque processeur a le droit de modifier indépendamment ses données sans se soucier de faire correspondre des copies de données dans sa propre mémoire cache locale avec les caches d'autres processeurs.

L'étudiant doit

connaître:

Classification des aéronefs ;

Exemples d'avions de divers types.

être capable de:

- choisir le type de système informatique en fonction du problème à résoudre.


© 2015-2019 site
Tous les droits appartiennent à leurs auteurs. Ce site ne revendique pas la paternité, mais fournit une utilisation gratuite.
Date de création de la page : 2016-07-22

Organisation du sous-système mémoire dans un PC

Les mémoires du sous-système de mémoire du PC peuvent être organisées dans la hiérarchie suivante (tableau 9.1) :

Tableau 9.1. Hiérarchie du sous-système mémoire du PC
Type de mémoire 1985 année 2000 ans
Temps d'échantillonnage Volume typique Prix ​​/ Octet Temps d'échantillonnage Volume typique Prix ​​/ Octet
Mémoire super-opératoire (registres) 0,2 5 ns 16/32 bits $ 3 - 100 0,01 1 ns 32/64/128 bits $ 0,1 10
Stockage tampon haute vitesse (cache) 20 100 ns 8Ko - 64Ko ~ $ 10 0,5 - 2 ns 32Kb 1Mo $ 0,1 - 0,5
Mémoire opérationnelle (principale) ~ 0,5 ms 1 Mo - 256 Mo $ 0,02 1 2 ns 20 ns 128 Mo - 4 Go $ 0,01 0,1
Stockage externe (stockage de masse) 10 - 100 ms 1 Mo - 1 Go $ 0,002 - 0,04 5 - 20 ms 1 Go - 0,5 To $ 0,001 - 0,01

Les registres du processeur constituent son contexte et stockent les données utilisées par les instructions du processeur en cours d'exécution. Les registres du processeur sont généralement accessibles par leurs désignations mnémoniques dans les instructions du processeur.

Le cache est utilisé pour faire correspondre la vitesse du processeur et de la mémoire principale. Les systèmes informatiques utilisent un cache multi-niveaux : cache de niveau I (L1), cache de niveau II (L2), etc. Les systèmes de bureau utilisent généralement un cache à deux niveaux, tandis que les systèmes de serveur utilisent un cache à trois niveaux. Le cache stocke des instructions ou des données susceptibles d'être envoyées au processeur pour traitement dans un futur proche. Le fonctionnement du cache est transparent pour le logiciel, de sorte que le cache n'est généralement pas accessible par logiciel.

La RAM stocke, en règle générale, des modules logiciels fonctionnels complets (noyau du système d'exploitation, programmes exécutables et leurs bibliothèques, pilotes de périphériques, etc.) et leurs données, directement impliqués dans le fonctionnement des programmes, et est également utilisé pour enregistrer les résultats des calculs ou autre traitement de données avant de les envoyer à une mémoire externe, à un périphérique de sortie de données ou à des interfaces de communication.

Chaque cellule mémoire se voit attribuer une adresse unique. Les méthodes d'allocation de mémoire organisationnelle offrent aux programmeurs la possibilité d'utiliser efficacement l'ensemble Système d'ordinateur... Ces méthodes comprennent un modèle de mémoire continue ("plat") et un modèle de mémoire segmenté. Lors de l'utilisation d'un modèle plat de mémoire, le programme fonctionne avec un seul espace d'adressage contigu, un espace d'adressage linéaire, dans lequel les cellules de mémoire sont numérotées de manière séquentielle et continue de 0 à 2n-1, où n est la capacité du processeur à l'adresse. Lors de l'utilisation d'un modèle segmenté pour un programme, la mémoire est représentée par un groupe de blocs d'adresses indépendants appelés segments. Pour adresser un octet de mémoire, un programme doit utiliser une adresse logique constituée d'un sélecteur de segment et d'un décalage. Le sélecteur de segment sélectionne un segment spécifique et le décalage pointe vers une cellule spécifique dans l'espace d'adressage du segment sélectionné.



Les méthodes organisationnelles d'allocation de mémoire permettent d'organiser un système informatique dans lequel l'espace d'adressage de travail du programme dépasse la taille de la RAM réellement disponible dans le système, tandis que le manque de RAM est comblé par une mémoire externe plus lente ou moins chère (disque dur , mémoire flash, etc.) ) Ce concept est appelé mémoire virtuelle. Dans ce cas, l'espace d'adressage linéaire peut être mappé sur l'espace d'adressage physique soit directement (une adresse linéaire est une adresse physique), soit en utilisant le mécanisme de pagination. Dans le second cas, l'espace d'adressage linéaire est divisé en pages de taille égale qui constituent la mémoire virtuelle. La pagination fournit les pages requises à afficher mémoire virtuelle dans l'espace d'adressage physique.

En plus de la mise en œuvre du système de mémoire virtuelle, des périphériques de stockage externes sont utilisés pour le stockage à long terme de programmes et de données sous forme de fichiers.

Mémoire cache

La mémoire cache est un périphérique de stockage à grande vitesse situé sur la même puce que le processeur ou externe au processeur. Le cache sert de tampon à grande vitesse entre le processeur et la mémoire principale relativement lente. L'idée de la mémoire cache est basée sur la prédiction des accès CPU les plus probables à la RAM. Cette approche est basée sur le principe de localité temporelle et spatiale du programme.



Si le CPU a accédé à un objet dans la RAM, il est fort probable que le CPU se référera bientôt à nouveau à cet objet. Un exemple de cette situation serait le code ou les données en boucle. Ce concept est décrit par le principe de localité temporaire, selon lequel les objets fréquemment utilisés de la mémoire principale doivent être "plus proches" du CPU (dans le cache).

Trois méthodes d'écriture sont utilisées pour réconcilier le contenu du cache et de la RAM :

  • Write through - simultanément avec la mémoire cache, la RAM est mise à jour.
  • Buffered write through - les informations sont retardées dans le tampon de cache avant d'être écrites dans la RAM et réécrites dans la RAM au cours des cycles lorsque le processeur n'y accède pas.
  • Write back - le bit de changement dans le champ de balise est utilisé et la ligne est réécrite dans la RAM uniquement si le bit de changement est 1.

En règle générale, toutes les méthodes d'écriture, à l'exception du pass-through, permettent de différer et de regrouper les écritures dans la RAM pour augmenter les performances.

Dans la structure de la mémoire cache, on distingue deux types de blocs de données :

  • mémoire d'affichage des données (en fait les données elles-mêmes, dupliquées à partir de la RAM);
  • mémoire de balise (signes qui indiquent l'emplacement des données mises en cache dans la RAM).

L'espace mémoire pour l'affichage des données dans le cache est divisé en chaînes — des blocs de longueur fixe (par exemple, 32, 64 ou 128 octets). Chaque ligne de cache peut contenir un bloc aligné contigu d'octets provenant de la RAM. Le bloc de RAM mappé sur une ligne de cache donnée est déterminé par la balise de ligne et l'algorithme de mappage. Selon les algorithmes de mappage de la RAM vers le cache, il existe trois types de mémoire cache :

  • cache entièrement associatif ;
  • cache d'affichage direct ;
  • cache associatif multiple.

Dans un cache entièrement associatif, le contrôleur de cache peut adapter n'importe quel bloc de RAM à n'importe quelle ligne du cache (Figure 9.1). Dans ce cas, l'adresse physique est divisée en deux parties : l'offset dans le bloc (ligne de cache) et le numéro de bloc. Lorsqu'un bloc est placé dans le cache, le numéro du bloc est stocké dans le tag de la ligne correspondante. Lorsque le CPU accède au cache pour bloc nécessaire, l'absence de cache ne sera détectée qu'après avoir comparé les balises de toutes les lignes avec le numéro de bloc.

L'un des principaux avantages cette méthode affichage - bonne utilisation de la RAM, tk. il n'y a aucune restriction sur le bloc pouvant être mappé sur une ligne de cache particulière. Les inconvénients incluent la mise en œuvre matérielle complexe de cette méthode, qui nécessite une grande quantité de circuits (principalement des comparateurs), ce qui conduit à une augmentation du temps d'accès à un tel cache et à une augmentation de son coût.

Agrandir l'image
Figure. 9.1. Cache 8x8 entièrement associatif pour adresse 10 bits

Une autre façon de mapper la RAM au cache est un cache mappé vers l'avant (ou un cache associatif unidirectionnel). Dans ce cas, l'adresse mémoire (numéro de bloc) détermine de manière unique la ligne de cache dans laquelle ce bloc sera placé. L'adresse physique est divisée en trois parties : l'offset de bloc (ligne de cache), le numéro de ligne de cache et la balise. Tel ou tel bloc sera toujours placé dans une ligne de cache strictement définie, remplaçant le cas échéant un autre bloc qui y est stocké. Lorsque le processeur accède au cache pour un bloc dont il a besoin, il n'a besoin de vérifier qu'une seule balise de ligne pour déterminer un succès ou un échec du cache.

Les avantages évidents de cet algorithme sont la simplicité et le faible coût de mise en œuvre. Les inconvénients incluent la faible efficacité d'un tel cache en raison des recharges fréquentes probables des lignes. Par exemple, en se référant à chaque 64e cellule de mémoire dans le système de la Fig. 9.2, le contrôleur de cache sera obligé de surcharger constamment la même ligne de cache, complètement sans utiliser le reste.

Agrandir l'image
Figure. 9.2. Cache de mappage direct 8x8 pour adresse 10 bits

Malgré les défauts évidents, cette technologie a trouvé une application réussie, par exemple, dans MP Motorola MC68020, pour organiser le cache d'instructions de premier niveau (Fig. 9.3). Ce microprocesseur implémente un cache d'affichage direct de 64 lignes de 4 octets. Le tag de chaîne, en plus des 24 bits qui spécifient l'adresse du bloc mis en cache, contient un bit de signification qui détermine la validité de la chaîne (si le bit de signification est 0, chaîne donnée est considéré comme invalide et ne provoquera pas d'accès au cache). L'accès aux données n'est pas mis en cache.

Agrandir l'image
Figure. 9.3. Schéma d'organisation de la mémoire cache dans MP Motorola MC68020

Le compromis entre les deux premiers algorithmes est un cache associatif multiple ou un cache associatif partiel (Figure 9.4). Avec cette méthode d'organisation de la mémoire cache, les lignes sont combinées en groupes, qui peuvent comprendre 2, 4 : : lignes. En fonction du nombre de lignes dans ces groupes, on distingue 2 entrées, 4 entrées, etc. cache associatif. Lors de l'accès à la mémoire, l'adresse physique est divisée en trois parties : l'offset dans le bloc (ligne de cache), le numéro de groupe (ensemble) et l'étiquette. Un bloc mémoire dont l'adresse correspond à un certain groupe peut être placé dans n'importe quelle ligne de ce groupe, et la valeur correspondante est placée dans la balise de ligne. Évidemment, au sein du groupe sélectionné, le principe d'associativité est respecté. En revanche, tel ou tel bloc ne peut appartenir qu'à un groupe strictement défini, ce qui fait écho au principe d'organisation du cache d'affichage direct. Pour que le processeur puisse identifier le cache miss, il n'aura besoin de vérifier les balises que d'un seul groupe (2/4/8 /: lignes).

Agrandir l'image
Figure. 9.4. Cache associatif 8x8 à 2 entrées pour adresse 10 bits

Cet algorithme display combine les avantages à la fois d'un cache entièrement associatif (bonne utilisation de la mémoire, haut débit) et d'un cache à accès direct (simplicité et faible coût), légèrement inférieurs dans ces caractéristiques aux algorithmes originaux. C'est pourquoi le cache associatif multiple est le plus répandu (tableau 9.2).

Tableau 9.2. Caractéristiques du sous-système de cache du processeur IA-32
Intel486 Pentium Pentium MMX P6 Pentium 4
Cache d'instructions L1
Un type 4 pouces assoc. 2 pouces assoc. 4 pouces assoc. 4 pouces assoc. 8 pouces assoc.
Taille de ligne, octets -
Volume total, Ko 8/16 8/16 12Kmops
Cache de données L1
Un type Partagé avec le cache d'instructions 2 pouces assoc. 4 pouces assoc. 2/4 po. assoc. 4 pouces assoc.
Taille de ligne, octets
Volume total, Ko 8/16
Cache L2
Un type Externe externe 4-in. assoc. 4 pouces assoc. 8 pouces assoc.
Taille de ligne, octets
Volume total, Ko 256/512 128-2048 256/512

Remarques : Intel-486 utilise une seule instruction de niveau 1 et un cache de données. Dans le Pentium Pro L1, le cache de données est de 8 Ko en associatif bidirectionnel, dans d'autres modèles P6, il est de 16 Ko en quadridirectionnel associatif. Le Pentium 4 utilise le cache micro-op L1 (cache de trace) au lieu du cache d'instructions L1.

Pour organiser la mémoire cache, vous pouvez utiliser l'architecture Princeton (cache mixte pour les instructions et les données, par exemple, dans Intel-486). Cette évidence (et inévitable pour les systèmes von Neumann avec mémoire cache externe au CPU) n'est pas toujours la solution la plus efficace. La séparation de la mémoire cache en caches d'instructions et de données (cache d'architecture Harvard) améliore l'efficacité du cache pour les raisons suivantes :

  • Beaucoup processeurs modernes ont une architecture pipeline dans laquelle les blocs pipeline s'exécutent en parallèle. Ainsi, la recherche d'instructions et l'accès aux données d'instructions sont effectués à des étapes différentes du pipeline, et l'utilisation d'une mémoire cache séparée permet d'effectuer ces opérations en parallèle.
  • Le cache d'instructions peut être implémenté en lecture seule et ne nécessite donc aucun algorithme de réécriture, ce qui rend ce cache plus simple, moins cher et plus rapide.

C'est pourquoi tous les derniers modèles IA-32, à commencer par le Pentium, utilisent l'architecture Harvard pour organiser le cache L1.

Le critère de fonctionnement efficace du cache peut être considéré comme une diminution du temps moyen d'accès à la mémoire par rapport à un système sans cache. Dans ce cas, le temps d'accès moyen peut être estimé comme suit :

T cf = (T hit x R hit) + (T miss x (1 R hit))

où T hit est le temps d'accès à la mémoire cache en cas de hit (y compris le temps d'identification d'un échec ou d'un hit), T miss est le temps nécessaire pour charger un bloc de la mémoire principale dans une ligne de cache en cas de cache miss, puis livre les données demandées au processeur, R hit-hit rate.

Évidemment, plus la valeur de R hit est proche de 1, plus la valeur de T cf est proche de T hit. Le taux de réussite est principalement déterminé par l'architecture et la taille du cache. L'impact de la présence et de l'absence de mémoire cache et de sa taille sur l'augmentation des performances du processeur est indiqué dans le tableau. 9.3.

Tableau 9.1. Hiérarchie du sous-système mémoire du PC
Type de mémoire 1985 année 2000 ans
Temps d'échantillonnage Volume typique Prix ​​/ Octet Temps d'échantillonnage Volume typique Prix ​​/ Octet
1 Mémoire super-opératoire (registres) 0,2 5 ns 16/32 bits $ 3 - 100 0,01 1 ns 32/64/128 bits $ 0,1 10
2 Stockage tampon haute vitesse (cache) 20 100 ns 8Ko - 64Ko ~ $ 10 0,5 - 2 ns 32Kb 1Mo $ 0,1 - 0,5
3 Mémoire opérationnelle (principale) ~ 0,5 ms 1 Mo - 256 Mo $ 0,02 1 2 ns 20 ns 128 Mo - 4 Go $ 0,01 0,1
4 Stockage externe (stockage de masse) 10 - 100 ms 1 Mo - 1 Go $ 0,002 - 0,04 5 - 20 ms 1 Go - 0,5 To $ 0,001 - 0,01

Les registres du processeur constituent son contexte et stockent les données utilisées par les instructions du processeur en cours d'exécution. Les registres du processeur sont généralement accessibles par leurs désignations mnémoniques dans les instructions du processeur.

Cacher utilisé pour correspondre à la vitesse du processeur et de la mémoire principale. Les systèmes informatiques utilisent un cache multi-niveaux : cache de niveau I (L1), cache de niveau II (L2), etc. Les systèmes de bureau utilisent généralement un cache à deux niveaux, tandis que les systèmes de serveur utilisent un cache à trois niveaux. Le cache stocke des instructions ou des données susceptibles d'être envoyées au processeur pour traitement dans un futur proche. Le fonctionnement de la mémoire cache est transparent pour le logiciel, donc mémoire cache généralement pas disponible par programmation.

RAM stocke, en règle générale, des modules logiciels fonctionnels complets (noyau du système d'exploitation, programmes exécutables et leurs bibliothèques, pilotes de périphériques, etc.) et leurs données, directement impliqués dans le travail des programmes, et est également utilisé pour enregistrer les résultats de calculs ou autres données de traitement avant de les envoyer vers une mémoire externe, vers un périphérique de sortie de données ou des interfaces de communication.

Chaque cellule mémoire vive attribué une adresse unique. Les méthodes organisationnelles d'allocation de mémoire permettent aux programmeurs d'utiliser efficacement l'ensemble du système informatique. Ces méthodes comprennent un modèle de mémoire continue ("plat") et un modèle de mémoire segmenté. Lors de l'utilisation d'un modèle plat de mémoire, le programme fonctionne avec un seul espace d'adressage contigu, un espace d'adressage linéaire, dans lequel les cellules de mémoire sont numérotées de manière séquentielle et continue de 0 à 2n-1, où n est la capacité du processeur à l'adresse. Lors de l'utilisation d'un modèle segmenté pour un programme, la mémoire est représentée par un groupe de blocs d'adresses indépendants appelés segments. Pour adresser un octet de mémoire, un programme doit utiliser une adresse logique constituée d'un sélecteur de segment et d'un décalage. Le sélecteur de segment sélectionne un segment spécifique et le décalage pointe vers une cellule spécifique dans l'espace d'adressage du segment sélectionné.

La mémoire est une partie importante des systèmes informatiques. L'organisation de l'interaction entre le processeur et la mémoire détermine les principales caractéristiques du système informatique, le reste des éléments assure la connexion de ce lien avec périphériques externes avec le monde extérieur. La mémoire est connectée au contrôleur de gestion de mémoire (dispositif de gestion de mémoire) via le bus d'adresse, le bus de données et le bus de contrôle. La largeur du bus de données détermine combien de bits simultanément (en parallèle) peuvent être lus dans la mémoire. Chaque bit (1 bit) est stocké dans un élément mémoire. Éléments de mémoire différents types reposent sur diverses principes physiques enregistrer et stocker des informations. Les éléments de mémoire sont combinés en cellules de mémoire. Dans ce cas, tous les éléments de la cellule sont adressés simultanément, de la même manière et sont organisés de manière à pouvoir simultanément sortir des données sur le bus de données. De telles cellules combinées forment un mot. Le nombre de bits de données lus à partir de la mémoire en même temps est appelé la longueur de l'échantillon. Pour stocker 1 octet, 8 éléments de mémoire sont utilisés, des cellules de mémoire de huit bits sont organisées à l'aide d'un bus de données d'une largeur de 8 lignes.

Les microcircuits de mémoire (puces) sont utilisés pour créer des modules de mémoire qui sont installés dans des emplacements spéciaux (connecteurs) du système informatique. Désormais, les modules DIMM les plus courants sont les modules de mémoire à deux rangées de broches.

La largeur du bus d'adresse détermine l'espace d'adressage, c'est-à-dire le nombre de cellules mémoire qui peuvent être adressées directement. Si la largeur du bus d'adresses est n, alors le nombre de toutes les combinaisons binaires possibles (le nombre d'adresses) sera déterminé comme N = 2n.

Figure. une. Organisation de la communication entre le système mémoire et le processeur

La mémoire d'un appareil informatique peut effectuer trois opérations :

a) stockage d'informations ;

b) l'enregistrement des informations ;

c) lire des informations.

Caractéristiques de la mémoire :

La capacité de mémoire détermine quantité maximale informations stockées en mémoire et mesurées en bits, octets, kilo-octets, mégaoctets, gigaoctets, téraoctets, etc.

La capacité spécifique est définie comme le rapport entre la capacité de la mémoire et la quantité physiquement occupée par celle-ci.

La densité d'enregistrement d'informations est définie comme la quantité d'informations par unité de surface du support d'informations ou par unité de longueur du support d'informations.

Temps d'accès à la mémoire. Les performances de la mémoire sont déterminées par la durée des opérations lors de l'accès à la mémoire. Le temps d'accès en écriture et le temps d'accès en lecture sont respectivement la somme du temps de recherche d'une cellule mémoire à une adresse donnée et de l'écriture ou de la lecture proprement dite.

Classement de la mémoire :

Mémoire vive

Pour la mémoire vive (mémoire électronique), le temps d'accès ne dépend pas de l'emplacement de la zone mémoire souhaitée. La cellule est sélectionnée par adresse à l'aide de circuits électroniques.

Accès direct à la ronde

En se référant à mémoire disque un accès circulaire direct est utilisé. Le support de stockage tourne en continu, de sorte que la possibilité d'accéder à la même zone de mémoire est cyclique.

Accès séquentiel

L'accès séquentiel aux données est possible lors de l'utilisation d'une bande magnétique comme support, où un balayage séquentiel de sections du support est nécessaire pour trouver les données requises.

Mémoire sans adresse

Les périphériques de stockage empilés et associatifs peuvent être classés comme sans adresse. Lors de l'accès à la mémoire non adressée, l'adresse de la cellule n'est pas spécifiée dans la commande d'accès à la mémoire. Dans les dispositifs de mémoire empilés, l'adresse d'une cellule de mémoire conserve la trace d'un registre d'adresses spécial. Lors de l'accès à la pile, l'adresse de ce registre est définie. Lors de l'accès à la mémoire associative, la recherche d'informations est effectuée par l'attribut (étiquette) en comparant les étiquettes de toutes les cellules mémoire avec l'attribut associatif. Une caractéristique associative est écrite dans un registre de caractéristique spéciale pour effectuer une opération de comparaison.

Classification de la mémoire par objectif fonctionnel :

ROM - mémoire en lecture seule ou ROM (Read Only-Memory), sont utilisés pour stocker des données permanentes et des programmes utilitaires.

La RAM est un dispositif de mémoire super-opératif, c'est un ensemble de registres usage général- RON, destiné à stocker les opérandes et les résultats de l'opération dans le processeur.

RAM - mémoire vive ou RAM (Random Access Memory - mémoire à accès aléatoire), est utilisée pour stocker le programme exécutable et les données opérationnelles. Si un registre est accessible pour l'écriture/lecture à son adresse, alors une telle structure de registre forme une RAM à accès aléatoire.

Classification par la manière dont les informations sont stockées :

Mémoire statique

Dans les périphériques de stockage statiques, les LSI sont créés sur des éléments de mémoire à déclenchement bistable (ayant deux états stables - d'où le nom de la mémoire).

Mémoire dynamique

Dans les mémoires dynamiques, des LSI moins chers sont utilisés, dans lesquels l'élément de stockage est un condensateur. Le condensateur se décharge avec le temps (c'est la dynamique), il est donc nécessaire de maintenir la valeur du potentiel en rechargeant le condensateur. Ce processus est appelé régénération.

Mémoire persistante

Dans les dispositifs à mémoire morte, l'élément mémoire est un fusible fusible ou une diode semi-conductrice qui joue le rôle d'un pont destructible. Dans les ROM reprogrammables, des cellules fabriquées sur des transistors MOS à grille flottante et isolée sont utilisées pour enregistrer et stocker des informations, les informations sont enregistrées électriquement lorsque le courant traverse le canal source / drain, les charges sont déposées sur la grille et sont stockées aussi longtemps comme vous voulez. Les informations sont effacées en appliquant une tension de signe différent à la section source/drain dans une ROM reprogrammable avec effacement électrique ou irradiation avec un rayonnement ultraviolet dans une ROM avec effacement ultraviolet.

Mémoire holographique

Dans les dispositifs de stockage holographique, l'information est stockée dans le volume d'un cristal holographique sous la forme d'un instantané de l'interférence de deux ondes, référence et information. Cette forme de stockage prometteuse a une densité de données élevée et est actuellement en cours de développement.

Mémoire biologique

Dans les dispositifs de stockage biologique, l'information est enregistrée à l'aide d'un changement d'état de molécules organiques qui ont la propriété de stocker des charges et d'échanger des électrons.

Mémoire sur support magnétique

Dans les dispositifs de stockage externes sur supports magnétiques, les informations sont stockées sous la forme de sections de la surface ferromagnétique d'un disque ou d'une bande magnétique magnétisée dans une certaine direction.

Mémoire optique

Dans les dispositifs de stockage externes optiques, les informations sont enregistrées sous la forme de sections ayant différents coefficients de diffusion de la lumière d'un faisceau laser dirigé.

La mémoire est l'un des principaux composants de tout ordinateur. Sa capacité et ses performances déterminent dans une large mesure les performances de l'ensemble du système informatique. Dans ce numéro, le plus technologies importantes création et détails de l'organisation de la mémoire.

Vous avez aimé l'article ? A partager avec des amis :