Organisation de la mémoire dans les ordinateurs. Mémoire d'ordinateur

Sujet 3.1 Organisation des calculs dans les systèmes informatiques

But et caractéristiques de l'avion. Organisation des calculs dans les systèmes informatiques. Ordinateur parallèle, les concepts 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 de logiciels conçus 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, caractéristiques matérielles et logicielles.

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

Exemples d'avions différents 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 significativement à la fois 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 distincts. 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'une RAM partagée 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 le principe de base du 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, des opérations de synchronisation et de verrouillage indivisibles.

Système de cluster Il est formé de modules unis par un système de communication ou des dispositifs de mémoire externes partagés, par exemple des matrices 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 la memoire 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 N.-É. processeurs avec chacun des T modules de mémoire. La manière la plus simple de construire de tels aéronefs - en 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 de bus, et dans un système multiprocesseur avec un bus partagé, cette bande passante est répartie sur 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, en fait, le processeur est généralement beaucoup plus rapide que la mémoire, donc ce schéma n'est pas largement utilisé.

Une autre manière de construire un CS multiprocesseur avec une 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 y a un seul espace d'adressage, mais chaque processeur a 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 être située dans n'importe quelle cellule physique à tout moment. 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 l'architecture SOMA déplace les données dans la mémoire cache locale du processeur propriétaire, ces avions ont 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 de la mémoire suppose un espace d'adressage unique, mais n'assure pas la cohérence matérielle des données globales. 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 à architecture mémoire de type DSM, considérée dans la section « Modèles d'architectures à 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 L'architecture, en particulier CC-NUMA, a récemment été considérée 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 avec un processeur et de la 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 reliant les 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

Avant d'envisager la technologie d'organisation physique de la mémoire dans un ordinateur, il convient de noter ce qui suit :

1. La mémoire dans un ordinateur a une organisation à plusieurs niveaux.

2. La mémoire est classée en fonction de la manière dont les données sont accessibles.

Tous les types de mémoires à structures d'adresses fonctionnent selon le principe de correspondance biunivoque entre chaque élément de l'ensemble d'espace d'adressage et chaque élément de l'ensemble de données stockées dans la mémoire.

La mémoire à accès séquentiel exclut la possibilité d'accès aléatoire à un élément de mémoire, dont l'accès est déterminé par l'algorithme de séquence dans la structure mémoire avec son organisation uniforme ou par l'algorithme d'accès séquentiel du plus haut niveau au plus bas dans un multi-niveau organisation (système de fichiers).

