2

最新の x86_64 CPU で PCI Express 経由でデータを転送するために I/O ポート (asm:in, out命令) を使用できますか、または MMIO (メモリ マップド I/O) と DMA (PCI のメモリ マップド領域へのダイレクト メモリ アクセス) には BAR のみを使用できますか? -E デバイス)?

4

3 に答える 3

1

私はそれ以降のバージョンしか知りません。私が書いたすべての PCIe アクセス コードは、BAR とメモリ マップド IO を使用しています。I/O ポートを使用するインターフェイスは本質的に非常に遅いため、現在 I/O ポートはほとんど使用されていないと思います。アドレス可能なポートの数も非常に限られています。ただし、特定のデバイスに I/O ポートが必要かどうかは、ハードウェアの実装によって異なります。基本的に、このアーキテクチャでは、PCIe デバイスに対しても I/O ポート ベースのアドレス指定が可能であるように思われます。たとえば、グラフィックス カードはまだいくつかのポートを予約しているためです。

これらのコマンドはドライバー コード用に予約されているため、最新のオペレーティング システムでユーザー コードからコマンドを直接発行すると、保護違反が発生することに注意してinくださいout

于 2013-11-10T14:34:09.537 に答える