PCI Express* 向けRタイル Avalon® StreamingインテルFPGA IPユーザーガイド

ID 683501
日付 10/07/2022
Public
ドキュメント目次

4.3.3.3. MSI-X

PCIe向けRタイルIPには、コンフィグレーション・インターセプト・インターフェイスが用意されています。ユーザー・ソフト・ロジックでは、このインターフェイスを監視して、MSI-XイネーブルおよびMSI-Xファンクション・マスクの関連情報を取得することができます。ユーザー・アプリケーション・ロジックは、BARが指し示すメモリースペースにすべてのPFおよびVFのMSI-Xテーブルをアプリケーション層の一部として実装する必要があります。

コンフィグレーション・インターセプト・インターフェイスから取得できるMSI-X関連情報の詳細については、レジスターの章のMSI-Xレジスターのセクションを参照してください。

MSI-Xはオプションの機能です。この機能を使用すると、ユーザー・アプリケーションでは、独立したメッセージデータとアドレスが各ベクトルにある場合のベクトルを大量にサポートすることができます。

MSI-Xがサポートされている場合、MSI-XテーブルおよびPBAのサイズと場所 (BARおよびオフセット) を指定する必要があります。MSI-Xでサポートできるベクトルは、1ファンクションあたり最大2048です。対して、MSIでサポートできるベクトルは、1ファンクションあたり32です。

ファンクションによってMSI-Xメッセージの送信ができるのは、MSI-Xがイネーブルされ、ファンクションがマスキングされていない場合です。アプリケーションでは、コンフィグレーション割り込みインターフェイスを使用してこの情報にアクセスします。

注: ポート0と1のみでMSI-Xをサポートします。

アプリケーションによってMSI-Xを生成する必要がある場合、アプリケーションでは、MSI-Xテーブルの内容 (アドレスとデータ) を使用し、 Avalon® -STインターフェイスを介してメモリー書き込みを生成します。

MSI-X割り込みをイネーブルにするには、パラメーター・エディターのPCI Express/PCI CapabilitiesタブのMSI-XEnable MSI-Xオプションをオンにします。Enable MSI-Xオプションをオンにした場合は、アプリケーション層の一部として、BARによって指し示されるメモリー空間にMSI-Xテーブル構造体を実装する必要があります。

MSI-X機能構造体に含まれている情報は、MSI-XテーブルとPBA構造体に関するものです。例えば、MSI-XテーブルおよびPBA構造体のベースへのポインターが含まれ、機能のBAR内のアドレスからのオフセットとして表現されます。MSI-X機能構造体内のメッセージ・コントロール・レジスターには、MSI-Xイネーブルビット、ファンクション・マスク・ビット、およびMSI-Xテーブルのサイズも含まれています。

MSI-X割り込みは標準のメモリー書き込みです。したがって、メモリー書き込みの順序規則が適用されます。

例:

表 62.  MSI-Xコンフィグレーション
MSI-Xベクター MSI-X上位アドレス MSI-X下位アドレス MSIデータ
0 0x00000001 0xAAAA0000 0x00000001
1 0x00000001 0xBBBB0000 0x00000002
2 0x00000001 0xCCCC0000 0x00000003
表 63.  PBAテーブル
PBAテーブル PBAエントリー
オフセット0 0x0

アプリケーションによりMSI-X割り込み (ベクトル1) を生成する必要がある場合、アプリケーションでは、MSI-Xテーブル情報を読み出し、 Avalon® -STインターフェイスを介してMWR TLPを生成し、MSI生成の場合と同様の方法で対応するPBAビット (ビット [1]) をアサートします。

生成されたTLPは、アドレス0x00000001_BBBB0000に送信され、データは0x00000002になります。MSI-Xが送信されたら、アプリケーションでは、関連付けられているPBAビットをクリアできます。