Anzeige:
Seite 1 von 2 12 LetzteLetzte
Ergebnis 1 bis 15 von 24

Thema: Warum sind 64Bit schneller als 32?

  1. #1
    Registrierter Benutzer
    Registriert seit
    28.08.2003
    Ort
    Frankfurt am Main
    Beiträge
    8

    Warum sind 64Bit schneller als 32?

    Auf den ersten Blick mutet die Frage etwas seltsam an, aber warum genau ist es denn eigentlich so, das ein Prozessor, der 64Bit lange Register hat, schneller arbeitet als ein Rechner mit 32Bit. Dass er mit 64Bit großen Bussen zu den Registern natürlich schneller ist, ist klar, während eines Zykluses können mehr Daten transportiert werden.

    Warum ist es aber auch ein Vorteil, wenn die Rechenregister des Prozessors 64Bit lang sind?
    Ich kann auch Alkohol trinken, ohne Spaß zu haben

  2. #2
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638
    Prinzipiell muß ein 64-bit Prozessor nicht schneller sein als ein 32-bit Prozessor. Er ist es nur durch die Evolution, sozusagen automatisch. Ein 64-bit Prozessor hat nur den Vorteil, dass er genauer ist. Die Frage die siche jetzt hier stellt ist: Wer braucht das? Ich denke die meisten Anwender nicht.
    Das eigentliche (oft verschwiegene) Problem ist, dass 64-bit Prozessoren mehr Speicher brauchen als 32-bit Prozessor, eigentlich logisch, denn es werden ja pro Operand und pro Befehl 32-bit mehr benötigt, also doppelt so viel. Konkret heißt dies ein System, welches bisher mit 1 GiB Speicher bisher ausreichend bis gut dimensioniert war, braucht bei einem 64-bit Prozessor, um die gleiche Leistungsfähigkeit zu erreichen, 2 GiB Speicher.

    Deswegen habe ich bei mir in der Firma z.B. aktuell auch einen "alten" PowerMac G4 mit 1 GiB RAM bestellt anstatt eines PowerMac G5. Denn ersten ist der G4 billiger und zweitens wahrscheinlich mehr als ausreichend. Also wie bei Windows gilt auch bei Macs lieber mehr Speicher als besserer Prozessor, denn dies ist in der praktischen Anwendung mehr. (Ausnahme: rechenintensive Prozesse wie mathematische, physikalische, ... Berechnungen; aufwendige Filter; animated Movies)

    Pingu

  3. #3
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182

    Hmm...

    ...................
    Geändert von Lin728 (19-08-2017 um 22:58 Uhr)

  4. #4
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Den Leistungsgewinn den z. B. der AMD Opteron erziehlt gibts ja auch im 32 Bit-Modus. Er ist vor allem auf das schnelle Bussystem (Hypertransport), die neuen SSE-Einheiten (gabs bei AMD vorher nicht), den in den Prozessor integrierten Speichercontroller (Northbridge? oder so ) und ähnliches zurückzuführen.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  5. #5
    Registrierter Benutzer
    Registriert seit
    18.01.2002
    Beiträge
    77
    MacTV hat ein nettes Video mal dazu gemacht.

    Solange keine Zahlen über 2^32 benutzt werden sind 64bit-Prozessoren kein Stück schneller als ihre 32bit-Kollegen, nur weil sie 64bit haben. Vielleicht sogar langsamer.

    Sie sind nur schneller wenn Zahlen über 2^32 benutzt werden. 32bit-Prozessoren müssen hier die Zahl teilen usw. damit sie sie verarbeiten können. 64bit-Prozessoren können das in einem Rutsch.
    SIG kostet 19 Euro extra!

    MfG
    -Nuke-

  6. #6
    Registrierter Benutzer
    Registriert seit
    28.08.2003
    Ort
    Frankfurt am Main
    Beiträge
    8
    In einem Forum habe ich folgendes gefunden - ob es Quatsch ist oder nicht, keine Ahnung, hörte sich aber vernünftig an:

    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.

    Was mich mal interessieren würde, wären ein paar Assemblercodebeispiele, die auf 32 und 64 Bit praktisch gleichschnell laufen und einige, die unterschiedlich schnell laufen.
    Ich kann auch Alkohol trinken, ohne Spaß zu haben

  7. #7
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Für was für 64/32 bitter denn?
    Da gibts jede Menge verschiedener Architekturen, deren Assembler sich unterschiedet, die verschieden schnell laufen, etc

    Ausserdem kannst du sowas kaum fair vergleichen - denn immer spielen auch noch externe Komponenten eine Rolle (Chipsatz, Speicher, Bussystem) - du kannst halt einfach nie die reine Prozessorgeschwindigkeit messen - das einzige System wo einigermassen ein Vergleich 32/64bit möglich wäre ist derzeit der AMD Opteron. Aber sowas hab ich bisher noch nirgends gefunden.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  8. #8
    Registrierter Benutzer
    Registriert seit
    17.09.2001
    Beiträge
    1.182

    32/64 Bit vergleich...

    das Linux-Magazin hat einmal MySQL einmal in 32Bit kompiliert und getestet und einmal in 64bit.
    In 64Bit war der Code so zwischen 10 und 30% schneller.
    Geändert von Lin728 (19-08-2017 um 22:58 Uhr)

  9. #9
    Registrierter Benutzer
    Registriert seit
    22.08.2002
    Ort
    Nürnberg
    Beiträge
    638

    Re: 32/64 Bit vergleich...

    Original geschrieben von ceisserer
    das Linux-Magazin hat einmal MySQL einmal in 32Bit kompiliert und getestet und einmal in 64bit.
    In 64Bit war der Code so zwischen 10 und 30% schneller.
    Und was für ein Prozessor wurde verwendet? EIn CISC oder ein RISC?
    Denn wie in dem oben genannten Artikel und ich auch schon beschrieben habe, hat 32-bit und 64-bit prinzipiell nichts mit der Schnelligkeit sondern nur mit der Genauigkeit zu tun. Am besten ist dies bei einem reinen RISC Prozessor zu sehen. Bei einem CISC Prozessor gibt es in der 64-bit Variante meistens neue Befehle die in einem Taktzyklus abgearbeitet werden, wohingegen der 32-bit Variante mehrere Zyklen benötigt.
    Ein anderer Grund ist auch, dass SIMD Operationen bei 64-bit Prozessoren schneller sind als bei 32-bit Prozessoren, weil während bei einem 32-bit Prozessor vielleicht 2 Befehle in einem Takt ausgeführt werden, kann die 64-bit Variante in einem Takt 4 Befehle ausführen.

    Deswegen prinzipiell ist ein 64-bitter nicht schneller als ein 32-bitter. Er ist nur genauer. Praktisch bitten heutige 64-bitter Möglichkeiten wie die SIMD Techniken, neue Befehle die in einem Zyklus ausgeführt werden können und natürlich optimiertere Layouts (Datenpfade) innerhalb des Chips. Was auch nicht zu unterschätzen ist, ist die Tatsache, dass 64-bit Prozessoren mit kleineren Strukturgrößen hergestellt werden als, 32-bit Prozessoren. Damit werden die Wege verkürzt was schnellere Abarbeitungsgeschwindigkeiten erlaubt (höhere Taktfrequenzen).

    Es sind also viele Punkte/Eigenschaften die zusammengenommen einen 64-bit Prozessor schneller erscheinen lassen. Bestes Beispiel ist der G5. MacOS X ist auf einem G5 wesentlich schneller als auf einem G4, obwohl MacOS X aktuell ein reines 32-bit System ist.

    Pingu

  10. #10
    Registrierter Benutzer
    Registriert seit
    28.08.2003
    Ort
    Frankfurt am Main
    Beiträge
    8
    Habe mal einem Prof für Informatik (Institut Prozessor-Löterei) aus Stuttgart geschrieben, der hat auch prompt geantwortet. Werde ihm noch einige Fragen stellen und die Konversation - so er es erlaubt - hier posten.
    Ich kann auch Alkohol trinken, ohne Spaß zu haben

  11. #11
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    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.
    Na zum Glück gibt es unter 32 Bit Systemen keine 64 bit Integer Datentypen,von Librarys mit Datentypen beliebiger Genauigkeit garnicht zu reden.
    Das scheint mir wirklich die Hauptdomäne für 64 bit Systeme zu sein.

    @Pingu
    Ein 64-bit Prozessor hat nur den Vorteil, dass er genauer ist.
    ...
    Deswegen prinzipiell ist ein 64-bitter nicht schneller als ein 32-bitter. Er ist nur genauer
    Wenn du das schon mehrmals erwähnst,wird es dir sicherlich nicht schwerfallen zu erklären,was du damit eigentlich meinst.

  12. #12
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Original geschrieben von wraith
    Na zum Glück gibt es unter 32 Bit Systemen keine 64 bit Integer Datentypen,von Librarys mit Datentypen beliebiger Genauigkeit garnicht zu reden.
    Was macht man denn, wenn man mit Zahlen grösser als 2^32 rechnen will? Matematica, Maple und Co kriegen das doch irgendwie hin. Oder ist das riesenkompliziert?

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

  13. #13
    Registrierter Benutzer
    Registriert seit
    24.06.2003
    Beiträge
    486
    Original geschrieben von peschmae
    Was macht man denn, wenn man mit Zahlen grösser als 2^32 rechnen will? Matematica, Maple und Co kriegen das doch irgendwie hin. Oder ist das riesenkompliziert?
    Meine Aussage war eigentlich ironisch gemeint (dachte das merkt man).

    In C gibt es den Datentyp long long (64 Bit Integer),und in anderen Sprachen wird es ähnliches geben.
    Ob der nun intern in 2 Registern gehalten wird,ist dabei ja egal.
    Und für noch höhere Genauigkeiten (mehr Stellenanzahl) gibt es ja genug Librarys.

    Darum,das Argument mit der höheren Genauigkeit bei 64 Bit Prozessoren hab' ich nicht verstanden.

  14. #14
    Registrierter Benutzer
    Registriert seit
    18.01.2002
    Beiträge
    77
    Genauigkeit im Integer-Bereich würde mich auch mal Interessieren. "1" ist meiner Meinung nach "1". Ob nun bei einem 64bitter oder einem 8bitter.
    SIG kostet 19 Euro extra!

    MfG
    -Nuke-

  15. #15
    Registrierter Benutzer Avatar von peschmae
    Registriert seit
    14.03.2002
    Ort
    Schweizland
    Beiträge
    4.549
    Original geschrieben von wraith
    Meine Aussage war eigentlich ironisch gemeint (dachte das merkt man).

    In C gibt es den Datentyp long long (64 Bit Integer),und in anderen Sprachen wird es ähnliches geben.
    Ob der nun intern in 2 Registern gehalten wird,ist dabei ja egal.
    Und für noch höhere Genauigkeiten (mehr Stellenanzahl) gibt es ja genug Librarys.
    ok, vom 64 bit longlong wusste ich noch nix. Das sind immerhin 19 Stellen

    Dass es dazu libs gibt hatte ich mir schon fast gedacht, aber die Frage ist eher: Wie machen die das?

    Darum,das Argument mit der höheren Genauigkeit bei 64 Bit Prozessoren hab' ich nicht verstanden.
    Ich auch nicht. Wenn schon im Bezug auf Fliesskommazahlen falls sich da was ändert - aber davon war ja nicht die Rede.

    MfG Peschmä
    The greatest trick the Devil ever pulled was convincing the world he didn't exist. -- The Usual Suspects (1995)
    Hey, I feel their pain. It's irritating as hell when people act like they have rights. The great old one (2006)

Lesezeichen

Berechtigungen

  • Neue Themen erstellen: Nein
  • Themen beantworten: Nein
  • Anhänge hochladen: Nein
  • Beiträge bearbeiten: Nein
  •