64-Bit-Computing

Im Rechnerarchitektur, 64-Bit Ganzzahlen, Speicheradressen, oder andere Daten Einheiten[a] sind diejenigen, die 64 sind Bits breit. Auch 64-Bit CPUs und Alus sind diejenigen, die auf Prozessorregister, Messbusse ansprechen, oder Datenbusse dieser Größe. EIN Computer Das verwendet ein solcher Prozessor ist ein 64-Bit-Computer.

Aus Sicht der Software bedeutet 64-Bit-Computer die Verwendung von Maschinensprache mit 64-Bit virtueller Speicher Adressen. Allerdings unterstützen nicht alle 64-Bit-Befehlssätze die vollständigen 64-Bit-Virtual-Speicher-Adressen. x86-64 und ARMV8Unterstützen Sie beispielsweise nur 48 Bit virtuelle Adresse, wobei die verbleibenden 16 Bits der virtuellen Adresse, die für alle 0 oder alle 1 erforderlich sind, und mehrere 64-Bit-Befehlssätze unterstützen weniger als 64 Bit physische Speicheradresse.

Der Begriff 64-Bit Beschreibt auch eine Generation von Computern, bei denen 64-Bit-Prozessoren die Norm sind. 64 Bit ist a Wort Größe, die bestimmte Klassen von Computerarchitektur, Bussen, Speicher und CPUs und im weiteren Sinne die auf ihnen ausgeführte Software definiert. 64-Bit-CPUs wurden in verwendet Supercomputer seit den 1970er Jahren (Cray-1, 1975) und in Reduzierende Befehlsbilder Computer (RISC) basierend Arbeitsstationen und Server seit den frühen neunziger Jahren. Im Jahr 2003 wurden 64-Bit-CPUs in den Mainstream eingeführt PC Markt in Form von x86-64 Prozessoren und die Powerpc G5.

Ein 64-Bit-Register kann 2 von 2 halten64 (über 18 Trillion oder 1,8 × 1019) verschiedene Werte. Der Bereich von ganze Zahl Werte, die in 64 Bit gespeichert werden können Ganzzahldarstellung Gebraucht. Mit den beiden häufigsten Darstellungen beträgt der Bereich 0 bis 18.446.744.073.709.551.615 (2)64 - 1) zur Darstellung als (ohne Vorzeichen) binäre Zahlund –9.223.372.036.854.775.808 (–2)63) bis 9.223.372.036.854.775.807 (2)63 - 1) zur Darstellung als Zwei ergänzt. Daher kann ein Prozessor mit 64-Bit-Speicheradressen direkt auf 2 zugreifen64 Bytes (16 Exbibytes oder EIB) von Byteadressibel Erinnerung.

Ohne weitere Qualifikation, a 64-Bit-Computerarchitektur hat im Allgemeinen Ganzzahl und Adressierung Register Das sind 64 Bit breit und ermöglichen eine direkte Unterstützung für 64-Bit-Datentypen und -adressen. Eine CPU könnte jedoch extern sein Datenbusse oder Messbusse ansprechen mit unterschiedlichen Größen der Register, sogar noch größer (der 32-Bit Pentium hatte zum Beispiel einen 64-Bit-Datenbus).[1]

Architektonische Implikationen

Prozessorregister werden in der Regel in mehrere Gruppen unterteilt: ganze Zahl, Schwimmpunkt, Einzelanweisung, mehrere Daten (SIMD), Kontrolleund oft spezielle Register für die Adressarithmetik, die verschiedene Verwendungszwecke und Namen haben kann die Anschrift, Index, oder Basisregister. In modernen Entwürfen werden diese Funktionen jedoch häufig nach allgemeinerem Zweck ausgeführt ganze Zahl Register. In den meisten Prozessoren können nur Ganzzahl oder Adressregister verwendet werden, um Daten im Speicher zu adressieren. Die anderen Arten von Registern können nicht. Die Größe dieser Register begrenzt daher normalerweise die Menge an direkt adressierbarem Speicher, selbst wenn Register wie schwimmende Punktregister vorhanden sind, die breiter sind.

Die meisten hohen Leistung 32-Bit- und 64-Bit-Prozessoren (einige bemerkenswerte Ausnahmen sind älter oder eingebettet Armarchitektur (Arm) und 32-Bit MIPS -Architektur (MIPS) CPUs) haben eine integrierte Gleitkomma-Hardware, die häufig auf 64-Bit-Dateneinheiten basiert. Zum Beispiel, obwohl die x86/x87 In der Architektur können Anweisungen 64-Bit- (und 32-Bit-) Gleitkommawerte im Speicher geladen und speichern, die internen Schwimmpunktdaten und das Registerformat sind 80 Bit, während die allgemeinen Register 32 Bit breit sind. Im Gegensatz dazu die 64-Bit Alpha Die Familie verwendet ein 64-Bit-Floating-Punkt- und Registerformat sowie 64-Bit-Ganzzahlregister.

Geschichte

Viele Computer Anweisungssätze sind so konzipiert, dass ein einzelnes Ganzzahlregister die speichern kann Speicheradresse zu einem beliebigen Ort im physischen oder des Computers oder virtueller Speicher. Daher wird die Gesamtzahl der Adressen zum Speicher häufig durch die Breite dieser Register bestimmt. Das IBM System/360 der 1960er Jahre war ein früher 32-Bit-Computer; Es hatte 32-Bit-Ganzzahlregister, obwohl es nur die 24 Bit eines Wortes für Adressen verwendete, was zu 16 führteMiB (16 × 10242 Bytes) Adressraum. 32-Bit Superminicomputer, so wie die Dez Vax, wurden in den 1970er Jahren und 32-Bit-Mikroprozessoren üblich, wie die Motorola 68000 Familie und die 32-Bit-Mitglieder der X86-Familie Beginnend mit dem Intel 80386, erschien Mitte der 1980er Jahre und machte 32 Bit etwas von a de facto Konsens als bequeme Registergröße.

Ein 32-Bit Adressregister meinte das 232 Adressen oder 4Gib von Arbeitsspeicher (RAM), könnte verwiesen werden. Als diese Architekturen entwickelt wurden, war 4 Gib des Gedächtnisses so weit über die typischen Mengen (4 MIB) in den Installationen hinaus, dass dies als ausreichend angesehen wurde Kopffreiheit zur Adressierung. 4,29 Milliarden Adressen wurden aus einem anderen wichtigen Grund als angemessene Größe angesehen: 4,29 Milliarden Ganzzahlen reichen aus, um den meisten Unternehmen in Anwendungen wie ein einzigartiges Verweise zuzuweisen Datenbanken.

