最初の電源投入時に、BIOS は ROM から直接実行されます。ROM チップは、プロセッサのメモリ空間内の固定位置にマップされます (これは通常、チップセットの機能です)。x86 プロセッサがリセットから復帰すると、すぐに 0xFFFFFFF0 から実行を開始します。
ただし、ROM から直接実行するのは非常に遅いため、通常、BIOS が最初に行うことの 1 つは、BIOS コードを RAM にコピーして解凍し、そこから実行することです。もちろん、メモリ コントローラを最初に初期化する必要があります。BIOSは事前にそれを処理します。
メモリ マップのレイアウトは、システムによって異なります。電源投入時に、BIOS は接続された PCI/PCIe デバイスにクエリを実行し、必要なリソースを判断して、メモリ マップの最適な場所に配置します。すべてが正常に機能している場合、メモリ マップ デバイスは RAM とオーバーラップしていません。(3GB を超える RAM を搭載した 64 ビット システムでは、32 ビット PCI/PCIe デバイス用に RAM の中央に「穴」が必要になるため、状況が複雑になることに注意してください。一部の初期の x64 BIOS およびチップセットには、これに関する問題がありました。 .)