Wie bestimmt ein BIOS die Menge des verfügbaren RAM?

Wie bestimmt ein BIOS die Menge des verfügbaren RAM?

Wenn das BIOS ein 16-Bit-Programm ist, das im Realmodus ausgeführt wird, und in diesem Modus nur 1 MB adressiert werden kann, wie ermittelt das BIOS dann die Menge des verfügbaren RAM, beispielsweise 1 GB?

Antwort1

Das BIOS ist ein 16-Bit-Programm, das im Realmodus läuft. In diesem Modus kann nur 1 MB adressiert werden.

Das ist falsch.

Der 16-Bit-Realmodus beschränkt den Prozessor nicht auf 1 MB Speicher.

Es stimmt zwar, dass ein x86-Prozessor im Realmodus startet und standardmäßig den 16-Bit-Befehlssatz 8086 verwendet, aber der Befehlssatz 80286 enthält Erweiterungen. Wenn Sie einem 8086-Befehl das Byte 0x67 voranstellen, kann dieser Befehl auf ein 32-Bit-Register zugreifen, das Zugriff auf 2 32 Bytes oder 4 GiB Speicher hat.

Wenn Sie einen 64-Bit-Prozessor verwenden, kann der Prozessor PAE verwenden (Erweiterung der physischen Adresse), wodurch der Prozessor auf 2,52 Byte Speicher zugreifen kann , mehr als physisch auf einem modernen Motherboard installiert werden kann.

QuelleSo kann das BIOS die volle Größe des erweiterten Speichers erkennen


Wie bestimmt das BIOS die Menge des verfügbaren RAM, beispielsweise 1 GB?

Dabei kommen Methoden zum Einsatz, die in den Datenblättern der Speichercontroller dokumentiert sind (Nord brücke).

Die meisten BIOS können keinen RAM verwenden, bis sie den Typ des installierten RAM erkennen, dann die Größe jedes Speichermoduls ermitteln und anschließend den Chipsatz für die Verwendung des erkannten RAM konfigurieren.

Dies alles hängt von Chipsatz-spezifischen Methoden ab und ist normalerweise in den Datenblättern für den Speichercontroller (Northbridge) dokumentiert.

Während dieses Vorgangs ist der RAM für laufende Programme unbrauchbar. Das BIOS wird zunächst vom ROM ausgeführt, sodass es die erforderlichen Spiele mit den RAM-Chips spielen kann. Dies ist jedoch von einem anderen Programm aus völlig unmöglich.

QuelleSpeicher erkennen (x86)

verwandte Informationen