Next: Segmentation et traduction Up: Support des systèmes Previous: Espace virtuel

Traduction d'adresses

Nous décrivons dans ce paragraphe les mécanismes permettant de traduire les adresses logiques calculées par les programmes en adresses physiques.

MIPS R10000

Sur le MIPS R10000 les adresses virtuelles de 44 bits (57 bits en y incluant les bits de région et l'ASID) sont traduites en adresses physiques de 40 bits. Le mécanisme de traduction d'adresses est présenté figure . La table des pages est sélectionnée par l'identificateur de processus (ASID). Les bits de poids fort de l'adresse virtuelle sont utilisés pour indexer cette table de pages qui fournit alors le numéro de la page physique. Le déplacement dans la page, qui est inchangé, est ensuite concaténé au numéro de la page physique pour obtenir une adresse physique complète. Le nombre de bits du déplacement varie de 12 à 24 bits en fonction de la taille des pages.

Remarque :

La gestion de la mémoire virtuelle sur le MIPS R10000, est faite par logiciel. Dans l'absolu rien n'interdit d'implémenter un autre modèle de table de pages.

UltraSPARC

Le mécanisme de traduction d'adresses de l'UltraSPARC est très différent de celui du SuperSPARC et des microprocesseurs SPARC V7 et V8. De même que sur le MIPS R10000, tout est géré par logiciel alors que la traduction était assurée par matériel sur les microprocesseurs SPARC V8. Ce mécanisme de traduction d'adresses est présenté figure . Une table de pages, la Translation Table Entry (TTE) est sélectionnée par l'un des deux registres de contexte (Pcontext et Scontext) et suivant la valeur de l'ASI présentée. L'ASI est soit implicite (instructions load, store <<normaux>>) soit explicite (Load Alternate Space, Store Alternate Space). La TTE est ensuite indexée par les bits de poids fort de l'adresse virtuelle.


flloansi@IRISA.irisa.fr
Tue Jun 4 09:57:56 MET DST 1996