デバイスリソース

以下のリストは、このVisualAppletsバージョンでサポートされているすべてのハードウェアプラットフォームの重要なハードウェア詳細を示しています。詳細なリストについては、各製品のデータシートをご確認ください。

Hardware Configuration of Supported Platforms

imaFlex

リソース imaFlex CXP-12 Quad imaFlex CXP-12 Penta imaFlex 2 Dual 100
ビジョンプロセッサ Xilinx UltraScale+ XCKU3P-FFVD900-1-E Xilinx UltraScale+ XCKU3P-FFVB676-1-E Xilinx UltraScale+ XCKU15P-FFVE1517-1-E
LUT 160679 161049 447992
フリップフロップ 323224 323216 895984
ブロックRAM (18k) 720 720 1776
URAMブロック (288k) 48 48 128
組込み算術論理ユニット (DSP48) 1368 1368 1800
RAMサイズ 3 x 512 MiB DDR4 5 x 512 MiB DDR4 2 @ 5 x 1024 MiB DDR4
RAMデータ幅 384 Bit 640 Bit 640 Bit
RAM合計帯域幅 (共有) 14.4 GB/1 24.0 GB/s1 2 @ 24.0 GB/s2
ベースデザインクロック (デフォルト) 312.5 MHz3 312.5 MHz3 391.5 MHz4
ベースデザインクロック(最大) 400.0 MHz 400.0 MHz 420.0 MHz
ホストインターフェース PCIe x 8 Gen 3(ダイレクトメモリアクセス) PCIe x 8 Gen 3(ダイレクトメモリアクセス) PCIe x 16 Gen 3(ダイレクトメモリアクセス)
ホストインターフェイス(PCIe x 8 Gen 3)帯域幅(理論値) 8000 MB/s 8000 MB/s 16000 MB/s
ホストインターフェイス(PCIe x 8 Gen 3)帯域幅(通常値/最大値) 7200 MB/s(持続データ帯域幅) 7200 MB/s(持続データ帯域幅) 13000 MB/s(持続データ帯域幅)5

1

このプラットフォームには、単一の物理RAMバンクが含まれています。 各RAMベースのオペレーターは専用のMemoryセグメントを使用しますが、全体的なRAMサイズとMemory帯域幅はすべてのオペレーター間で共有されます。また、' Shared Memory Concept 'のセクションも参照してください。

2

このプラットフォームには、2つの単一物理RAMバンクが含まれています。 各RAMベースのオペレーターは専用のMemoryセグメントを使用しますが、全体的なRAM sizeとMemory帯域幅は、同じバンクにドッキングするすべてのオペレーター(最大8つ)間で共有されます。また、' Shared Memory Concept 'のセクションも参照してください。

3

このプラットフォームでは、ユーザー指定のベースクロックを使用できます。サポートされる最小クロック周波数は312.5 MHzで、理論上の最大値は400 MHzです。312.5 MHzで動作するデザインは、一般的にタイミング制約を満たすことが期待されます。312.5 MHzを超える周波数は、アプレットアルゴリズムの実装によってはタイミング違反につながる可能性があります。

4

このプラットフォームでは、ユーザー指定のベースクロックを使用できます。サポートされる最小クロック周波数は391.5 MHzで、理論上の最大値は420 MHzです。391.5 MHzで動作するデザインは、一般的にタイミング制約を満たすことが期待されます。その値を超える周波数は、アプレットアルゴリズムの実装によってはタイミング違反につながる可能性があります。

最小および最大周波数は正確に391.5 MHzおよび420.0 MHzではありませんが、これらの値に近い無限小の値です。最小周波数は391.5 MHzのすぐ上にあり、最大周波数は420.0 MHzのすぐ下にあります。 これは表示を簡素化するためです。

5

この値は、ホストPCのPCIeブリッジの機能によって異なります。ほとんどの近代的なPCでは、通常、256バイトの最大ペイロードパケットサイズによってこの値が得られます。ペイロードサイズを大きくすると、帯域幅の効率が向上します。

表 68. imaFlex プラットフォームのハードウェア構成


microEnable 5 marathon