La mémoire associative utilise une fonction associative (une étiquette, qui peut être un code, une clé, une adresse ou une partie de sa mémoire d'adresses en stockant une copie) comme recherche d'un élément de données en mémoire. De ce fait, l'élément de données peut être situé n'importe où dans la mémoire, violant le principe de correspondance un à un, caractéristique des structures de mémoire adressables.

3. Par méthode de stockage.

Statique

Dynamique

Permanent

Mémoire flash

4. La mémoire de l'ordinateur a une structure modulaire. Il repose sur une structure modulaire, qui permet de former un volume variable du meuble de rangement en augmentant ou en diminuant le nombre de modules dans la configuration.

La mémoire physique d'un système informatique est divisée en externe et opérationnelle. La mémoire externe est destinée au stockage à long terme des informations et reste dans l'état passif du système informatique même lorsqu'elle est éteinte.

La mémoire externe dans les systèmes informatiques modernes est mise en œuvre principalement sur des disques et des bandes magnétiques, ainsi que sur divers types de mémoire non volatile.

La mémoire externe est physiquement implémentée en tant que dispositifs système d'entrée/sortie qui communiquent avec le processeur et la mémoire via des interfaces d'entrée/sortie, dont le fonctionnement est basé sur deux solutions architecturales différentes : le bus système et les canaux d'E/S.

Quant à la RAM, dont l'organisation physique et logique fait l'objet de ce sujet, elle est structurellement divisée en deux parties : un dispositif mémoire et une unité de contrôle ou contrôleur mémoire.

Le contrôleur de mémoire est le coordinateur de la RAM, il est connecté aux interfaces avec le processeur et le système d'entrée / sortie, recevant des demandes de données de leur part à la fois pour l'écriture dans leur mémoire et la lecture de celle-ci.

Ayant reçu la requête, le contrôleur la met dans la file d'attente d'accès au dispositif de stockage (mémoire) selon la priorité, en privilégiant le système d'entrée/sortie, organise la communication avec la mémoire conformément au protocole d'interface les reliant.



La fonctionnalité du contrôleur de mémoire est directement proportionnelle à la complexité de la fonctionnalité du système. Ainsi, par exemple, dans les systèmes multiprocesseurs symétriques, le contrôleur de mémoire est le coordinateur des demandes de données de tous les processeurs du système, les acceptant pour exécution ou bloquant temporairement si les données sont déjà en cours de traitement par un autre processeur, assurant ainsi la cohérence des données dans le système.

Selon la méthode de stockage, la mémoire vive moderne dans les systèmes informatiques se réfère dans la plupart des cas à la mémoire dynamique, ce qui nécessite périodiquement pendant le fonctionnement du mode de récupération des informations en mémoire, c'est-à-dire des cycles de régénération, au cours desquels l'accès à la mémoire par des agents externes est bloqué. L'organisation de tels cycles et leur fréquence est incluse dans les fonctions du contrôleur.

Pour réduire l'effet des cycles de rafraîchissement sur les performances de la mémoire, ils ont commencé à utiliser différentes méthodes... Il s'agit, d'une part, de l'utilisation d'une technologie modulaire pour construire une mémoire avec organisation de bancs et d'adresses alternées, c'est-à-dire avec le placement de données d'adresses paires et impaires dans différents modules mémoire (microcircuits) auxquels on peut accéder simultanément dans un cycle mémoire, combinant ainsi un échantillonnage de données dans un module avec un cycle de rafraîchissement dans un autre, en l'absence d'un mode d'échantillonnage en rafale, c'est-à-dire un échantillonnage de données simultané à une adresse paire et impaire.

Ils ont également commencé à utiliser le mode de régénération automatique des cellules mémoire, auxquelles on accède pour les données en mode lecture et le mode de régénération interne de toutes les cellules mémoire des microcircuits. Mais à cette fin, un contrôleur interne devait être intégré dans chaque microcircuit de mémoire et les fonctions ci-dessus et d'autres devaient lui être affectées, libérant le contrôleur externe pour d'autres tâches plus importantes.

Quant à l'architecture des dispositifs de stockage eux-mêmes, qui sont destinés au stockage,

l'écriture et la lecture de données peuvent être notées comme suit.

Utiliser des tubes électroniques comme éléments de stockage au stade initial du développement de la technologie informatique, puis des noyaux de ferrite, et finalement passer à la technologie des semi-conducteurs, dans laquelle ils ont commencé à utiliser les propriétés capacitives du drain isolé d'un transistor à effet de champ. le but ultime de ces changements était et sera la solution des tâches suivantes :

Extension de la capacité de mémoire

Performances accrues

Amélioration de la fiabilité du stockage et réduction de la consommation d'énergie de la mémoire.

Si mémoire système ordinateurs 32 bits modernes avec un bus d'adresses 32 bits d'accès mémoire, permet d'augmenter leur capacité jusqu'à 4GBT, puis pour les ordinateurs de 2 et 3 générations avec mémoire ferrite, la capacité même des supercalculateurs de cette époque n'a été calculée que dans des dizaines et des centaines de ko à un moment donné, le superordinateur était d'environ 768 ko, n'atteignant même pas la limite du mégaoctet.

Un bond dans la quantité de RAM s'est produit avec l'introduction de la technologie des semi-conducteurs dans la fabrication de dispositifs de stockage de mémoire, grâce à laquelle la capacité de la RAM a franchi la limite du mégaoctet. L'un des premiers ordinateurs à disposer d'une telle mémoire était l'IBM7030 en 1961, qui avait une taille de mémoire de 2 MGB. Les développements de conception de cette machine ont ensuite été utilisés dans les séries bien connues de machines IBM360 et IBM370. Ces machines, avec des bus d'adresses mémoire 24 bits, avaient la possibilité d'étendre leurs volumes mémoire jusqu'à 16 MGBT. Avec l'introduction d'un bus 32 bits dans des ordinateurs tels que ESA370, IBM4381, bien que la mémoire n'ait pas dépassé la limite du gigaoctet, elle a pu passer de 16 à 64 Mo.

Les mainframes modernes de l'architecture Z, tels que le Z9BC, ont la capacité de croître jusqu'à 64 Go avec un bus 64 bits, et l'ordinateur Z10 même jusqu'à 1,5 TRBT.

Quant à nos ordinateurs domestiques, la quantité de RAM des machines EC Series 3 (EC1046, EC1066) a atteint 8Mgbt, les machines qui étaient destinées à achever leur chemin historique de développement à ce stade.

Il y avait aussi des ordinateurs de la classe des supercalculateurs conçus à des fins de défense du système de défense antimissile, qui avaient une plus grande capacité de mémoire, par exemple, le projet M13 (la quantité de RAM de ce supercalculateur pouvait être étendue à 34 mégaoctets).

L'une des principales caractéristiques suivantes de l'organisation physique de la mémoire est le temps d'échantillonnage des données, qui était de 10 à 12 µs pour les ordinateurs de deuxième génération avec mémoire sur noyaux magnétiques. Et ce n'est qu'avec l'introduction de la mémoire à semi-conducteurs que le temps d'échantillonnage des données a été réduit d'un ordre de grandeur et est passé de 1,5 à 0,5 sq.

La mémoire dynamique par sa nature et son mode de stockage des données, malgré sa structure plus simple que statique, est la partie la plus inertielle, c'est-à-dire la plus lente du système informatique et même pour une réduction significative des cycles d'accès, elle reste telle à le temps présent.

C'est la raison de la construction d'une mémoire à plusieurs niveaux dans les systèmes informatiques, qui comprend des fichiers de registre et un nombre différent de niveaux de mémoire tampon à grande vitesse, exécutés sur des éléments de stockage statiques (déclencheurs).

L'architecture moderne des systèmes informatiques fonctionne avec des concepts tels que la mémoire virtuelle, dont la correspondance avec la mémoire physique est représentée par un ensemble de mémoire opérationnelle et externe. Cela est devenu possible grâce à une idée avancée par des scientifiques anglais de l'Université de Manchester, dont l'essence était de séparer le concept de la taille de l'espace d'adressage de la taille spécifique de la RAM d'adresse dans le système. Ainsi, l'espace d'adressage du système est devenu indépendant de la taille de la RAM et a commencé à apparaître à la disposition du programmeur sous forme de mémoire virtuelle, lui offrant de nombreuses possibilités lors de l'écriture de programmes sans se limiter à la taille de la RAM.

Pour mettre en œuvre cette idée, il était nécessaire d'introduire des concepts tels que les adresses logiques et les pages virtuelles, représentant des zones de mémoire d'une certaine taille égale, dans lesquelles tout l'espace d'adressage de la mémoire virtuelle a commencé à être divisé.

La mémoire réelle a commencé à être divisée en pages physiques, dont les tailles correspondaient à la taille des pages virtuelles.

En fait, le contenu de la mémoire virtuelle peut être en RAM, puis la page virtuelle acquiert le statut de physique, et dans toute zone autorisée de RAM à la discrétion du système d'exploitation ou, dans le cas contraire, stockage de mémoire externe .

Par conséquent, un système informatique qui implémente le mécanisme de virtualisation de mémoire doit avoir un mécanisme pour déplacer le contenu des pages virtuelles de la mémoire externe vers la RAM et inversement pendant l'exécution du programme. Un tel mécanisme est appelé système de fichiers, et un mécanisme de redirection dynamique, par exemple, dans les systèmes IBM ou un mécanisme de pagination dans Processeurs INTEL convertir les adresses virtuelles en adresses physiques.

Le concept d'adresses logiques a été introduit. Les adresses des commandes et des données générées lors de l'exécution des commandes dans le processeur ont acquis le statut de celles logiques, car elles ont cessé de correspondre à des adresses de mémoire physique et n'ont indiqué que leur emplacement dans l'espace d'adressage du code de programme.

De plus, il est devenu possible dans le système qu'il existe plusieurs espaces d'adressage virtuels qui ont leurs propres schémas pour convertir les adresses logiques en adresses physiques.

La mémoire virtuelle est un objet système considéré au niveau du système d'exploitation et il est donc plus opportun de caractériser sa structure du point de vue de l'organisation logique de la mémoire.

Avant de caractériser l'organisation logique de la mémoire, il convient de noter que l'adressage de la mémoire physique est effectué par octets, c'est-à-dire que l'unité adressable minimale est un octet, et donc toutes les tailles d'éléments structurels de l'organisation logique de la mémoire doivent être multiples d'un nombre entier d'octets en eux.

Le programme fonctionne avec des concepts tels que l'opérateur, les opérandes, les constantes, les variables, exprimés sous forme numérique ou symbolique. Du fait de la traduction du code du programme, ils représentent des codes binaires constitués d'un nombre entier d'octets, qui sont placés dans la RAM lors de l'exécution du programme. Les octets sont combinés en mots, les mots en lignes, les lignes en pages, les pages en segments.

L'ordre dans lequel les octets sont placés en mémoire est important pour l'organisation logique de la mémoire. Il est d'usage d'organiser les octets séquentiellement en mémoire de gauche à droite, en augmentant les valeurs de leurs adresses d'une unité.

La partition de la mémoire virtuelle et physique en pages et segments permet non seulement de mapper des pages virtuelles à la mémoire physique, mais aussi de décrire des zones d'espace linéaire et de mémoire physique, en tenant compte de leur objectif et des droits d'accès des programmes dans le so- des descripteurs appelés correspondant à chaque segment et à chaque page... Ainsi, un mécanisme de protection est mis en œuvre lors de l'accès à la RAM.

Ainsi, la couche du système d'exploitation dispose d'un mécanisme pour diviser la mémoire virtuelle et physique en pages et segments, qu'elle utilise comme un outil pour former la structure de la mémoire logique du système. Mais il existe des zones de la RAM pour lesquelles seul l'adressage physique est utilisé. Dans ces zones, le système d'exploitation alloue généralement des tables qui sont utilisées lors de la conversion des adresses de mémoire logique en adresses physiques. A. également divers types d'informations de service, auxquelles l'accès n'est autorisé que de son côté. Ces zones sont appelées zones de mémoire allouées en permanence, dont la taille est déterminée par l'architecture du système et les systèmes d'exploitation.

Il existe un modèle de mémoire logique plat et multidimensionnel. Le concept de modèle de mémoire plate est associé à l'organisation de la RAM, proposée par von Neumann, c'est-à-dire au placement de commandes et de données dans une zone commune de mémoire physique, donnant au programmeur lui-même le droit de contrôler la commande. de leur placement. Un tel modèle créait certaines difficultés et nécessitait des efforts supplémentaires de la part du programmeur lors de l'écriture du programme. La première tentative d'amélioration du modèle de mémoire plate a été l'introduction d'un mécanisme de segmentation pour séparer les zones pour les instructions et les données. Ce modèle a commencé à être appelé plat protégé, dans lequel les zones d'instructions et de données pouvaient encore être situées dans la taille de la mémoire physique, mais à des endroits différents, dont l'accès était indiqué par les adresses de départ des segments dans les descripteurs, et la taille était limité par la valeur de la limite qui y était spécifiée ... Ainsi, le mécanisme de protection en mémoire le plus simple a été mis en œuvre. Cette technologie ressemblait à la technologie du modèle de mémoire dans l'architecture de Harvard, mais appliqué à la mémoire physique partagée pour les instructions et les données. Plus tard, un modèle de mémoire plate multisegment a été introduit, dans lequel d'autres zones destinées non seulement au stockage des commandes et des données ont commencé à être contrôlées par le mécanisme de protection.

Le modèle de mémoire est devenu multidimensionnel avec l'introduction de la mémoire virtuelle, dans laquelle les adresses logiques ont été divisées en plusieurs parties, dont chacune a été soumise à une transformation de table. Le nombre de mécanismes impliqués dans la transformation détermine la multidimensionnalité de la mémoire logique. Avec la conversion d'adresses par pagination, la mémoire devient unidimensionnelle, dans laquelle, dans sa forme la plus simple, un groupe constitué des bits les plus significatifs d'une adresse logique est soumis à une conversion. Le nombre de ces bits dans le groupe, ou plutôt la puissance 2, déterminé par ce nombre de bits, détermine le nombre de pages virtuelles en mémoire virtuelle. Les bits les moins significatifs de l'adresse logique ne sont pas convertis et déterminent l'offset, c'est-à-dire l'emplacement des données dans la page physique. Le nombre de pages de mémoire virtuelle étant suffisamment important, le groupe supérieur de bits de l'adresse logique est divisé en plusieurs groupes. Par conséquent, le moteur de conversion utilise plusieurs ensembles de tableaux plus petits au lieu d'un seul tableau de page. Le nombre de tables incluses dans l'ensemble sera également déterminé par le degré déterminé par le nombre de bits d'adresse dans le groupe suivant le groupe d'adresses inférieures de l'adresse logique, et le nombre d'ensembles sera égal au nombre de lignes dans le répertoire de la page, dont la taille dépendra du nombre de bits dans le groupe qui détermine la taille du répertoire... La structure décrite ci-dessus sera typique dans le cas de la division du groupe supérieur de bits d'une adresse logique en trois parties.

Considérons quel matériel est nécessaire pour convertir les adresses logiques en adresses physiques.

Comme mentionné ci-dessus, le groupe inférieur de bits de l'adresse logique n'est pas sujet à conversion et représente un décalage, c'est-à-dire l'emplacement du premier octet de données d'adresse dans une page physique.

Le mécanisme étape par étape pour convertir une adresse logique en adresse physique (lors de la division de la partie supérieure d'une adresse logique en deux parties) se produit dans l'ordre suivant :

1. Un appel est effectué sur une ligne de la table, déterminée par le groupe des bits les plus significatifs de l'adresse logique, interprétée comme un répertoire de pages. La table est située dans la RAM. L'adresse de chaîne est formée en ajoutant l'adresse de base indiquant le début de l'emplacement de la table en mémoire et préchargée dans le registre système du processeur. Le deuxième terme est le code du groupe d'ordre supérieur.

2. En conséquence, une ligne de répertoire est lue dans la mémoire, qui contient les attributs et l'adresse de base de la table des pages correspondant à cette ligne de répertoire.

3. Un cycle d'accès mémoire à une ligne de la table des pages est organisé. L'adresse de chaîne est formée en ajoutant l'adresse de base lue dans la chaîne d'annuaire et le code correspondant à la valeur des chiffres du groupe suivant le groupe de chiffres d'annuaire.

4. La ligne de lecture de la table des pages contient l'adresse de base de la page physique en mémoire, qui est transmise à l'additionneur, où en ajoutant avec la valeur du groupe de bits de poids faible de l'adresse logique, représentant le décalage dans la zone de la page physique, l'adresse physique de l'accès mémoire est formée.

Et donc, conformément à l'algorithme ci-dessus, le matériel pour prendre en charge la conversion des adresses logiques en adresses physiques est :

1. Une zone de mémoire vive allouée au stockage des tables. Cette zone est un espace dans lequel le mécanisme de transformation n'opère pas.

2. La présence de registres de contrôle dans le processeur, pour stocker l'adresse de base, indiquant l'emplacement de la table initiale en mémoire.

3. Un additionneur pour effectuer des opérations d'addition d'arithmétique d'adresse.

4. La présence de registres tampons ou de mémoires caches est totalement associative pour stocker les résultats des étapes de conversion des adresses logiques en adresses physiques.

Le matériel le plus récent est nécessaire pour augmenter les performances du système, car il n'est pas nécessaire d'effectuer un cycle complet de transformations à chaque fois que l'on accède à la mémoire dans une page physique, dont les coordonnées ont été calculées lors du premier accès.

L'introduction d'un mécanisme de segmentation supplémentaire lors de la traduction des adresses logiques rend le modèle de mémoire bidimensionnel. Le mécanisme de segmentation forme un espace d'adressage linéaire de la mémoire virtuelle, qui, à la suite de la transformation, se compose de segments dans lesquels se trouvent des codes de programme et des données, définissant ainsi une dimension de la mémoire logique, la deuxième dimension détermine le mécanisme de transformation de page, représentant mémoire comme un ensemble de pages virtuelles.

Il convient de noter que l'idéologie de la segmentation de la mémoire virtuelle dans les systèmes informatiques est interprétée différemment... Par exemple, l'étape de segmentation dans le processus de conversion des adresses logiques en adresses physiques dans les systèmes IBM (serveurs IBM360, IBM370, Zarchitecture) est indissociable de l'étape de conversion de page, étant l'étape précédente avant l'étape de conversion de page, comme dans les systèmes INTEL, elle n'est contrôlée que par la partie supérieure des adresses d'adresse logique, la partie médiane de l'adresse et le groupe d'adresses inférieur n'interviennent que dans la pagination. Ainsi, en réalisant une connexion logique indissociable entre les étapes, en divisant d'abord la mémoire virtuelle en segments-zones grande taille puis segments par page.

Dans les serveurs Zarchitecture, la taille de l'adresse virtuelle a été augmentée à 64 bits, ce qui a permis d'adresser de la mémoire virtuelle jusqu'à 16 exaoctets. Quant à la multidimensionnalité de la mémoire logique dans ces serveurs, la partie matérielle de ceux-ci permet d'avoir jusqu'à 4 types d'espaces d'adressage virtuels indépendants les uns des autres avec le nombre d'espaces dans deux d'entre eux 64K chacun et dans les deux autres 16 K chacun avec ses propres transformations de table pour chaque type, qui sont utilisées pour créer des formations logiques virtuelles - des partitions logiques, chacune ayant son propre système d'exploitation. Chaque type d'adresses virtuelles associé au type de sa mémoire virtuelle est soumis au même mécanisme de conversion avec ses propres ensembles de tables. Par conséquent, en suivant les concepts et la terminologie discutés ci-dessus, la mémoire dans ces serveurs peut être considérée comme un ensemble de 4 types de mémoires virtuelles unidimensionnelles avec une transformation en cinq étapes, ayant cinq types de zones : page, segment, région1, région2, région3.

Le schéma de traduction des adresses virtuelles dans les serveurs Zarchitecture

Envoyez votre bon travail dans la base de connaissances est simple. Utilisez le formulaire ci-dessous

Les étudiants, les étudiants diplômés, les jeunes scientifiques qui utilisent la base de connaissances dans leurs études et leur travail vous seront très reconnaissants.

Publié sur http://www.allbest.ru/

1. Principes d'échange d'informations entre niveaux hiérarchiques du sous-système mémoire.

2. Fonctions de base et sous-systèmes de base du système informatique.

3. Le principe de fonctionnement de la mémoire cache associative.

4. Implémentation d'interruptions à partir de périphériques connectés via une interface série.

5. Que sont les anneaux de protection ?

6. Qu'est-ce que la segmentation de la mémoire ?

7. Principales caractéristiques des données vidéo. Présentation matricielle et graphique des informations vidéo.

8. Qu'est-ce qu'un fichier ? Différences entre fichier et répertoire.

9. Les principales étapes du pipeline de processeurs modernes.

10. Qu'est-ce que le renommage de registre ?

Question n° 1. Principes d'échange d'informations entre niveaux hiérarchiques du sous-système mémoire

Au cœur de l'implémentation de la hiérarchie mémoire ordinateurs modernes il y a deux principes : le principe de localité des appels et le rapport coût/performance. Le principe de la localité des appels suggère que la plupart des programmes, heureusement, n'exécutent pas les appels à toutes leurs commandes et données de la même manière, mais préfèrent une partie de leur espace d'adressage.

La hiérarchie de la mémoire des ordinateurs modernes est construite sur plusieurs niveaux, et le niveau supérieur est plus petit en volume, plus rapide et a un coût par octet plus élevé que le niveau inférieur. Les niveaux d'une hiérarchie sont interdépendants : toutes les données d'un niveau peuvent également être trouvées à un niveau inférieur, et toutes les données de ce niveau inférieur peuvent être trouvées au niveau inférieur suivant, et ainsi de suite, jusqu'à ce que nous atteignions le bas de la hiérarchie .

La hiérarchie de la mémoire se compose généralement de plusieurs niveaux, mais à un moment donné, nous n'avons affaire qu'à deux niveaux proches. La plus petite unité d'information qui peut ou non être présente dans une hiérarchie à deux niveaux est appelée un bloc. La taille du bloc peut être fixe ou variable. Si cette taille est fixe, alors la taille de la mémoire est un multiple de la taille du bloc.

Un accès réussi ou infructueux à un niveau supérieur est appelé respectivement un succès ou un échec. Hit - il y a un appel à un objet en mémoire, qui a été trouvé pour plus haut niveau, alors qu'un échec signifie qu'il n'a pas été trouvé à ce niveau. Le taux de succès ou le taux de succès est le pourcentage de succès trouvés à un niveau supérieur. Parfois, il est représenté en pourcentage. Le taux d'échec est le pourcentage de hits qui n'ont pas été trouvés à un niveau supérieur.

Étant donné que l'amélioration des performances est la principale raison de l'émergence de la hiérarchie de la mémoire, le taux de succès et d'échec est caractéristique importante... Le hit time est le temps d'accès à un niveau supérieur de la hiérarchie, qui comprend notamment le temps qu'il faut pour déterminer si le hit est un hit ou un échec. La pénalité d'échec est le temps de remplacer un bloc à un niveau supérieur par un bloc d'un niveau inférieur, plus le temps de transférer ce bloc vers le périphérique souhaité (généralement le processeur). La perte sur un échec comprend en outre deux composants : le temps d'accès - le temps pour accéder au premier mot du bloc en cas d'échec, et le temps de transfert - le temps supplémentaire pour transférer les mots restants du bloc. Le temps d'accès est lié à la latence de la mémoire de couche inférieure, tandis que le temps de transfert est lié à la bande passante du canal entre les dispositifs de mémoire de deux couches adjacentes.

Question numéro 2. Fonctions de base et sous-systèmes de base du système informatique

OS est un complexe de programmes interconnectés conçu pour améliorer l'efficacité du matériel informatique par une gestion rationnelle de ses ressources, ainsi que pour offrir du confort à l'utilisateur en lui fournissant une machine virtuelle étendue. Les principales ressources gérées par le système d'exploitation comprennent les processeurs, la mémoire principale, les minuteries, les ensembles de données, les disques, les lecteurs de bande, les imprimantes, les périphériques réseau et quelques autres. Les ressources sont partagées entre les processus. Pour résoudre les problèmes de gestion des ressources, différents systèmes d'exploitation utilisent différents algorithmes, dont les caractéristiques déterminent en fin de compte l'apparence du système d'exploitation. Les sous-systèmes les plus importants du système d'exploitation sont les sous-systèmes de gestion des processus, de la mémoire, des fichiers et des périphériques externes, ainsi que des sous-systèmes pour l'interface utilisateur, la protection des données et l'administration.

Fonctions principales:

* Exécution à la demande de programmes de ces actions plutôt élémentaires (de bas niveau) qui sont communes à la plupart des programmes et se retrouvent souvent dans presque tous les programmes (entrée et sortie de données, démarrage et arrêt d'autres programmes, allocation et libération de mémoire supplémentaire, etc. .).

* Accès standardisé aux périphériques (périphériques d'entrée-sortie).

* Gestion de la mémoire vive (répartition entre processus, organisation de la mémoire virtuelle).

* Contrôler l'accès aux données sur des supports non volatiles (tels qu'un disque dur, disques optiques et autres) organisés dans un système de fichiers particulier.

* Fournir une interface utilisateur.

* Opérations réseau, prise en charge de la pile de protocoles réseau.

Fonctions supplémentaires:

* Exécution parallèle ou pseudo-parallèle de tâches (multitâche).

* Répartition efficace des ressources du système informatique entre les processus.

* Différenciation de l'accès des différents processus aux ressources.

* Interaction entre processus : échange de données, synchronisation mutuelle. Un processus est un objet dynamique qui apparaît dans le système d'exploitation après que l'utilisateur ou le système d'exploitation lui-même ait décidé « d'exécuter un programme », c'est-à-dire de créer une nouvelle unité de travail informatique. Utilisateur - une personne ou une organisation qui utilise le système actuel pour exécuter une fonction spécifique. Un fichier est une zone nommée de mémoire externe dans laquelle vous pouvez écrire et à partir de laquelle des données peuvent être lues. Les principaux objectifs de l'utilisation des fichiers sont : le stockage à long terme et fiable des informations, ainsi que l'accès partagé aux données.

Question numéro 3. Le principe de fonctionnement de la mémoire cache associative

Dans la mémoire associative, les éléments sont sélectionnés non par adresse, mais par contenu. Expliquons le dernier concept plus en détail. Pour la mémoire avec organisation d'adresses, le concept d'unité adressable minimale (MAU) a été introduit comme une donnée avec une adresse individuelle. Introduisons un concept similaire pour la mémoire associative, et nous appellerons cette unité minimale de stockage en mémoire associative une chaîne de mémoire associative (StrAP). Chaque StrAP contient deux champs : un champ tag (tag anglais - tag, label, attribut) et un champ de données. La demande de lecture de la mémoire associative en mots peut s'exprimer de la manière suivante : sélectionnez la ou les ligne(s) dans laquelle (dans laquelle) la variable est égale à la valeur spécifiée.

Notons surtout qu'avec une telle requête, l'un des trois résultats est possible :

1. il y a exactement une ligne avec la balise donnée ;

2. il y a plusieurs lignes avec la balise donnée ;

3. il n'y a pas de lignes avec la balise donnée.

La recherche d'un enregistrement par attribut est une activité courante dans les accès aux bases de données, et la recherche dans une base de données est souvent une recherche associative. Pour effectuer cette recherche, regardez tous les enregistrements et comparez la balise spécifiée avec la balise de chaque enregistrement. Cela peut être fait en utilisant une mémoire adressable ordinaire pour stocker des enregistrements (et il est clair que cela prendra beaucoup de temps - proportionnellement au nombre d'enregistrements stockés !). La mémoire associative est dite lorsque la récupération de données associatives à partir de la mémoire est prise en charge par le matériel. Lors de l'écriture dans la mémoire associative, l'élément de données est placé dans le StrAP avec la balise inhérente à cet élément. Pour cela, vous pouvez utiliser n'importe quel StrAP gratuit.

Au début du travail, la mémoire cache est vide. Lorsque la première commande est exécutée pendant l'extraction, son code, ainsi que quelques octets adjacents supplémentaires du code du programme, seront transférés (lentement) vers l'une des lignes de cache, et en même temps la partie supérieure de l'adresse sera être écrit dans la balise correspondante. C'est ainsi que la ligne de cache est remplie.

Si les prochaines sélections sont possibles à partir de cette zone, elles se feront déjà à partir du CACHE (rapide) - "CACHE-hit". S'il s'avère que l'élément recherché n'est pas dans le CACHE, - "CACHE-miss". Dans ce cas, l'accès à la RAM se produit (lentement) et en même temps la ligne de cache suivante est remplie.

Le cache est accessible comme suit. Une fois l'adresse exécutive formée, ses bits les plus significatifs, qui forment une balise, sont matériels (rapides) et comparés simultanément aux balises de toutes les lignes de cache. Dans ce cas, seules deux situations sur les trois énumérées précédemment sont possibles : soit toutes les comparaisons donneront un résultat négatif (cache miss), soit un résultat de comparaison positif sera enregistré exactement pour une ligne (cache hit).

Lors de la lecture, si un accès au cache est enregistré, les bits inférieurs de l'adresse déterminent la position dans la ligne de cache à partir de laquelle sélectionner les octets, et le type d'opération détermine le nombre d'octets. Évidemment, si la longueur d'un élément de données dépasse un octet, alors des situations sont possibles lorsque cet élément (en parties) est situé dans deux (ou plus) lignes de cache différentes, alors le temps de récupération d'un tel élément augmentera. Cela peut être contrecarré en alignant les opérandes et les instructions le long des limites des lignes de cache, ce qui est pris en compte lors du développement de traducteurs d'optimisation ou lors de l'optimisation manuelle du code.

S'il y a un manque de cache et qu'il n'y a pas de lignes libres dans le CACHE, vous devez remplacer une ligne du CACHE par une autre ligne.

L'objectif principal de la stratégie de remplacement est de conserver dans la mémoire cache les lignes les plus susceptibles d'être accédées dans un futur proche, et de remplacer les lignes qui seront accédées ultérieurement ou pas du tout. De toute évidence, l'algorithme optimal sera celui qui remplacera la ligne qui sera accessible plus tard dans le futur que toute autre ligne de cache.

Question n°4. Mise en œuvre d'interruptions à partir de périphériques connectés via une interface série

L'interface série pour la transmission de données dans un sens utilise une ligne de signal, à travers laquelle les bits de données sont transmis les uns après les autres de manière séquentielle. Ce mode de transmission détermine le nom de l'interface et le port qui l'implémente (Serial Interface et Serial Port). La transmission de données en série peut être effectuée en modes synchrone et asynchrone.

Dans la transmission asynchrone, chaque octet est précédé d'un bit de départ qui signale au récepteur le début du message suivant, suivi de bits de données ou d'un bit de parité (parité). Termine l'envoi avec un bit d'arrêt.

Le format du message asynchrone permet d'identifier erreurs possibles transmission.

Le mode de transmission synchrone suppose une activité constante du canal de communication. La transmission commence par un synchrooctet suivi d'un flux dense de bits d'information. Si l'émetteur n'a pas de données à transmettre, il comble le vide en envoyant en continu des octets de synchronisation. Lors du transfert de grandes quantités de données, la surcharge de synchronisation dans ce mode sera inférieure à celle du mode asynchrone.

Une interruption est un signal qui informe le processeur de la fin d'un événement asynchrone. Dans ce cas, l'exécution de la séquence de commandes en cours est suspendue et le contrôle est transféré au gestionnaire d'interruption, qui effectue le travail de traitement de l'événement et rend le contrôle au code interrompu. Types d'interruptions : Matériel (IRQ - Interrupt Request) - événements provenant de périphériques (par exemple, frappes de clavier, mouvements de souris, signal de minuterie, carte réseau ou lecteur de disque) - interruptions externes ou événements dans le microprocesseur - (par exemple, division par zéro) - interruptions internes ; Logiciel - initié par le programme exécutable, c'est-à-dire déjà synchrone, pas asynchrone. Les interruptions logicielles peuvent être utilisées pour appeler les services du système d'exploitation.

Les interruptions nécessitent de suspendre l'exécution du flux d'instructions en cours (tout en maintenant l'état) et de démarrer l'exécution de la routine de service d'interruption (ISR) (Interrupt Service Routine). Cette procédure doit d'abord identifier la source de l'interruption (et il peut y en avoir plusieurs), puis effectuer des actions liées à la réaction à l'événement. Si les événements doivent déclencher une action programme d'application, alors le gestionnaire d'interruption ne doit envoyer qu'un signal (via le système d'exploitation) qui démarre (ou réveille) le flux d'instructions qui exécute ces actions. La procédure ISR réelle doit être optimisée dans le temps. Le traitement des interruptions, en particulier en mode protégé, représente une surcharge importante sur les ordinateurs compatibles PC dotés de processeurs x86. Pour cette raison, ils essaient de réduire leur nombre. L'identification de la source de l'interruption est un problème important - dans l'architecture ordinateurs compatibles PC des mécanismes traditionnels mais inefficaces sont utilisés pour cela. Dans certains cas, les interruptions des appareils sont remplacées par une interrogation - une interrogation contrôlée par logiciel de l'état des appareils. Dans ce cas, les états d'une pluralité de dispositifs sont interrogés par une interruption de temporisation.

Question n° 5. Que sont les anneaux de protection ?

Anneaux de protection - architecture sécurité de l'information et la tolérance aux pannes fonctionnelle, qui implémente la séparation matérielle des niveaux de privilèges système et utilisateur. La structure des privilèges peut être représentée par plusieurs cercles concentriques. Dans ce cas mode système(le mode superviseur ou ring zero, dit « ring 0 »), qui offre un accès maximal aux ressources, est le cercle intérieur, tandis que le mode utilisateur avec accès limité- externe. Traditionnellement, la famille de microprocesseurs x86 fournit 4 anneaux de protection.

La prise en charge de plusieurs anneaux de protection était l'un des concepts révolutionnaires inclus dans le système d'exploitation Multics, le précurseur des systèmes d'exploitation de type UNIX d'aujourd'hui.

Le Multics d'origine avait 8 anneaux de protection, mais de nombreux systèmes modernes ont tendance à en avoir moins. Le processeur sait toujours dans quel anneau le code est exécuté, grâce à des registres machine spéciaux.

Le mécanisme de l'anneau restreint considérablement les façons dont le contrôle peut être transféré d'un anneau à un autre. Certaines instructions transfèrent le contrôle d'un anneau moins sécurisé à un anneau plus sécurisé (numéro inférieur). Ce mécanisme est conçu pour limiter les possibilités d'atteintes à la sécurité accidentelles ou intentionnelles.

L'utilisation efficace de l'architecture de protection en anneau nécessite une interaction étroite entre le matériel et le système d'exploitation. Les systèmes d'exploitation conçus pour fonctionner sur un grand nombre de plates-formes peuvent avoir différentes implémentations du mécanisme en anneau sur chaque plate-forme.

Question n° 6. Qu'est-ce que la segmentation mémoire ?

La segmentation est une technique d'organisation de programme dans laquelle la structure d'adresse d'un programme reflète sa segmentation significative. Dans la segmentation, l'espace d'adressage de chaque programme est subdivisé en segments de différentes longueurs, qui correspondent de manière significative aux différentes parties du programme. Par exemple, un segment peut être une procédure ou une zone de données. Dans ce cas, l'adresse se compose d'un nom de segment et d'une adresse dans le segment décalé. Étant donné que les segments de programme sont référencés par des noms, il est possible d'allouer des segments dans des zones de mémoire non contiguës lors de l'allocation de mémoire. De plus, tous les segments ne doivent pas être simultanément dans l'OP, certains d'entre eux peuvent être situés dans la mémoire externe et transférés vers l'OP comme requis.

Comme déjà indiqué, dans un système segmenté, chaque adresse représente un couple : s pour le nom du segment et d pour l'offset. Chaque programme correspond à une table de segments toujours présents en mémoire, dans laquelle un enregistrement correspond à chaque segment d'un processus donné. A l'aide de ce tableau, le système mappe les adresses du programme aux vraies adresses de l'OP. L'adresse de la table est stockée dans un registre matériel appelé registre de table de segments.

Le calcul de l'adresse lors de la segmentation est effectué comme suit. Avant que le système puisse calculer l'adresse, le signe de la présence du segment dans l'OP est vérifié par le matériel. Si le segment est présent, alors en utilisant le registre de table de segments, une adresse est faite à la s-ème rangée de la table de segments, où l'adresse de segment en mémoire est indiquée. Étant donné que les segments sont de longueurs différentes, vous devez connaître la limite du segment pour éviter d'aller au-delà du segment spécifié.

Si, à un moment donné, le système souhaite porter son attention sur un autre processus, il remplacera simplement le contenu du registre de la table de segments par l'adresse d'une autre table de segments, après quoi les liens du formulaire sont interprétés conformément à la nouvelle table.

La segmentation de l'espace d'adressage présente de nombreux avantages par rapport à l'adressage absolu, et l'essentiel est l'utilisation efficace de la RAM. S'il n'y a pas assez d'espace dans la RAM pour tous les segments d'un programme donné, certains peuvent être temporairement situés dans la mémoire auxiliaire. Si un programme doit entrer un nouveau segment dans l'OP, le système peut supprimer n'importe quel segment de l'OP dans l'auxiliaire. Le segment déplacé ne doit pas nécessairement appartenir au programme pour lequel le nouveau segment est introduit dans le PO. Peu importe à quelle table de segments correspond le segment déplacé, l'essentiel est que lorsqu'il est transféré dans la mémoire auxiliaire, la valeur de l'attribut change dans la table de segments correspondante.

Question numéro 7. Les principales caractéristiques des données vidéo. Présentation matricielle et graphique des informations vidéo

Les informations vidéo peuvent être à la fois statiques et dynamiques. Les informations vidéo statiques comprennent du texte, des images, des graphiques, des dessins, des tableaux, etc. Les images sont également divisées en deux dimensions et en trois dimensions.

Les informations vidéo dynamiques sont des images animées et des animations utilisées pour transmettre des images animées. Ils sont basés sur une exposition séquentielle à l'écran en temps réel d'images individuelles en fonction du scénario.

La démonstration de films d'animation et de diapositives est basée sur différents principes. Des films d'animation sont projetés de manière à ce que l'appareil visuel humain ne puisse pas capturer des images individuelles. Pour obtenir une animation de haute qualité, les images doivent être modifiées environ 30 fois par seconde. Lors de la projection de films diapositives, chaque image est exposée à l'écran aussi longtemps qu'il le faut pour qu'une personne la perçoive (généralement de 30 s à 1 min). Les films de diapositives peuvent être classés comme des informations vidéo statiques.

En informatique, il existe deux manières de représenter des images graphiques ; matrice (raster) et vecteur. Les formats bitmap sont bien adaptés aux images avec des gammes complexes de couleurs, de nuances et de formes, telles que des photographies, des dessins, des données numérisées. Les formats vectoriels sont plus adaptés aux dessins et images avec formes simples, ombres et coloration.

Dans les formats matriciels, l'image est représentée par une matrice rectangulaire de points - pixels (élément d'image), dont la position dans la matrice correspond aux coordonnées des points sur l'écran. En plus des coordonnées, chaque pixel est caractérisé par sa propre couleur, couleur d'arrière-plan ou gradation de luminosité. Le nombre de bits alloués pour indiquer la couleur d'un pixel varie en fonction du format. Dans les images de haute qualité, la couleur d'un pixel est décrite en 24 bits, ce qui donne environ 16 millions de couleurs. Le principal inconvénient des graphiques matriciels (raster) est la grande capacité de mémoire requise pour stocker l'image, c'est pourquoi diverses méthodes de compression de données sont utilisées pour décrire les images. Il existe de nombreux formats de nos jours fichiers graphiques, différant par les algorithmes de compression et les méthodes de représentation des images matricielles, ainsi que par le champ d'application.

La représentation vectorielle, contrairement aux graphiques matriciels, définit la description de l'image non pas par des pixels, mais par des courbes - splines. Une spline est une courbe lisse qui passe par deux ou plusieurs points d'ancrage qui contrôlent la forme de la spline.

Le principal avantage des graphiques vectoriels est que la description d'un objet est simple et prend peu de mémoire. Outre, Graphiques vectoriels par rapport à la matrice présente les avantages suivants :

Simplicité de mise à l'échelle de l'image sans détérioration de sa qualité ;

Indépendance de la capacité mémoire requise pour stocker l'image par rapport au modèle de couleur sélectionné.

Désavantage images vectorielles leur certaine artificialité est que toute image doit être divisée en un ensemble fini de ses primitives constitutives. Comme pour les graphiques matriciels, il existe plusieurs formats de fichiers vectoriels graphiques.

Les graphiques matriciels et vectoriels n'existent pas isolément les uns des autres. Ainsi, les dessins vectoriels peuvent inclure des images matricielles. De plus, les images vectorielles et matricielles peuvent être converties entre elles. Les formats graphiques qui combinent des descriptions d'images matricielles et vectorielles sont appelés métafichiers. Les métafichiers offrent une compacité suffisante des fichiers tout en maintenant une qualité d'image élevée.

Les formes envisagées de présentation d'informations vidéo statiques sont utilisées, en particulier, pour des trames individuelles qui forment des films d'animation. Diverses méthodes de compression d'informations sont utilisées pour stocker des films d'animation, dont la plupart sont standardisés.

Question # 8. Qu'est-ce qu'un fichier ? Différences entre fichier et répertoire

données vidéo opérationnelles de mémoire de calcul

Fichier (fichier anglais - classeur) est un concept en informatique : une entité qui vous permet d'accéder à n'importe quelle ressource d'un système informatique et possède un certain nombre de fonctionnalités :

Nom fixe (séquence de caractères, numéro ou autre chose qui caractérise de manière unique le fichier) ;

Une certaine représentation logique et les opérations de lecture/écriture correspondantes.

Cela peut être n'importe quoi - d'une séquence de bits (bien que nous la lisons par octets, ou plutôt des groupes de mots d'octets, quatre, huit, seize chacun) à une base de données avec une organisation arbitraire ou toute option intermédiaire ; base de données multidimensionnelle, strictement ordonnée.

Le premier cas correspond aux opérations de lecture/écriture d'un flux et/ou d'un tableau (c'est-à-dire séquentiel ou avec accès par index), le second - les commandes SGBD. Les options intermédiaires sont la lecture et l'analyse de toutes sortes de formats de fichiers.

Un fichier est un ensemble nommé d'octets de longueur arbitraire situé sur un support de stockage, et un répertoire est un emplacement nommé sur un disque dans lequel les fichiers sont stockés. Le nom de fichier complet peut inclure des répertoires tels que C: \ papka \ file.txt, il peut ne pas inclure C: \ file.txt, et un répertoire est l'endroit où les fichiers peuvent se trouver : C: \ papka. Le répertoire ne peut pas être ouvert dans le programme pour y écrire des informations ou le lire, c'est pour stocker des fichiers à l'intérieur de lui-même, le fichier, au contraire, peut être ouvert et édité.

Question n° 9. Les principales étapes du pipeline des processeurs modernes

La tâche principale du processeur est d'exécuter (et le plus rapidement possible) les commandes incluses dans le programme. Le moyen le plus simple (augmenter fréquence d'horloge processeur) est rapidement épuisé par les limitations technologiques. Par conséquent, vous devez rechercher d'autres moyens d'améliorer les performances. C'était un ensemble d'innovations architecturales qui ont permis au Pentium d'améliorer ses performances sur 486 processeurs. Le plus important d'entre eux est la bande transporteuse.

L'exécution d'une commande se compose de plusieurs étapes :

1) lire une commande en mémoire,

2) détermination de la longueur,