Etwas Supercomputer Architekturen der 1970er und 1980er Jahre, wie die Cray-1,[2] Gebrauchte Register bis zu 64 Bit breit und unterstützten 64-Bit-Ganzzahl-Arithmetik, obwohl sie 64-Bit-Adressierung nicht unterstützten. Mitte der 1980er Jahre, Intel i860[3] Die Entwicklung begann in einem (zu spät[4] für Windows NT) 1989 Release; Der i860 hatte 32-Bit-Ganzzahlregister und 32-Bit-Adressierung, so dass es sich nicht um einen vollständig 64-Bit-Prozessor handelte, obwohl seine Grafikeinheit die 64-Bit-Ganzzahlarithmetik unterstützte.[5] 32 Bit blieben jedoch bis in die frühen neunziger Jahre die Norm, als die ständigen Reduzierungen der Speicherkosten zu Installationen mit Mengen an RAM 4 GIB führten, und die Verwendung virtueller Speicherbereiche, die die 4 GIB -Decke überschreiten, wurde für den Umgang mit bestimmten Typen wünschenswert von Problemen. Als Reaktion darauf entwickelten MIPS und DEC 64-Bit-Mikroprozessorarchitekturen, zunächst für High-End Arbeitsplatz und Server Maschinen. Mitte der 1990er Jahre, Hal Computersysteme, Sun Microsystems, IBM, Siliziumgrafik, und Hewlett Packard hatte 64-Bit-Architekturen für ihre Workstation und Serversysteme entwickelt. Eine bemerkenswerte Ausnahme von diesem Trend war Mainframes von IBM, die dann 32-Bit-Daten und 31-Bit-Adressgrößen verwendeten; Die IBM-Mainframes umfassten erst 2000 64-Bit-Prozessoren. In den 1990er Jahren wurden in den 1990er Jahren mehrere kostengünstige 64-Bit-Mikroprozessoren in Unterhaltungselektronik und eingebettete Anwendungen verwendet. Insbesondere das Nintendo 64[6] und die Playstation 2 hatte 64-Bit-Mikroprozessoren vor ihrer Einführung in PCs. High-End-Drucker, Netzwerkgeräte und industrielle Computer verwendeten ebenfalls 64-Bit-Mikroprozessoren wie die Quanteneffektgeräte R5000. 64-Bit Computing begann ab 2003 auf den Desktop des PC auf den Desktop zu Apfel's Macintosh -Linien schalteten auf Powerpc 970 Prozessoren (bezeichnet G5 von Apple) und moderne Mikrogeräte (AMD) veröffentlichte seinen ersten 64-Bit x86-64 Prozessor.

64-Bit-Datenzeitleiste

1961
IBM liefert die IBM 7030 Stretch Supercomputer, das 64-Bit-Datenträger und 32- oder 64-Bit-Anweisungswörter verwendet.
1974
Steuerungsdatengesellschaft startet die CDC Star-100 Vector Supercomputer, das eine 64-Bit-Wortarchitektur verwendet (vorherige CDC-Systeme basierten auf einer 60-Bit-Architektur).
Internationale Computer Limited startet die ICL 2900 -Serie mit 32-Bit, 64-Bit und 128-Bit Zwei ergänzt Ganzzahlen; 64-Bit- und 128-Bit-Schwimmpunkt; 32-Bit-, 64-Bit- und 128-Bit-Dezimal- und 128-Bit-Akkumulatorregister. Die Architektur hat durch eine Reihe von ICL- und Fujitsu -Maschinen überlebt. Das Neueste ist die Fujitsu Supernova, die die ursprüngliche Umgebung auf 64-Bit-Intel-Prozessoren emuliert.
1976
Cray Research liefert den ersten Cray-1 Supercomputer, das auf einer 64-Bit-Wortarchitektur basiert und die Grundlage für spätere Cray-Vektor-Supercomputer bildet.
1983
Elxsi Startet die ELXSI 6400 Parallele Minisupercomputer. Die ELXSI-Architektur verfügt über 64-Bit-Datenregister, aber einen 32-Bit-Adressraum.
1989
Intel führt die vor Intel i860 Reduzierter Befehlssatz Computer (RISC) Prozessor. Es wurde als "64-Bit-Mikroprozessor" vermarktet und hatte im Wesentlichen eine 32-Bit-Architektur, die mit einer 3D-Grafikeinheit verbessert wurde, die mit 64-Bit-Ganzzahlbetrieb in der Lage ist.[7]
1993
Atari führt die vor Atari Jaguar Videospielkonsole, einschließlich rund 64-Bit-breiten Datenpfade in seiner Architektur.[8]

64-Bit-Adresszeitleiste

1991
MIPS -Computersysteme erzeugt den ersten 64-Bit-Mikroprozessor, der R4000, was die implementiert MIPS III Architektur die dritte Überarbeitung seiner MIPS -Architektur.[9] Die CPU wird in verwendet SGI Grafikworkstationen beginnen mit dem Iris Crimson. Kendall Square Research Liefern Sie ihren ersten KSR1-Supercomputer, der auf einer proprietären 64-Bit-RISC-Prozessorarchitektur basiert OSF/1.
1992
Digital Equipment Corporation (Dez) führt den reinen 64-Bit ein Alpha Architektur, die aus dem geboren wurde PRISMA Projekt.[10]
1994
Intel kündigt Pläne für den 64-Bit an IA-64 Architektur (gemeinsam entwickelt mit Hewlett Packard) als Nachfolger seines 32-Bit IA-32 Prozessoren. Ein Startdatum von 1998 bis 1999 wurde ins Visier genommen.
1995
Sonne Startet einen 64-Bit Sparc Prozessor, die Ultrassparc.[11] Fujitsuim Eigentum Hal Computersysteme Startet Workstations basierend auf einer 64-Bit SPARC64. IBM veröffentlicht die Mikroprozessoren A10 und A30, die ersten 64-Bit-PowerPC als Prozessoren.[12] IBM veröffentlicht außerdem ein 64-Bit-AS/400-System-Upgrade, mit dem das Betriebssystem, die Datenbank und die Anwendungen konvertiert werden können.
1996
Nintendo führt die vor Nintendo 64 Videospielkonsole, basiert auf einer kostengünstigen Variante des MIPS R4000. HP veröffentlicht die erste Implementierung seiner 64-Bit PA-RISC 2.0 Architektur, die PA-8000.[13]
1998
IBM veröffentlicht die Power3 Linie von Voll-64-Bit PowerPC/ENERGIE Prozessoren.[14]
1999
Intel veröffentlicht die Befehlssatz Für die IA-64-Architektur. AMD öffentlich seine Set von 64-Bit-Erweiterungen auf IA-32 offenbart x86-64 (später Marken AMD64).
2000
IBM versendet seinen ersten 64-Bit Z/Architektur Mainframe, das ZSeries Z900. Z/Architektur ist eine 64-Bit-Version des 32-Bit ESA/390 Architektur, ein Nachkomme des 32-Bit System/360 die Architektur.
2001
Intel versendet seine IA-64-Prozessorlinie nach wiederholten Verzögerungen bei der Markteinstellung. Jetzt gebrandmarkt Itanium und gegen High-End-Server, die Verkäufe nicht erfüllen, erfüllen die Erwartungen nicht.
2003
AMD stellt seine vor Opteron und Athlon 64 Prozessorlinien, basierend auf seiner AMD64 Architektur, die erste X86-basierte 64-Bit-Prozessorarchitektur. Apfel Versendet auch den 64-Bit "G5" Powerpc 970 CPU produziert von IBM. Intel behauptet, dass seine Itanium-Chips die einzigen 64-Bit-Prozessoren bleiben würden.
2004
Intel, der auf den Markterfolg von AMD reagiert, gibt zu, dass es einen Klon der AMD64-Erweiterungen namens IA-32E entwickelt hat (später in Em64t umbenannt und dann erneut in Intel 64 umbenannt). Intel Schiffe aktualisierte Versionen seiner Xeon und Pentium 4 Prozessorfamilien, die den neuen 64-Bit-Anweisungssatz unterstützen.
Über Technologien kündigt die an Jesaja 64-Bit-Prozessor.[15]
2006
Sony, IBM und Toshiba beginnen mit der Herstellung des 64-Bit Zellprozessor für den Einsatz in der Playstation 3, Server, Arbeitsstationen und andere Geräte. Intel veröffentlicht Kern 2 Duo als erster Mainstream X86-64-Prozessor für seine Mobilfunk-, Desktop- und Workstation-Linie. Vorherige 64-Bit-Verlängerungsprozessorlinien waren auf dem Verbraucherhandelsmarkt nicht weit verbreitet (der größte Teil des 64-Bit-Pentiums 4/d waren OEM), 64-Bit-Pentium 4, Pentium D und Celeron erst Ende 2006 in die Massenproduktion waren Zu einem schlechten Rendite-Problem (die meisten guten Ertragswafer wurden auf Server und Mainframe gerichtet, während der Mainstream bis 2006 noch 130 nm 32-Bit-Prozessorlinie bleibt) und wurde nach dem Debüt von Core 2 bald zu einem niedrigen Ende. AMD veröffentlichte ihren ersten 64-Bit-Mobile-Prozessor und wurde in 90 nm hergestellt.
2011
Armhoteln Kündigt ARMV8-A, die erste 64-Bit-Version der Armarchitektur.[16]
2012
Arm Holdings kündigte am 30. Oktober 2012 ihre Cortex-A53- und Cortex-A57-Kerne an, ihre ersten Kerne, basierend auf ihrer 64-Bit-Architektur.[17][18]
2013
Apple kündigt die an iPhone 5smit dem ersten 64-Bit-Prozessor der Welt in einem Smartphone, das ihre verwendet A7 ARMV8-A-basiertes System-auf-a-Chip.
2014
Google kündigt die an Nexus 9 Tablet, das erste Android-Gerät, das auf dem 64-Bit-Tegra K1-Chip ausgeführt wird.