リソース mE5 marathon VCX-QP mE5 marathon VCL mE5 marathon VCLx
ビジョンプロセッサ Xilinx Kintex7 XC7K160T - 2FFG676C FPGA Xilinx Kintex7 XC7K160T - 1FBG676C FPGA Xilinx Kintex7 XC7K410T - 1FBG676C FPGA
LUT 101400 101400 254200
フリップフロップ 202800 202800 508400
ブロックRAM (18k) 650 650 1590
組込み算術論理ユニット (DSP48) 600 600 1540
RAMサイズ 4 x 512MiB DDR3 4 x 512MiB DDR3 4 x 512MiB DDR3
RAMデータ幅 512 Bit 256 Bit 256 Bit
RAM合計帯域幅 (共有) 12.8 GB/s1 6.4 GB/s1 6.4 GB/s1
ベースデザインクロック (デフォルト) 125MHz 125MHz 125MHz
ベースデザインクロック(最大) 312.5 MHz2 312.5 MHz2 312.5 MHz2
ホストインターフェース PCIe x 4 Gen 2 (Direct Memory Access) PCIe x 4 Gen 2 (Direct Memory Access) PCIe x 4 Gen 2 (Direct Memory Access)
ホストインターフェース (PCIe x 4 Gen 2) 帯域幅 (理論値) 1x2000 MB/s 1x2000 MB/s 1x2000 MB/s
ホストインターフェース (PCIe x 4 Gen 2) 帯域幅 (標準/最大) 最大 1800 MB/s の持続データ帯域幅 最大 1800 MB/s の持続データ帯域幅 最大 1800 MB/s の持続データ帯域幅

1

プラットフォームには、4つの独立した重ならないMemory領域としてフォーマットされた単一の物理RAMバンクのみがあります。Memory自体は各RAMベースのオペレーター専用ですが、RAM帯域幅は共有されます。セクション' Shared Memory Concept 'を参照してください。

2

これらのプラットフォームでは、ユーザー指定のベースクロックを使用できます。最小クロック周波数は 125 MHz です。理論上の最大値は 312.5 MHz です。クロック周波数が 125 MHz の設計は、タイミング制約を満たす可能性が高くなります。クロック周波数が 125 MHz を超える設計では、タイミング制約違反が発生する可能性があります。

表 69. ハードウェア構成 microEnable 5 marathon


サポートされているプラットフォームのデバイスリソース

デバイスリソースは各ハードウェアプラットフォームで制限されています。以下のリストは、サポートされているすべてのプラットフォームで使用可能なリソースを示しています。オペレーターはデバイスリソースを消費し、ほとんどのリソースインスタンスは1回のみ使用できます。この規則には、GPIオペレーターなどの例外がいくつかあります。これらの場合、リソース消費はオペレーターリファレンスドキュメントに記載されています。

デバイスリソースの割り当て方法:

  • 自動,

  • オペレーターパラメータを使用する、または

  • Resourcesダイアログで行われます。

詳細については、'Allocation of Device Resources'を参照してください。

imaFlex 2 Dual 100

リソース imaFlex 2 Dual 100
Port[0] CoF Lane1 4
Port[1] CoF Lane1 4
Port[0] CoF RX Trigger Lane1 4
Port[1] CoF RX Trigger Lane1 4
Port[0] CoF TX Trigger Lane1 4
Port[1] CoF TX Trigger Lane1 4
Port[0] CoF Status Lane1 4
Port[1] CoF Status Lane1 4
Port[0] DF RX Data Lane1 4
Port[1] DF RX Data Lane1 4
Port[0] DF RX Meta Lane1 4
Port[1] DF RX Meta Lane1 4
Port[0] DF TX Data Lane1 4
Port[1] DF TX Data Lane1 4
Port[0] DF TX Meta Lane1 4
Port[1] DF TX Meta Lane1 4
Port[0] DF Green LED Lane1 4
Port[0] DF Red LED Lane1 4
Port[1] DF Green LED1 1
Port[1] DF Red LED1 1
DmaToHostPort1 5
DmaFromHostPort1 1
GPI1 16
GPO1 16
EventPort2 31
EventID2 64
User LED1 6
ImageChannel3 1024
RAM4 2 @ from 1 x 5 GiB to 8 x 625 MiB

1

これらのリソースはコントロール専用であり、パラメータを介してオペレータによって管理されます。

2

EventIDは、指定されたプラットフォームに対してソフトウェアがサポートする最大イベント数を指します。EventPortはイベントチャネルを表します。各チャネルで最大16個のイベントを処理できます。

3

リソースImageChannelを使用すると、TxImageLinkオペレータをRxImageLinkオペレータに接続できます。各TxImageLinkオペレータには、1つのリソースImageChannelが排他的に必要です。各リソースImageChannelは正確に1つのRxImageLinkオペレータに接続できるため、1つのデザインで使用できるのは最大1024個のTxImageLinkオペレータおよび1024個のRxImageLinkオペレータです。リソースImageChannelは、Resourcesダイアログに表示されます。

4

RAMインターフェイスは2つの物理RAMバンクに分割されています。各RAMバンクは、帯域幅とサイズにおいて8つのRAMベースのオペレータ間で共有できます。詳細については、' Shared Memory Concept 'のセクションを参照してください。

表 70. デバイスリソースの一覧 imaFlex 2 Dual 100


imaFlex CXP-12 Quad および imaFlex CXP-12 Penta