3) déterminer l'adresse d'une cellule mémoire, si elle est utilisée,

4) exécution de commandes,

5) enregistrer le résultat.

Dans les premiers processeurs, toutes ces étapes étaient exécutées intégralement sur chaque commande. Le convoyeur nous a permis d'accélérer le processus : une fois que l'équipe est passée par l'une des étapes et est passée à la suivante, le traitement de la commande suivante a commencé. Cette solution est apparue dans les derniers 486 (par exemple, dans AMD 5x86-133). Le Pentium introduit pour la première fois un double pipeline. Les instructions pouvaient s'exécuter en parallèle (à l'exception des instructions arithmétiques flottantes et sautées). Cela a permis d'augmenter la productivité d'environ 30 à 35 %.

Question n° 10. Qu'est-ce que le renommage de registre ?

Le renommage des registres est une méthode pour relâcher les interdépendances des instructions utilisées dans les processeurs qui effectuent leur exécution dans le désordre.

Dans le cas où, conformément à deux ou plusieurs instructions, il est nécessaire d'écrire des données dans un registre, leur exécution correcte dans le désordre devient impossible même s'il n'y a pas de dépendance de données. De telles interdépendances sont souvent qualifiées de fausses.

Étant donné que le nombre de registres architecturaux est généralement limité, la probabilité de fausses interdépendances est élevée, ce qui peut entraîner une diminution des performances du processeur.

Le renommage de registre est la transformation de références logicielles de registres architecturaux en références de registres physiques et peut atténuer les fausses interdépendances en utilisant un grand nombre de registres physiques au lieu d'un nombre limité de registres architecturaux. Dans ce cas, le processeur surveille l'état des registres physiques correspondant à l'état des registres architecturaux, et les résultats sont renvoyés dans l'ordre fourni par le programme.

Sources de

Ressource Internet - http://www.chinapads.ru/

Ryazantsev O.I., Nedzelskiy D.O., Gusєva S.V. Organisation architecturale et structurelle des systèmes numériques. Navchalnyy pos_bnik. - Lougansk : vue. SNU im. Dahl, 2008.

Ressource Internet - http://studopedia.net/

Ressource Internet - http://proc.ucoz.ru/load/ustrojstvo_processora/1-1-0-2

E. Tannenbaum. Architecture informatique, 4e éd. SPb. Pierre 2006.

Ressource Internet - http://193.108.240.69/moodle/file.php/5/navch_pos_OS.doc

Ressource Internet - http://znanija.com/task/1788585

Publié sur Allbest.ru

Documents similaires

    Classification de la mémoire informatique. L'utilisation de mémoire vive opérationnelle, statique et dynamique. Comment fonctionne la DDR SDRAM. Formatage de disques magnétiques. Le principal problème avec la synchronisation. La théorie des processus informatiques. Adressage mémoire.

    dissertation ajoutée le 28/05/2016

    L'histoire de l'émergence et du développement de la mémoire vive. caractéristiques générales les types modernes les plus populaires de mémoire vive sont la SRAM et la DRAM. Mémoire à changement de phase (PRAM). Mémoire à thyristors à accès aléatoire, sa spécificité.

    dissertation, ajoutée le 21/11/2014

    Le schéma le plus simple d'interaction de la RAM avec le CPU. Le dispositif et les principes de fonctionnement de la mémoire vive. Évolution de la mémoire de tas. Le module de mémoire EDO-DRAM BEDO (Burst EDO) est une RAM EDO en rafale. Module Mémoire SDRAM, SDRAM DDR, SDRAM II.

    résumé, ajouté le 13/12/2009

    Le concept, les types et les fonctions de base de la mémoire informatique font partie d'un ordinateur, un dispositif physique permettant de stocker des données utilisées dans les calculs pendant un certain temps. Schéma de principe de la mémoire vive. Disques magnétiques souples.

    présentation ajoutée 18/03/2012

    Mémoire pour les systèmes informatiques, sa création et les caractéristiques des fonctionnalités. Création de dispositifs de mémoire et caractéristiques de performance de base. Schémas fonctionnels et méthode d'organisation de la matrice des éléments de stockage. Types de mémoire magnétique et flash.

    présentation ajoutée le 01/12/2009

    Stockage diverses informations comme objectif principal de la mémoire. Caractéristiques des types de mémoire. Type de mémoire SRAM et DRAM. La mémoire cache ou mémoire cache, sa spécificité et ses applications. Les derniers développements dans le domaine de l'in-memory.

    présentation ajoutée le 01/12/2014

    Généralisation des principaux types et objectifs de la RAM informatique. Mémoire volatile et non volatile. SRAM et DRAM. Déclencheurs, DRAM et ses modifications. Mémoire cache. Périphérique de stockage permanent. Mémoire flash. Types de mémoire externe.

    dissertation, ajouté le 17/06/2013

    Amélioration des paramètres des modules de mémoire. Fonctionnement et interaction du système d'exploitation avec la RAM. Analyse des principaux types, paramètres de mémoire vive. La partie programme avec le traitement de l'exécution des commandes et leur placement en RAM.

    dissertation, ajouté le 02/12/2009

    Dispositif général à microprocesseur. La structure du sous-système de mémoire 64 bits. Sélection des ports E/S. Caractéristiques de l'interface des systèmes à microprocesseur. Conception d'un sous-système mémoire basé sur Itanium 2. Calcul du contenu informationnel et des volumes requis.

    dissertation, ajouté le 12/05/2012

    Le concept et les caractéristiques fonctionnelles des dispositifs de stockage informatique, leur classification et leurs types, Caractéristiques comparatives: ROM, DRAM et SRAM. Évaluation des avantages et des inconvénients de chaque type de mémoire vive, directions et modes d'utilisation.

Chapitre 11

Organisation mémoire des systèmes informatiques

Dans les systèmes informatiques qui unissent de nombreux processeurs ou machines parallèles, le problème de la bonne organisation de la mémoire est l'un des plus importants. La différence entre la vitesse du processeur et la vitesse de la mémoire a toujours été une pierre d'achoppement dans les machines virtuelles monoprocesseur. Le multitraitement VS conduit à un autre problème - le problème de l'accès simultané à la mémoire à partir de plusieurs processeurs.

Selon l'organisation de la mémoire des systèmes multiprocesseurs (multi-ordinateurs), on distingue les systèmes informatiques à mémoire partagée et les AC à mémoire distribuée. DANS systèmes de mémoire partagée(elle est souvent appelée mémoire partagée ou partagée) La mémoire Sun est considérée comme une ressource communautaire et chacun des processeurs a un accès complet à l'ensemble de l'espace d'adressage. Les systèmes de mémoire partagée sont appelés fermement attaché(systèmes étroitement couplés). Une construction similaire de systèmes informatiques a lieu à la fois dans la classe SIMD et dans la classe MIMD. Parfois, pour souligner cette circonstance, des sous-classes spéciales sont introduites, en utilisant les abréviations SM-SIMD (Shared Memory SIMD) et SM-MIMD (Shared Memory MIMD) pour les désigner.

En option avec mémoire distribuée chacun des processeurs est affecté à sa propre mémoire. Les processeurs fusionnent dans réseau et peuvent, si nécessaire, échanger des données stockées dans leur mémoire, en se transmettant les messages. Ce type d'avion est appelé couplage lâche(systèmes faiblement couplés). Faiblement systèmes connexes se trouvent également à la fois dans la classe SIMD et dans la classe MIMD, et parfois, pour souligner cette caractéristique, les sous-classes DM-SIMD (Distributed Memory SIMD) et DM-MIMD (Distributed Memory MIMD) sont introduites.

Dans certains cas, les systèmes informatiques à mémoire partagée sont appelés multiprocesseurs, et systèmes à mémoire distribuée - mtsltiordinateurs.

La différence entre la mémoire partagée et distribuée réside dans la différence de structure de la mémoire virtuelle, c'est-à-dire l'apparence de la mémoire du côté du processeur. Physiquement, presque tous les systèmes de mémoire sont divisés en composants autonomes auxquels on peut accéder indépendamment. La façon dont le sous-système de mémoire interprète l'adresse de cellule reçue du processeur est détachée de la mémoire partagée. Par exemple, supposons que le processeur exécute l'instruction de chargement RO, i, ce qui signifie "Charger le registre R0 avec le contenu de la cellule i". Dans le cas de la mémoire partagée, i est l'adresse globale et pointe vers le même emplacement pour n'importe quel processeur. Dans un système de mémoire distribuée, i est l'adresse locale. Si deux processeurs exécutent la commande load RO, i, alors chacun d'eux fait référence à la i-ième cellule de sa mémoire locale, c'est-à-dire à des cellules différentes et des valeurs inégales ​peut être chargé dans les registres R0.

La différence entre les deux systèmes de mémoire doit être gardée à l'esprit par le programmeur, car elle détermine la manière dont les parties d'un programme parallèle interagissent. Dans la variante à mémoire partagée, il suffit de créer une structure de données en mémoire et de transférer des références à cette structure vers des sous-programmes parallèles. Dans un système de mémoire distribuée, vous devez avoir une copie des données partagées dans chaque mémoire locale. Ces copies sont créées en imbriquant des données partagées dans des messages envoyés à d'autres processeurs.

Mémoire d'adresses entrelacée

Physiquement, la mémoire d'un système informatique est constituée de plusieurs modules (banques), alors que la question essentielle est de savoir comment est réparti l'espace d'adressage dans ce cas (l'ensemble de toutes les adresses que peut former le processeur). Une façon de répartir les adresses virtuelles sur les modules de mémoire consiste à diviser l'espace d'adressage en blocs séquentiels. Si la mémoire consiste en N.-É. banques, puis la cellule avec l'adresse je en cas de partage de bloc, il sera dans la banque avec le numéro je/ m. Dans le système mémoire entrelacée(mémoire entrelacée) les adresses consécutives sont situées dans des banques différentes : la cellule avec l'adresse i est dans la banque avec le numéro i mod NS. Supposons, par exemple, que la mémoire se compose de quatre banques de 256 octets chacune. Dans le schéma d'adressage par blocs, la première banque se verra attribuer des adresses virtuelles 0-255, la seconde - 256-511, etc. Dans le schéma avec adresses alternées, les cellules consécutives de la première banque auront les adresses virtuelles 0, 4, 8, .. .. dans la deuxième banque - 1, 5, 9, etc. (Fig. 11.1, a).