64-Bit-Betriebssystem-Zeitleiste

1985
Cray Veröffentlichungen Unicosdie erste 64-Bit-Implementierung der Unix Betriebssystem.[19]
1993
Dece veröffentlicht den 64-Bit DEC OSF/1 AXP Unix-artig Betriebssystem (später in Tru64 Unix umbenannt) für seine Systeme basierend auf der Alpha die Architektur.
1994
Unterstützung für die R8000 Prozessor wird durch hinzugefügt von Siliziumgrafik zum Irrix Betriebssystem in Release 6.0.
1995
Dece löst frei OpenVMS 7.0, die erste volle 64-Bit-Version von OpenVMS für Alpha. Erster 64-Bit Linux -Verteilung Für die Alpha -Architektur wird veröffentlicht.[20]
1996
Die Unterstützung für die R4x00-Prozessoren im 64-Bit-Modus wird durch hinzugefügt Siliziumgrafik zum Irrix Betriebssystem in Release 6.2.
1998
Sonnenveröffentlichungen Solaris 7, mit vollen 64-Bit Ultrassparc Unterstützung.
2000
IBM veröffentlicht Z/OS, ein 64-Bit MVSfür die Neuen ZSeries 64-Bit-Mainframes; 64-Bit Linux auf Z -Systemen Folgt der CPU -Veröffentlichung fast sofort.
2001
Linux wird der erste OS -Kernel, der vollständig unterstützt wird x86-64 (Auf einem Simulator, wie keine X86-64-Prozessoren veröffentlicht worden waren).[21]
2001
Microsoft veröffentlicht Windows XP 64-Bit Edition für die ItaniumIA-64 Architektur; es könnte laufen 32-Bit-Anwendungen durch eine Ausführungsschicht.
2003
Apple veröffentlicht seine Mac OS X 10.3 "Panther" -Betriebssystem, das die native 64-Bit-Ganzzahl-Arithmetik unterstützt Powerpc 970 Prozessoren.[22] Mehrere Linux Verteilungen freigeben mit Unterstützung für AMD64. Freebsd Veröffentlichungen mit Unterstützung für AMD64.
2005
Am 4. Januar stellt Microsoft die Windows XP 64-Bit-Ausgabe ein, da seit dem Vorgänger September keine PCs mit IA-64-Prozessoren verfügbar waren, und kündigt an, dass es X86-64-Versionen von Windows entwickelt, um es zu ersetzen.[23] Am 31. Januar Veröffentlichungen Solaris 10 Mit Unterstützung für AMD64- und EM64T -Prozessoren. Am 29. April veröffentlicht Apple veröffentlicht Mac OS X 10.4 "Tiger", das nur begrenzte Unterstützung für 64-Bit-Befehlszeilenanwendungen auf Maschinen mit PowerPC 970-Prozessoren bietet; Spätere Versionen für Intel-basierte Macs unterstützten 64-Bit-Befehlszeilenanwendungen auf Macs mit EM64T-Prozessoren. Am 30. April veröffentlicht Microsoft veröffentlicht Windows XP Professional X64 Edition und Windows Server 2003 X64 Ausgabe für AMD64- und EM64T -Prozessoren.[24]
2006
Microsoft veröffentlicht Windows Vista, einschließlich einer 64-Bit-Version für AMD64/EM64T-Prozessoren, die 32-Bit-Kompatibilität behält. In der 64-Bit-Version sind alle Windows-Anwendungen und Komponenten 64-Bit, obwohl viele auch ihre 32-Bit-Versionen zur Kompatibilität mit enthalten sind Plugins.
2007
Apple veröffentlicht Mac OS X 10.5 "Leopard", das 64-Bit-Anwendungen auf Maschinen mit PowerPC 970- oder EM64T-Prozessoren vollständig unterstützt.
2009
Microsoft veröffentlicht Windows 7, was wie Windows Vista eine vollständige 64-Bit-Version für AMD64/Intel 64-Prozessoren enthält; Die meisten neuen Computer werden standardmäßig mit einer 64-Bit-Version geladen. Microsoft veröffentlicht auch Windows Server 2008 R2Das ist das erste 64-Bit-nur Server-Betriebssystem. Apple veröffentlicht Mac OS X 10.6, "Snow Leopard", das mit einem 64-Bit-Kernel für AMD64/Intel64-Prozessoren versendet wird, obwohl nur bestimmte aktuelle Modelle von Apple Computern den 64-Bit-Kernel standardmäßig ausführen. Die meisten mit Mac OS X 10.6 gebündelten Anwendungen sind jetzt ebenfalls 64-Bit.[22]
2011
Apple veröffentlicht Mac OS X 10.7, "Lion", der den 64-Bit-Kernel standardmäßig auf unterstützten Maschinen ausführt. Ältere Maschinen, die den 64-Bit-Kernel nicht ausführen können, führen den 32-Bit-Kernel aus, können jedoch wie bei früheren Veröffentlichungen immer noch 64-Bit-Anwendungen ausführen. Lion unterstützt keine Maschinen mit 32-Bit-Prozessoren. Fast alle mit Mac OS X 10.7 gebündelten Anwendungen sind jetzt ebenfalls 64-Bit, einschließlich iTunes.
2012
Microsoft veröffentlicht Windows 8 das unterstützt die UEFI -Klasse 3 (Uefi ohne CSM) und Sicherer Startvorgang.[25]
2013
Apple veröffentlicht iOS 7, die auf Maschinen mit AARG64-Prozessoren einen 64-Bit-Kernel hat, der 64-Bit-Anwendungen unterstützt.
2014
Google veröffentlicht Android Lollipopdie erste Version der Android Betriebssystem mit Unterstützung für 64-Bit-Prozessoren.
2017
Apple veröffentlicht iOS 11, unterstützt nur Maschinen mit AARG64 -Prozessoren. Es hat einen 64-Bit-Kernel, der nur 64-Bit-Anwendungen unterstützt. 32-Bit-Anwendungen sind nicht mehr kompatibel.
2019
Apple veröffentlicht macOS 10.15 "Catalina", die Unterstützung für 32-Bit-Intel-Anwendungen fallen lassen.
2021
Google veröffentlicht Android 12Unterstützung der Unterstützung für 32-Bit-Anwendungen. Microsoft veröffentlicht Windows 11 Am 5. Oktober, das nur 64-Bit-Systeme unterstützt und die Unterstützung für IA-32-Systeme senkt.