リソース imaFlex CXP-12 Quad imaFlex CXP-12 Penta
カメラポート 4 5
CxpStatusPort 4 5
CxpRxTriggerPort 4 5
CxpTxTriggerPort 4 5
DMA 4 5
DmaFromHostPort 1 1
GPO1 10 OUT 12 OUT
GPI2 12 IN 12 IN
LED Ports1 6 6
SignalChannel3 4000 4000
EventPort4 32 32
EventID4 64 64
ImageChannel5 1024 1024
RAM6 1 x 1.5 GiB から 8 x 192 MiB まで 1 x 2.5 GiB から 8 x 320 MiB まで

1

これらのリソースは、Resourcesダイアログには表示されません。これらはオペレーターを介して制御されます。

2

GPIはResourcesダイアログには表示されません。同じリソースを複数回使用できます。このテーブルには、GPIポートの数がリストされています。

3

リソースSignalChannelを使用すると、TxSignalLinkオペレーターとRxSignalLinkオペレーターを接続できます。各TxSignalLinkオペレーターには、1つのリソースSignalChannelが排他的に必要です。複数のRxSignalLinkオペレーターが同じリソースSignalChannelを使用できるため、つまり複数のRxSignalLinkオペレーターが1つのTxSignalLinkオペレーターによって送信された信号を受信できます。1つのデザインで使用できるTxSignalLinkオペレーターは最大4000個です。RxSignalLinkオペレーターの数に制限はありません。リソースSignalChannelは、Resourcesダイアログに表示されます。

4

“EventID”は、指定されたプラットフォームに対してソフトウェアがサポートするイベントの最大数を指します。“EventPort”はイベントチャネルを表します。各チャネルは最大16個のイベントを処理できます。

5

リソースImageChannelを使用すると、TxImageLinkオペレータをRxImageLinkオペレータに接続できます。各TxImageLinkオペレータには、1つのリソースImageChannelが排他的に必要です。各リソースImageChannelは正確に1つのRxImageLinkオペレータに接続できるため、1つのデザインで使用できるのは最大1024個のTxImageLinkオペレータおよび1024個のRxImageLinkオペレータです。リソースImageChannelは、Resourcesダイアログに表示されます。

6

RAMインターフェイスは、帯域幅とサイズにおいて、すべてのRAMベースのオペレーター間で共有されます。詳細については、' Shared Memory Concept 'のセクションを参照してください。

表 71. デバイスリソースの一覧 imaFlex CXP-12 Quad および imaFlex CXP-12 Penta


microEnable 5 marathon

リソース mE5 marathon VCX-QP mE5 marathon VCL mE5 marathon VCLx
カメラポート 4 2 2
CameraControl - 2 2
DMA 4 4 4
GPO1 10 OUT 10 OUT 10 OUT
GPI2 12 IN 12 IN 12 IN
RAM 4 x 512 MiB 4 x 512 MiB 4 x 512 MiB
LED Ports1 4 2 2
SignalChannel3 4000 4000 4000
EventPort4 14 10 10
EventID4 64 64 64
ImageChannel5 1024 1024 1024

1

これらのリソースは、Resourcesダイアログには表示されません。これらはオペレーターを介して制御されます。

2

GPIはResourcesダイアログには表示されません。同じリソースを複数回使用できます。このテーブルには、GPIポートの数がリストされています。

3

リソースSignalChannelを使用すると、TxSignalLinkオペレーターとRxSignalLinkオペレーターを接続できます。各TxSignalLinkオペレーターには、1つのリソースSignalChannelが排他的に必要です。複数のRxSignalLinkオペレーターが同じリソースSignalChannelを使用できるため、つまり複数のRxSignalLinkオペレーターが1つのTxSignalLinkオペレーターによって送信された信号を受信できます。1つのデザインで使用できるTxSignalLinkオペレーターは最大4000個です。RxSignalLinkオペレーターの数に制限はありません。リソースSignalChannelは、Resourcesダイアログに表示されます。

4

EventIDは、特定のプラットフォームに対してソフトウェアがサポートするイベントの最大数を示します。EventPortはイベントチャネルを表します。1つのイベントチャネルで最大16個のイベントをホストできます。

5

リソースImageChannelを使用すると、TxImageLinkオペレータをRxImageLinkオペレータに接続できます。各TxImageLinkオペレータには、1つのリソースImageChannelが排他的に必要です。各リソースImageChannelは正確に1つのRxImageLinkオペレータに接続できるため、1つのデザインで使用できるのは最大1024個のTxImageLinkオペレータおよび1024個のRxImageLinkオペレータです。リソースImageChannelは、Resourcesダイアログに表示されます。

表 72. デバイスリソースの一覧 microEnable 5 marathon


共有メモリの概念

imaFlex 2 Dual 100

