De la taille d'un Mot et d'adressage
J'ai été rafraîchissant moi-même sur les informations de mémoire et j'ai des doutes sur la taille d'un Mot. De ma compréhension, un Mot n'est pas universellement taille définie, mais est d'une taille définie par le système (en termes de nombre d'octets).
Selon wikipedia:
Par conséquent, d'un processeur 32-bits des adresses de mémoire peuvent avoir directement accès à 4 Go de octet de mémoire adressable.
Est-ce à dire que d'un processeur 32 bits peuvent adresser 4,294,967,295 Mots? Windows 32 bits est limité à 4 go de RAM, mais la lecture sur la signification d'un mot avait me demandais. Est-ce que chaque Mot dans windows équivaut à 1 de l'octet? Pourrait la taille d'un mot juste être un plus grand nombre d'octets et d'un processeur 32 bits à être en mesure de répondre de 8 go, 10 GO, 12 GO ou même plus de mémoire?
4GiB of **byte-addressable** memory
, ce qui signifie tout simplement que: octets. Pas de mots, ou DWORD, mais byte.Si je me souviens bien, la taille de mot est déterminé par le CPU, et le processeur de la parole de la taille est déterminée par la largeur de son externe bus de données (même si elle peut être plus étroite.)
D'où ma confusion. C'est pourquoi je suis annonce. Pourquoi est-il d'octets et non pas des paroles. Je suppose que c'est pourquoi vous downvoted moi?
Je n'ai pas downvote vous. Si je l'avais, je l'ai dit dans mon dernier commentaire. Cependant, la raison de votre confusion est pas claire. Votre question demande "est-ce à dire...$,294,967,295 Mots?", qui est ce que j'ai commenté. Votre question dans votre commentaire m'a dit "Pourquoi est-ce octets et non pas des paroles?", qui est quelque chose de totalement différent. La réponse à la question que vous avez posée est "Non, cela ne veut pas dire les Mots. Cela signifie octets, tout comme votre citation dit qu'il fait.".
OriginalL'auteur Justin | 2013-03-31
Vous devez vous connecter pour publier un commentaire.
Il dépend de la CPU et sur la façon dont vous le regardez.
Il y a des CPUs qui ne peuvent pas l'adresse rien de plus petit qu'un mot. 16 bits Texas Instruments Processeurs de Signaux Numériques sont un bon exemple. De leur C/C++
char
(AKAbyte
),short
etint
types sont tous de la même taille, 16 bits. Et c'est la plus petite unité de mémoire qui peuvent être abordés avec une adresse unique (pointeur) et c'est la machine de parole en même temps. Étant donné que les données d'adresses/les pointeurs sont de 16 bits sur ces processeurs, ils peuvent répondre à la plupart 216 mots de 16 bits dans la mémoire de données.Maintenant, si vous revenez pour les Processeurs x86 en 32 bits modes de fonctionnement, les choses sont un peu différentes. La plus petite unité adressable de la mémoire est un octet de 8 bits et le plus grand est un mot de 32 bits (machine de mot). Adresses et pointeurs sont en 32 bits (si l'on ignore la segmentation et la traduction de la page). Cela nous permet d'avoir 232 unique adresses de mémoire. Et, trivialement, avec eux, vous pouvez accéder à 232 8 bits octets de mémoire. Mais combien de 32 bits de mots pouvez-vous l'adresse avec 232 d'adresses uniques? La réponse dépend de si vous voulez le non-chevauchement ou de chevauchement des mots. Vous voyez, le x86 PROCESSEUR de 32 bits unités de mémoire à une adresse non seulement à des adresses qui sont un multiple de 4 octets.
Vous ne sont pas seulement limitées à ce sur x86:
Tous ceux-là sont toutes les adresses valides pour le mot de 32 bits accède sur x86:
Oui, combien de 32 bits de mots pouvez-vous l'adresse avec 232 d'adresses uniques sur x86? Si vous parlez tous de façon unique adressable et qui se chevauchent, 232 d'entre eux. Si, otoh, que, vous parlez tous de façon unique adressable et de non-cumul, 230 d'entre eux.
Otoh, que, si votre PROCESSEUR 32 bits utilise des adresses 32 bits, le nombre total sera différent.
Je ne suis pas sûr de ce que vous êtes en train de parler.
Excellente réponse ! Je vous remercie. Je trouve que le deuxième ascii dessin plutôt déroutant, mais le texte est lisse et claire 🙂
Juste un pointeur pour d'autres internautes, il est une excellente vidéo d'explication à ce sujet ici.
OriginalL'auteur Alexey Frunze
Vous confondez la taille de mot et la taille en octets, parce que la taille de mot est déterminé par le processeur et la taille en octets est universelle.
Sans l'aide de la PAE (physical Address Extension) d'un processeur 32 bits ne peut gérer 4 go de RAM, il n'y a que 2 ^ 32 = 4,294,967,296 différents numéros peut être représenté à l'aide de 32 bits. C'est un limitation matérielle.
Les systèmes 32 bits en utilisant PAE peut adresser plus de 4 GO, par la cartographie des processus pour les tables de pages. Cela donne chaque processus l'accès à la mémoire de 4 go. Via l'appui PAE, la version 32 bits de Windows Server 2003 Datacenter prend en charge jusqu'à 64 GO de RAM sur les ordinateurs x86.
Edit
Taille de mot désigne la quantité de bits, un PROCESSEUR peut traiter en même temps. La 32 bits = 4 octets. Cependant, la taille de mot et l'adresse de la taille sont souvent utilisés de façon interchangeable, ce qui conduit à la confusion, car ils sont en effet différents. Le Pentium Pro est un PROCESSEUR 32 bits avec un 36 bits du bus d'adresse, permettant de 64 go de mémoire accessible (via le PAE.)
Aussi élaborer un peu plus, un PROCESSEUR capable d'accomplir la question dans votre commentaire spécifiquement nécessiterait un délai de 48 bits du bus d'adresse. Je crois que c'est ce que les processeurs 64 bits utilisation.
Désolé pour l'invocation de cette question à partir de 2013. De toute façon, pour répondre à votre question, Tandis que chaque adresse a 8 bits de l'espace = 1 octet pour stocker des données dépend de ce que vous souhaitez enregistrer. Si vous souhaitez enregistrer un personnage que vous aurez besoin de 1 octet, mais si vous voulez stocker un Int vous auriez besoin d'32 bits = 4 octets, donc 4 adresses "de l'espace". Les 32 bits de proccessor lit 4 octets à chaque fois donc 32 bits
OriginalL'auteur b1nary.atr0phy