2016-10-27 11 views
1

voulait savoir comment serais-je traiter les informations de convertir l'adresse virtuellede conversion d'adresse virtuelle à l'adresse physique

(0x10002400)   

qui contient le rez-de-valeur (n/2^10) à l'adresse physique

les détails donnés sont 32 bus d'adresses bit 512 Ko de mémoire physique et taille de page de 32 Ko

Répondre

1

contenu d'un emplacement mémoire n'a pas d'impact virtuel à tr d'adresse physique anslation.

Votre adresse virtuelle a 8 valeurs hexadécimales, ce qui indique qu'il s'agit d'une adresse virtuelle 32 bits. La taille de votre mémoire physique est de 512 Ko, ce qui signifie qu'il y a 2^19 octets (512 * 1024 octets). Dans ce cas, le mappage virtuel vers physique implique le mappage d'une adresse 32 bits à une adresse 19 bits. Dans votre exemple, la taille de la page est de 32 Ko, ce qui signifie qu'il y a 16 pages physiques (512/32). Nous avons besoin de 4 bits pour indexer 16 pages physiques. A partir de l'adresse virtuelle 32 bits, nous utilisons les 4 derniers bits pour indexer une page physique. Nous pouvons utiliser les 28 bits restants pour faire la comparaison. Il existe une structure appelée "table de page" qui contient cette information. Il s'agit essentiellement d'un mappage des 28 bits principaux (32-4) de l'adresse virtuelle à l'adresse physique principale de 15 bits (19-4).

Dans l'exemple donné, l'adresse virtuelle est 0x10002400. Les 4 derniers bits sont représentés par hex 0. Par conséquent, l'index est 0. Nous prenons donc la 0e entrée de la table de pages. Ensuite, nous vérifions si la balise virtuelle dans la table de page correspond à notre balise virtuelle qui est 1000240 (Note: la dernière valeur hexadécimale est supprimée). Si la balise virtuelle dans l'entrée correspond à 1000240, alors nous utilisons la balise physique de la 0e entrée et construisons notre adresse physique en ajoutant le même index, qui est zéro.