64-Bit-Prozessor (AMD64 / iA-64)
Die 64 Bit beziehen sich auf den physisch ansprechbaren Adressraum des Arbeitsspeichers. Bei 32 Bit sind das maximal 4 GByte, die sich direkt und ohne Umwege ansprechen lassen. Doch bei den meisten Motherboards ist schon bei etwas über 3 GByte Schluss. Bei einem 32-Bit-Betriebssystem lohnt es sich nicht, mehr als 3 GByte Arbeitsspeicher einzubauen. Bei einer normalen Nutzung ist das auch gar nicht notwendig. Für einen Server dagegen sind 4 GByte viel zu wenig. Dort ist der Speicherbedarf viel größer. Deshalb setzt man hier schon länger 64-Bit-Prozessoren ein.
Wenn man bedenkt, dass sich der Speicherbedarf alle paar Jahre verdoppelt, dann erkennt man schnell, dass hier ein echter Bedarf an 64 Bit besteht.
iA-32/x86-Architektur
Die Bezeichnung iA-32 entstand zur Abgrenzung gegenüber der iA-64-Architektur. Davor wurde sie noch als x86-Architektur bezeichnet. Sie wurde mit dem 80386 eingeführte, der den 16-Bit-Befehlssatz seiner Vorgänger erweiterte. iA-32 zeichnet sich dadurch aus, dass jeder neue Prozessor zu seinen Vorgängern abwärtskompatibel war. Bereits vorhandene Programme können ohne Berücksichtigung von Geschwindigkeit und Speicher ausgeführt werden. Der Erfolgsfaktor der x86-Architektur ist die Kompatibilität und Austauschbarkeit. Computer-Besitzer können Software und Hardware fast beliebig nachrüsten.
Irgendwann wurde der Adressraum von iA-32 zu klein. Der Bedarf nach mehr Speicher ist im Laufe der Zeit gewachsen. Doch der größte Engpass liegt bei der Registergröße bzw. -anzahl. Mit MMX und SSE sind immer mal wieder Register dazugekommen, die aber nur für für Multimedia-Berechnungen (Grafik, Video und Spiele) geeignet waren.
64-Bit-Prozessor-Architekturen
Während Intel mit seinem 64-Bit-Konzept radikal mit bestehenden Prozessor-Architekturen brach, vollzog AMD die Erweiterung von 32 auf 64 Bit in nur sehr kleinen Schritten. Dabei kam ein bezahlbarer 64-Bit-Prozessor auf den Markt.
- AMD64
- iA-64
Man muss jedoch berücksichtigen, dass nicht alle 64-Bit-Prozessoren auch wirklich einen physischen Adressraum von 64 Bit haben. AMD nutzt von 64 Bit maximal 52 Bit. Der Athlon nur 40 Bit. Phenom II nur 48 Bit. Intel nutzt für seinen Core i7 nur 36 Bit für physische Adressen. Die Atoms beschränken sich sogar nur auf 32 Bit.
AMD64 von AMD
Die 64-Bit-Erweiterung von AMD basiert auf dem Athlon-Kern, der mehr und breitere Register bekam. Auf dieser Erweiterung läuft 32-Bit-Software im Kompatibilitätsmodus fast ungestört weiter. Sie profitiert sogar von den vielfältigen Verbesserungen. Für Programmierer der Betriebssysteme ist es ein Leichtes die Änderungen für die Speicherverwaltung vorzunehmen.
AMD integrierte einen Speichercontroller, der normalerweise im Chipsatz seine Arbeit verrichtet. Der Vorteil, der Zugriff auf den Arbeitsspeicher wird um einige Takte verkürzt. Neben der Bandbreite zum Speicher ist auch die Latenzzeit wichtig. Die Ausführungsgeschwindigkeit von Anwendungen hängt in erheblichem Maße von der Wartezeit ab, wenn die Daten aus dem Speicher nicht nacheinander folgen, sondern verteilt im Speicher liegen. Bei Mehrprozessor-Systemen bekommt jeder Prozessor seinen eigenen lokalen Speicher.
Modus | Betriebssystem | Anwendungen | Treiber | Integer-Register | SSE2-Register | FPU/MMX-Register |
---|---|---|---|---|---|---|
32 Bit native | 32 Bit | 32 Bit | 32 Bit | 8 | 8 | 8 |
64 Bit native | 64 Bit | 64 Bit | 64 Bit | 16 | 16 | 8 |
Kompatibilitätsmodus | 64 Bit | 32 Bit | 64 Bit | 8 | 8 | 8 |
iA-64 von Intel/HP
iA-64 ist die 64-Bit-Architektur von Intel und HP und wird unter anderem im Itanium von Intel eingesetzt. Mit der 32-Bit-Architektur (iA-32/x86) hat sie nichts mehr zu tun.
Bei iA-64 sind sehr viele neue Register dazugekommen, die alle 64 Bit breit sind. Genau genommen sind sie sogar 65 Bit breit. Das 65ste Bit hat die Bezeichnung "Not a Thing". Es kennzeichnet Registerwerte, die spekulativ in das Register geladen wurden. Bei den insgesamt 128 Registern braucht es dann auch keine Spezialregister mehr. Selbstverständlich eignen sich diese Register auch für die 8-Bit- oder 16-Bit-Verarbeitung. Mehr Register ist vor allem eine Anforderung, wenn Befehle und Daten parallel verarbeitet werden sollen.
Vor allem der große Adressraum ist bei der 64-Bit-Architektur interessant. Doch das bedeutet nicht, dass die Verarbeitungsseite 64 Bit breit ist. Das kann auch wesentlich weniger sein.
Viele typische Rechenoperationen beherrschen die iA-64-Prozessoren gar nicht mehr. Bestimmte Funktionen, wie Division, Wurzel und Sinus muss der Compiler per Softwarebibliothek bereitstellen. Das ist jedoch kein Nachteil. Üblicherweise arbeiten Gleitkommaeinheiten bei diesen Befehlen mit einem Software-Algorithmus, der fest im Mikrocode eingebrannt ist. Diese Recheneinheiten sind während der Berechnung belegt. Die Software-Bibliothek ermöglicht es dem Compiler die Funktionen zu optimieren. Ein weiterer Vorteil ist die Möglichkeit einen Bug per Software-Update aus der Welt zu schaffen.
Intel stattete iA-64 mit einer Hardware-Emulation und PC-Virtualisierung aus, um sie zu iA-32 voll kompatibel zu machen. Dabei werden sogar Eigenheiten, wie das A20-Gate und DMA unterstützt. Für das Betriebssystem Windows ist diese Unterstützung sinnvoll. Für Linux ist es unnötig.
Ein Nachteile von iA-64 ist der verschwenderische Umgang mit Ressourcen. Prädikation und Spekulation beschäftigen viele Einheiten auch dann, wenn sie nicht gebraucht werden. Die Prozessoren auf Basis von iA-64 verbrauchen deshalb sehr viel Strom und heizen den Prozessor auf. Die Zukunftsfähigkeit einer Prozessor-Generation ohne energiesparende Architektur ist allerdings sehr begrenzt.
EPIC - Exlici Parallel Instruction Computing
Moderne Prozessoren verteilen die anstehenden Aufgaben auf viele parallel arbeitende Einheiten. Während anfangs ein sehr komplexe Hardware jedes mal aufs Neue jeden Befehl analysiert und versucht diesen parallel auszuführen, ist bei EPIC das die Arbeit des Compilers. Er hat die Aufgabe, mit allen Mitteln den Code möglichst optimal in parallel ausführbare Befehlsketten zu zerlegen.
Dabei müssen einige Regeln beachtet werden. In der IA-64-Architektur besteht eine Befehlskette aus drei Befehlen zu je 41 Bit. Dazu kommen noch 5 Bit, die Auskunft über die Befehle geben und Informationen über das Ende der Parallelität enthalten. Zwischen den parallel ausgeführten Befehlen darf keine Abhängigkeit bestehen. Ist das doch der Fall, unterbricht der Prozessor den Programmablauf.
Eine wichtige Eigenschaft von EPIC ist die Prädikation. Mit deren Hilfe kann der Compiler bedingte Programmverzweigungen vermeiden. Solche Verzweigungen führen bei falscher Sprungvorhersage dazu, dass sie Verzögerungen im Ablauf hervorrufen.