Ce sont au nombre de 16, 32 et 64-bit, de l'architecture?
Ce n'16 bits, 32 bits et 64 bits des architectures moyenne dans le cas des Microprocesseurs et/ou des Systèmes d'Exploitation?
En cas de Microprocesseurs, ça veut dire taille maximale de General Purpose Register
s ou de la taille de Integer
ou de numéro de Address-line
s ou de numéro de Data Bus line
s ou quoi?
Qu'entendons-nous par dire "DOS is a 16-bit OS
", "Windows in a 32-bit OS
", etc...?
InformationsquelleAutor user366312 | 2010-08-29
Vous devez vous connecter pour publier un commentaire.
La différence se réduit à peu de la largeur d'un ensemble d'instructions transmises à un registre pour les opérations sur les. 16 bits peut fonctionner sur 2 octets, 64 sur 8 octets de l'instruction à la fois. Vous pouvez souvent d'augmenter le débit d'un processeur par l'exécution de plus en plus dense d'instructions par cycle d'horloge.
Ma réponse est ci-dessous, si vous voulez comprendre les commentaires.
Nouvelle Réponse
Comme vous le dites, il existe une variété de mesures. Heureusement, pour de nombreux Processeurs beaucoup de mesures sont les mêmes, donc il n'y a pas de confusion. Regardons quelques données (Désolé pour le téléchargement d'images, je ne pouvais pas voir un bon moyen de faire un tableau en markdown).
Comme vous pouvez le voir, beaucoup de colonnes sont de bons candidats. Cependant, je dirais que la taille des registres (vert) est le plus couramment comprise réponse.
Lorsqu'un processeur est très variée en taille pour les différents registres, il va souvent être décrit plus en détail, par exemple, la Motorola 68k être décrit comme un 16/32 bits de la puce.
D'autres ont fait valoir qu'il est l'instruction largeur de bus (jaune) qui correspond également à la table. Cependant, dans le monde d'aujourd'hui de pipelining je dirais que c'est une bien moindre mesure pertinente pour la plupart des applications que la taille des registres.
Réponse originale à cette question
Personnes différentes peuvent signifier des choses différentes, parce que comme vous le dites il y a plusieurs mesures. Ainsi, par exemple, quelqu'un parle d'adressage de mémoire peut signifier quelque chose de différent pour quelqu'un parler de l'arithmétique des nombres entiers. Cependant, je vais essayer de définir ce que je pense est la compréhension commune.
De mon point de vue, c'est que pour un CPU, il signifie "la taille de La typique registre utilisé pour les opérations standard" ou "la taille du bus de données" (les deux sont normalement équivalent).
- Je justifier cela avec la logique suivante. Le Z80 a un 8bit accumulateur et un bus de données de 8 bits, tout en ayant 16 bits adressage de mémoire des registres (IX, IY, PS, PC), et un 16 bits de la mémoire du bus d'adresse. Et le Z80 est appelé un microprocesseur 8 bits. Cela signifie que le peuple doit dire généralement la principale de l'arithmétique des nombres entiers de taille, ou bus de données de taille, et non pas l'adressage de mémoire de taille.
Ce n'est pas la taille d'instructions, comme le Z80 (nouveau) avait 1,2 et 3 octets instructions, bien que le multi-octets ont été lus à plusieurs lectures. Dans l'autre sens, le Huit mille quatre vingt six est un microprocesseur 16 bits et permet de lire de 8 ou 16 bits instructions. Donc, je serais pas d'accord avec les réponses qui disent que c'est l'instruction de la taille.
Pour les systèmes d'Exploitation, je voudrais définir comme "le code est compilé pour être exécuté sur un PROCESSEUR de cette taille", donc un OS 32bit a le code compilé pour être exécuté sur un 32 bits PROCESSEUR (selon la définition ci-dessus).
Combien de bits d'un CPU "est", désigne ce que l'instruction de la longueur des mots est.
Sur un 32 bits, le PROCESSEUR, la longueur de mot de, de cette instruction est de 32 bits, ce qui signifie que c'est la largeur de ce qu'un PROCESSEUR peut gérer que des instructions ou des données, ce qui entraîne souvent une ligne de bus avec cette largeur.
Pour une raison similaire, des registres de la taille de la CPU longueur de mot, mais vous avez souvent les grands registres à des fins différentes.
Prendre la PDP-8 ordinateur comme un exemple. C'était un 12 bits ordinateur. Chaque instruction est de 12 bits de long. Pour gérer les données de la même largeur, l'accumulateur était aussi 12 bits.
Mais ce qui rend les 12 bits 12 bits machine, était son instruction, la longueur des mots. Il avait douze interrupteurs sur le panneau avant avec lesquels il pourrait être programmé, instruction par instruction.
C'est un bon exemple de sortir de la 8/16/32 bits focus.
Le nombre de bits est également généralement la taille du bus d'adresse. Il fait de la " indique le maximum de mémoire adressable.
Il y a une bonne explication de ce à Wikipédia:
Maintenant, nous allons parler de l'OS.
Avec OS-es, c'est beaucoup moins lié à la "bitty-ness" de la CPU, il est souvent le reflet de la façon dont les opcodes sont assemblés (pour lequel la longueur de mot de la CPU) et la façon dont les registres sont adressés (vous ne pouvez pas charger une valeur 32 bits en 16 bits registre) et la façon dont la mémoire est adressée. Il pense que le terminé, programme compilé. Elle est stockée sous forme binaire des instructions et a, par conséquent, de s'insérer dans le Cpu longueur de mot. Tâche-sage, il doit être en mesure de traiter l'ensemble de la mémoire, sinon il ne pouvait pas faire la bonne gestion de la mémoire.
Mais ce qui viennent du bas, est de savoir si un programme est en 32 ou 64 bits (un système d'exploitation est essentiellement un programme ici) comment ses instructions binaires sont stockées et comment les registres et la mémoire sont abordés. Dans l'ensemble, cela s'applique à tous les types de programmes, pas seulement les OS-es. C'est pourquoi vous devez les programmes compilés pour la version 32 bits ou 64 bits.
Les définitions sont des termes plus précis sur le plan technique.
Dans floue terme technique qu'ils sont davantage liés à l'architecture largeurs visibles que par une réelle mise en œuvre de registre ou de la largeur du bus. Par exemple, le 68008 a été classé comme un PROCESSEUR 32 bits, mais avait registres 16 bits dans le silicium et à seulement 8 bits du bus de données et les 20 bits de l'adresse.
http://en.wikipedia.org/wiki/64-bit#64-bit_data_models les modèles de données moyenne du nombre de bits pour la langue.
"L'OS est x-bit" phrase signifie généralement que l'OS a été écrit pour x-bit cpu, c'est-à Windows 64 bits utilise de longs mode sur x86-64, où les registres de 64 bits et l'adresse de l'espace est une version 64 bits de large et il y a d'autres différences distinctes à partir de 32 bits mode, où généralement les registres de 32 bits de large et de l'espace d'adressage de 32 bits de large. Sur x86 une différence majeure entre les versions 32 et 64 bits des modes de présence de la segmentation en 32 bits pour historique de compatibilité.
Habituellement le système d'exploitation est écrit avec de l'UC du nombre de bits à l'esprit, x86-64 d'être un exemple remarquable de la décennies à de la rétro-compatibilité - vous pouvez tout avoir à partir de 16 bits programmes en mode réel sur 32 bits en mode protégé programmes de 64-bits-mode programmes.
Plus il y a différentes façons de virtualiser, de sorte que votre programme peut s'exécuter que si en 32 bits mode, mais en réalité, elle est exécutée par un non-x86 de base à tous.
Lorsque nous parlons de 2^n bits architectures en informatique alors, nous sommes tout simplement parler de registres de mémoire, l'adresse de bus de la taille ou de bus de données de la taille. Le concept de base derrière terme de 2^n bits architecture est pour signifier que cette ici 2^n bits de données peuvent être utilisés pour traiter ou transporter les données de taille 2^n par les processus.
Pour autant que je sais, techniquement, c'est la largeur de l'entier des voies. J'ai entendu parler de 16bit puces de 32 bits d'adressage. Cependant, dans la réalité, c'est l'adresse de la largeur. sizeof(void*) est de 16 bits sur 16 bits de la puce 32 bits sur 32 bits et 64 bits sur 64 bits.
Cela conduit à des problèmes parce que le C et le C++ permettre les conversions entre void* et les types intégraux, et il est sûr que si le type intégral est assez grande (de la même taille que le pointeur). Cela a conduit à toutes sortes de mauvaises choses en termes de
Qui sera terrible crash and burn sur 64 bits (code fonctionne sur 32 bits) parce que void* est maintenant deux fois plus grand que int.
Dans la plupart des langues, vous devez travailler dur pour se soucier de la largeur du système sur lequel vous travaillez.