インテルのみ表示可能 — GUID: qhj1612983646553
Ixiasoft
インテルのみ表示可能 — GUID: qhj1612983646553
Ixiasoft
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がイネーブルされ、ファンクションがマスキングされていない場合です。アプリケーションでは、コンフィグレーション割り込みインターフェイスを使用してこの情報にアクセスします。
アプリケーションによってMSI-Xを生成する必要がある場合、アプリケーションでは、MSI-Xテーブルの内容 (アドレスとデータ) を使用し、 Avalon® -STインターフェイスを介してメモリー書き込みを生成します。
MSI-X割り込みをイネーブルにするには、パラメーター・エディターのPCI Express/PCI CapabilitiesタブのMSI-XでEnable 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割り込みは標準のメモリー書き込みです。したがって、メモリー書き込みの順序規則が適用されます。
例:
MSI-Xベクター | MSI-X上位アドレス | MSI-X下位アドレス | MSIデータ |
---|---|---|---|
0 | 0x00000001 | 0xAAAA0000 | 0x00000001 |
1 | 0x00000001 | 0xBBBB0000 | 0x00000002 |
2 | 0x00000001 | 0xCCCC0000 | 0x00000003 |
PBAテーブル | PBAエントリー |
---|---|
オフセット0 | 0x0 |
アプリケーションによりMSI-X割り込み (ベクトル1) を生成する必要がある場合、アプリケーションでは、MSI-Xテーブル情報を読み出し、 Avalon® -STインターフェイスを介してMWR TLPを生成し、MSI生成の場合と同様の方法で対応するPBAビット (ビット [1]) をアサートします。
生成されたTLPは、アドレス0x00000001_BBBB0000に送信され、データは0x00000002になります。MSI-Xが送信されたら、アプリケーションでは、関連付けられているPBAビットをクリアできます。