64 Bit Prozessor

yxy

Lieutenant
Registriert
Juli 2014
Beiträge
556
Hi,

mal ein kleines Gedankenexperiment (dazu nehmen wir mal an, dass es keine anderen Hardware und Softwarebeschränlungen geben würde)

Als 64-Bit-Architektur werden Prozessorarchitekturen bezeichnet, die 64 Bit große Adressregister unterstützen. Sie sind damit in der Lage, einzelnen Prozessen größere (nicht segmentierte) Adressräume als 4 GByte zur Verfügung zu stellen. (Wiki).

D.h. ich könnte theoretisch einen RAM verbauen der 2^64 Byte besitzt, da ich ja 2^64 Adressen adressieren kann und nur jedes Byte einzeln adressiert wird. Das würde bedeuten ich kann mit dem maximal verbaubaren Speicher maximal die Zahl 2^(8*2^64)-1 darstellen.

Wäre das korrekt?
 
o0 Muss man jetzt nicht verstehen oder ?

Theorie und Praxis - Zwei völlig verschiedene dinge!
 
Die Antwort hast du ja bekommen (ist jetzt auch keine Raketenwissenschaft ...), und nun die Frage, und ich denke ich spreche hier fuer viele:

"Warum die Frage bzw. das Gedankenexperiment?"
 
  • Gefällt mir
Reaktionen: SVΞN und Tada100
"Warum die Frage bzw. das Gedankenexperiment?"

Weil wir in der Schule ein Rechnermodell annehmen, das als RAM ein Array haben soll das 2^64 Bytes speichern können soll.

Das wäre ja genau der obere Grenzfall, oder?
 
Grob überschlagen könnte eine 64 Bit CPU wohl Speichrgrößen im Exabyte-Bereich verwalten. Bis dieser Wert bei der tatsächlich realisierbaren Speichergröße erreicht wird, wird wohl noch eine Weile Zeit vergehen.
Ergänzung ()

znep schrieb:
Die vom Betriebssystem verwaltbare Speichmenge lässt sich durch entsprechende Programmierung erhöhen, jedoch nur bis zur Grenze, welche die Mathematik vorgibt. Bei einem 32 Bit Betriebssystem sind das eben nur 4 GB.
 
Zuletzt bearbeitet:
  • Gefällt mir
Reaktionen: Porky Pig
yxy schrieb:
Was übrigens der Zahl
775727

entsprechen würde. Zum Vergleich es gibt gerade mal ca. 10^78 Atome im bekannten Universum.
 
@yxy
wie bist du auf 2^(8*2^64)-1 gekommen?
eine 64-Bit Architektur hat einen maximalen Adressraum von 2^64 Byte. ggf. noch * 8Bit dazu nehmen, dann währen es 8Bit * 2 ^ 64.
Mehr geht hier nicht ohne irgendwelche Tricks anzuwenden, zB. mit PAGEs.
 
Es sind 8*2^64 Bits. Die Anzahl der Zahlen, die man mit dieser Anzahl an Bits darstellen kann ist dann 2^(8*2^64). Da man aber bei 0 anfängt zu zählen ist die größte Zahl, die man mit dieser Anzahl an Bits darstellen kann 2^(8*2^64)-1.

Oder einfacher: Mit 8 Bit kann ich 2^8 (oder 256) Zahlen darstellen 0 ... 255. Hier gilt das gleiche, nur das es nicht 8 sondern 8*2^64 Bits sind.
 
yxy schrieb:
die Zahl 2^(8*2^64)-1 darstellen
Da geht es mir wie Aliosy:
Aliosy schrieb:
wie bist du auf 2^(8*2^64)-1 gekommen?
Es sind 2^64 Byte, wieso nochmal 2^ diesen Wert und wo kommen die 8 her? Die - 1 macht keinen Sinn, da es auch die RAM Adresse 0 gibt, auch wenn diese in den Programmen eine besondere Bedeutung hat.
Aliosy schrieb:
eine 64-Bit Architektur hat einen maximalen Adressraum von 2^64 Byte. ggf. noch * 8Bit dazu nehmen
Da ein Byte immer 8 Bit hat, egal wie breit die Adressregister sind und man die einzelnen Bits nicht direkt adressieren sondern dann nur ausmaskieren kann, macht es wenig Sinn diese in Bit umzurechnen. Der theoretisch adressierbare Adressraum einer 64 Bit CPUs ist genau 2^64 Byte, alles andere ist entweder falsch oder eine unsinnige Angabe. Praktisch ist es schon wegen der RAM Controller aber eben nicht möglich so viel RAM zu verwenden.

Zur Gegenprobe: Bei 32 Bit sind 2^32 Byte, also 4294967296 Byte und dies sind genug 4GiB, also 4*1024³, was ja bekanntlich das Limit für 32Bit ist. Gemäß der Formel "2^(8*2^64)-1" müsste es dann ja 2^(8*2^32)-1 sein und dies wären so viel mehr, dass der Calc von Windows damit gar nicht mehr klarkommt.
 
  • Gefällt mir
Reaktionen: abcddcba
Dass man nur Bytes adressieren kann hat auch niemand abgestritten ...
Zudem hat er am Ende seiner Frage nicht nach der maximalen Speichermenge gefragt, sondern nach einer Zahl, die man damit darstellen kann. So hab ich es zumindest verstanden.
Wie auch immer, ich bin hier raus, es wurde alles gesagt und sich noch mehr Gedanken darueber zu machen ist Zeitverschwendung.

Viel Erfolg bei eurem Schulprojekt auf jeden Fall!
 
Aber weil der Prozessor 'nur' 64 Bit (2^64 Byte) an Speicher Adressieren kann und die einzelnen Register auch nur 2^64 Bit 'breit' sind, ist damit die größte darstellbare Zahle nicht gleich 2^64. Diese ist weiterhin genauso groß, wie man sie benötigt, mann muss es nur Programmieren und seinem Programm beibringen, dass eine Zahl über mehrere Adressen verteil wurde und dann beispielsweise 10*2^64 (oder noch mehr) Stellen möglich sind. Bei einem 8-Bit Prozesor wurde ja auch mit größeren Zahlen als 256 gerechnet und angezeigt. Dass ist dann kein tricksen in dem Sinne, da der Adressraum nicht künstlich erweiter wurde, das ist Mathematik.
 
  • Gefällt mir
Reaktionen: I'm unknown
Zurück
Oben