• Aucun résultat trouvé

Principes r´egissant la m´ethode d’acc`es

Dans le document ARCHITECTUREDES ORDINATEURS (Page 185-190)

a un NPP peut correspondre plusieurs NPV.

Le dispositif de traduction peut ˆetre purement mat´eriel. En pratique les tables de traduction sont maintenues en m´emoire avec un syst`eme de cache autorisant des temps d’acc`es compatibles avec les performances recherch´ees.

Le dispositif de d´etection/traduction s’appuie sur un cache appel´e cache de traduction outampon de traduction (TLB pour Translation Lookaside Buffer, TBpour Translation Bufferou encoreATCpourAddress Translation Cache).

Malgr´e des similitudes quant aux principes, on peut noter des diff´erences importantes entre cache de traduction et ant´em´emoire :

− l’information recueillie dans le cache de traduction n’est pas l’information elle-mˆeme mais son adresse physique qui pourra ˆetre utilis´ee par l’ant´em´emoire (voir exemple) ;

− la tˆache consistant `a aller chercher le bloc d’information en m´emoire de masse est g´er´ee par le syst`eme d’exploitation et non par le mat´eriel.

9.2 Principes r´ egissant la m´ ethode d’acc` es

D´efaut de page

Lors de l’ex´ecution d’un programme, le processeur engendre des adresses virtuelles qui sont transmises au module de gestion de m´emoire. Le module

de gestion m´emoire (le cache de traduction et la table des pages) indique si l’adresse engendr´ee correspond ou non `a une adresse en m´emoire centrale :

− si c’est le cas, la traduction d’adresse virtuelle en adresse physique est r´ealis´ee et on acc`ede `a l’information cherch´ee,

− sinon le module de gestion m´emoire envoie un signal pour arrˆeter l’ex´ecution de l’instruction (Abort). Il y ad´efaut de page.

Le d´efaut de page est fondamentalement diff´erent d’une interruption : l’instruction ne doit pas se terminer mais, au contraire, revenir en son ´etat initial. Les registres alt´er´es par l’ex´ecution doivent ˆetre restitu´es de telle sorte qu’apr`es traitement du d´efaut de page on puisse relancer l’instruction `a son point de d´epart. L’adresse sauv´ee dans la pile n’est pas celle de l’instruction suivante mais celle de l’instruction ayant provoqu´e la faute.

Le m´ecanisme d’obtention de l’adresse du programme de traitement du d´efaut de page est semblable `a celui utilis´e lors des interruptions : apr`es sau-vegarde de l’adresse de l’instruction fautive, le processeur r´ecup`ere l’adresse du programme de traitement dans la table de vecteurs d’interruptions. Ce m´ecanisme est inhib´e lorsque le cycle avort´e correspond `a l’acc`es anticip´e `a une instruction (cas de l’architecture pipe-line). En effet, on ne sait pas si l’instruction en question sera ou non ex´ecut´ee. Il est donc inutile de lancer le processus de traitement du d´eroutement. Seul l’acc`es anticip´e sera annul´e.

Pagination `a plusieurs niveaux

La table de pages peut occuper une place consid´erable en m´emoire. Consid´erons en exemple une machine `a bus d’adresse de 32 bits : si la taille des pages est de 1 kilo-mots, soit 10 bits de d´eplacement, le num´ero de page est sur 22 bits. La table de page doit donc disposer de 222 mots, soit 4 m´ega-mots, pour ranger les adresses physiques de pages. Si on consid`ere que chaque num´ero de page physique accompagn´e des bits de service associ´es occupe 32 bits, la table occupera 16 m´ega-octets ! Cela explique pourquoi les concepteurs de machines ont ´et´e conduits `a introduire un niveau suppl´ementaire de tables, la table de premier niveau r´esidant en m´emoire, celle(s) de second niveau pouvant se trouver en partie sur disque. La table de premier niveau s’appeller´epertoire des pages(Page Directory),table de page racine(Root Table Page), outable des hyperpagesdans la terminologie des syst`emes d’exploitation. L’adresse virtuelle est divis´ee en trois parties (figure 9.4).

LesNt bits de poids fort fournissent une entr´ee dans ler´epertoire de pages donnant `a son tour l’adresse de base d’une table de pages. L’adresse du r´epertoire de pages r´esidant de fa¸con permanente en m´emoire est g´en´eralement fournie par le contenu d’un registre ditregistre de r´epertoire. LesNpbits suiv-ants, combin´es `a l’adresse fournie par le contenu du r´epertoire, donnent une entr´ee dans une des tables de pages (figure 9.5).

Déplacement dans la page Adresse virtuelle

d bits Entrée dans le

répertoire de pages

Entrée dans la table de pages

Np Nt

Figure9.4 : L’adresse virtuelle dans la pagination `a deux niveaux

Table de pages Adresse virtuelle

Mémoire Déplacement

Répertoire de

tables de pages Adresse

physique

Figure9.5 : La pagination `a deux niveaux

La gestion en m´emoire virtuelle s’applique aux tables de pages comme aux pages. Seule la table de premier niveau (le r´epertoire de pages) reste en m´emoire.

Informations de service, protection et droits d’acc`es

