64-Bit-Architektur

Unter 64-Bit-Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt.

Inhaltsverzeichnis

Architekturen

64-Bit Prozessor

64-Bit-Architekturen besaßen bereits frühe Vertreter unter den Supercomputern:

  • IBM 7030 Stretch mit 64 Bit Wortbreite und 32 oder 64 Bit Befehlsbreite (1961)
  • CDC STAR-100 Vektorrechner, Nachfolger der 60-Bit-Rechner der Control Data Corporation (1974)
  • Cray-1, der erste 64-Bit-Vektorrechner, Vorläufer der Cray Supercomputerlinie (1976)
  • Elxsi 6400 sogenannter „Minisupercomputer“ mit 64-Bit-Datenpfaden, aber 32-Bit-Adressraum (1983)

Diese modernen Familien von Universalprozessoren sind ebenfalls auf 64-Bit ausgerichtet:

Design

Vereinfacht dargestellt bedeutet 64-Bit, dass die Prozessoren durch ihre ALU-Bauart so ausgelegt sind, dass 64 Bit (also 8 Byte) gleichzeitig bzw. während eines Taktes verarbeitet werden können. Das schließt die externe und interne Gestaltung von Datenbus und Adressbus, die Breite des Registersatzes mit ein. Weiterhin ist der Befehlssatz meistens durchgängig auf 64-Bit ausgelegt, sofern keine abwärtskompatiblen Altlasten (siehe X86-Architektur) vorhanden sind. Dies gilt analog für die gängigen Adressierungs-Arten, wobei die Bitbreite der Recheneinheit (ALU) sich prinzipiell von der der Adresseinheit unterscheiden kann (wie bei den meisten 64-Bit-CPUs).

In der PowerPC-Architektur wurde – im Gegensatz zu x86 – die Erweiterung auf 64-Bit von Anfang an vorgesehen, da diese CPU ursprünglich aus dem Bereich der Großrechner (IBM Power-Architektur) stammt. Auch für die MIPS-Architektur wurde frühzeitig eine 64-Bit-Erweiterung vorgesehen, in beiden Fällen erfolgte die Realisierung als Hardware erst einige Jahre später.

Vorteile

Die Vorteile von 64-Bit-CPUs liegen in der einfacheren Berechnung größerer Integer-Werte (durch die breitere ALU), was zum Beispiel Vorteile bei Verschlüsselungsalgorithmen, grafischen Berechnungen (zum Beispiel Festkommaarithmetik für Computerspiele), 64-Bit-Dateisystemen oder Multimediaformaten (MPEG2, MP3) mit sich bringt.

Ein weiterer Vorteil gegenüber einer 32-Bit-Architektur: Es können mehr als vier Gigabyte Arbeitsspeicher direkt adressiert werden (→ 4-GiB-Grenze), wovon Anwendungen mit hohem Speicherbedarf, wie Videoverarbeitung und Datenbanksysteme, profitieren. Mit 64 Bit lassen sich bis zu 16 Exbibyte adressieren, was derzeit (2011) und auf absehbare Zeit ausreichend ist, um nicht nur den verfügbaren Hauptspeicher, sondern auch den Festplattenspeicher (z.B. über mmap) zu adressieren.

Nachteile

Was für datenintensive Programme (beispielsweise bei Datenbank- oder Datei-Servern[4]) ein Vorteil ist, kann besonders bei kleinen Programmen zu Nachteilen hinsichtlich Speicherverbrauch und Geschwindigkeit führen.[5][6]

Alle Adresswerte sind bei 64-Bit-Architekturen mit 64 Bit doppelt so breit (statt 32 Bit bei den 32-Bit-Architekturen). Ihre Speicherung verbraucht daher im RAM und in den Caches doppelt soviel Platz. Auch andere Datentypen (z. B. long im LP64-Modell) beanspruchen auf 64-Bit-Architekturen doppelt so viel Platz wie auf 32-Bit-Architekturen. Offensichtlich wird dieses in den erzeugten Programmdateien, die im Vergleich zum 32-Bit-Programm typischerweise etwa 25 bis 30 Prozent größer sind[5] und dadurch auch RAM und Cache („Cache miss“) stärker belasten können. Hierdurch wird im ungünstigsten Fall die Ausführungsgeschwindigkeit der Programme um etwa den gleichen Faktor herabgesetzt. Dem wirken zum Beispiel bei AMD64 (und Intel 64) eine im Vergleich zu IA-32 stark erhöhte Registeranzahl entgegen, sodass auch ungünstige 64-Bit-Programme in der Praxis nicht wesentlich langsamer sind. Auch beherrschen viele 64-Bit-Architekturen eine IP-relative Adressierung mit vorzeichenbehafteten 32-Bit-Offsets, womit eine Zunahme der Befehlslänge verhindert werden kann.

