• Aucun résultat trouvé

Exemples de r´ealisations

Dans le document ARCHITECTUREDES ORDINATEURS (Page 196-200)

Pour illustrer les m´ecanismes utilis´es dans les syst`emes de gestion de m´emoire virtuelle, nous allons pr´esenter deux exemples de mise en œuvre pratique

des modules de gestion de m´emoire. Ceux-ci peuvent ˆetre des ´el´ements ind´ependants de l’unit´e centrale (MMU ou Memory Management Unit) ou y ˆetre int´egr´es.

Dans le premier exemple (NS32000), la taille de la m´emoire virtuelle est identique `a celle de la m´emoire physique, tandis que dans le second (I80386) elle lui est bien sup´erieure.

9.4.1 Pagination ` a deux niveaux

Principes

Ce premier exemple s’appuie sur la r´ealisation du module de gestion m´emoire associ´e aux microprocesseurs 16 et 32 bits de National Semiconductor [2], mi-croprocesseurs datant des ann´ees 80. L’unit´e centrale ´emet une adresse sur 24 bits. La taille d’une page est de 512 octets (d´eplacement sur 9 bits) et le num´ero de page est sur 15 bits. Comme nous l’avons vu pr´ec´edemment, si l’on adopte une pagination `a un seul niveau, la table des pages virtuelles devrait poss´eder 215entr´ees. La solution mise en place est alors une pagination `adeux niveaux. La taille des pages est toujours de 512 octets et le num´ero de page virtuelle est divis´e en deux champs de huit et sept bits.

Entrée dans la table de répertoire

Entrée dans la table de pages

Entrée dans la page

8 bits 7 bits 9 bits

Adresse virtuelle sur 24 bits

Figure9.10 : Structure de l’adresse virtuelle

Les huit bits de poids fort fournissent une entr´ee, parmi 256, dans une table appel´ee table de traduction qui donne les adresses des tables de pages.

L’adresse de cette table, r´esidant de fa¸con permanente en m´emoire, est cons-truite `a partir du contenu d’un registre d´esign´e par PTB (Page Table Base), en r´ealit´e au nombre de deux en raison des modes de fonctionnementsyst`eme etutilisateur. Les 7 bits suivants, combin´es aux 15 bits fournis par la premi`ere table donnent une entr´ee, parmi 128, dans une des tables de pages. Les 9 bits de poids faible fournissent le d´eplacement, dans la page d´esign´ee par la table de pages, de l’octet recherch´e. Chaque entr´ee dans la table fournit un num´ero de page physique sur 15 bits plus un ensemble de bits de service. La m´emoire

´etant organis´ee en mots de 32 bits, la table devrait y occuper 215 mots de 32 bits soit 128 kilo-octets, et ce, de mani`ere permanente.

15 bits Page de 512 octets

(en 128 mots de 32 bits)

PTB : Registre Pointeur table

de pages

8 bits 7 bits 9 bits Adresse virtuelle (24 bits)

224 octets en 215 pages de 512 octets

TB (32 entrées)

128 mots de 32 bits

Miss

Figure9.11 : Pagination `a deux niveaux

Traitement des bits de service

Les entr´ees de la table de traduction (mot 1) et de la table de pages (mot 2) poss`edent le format d´ecrit par lafigure 9.12.

23 8

Figure9.12 : Structure des mots de la table de traduction et de la table des pages V est le bit de validit´e(Valid Bit), M lebit de modification (Dirty Bit ou Modified bit),Rlebit d’acc`es(Referenced Bit) etPLle niveau de privil`ege cod´e sur deux bits.

Le niveau de privil`ege courant est d´etermin´e `a partir des signaux de

lec-ture/´ecriture, du mode de fonctionnement (utilisateur/superviseur) et du bit de v´erification de droit d’acc`es(Access Override). Selon la valeur de ce dernier, le MMU v´erifie ou non les droits d’acc`es lorsque le processeur est en mode utilisateur.

Les bits de serviceM (Modified), R (Referenced) etV (Valid) sont utilis´es de la fa¸con illustr´ee par l’organigramme9.13.

Accès non autorisé

Non

Oui

Oui R:=1

R:=1 On marque la page référencée dans la table des pages T.P.

On marque la table

référencée dans la table d'accès

Ecriture ? Non

Oui

M:=1 Indicatif de modification de page en mémoire

Défaut de page Cette page de la table des pages

n'est pas en mémoire.

Accès non autorisé

Défaut de page La page contenant l'information adressée n'est pas en mémoire (page non valide)

(page non valide) Vérification

niveau de protection dans la table T.T.

Non V=0 ? V=0 ?

Vérification niveau de protection

dans la table T.P.

Figure9.13 : Principe d’acc`es avec deux niveaux de pagination

La v´erification de droit d’acc`es est effectu´ee par comparaison entre le niveau de privil`ege courant et le champ PL lu dans les tables de pages. Un tampon de traduction (Translation Buffer) permet d’am´eliorer les temps d’acc`es en m´emorisant les num´eros de pages et les adresses physiques correspondantes.

Le champ PL est ´egal au niveau de privil`ege le plus restrictif des champsPL lus dans les deux tables de pages.

Certaines machines maintiennent ´egalement `a jour des registres qui in-diquent la taille maxima des tables. Le num´ero de page virtuelle sera compar´e au contenu du registre et, s’il lui est sup´erieur, l’acc`es sera refus´e (l’espace virtuel adressable est ainsi limit´e).

Le MMU est dot´e d’un tampon de traduction associatif (figure 9.14) de

32 entr´ees et d’un registre m´emorisant l’adresse pour laquelle s’est produite l’exception. L’algorithme de remplacement est de type LRU.

15 bits

M PL

15 bits 9 bits Adresse physique N° page physique

N° page virtuelle

M : bit d'indication de modification PL : niveau de protection (2 bits)

Cache associatif

15 bits 15 bits

Comparateur

8 bits 7 bits 9 bits

Vers logique de contrôle

Figure9.14 : Le tampon de traduction

Etapes d’un acc`es `a l’information

− Si le TLB fournit l’adresse physique pendant le cycle d’horloge Tmmu cette adresse est disponible imm´ediatement (figures9.15,9.16 et 9.17).

(8) (7) (9)

TP1 MEM (32)

(24)

TP2 PTB(14) PFN

(15)

Figure9.15 : Acc`es imm´ediat `a l’information : hit sur le TLB

− Si le TLB ne contient pas le num´ero de page virtuel (miss) dans la phase Tmmu, l’adresse dans la table de r´epertoire est construite `a partir du registre de base et des huit bits de l’index de poids fort, puis elle est transf´er´ee dans le tampon d’adresse (figure 9.18).

Dans le document ARCHITECTUREDES ORDINATEURS (Page 196-200)