Ansicht umschalten
Avatar von Pickwick81
  • Pickwick81

mehr als 1000 Beiträge seit 12.07.2002

Re: Wie kann man 32 bit auf 64 bit umstellen?

Toni84 schrieb am 08.06.2016 00:25:

Es geht ausschließlich um die Übertragungsbreite von Adressen, und zwar in einem Takt.

Auch das ist natürlich grober Unfug und lässt sich leicht widerlegen:

x86-64 also provides 64-bit general-purpose registers and numerous other enhancements.

https://en.wikipedia.org/wiki/X86-64
https://en.wikipedia.org/wiki/X86-64#Architectural_features

Zum Thema Speicheradressierung:

The AMD64 architecture defines a 64-bit virtual address format, of which the low-order 48 bits are used in current implementations.

The original implementation of the AMD64 architecture implemented 40-bit physical addresses and so could address up to 1 TB (240 bytes) of RAM.[1](p24) Current implementations of the AMD64 architecture (starting from AMD 10h microarchitecture) extend this to 48-bit physical addresses

Also rein praktisch nischt mit 64 Bit, stattdessen gab es aber vorher bereits:

PAE was first introduced in the Pentium Pro. It defines a page table hierarchy of three levels, with table entries of 64 bits each instead of 32, allowing these CPUs to access a physical address space larger than 4 gigabytes (232 bytes).

https://en.wikipedia.org/wiki/Physical_Address_Extension

Wie immer in solchen Fällen also einfach erst mal in die Wikipedia gucken. Kostet in der Regel nur ein paar Minuten und meistens lernt man was.

Hier wird aber leichter deutlich, worum es bei 64 Bit Adressen geht:

Blöd nur, dass es bei x86-64 eben nicht ausschließlich und schon gar nicht "vor allem" um Adressen geht.

Es geht quasi um die Breite des Adressfensters im Briefumschlag. ;-)

Höchstens "auch".

Wenn 32 Stellen nicht mehr ausreichen, jede Adresse genau zu beschreiben,
wenn ein Programm Dinge anspricht, für deren Adressen mehr als 32 Stellen
benötigt werden, dann MUSS alles auf mehr als 32 Stellen umgestellt werden.

Das ist in jeder Hinsicht einfach falsch, weder braucht man zwingend einen Datentyp mit 64 Bit Wertebereich, noch muss eine CPU einen solchen Datentyp in ein Register quetschen können. Das kannste dir auch ganz leicht selbst überlegen: Seit wann ist x86-64 so gängig? Seit wann ist tatsächlich 64 Bit-Software dafür so gängig? Aber seit wann gibt es beispielsweise Dateisysteme und Zeitberechnungen, die mit 64 Bit oder zumindest mehr als 32 Bit arbeiten? Richtig, schon viel, viel länger, sonst könnteste deine >4 GB großen Pornos von früher nämlich abschminken und nur in Häppchen speichern. :-) Was macht man also? Ganz einfach, die CPU verarbeitet 64 Bit-Datentypen im Zweifel einfach in mehreren Schritten oder man kombiniert 2 32 Bit-Datentypen zu einem logischen mit 64 Bit und muss dann bei dessen Nutzung einfach aufpassen usw. Und einzelne Datenblöcke in Dateien sind natürlich auch nichts anderes als Adressen.

Und weil die Informatiker das nie wieder ändern wollten, haben sie maßlos übertrieben,
und die maximale Adresslänge gleich verdoppelt. Damit können wir dann so ziemlich
jedes Sandkorn auf der Erde direkt und ohne Umschweife adressieren.

Das ist natürlich Quatsch, wenn man von übertrieben reden möchte, dann bei IPv6 und ZFS, die auf 128 Bit ausgelegt sind, was du wahrscheinlich auch verwechselst, denn nur bei IPv6 liest man immer wieder was von Sandkörnern, aber doch nicht bei Arbeitsspeicher. Natürlich wird man das in ein paar Jahrzehnten wieder ändern.

Es gibt aber z.B. Grafik-Programme, die metergenau ganz Europa abbilden
wollen, und bei solchen dürfte es mit 32 Bit schon knapp werden, d.h.
so ein Bild paßt dann nicht mehr auf einmal in 4 GB RAM. Und dann wird
z.B. die Berechnung der Wetterkarte sehr aufwändig

Dieses Beispiel ist einfach ganz großer Käse, denn selbst wenn man 64 GB RAM im System hat, heißt das doch nicht, dass man die unbedingt füllen muss oder auch braucht, nur um irgendeinen Kartenausschnitt anzuzeigen. Das ist doch alles Quatsch, eine Anwendung kann natürlich metergenaue Darstellungen von Europa berechnen und anzeigen, einfach, weil man die rein praktisch ohnehin nie vollständig auf dem Bildschirm braucht. Alles andere wäre doch mehr CPU-Verschwendung als vom Arbeitsspeicher und macht man bei Dateien usw. doch auch nicht. Deine >4 GB großen Pornos in Dateiform werden auch nicht komplett in den RAM geladen, nur weil du Heidi ab Minute 45 bis Minute 60 gerammelt sehen willst.

Mal ganz zu schweigen von Techniken wie PAE und/oder der Nutzung mehrerer Prozesse und alles, um einfach mehrfach beispielsweise 32 Bit-Adressraum für eine Anwendung zu nutzen. Gab es alles schon, hat auch alles funktioniert.

Das Posting wurde vom Benutzer editiert (08.06.2016 09:34).

Bewerten
- +
Ansicht umschalten