Wie bestimmt ein BIOS die Menge an verfügbarem RAM?

1639
PositronicBrain

Wenn das BIOS ein 16-Bit-Programm ist, das im Real-Modus ausgeführt wird und in diesem Modus nur 1 MB adressiert werden kann, wie bestimmt das BIOS die Menge an verfügbarem RAM, beispielsweise 1 GB?

3
Ist das eine Hausaufgabe? Xavierjazz vor 8 Jahren 1
Wenn ja, möchte ich diesen Kurs belegen. dsolimano vor 8 Jahren 1
Ich studiere Assembler-Sprache, nur als Hobby, und ich möchte die Grundlagen lernen und wie ein PC funktioniert. Ich bin kein Student, nur neugierig. Danke für deine Zeit trotzdem =) PositronicBrain vor 8 Jahren 0

1 Antwort auf die Frage

7
DavidPostill

Das BIOS ist ein 16-Bit-Programm, das im Real-Modus ausgeführt wird. In diesem Modus können 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 Real-Modus startet und standardmäßig auf den 16-Bit-8086-Befehlssatz gesetzt wird, der 80286-Befehlssatz enthält jedoch Erweiterungen. Wenn Sie einer 8086-Anweisung das Byte 0x67 voranstellen, ermöglicht diese Anweisung dem Zugriff auf ein 32-Bit-Register, das Zugriff auf 2 32 Byte oder 4 GB Speicher hat.

Wenn Sie einen 64-Bit-Prozessor verwenden, kann der Prozessor PAE ( Physical Address Extension ) verwenden, wodurch der Prozessor Zugriff auf 2 52 Byte Speicher erhält, mehr als auf einem modernen Motherboard physisch installiert werden kann.

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


Wie bestimmt das BIOS die Größe des verfügbaren Arbeitsspeichers, beispielsweise 1 GB?

Es verwendet Methoden, die in den Datenblättern für den Speichercontroller ( Northbridge ) dokumentiert sind .

Die meisten BIOS können keinen RAM verwenden, bis sie den installierten RAM-Typ erkannt haben, dann die Größe jedes Speichermoduls und dann den Chipsatz so konfigurieren, dass er den erkannten RAM verwendet.

All dies hängt von chipsatzspezifischen Methoden ab und ist normalerweise in den Datenblättern für den Speichercontroller (Northbridge) dokumentiert.

Das RAM kann während dieses Vorgangs nicht zum Ausführen von Programmen verwendet werden. Das BIOS läuft anfangs vom ROM aus, so dass es die erforderlichen Spiele mit den RAM-Chips spielen kann. Es ist jedoch völlig unmöglich, dies aus einem anderen Programm heraus zu tun.

Quelle Erkennung Speicher (x86)

Vielen Dank Alter. Vielen Dank, dass Sie mir Zeit gegeben haben, meine Frage zu beantworten. Eigentlich habe ich noch viel zu lernen. PS: Meine Frage wurde sehr schnell LOL beantwortet. PositronicBrain vor 8 Jahren 0
Beim Erkennen von Speicher: Die DIMMS verfügen über ein kleines EPROM, in dem angegeben wird, was sie sind und welche Timings verwendet werden sollten. https://en.wikipedia.org/wiki/Serial_presence_detect pjc50 vor 8 Jahren 0
Das erste Zitat ist weder richtig noch relevant für die Frage. Zunächst einmal gibt es einen Tippfehler, der "80286" sagt, wenn es "80386" sein sollte. Zweitens hat die Fähigkeit zur Verwendung von 32-Bit-Registern nichts mit der Adressierbarkeit von Speicher zu tun. Im Realmodus sind Sie unabhängig von der Registergröße immer noch auf 20-Bit-Adressleitungen beschränkt. Drittens ist PAE für viele Prozessoren verfügbar, die keine 64-Bit-Erweiterungen unterstützen. Viertens ist auch die Implikation des Zitats falsch. Der Realmodus * ist auf die Adressierung von nur 1 MB beschränkt. Es ist einfach nicht notwendig, den Speicher zu adressieren, um ihn zu zählen. Cody Gray vor 6 Jahren 3