imaFlex 2 Dual 100プラットフォームには、それぞれ5 GiBの容量を持つ2つの別個の物理RAMバンクが含まれています。これらの物理バンクは、アプレットで使用されるRAMベースのVisualAppletsオペレーターの数に応じて、必要に応じて重複しないメモリ領域に分割されます。VisualApplets内では、これらの領域は仮想RAMバンクとして表示されます。オペレーターがRAMを必要とすると、仮想RAMバンクを予約します。これは、物理RAM内の専用の重複しない領域に対応します。

VisualAppletsのメモリオペレーターに関する実践的なガイダンスについては、Memory Elementsチュートリアルのトピックを参照してください。

imaFlex 2 Dual 100プラットフォームでは、物理RAMバンクあたり最大8つの重複しないメモリ領域を定義できます。つまり、両方のRAMインターフェイスあわせて合計16の領域になります。1つの物理インターフェイスに割り当てられているRAMオペレーターが1つだけの場合、そのインターフェイスの5 GiBの容量全体にアクセスできます。複数のオペレーターが同じ物理インターフェイスを共有する場合、利用可能なメモリはそれらの間で比例して分割されます。たとえば、8つのオペレーターが同じインターフェイスに割り当てられている場合、各オペレーターは5 GiBメモリの1/8を受け取り、オペレーターあたり約0.625 GiBになります。

imaFlex 2 Dual 100上のRAM帯域幅は、同じ物理インターフェイスに接続されているすべてのオペレーター間で均等に共有されます。特定の単一オペレーター専用ではありません。

  • デザインが1つのインターフェイス上の8つのRAMリソースすべてを使用する場合、各RAMベースのオペレーターは、オペレーターの効率係数によって調整された、合計インターフェイス帯域幅の約1/8を受け取ります。

  • RAMベースのオペレーターが1つだけ使用されている場合、そのインターフェースの最大帯域幅をフルに活用できます。

  • 2つのオペレーターが同じインターフェースを共有する場合、それぞれが総帯域幅の半分を取得し、以下同様となります。

プラットフォームの2つの物理RAMインターフェースは、VisualApplets内の16個の仮想RAMポートにマッピングされます。最初のRAMインターフェースはRAMリソースインデックス0~7にマッピングされ、2番目のRAMインターフェースはRAMリソースインデックス8~15にマッピングされます。

RAMポート間のRAMサイズ分布

割り当てられていない(したがって使用されていない)RAMポートは、メモリ容量の0%を受け取ります。これは、利用可能な総メモリが、RAMポートをアクティブに使用しているオペレーターの間でのみ分割されることを意味します。

  • 1つのポートのみを使用する場合:そのポートは利用可能なメモリの100%を受け取ります。

  • 2つのポートを使用する場合:各ポートは利用可能なメモリの50%を受け取ります。

  • 3つのポートを使用する場合:リソースIDが最も低いポートが50%を受け取り、残りの2つのポートがそれぞれ25%を受け取ります。

  • 4つのポートを使用する場合:4つのポートすべてがそれぞれ25%を受け取ります。

  • 5つのポートを使用する場合:最初の3つのポート(リソースIDが最も低いもの)がそれぞれ25%を受け取り、残りの2つのポートがそれぞれ12.5%を受け取ります。

  • 6つのポートを使用する場合:リソースIDが最も低い2つのポートがそれぞれ25%を受け取り、他の4つのポートがそれぞれ12.5%を受け取ります。

  • 7つのポートを使用する場合:リソースIDが最も低いポートが25%を受け取り、他の6つのポートがそれぞれ12.5%を受け取ります。

  • 8つのポートを使用する場合:すべてのポートがそれぞれ12.5%を受け取ります。

[注] 非対称メモリ割り当て

非対称サイズ分割の場合、同じ物理バンク内で最も低いRAMインデックスを持つポートにより多くの割り当てが与えられます。たとえば、3つのRAMポート(0、1、2)を使用する場合、ポート0はRAMサイズの50%を受け取り、ポート1および2はそれぞれ25%を受け取ります。ポートが8、9、10である場合も同様です。これらは2番目のRAMインターフェースにマッピングされますが、同じ物理RAMバンクに属しているためです。

RAMインデックスは連続している必要はなく、その絶対的な順序によって割り当てが決まります。RAMインデックスは仮想識別子であり、シーケンスに抜けがある場合でも、FPGAリソースの使用量には影響しません。たとえば、3つのRAMポート(1、5、7)を使用する場合:ポート1はRAMサイズの50%を受け取り、ポート5および7はそれぞれ25%を受け取ります。

すべてのリソースが同じ物理バンクにマッピングされる場合、RAMインデックスの割り当て方法による有利不利はありません。VisualAppletsが提供する自動割り当てを使用するか、特定的设计オペレーターが他のオペレーターよりも多くのRAMを必要とする場合は手動で調整できます。

[注] 独立したRAMインターフェース