Grenzen der Prozessoren

Im Prinzip kann ein 64-Bit-Mikroprozessor 16 EIB ansprechen (16 × 10246 = 264 = 18.446.744.073.709.551.616 Bytes, oder ungefähr 18,4 Exabyte) Gedächtnis. Allerdings unterstützen nicht alle Anweisungssätze und nicht alle Prozessoren, die diese Anweisungssätze implementieren, einen vollständigen 64-Bit-virtuellen oder physischen Adressraum.

Das x86-64 Architektur (Ab 2016) Ermöglicht 48 Bit für virtuelles Speicher und für einen bestimmten Prozessor bis zu 52 Bit für das physische Gedächtnis.[26][27] Diese Grenzen ermöglichen Speichergrößen von 256Tib (256 × 10244 Bytes) und 4PIB (4 × 10245 Bytes), beziehungsweise. Ein PC kann derzeit nicht 4 enthaltenPebibytes des Gedächtnisses (aufgrund der physischen Größe der Speicherchips), aber AMD stellte große Server, gemeinsame Speichercluster und andere Verwendungen des physischen Adressraums vor, die dies in absehbarer Zukunft angehen könnten. Daher bietet die 52-Bit-physische Adresse ausreichend Raum für die Erweiterung, ohne die Kosten für die Implementierung der vollen 64-Bit-physischen Adressen zu entsprechen. In ähnlicher Weise wurde der 48-Bit-virtuelle Adressraum für 65.536 (2) ausgelegt16) mal die 32-Bit-Grenze von 4 gib (4 × 10243 Bytes), um Platz für eine spätere Erweiterung zuzulassen und keinen Overhead für die Übersetzung von 64-Bit-Adressen zu ermöglichen.

Das Power ISA v3.0 Ermöglicht 64 Bit für eine effektive Adresse, die einer segmentierten Adresse mit 65 und 78 Bit zulässig für virtuellen Speicher und für einen bestimmten Prozessor bis zu 60 Bit für den physischen Speicher zugeordnet ist.[28]

Das Orakel Sparc Die Architektur 2015 ermöglicht 64 Bit für virtuelles Gedächtnis und für einen bestimmten Prozessor zwischen 40 und 56 Bit für das physische Gedächtnis.[29]

Das ARM AARCH64 Virtual Memory System Architecture Ermöglicht 48 Bit für virtuelles Speicher und für einen bestimmten Prozessor von 32 bis 48 Bit für das physische Gedächtnis.[30]

Das Dec Alpha Die Spezifikation erfordert, dass mindestens 43 Bits virtueller Speicheradressenraum (8 TIB) unterstützt werden, und die Hardware muss überprüfen und fangen, wenn die verbleibenden nicht unterstützten Bits Null sind (um die Kompatibilität für zukünftige Prozessoren zu unterstützen). Alpha 21064 Unterstützte 43 Bit virtueller Speicherraumsraum (8 TIB) und 34 Bit physischer Speicheradresse (16 GIB). Alpha 21164 Unterstützte 43 Bit virtueller Speicherraumsraum (8 TIB) und 40 Bit Physical Memory Address Space (1 TIB). Alpha 21264 Unterstützte benutzerkonfigurierbare 43 oder 48 Bit virtueller Speicherbereichsraum (8 TIB oder 256 TIB) und 44 Bit Physical Memory Address Space (16 TIB).


64-Bit-Anwendungen

32-Bit gegen 64-Bit

Eine Änderung von a 32-Bit zu einer 64-Bit-Architektur ist wie die meisten eine grundlegende Veränderung Betriebssysteme Muss ausgiebig geändert werden, um die neue Architektur zu nutzen, da diese Software die tatsächliche Speicheradresses -Hardware verwalten muss.[31] Andere Software muss auch sein portiert die neuen Fähigkeiten nutzen; Ältere 32-Bit-Software kann entweder aufgrund des 64-Bit-Befehlssatzes unterstützt werden, der ein Superset des 32-Bit-Anweisungssatzes ist, sodass Prozessoren, die den 64-Bit-Anweisungssatz unterstützen, auch Code für die 32-Bit-Anweisung ausführen können Setzen Sie oder über Software Emulationoder durch die tatsächliche Implementierung eines 32-Bit-Prozessorkerns innerhalb des 64-Bit-Prozessors, wie bei einigen Itaniumprozessoren von Intel, die eine enthielt IA-32 Prozessorkern zum Ausführen von 32-Bit x86 Anwendungen. Die Betriebssysteme für diese 64-Bit-Architekturen unterstützen im Allgemeinen sowohl 32-Bit- als auch 64-Bit-Anwendungen.[32]

Eine bedeutende Ausnahme ist die IBM as/400, Software, für die in ein virtuelles Zusammengestellt wird Anweisungsset Architektur (Isa) genannt Technologieunabhängige Maschinenschnittstelle (Timi); Timi-Code wird dann vor der Ausführung von Software mit niedriger Ebene in einen nativen Maschinencode übersetzt. Die Übersetzungssoftware ist alles, was neu geschrieben werden muss, um das vollständige Betriebssystem und die gesamte Software auf eine neue Plattform zu verschieben, wie beim Übergang von IBM den nativen Befehlssatz für AS/400 aus dem älteren 32/48-Bit Impi zum neueren 64-Bit Powerpc-as, Codenamen Amazonas. Der Impi-Anweisungssatz war ganz anders als nur 32-Bit-PowerPC, sodass dieser Übergang noch größer war als ein bestimmtes Befehlssatz von 32 auf 64 Bit zu bewegen.

