Es ist eine nicht ganz einfache Frage. Ein x Bit Prozessor wird allgemein als ein Prozessor verstanden der x Bit gleichzeitig bearbeiten kann. Leider gibt es drei Kriterien an denen man das festmachen kann, und da dies auch für die Performance wichtig ist sollen sie erklärt werden :
Die Breite der internen Register
Um Daten zu verarbeiten zu können und Zwischenergebnisse zu speichern, hat jeder Prozessor eine Anzahl an internen Speicherzellen, die sogenannten Register. Jedes Register hat eine feste Breite die angibt wie groß die Daten sein können die mit einem Befehl verarbeitet werden können. Ein 32 Bit Prozessor kann z.B. Zahlen von 0 bis über 4 Milliarden in einem Rutsch addieren, während ein 16 Bit Prozessor dies nur bis 65535 kann, d.h. größere Zahlen in zwei Schritten bearbeiten muss. Dies ist das zuverlässigste Kriterium mit den wenigsten Ausnahmen. Leider gibt es aber schon hier Ausnahmen, so verfügen 16 und 8 Bit Prozessoren über die Fähigkeit manche Register zusammenzuschalten und einige Befehle mit größeren Daten durchzuführen. Der Zilog Z8000 Prozessor war z.B. nominell ein 16 Bit Prozessor, konnte aber seine Register auch in 8 Bit teilen oder jeweils zwei oder vier zu 32 und 64 Bit zusammen fassen. Man hat in jedem Falle aber eine höhere Geschwindigkeit wenn die internen Register breiter sind, als wenn man kleinere Register kombiniert.
Der Datenbus
Jeder Prozessor muss die Daten in den Registern auch in den Speicher schreiben. Am besten ist es wenn der Datenbus daher die Breite der Register hat. Vor allem bei Intel Prozessoren findet man hier jedoch Ausnahmen. Entweder der Datenbus ist kleiner, weil Zusatzbausteine, die weniger breiten Datenpfade verarbeiten preiswerter sind. Dies geschah so beim 8088 (16 Bit Prozessor mit 8 Bit Datenbus) und 80386 SX (32 Bit Prozessor mit 16 Bit Datenbus), oder er ist breiter, so bei allen x86 Prozessoren ab dem Pentium. Diese haben einen 64 Bit Datenbus, damit man mehr Daten auf einmal vom Speicher abrufen kann.
Der Adressbus
Außer Daten muss auch dem Speicher gesagt werden, von wo man Daten haben will. Dazu wird eine Adresse angelegt, die von 0 hochgezählt wird. Da 8 Bitter normalerweise nur 256 Bytes über ein Register adressieren könnten hatten diese einen 16 Bit Adressbus. Der Adressbus war also doppelt so breit wie der Datenbus. Bei 16 Bittern gab es 20 oder 24 Bit Adressen und nur 32 Bitter haben in der Regel 32 Bit Adressen. Allerdings verfügen nur wenige 64 Bitter über 64 Bit Adressen, der Itanium z.B. nur über 44 Bit für den Adressraum. Der größere Adressraum ist für viele Anwendungen das entscheidende, denn vor allem Server mit Datenbankanwendungen können nie genug Speicher haben. 4 GByte wie sie mit 32 Bit möglich sind reichen da oft nicht aus.
Mehr Geschwindigkeit durch 64 Bit ?
In der Vergangenheit war es immer so, das 16 Bitter schneller als 8 Bit waren oder 32 schneller als 16. Sind nun 64 schneller als 32 ? So einfach ist das nicht. Zum einen resultieren die höheren Geschwindigkeiten dadurch das die Prozessorhersteller ihre alten Prozessoren mit weniger Bits nicht weiterentwickelten. Natürlich waren dadurch die neuen Prozessoren schneller. Das ist bei der derzeitigen Architektur nicht so : Intel wird die x86 Linie noch mindestens 5 Jahre weiter entwickeln und diese 32 Bit Prozessoren haben ähnliche Leistungsbereiche wie 64 Bit Prozessoren. Zum anderen kommt es darauf an welche Daten verarbeitet wird. Es gibt folgende Arten von Daten :
Zahlen : Zum einen Koordinaten (Bildschirm), Rohdaten (Pixeln in 8, 16 oder 24 Bit) oder zum Berechnen : Hier haben wir den Fall das 8 Bit fast immer zu wenig sind - Man kann bei Berechnungen schon 200+200 nicht zusammenzählen. 16 Bit reichen aus für viele Berechnungen, Schleifen und auch für Koordinaten von Bildschirm oder High Color Bilder. 32 Bit reichen heute für fast alles aus was man mit Integer Zahlen machen kann. Sicher es gibt einige wenige Fälle wo man mit sehr großen integer Werten rechnen muss, doch dann weicht man oft auf Fliesskommazahlen aus.
Zeichen : Textverarbeitung, Das Extrahieren von Daten aus Datenbanken, Sortieren, Suchen - Das alles geschieht bei den heutigen Systemen in der Regel auf Basis von Zeichensätzen, in der Regel byteweise. Systeme auf Unicode Basis verwenden 16 Bit Codierung - Doch schon hier ist klar das ein 32 Bit Prozessor dies nicht wird schneller machen können.
Adressen : Adressen liegen immer in der Breite vor die der Prozessor als Register hat.
Multiple Daten : Viele Prozessorhersteller suchten nach Wegen die breiten Prozessorregister effektiver zu nutzen, indem sie zwei oder vier kleinere Zahlen auf einmal mit der selben Instruktion bearbeiteten. Das findet z.B. Anwendung beim Streamen von Audio und Video, bei entsprechenden Befehlen könnten aber auch Texte schneller durchsucht oder kopiert werden. Dieses Konzept wird als SIMD bezeichnet.
Nun klar ist das zuerst einmal 64 Bit nicht viel mehr bringt als 32 Bit wenn die meisten Daten nicht 64 bittig vorliegen. Allenfalls die SIMD Operationen profitieren von einer größeren Verarbeitungsbreite.
Ein anderes Kapitel ist das der Fliesskommaberechnung. Standardisiert sind hier 32 und 64 Bit, ein weiteres Format sind 80 Bit. Für 32 Bit Prozessoren bedeuten 64 und 80 Bit, dass der Prozessor die Daten in zwei oder drei Zyklen einholen muss. Ein 64 Bit Prozessor kann das wichtige 64 Bit Format (15 Stellen Genauigkeit) nativ berechnen und ist so schneller - Ein Grund warum bei Fliesskommabenchmarks 64 Bit Prozessoren führend sind. Dies ist wichtig für Simulationen, Computergrafik oder wissenschaftliche Anwendungen - weniger für den normalen Desktop Benutzer. Aus diesem Grund waren Supercomputer von Cray schon immer 64 Bit Maschinen, und aus dem gleichen Grund gibt es heute keine 128 Bit Rechner.
Für Finanzmathematische Dinge - die heute allerdings nicht mehr die Rolle spielen wie vor 20 Jahren - wäre noch interessant, das man in 64 Bit Zahlen alle Währungen der Welt verlustfrei umrechnen kann. Das Problem bei Finanziellen Programmen ist dass sie gar keine Rundungsfehler haben dürfen. Dazu eignen sich Fliesskomazahlen nicht und 32 Bit Integers auf der Basis von 1 Cent machen bei ca 21 Millionen schlapp wegen des Überlaufes. Daher verwenden ältere Programmiersprachen wie COBOL BCD Zahlen, dabei werden die Zahlen wie im Dezimalsystem stellenweise gespeichert und jeweils nach Rechnungen konvertiert. Das dauert und mit 64 Bit Zahlen kann man einen Zahlenbereich von 19 Stellen ausschöpfen - genug um die Verschuldung der USA in Yen auszudrücken und noch ein paar Potenzen Sicherheit zu haben.
Mehr Speicher !
Die meisten 32 Bit Prozessoren können 4 Gigabyte direkt adressieren. Das ist nicht mehr arg weit von dem entfernt was heute ein normaler Desktop PC an Speicher hat. (Unter Windows sind übrigens nur max. 2 GB für Anwendungen verfügbar. Der Rest wird von Windows belegt). Für Server die Daten von Datenbanken puffern müssen, und mehrere Clients bedienen müssen, ist es aber nicht so viel. Daher ist auch heute schon die Domäne von 64 Bit Systemen der Betrieb als Server. Dies ist der eigentliche Vorteil von 64 Bit Systemen. Der Adressbereich von 64 Bit reicht bei einer Verdopplung alle 18 Monate für mindestens 48 Jahre aus. Ein Sun 15K Rechner z.B. wird standardmäßig mit 288 GByte Speicher ausgeliefert.
Lesezeichen