最新の x86_64 CPU で PCI Express 経由でデータを転送するために I/O ポート (asm:in, out
命令) を使用できますか、または MMIO (メモリ マップド I/O) と DMA (PCI のメモリ マップド領域へのダイレクト メモリ アクセス) には BAR のみを使用できますか? -E デバイス)?
質問する
2748 次
3 に答える
1
私はそれ以降のバージョンしか知りません。私が書いたすべての PCIe アクセス コードは、BAR とメモリ マップド IO を使用しています。I/O ポートを使用するインターフェイスは本質的に非常に遅いため、現在 I/O ポートはほとんど使用されていないと思います。アドレス可能なポートの数も非常に限られています。ただし、特定のデバイスに I/O ポートが必要かどうかは、ハードウェアの実装によって異なります。基本的に、このアーキテクチャでは、PCIe デバイスに対しても I/O ポート ベースのアドレス指定が可能であるように思われます。たとえば、グラフィックス カードはまだいくつかのポートを予約しているためです。
これらのコマンドはドライバー コード用に予約されているため、最新のオペレーティング システムでユーザー コードからコマンドを直接発行すると、保護違反が発生することに注意してin
くださいout
。
于 2013-11-10T14:34:09.537 に答える