Auf 64-Bit-Hardware mit x86-64 Architektur (AMD64), die meisten 32-Bit-Betriebssysteme und Anwendungen können ohne Kompatibilitätsprobleme ausgeführt werden. Während der größere Adressraum von 64-Bit-Architekturen die Arbeit mit großen Datensätzen in Anwendungen wie z. digitales Video, Scientific Computing und groß Datenbanken Einfacher wurde erheblich diskutiert, ob sie oder ihr 32-Bit Kompatibilitätsmodi wird schneller als vergleichsweise preisgünstige 32-Bit-Systeme für andere Aufgaben sein.

Ein kompiliertes Java-Programm kann auf einer virtuellen 32- oder 64-Bit-Java-Maschine ohne Änderung ausgeführt werden. Die Längen und die Präzision aller eingebauten Typen, wie z. verkohlen, kurz, int, lang, schweben, und doppeltund die Typen, die als Array -Indizes verwendet werden können, werden vom Standard angegeben und sind nicht von der zugrunde liegenden Architektur abhängig. Java-Programme, die auf einer 64-Bit-Java-Virtual Machine ausgeführt werden, haben Zugriff auf einen größeren Adressraum.[33]

Geschwindigkeit ist nicht der einzige Faktor beim Vergleich von 32-Bit- und 64-Bit-Prozessoren. Anwendungen wie Multitasking, Stresstests und Clustering-für High Performance Computing (HPC)-Möglicherweise eignen sich bei angemessener Bereitstellung einer 64-Bit-Architektur besser. Aus diesem Grund wurden 64-Bit-Cluster in großen Organisationen wie IBM, HP und Microsoft weit verbreitet.

Zusammenfassung:

  • Ein 64-Bit-Prozessor bietet die beste Leistung mit 64-Bit-Software.
  • Ein 64-Bit-Prozessor kann haben Rückwärtskompatibilität, sodass es 32-Bit-Anwendungssoftware für die 32-Bit-Version seines Befehlssatzes ausführen kann, und kann auch unterstützen, dass 32-Bit-Betriebssysteme für die 32-Bit-Version des Befehlssatzes ausgeführt werden.
  • Ein 32-Bit-Prozessor ist mit 64-Bit-Software unvereinbar.

Vor-und Nachteile

Ein häufiges Missverständnis ist, dass 64-Bit-Architekturen nicht besser sind als 32-Bit-Architekturen, es sei denn, der Computer hat mehr als 4 Gib von Arbeitsspeicher.[34] Dies ist nicht ganz wahr:

  • Einige Betriebssysteme und bestimmte Hardwarekonfigurationen beschränken den physischen Speicherplatz auf 3 Gib auf IA-32 Systeme, da ein Großteil der 3–4 GIB -Region der Hardwareadressierung reserviert ist; sehen 3 Gib Barriere; 64-Bit-Architekturen können weit mehr als 4 Gib ansprechen. IA-32-Prozessoren aus dem jedoch Pentium Pro weiter erlauben Sie einen 36-Bit physisch Speicheradressspeicher mit Verwendung Erweiterung der physischen Adresse (PAE), das einen 64 GIB -physischen Adressbereich ergibt, von dem bis zu 62 GIB mit dem Hauptspeicher verwendet werden können; Betriebssysteme, die PAE unterstützen, sind möglicherweise auch bei IA-32-Prozessoren nicht auf 4 Gib im physischen Gedächtnis begrenzt. Treiber und andere Kernel -Modus -Software, mehr ältere Versionen, können jedoch mit PAE nicht kompatibel sein. Dies wurde als Grund für 32-Bit-Versionen von zitiert Microsoft Windows auf 4 gib physischen Ram begrenzt sein[35] (Obwohl die Gültigkeit dieser Erklärung umstritten ist[36]).
  • Einige Betriebssysteme reservieren Teile von Prozess Adressraum Für die Verwendung von Betriebssystemen reduzieren Sie den gesamten Adressraum für den Zuordnen von Speicher für Benutzerprogramme effektiv. Beispielsweise reserviert 32-Bit-Windows 1 oder 2 GIB (abhängig von den Einstellungen) des gesamten Adressraums für den Kernel, wodurch nur 3 bzw. 2 GIB (jeweils) des Adressraums für den Benutzermodus verfügbar sind. Diese Grenze ist bei 64-Bit-Betriebssystemen viel höher.
  • Speicher-abgebildete Dateien werden in 32-Bit-Architekturen immer schwieriger zu implementieren, da Dateien von über 4 Gib häufiger werden; Solche großen Dateien können nicht leicht auf 32-Bit-Architekturen eingestuft werden, da nur ein Teil der Datei gleichzeitig in den Adressraum zugeordnet werden kann und auf eine solche Datei durch Speicherzuordnung zugreifen kann. Aus dem Adressraum nach Bedarf. Dies ist ein Problem, da die Speicherzuordnung, falls sie vom Betriebssystem ordnungsgemäß implementiert werden, eine der effizientesten Methoden zur Festplatte zu Memory ist.
  • Einige 64-Bit-Programme wie Encoder, Decoder und Verschlüsselungssoftware können von 64-Bit-Registern stark profitieren, während die Leistung anderer Programme, wie z. 64-Bit-Umgebung.
  • Rund 64-Bit-Architekturen, wie z. x86-64 und Aarch64Unterstützen Sie allgemeinere Register als ihre 32-Bit-Gegenstücke (obwohl dies nicht speziell auf die Wortlänge zurückzuführen ist). Dies führt zu einer erheblichen Geschwindigkeitssteigerung für enge Schleifen, da der Prozessor keine Daten aus dem Cache oder dem Hauptspeicher abrufen muss, wenn die Daten in die verfügbaren Register passen können.
Beispiel in C:
int a, b, c, d, e; zum (a = 0; a < 100; a++) {   b = a;   c = b;   d = c;   e = d; } 
Dieser Code erstellt zuerst 5 Werte: a, b, c, d und e; und steckt sie dann in eine Schleife. Während der Schleife ändert dieser Code den Wert von B zum Wert von A, den Wert von C zum Wert von B, den Wert von D zum Wert von C und den Wert von E zum Wert von d. Dies hat den gleichen Effekt wie das Ändern aller Werte in a.
Wenn ein Prozessor nur zwei oder drei Werte oder Variablen in Registern aufbewahren kann, müsste er einige Werte zwischen Speicher und Registern verschieben, um auch Variablen D und E verarbeiten zu können. Dies ist ein Prozess, bei dem viele CPU -Zyklen erforderlich sind. Ein Prozessor, der alle Werte und Variablen in Registern aufbewahren kann, kann sie durchlaufen, ohne dass Daten zwischen Registern und Speicher für jede Iteration verschoben werden müssen. Dieses Verhalten kann leicht mit dem virtuellen Gedächtnis verglichen werden, obwohl alle Effekte vom Compiler abhängig sind.

