[AWE] Was ist 64bit und was bringt es?

    • [AWE] Was ist 64bit und was bringt es?

      Wer in letzter Zeit auch nur mit einem halben Auge auf ArmA geschaut hat, der hat sicher mit bekommen, dass im letzten großen Update 1.68 der lang gewünschte 64bit Support in das Spiel implementiert wurde. Aber was heißt das jetzt genau und warum wird darum so ein großer Wirbel gemacht?

      Fangen wir erst mal an mit der Frage was 64bit überhaupt ist...
      Dazu muss man sich zuerst einmal klar machen, dass ein Computer im Binärsystem arbeitet. das bedeutet er kennt nur 1 und 0, was in den Schaltkreisen durch "Strom an" und "Strom aus" verwirklicht werden kann. Wenn man nur eine Leitung (ein bit) hätte, die pro Operation zur Verfügung stünde, so könnte man auch lediglich eine 0 und eine 1 transferrieren (2⁰ Möglichkeiten), was von sehr beschränkter Nützlichkeit wäre. Deswegen werden immer mehrere Leitungen kombiniert (mehrere bits) um mehrstellige Zahlen repräsentieren zu können. Denn im Binärsystem gilt nach wie vor: Je mehr Stellen ich für eine Zahl zur Verfügung habe, desto mehr Zahlen kann ich damit konstruieren.
      Ganz konkret lassen sich mit x bit genau 2x Zahlen darstellen (inklusive der Null). Und nur zum Verständnis: Operatoren und Befehle, die durch den Computer gejagt werden sind hier ebenfalls wie Zahlen zu behandeln, da auch sie in den Binärcode übersetzt werden um von A nach B geschickt zu werden (Auch für die Verarbeitung, aber das führt an dieser Stelle zu weit).
      Der bisherige Standard mit dem ArmA gearbeitet hat waren 32bit, dh 32 Leitungen die für eine einzige Zahl zur Verfügung stabden, womit dann also auf einen Schwung Zahlen bis zu 2³² darstellen ließen (Durch das Hinzuehemen von negativen Zahlen ändert sich das nochmal etwas, aber das ist uns an dieser Stelle egal). Das sind 4.294.967.296 Zahlen
      Mit den neuen 64bit sind es dann 2⁶⁴, was ausgeschrieben 18.446.744.073.709.551.616 Zahlen sind.


      Das bedeutet also salopp gesagt, dass man mit 64bit im Vergleich zu 32bit 4.294.967.296 mal so viele Zahlen darstellen kann.


      Aber was bringt denn das? Sogar 2³² ist schon so gewaltig, dass viele wahrscheinlich erstmal nachdenken müssen um überhaupt einen Namen dafür zu finden.

      Die Antwort ist dafür aber recht einleuchtend: Diese großen Zahlen werden hauptsächlich für die Speicheradressierung benötigt. Ein durchschnittlicher Arbeitsspeicher hat inzwischen 8-16 GB und ein Gigabyte sind 10⁹ Bytes. Um allerdings den Überblick behalten zu können muss der Computer jedes einzelnen Byte eindeutig identifiziern können, was durch simple Durchnummerierung erfolgt. Wenn man nun die 2³² Zahlen, die in einem 32bit System zur Verfügung stehen (~4∙10⁹) vergleicht, so stellt man fest dass ein 32bit System maximal 4GB Arbeitsspeicher addressieren kann. Das bedeutet auch wenn in dem Computer eigentlich 16 oder gar 32 GB Arbeitsspeicher stecken, können nur 4GB davon genutzt werden.

      Mit 64bit kann man grob 18∙10¹⁸ Zahlen darstellen, dh bis zu 18∙10⁸ GB Arbeitsspeciher können verwendet werden und das ist beim heutigen Stand der Technik mehr als genug.


      Wenn man sich das alles also vor Augen führt so bringt das 64bit Update für ArmA nur eine einzige Sache: Es kann der komplette Arbeitsspeciher, der in dem PC steckt benutzt werden und man ist nicht länger auf 4GB festgenagelt.

      Im Detail beseitigt das Nutzen von mehr Speicher aber auch folgende Punkte (zumindest in der Theorie):
      • Speicherfehler die zu Spiel- und Serverabstürzen geführt haben
      • "3 FPS" - Bug
      • Abprupte Frameeinbrüche, sobald es zur Sache kommt
      • Frameeinbrüche bei hohen Sichtweiten
      • Lange Ladezeiten


      Zusammenfassend bringt das 64bit Update vielleicht nicht die erhofften Performancesprünge auf allen Systemen, aber dafür beseitigt es die bisher am häufigst auftretenden Bugs in ArmA und dient längerfristig als Grundlage für weitere Verbesserungen.
      Wer sich noch ein bisschen mehr mit dem Thema beschäftigen will (hauptsächlich mit den Auswirkungen auf ArmA), der kann sich den neuesten ArmAWorld-Podcast ansehen. Da diskutieren wir nämlich genau über dieses Thema.

      Was haltet ihr von dem Update? Lang überfällig oder überflüssig? Lasst mal eure Meinung zu dem Thema hören.
      Entwickler von SQDev
      Co-Entwickler von OurAltis

      Dieser Beitrag wurde bereits 1 mal editiert, zuletzt von Raven ()

    • Kleine Zusatzinfo.
      Das wir mit 64Bit allgemein weniger Framedrops haben liegt größtenteils daran das Arma jetzt auch mehr als 4GB Grafikspeicher verwenden kann.
      Das konnte 32Bit Arma auch aber durch einen DirectX Bug wusste Arma garnicht das mehr als 4GB VRAM verfügbar sind. Einige Spielentwickler haben für diesen Bug komplexe Workarounds eingebaut aber das war für BI zu viel Aufwand und zu Fehleranfällig.
      Also diese Flüssigeren FPS hätten wir eigentlich schon seit Jahren haben können. Wäre da nicht dieser DirectX Bug gewesen.
      Bohemia hätte auch einfach auf den maxVRAM Startparameter hören und auf die Spieler vertrauen können. Aber dieser wurde absichtlich auf 3GB begrenzt... weil.. Bohemia.
    • Raven schrieb:

      dedmen schrieb:

      durch einen DirectX Bug wusste Arma garnicht das mehr als 4GB VRAM verfügbar sind.
      Das ist aber schon ein krasser Bug in DirectX... Warum hat den denn niemand gefixt? Wofür ist denn Microsoft so ein rießen Konzern?! ?
      Viele Spielentwickler beschweren sich am laufenden Band über DirectX. Genauso über den NVidia Support. Aber gegen so ein quasi Monopol kann man nicht viel machen.
    • dedmen schrieb:

      Aber gegen so ein quasi Monopol kann man nicht viel machen.
      Vulkan ftw! Dann muss Microsoft auch mal wieder seinen A**** bewegen xD

      @Yoshi So wie ich das jetzt verstanden habe funktioniert das aber nur für das Betriebssystem und alle Anwendungen bekommen tdem maximal 4GB RAM

      Wikipedia schrieb:

      The mapping is typically applied separately for each process so that the extra memory is useful even though no single regular application can access it all simultaneously.
      Außerdem kommt dann auch noch Windoof daher und liefert sowas ab:

      Wikipedia schrieb:

      Microsoft Windows supports PAE if booted with the appropriate option, but according to Geoff Chappell, Microsoft may limit 32-bit versions of Windows to 4 GB as a matter of its licensing policy.
      Laut Wikipedia sind die Windows Server die einzigen Systeme, die trotz 32bit über die 4GB raus kommen xD
      Entwickler von SQDev
      Co-Entwickler von OurAltis
    • @Raven: Ja und Nein.

      Erstmal: Sowohl Betriebssystem als auch Hardware (CPU) muss PAE unterstützen.

      Ein Prozess kann bei PAE mehr als 4 GB RAM beanspruchen, außer das System verwendet ein lineares Speichermodell (= flat memory).

      Bezüglich Windoofs:

      Zum einen ist es wegen Microsofts Vermarktungsspolitik so und zum anderen können Probleme mit Gerätetreibern auftreten (laut Microsoft).
      Deswegen ist da die Einschränkung.
      Cuiusvis hominis est errare, nullius nisi insipientis perseverare in errore.