Probleme

Ohne speziell angepasste Ausführungsumgebung kann allerdings kein Vorteil durch den Wechsel von 32-Bit- auf 64-Bit-CPUs gezogen werden. Dies wird insbesondere bei abwärtskompatiblen CPUs wie AMD Athlon 64 X2, AMD Phenom X3/X4, Intel Pentium D, Intel Pentium Extreme Edition, Intel Core 2 Duo, Intel Core 2 Quad, Intel Core i7 oder den 64-Bit PowerPC-CPUs deutlich. Dies betrifft nicht nur die Betriebssysteme mit 64-Bit-Systemkern zur Paging-Verwaltung mit großen Adressen, sondern auch die Hilfsbibliotheken der Programme mit den darin eingesetzten Algorithmen: Viele alte Systeme verwenden 32-Bit-optimierte Algorithmen, die erst nach Anpassung durch Programmierer von der 64-Bit-Erweiterung profitieren.

Die Notwendigkeit der Anpassung betrifft im Anwendungsbereich besonders mathematische Hilfsfunktionen (auch Multimedia und Spiele) aber auch die Speicherverwaltung. Viele Programme aus dem Unix-Bereich haben hierbei einen Vorsprung, da dort 64-Bit-Architekturen schon lange üblich sind. Über die Entwicklung der Workstations wurden im Unixbereich (einschließlich Linux) auch Desktopprogramme schon langjährig auf 64 Bit angepasst, bevor die Windowsprogramme auf die 64-Bit-Editionen von Windows angepasst wurden. Bei Mac OS X ist die Entwicklung gemischt, da der Unix-basierte Kern und die Desktopoberfläche aus verschiedenen Entwicklungszweigen stammen. Gerade letztere Systeme machen dabei Gebrauch von der Möglichkeit der abwärtskompatiblen CPUs, auf einem 64-Bit-Betriebssystemkern sowohl 32- und 64-Bit-Programme parallel auszuführen – diese haben jedoch das Problem, dass die Wechselwirkung der Programme auf dem Desktop gehemmt sein kann (bekannt etwa für Browser-Plugins).

Ähnlich wie bei SIMD oder AltiVec-Erweiterungen ist also auch für 64-Bit-Systeme in der Regel speziell angepasste Software nötig.

Jedoch verfügt nicht jedes System mit 64-Bit-Datenpfaden auch über 64-Bit-Adresspfade. Diese können im Extremfall weiterhin 32-Bit bleiben (Speicherausbau max. 4 GB).

Programmiermodell

Unter der Programmiersprache C schlägt sich die Anzahl der Bits sowohl bei der Größe der Zeiger-Typen (z. B. void*) als auch Integer-Typen (insbesondere int und long) nieder. Beim Übergang von einer 32-Bit-Architektur verbreitert man in der Regel Zeiger und long auf 64 bit, während der int auf 32 bit verbleibt. Dieses nennt man dann abgekürzt LP64. Zur Rückwärtskompatibilität mit der 32-Bit-Architektur, die meist als ILP32 ausgeführt wurde, hatte man teils auch long identisch mit int gelassen. Alle heutigen unixartigen 64-Bit-Betriebssysteme drücken die 64-Bit-Architektur in einem LP64-Typenmodell aus, Windows verwendet das LLP64-Modell.

Für einige Plattformen besteht die Möglichkeit, Programme von 32-Bit-Vorgängersystemen ohne Überarbeitung direkt auf einer 64-Bit-Plattform kompilieren bzw. ablaufen zu lassen. Die AMD64-Prozessoren (einschließlich Intel 64) etwa bieten hierfür einen 32-Bit-x86-Kompatibilitätsmodus. Um dies zu realisieren, enthalten die Prozessoren zusätzliche Komponenten für die Interpretation des 32-Bit-Befehlssatzes. Moderne Betriebssysteme aktivieren diesen Modus für die jeweiligen Prozesse – eine Markierung an der Programmdatei besagt, ob sie im erweiterten 64-Bit-Modus oder im kompatiblen 32-Bit-Modus auszuführen sind. Wo die Hardware keine Rückwärtskompatibilität anbietet, besteht auch die Möglichkeit, das Ziel der Ausführung von 32-Bit-Programmen über eine vergleichsweise langsame, softwarebasierte Emulation zu realisieren.

64-bit Datenmodelle[7]
Datenmodell short (integer) int long (integer) long long pointer Beispiel Betriebssystem
LLP64 16 32 32 64 64 Microsoft Win64 (X64/IA64)
LP64 16 32 64 64 64 Unix-Systeme (zum Beispiel Solaris) und Unixoide Systeme (zum Beispiel Linux)
ILP64 16 64 64 64 64 Cray, DEC/Alpha mit Tru64, DEC/Alpha mit Linux
SILP64 64 64 64 64 64 ?

