インテル® アクセラレーション・スタック (インテル® Xeon® CPU&FPGA対応) コア・キャッシュ・インターフェイス (CCI-P) リファレンス・マニュアル

ID 683193
日付 11/04/2019
Public
ドキュメント目次

1.6. デバイス・フィーチャー・リスト

この章では、MMIO空間内のフィーチャーのリンクリストを作成するデバイス・フィーチャー・リスト (DFL) 構造を定義し、それによりフィーチャーの追加および列挙を行う拡張可能な方法を提供します。フィーチャー領域 (「フィーチャー」と呼ばれる場合もあります) は、関連するCSRのまとまりです。例えば、DMAエンジンの2つの異なるフィーチャーに、キュー管理とQoS機能があります。キュー管理とQoS機能は、2つの異なるフィーチャー領域にグループ化することが可能です。デバイス・フィーチャー・ヘッダー (DFH) レジスターは、フィーチャー領域の開始を示します。

ソフトウェアはDFL全体を見渡し、以下を列挙することができます。

  • AFU
    • AFUCCI-Pインターフェイスに準拠しており、CCI-Pポートに直接接続されます。AFU IDなどの必須AFUレジスターを実装する必要があります。
    • AFU DFHは、MMIOアドレス0x0に位置している必要があります。
  • プライベート・フィーチャー
    • これはAFU内のフィーチャーのリンクリストであり、AFU内の機能を編成する方法を提供します。それらの列挙および管理は、AFUデベロッパーの責任です。
    • これはIDの実装を必要としません。
  • インテル® FPGAベーシック・ビルディング・ブロック
    • AFU内の特別なフィーチャーであり、再利用可能なビルディング・ブロックを意味します (一度デザインし、何度も再利用する)。ソフトウェアに可視化される インテル® FPGAベーシック・ビルディング・ブロックは一般的に、 インテル® FPGAベーシック・ビルディング・ブロックの列挙とコンフィグレーションを行うための、対応するソフトウェア・サービスとともに提供されます。また、場合によっては インテル® FPGAベーシック・ビルディング・ブロックに向けたより高いレベルのソフトウェア・インターフェイスが提供されます。
    • AFUのような厳しいハードウェア・インターフェイス要件はありませんが、ソフトウェアの観点から明確に定義されたアーキテクチャーのセマンティクスを必要とします。
    • 可視化される場合、必須DFHレジスターを実装する必要があります。
    • ソフトウェアに可視化される インテル® FPGAベーシック・ビルディング・ブロックに対してのみ、GUIDを実装する必要があります。

次の図は、BBBとプライベート・フィーチャーで構成されるAFUのフィーチャー階層の例を表しています。

図 26. フィーチャー階層の例
デバイス・フィーチャー・ヘッダー (DFH) レジスター (下に示されています) は、フィーチャー領域の開始を示します。
表 44.  デバイス・フィーチャー・ヘッダーのCSR
デバイス・フィーチャー・ヘッダー
ビット 説明
63:60 フィーチャー・タイプ
4’h1 – AFU 4’h2 – BBB 4’h3 – プライベート・フィーチャー
59:52 予約済み
51:48

AFUマイナーバージョン番号

ユーザー定義の値

予約済み
47:41 予約済み
40

リストの末尾

1’b0: この後に別のフィーチャー・ヘッダーがあります (「次のDFHのバイトオフセット」を参照ください)。

1’b1: これは、このAFUの最後のフィーチャー・ヘッダーです。

39:16

次のDFHのバイトオフセット

次のDFHアドレス = 現在のDFHアドレス + 次のDFHのバイトオフセット

このフィーチャーが占有するMMIO領域の最大サイズの指標としても使用されます。最後のフィーチャーの場合、このオフセットは割り当てられていないMMIO領域の開始を指します (ある場合)。もしくは、MMIO空間の範囲を超えます。

表 45 にある例を参照ください。

15:12

AFUメジャーバージョン番号

ユーザー定義

フィーチャーのリビジョン番号

ユーザー定義

11:0

CCI-Pバージョン番号

ccip_if_pkg.svのCCIP_VERSION_NUMBERパラメーターを使用します。

フィーチャーID

AFU内のフィーチャーを識別するユーザー定義のIDを含みます。

表 45.  次のDFHのバイトオフセット例
フィーチャー DFHアドレス EOL 次のDFHのバイトオフセット
0 0x0 0x0 0x100
1 0x100 0x0 0x180
2 (最後のフィーチャー) 0x280 0x1 0x80
割り当てられていないMMIO空間、DFHなし 0x300 該当なし 該当なし

BBBにタイプが設定されているDFHは、次の表にある必須BBBレジスターを後に続ける必要があります。

表 46.  必須BBB DFHレジスターマップ
DFH内のバイト・アドレス・オフセット レジスター名
0x0000 DFH Type=BBB
0x0008 BBB_ID_L
0x0010 BBB_ID_H
表 47.  BBB_ID_L CSRの定義
レジスター名 BB_ID_L
ビット 属性 説明
63:0 RO BBB_ID IDの下位64ビット
表 48.  BBB_ID_H CSRの定義
レジスター名 BB_ID_H
ビット 属性 説明
63:0 RO BBB_ID IDの上位64ビット

BBB_IDはGUIDであり、概念的にはAFU_IDに類似しています。それぞれのBBBが一意の識別子を持つように定義されます。これにより、ソフトウェアがBBBハードウェアに関連付けられたソフトウェア・サービスを識別できるようになります。

次の図は、この章で定義されているDFHレジスターを使用し、論理フィーチャー階層 (左側に示されています) をどのように表現することができるかを示しています。

図 27. デバイス・フィーチャーの概念図