両方の物理RAMインターフェースは完全に独立しています。たとえば、2つのオペレーターを使用し、一方が最初のRAMインターフェースに割り当てられ、もう一方が2番目に割り当てられている場合、各オペレーターはそれぞれのインターフェースの最大RAMサイズをフルに活用できます。

RAMポート間のRAM帯域幅分布

共有メモリコントローラーは、ラウンドロビンアルゴリズムを使用して、物理RAMインターフェース内のすべての割り当てられたポートに帯域幅を均等に分散します。このアルゴリズムは、クレジットベースの調停スキームに基づいています。ポートがアクティブになると、新しいRAMジョブを提供し続ける限り、設定された数のクレジットクロックサイクルの間アクティブ状態を維持します。アクティブなポートにジョブがなくなると、非アクティブ化され、アクティベーションのトークンは保留中のリクエストを持つ次のポートに移動します。これにより、アイドル状態のポートで帯域幅が無駄になることがなくなります。

クレジット値は、使用されるRAMオペレーターの数に基づいて、アプレットの合成時にファームウェアによってプログラムされます。これらは、実行時やFramegrabber SDKを通じて変更することはできません。ユーザーはクレジット設定にアクセスできません。

ポートがアクティブな間は、メモリコントローラーの帯域幅の100%を持ちます。物理バンク内の8つのポートすべてが均等にアクティブである場合、各ポートは時間の経過とともに総帯域幅の約1/8を受け取ります。その他の場合、実際の平均帯域幅は各ポートの負荷によって異なります。

物理RAMインターフェースは完全に独立しています。RAMベースのオペレーターを異なるインターフェースに割り当てることで、帯域幅の効率を最大化できます。帯域幅は、同じ物理RAMインターフェースに接続されているオペレーターの間でのみ共有されます。

RAMのサイズと帯域幅の最適化

imaFlex 2 Dual 100は、2つの独立した物理RAMインターフェースを提供します。各インターフェースには、専用の帯域幅とメモリサイズがあります。設計で最大の帯域幅とサイズを目指す場合、RAMベースのオペレーターを両方のRAMインターフェースに均等に配置します。ポート0~7は最初のRAMインターフェースにマッピングされ、ポート8~15は2番目にマッピングされます。

imaFlex CXP-12 Quad および imaFlex CXP-12 Penta

プラットフォームのimaFlex CXP-12 QuadおよびimaFlex CXP-12 Pentaには、1つの物理RAMバンクのみが搭載されています(そのサイズはプラットフォーム固有です)。この単一の物理バンクは、アプレット内で使用されるRAMベースのVisualAppletsオペレーターの量に応じて、重ならない領域に動的にフォーマットされます。これらの領域は、VisualApplets内で仮想RAMバンクとして表現されます。オペレーターがRAMリソースを予約すると、物理RAM内の排他的で重ならないメモリ領域にマッピングされた仮想RAMバンクを使用することになります。imaFlexプラットフォームでは、最大8つの重ならない領域を定義できます。1つのRAMオペレーターのみを使用する場合、オペレーターはプラットフォームの完全なRAMサイズを取得します。追加のオペレーターごとに割り当てられるサイズは、同じ物理インターフェースにドッキングするオペレーターの量に比例して、オペレーターが所有するサイズを減らします。8つのオペレーターを使用する場合、各オペレーターはプラットフォームメモリサイズの1/8を割り当てます。

ただし、RAMの帯域幅は、設計内のすべてのRAMベースのオペレーター間で共有されます。設計で8つのRAMリソースすべてを利用する場合、8つのRAMベースのオペレーターのそれぞれが、その特定のオペレーターの効率係数を差し引いた最大1/8 GB/sの専用帯域幅を持つことができます。設計でRAMベースのオペレーターが1つだけ使用されている場合、このオペレーターはプラットフォームの総帯域幅を取得します。2つのオペレーターを使用する場合、2つのオペレーターのそれぞれが総帯域幅の半分を取得し、以下同様となります。

RAMポート間のRAMサイズ分布

割り当てられていないため使用されないRAMポートには、常にメモリサイズの0%が割り当てられます。

  • 1つのポートを使用する場合:使用されるポートに100%が割り当てられます。

  • 2つのポートを使用する場合:両方の使用されるポートに50%が割り当てられます。

  • 3つのポートを使用する場合:リソースID番号が最も小さいポートに50%、その他の2つの使用されるポートにそれぞれ25%が割り当てられます。

  • 4つのポートを使用する場合:4つのポートすべてに25%が割り当てられます。

  • 5つのポートを使用する場合:リソースID番号が最も小さい3つのポートに25%、残りの2つのポートに12.5%が割り当てられます。

  • 6つのポートを使用する場合:リソースID番号が最も小さい2つのポートに25%、残りの4つのポートに12.5%が割り当てられます。

  • 7つのポートを使用する場合:リソースID番号が最も小さいポートに25%、残りの6つのポートに12.5%が割り当てられます。

  • 8つのポートを使用する場合:すべてのポートに12.5%が割り当てられます。

