Précédent   Forum du club des développeurs et IT Pro > Systèmes > Hardware
Hardware Forum d'entraide sur l'achat et le dépannage de votre matériel. Avant de poster -> FAQ et Tutoriels Hardware
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse
 
Outils de la discussion
Publicité
'
Vieux 25/08/2012, 10h57   #1
petogo
Invité de passage
 
Inscription : août 2012
Messages : 9
Détails du profil
Informations personnelles :
Localisation : France

Informations forums :
Inscription : août 2012
Messages : 9
Points : 4
Points : 4
Par défaut [question]Problème de compréhension: La pagination

Bonjour,
je suis étudiant en informatique et j'ai quelques problèmes de compréhension sur le mécanisme de pagination.
J'ai lu beaucoup de choses sur internet, mais cela n'a pas répondu a toutes mes questions. Je viens donc ici en espérant que certains puissent m'éclairer

Je vous montre un exemple sur lequel je me pose certaines questions, il s'agit de d'un processeur x86-64 bits avec une pagination à 4 niveau.




Les adresses virtuelles sont sur 48 bits vu que le plus grand diviseur entier de 52 par 4 est 48.
Cependant je ne comprend pas pourquoi on utilise des adresses physique limitées sur 52 bits?
que contiennent les entrées e chaque table?

Je me demande aussi comment calculer la taille des de l'ensemble de pages?
page map lvl4= 2^9 = 1ko
page pointer directory = 2^18 = 32 ko
page directory = 2^27 = 16 Mo
page = 2^36 =8,1 Go
ça me parait énorme pour gérer la mémoire.

Certains processeurs récent utilisent des pages de 4kio, 4Mio voir 1 Gio. Quel en est l’intérêt?

Voila, merci pour ceux qui prendront le temps de répondre, bonne journée
petogo est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/08/2012, 11h58   #2
JML19
Expert Confirmé Sénior
 
Avatar de JML19
 
Homme Jean Michel
Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Inscription : décembre 2010
Messages : 5 464
Détails du profil
Informations personnelles :
Nom : Homme Jean Michel
Localisation : France, Corrèze (Limousin)

Informations professionnelles :
Activité : Retraité : Electrotechnicien Electronicien Informaticien de la SNCF
Secteur : Transports

Informations forums :
Inscription : décembre 2010
Messages : 5 464
Points : 8 887
Points : 8 887
Bonjour

Pour comprendre la pagination il faut avant comprendre la segmentation, ceci vient du processeur 16 bits qui adresse en 20 bits.

Ce qui fait que la registrerie en adressage mémoire comporte deux niveaux de registre qui est segment:offset (segment + déplacement).

Citation:
Voici ce que dit Wikipédia :

Accès mémoire

Les possibilités d'adressage mémoire de la gamme x86 remontent au 8080, qui avait 16 bits de bus d'adresse et pouvait donc accéder à 64 Ko de mémoire.

Le 8086, pour faciliter le passage du 8080 au 8086, introduit l'adressage segmenté, où l'adresse référencée par segment:offset est segment · 0x10 + offset, avec segment et offset tous deux sur 16 bits. Cela fournit 1 Mo de mémoire adressable, divisée en segments de 64 Ko, un segment commençant tous les 16 octets. Le processeur a 4 registres de segment : un pour le code, un pour les données, un pour la pile et un supplémentaire (qui sert entre autres de destination dans les instructions de copie de chaînes de caractères). Intel introduit des « modèles mémoire ». Dans le modèle tiny, qui imite le modèle mémoire du 8080, tous les registres de segments ont la même valeur et on accède donc effectivement à 64 Ko de mémoire. C'est le modèle utilisé sous DOS, par les exécutables .com. Dans le modèle small, les registres ont des valeurs différentes mais ne changent pas : on a donc 64 Ko pour le code, 64 Ko pour les données, 64 Ko pour la pile. Pour manipuler plus de mémoire, il faut faire des accès « far », c'est-à-dire aller chercher le mot en mémoire en changeant d'abord la valeur du registre de segment, puis en lisant le segment à l'offset voulu. Le modèle « large » fait des accès far dans le code et les données et donc utilise effectivement le mébi-octet d'espace adressable. Les modèles medium (64 Ko de données, plusieurs segments de code) et compact (plusieurs segments de données, 64 Ko de code) sont des compromis.

Le 80286 brise la barrière des 1 024 Ko en introduisant le mode protégé : les segments ne se réfèrent plus à l'adresse segment·0x10 mais à une table (la GDT -- ou la LDT) qui maintient en plus les informations de protection. L'espace adressable est de 16 Mo, l'espace virtuel est potentiellement de 1 Go, un segment ne peut pas dépasser 64 Ko. Avec le 386, Intel introduit un processeur 32 bit. Les segments peuvent être aussi gros que tout l'espace adressable, soit 4 Go. La pagination vient s'ajouter à la segmentation.
JML19 est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 05/09/2012, 19h35   #3
Chatanga
Membre confirmé
 
Avatar de Chatanga
 
Inscription : décembre 2005
Messages : 165
Détails du profil
Informations forums :
Inscription : décembre 2005
Messages : 165
Points : 233
Points : 233
Citation:
Envoyé par petogo Voir le message
Les adresses virtuelles sont sur 48 bits vu que le plus grand diviseur entier de 52 par 4 est 48.
Cependant je ne comprend pas pourquoi on utilise des adresses physique limitées sur 52 bits?
que contiennent les entrées e chaque table?
Rien, ou plutôt la même valeur que le bit 47 (d’où le terme extension). Il existe des modes de pagination sur 52 et 64 bits, mais il n’existe par contre pas encore, que je sache, de processeurs les exploitant. Ce n’est donc pas une limite fondamentale, mais davantage une optimisation pour se dispenser de gérer une pagination à plus de 48 bits quand personne n’a besoin pour l’instant d’autant de mémoire adressable.
Citation:
Envoyé par petogo Voir le message

Je me demande aussi comment calculer la taille des de l'ensemble de pages?
page map lvl4= 2^9 = 1ko
page pointer directory = 2^18 = 32 ko
page directory = 2^27 = 16 Mo
page = 2^36 =8,1 Go
ça me parait énorme pour gérer la mémoire.
Ça l’est, mais les tables elles-même peuvent être swappées (à l’exception de la table de premier niveau). C’est en partie l’utilité du découpage en plusieurs niveaux.
Citation:
Envoyé par petogo Voir le message

Certains processeurs récent utilisent des pages de 4kio, 4Mio voir 1 Gio. Quel en est l’intérêt?
La pagination change aussi, avec moins de niveaux. Le but est d’accélérer les traductions d’adresses virtuelles en évitant de faire trop de recherches dans les tables. Les inconvénients, fragmentation et optimisation de l’espace, sont les mêmes qu’avec les systèmes de fichiers.
Chatanga est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse
Outils de la discussion

Navigation rapide


Fuseau horaire GMT +2. Il est actuellement 03h05.


 
 
 
 
Partenaires

Hébergement Web