Warum x86-64-Systeme haben nur eine 48-bit virtueller Adressraum?

In einem Buch Las ich Folgendes:

32-bit-Prozessoren haben 2^32 möglichen Adressen, die aktuellen 64-bit-Prozessoren mit 48-bit-Adressraum

Meine Erwartung war, dass, wenn es eine 64-bit-Prozessor, die Adresse, Raum, sollten auch 2^64.

Also ich Frage mich, was ist der Grund für diese Einschränkung?

  • Das Buch gewesen sein muss zu sprechen, speziell über die aktuelle Implementierung der AMD64-Architektur (x86-64). Nur die low-um 48 bits verwendet werden. Dies ist nicht eine hardware-Einschränkung, aber--alle 64 bit sind verfügbar.
  • Immer eine gute Idee zu identifizieren, das Buch.
  • Ich vermute, dass die physische Adresse, die Linien sind nicht kostenlos (Sie müssen 16 extra-pins der cpu zumindest). Und ich bin mir nicht bewusst, irgendwelche hardware, die füllen kann ist eine 48-bit-Raum mit den physikalischen RAM-chips auf dem gleichen Prozessor noch. Wenn dies durchführbar, ich bin sicher, AMD wird fügen Sie die fehlenden 16 pins 🙂
  • Ich weiß, was du meinst, aber ist es nicht genau eine hardware-Einschränkung, wenn Sie spezifisch für die aktuelle Implementierung von AMD64? 😉
  • sogar The 32-bit processors have 2^32 possible addresses ist nicht unbedingt wahr, es kann existieren, 32bit cpu, mit nur 24 "pins" für die Adressierung von Speicher. E. g. 68EC020 (billiger 68020-version) ist eine 32bit-cpu, aber mit 24 bit für die Adressierung der Speicher.
  • Es ist ein sehr reales problem mit 64-bit-physische Adressierung die Seite im virtuellen Speicher zu klein ist. Das sorgt für enorme Verzeichnisse und extrem teuer TLB-cache flushes auf jedem context-switch. Umzug von 4-KB-4 MB-Seiten ist eine option, aber sehr inkompatibel mit der aktuellen Betriebssysteme.
  • Darüber hinaus The 32-bit processors have 2^32 possible addresses ist eher vage; zum Beispiel, eine Reihe von 32-bit-x86-CPUs (typischerweise server/workstation), Unterstützung für PAE, das es ermöglicht, eine 36-bit-Adressraum. Eine Reihe von modernen x86_64 CPUs unterstützt 48-bit-Adressraum und einen 52-bit-virtuellen Adressraum.
  • Können Sie das näher? Ich bin mir nicht ganz sicher, was du meinst. Wie wird die Größe eines Betriebssystems einzelnen Seite, die Größe beziehen sich auf den Adressraum? Wie funktioniert das ändern der Größe der Seite helfen, mit zunehmenden physischen Adressraum?

InformationsquelleAutor er4z0r | 2011-07-16
Schreibe einen Kommentar