[注]

非対称なサイズ分割の場合、RAMインデックスが小さいポートほど大きな割り当てを受け取ります。例えば、3つのRAMポート(0、1、2)を使用する場合、ポート0には50%のRAMサイズが割り当てられ、ポート1とポート2にはそれぞれ25%ずつ割り当てられます。

RAMインデックスは連続していなくてもよく、その絶対的な順序によって割り当てが決定されます。RAMインデックスは仮想番号であり、順序にギャップがある場合でもFPGAリソースの使用量には影響しません。例えば、3つのRAMポート(1、5、7)を使用する場合、ポート1には50%のRAMサイズが割り当てられ、ポート5とポート7にはそれぞれ25%ずつ割り当てられます。

オペレータのRAMインデックスを割り当てる際に有利不利はありません。VisualAppletsの自動割り当てを使用するか、特殊なデザインオペレータが他のオペレータよりも多くのRAMサイズを必要とする場合に手動で調整してください。

RAMポート間のRAM帯域幅分布

共有メモリコントローラはラウンドロビンアルゴリズムを適用し、割り当てられたすべてのポートに帯域幅を均等に分散します。このアルゴリズムではクレジット調停スキームが使用されます。ポートがアクティブになると、そのポートが新しいRAMジョブを提供している限り、クレジットのクロックサイクルの間アクティブ状態を維持できます。アクティブになったポートにジョブがなくなると、そのポートは非アクティブ化され、アクティトークンはリクエストジョブが保留されている次の順番のポートに移行します。これにより、アイドル状態で帯域幅が無駄になることはありません。クレジットは、使用されるRAMオペレータの量に応じてアプレットの合成中にファームウェアによって排他的にプログラムされ、Framegrabber SDK/実行時に変更することはできません。ユーザーはクレジットのプログラミングにアクセスできません。アクティブなポートがRAMインターフェースを占有している間、メモリコントローラの100%の帯域幅にアクセスできます。8つのポートすべてが使用され、均等にアクティブである場合、時間の経過に伴う結果の帯域幅は各ポートにつき1/8になります。それ以外の場合、ポート上の負荷によって各ポートの実効平均帯域幅が定義されます。

microEnable 5 marathon

microEnable 5 marathonプラットフォームには、物理RAMバンクが1つだけ(サイズはプラットフォーム固有)搭載されています。この単一の物理バンクは、重複しない4つのメモリ領域にフォーマットされます。これら4つの領域は、VisualApplets内で4つの仮想RAMバンクとして表現されます。オペレータがRAMリソースを予約すると、物理RAM内の重複しない排他的なメモリ領域にマップされる仮想RAMバンクを使用することになります。

ただし、RAMの帯域幅はデザイン内のすべてのRAMベースのオペレータ間で共有されます。デザインが4つのRAMリソースすべてを利用する場合、4つのRAMベースのオペレータのそれぞれが、その特定のオペレータの効率係数を差し引いた最大1.6 GB/sの排他帯域幅を持つことができます。デザイン内でRAMベースのオペレータが1つだけ使用される場合、このオペレータは6.4 GB/sの合計帯域幅を取得します。2つのオペレータが使用される場合、2つのオペレータのそれぞれが合計帯域幅の半分を取得します。

[注] オペレータごとの帯域幅

オンボードRAMは合計6.4GB/sの帯域幅を提供します。個々のRAMベースのオペレータで使用可能な帯域幅は、合計帯域幅をデザイン内でインスタンス化されたすべてのRAMベースのオペレータの数で割った値になります。

RAMアーキテクチャ

図 443. RAMアーキテクチャ


RAMベースのオペレータを使用して設計を行う際には、このRAMアーキテクチャを考慮する必要があります。

帯域幅共有アーキテクチャのため、複数のRAMベースのオペレータを使用する場合でも、単一のRAMオペレータの入力に必要な帯域幅が少なくても、アプレット開発者はオペレータのメモリインターフェースの256ビットすべて(RAM Data Width)を利用して、メモリインターフェースを介したスループットを最大限に高める必要があります。

imaFlex 2 Dual 100 フレームグラバーを使用したデータ転送

imaFlex 2 Dual 100には、C0とC1の2つのQSFP28ファイバーコネクタが用意されています。

imaFlex 2 Dual 100 C1およびC0コネクタ

図 444. imaFlex 2 Dual 100 C1およびC0コネクタ


両方のコネクタがCoF(CXP over Fiber)およびデータ転送プロトコルをサポートしています。各ファイバーコネクタには独自のLEDがあります。コネクタC0には4つのLEDが割り当てられ、コネクタC1には1つのLEDが割り当てられています。

