PCIデバイスにメモリが多すぎてBIOSがそれを割り当てるための適切な空の物理アドレス領域を見つけることができない場合はどうなりますか?

PCIデバイスにメモリが多すぎてBIOSがそれを割り当てるための適切な空の物理アドレス領域を見つけることができない場合はどうなりますか?

32ビットシステムは最大4GiBの物理メモリを持つことができます。正しいですか?いいえ、仮想アドレスには4 GBの制限があり、MMUはページ番号により多くのアドレスビットを追加できるため、より多くの物理アドレスを使用できます。たとえば、sparc32アーキテクチャでは、ページテーブルエントリに4ビットが追加されるため、最大16 * 4 GB = 64 GBまで使用できます。
PCIシステムでは、BIOSはデフォルトアドレスレジスタ(BAR)にオフセットを割り当て、PCIデバイスの背後にあるメモリ領域がいくつかの物理アドレスに表示されるようにします。 PCIデバイスにメモリが多すぎて最大64 GBの適切な空の物理領域を割り当てることができない場合はどうなりますか? (または、多くのPCIデバイスの領域が多すぎるため、合計が大きすぎる可能性があります。)アドレス空間バスは独立していますか?

ベストアンサー1

その後、BIOSは何をするかを決定できます。つまり、デバイスの一部だけをマップまたはマップしないままにしておき、オペレーティングシステムのデバイスドライバにそれを知らせます。

しかし、あなたが言ったこと物理アドレス拡張(PAE)。 4GiBの制限を超えるのに役立ちますが、メモリ管理がさらに複雑になり、同時にすべてのメモリを見ることはできません。各個々のプロセスは独自のメモリマップを持つことができ、異なるメモリマップを提供できます。メモリマップ。 64GiB 物理アドレス空間の一部です。

64GiB以上が必要な場合は、理論的にPAEスキームをさらに拡張することができますが、現時点ではより多くの問題が発生するため、製造業者はまだそうしていません。この場合、64ビットシステムアーキテクチャを使用する方がより適しています。

おすすめ記事