La répartition de l'espace d'adressage entre les modules permet de traiter simultanément les demandes d'accès à la mémoire, si les adresses correspondantes appartiennent à des bancs différents, le processeur peut demander l'accès à une cellule dans l'un des cycles je et dans le cycle suivant - à la cellule j. Si jeetj sont dans des banques différentes, les informations seront transmises par cycles successifs. Ici, un cycle fait référence à un cycle de processeur, tandis qu'un cycle de mémoire complet prend plusieurs cycles de processeur. Ainsi, dans ce cas, le processeur n'a pas à attendre la fin du cycle complet d'accès à la cellule. je. La technique envisagée permet d'augmenter le débit : si le système mémoire est constitué de

Riz. 11.1- Mémoire à adresses alternées : a - attribution d'adresses ; b-éléments récupérés par incréments de 9 à partir d'un tableau 8 x 8

un nombre suffisant de bancs, il est possible d'échanger des informations entre le processeur et la mémoire à raison d'un mot par cycle processeur, quelle que soit la durée du cycle mémoire.

La décision sur l'option d'attribution d'adresse à choisir (en bloc ou en couches) dépend de l'ordre attendu d'accès à l'information. Les programmes sont compilés de telle sorte que les instructions séquentielles se trouvent dans des cellules avec des adresses séquentielles, il y a donc une forte probabilité qu'après la commande extraite de la cellule avec l'adresse i, la commande de la cellule sera exécutée je + 1. Le compilateur place également des éléments de vecteurs dans des cellules séquentielles. Par conséquent, dans les opérations avec des vecteurs, vous pouvez tirer parti de la méthode d'entrelacement. Pour cette raison, les processeurs vectoriels utilisent généralement une certaine forme d'entrelacement d'adresses. Les multiprocesseurs à mémoire partagée, cependant, utilisent un adressage par blocs, car les modèles d'accès à la mémoire dans les systèmes MIMD peuvent varier considérablement. Dans de tels systèmes, le but est de connecter le processeur à un bloc de mémoire et d'utiliser autant d'informations qu'il contient avant de passer à un autre bloc de mémoire.