各コネクタはQSFP28光モジュールをサポートしています。QSFP28インターフェースは、双方向に4つのファイバー接続(4つのRX接続と4つのTX接続)を提供します。ファイバー接続は、オペレータードキュメントにおいてレーンと呼ばれます。各QSFP28ポートには、RXおよびTX方向の両方に0〜3のラベルが付いた4つのファイバーレーンがあります。各レーンは25 Gbit/sで動作します。したがって、1つのQSFP28コネクタで、TXおよびRX方向に合計100 Gbit/sの累積帯域幅を伝送できます。

QSFP28インターフェース(図解)

図445:QSFP28インターフェース(図解)


imaFlex 2 Dual 100は、複数のフレームグラバー間でデータを双方向に転送するためのデータフォワーディング機能を提供します。VisualAppletsにおけるデータフォワーディングは、デイジーチェーンやより高度なモデルなど、データおよびメタデータを転送するためのさまざまなトポロジーをサポートします。データフォワーディングの動作は、VisualAppletsオペレーターを通じてユーザーが完全に制御します。カメラデータ、アプレット生成データ、およびメタデータは、TXおよびRXの両方向で独立して伝送できます。また、VisualAppletsはレーンを多重化し、2つの独立した仮想チャネルを使用して、単一のファイバーレーン上でメタデータと通常の間画像データを同時に送信できるようにします。メタデータは、タイムリーな配信を確保するために優先されます。

ファイバー技術は双方向通信をサポートしているため、高度なマスター・スレーブアプリケーションにより、マスターがスレーブデバイスの受信データを制御し、そこから処理結果を収集できるようになります。スレーブのGPUまたはCPUで生成された処理結果は、DmaFromPCを介して転送され、データフォワーディングデータオペレーターを通じてマスターフレームグラバーに送り返されます。

一般的なデータフォワーディングのデイジーチェーン構成では、選択されたカメラデータが複数のフレームグラバーに転送されます。これらのフレームグラバーは、非常に低いレイテンシーでPCIe経由で外部GPUにデータを送信します。

データフォワーディング

図446:データフォワーディング


データフォワーディングポート接続

図447:データフォワーディングポート接続


CoF(CXP over Fiber)は、4つのダウンストリーム接続と1つのアップストリーム接続を使用します。2つのフレームグラバー間のデータフォワーディングリンクは、必要なデータのみを送信するように構成されており、ネイティブのCoFトラフィックではなく、VisualAppletsのデータおよびメタデータストリームを伝送します。CoFとデータフォワーディングはどちらも前方誤り訂正(FEC)によって保護されています。

マスターフレームグラバーはカメラに接続し、選択したデータ部分を次のスレーブフレームグラバーに転送します。各スレーブフレームグラバーは自身の処理に必要なデータを抽出し、イメージストリームの残りの未処理の部分をシーケンス内の次のスレーブに転送します。チェーン内の最後のフレームグラバーはエンドポイントとして機能し、データをそれ以上転送しません。

上記の例は、デイジーチェーンのトポロジーを簡略化した表現です。より高度な構成では、接続された2つのフレームグラバー間でデータを自由に交換できます。つまり、相互間に1、2、3、または4レーンの接続を張ることができます。RX方向とTX方向では、異なる数のレーンを使用できます。

複数の光レーンを仮想チャネルに統合できるため、単一の複数のデータチャネルを単一のQSFP28コネクタ経由で伝送できます。画像データの伝送に加えて、VisualAppletsは各光レーンに対して専用のメタチャネルを提供します。このメタチャネルは通常の画像データよりも優先され、非常に低いジッターとレイテンシーで伝送されるため、アプリケーションでタイムスタンプやボード間の同期を実装できるようになります。また、ファイバー接続の反対側にいるスレーブパートナーを設定するなど、小さなサイドバンド情報もメタチャネルを介して伝送できます。パートナーは、自身のメタチャネルを介して制御およびステータス情報をマスターに送り返すことができます。また、各フレームグラバーは、最大100 Gb/sの集約帯域幅で処理済み画像データをパートナーに送信することもできます。

単一のQSFP28インターフェースを介して、2つのフレームグラバー間に最大4つのメタチャネルをTX方向とRX方向に独立して張ることができます。各メタチャネルは25 Gb/sで動作します。画像データチャネルは、1、2、3、または4つの光レーンにまたがって仮想データ伝送チャネルを形成できます。

QSFP28データフォワーディングインターフェースでは、仮想データチャネルの以下の組み合わせが可能です。

  • 1 x4チャネル:100 Gbit/s

  • 75 Gbit/sで動作する1 x3チャネルおよび25 Gbit/sで動作する1 x1チャネル

  • それぞれ50 Gbit/sで動作する2 x2チャネル

  • 50 Gbit/sで動作する1 x2チャネルおよび25 Gbit/sで動作する2 x1チャネル

  • それぞれ25 Gbit/sで動作する4 x1チャネル

