2016-08-10 3 views
0

Die Seitennummerierung in einem Prozessor ermöglicht die Zuordnung der virtuellen Adresse (A2345678) zur physikalischen Adresse (823C5678). Es ist jedoch nicht möglich, virtuelle Adresse (345678) zu (2ABC678) zuzuordnen. Was können wir schließen über Größe des Rahmens, Seite, Größe des virtuellen Speichers, Größe der physikalischen Speicher.Paginierung - virtuelle Adressen, physische Adressen, Mapping - Überlegungen

Was ich darüber nachdenke:
(A2345678) -> (823C5678)
So Offsetgröße höchstens 19 Bits. Wir wissen, dass die Größe der Seite (und des Rahmens) höchstens 2 , like in my previous question beträgt.

Wenn es um Größe des virtuellen Speichers und physischen Speichers kommt - ich kann nichts schließen.

Similary, ich weiß nicht, was mir Informationen über nicht-Möglichkeit Mapping-Adresse sagen.

Können Sie versuchen, es mir zu erklären?

+1

Woher hast du diese Frage? Ich sehe auch keine offensichtlichen Schlussfolgerungen, außer über die Seitengröße wie [deine vorherige Frage] (http://stackoverflow.com/questions/38849411/size-of-page-of-memory-reasoning-using-offset?). Ich habe Ihre Frage bearbeitet, um sie für den Kontext zu verlinken, damit die Leute wissen, dass sie diesen Teil nicht genauer erklären müssen. (oder Sie können herausfinden, welche Methode Sie verwendet haben, wenn sie sich selbst nicht kennen). –

+0

Einfach, ich habe ein Problem mit diesem Problem, könnten Sie mir helfen? Frage ist: Was können wir aus Informationen in meinem Beitrag schließen? –

Antwort

-1

ich etwas sehe wir schließlich schließen können:

Wenn eine Zuordnung zu physikalischer Adresse 0x823C5678 möglich ist, physischer Speicher ist zumindest so groß. (Angenommen, es gibt keine Löcher im physischen Adressraum; keine echte Annahme auf echter Hardware, aber was auch immer. Wir können feststellen, dass der physikalische Adressraum mindestens so groß ist, auch wenn nicht alles auf DRAM oder MMIO abgebildet wird) .

In ähnlicher Weise gibt uns die gültige virtuelle Adresse 0xA2345678 eine untere Grenze für die Größe der virtuellen Adresse. Vermutlich können alle virtuellen Adressbits 1 sein, so dass die höchstmögliche virtuelle Adresse mindestens 0xFFFFFFFF ist. h. virtuelle Adressen sind mindestens 32 Bits, könnten jedoch jede größere Größe sein.

Diese Argumentation gilt für den physischen Adressraum, nicht jedoch für die Größe des physischen Speichers. (ZB in einem Computer mit 19GiB RAM, die höchsten gültigen physikalischen Adresse nicht 2 n -1.)


Die Tatsache, dass Sie nicht 0x345678 zu 0x2ABC678 Karte können uns nicht sagen, dass die Seite Größe ist größer als 2 . Die physische Adresse befindet sich unterhalb der Adresse, die zugeordnet werden konnte, sodass wir ausschließen können, dass ein möglicher Grund für das Mapping unmöglich ist. Ich denke, zu hoch und falsch ausgerichtet sind die einzigen möglichen Gründe für eine Zuordnung nicht möglich.

(0xc = 0b1100, während 0x5 0b0101 ist, so dass die gemeinsamen Bits sind nur 0x678.)


Wir können davon ausgehen, dass physischen Speicher eine ganze Anzahl von Seiten ist, so können wir den niedrigsten aufrunden mögliches Ende des physikalischen Speichers auf das nächste Vielfache von 2 .

+0

Der Adressraum des virtuellen Speichers ist also mindestens 2^{32}. Wie steht es mit der physischen Raumadresse? Auch 2^{32}? Welche Gründe haben Sie ausgeschlossen? Zu hohe Adressen? –

+1

@HaskellFun: '0x823C5678' hat sein hohes Bit gesetzt, also ja ich denke, wir können davon ausgehen, dass physikalische Adressen mindestens 32 Bit haben. Wir können "0x2ABC678" ausschließen, weil es weniger als "0x823C5678" ist, wie ich in meiner Antwort gesagt habe. –

+0

Darüber hinaus ist die Größe des Rahmens gleich der Größe der Seite? Der letzte Abschnitt ist für mich nicht klar - Adressraum der physischen (und hier auch virtuellen) ist 32 Bits. Aber was meinst du, wenn es um 2^{13} geht? –