Der Hauptnachteil von 64-Bit-Architekturen besteht darin, dass dieselben Daten im Verhältnis zu 32-Bit-Architekturen mehr Speicherplatz einnehmen (aufgrund längerer Zeiger und möglicherweise anderer Typen und Ausrichtungspolster). Dies erhöht die Speicheranforderungen eines bestimmten Prozesses und kann Auswirkungen auf die effiziente Verwendung von Prozessor -Cache haben. Die Aufrechterhaltung eines teilweisen 32-Bit-Modells ist eine Möglichkeit, dies zu behandeln, und im Allgemeinen einigermaßen wirksam. Zum Beispiel die Z/OS Das Betriebssystem verfolgt diesen Ansatz und fordert den Programmcode in 31-Bit-Adressräumen (das hohe Auftragsbit wird in der Adressberechnung auf der zugrunde liegenden Hardwareplattform nicht verwendet), während Datenobjekte optional in 64-Bit-Regionen liegen können. Nicht alle dieser Anwendungen erfordern einen großen Adressraum oder manipulieren Sie 64-Bit-Datenelemente, sodass diese Anwendungen nicht von diesen Funktionen profitieren.

Verfügbarkeit von Software

X86-basierte 64-Bit-Systeme haben manchmal keine Äquivalente von Software Das ist für 32-Bit-Architekturen geschrieben. Das schwerwiegendste Problem bei Microsoft Windows ist unvereinbar Gerätetreiber für veraltete Hardware. Die meisten 32-Bit-Anwendungssoftware können auf einem 64-Bit-Betriebssystem in a ausgeführt werden Kompatibilitätsmodus, auch als als bezeichnet Emulation Modus, z. B. Microsoft Wow64 Technologie für IA-64 und AMD64. Der 64-Bit-Windows Native-Modus[37] Die Fahrerumgebung läuft auf 64-Bit Ntdll.dll, die den 32-Bit-Win32-Subsystemcode nicht aufrufen können (häufig Geräte, deren tatsächliche Hardwarefunktion in der Benutzermodus-Software wie WinPrinters emuliert wird). Da 64-Bit-Treiber für die meisten Geräte bis Anfang 2007 nicht verfügbar waren (VISTA X64), wurde die Verwendung einer 64-Bit-Version von Windows als Herausforderung angesehen. Der Trend hat sich jedoch seitdem zu 64-Bit-Computing bewegt, mehr als die Speicherpreise gesunken sind und die Verwendung von mehr als 4 Gib RAM stieg. Die meisten Hersteller lieferten sowohl 32-Bit- als auch 64-Bit-Treiber für neue Geräte, sodass die Nichtverfügbarkeit von 64-Bit-Fahrern nicht mehr ein Problem darstellt. 64-Bit-Treiber wurden für viele ältere Geräte nicht bereitgestellt, die folglich nicht in 64-Bit-Systemen verwendet werden konnten.

Die Fahrerkompatibilität war bei Open-Source-Treibern ein geringeres Problem, da 32-Bit für 64-Bit-Verwendung geändert werden konnten. Die Unterstützung für Hardware vor Anfang 2007 war aufgrund der relativ geringen Anzahl von Benutzern für Open-Source-Plattformen problematisch.

64-Bit-Versionen von Windows können nicht ausgeführt werden 16-Bit-Software. Die meisten 32-Bit-Anwendungen funktionieren jedoch gut. 64-Bit-Benutzer sind gezwungen, a zu installieren virtuelle Maschine eines 16- oder 32-Bit-Betriebssystems zum Ausführen von 16-Bit-Anwendungen.[38]

Mac OS X 10.4 "Tiger" und Mac OS X 10.5 "Leopard" hatte nur einen 32-Bit-Kernel, aber sie können 64-Bit-User-Mode-Code auf 64-Bit-Prozessoren ausführen. Mac OS X 10.6 "Snow Leopard" hatte sowohl 32- als auch 64-Bit-Kerne und verwendete auf den meisten MAC den 32-Bit-Kernel sogar bei 64-Bit-Prozessoren. Dies ermöglichte es diesen MACs, 64-Bit-Prozesse zu unterstützen und gleichzeitig 32-Bit-Geräte-Treiber zu unterstützen. Obwohl nicht 64-Bit-Fahrer und Leistungsvorteile, die mit ihnen kommen können. Mac OS X 10.7 "Lion" lief mit einem 64-Bit-Kernel auf mehr Macs und OS X 10.8 "Mountain Lion" und später Mac OS Veröffentlichungen haben nur einen 64-Bit-Kernel. Auf Systemen mit 64-Bit-Prozessoren können sowohl die 32- als auch 64-Bit-MacOS-Kernel 32-Bit-Benutzer-Modus-Code ausführen, und alle Versionen von macOS bis macOS Mojave (10.14) enthalten 32-Bit-Versionen von Bibliotheken, die 32- Bit-Anwendungen würden verwenden, sodass die 32-Bit-Benutzer-Mode-Software für macOS auf diesen Systemen ausgeführt wird. Die 32-Bit-Versionen von Bibliotheken wurden von Apple in MacOS Catalina (10.15) entfernt.

Linux und die meisten anderen Unix-artig Betriebssysteme und die C und C ++ Toolchains Für sie haben 64-Bit-Prozessoren seit vielen Jahren unterstützt. Viele Anwendungen und Bibliotheken für diese Plattformen sind Quelloffene Software, geschrieben in C und C ++, so dass sie, wenn sie 64-Bit-Sicherheit sind, in 64-Bit-Versionen zusammengestellt werden können. Dieses Quellenbasis-Verteilungsmodell mit Schwerpunkt auf häufigen Freisetzungen stellt die Verfügbarkeit von Anwendungssoftware für die Betriebssysteme weniger ein Problem.

64-Bit-Datenmodelle

In 32-Bit-Programmen, Zeiger und Datentypen wie Ganzzahlen haben im Allgemeinen die gleiche Länge. Dies gilt nicht unbedingt auf 64-Bit-Maschinen.[39][40][41] Mischen von Datentypen in Programmiersprachen wie z. C und seine Nachkommen wie C ++ und Ziel c kann somit an 32-Bit-Implementierungen funktionieren, jedoch nicht bei 64-Bit-Implementierungen.

In vielen Programmierumgebungen für C- und C-abgeleitete Sprachen auf 64-Bit-Maschinen,, int Die Variablen sind immer noch 32 Bit breit, aber lange ganze Zahlen und Zeiger sind 64 Bit breit. Diese werden als eine beschrieben LP64 Datenmodell, was eine Abkürzung von "lang, Zeiger, 64" ist.[42][43] Andere Modelle sind die ILP64 Datenmodell, bei dem alle drei Datentypen 64 Bit breit sind,[44][43] und sogar das SILP64 Modell wo kurz Ganzzahlen sind auch 64 Bit breit.[45][46] In den meisten Fällen sind die erforderlichen Änderungen jedoch relativ gering und unkompliziert, und viele gut geschriebene Programme können einfach für die neue Umgebung ohne Änderungen neu kompiliert werden. Eine andere Alternative ist die LLP64 Modell, das die Kompatibilität mit 32-Bit-Code beibehält int und lang als 32-Bit.[47][43] LL bezieht sich auf lange lange ganze Zahl Typ, der auf allen Plattformen, einschließlich 32-Bit-Umgebungen, mindestens 64 Bit beträgt.

