64-bit
les unités centrales de traitement 64-bit du ont existé dans des ordinateurs géants depuis les années 60 et dans le RISC - les postes de travail basés et les serveurs depuis les années 90 tôt . Dans le 2003 elles ont été présentées (précédemment à 32 bits) à l'arène d'ordinateur personnel du traditionnel , sous forme de X86-64 et d'architectures 64-bit de processeur de PowerPC .
Une unité centrale de traitement qui est 64-bit intérieurement pourrait avoir les bus de données externes ou les bus d'adresses avec une taille différente, plus grande ou plus petite ; le " de limite ; 64-bit" ; est employé souvent pour décrire la taille de ces autobus aussi bien. Par exemple, beaucoup de machines courantes avec les processeurs à 32 bits utilisent les autobus 64-bit (par exemple le Pentium original et de plus défuntes unités centrales de traitement), et peuvent de temps en temps désigné sous le nom du " ; 64-bit" ; pour cette raison. De même, quelques processeurs de 16 bits (par exemple, le MC68000 ) désigné sous le nom des processeurs 16-/32-bit car ils ont eu les autobus de 16 bits, mais ont eu quelques possibilités à 32 bits internes. La limite peut également se rapporter à la taille d'une instruction dans l'ensemble d'instruction du de l'ordinateur ou à n'importe quel autre article des données (par exemple quantités à point mobile du à double précision 64-bit sont communs). Sans davantage de qualification, " ; 64-bit" ; l'architecture informatique a généralement les registres de nombre entier qui sont 64 bits au loin, qui lui permet de soutenir (intérieurement et extérieurement) le " 64-bit ; chunks" ; des données de nombre entier.
Implications architecturales
Des registres dans un processeur sont généralement divisés en trois groupes : nombre entier, virgule flottante, et autre. Dans tous les processeurs d'usage universel communs, seulement les registres de nombre entier sont capables de stocker des valeurs du pointeur (c'est-à-dire, une adresse de quelques données dans la mémoire). Les registres de non-nombre entier ne peuvent pas être utilisés pour stocker des indicateurs afin de la lecture ou de l'écriture à la mémoire, et ne peuvent pas donc être employés pour ne dévier aucune restriction de mémoire imposée par la taille des registres de nombre entier.Presque tous les processeurs d'usage universel communs (à l'exception notable de la plupart de BRAS et de réalisations à 32 bits de MIPS ) ont intégré le matériel de virgule flottante, que les mai ou mai pas utilisent les registres 64-bit pour juger des données pour le traitement. Par exemple, l'architecture du X86 inclut les instructions à point mobile du X87 qui utilisent 8 80 registres de bit dans une configuration de pile ; les révisions postérieures de x86, incluent également les instructions du SSE , qui appliquent 8 128 registres de bit largement. En revanche, l'alpha famille du 64-bit des processeurs définit 32 registres larges 64-bit de virgule flottante en plus de ses 32 registres larges 64-bit de nombre entier.
Limitations de mémoire
La plupart des unités centrales de traitement actuellement (à partir de 2005) sont conçues de sorte que le contenu d'un registre simple de nombre entier puisse stocker l'adresse (endroit) de de n'importe quelles informations dans la mémoire virtuelle virtuelleee du de l'ordinateur. Par conséquent, tout le nombre d'adresses dans la mémoire virtuelle virtuelleee - le montant total de données que l'ordinateur peut maintenir dans son emplacement de travail - est déterminé par la largeur de ces registres. Commençant dans les années 60 par le System/360 d'IBM , puis (parmi beaucoup d'autres) le mini-ordinateur de VAX du DEC dans les années 70 , et puis par le Intel 80386 dans les années 80 mid- , un consensus de fait de du s'est développé que 32 bits étaient une taille commode de registre. Un registre à 32 bits a signifié que les adresses 232, ou 4 gigaoctets de RAM , pourraient être mis en référence. Lorsque ces architectures ont été conçues, 4 gigaoctets de mémoire étaient jusqu'ici au delà des quantités typiques disponibles dans les installations que ceci a été considéré assez de " ; headroom" ; pour l'adressage. des adresses de 4 gigaoctets ont été considérées une taille appropriée à travailler avec pour un autre motif important : 4 milliards de nombres entiers sont suffisants pour assigner des références uniques aux choses le plus physiquement comptables dans les applications comme les bases de donnéesCependant, par le début des années 90, les réductions continuelles en coût de mémoire mené aux installations avec des quantités de RAM approchant 4 gigaoctets, et l'utilisation des espaces de mémoire virtuelle virtuelleee dépassant le plafond de 4 gigaoctets sont devenues souhaitables pour manipuler certains types de problèmes. Dans la réponse, un certain nombre de compagnies ont commencé à libérer de nouvelles familles des morceaux par des architectures 64-bit, au commencement pour les ordinateurs géants et le poste de travail à extrémité élevé et les machines du serveur . le calcul 64-bit a graduellement dérivé vers le bas à l'ordinateur de bureau d'ordinateur personnel, avec quelques modèles dans le lignes commutation de s Macintosh d'Apple des 'au PowerPC 970 processeurs de (nommés " ; G5" ; par Apple) en 2003 et aux processeurs 64-bit d'EM64T en 2006, et avec les processeurs x86-64 devenir commun dans des PCs à extrémité élevé l'apparition de l'architecture 64-bit augmente effectivement le plafond de mémoire aux adresses 264, équivalentes à 17.184 gigaoctets ou 16 à Exabytes de RAM. Pour mettre ceci dans la perspective, en jours quand le mb de 4 de mémoire centrale était banal, le plafond maximum de mémoire des adresses 232 était environ 1.000 configurations de mémoire plus en grande partie que typiques de périodes. Aujourd'hui, quand 1 le gigaoctet de mémoire centrale est commun, le plafond des adresses 264 est environ dix milliards de fois plus grand, c. dix millions de fois plus d'espace libre.
La plupart des PCs 64-bit du consommateur sur le marché ont aujourd'hui une limite artificielle sur la quantité de mémoire qu'ils peuvent identifier, parce que les contraintes physiques le rendent fortement peu probable qu'on a besoin du soutien de la pleine capacité de 16 exabyte. Mac pro du d'Apple, par exemple, peut être physiquement configuré avec jusqu'à 16 gigaoctets de mémoire, et car tel là n'est aucun besoin d'appui au delà de cette quantité.
chronologie 64-bit de processeur
1961 : IBM livre l'ordinateur géant du bout droit d'IBM 7030 de , qui emploie des mots contenant des données 64-bit et 32 ou des mots d'instruction 64-bit.
1974 : Le la Control Data Corporation lance l'ordinateur géant de vecteur de la CDC Star-100 , qui emploie une architecture 64-bit de mot (des systèmes précédents de CDC ont été basés sur une architecture de 60 bits).
1976 : La recherche de Cray de livre le premier ordinateur géant du Cray-1 , qui est basé sur une architecture 64-bit de mot et formerait la base pour les ordinateurs géants postérieurs de vecteur de Cray.
1983 : Le Elxsi lance le parallèle Minisupercomputer d'Elxsi 6400. L'architecture d'Elxsi a des registres 64-bit de données mais un espace d'adressage à 32 bits.
1991 : Les technologies de MIPS de produit le premier microprocesseur 64-bit, le R4000 (la troisième révision de leur architecture de RISC de MIPS ). L'unité centrale de traitement est utilisée dans des postes de travail de graphiques du SGI démarrant par l'IRIS cramoisi de . Cependant, le soutien 64-bit du R4000 ne serait pas inclus dans le du IRIX du système d'exploitation jusqu'à IRIX 6. Kendall la recherche que carrée livrent leur premier ordinateur géant KSR1, basé sur un courant OSF/1 de RISC d'architecture 64-bit de propriété industrielle de processeur.
1992 : Le Digital Equipment Corporation (DEC) présente l'alpha architecture du 64-bit pur qui était née du projet du PRISME .
1993 : Le DEC libère le 64-bit du OSF/1 AXP Unix-comme du système d'exploitation (un plus défunt Tru64 retitré UNIX) et le OpenVMS du système d'exploitation pour d'alpha systèmes.
1994 : Le Intel annonce des plans pour l'architecture 64-bit du IA-64 (conjointement développée avec Hewlett-Packard ) comme successeur à ses processeurs à 32 bits du IA-32 . Un 1998&ndash ; la date de 1999 lancements est visée. Le SGI libère IRIX 6.0, avec le soutien 64-bit des unités centrales de traitement du R8000 .
1995 : Le Sun lance un processeur 64-bit de SPARC , l'UltraSPARC. Fujitsu - les systèmes informatiques possédés du HAL lance des postes de travail basés sur une unité centrale de traitement 64-bit, la première génération indépendamment conçue SPARC64 de HAL. IBM libère la mise à niveau 64-bit de système d'AS/400 , qui peut convertir le du système d'exploitation, base de données et les applications. Le DEC libère l'alpha 7.0, la première pleine version 64-bit d'OpenVMS d'OpenVMS pour l'alpha.
1996 : Le Nintendo présente la console de jeu vidéo de Nintendo 64 , construite autour d'une variante peu coûteuse des MIPS R4000 (c'est le bit 64 intérieurement, mais limité à un autobus de 32 bits extérieurement). La HP libère une exécution de la version 2.0 64-bit de leur architecture de processeur du PA-RISC , le PA-8000 .
1997 : IBM libère la ligne du RS64 des processeurs de full-64-bit PowerPC.
1998 : IBM libère la ligne du POWER3 des processeurs de la PUISSANCE de full-64-bit PowerPC/. Sun libère le Solaris de 7 , avec l'appui 64-bit total d'UltraSPARC.
1999 : Intel libère l'ensemble d'instruction pour l'architecture IA-64. Le AMD révèle publiquement son ensemble de prolongements 64-bit à IA-32, appelé le X86-64 (AMD64 retitré postérieur).
2000 de
: IBM embarque son premier 64-bit ESA/390 - l'unité centrale compatible , le ZSeries z900, et son nouveau Z/OS du système d'exploitation. le Linux 64-bit de sur les zSeries suit presque immédiatement.
2001 : Intel embarque finalement sa ligne 64-bit de processeur, maintenant marquée Itanium , visant les serveurs à extrémité élevé. Il n'arrive pas à atteindre des espérances dues aux retards répétés en obtenant IA-64 pour lancer sur le marché. Le Linux est le premier du système d'exploitation à courir sur le processeur à son dégagement.
2002 : Intel présente le Itanium 2 comme successeur à l'Itanium.
2003 : AMD présente son Opteron et Athlon 64 lignes de processeur de , basées sur son architecture AMD64. Le Apple embarque également le " 64-bit ; G5" ; Courtoisie d'unité centrale de traitement de PowerPC 970 d'IBM, avec une mise à jour à son Mac de OS x du système d'exploitation qui ajoute le soutien partiel du mode 64-bit. Plusieurs dégagement des distributions du Linux avec le soutien d'AMD64. Le Microsoft annonce des plans pour créer une version de son Windows du système d'exploitation pour soutenir l'architecture AMD64. Intel maintient que ses morceaux d'Itanium resteraient ses seulement processeurs 64-bit.
2004 : Intel, réagissant au succès commercial d'AMD, admet qu'il avait développé un clone des prolongements AMD64 appelés IA-32e (EM64T retitré postérieur). Intel embarque également des versions mises à jour de son Xeon et de familles de processeur du Pentium 4 soutenant les nouvelles instructions. Le Freescale annonce le noyau 64-bit , successeur du e700 de leur série de PowerPC G4 .
2004 : Le PAR L'INTERMÉDIAIRE des technologies annonce le processeur 64-bit d'Isaïe .
2005 : Le le 31 janvier , Sun libère le Solaris de 10 avec le soutien des processeurs d'AMD64 et d'EM64T. Intel libère Pentium Extreme Edition basé par EM64T 840 et le Pentium de D dans le deuxième trimestre. Le 30 avril, Microsoft libère l'édition x64 professionnelle de Windows Xp de pour des processeurs d'AMD64 et d'EM64T. En mai, AMD présente son premier duel-noyau AMD64 Opteron et Athlon 64 X2 . En juillet, IBM annonce son nouveau duel-noyau PowerPC 64-bit 970MP. Microsoft libère la console de jeu de Xbox 360 basée sur un 64-bit, processeur du xénon PowerPC de de triple-noyau construit par IBM.
2006 : le Itanium de Montecito de Duel-noyau 2 processeurs de entrent dans la production. Sony, IBM, et Toshiba commencent la fabrication du processeur 64-bit de cellules de pour l'usage dans le PlayStation 3 , serveurs, postes de travail, et d'autres appareils. Apple comporte les processeurs 64-bit de Xeon d'EM64T dans son nouveau Mac pro et des ordinateurs de Xserve d'Intel, et les mises à jour postérieures le IMac , MacBook et MacBook Pro pour employer des processeurs du noyau 2 d'EM64T.
2007 : Le noyau duel d'Intel et le noyau de quadruple deviennent les processeurs 64-bit courants dans la production basée sur la technologie 65nm. Le " de nom de code ; Penryn" ; les processeurs étaient les premières unités centrales de traitement à construire au loin d'une technologie manufacturière 45nm. Ils ont été livrés la troisième semaine de novembre, avec 16 processeurs lors de lancement.
32 contre le bit 64
Un changement d'un à 32 bits à une architecture 64-bit est un changement fondamental, car la plupart des logiciels d'exploitation doivent être intensivement modifiés pour tirer profit de la nouvelle architecture. L'autre logiciel doit également être mis en communication par pour employer les nouvelles possibilités ; un logiciel plus ancien est habituellement soutenu par un mode de compatibilité de matériel de (en ce que les nouveaux processeurs soutiennent la version à 32 bits plus ancienne de l'ensemble d'instruction comme la version 64-bit), par l'émulation de logiciel, ou par l'exécution réelle d'un noyau à 32 bits de processeur dans le processeur 64-bit (comme avec les processeurs d'Itanium d'Intel, qui incluent un noyau de processeur du X86 pour courir les applications x86 à 32 bits). Les logiciels d'exploitation pour ces architectures 64-bit soutiennent généralement des applications à 32 bits et 64-bit.Une exception significative à ceci est le AS/400 , dont le logiciel fonctionne sur un virtuel AIS , appelé le TIMI (interface indépendante de machine de technologie) qui est traduit au code machine indigène par le logiciel de bas niveau avant d'être exécutée. Le logiciel de bas niveau est tout ce qui doit être récrit pour déplacer l'OS entier et tous logiciel à une nouvelle plate-forme, comme quand IBM transitioned leur ligne du " 32/48-bit plus ancien ; IMPI" ; ensemble d'instruction à PowerPC 64-bit (l'IMPI n'était pas quelque chose comme PowerPC à 32 bits, ainsi c'était une transition encore plus grande que d'une version à 32 bits d'un ensemble d'instruction à une version 64-bit du même ensemble d'instruction).
Tandis que les architectures 64-bit font de manière indisputable le travail avec de grands ensembles de données dans les applications telles que la vidéo de Digitals de , le calcul scientifique, et les grandes bases de données plus faciles, il y a eu discussion considérable de savoir si eux ou leurs modes de compatibilité à 32 bits seront plus rapides que les systèmes à 32 bits comparable-évalués pour d'autres tâches. Dans l'architecture du X86-64 (AMD64 et Intel 64), la majorité des logiciels d'exploitation à 32 bits et les applications peuvent courir sans à-coup sur le matériel 64-bit.
Les machines virtuelles 64-bit de Java de Sun sont plus lentes pour démarrer vers le haut que leurs machines virtuelles à 32 bits parce que Sun suppose toujours que toutes les machines 64-bit sont des serveurs, et avoir seulement mis en application le " ; server" ; compilateur (C2) pour les plates-formes 64-bit. Le " ; client" ; le compilateur (C1) produit un code plus lent, mais le compile beaucoup plus rapidement. Ainsi bien qu'un programme de Java sur un JVM 64-bit puisse exécuter mieux sur une longue période (typique pour le " long ; server" ; les applications), son temps de démarrage est susceptibles d'être beaucoup plus longues. Pour des applications de courte durée (telles que le compilateur de Java, le Javac ) le temps de démarrage accru peut dominer le d'exécution, faisant au JVM 64-bit une combinaison plus lente.
Il convient noter que la vitesse n'est pas le seul facteur à considérer dans une comparaison des processeurs à 32 bits et 64-bit. Des applications telles que le traitement multitâche, l'essai d'effort, et le groupement (pour ordinateur à haut rendement ), l'HPC, peuvent davantage être adaptées à une architecture 64-bit donnée le déploiement correct. des faisceaux 64-bit ont été largement déployés dans de grands organismes tels qu'IBM, Vodafone , HP et Microsoft, pour cette raison.
Le pour - et - escroqueries
Une idée fausse commune est que les architectures 64-bit ne sont pas meilleures que des architectures à 32 bits à moins que l'ordinateur ait plus de 4 gigaoctets de mémoire. Ce n'est pas entièrement vrai : quelques parties de réservation de logiciels d'exploitation d'espace d'adressage de du processus pour l'usage d'OS, réduisant effectivement tout le espace d'adressage disponible pour tracer la mémoire pour des programmes de l'utilisateur. Par exemple, Windows Xp DLLs et composants d'OS d'userland sont tracés dans l'espace d'adressage de chaque processus, laissant seulement des 2 à 3.8 gigaoctets (selon les arrangements) d'espace d'adressage disponible, même si l'ordinateur a 4 gigaoctets de RAM. Cette restriction n'est pas présente dans Windows 64-bit.
La mémoire de traçant des dossiers devient moins utile avec des architectures à 32 bits, particulièrement avec l'introduction de la technologie enregistrable relativement bon marché de DVD. Un dossier de 4 gigaoctets n'est plus rare, et de tels grands dossiers ne peuvent pas être mémoire tracée facilement aux architectures à 32 bits ; seulement une région du dossier peut être tracée dans l'espace d'adressage, et pour accéder à un tel dossier par la mémoire traçant, ces régions devront être tracées dans et hors de l'espace d'adressage comme nécessaires. C'est une issue, car mémoire traçant les restes un des méthodes de disque-à-mémoire les plus efficaces, une fois correctement mise en application par l'OS.
Il peut y avoir d'autres avantages fortuits en raison de la transition - par exemple, dans le cas de x86-64 comparé à x86, deux fois autant de registres sont disponibles pour l'usage de programmeur.
L'inconvénient principal des architectures 64-bit est celui à architectures à 32 bits relatives que les mêmes données occupent légèrement plus d'espace dans la mémoire (due aux indicateurs gonflés et probablement à tous autres types et remplissage d'alignement). Ceci augmente les conditions de mémoire d'un processus donné et peut avoir des implications pour l'utilisation efficace de cachette de processeur. Le maintien d'un modèle à 32 bits partiel est à sens unique pour manipuler ceci et est en général raisonnablement efficace. En fait, le fortement orienté vers la performance Z/OS du système d'exploitation prend cette approche actuellement, exigeant du code de programme de résider dans tout nombre d'espaces d'adressage à 32 bits du tandis que les éléments de données mettent en boîte (sur option) résident dans des régions 64-bit.
Actuellement, la plupart de logiciel commercial est établi car le code à 32 bits, code non 64-bit, ainsi lui ne peut pas tirer profit de l'espace d'adressage 64-bit plus grand ou des registres et des circulations de données 64-bit plus larges sur les processeurs 64-bit, ou, sur les processeurs x86, les registres additionnels dans le mode 64-bit. Cependant, les utilisateurs du libèrent ou les logiciels d'exploitation de la source ouverte ont pu employer les environnements de calcul 64-bit exclusifs pendant des années. Non toutes telles applications exigent un grand espace d'adressage ou manoeuvrent les données élémentaires 64-bit, ainsi elles ne tireraient pas bénéfice de l'espace d'adressage plus grand ou des registres et des circulations de données plus larges ; l'avantage principal aux versions 64-bit des applications qui ne tireraient pas bénéfice de elles serait que les versions x86 pourraient utiliser plus de registres.
Disponibilité de logiciel
de systèmes équivalents 64-bit de manque parfois au logiciel qui est écrit pour des architectures à 32 bits. Le problème le plus grave est les programmes pilotes de périphérique incompatibles bien que la plupart de logiciel puisse fonctionner en mode de compatibilité à 32 bits (également connu sous le nom de mode d'émulation , par exemple technologie de WoW64 de Microsoft), il est habituellement impossible de courir un conducteur (ou le logiciel semblable) en ce mode puisqu'un tel programme fonctionne habituellement entre l'OS et le matériel de , où l'émulation directe ne peut pas être utilisée. Beaucoup de progiciels de la source ouverte peuvent simplement être compilés de la source pour travailler dans un environnement 64-bit sur des logiciels d'exploitation tels que le Linux. Tout ce qui serait nécessaire dans ce cas-ci est un compilateur (habituellement GCC ) pour la machine 64-bit. Actuellement les versions 64-bit pour beaucoup de programmes pilotes de périphérique existants ne sont pas disponibles, ainsi l'utilisation d'un du système d'exploitation 64-bit peut devenir frustrante en conséquence.Puisque les programmes pilotes de périphérique dans des logiciels d'exploitation avec les grains monolithiques , et dans beaucoup de logiciels d'exploitation avec les grains hybrides s'exécutent dans le grain du système d'exploitation, il est possible de courir le grain comme processus à 32 bits tout en soutenant toujours des processus 64-bit d'utilisateur. Ceci fournit aux indemnités de mémoire et d'exécution de 64-bit pour des utilisateurs sans casser la compatibilité binaire les programmes pilotes de périphérique à 32 bits existants, au coût de quelques frais généraux additionnels dans le grain. C'est le mécanisme par lequel le Mac de OS x permet des processus 64-bit tout en soutenant toujours les programmes pilotes de périphérique à 32 bits.
modèles de données 64-bit
La conversion du logiciel d'application écrit dans un langage de haut niveau évolué d'une architecture à 32 bits en architecture 64-bit varie en difficulté. Un problème périodique commun est que quelques programmeurs supposent que les indicateurs ont la même longueur comme un autre type de données. Ces programmeurs supposent qu'ils peuvent transférer des quantités entre ces types de données sans information perdante. Ces prétentions s'avèrent justement être vraies sur quelques machines à 32 bits (et même quelques machines de 16 bits), mais elles ne sont plus vraies sur les machines 64-bit. Le langage de programmation du C et son C++ de descendant le rendent particulièrement facile de faire cette sorte de l'erreur. Pour éviter cette erreur dans C et C++, l'opérateur de sizeof peut être employé pour déterminer la taille de ces types primitifs si les décisions basées sur leur besoin de taille d'être fait, à compilent et d'exécution. En outre, le < ; limits.h> ; en-tête dans la norme du C99 , et classe de numeric_limits dans le < ; limits> ; l'en-tête dans la norme de C++, donnent une information plus utile ; le sizeof renvoie seulement la taille dans les chars de . Ceci était fallacieux, parce que les normes partent de la définition du macro de CHAR_BIT, et donc le nombre de peu dans un char de , aux réalisations. Cependant, excepté ces compilateurs visant le " de DSPs ; 64 chars du == 8 de bits d'each" de 8 bits ; est devenue la norme.
On doit faire attention à employer le type de ptrdiff_t (dans le < standard d'en-tête ; stddef.h> ; ) pour le résultat de soustraire deux indicateurs ; trop de code emploie inexactement le " ; int" ; ou " ; long" ; au lieu de cela. Pour représenter un indicateur (plutôt qu'une différence d'indicateur) comme nombre entier, utilisation uintptr_t où disponible (elle est seulement définie dans C99, mais quelques compilateurs autrement conformément à une version antérieure de l'offre standard il comme prolongation).
Ni C ni C++ ne définissent la longueur d'un indicateur, d'un international, ou d'un long pour être un nombre spécifique de peu. C99, cependant, définit plusieurs les types consacrés de nombre entier avec un nombre exact de peu.
Dans la plupart des environnements de programmation sur les machines à 32 bits, indicateurs, " ; int" ; types, et " ; long" ; les types sont chacun des 32 bits au loin.
Cependant, dans beaucoup d'environnements de programmation sur les machines 64-bit, " ; int" ; les variables sont toujours 32 bits au loin, mais " ; long" ; s et indicateurs sont 64 bits au loin. Ceux-ci sont décrits en tant qu'ayant un modèle de données de du LP64 . Une autre alternative est le modèle de données du ILP64 dans lequel chacun des trois types de données est 64 bits au loin, et même le SILP64 où " ; short" ; les variables sont également 64 bits au loin. Cependant, dans la plupart des cas les modifications exigées sont relativement mineures et franches, et beaucoup de programmes bien rédigés peuvent simplement recompiled pour le nouvel environnement sans changements. Une autre alternative est le modèle du LLP64 , qui maintient la compatibilité avec le code à 32 bits en laissant l'international et longtemps comme à 32 bits. " ; LL" ; se rapporte au " ; long long" ; dactylographier, qui est au moins 64 bits sur toutes les plates-formes, y compris les environnements à 32 bits.
Beaucoup de compilateurs 64-bit emploient aujourd'hui le modèle du LP64 (Solaris y compris, AIX, HP, les compilateurs indigènes d'OS X de Linux, de Mac, et d'IBM z/OS). Le compilateur du VC++ de Microsoft emploie le modèle du LLP64 . L'inconvénient du modèle LP64 est cela qui stocke un long dans un international peut déborder. D'une part, le moulage d'un indicateur à un long fonctionnera. Dans le modèle de LLP, l'inverse est vrai. Ce ne sont pas des problèmes qui affectent le code entièrement standard-compliant mais le code est souvent écrit avec des prétentions implicites au sujet des largeurs des types de nombre entier.
Noter qu'un modèle de programmation est un choix fait sur une base de par-compilateur, et plusieurs peuvent coexister sur le même OS. De quelque manière que typique le modèle de programmation choisi par l'OS api en tant que modèle primaire domine.
Une autre considération est le modèle de données utilisé pour des conducteurs de que les conducteurs de composent la majorité du code du système d'exploitation dans la plupart des logiciels d'exploitation modernes (bien que beaucoup ne peuvent être chargés quand le du système d'exploitation fonctionne). Beaucoup de conducteurs emploient des indicateurs fortement pour manoeuvrer des données, et dans certains cas doivent charger des indicateurs d'une certaine taille dans le matériel qu'ils soutiennent pour le DMA . Comme exemple, un conducteur pour un dispositif à 32 bits de PCI demandant le dispositif aux données de DMA dans des secteurs supérieurs de la mémoire d'une machine 64-bit ne pourrait pas satisfaire des demandes du du système d'exploitation de charger des données du dispositif à la mémoire au-dessus de la barrière de 4 gigaoctets, parce que les indicateurs pour ces adresses ne s'inséreraient pas dans les registres de DMA du dispositif. Ce problème est résolu en ayant l'OS tiennent compte des restrictions de mémoire du dispositif en produisant des demandes aux conducteurs pour DMA, ou en employant un IOMMU .
Architectures 64-bit courantes de microprocesseur
les architectures 64-bit ( de microprocesseur de en date de 2006 ) incluent :De l'alpha architecture du DEC (chronologie de Digitals de vue alpha)
Architecture du IA-64 d'Intel (utilisée dans des unités centrales de traitement d'Itanium du d'Intel)
L'architecture du X86-64 , une version 64-bit de l'architecture du X86 (également connue sous le nom de " ; x64" ;)
L'AMD64 d'AMD (utilisé dans Athlon 64 d'AMD, Opteron, Sempron , Turion 64 et des unités centrales de traitement de Phenom )
L'Intel64 d'Intel (utilisé dans un plus nouveau Pentium 4 du d'Intel, un Xeon , et des unités centrales de traitement de noyau 2 )
Architecture de SPARC (64-bit en date de SPARC V9)
Architecture d'UltraSPARC de Sun
Architecture du SPARC64 de Fujitsu
Architecture de la PUISSANCE du d'IBM (64-bit en date des variantes de POWER3 et de RS64 )
IBM architecture de s PowerPC de Motorola '( 64-bit PowerPC 620 et PowerPC 970 variantes)
Le Z/Architecture d'IBM, employé par les zSeries et les unités centrales d'IBM de du système z9 , une version 64-bit de l'architecture du ESA/390
Les MIPS LES MIPS de technologies IV, les MIPS V, et les architectures du MIPS64
Famille du PA-RISC de la HP (64-bit en date de PA-RISC 2.0)
Le le moteur d'émotion de d'unité centrale de traitement de Playstation 2 de s de Sony 'est annoncé comme processeur de 128 bits. Il a 128 registres et autobus de bit, comme le duo du noyau 2 d'Intel de , mais est seulement un processeur 64-bit dans le sens traditionnel ; il a l'adresse de mémoire 64-bit. La plupart des unités centrales de traitement à extrémité élevé ont aujourd'hui l'adresse de mémoire 64-bit, là sont seulement très peu de 128 morceaux vrais d'ordinateur géant de bit.
La plupart des architectures 64-bit de processeur peuvent exécuter le code pour la version à 32 bits de l'architecture à la façon des indigènes sans n'importe quelle pénalité d'exécution. Ce genre d'appui s'appelle généralement l'appui de biarch de ou plus généralement l'appui de multi-voûte de .
Images
Dans l'imagerie numérique, 64-bit se rapporte aux images de bit du 48 avec canal de 16 bits du un alpha.
Voir également
de mémorisation par ordinateur .
| Random links: | 1727 | Joseph B. Foraker | Ystrad Mynach | Ramsbottom | Type 97 20 millimètres au fusil | 64-bit |