Les systèmes de mémoire offrent souvent une flexibilité supplémentaire lors de la récupération d'éléments vectoriels. Dans certains systèmes, il est possible de charger simultanément chaque n-ième élément du vecteur, par exemple, lors de l'extraction des éléments du vecteur V, stocké dans des emplacements de mémoire séquentiels; à N.-É.= 4, la mémoire reviendra L'espacement entre les éléments est appelé pas à pas ou alors "Foulée"(foulée). Une utilisation intéressante de cette propriété est Matrix Access. Si le pas d'index est supérieur au nombre de lignes de la matrice, une seule demande d'accès mémoire renverra tous les éléments diagonaux de la matrice (Figure 11.1, b). La responsabilité de s'assurer que tous les éléments récupérés de la matrice sont situés dans des banques différentes incombe au programmeur.

Modèles d'architecture mémoire des systèmes informatiques

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.

Riz. 11.2. Classification des modèles d'architectures mémoire des systèmes informatiques

En figue. 11.2 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 S1MD).

Modèles d'architecture de mémoire partagée

Dans les systèmes à mémoire partagée, tous les processeurs ont des chances égales mais ont accès à 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 N.-É. processeurs avec chacun des T modules de mémoire. La manière la plus simple de construire un tel avion - combinant plusieurs processeurs (P i) avec une seule mémoire (M p) via un bus commun - est illustrée à la Fig. 11.3, mais. 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 pic. Lorsque le processeur i sélectionne une instruction en mémoire, les autres processeurs doit attendre que le pneu soit libre. Si dans le système ne comprend que deux processeurs, ils sont capables de travailler avec une performance proche du maximum, puisque leur accès au bus peut être entrelacé : tandis qu'un processeur décode et exécute une instruction, l'autre a le droit d'utiliser le bus pour récupérer le instruction suivante de la mémoire. Cependant, lorsqu'un troisième processeur est ajouté, les performances commencent à se dégrader. Avec dix processeurs sur le bus, la courbe de vitesse du bus (fig. mais) devient horizontal, donc l'ajout d'un 11e processeur n'apporte plus de gain de 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 de bus, et dans un système multiprocesseur avec un bus partagé, cette bande passante est répartie sur 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, en fait, le processeur est généralement beaucoup plus rapide que la mémoire, ce schéma n'est donc pas largement utilisé.