Es gibt auch Systeme mit 64-Bit-Prozessoren, die eine verwenden ILP32 Datenmodell mit zusätzlicher 64-Bit-langer Zahlen; Dies wird auch auf vielen Plattformen mit 32-Bit-Prozessoren verwendet. Dieses Modell reduziert die Codegröße und die Größe von Datenstrukturen, die Zeiger enthalten, auf Kosten eines viel kleineren Adressraums, einer guten Wahl für einige eingebettete Systeme. Für Anweisungssätze wie X86 und ARM, in denen die 64-Bit-Version des Befehlssatzes über mehr Register verfügt als die 32-Bit-Version, bietet sie den Zugriff auf die zusätzlichen Register ohne Raumstrafe. Es ist in 64-Bit-RISC-Maschinen üblich, die in x86 als untersucht wurden x32 Abiund wurde kürzlich in der verwendet Apple Watch Series 4 und 5.[48][49]

64-Bit-Datenmodelle
Datenmodell kurz
(ganze Zahl)
int lang
(ganze Zahl)
lang Lang Zeiger,
size_t
Probenbetriebssysteme
ILP32 16 32 32 64 32 x32 und ARM64ILP32 ABIS auf Linux -Systemen; MIPS N32 ABI.
LLP64 16 32 32 64 64 Microsoft Windows (x86-64 und ia-64) verwendet Visuell c ++; und Mingw
LP64 16 32 64 64 64 Die meisten Unix und Unix-artig Systeme, z. B., Solaris, Linux, BSD, Mac OS. Fenster beim Benutzen Cygwin; Z/OS
ILP64 16 64 64 64 64 Hal Computersysteme Hafen von Solaris an die SPARC64
SILP64 64 64 64 64 64 Klassisch Unicos[45][46] (gegen Unicos/MP usw.)

Viele 64-Bit-Plattformen verwenden heute eine LP64 Modell (einschließlich Solaris, AIX, HP-UX, Linux, MacOS, BSD und IBM Z/OS). Microsoft Windows verwendet eine LLP64 Modell. Der Nachteil des LP64 -Modells besteht darin, dass das Speichern a lang In ein int Kürzungen. Andererseits konvertieren Sie einen Zeiger auf a lang Wird in LP64 „funktionieren“. Im LLP64 -Modell ist das Gegenteil wahr. Dies sind keine Probleme, die einen vollständig standardmäßigen Code beeinflussen, aber Code wird häufig mit impliziten Annahmen über die Breiten von Datentypen geschrieben. C Code sollte bevorzugen (u)intptr_t Anstatt von lang Beim Werfen von Zeigern in ganzzahlige Objekte.

Ein Programmiermodell ist eine Auswahl, die für einen bestimmten Compiler entspricht, und mehrere können unter demselben Betriebssystem koexistieren. Das Programmiermodell, das jedoch als primäres Modell für das Betriebssystem ausgewählt wurde Programmierschnittstelle (API) dominiert typischerweise.

Eine weitere Überlegung ist das Datenmodell, für das verwendet wird Gerätetreiber. Die Fahrer machen den größten Teil des Betriebssystemcodes in den meisten modernen Betriebssystemen aus (obwohl viele möglicherweise nicht geladen werden, wenn das Betriebssystem ausgeführt wird). Viele Fahrer verwenden Zeiger stark, um Daten zu manipulieren, und müssen in einigen Fällen Zeiger einer bestimmten Größe in die Hardware laden, für die sie unterstützt werden direkter Speicherzugriff (DMA). Als Beispiel konnte ein Treiber für ein 32-Bit-PCI Gibibyte Barriere, weil die Zeiger auf diese Adressen nicht in die DMA -Register des Geräts passen würden. Dieses Problem wird gelöst, indem das Betriebssystem die Speicherbeschränkungen des Geräts berücksichtigt Eingabe -Output -Speicherverwaltungseinheit (Iommu).

Aktuelle 64-Bit-Architekturen

Ab Mai 2018, 64-Bit-Architekturen, für die Prozessoren hergestellt werden, umfassen:

Die meisten Architekturen von 64 Bits, die aus derselben Architektur von 32 Bit stammen, können Code für die 32-Bit-Versionen nativ ohne Leistungsstrafe ausführen. Diese Art von Unterstützung wird allgemein genannt BI-Arch-Unterstützung oder allgemeiner Unterstützung für Multi-Arch-Unterstützung.

Siehe auch

Anmerkungen

  1. ^ wie schwebenden Punkt Schwimmpunkt Zahlen.