Das ILP64-Datenmodell wurde eingeführt, da Quellcode von alter Software häufig unter der unzulässigen Annahme entwickelt wurde, dass ein int einen Zeiger halten kann. Es wird auf frühen 64-Bit-Systemen angefunden die schnell auf den Markt wollten ohne vorher vorhandenen Quellcode bereinigen zu müssen.

Weblinks

Einzelnachweise

  1. ftp.parisc-linux.org: PA-RISC 2.0 Architecture Specifications, Englisch, PDF-Datei
  2. AMD Releases x86-64 Architectural Specification, AMD spezifiziert seine 64-Bit-Architektur
  3. Craig Barrett confirms 64 bit address extensions for Xeon. And Prescott, The Inquirer Ankündigung der Intel 64 Architektur
  4. Mehr Performance: Linux mit 64-Bit-Programmen. Detaillierter Vergleich von 32-Bit- und 64-Bit-Anwendungsbenchmarks unter Linux.
  5. a b Are 64-bit Binaries Really Slower than 32-bit Binaries?, Englisch, Vergleich von 32-Bit- und 64-Bit-Programmen auf Solaris/SPARC.
  6. 32-bit vs 64-bit Performance Under Mac OS X. (engl.) Vergleich von 32-Bit- und 64-Bit-Programmen auf Mac OS X und Xeon Dual-Core, Core 2 Duo und PowerPC G5, 2 CPUs.
  7. http://www.unix.org/version2/whatsnew/lp64_wp.html

Wikimedia Foundation.

Schlagen Sie auch in anderen Wörterbüchern nach:

  • 64 Bit-Architektur — Unter 64 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 Probleme …   Deutsch Wikipedia

  • 64-bit — ist ein Attribut, das vielfältig im Bereich der Computertechnik verwendet wird. Es dient dort der Abgrenzung gleichartiger Techniken mit anderer Bitzahl, meist der halben oder doppelten Bitzahl (hier 32 Bit und 128 Bit). Ohne weiteren Kontext… …   Deutsch Wikipedia

  • 64-Bit — ist ein Attribut, das vielfältig im Bereich der Computertechnik verwendet wird. Es dient dort der Abgrenzung gleichartiger Techniken mit anderer Bitzahl, meist der halben oder doppelten Bitzahl (hier 32 Bit und 128 Bit). Ohne weiteren Kontext… …   Deutsch Wikipedia

  • 32-Bit-Architektur — Unter 32 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 32 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 …   Deutsch Wikipedia

  • 1-Bit-Architektur — Unter 1 Bit Architektur versteht man in der EDV Systeme, die in einem Arbeitstakt nur 1 Bit verarbeiten. Ein Beispiel einer echten 1 Bit Architektur, die tatsächlich als CPU produziert und vermarktet wurde, ist die MC14500 Industrial Control Unit …   Deutsch Wikipedia

  • 16-Bit-Architektur — Unter 16 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren wesentliche Wortbreite 16 Bit beträgt. Architekturen 16 Bit Prozessor Die PDP 11 war der erste 16 Bit Prozessor der Digital Equipment Corporation Die …   Deutsch Wikipedia

  • 8-Bit-Architektur — Unter 8 Bit Architektur versteht man in der EDV eine der folgenden Prozessor oder Mikrocontroller Architekturen: 8 Bit Mikrocontroller von Intel die 8008 und 8080 Modelle von MOS die 6502 Serie von …   Deutsch Wikipedia

  • 4-Bit-Architektur — Unter 4 Bit Architektur versteht man in der elektronischen Datenverarbeitung eine der folgenden Prozessor Architekturen: 4 Bit Prozessor D4004 von Intel das Modell 4004 von NEC die Prozessorfamilie uPD75X von Texas Instruments die Serie …   Deutsch Wikipedia

  • N-Bit-Architektur — Prozessorarchitektur [die; Mehrzahl architekturen] bezeichnet den Aufbau von Prozessoren. Eine integrierte Schaltung wird als Prozessor bezeichnet, wenn sie einen Akkumulator zum Ausführen boolescher Algebra in Form logischer Gatter oder… …   Deutsch Wikipedia

  • 64Bit-Architektur — Unter 64 Bit Architektur versteht man in der EDV eine Prozessorarchitektur, deren Wortbreite 64 Bit beträgt. Inhaltsverzeichnis 1 Architekturen 2 Design 3 Vorteile 4 Probleme …   Deutsch Wikipedia

Share the article and excerpts

Direct link
Do a right-click on the link above
and select “Copy Link”