私は PC アーキテクチャを勉強していますが、PCI アドレスの基礎を理解していないと感じています。
PCI には、メモリ、入出力ポート、構成の 3 つのアドレス空間があります。CPU がさまざまなコマンドを使用してメモリとポートを区別できることは知っていますが、PCI ではどうなりますか? バスにはいくつかのコマンドがあります (これらのスペースへの読み取り/書き込み、割り込み処理など)。メモリ空間を読み取るときは物理RAMアドレスにアドレス指定すると思いましたが、いくつかのマニュアルを読んだ後、内部デバイスのメモリにアドレス指定しているようです。
- メモリ マッピングを使用する理由 一部のプログラムが一部の PCI デバイスにマップされた RAM アドレスに書き込むと、実際にはデバイス メモリに書き込むということですか? 標準 IO ポート書き込みを使用しないのはなぜですか?
- 必要に応じて実メモリにアクセスする方法は? たとえば、デバイスが RAM にデータを保存したい場合、この要求は「メモリ空間」アクセスとどのように区別されるのでしょうか?