Pourquoi adresse 16 bits avec des résultats décalés de 12 bits dans la taille de la page 4Ko?
-
02-10-2019 - |
Question
Je lis le livre "Modern Operating System". Et je suis confus au sujet de la « Taille de la page ».
Dans le livre, l'auteur dit,
L'adresse virtuelle 16 bits entrant est divisé en un numéro de page 4 bits et 12 bits de décalage. Avec 4 bits pour la numéro de page, nous pouvons avoir 16 pages, et avec 12 bits pour l'offset, nous pouvons répondre à toutes 4096 octets dans un page.
Pourquoi 4096 octets? Avec 12 bits, nous pouvons répondre à 4096 entrées dans une page, correcte. Mais, une entrée est une adresse (dans ce cas, l'adresse size = 16 bits). Je pense donc que nous pouvons aborder 4096 (entrée) * 16 (bit) = 4096 (entrée) * 2 (octets) = 8 Ko, mais pourquoi le livre dit que nous pouvons aborder 4096 (octets)?
Merci d'avance! :)
La solution
Cela suppose octet adressé la mémoire (qui presque chaque machine a fait au cours des 30 dernières années utilisations), de sorte que chaque adresse se réfère à un octet, une entrée ou une adresse ou toute autre valeur plus grande. Pour maintenir une valeur de 16 bits, vous aurez besoin de deux adresses consécutives (deux octets).
Il y a plus de 30 ans, il y avait autrefois des machines qui ont été abordés mot, qui travaillaient comme vous conjecturer. Mais ces machines avaient un moment difficile traiter les données d'octet (tels que les caractères ASCII), et ainsi sont tombés en disgrâce. De nos jours, des choses comme octet adressabilité, 8 bits et des octets entiers complément à deux sont à peu près juste supposé.
Autres conseils
Les 12 bits sont un décalage dans une page. Le est décalé en octets, pas d'adresse. 2 ^ 12 est 4096.
Qu'est-ce que vous calculez est la taille de la page, à savoir la taille d'une page dans le tableau de la page dans la mémoire. Comme nous utilisons 12 bits pour le décalage, chaque trame dans la mémoire physique est 2 ^ 12 = 4096K. Cependant, chaque page dans la table de page occupe 2 ^ 12 entrées x 2 octets = 8K dans la mémoire.
ok si vous avez 16 bits adresse virtuelle permettent de voir ce que cela signifie .It signifie que vous avez 2 ** 16 = 65536 octets.
4 numéro de page de bits qui signifie qu'il y a 16 pages que 2 ^ 4 = 16 Maintenant vous Nom Les Pages Comme page1, page2 ... page16.
Il nous reste 12bits nous permettent de voir combien d'adresse 12 bits peuvent représenter 2 ** 12 = 4096 octets
65536 octets peut également être obtenue en divisant en 16 pages contenant 4096 octets, comme 4096 * 16 = 65536