カーネル インターフェイスは、ホスト アプリケーション、その他のカーネル、またはデバイス I/O とデータを交換するために使用されます。使用可能なインターフェイスのタイプは 3 つあり、それぞれが特殊なデータ転送用に設計されています。カーネルには、さまざまなタイプの複数のインターフェイスが含まれることがよくあります。
関数プロパティ
次の表では、カーネル インターフェイスの関数プロパティについて説明します。
レジスタ |
メモリ マップド |
ストリーミング |
- ホスト アプリケーションとカーネル間でスカラーを転送するために設計されています。
- レジスタ読み出しおよび書き込みは、ホスト アプリケーションで開始されます。
- カーネルはスレーブとして動作します。
|
- グローバル メモリ (DDR、PLRAM、HBM) を使用した双方向のデータ転送用です。
- アクセス パターンは通常ランダムです。
- メモリ転送のレイテンシが増えます。
- カーネルはグローバル メモリに格納されたデータにアクセスするマスターとして動作します。
- データのベース アドレスはレジスタ インターフェイスを介して送信されます。
- ホスト アプリケーションがデータセットのサイズに合わせてバッファーを割り当てます。
- フリーランニング カーネルには、メモリ マップド インターフェイスを使用できません。
|
- カーネル間やホストアプリケーションとカーネル間で一方向のデータを転送するために設計されています。
- アクセス パターンはシーケンシャルです。
- グローバル メモリは使用しません。
- メモリ マップド転送よりも良いパフォーマンスになります。
- データセットはボンディングされません。
- ストリーム内の最後の値を示すために側帯波信号が使用されることがあります。
|
インプリメンテーション要件
各インターフェイス タイプは、特定のハードウェア プロトコルを使用してインプリメントする必要があります。これにより、システム コンパイラ リンカーがカーネルにプラットフォームを含めて生成できるようになります次の表に、ハードウェアへインターフェイスをマップする際の要件を示します。
レジスタ |
メモリ マップド |
ストリーミング |
- レジスタ インターフェイスは、AXI4-Lite インターフェイスを使用してインプリメントする必要があります。
- カーネルに含めることができる AXI4-Lite インターフェイスは 1 つだけです。
|
- メモリ マップド インターフェイスは、AXI4 インターフェイスを使用してインプリメントする必要があります。
- カーネルには 1 つまたは複数の AXI4 マスター インターフェイスを含むことができます。
- 異なるメモリ マップド引数を同じ AXI4 マスターを介して転送できます。
|
- ストリーミング インターフェイスは、AXI4-Stream インターフェイスを使用してインプリメントする必要があります
- カーネルには 1 つまたは複数の AXI4-Stream インターフェイスを含むことができます
|