Riz. 11.3. Mémoire partagée : a - combiner des processeurs à l'aide d'un bus ; b - un système avec des caches locaux ; dans- les performances du système en fonction du nombre de processeurs sur le bus ; d - VS multiprocesseur avec mémoire partagée, composé de modules séparés

Une méthode alternative pour construire un CS multiprocesseur avec mémoire partagée basée sur NML est illustrée à la Fig. 11.3, G. Ici, le pic est remplacé par un commutateur qui achemine les demandes du processeur vers l'un des plusieurs 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 pas être classés comme tolérants aux pannes, car 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.

Une autre approche pour construire une mémoire partagée VS est accès mémoire hétérogène, désigné par NUM A (accès non uniforme à la mémoire), il existe toujours 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, alors 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'une mémoire cache locale (Figure 11.3.6), 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. La probabilité raisonnable d'atteindre la mémoire locale réduit considérablement le nombre d'appels au processeur À mémoire globale et conduit ainsi à une efficacité accrue. La place de la rupture dans la courbe de performance (courbe supérieure de la Fig.11.3, dans), le point où l'ajout de processeurs est encore effectif est maintenant déplacé vers la région de processeur 20, et le plus fin, où la courbe devient horizontale, vers la région 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 CCN- NUMA.

DANS architecture de cache uniquement(SOMA, Cache Only Memory Architecture) la mémoire locale de chaque processeur est construite comme une grande mémoire cache pour un accès rapide depuis le « 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 être située dans n'importe quelle cellule physique à tout moment. 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, ces avions ont un avantage de performance significatif par rapport aux autres architectures NUM A. D'autre part, si une seule variable ou deux variables différentes stockant le même cache dans un est requise 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, Сache 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 de la mémoire suppose un espace d'adressage unique, mais n'assure pas la cohérence matérielle des données globales. 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 à architecture mémoire de type DSM, considérée dans la section « Modèles d'architectures à 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). Ce type d'architecture, en particulier CC-NUMA, a récemment été considéré comme un type indépendant et plutôt prometteur de systèmes informatiques de la classe MIMD, par conséquent, un tel avion sera discuté plus en détail ci-dessous.

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-ordinateurs ou multi-ordinateurs, soulignant le fait que les éléments constitutifs d'un système sont eux-mêmes de petits systèmes informatiques dotés d'un processeur et d'une mémoire. Les modèles d'architectures de mémoire distribuée sont généralement désignés par architectures sans accès direct à la mémoire distante(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, lors de l'accès aux données, il n'y a pas de concurrence pour le bus ou les commutateurs - 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 reliant les 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 les copies des données dans sa propre mémoire cache locale avec les caches des autres processeurs.

Le principal inconvénient d'un ordinateur à mémoire distribuée est la complexité de l'échange d'informations entre les processeurs. Si l'un des processeurs a besoin de données de la mémoire d'un autre processeur, il doit échanger des messages avec ce processeur. Cela entraîne deux types de coûts :

    il faut du temps pour former et transmettre un message de l'un ! processeur à un autre;

    pour répondre aux messages d'autres processeurs, le processeur récepteur doit recevoir une demande d'interruption et exécuter une routine pour gérer cette interruption.

La structure d'un système de mémoire distribuée est illustrée à la Fig. 11.4. Sur la gauche! pièces (fig.11.4, mais) un élément de traitement (PE) est représenté. Il comprend) le processeur lui-même (P), la mémoire locale (M) et deux contrôleurs d'E/S (K environ et KD sur le côté droit (Fig.11.4, b) un système à quatre processeurs est montré illustrant comment les messages sont envoyés d'un processeur à un autre. Par rapport à chaque PE, tous les autres éléments de traitement peuvent être considérés simplement comme des dispositifs d'entrée/sortie. Pour envoyer un message à un autre PE, le processeur forme un bloc de données dans sa mémoire locale et notifie à son contrôleur local la nécessité de transférer des informations vers un périphérique externe. Sur le réseau d'interconnexion, ce message est transmis au contrôleur d'E/S destinataire du PE destinataire. Ce dernier trouve une place pour le message dans sa propre mémoire locale et notifie au processeur source que le message a été reçu.

Riz. 11.4. Système de calcul à mémoire répartie : a - élément processeur ; b- unification des éléments de traitement concernant

Une variante intéressante d'un système de mémoire distribuée est ; maquette mémoire partagée distribuée(DSM, Distribute Shared Memory), également connu sous un autre nom architecture avec hétérogèneaccès mémoire et cohérence logicielle(SC-NUMA, Architecture de mémoire non uniforme cohérente avec le logiciel). L'idée de ce modèle est que le BC, étant physiquement un système à mémoire distribuée, grâce au système d'exploitation apparaît à l'utilisateur comme un système à mémoire partagée. Cela signifie que le système d'exploitation offre à l'utilisateur un espace d'adressage unique, malgré le fait que l'accès réel à la mémoire du calculateur de l'avion « étranger » se fasse toujours par l'échange de messages.

Multiprocesseurcohérence du cache

Un système multiprocesseur à mémoire partagée se compose de deux ou plusieurs processeurs indépendants, dont chacun exécute soit une partie d'un grand programme, soit un programme indépendant. Tous les processeurs accèdent aux instructions et aux données stockées dans la mémoire principale partagée. La mémoire étant une ressource partagée, il existe une concurrence entre les processeurs lors de l'accès, ce qui augmente la latence moyenne d'accès à la mémoire. Pour réduire cette latence, un cache local est affecté à chaque processeur, ce qui, en servant des accès mémoire locale, évite dans de nombreux cas d'avoir besoin d'accéder à la mémoire principale partagée. À son tour, équiper chaque processeur d'une mémoire cache locale conduit à ce que l'on appelle problème de cohérence ou en fournissant en accordmémoire cache. Selon le système, le système est cohérent si chaque opération de lecture à une certaine adresse, effectuée par l'un quelconque des processeurs, renvoie la valeur entrée lors de la dernière opération d'écriture à cette adresse, quel que soit le processeur qui a été le dernier à écrire.

Dans sa forme la plus simple, le problème de cohérence du cache peut être expliqué comme suit (Figure 11.5). Laissez deux processeurs R g et P g sont connectés à la mémoire partagée via un bus. Tout d'abord, les deux processeurs lisent la variable NS. Des copies des blocs contenant cette variable sont transférées de la mémoire principale vers les caches locaux des deux processeurs (Figure 11.5, mais). Puis le processeur P t effectue l'opération d'augmentation de la valeur de la variable N.-É. par unité. Puisqu'une copie de la variable est déjà dans le cache de ce processeur, un accès au cache se produira et la valeur ne sera modifiée que dans le cache 1. Si maintenant le processeur Р 2 effectue à nouveau une opération de lecture N.-É., alors un accès au cache se produira également et P2 recevra l'"ancienne" valeur stockée dans sa mémoire cache N.-É.(fig.11.5, b).

Le maintien de la cohérence nécessite que lorsqu'une donnée est modifiée par l'un des processeurs, les modifications correspondantes soient effectuées dans la mémoire cache des autres processeurs, où se trouve une copie de la donnée modifiée, ainsi que dans la mémoire partagée. Soit dit en passant, un problème similaire se produit dans les systèmes monoprocesseurs, où il existe plusieurs niveaux de mémoire cache. Ici, il est nécessaire de réconcilier le contenu des caches de différents niveaux.

Il existe deux approches pour résoudre le problème de cohérence : logicielle et matérielle. Certains systèmes utilisent des stratégies qui combinent les deux approches.

Solutions logiciellesproblèmes de cohérence

Les techniques logicielles de résolution du problème de cohérence permettent de se passer de matériel supplémentaire ou de le minimiser)

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