Un certain nombre de bits de service est associ´e `a chaque segment ou page.

Ces bits sont utilis´es pour la protection des donn´ees et programmes et pour la mise en place de la gestion de l’espace m´emoire par le syst`eme d’exploitation.

1. le bit M de modification (Modify Bit ou Dirty Bit) indique si la page a

´et´e modifi´ee. Il est utilis´e par le syst`eme d’exploitation pour savoir si une page ou un segment doit ˆetre ou non recopi´e en m´emoire de masse lors de son remplacement. Il est en effet inutile de recopier en m´emoire de masse une portion de m´emoire qui doit ˆetre lib´er´ee si celle-ci n’a pas ´et´e modifi´ee.

2. lebit V de validit´e(Valid Bit), est utilis´e comme dans une m´emoire cache.

Il est mis `a 1 d`es que l’on charge une page en m´emoire centrale. Il est destin´e `a pr´evenir des acc`es `a des informations qui n’auraient pas ´et´e amen´ees en m´emoire centrale bien que r´ef´erenc´ees dans une table. Cela peut se produire :

− `a l’initialisation de la machine, le contenu de la m´emoire ´etant in-certain,

− ou lorsqu’une page en m´emoire est copi´ee sur disque pour lib´erer de la place. Son num´ero de page est remplac´e par le num´ero du bloc du disque dans lequel elle est charg´ee. Le bit V associ´e est alors remis

` a z´ero.

3. le bit R de r´ef´erence (Reference Bit) est utilis´e par le syst`eme d’exploitation pour ´etablir une estimation de la fr´equence d’utilisation de la page. Le bit R est remis `a z´ero p´eriodiquement pour chaque page virtuelle utilis´ee. S’il ´etait `a 1 cela signifie que la page a ´et´e utilis´ee -r´ef´erenc´ee - r´ecemment. Cela permet de mettre en œuvre un algorithme de type LRU: si une page est rarement utilis´ee, ou n’a pas ´et´e utilis´ee depuis “longtemps”, elle sera, de pr´ef´erence `a une autre, remplac´ee si le syst`eme a besoin de place en m´emoire centrale. Tous les processeurs ne disposent pas de ce bit de service. Les syst`emes d’exploitation qui en ont besoin doivent alors le simuler `a l’aide du bitM ou du bitV.

4. chaque entr´ee de la table de page et du TLB comporte aussi des bits impliqu´es dans la protection des pages (protection en lecture, ´ecriture ou ex´ecution), ou des bits identifiant un num´ero de processus auquel la page est affect´ee.

9.2.1 La taille des pages

La taille des pages est un facteur influant sur les performances d’un syst`eme de gestion en m´emoire virtuelle. Elle est g´en´eralement comprise entre 256 octets et 8 kilo-octets. Elle est choisie en fonction de crit`eres contradictoires :

− les tables de description seront d’autant plus grandes que la taille des pages sera r´eduite, d’o`u l’int´erˆet d’avoir des pages de taille relativement importante ;

− la taille des programmes ou autres structures de donn´ees n’´etant pas exactement un multiple de la taille des pages, il y aura toujours de la place perdue (on appelle ce ph´enom`ene la fragmentation interne). Aussi aura-t-on int´erˆet `a avoir des pages de taille r´eduite ;

− le temps de transfert entre m´emoire de masse et m´emoire centrale est d’autant plus court que la taille de la page est r´eduite. Il ne faut cepen-dant pas en conclure que cette derni`ere doit ˆetre la plus petite possible : il n’y a, en effet, pas proportionnalit´e entre taille du bloc transf´er´e et temps de transfert : le temps de positionnement des tˆetes du lecteur de disque est souvent plus important que le temps de transfert lui-mˆeme.

Ainsi sera-t-il parfois plus rapide de transf´erer 1 bloc de 2 kilo-octets que 2 blocs de 1 kilo-octet ;

Recherche du numéro de page dans le tampon

de traduction

Numéro trouvé

Table référencée en mémoire ?

oui non Accès disque

Page référencée en mémoire ?

oui non

Adresse physique disponible

Accès immédiat à l'information (traduction directe virtuel --> physique)

MEM Cache (TLB)

MEM

Numéro non trouvé Accès à la table de premier niveau

Accès disque

MEM

Figure9.6 : Principe de l’acc`es `a l’information dans une pagination `a deux niveaux

− le principe de localit´e plaide en faveur de pages de petite taille : `a un instant donn´e, on n’a en effet pas besoin de tout le programme dans la m´emoire centrale ;

− si les pages sont trop petites, il y aura beaucoup de transferts entre m´emoire de masse et m´emoire centrale, d’o`u perte de temps dˆue aux sauvegardes de contexte et `a l’ex´ecution de l’algorithme de remplacement de page ;

− un autre facteur de choix est la relation existant entre la taille du secteur physique de la m´emoire de masse (unit´e physique du transfert) et la taille de la page (unit´e logique du transfert).

En pratique on choisit une taille des pages ´egale `a une `a huit fois la taille des secteurs disque, ou ´egale `a l’unit´e d’allocation disque (granule ou cluster vu par le syst`eme d’exploitation).

Dans le document ARCHITECTUREDES ORDINATEURS (Page 185-190)