Verweise

  1. ^ Handbuch des Pentiumprozessor -Benutzers Band 1: Pentium -Prozessordatenbuch (PDF). Intel. 1993.
  2. ^ "Cray-1 Computer System Hardware Referenzhandbuch" (PDF). Cray Research. 1977. Abgerufen 8. Oktober, 2013.
  3. ^ Grimes, Jack; Kohn, Les; Bharadhwaj, Rajeev (Juli -August 1989). "Der Intel i860 64-Bit-Prozessor: eine allgemeine CPU mit 3D-Grafikfunktionen". IEEE -Computergrafiken und Anwendungen. 9 (4): 85–94. doi:10.1109/38.31467. S2CID 38831149. Abgerufen 2010-11-19.
  4. ^ Zachary, G. Pascal (1994). Showstopper! Das Breakneck -Rennen zum Erstellen von Windows NT und die nächste Generation bei Microsoft. Warner Books. ISBN 0-02-935671-7.
  5. ^ "i860 Prozessor -Familienprogrammierer Referenzhandbuch" (PDF). Intel. 1991. Abgerufen 12. September, 2019.
  6. ^ "NEC bietet zwei 64-Bit-RISC-Mikroprozessoren mit hoher Kosten." (Pressemitteilung). NEC. 1998-01-20. Abgerufen 2011-01-09. Versionen des VR4300-Prozessors werden in Verbraucher- und Büroautomatisierungsanwendungen häufig verwendet, darunter das beliebte Nintendo 64TM-Videospiel und fortschrittliche Laserdrucker wie die kürzlich angekündigte, preisgekrönte Hewlett-Packard Laserjet 4000-Druckerfamilie.
  7. ^ "i860 64-Bit-Mikroprozessor". Intel. 1989. Abgerufen 30. November 2010.
  8. ^ "Atari Jaguar Geschichte". Atariage.
  9. ^ Joe Heinrich (1994). MIPS R4000 Mikroprozessor -Benutzerhandbuch (2. Aufl.). MIPS Technologies, Inc.
  10. ^ Richard L. Sites (1992). "Alpha AXP -Architektur". Digital Technical Journal. Digital Equipment Corporation. 4 (4).
  11. ^ Gwennap, Linley (3. Oktober 1994). "Ultrasparc entfesselt Sparc Performance". Mikroprozessorbericht. Microdesign -Ressourcen. 8 (13).
  12. ^ Bishop, J. W.; et al. (Juli 1996). "PowerPC als A10 64-Bit-RISC-Mikroprozessor". IBM Journal of Research and Development. IBM Corporation. 40 (4): 495–505. doi:10.1147/rd.404.0495.
  13. ^ Gwennap, Linley (14. November 1994). "PA-8000 kombiniert Komplexität und Geschwindigkeit". Mikroprozessorbericht. Microdesign -Ressourcen. 8 (fünfzehn).
  14. ^ F. P. O'Connell; S. W. White (November 2000). "Power3: Die nächste Generation von PowerPC -Prozessoren". IBM Journal of Research and Development. IBM Corporation. 44 (6): 873–884. doi:10.1147/rd.446.0873.
  15. ^ "Durch die Enthüllung von Details des Isaiah-Prozessorkerns der nächsten Generation". Über Technologies, Inc. archiviert aus das Original Am 2007-10-11. Abgerufen 2007-07-18.
  16. ^ "ARMV8 -Technologievorschau" (PDF). 31. Oktober 2011. archiviert von das Original (PDF) am 11. November 2011. Abgerufen 15. November, 2012.
  17. ^ "Arm startet die Cortex-A50-Serie, die weltweit energieeffizientesten 64-Bit-Prozessoren" (Pressemitteilung). Armhoteln. Abgerufen 2012-10-31.
  18. ^ "Arm Keynote: Arm Cortex-A53 und Arm Cortex-A57 64bit ARMV8-Prozessoren gestartet". ArmDevices.net. 2012-10-31.
  19. ^ Stefan Berka. "Unicos -Betriebssystem". www.operating-system.org. Archiviert Aus dem Original am 26. November 2010. Abgerufen 2010-11-19.
  20. ^ Jon "Maddog" Hall (1. Juni 2000). "Mein Leben und freie Software". Linux Journal.
  21. ^ Andi Kleen. Portierung von Linux auf x86-64 (PDF). Ottawa Linux Symposium 2001. Status: Der Kernel, Compiler, Werkzeugkette. Die Kernelstiefel und arbeiten am Simulator und werden zum Portieren von Userland und zum Ausführen von Programmen verwendet
  22. ^ a b John Siracusa (September 2009). "Mac OS X 10.6 Schneeleopard: Die ARS Technica Review". ARS Technica. p. 5. Archiviert Aus dem Original am 9. Oktober 2009. Abgerufen 2009-09-06.
  23. ^ Joris Evers (5. Januar 2005). "Microsoft Nixes Windows XP für Itanium". Computerwelt. Archiviert von das Original am 18. Juni 2013. Abgerufen 17. Oktober 2017.
  24. ^ "Microsoft erhöht das Tempolimit mit der Verfügbarkeit von 64-Bit-Editionen von Windows Server 2003 und Windows XP Professional" (Pressemitteilung). Microsoft. 25. April 2005. Abgerufen 10. September, 2015.
  25. ^ "Uefi_on_dell bizclient_platforms" (PDF).
  26. ^ "AMD64 Programmierer Handbuch Volume 2: Systemprogrammierung" (PDF). Moderne Mikrogeräte. Dezember 2016. p. 120.
  27. ^ "Intel 64 und IA-32 Architekturen-Softwareentwicklerhandbuch Volume 3A: Systemprogrammierhandbuch, Teil 1" (PDF). Intel. September 2016. p. 4-2.
  28. ^ "Power ISA Version 3.0". IBM. 30. November 2015. p. 983.
  29. ^ "Oracle Sparc Architecture 2015 Entwurf D1.0.9". Orakel. p. 475.
  30. ^ "Armarchitektur Referenzhandbuch ARMV8 für ARMV8-A-Architekturprofil". S. D4-1723, D4-1724, D4-1731.
  31. ^ Mashey, John (Oktober 2006). "Der lange Weg zu 64 Bit". ACM -Warteschlange. 4 (8): 85–94. doi:10.1145/1165754.1165766. Abgerufen 2011-02-19.
  32. ^ "Windows 7: 64 Bit gegenüber 32 Bit?". W7 Foren. Archiviert Aus dem Original am 5. April 2009. Abgerufen 2009-04-05.
  33. ^ "Häufig gestellte Fragen zum Java Hotspot VM". Sun Microsystems, Inc. Archiviert Aus dem Original am 10. Mai 2007. Abgerufen 2007-05-03.
  34. ^ "Eine Beschreibung der Unterschiede zwischen 32-Bit-Versionen von Windows Vista und 64-Bit-Versionen von Windows Vista". Abgerufen 2011-10-14.
  35. ^ Mark Russinovich (2008-07-21). "Drücken Sie die Grenzen der Fenster: Physischer Speicher". Abgerufen 2017-03-09.
  36. ^ Chappell, Geoff (2009-01-27). "Lizenzierter Speicher in 32-Bit-Windows Vista". Geoffchappell.com. WP: SPS. Abgerufen 9. März 2017.
  37. ^ "Inside native Anwendungen". Technet.microsoft.com. 2006-11-01. Archiviert Aus dem Original am 23. Oktober 2010. Abgerufen 2010-11-19.
  38. ^ Lincoln Spector (12. August 2013). "Führen Sie ein altes Programm auf einem neuen PC aus".
  39. ^ Peter Seebach (2006). "Erforschen Sie die 64-Bit-Entwicklung auf Power5: Wie tragbar ist Ihr Code wirklich?".
  40. ^ Henry Spencer. "Die zehn Gebote für C -Programmierer".
  41. ^ "Die Geschichte von dumpfer und blunder". DataCenterworks.com. Abgerufen 2010-11-19.
  42. ^ "ILP32- und LP64 -Datenmodelle und Datentypgrößen". Z/OS XL C/C ++ - Programmierhandbuch.
  43. ^ a b c "64-Bit-Programmiermodelle". Abgerufen 2020-06-05.
  44. ^ "Verwenden der ILP64 -Schnittstelle vs. LP64 -Schnittstelle". Intel. Abgerufen 24. Juni, 2020.
  45. ^ a b "Cray C/C ++ Referenzhandbuch". August 1998. Tabelle 9-1. Cray Research Systems Datentyp Mapping. Archiviert von das Original am 16. Oktober 2013. Abgerufen 15. Oktober, 2013.
  46. ^ a b "Cray C und C ++ Referenzhandbuch (8.7) S-2179". Abgerufen 24. Juni, 2020.
  47. ^ "Abstrakte Datenmodelle - Windows -Anwendungen". 30. Mai 2018.
  48. ^ "ILP32 für AArch64 Whitepaper". Arm Limited. 9. Juni 2015. Archiviert vom Original am 30. Dezember 2018. Abgerufen 9. Oktober, 2018.
  49. ^ "Apple -Geräte im Jahr 2018". Woachk, Sicherheitsforscher. 6. Oktober 2018.

Externe Links