RX側とTX側は完全に独立して動作します。つまり、逆方向(RX)の方向は、必要に応じて実装することも省略することもできます。実装する場合でも、順方向(TX)に対して対称である必要はありません。

メタチャネルとデータチャネルは独立して動作します。各メタチャネルは正確に1つのファイバーレーンを使用し、25 Gb/sで動作します。メタチャネルは少量のデータの伝送用に設計されています。優先順位があるため、メタチャネルの伝送中、同じファイバーレーン上の通常のデータ伝送は一時停止します。

データ転送オペレータ

データフォワーディング機能をサポートするために、VisualAppletsには以下のオペレーターが用意されています。

  • DFTxData – 1〜4レーンにまたがり、画像データを伝送するためのオペレーター。

  • DFRxData – 1〜4レーンにわたる、画像データを受信するためのオペレーター。

  • DFTxMeta – 1レーンのメタデータを送信するためのオペレーター。

  • DFRxMeta – 1レーンのメタデータを受信するためのオペレーター。

  • DFLed – フロントスロットのQSFP28 LED(2色:赤、緑、オレンジ)にアクセスするためのオペレーター。C1には1つのLEDがあり、C0には4つの2色LED(レーンごとに1つ)があります。

Baslerは、データ転送の例をVisualAppletsのデザインとして、C++ SDKコントロールアプリケーションとともに提供しています。これらの例では、データ転送にこれらのオペレーターを使用する方法を確認できます。これらの例は、VisualAppletsのサンプルとして次の場所で入手できます: Examples/Acquisition/DataForwarding。これらのデータ転送の例に関するドキュメントは、 「Data Forwarding for CoaXPress over Fiber Frame Grabber」 トピック( 基礎と例.

VA Design Example for a Master in a Data Forwarding Topology

図448:VA Design Example for a Master in a Data Forwarding Topology


VA Design Example for a Slave Master in a Data Forwarding Topology

図449:VA Design Example for a Slave Master in a Data Forwarding Topology


VA Design Example for an Endpoint Slave Master in a Data Forwarding Topology

図450:VA Design Example for an Endpoint Slave Master in a Data Forwarding Topology


オプティカル・トポロジー

一定の制限の下で、より複雑なカメラとフレームグラバーのモデルも可能です。2台のフレームグラバー間の光伝送はレイテンシーが非常に低く、データワードが一方のフレームグラバーからもう一歩のフレームグラバーに移動するのにかかる時間は約120 nsです。

デイジーチェーン

デイジーチェーン接続は、複数のCPU/GPUクラスター間で処理負荷を分散させるための最も一般的なアプローチです:

デイジーチェーン(図解)

図451:デイジーチェーン(図解)


マスターフレームグラバーはカメラに接続され、2つ目のQSFP28ポートは次のスレーブに接続されます。各スレーブは受信データの一部を処理し、残りのデータを次のデバイスに転送します。チェーン内の最後のフレームグラバーはエンドポイントとして機能します。最後のフレームグラバーを除くすべてのフレームグラバーが、両方のQSFP28ポートを使用します。

デュアルカメラ

デュアルカメラ

図452:デュアルカメラ


アプリケーションによっては、2台の100 Gb/sカメラを1台のフレームグラバーに接続することが可能です。これには、カメラが最大帯域幅で動作していないこと、またはRAMにデータを保存する前にVisualAppletsで前処理を実行して帯域幅をわずかに削減し、両方のカメラストリームが2つのRAMインターフェースに収まるようにすることが必要です。この構成では、フレームグラバーはVisualAppletsで追加の処理を実行して結果のデータレートを削減し、約13 GB/sという制限されたPCIeのスループットに一致させる必要があります。

デュアルマスター

デュアルマスター

図453:デュアルマスター


この場合、各フレームグラバーは独自のカメラに接続されます。2つ目のQSFP28ポートはフレームグラバー間通信に使用され、複雑なコンピューティングタスクや同期のために両方向に最大100 Gbit/sでのデータ交換を可能にします。

トリプルマスター

トリプルマスター

図454:トリプルマスター


このトポロジーでは、各フレームグラバーはそれぞれ専用のカメラに接続されます。中央のフレームグラバーは、残りのQSFP28ポートを使用して、4つのレーンをそれぞれ2つのレーンを持つ2つのQSFP28モジュールに分割する特殊な光ファイバーケーブルを介して、他の2台のマスターフレームグラバーに接続します。外側の2台のフレームグラバーにとっての直接接続は、それぞれのカメラへのフル4レーンリンクと、中央のフレームグラバーへの2レーンリンクのみです。これら2つのレーンにより、最大50 Gbit/sの速度でのフレームグラバー間通信が可能になります。