LabVIEW RIOアーキテクチャをベースにしたCompactRIOコントローラは、高性能な64ビットIntel Atom E3800 System-on-Chip (SoC) ファミリやXilinx Kintex-7 FPGAなど、最新の技術を採用しています。Intel Atom SoCは、統合GPUやマルチコアプロセッサなど、大量のパフォーマンスと機能を提供します。Kintex-7 325T FPGAは、他のCompactRIOコントローラに搭載されているFPGAに比べ、ほぼ3倍の複雑な論理ブロックと、13倍を超えるDSPスライスを備えています。FPGAとプロセッサはPCI Expressバスを介して通信を行いますので、スループットが大幅に向上するとともに、16本のDMAチャンネルにアクセスすることが可能になります。
新しいCompactRIOコントローラに採用されているLabVIEW RIOアーキテクチャにより、ソフトウェアの柔軟性が向上し、1つのオペレーティングシステムの同じターゲット上でHMIと制御タスクを統合することができます。それが可能となるのは、マルチコアのIntel Atom SoCとNI Linux Real-Time OSの特性によるものです。このOSでは開発者によるタスクの優先順位付けが可能で、HMIソフトウェアタスクよりも同じアプリケーションで実行している制御タスクに高優先順位を割り当てることができます。
そうした技術を組み合わせることで、システムスループットが大幅に向上し、閉ループ制御アプリケーションの遅延時間を短縮することができます。CompactRIOコントローラは、システムの複雑さとコストを削減しながら、組込システムの設計者に柔軟で強力なハードウェアを提供します。
CompactRIOコントローラの機能を実証するため、NIのR&Dグループは一連の制御および監視アプリケーションのベンチマークテストをまとめました。これらのテストは、CompactRIOコントローラ (NI cRIO-903x) のすべてのデュアルコアおよびクアッドコアバリアントに等しく適用できます。
ベンチマークテストとは、一般的な制御/監視アプリケーションや、そのようなアプリケーションで行われる主なタスクを想定して実施するテストです。以下の表はこの調査で実施したテストの概要を示しています。
表1: - アプリケーションの性能とスループットの計測のためNI CompactRIOコントローラに対して行ったテスト
この調査は、以下のハードウェアターゲットを念頭に実施しました。
この調査では、CompactRIOコントローラに焦点を当て、それがデュアルコアバリアントではcRIO-9025、クアッドコアバリアントではcRIO-9082など、同じファミリの既存のコントローラと比較した場合の性能を調べていますが、CompactRIOシステムが提供する可能性のより完全な全体像を提示できるよう、参照ポイントとしてcRIO-9068などのCompactRIOファミリの他の代表的なハードウェアターゲットも含めています。
それらのCompactRIOコントローラの相対的性能を比較するための一般的測定基準として、CPU使用率を使用しています。それぞれのテストでは、データを転送するチャンネル数や制御ループレートを変動させた場合の安定状態でのCPU使用率を計測します。そういった測定基準によって、追加のコードやループレートの向上、転送チャンネルの増加が可能なリソースがあるかどうかがわかります。
その他の注意事項:
新しい高性能CompactRIOシステムに採用されている技術によって、複雑な実世界アプリケーションでもかつてない優れた性能を実現できます。制御シナリオをテストするため、「CompactRIOサンプルプロジェクトのLabVIEW FPGA制御」を使用しました。このサンプルプロジェクトは、CPUにさらなる負荷をかけるため、Real-Timeコントローラの8チャンネル3次スプライン軌道生成アルゴリズムを使用して拡張されています。
図1: 「CompactRIOサンプルプロジェクトのLabVIEW FPGA制御」のアーキテクチャ。8つの並列チャンネルを使用する3次スプライン軌道生成のアルゴリズムが含まれている
下図は、制御ループを1.5 kHzで実行している際のCPU使用率を示しています。このレートでは、クアッドコア高性能コントローラはプロセッサリソースのおよそ15%を使用しています。これは、70%使用していたcRIO-9025コントローラと比較して大幅な改善となります。同様に、クアッドコア性能コントローラはプロセッサリソースの5%を使用しました。これは、cRIO-9082コントローラで観察されたパフォーマンスと非常によく似ています。
図2: 1.5 kHzの8チャネル3次スプライン軌道生成アルゴリズムを実行する制御アプリケーションを実行するために必要なプロセッサの使用率
CompactRIOコントローラで組込UIオプションを有効にして、テストを再度行いました。ただしこのテストでは、CompactRIOサンプルプロジェクトのLabVIEW FPGA制御のHMI部分にストレスがかからないため、CPU使用率に大きな変化は見られませんでした。
監視アプリケーションの一般的なタスクは、データをI/OチャンネルからReal-Timeプロセッサに移動させて処理、記録、視覚化を行うことです。この状況を再現し、データ転送を行うチャンネル数を変えながらCPU使用率を計測するためのシンプルなテストを作成しました。各チャンネルでは16ビットサンプルが100 kHzで転送されます。そのテストには、ディスクへの転送やオンライン処理は含まれません。
図3: 監視アプリケーションにおける簡素化されたデータ転送タスクのアーキテクチャ図
下図は、100チャンネルを100 kHzで転送した場合を示しています。このテストでは、ハードウェアアーキテクチャのわずかな違いが原因となるボトルネックを認識する必要があります。たとえば、cRIO-9068とCompactRIOコントローラはそれぞれ、異なるバステクノロジで実装された16のDMAチャンネを備えており、理論上では両方とも注目に値する最大帯域幅レートを有しています。cRIO-9068コントローラの場合は320 MB/秒、CompactRIOコントローラの場合は250 MB/秒です。ただし、CompactRIOコントローラは、プロセッサのパフォーマンスが優れているため、低いCPU使用率でより多くの転送量を維持できます。
図4: 16ビットサンプルの100チャンネルを転送 (チャンネルあたり100 kHzで転送) するために必要なプロセッサの使用量
制御アプリケーションの性能テストと同様、HMIに負荷がかからないため、CompactRIOコントローラの組込UIオプションの効果は重要ではありません。組込UIの効果を確認するには、テスト3をご覧ください。
cRIO高性能コントローラの機能を全て活用するには、複雑な実世界アプリケーションを用いたテストを利用するのがベストです。アプリケーションの規模が大きくなるほど、様々な種類の監視/制御タスクが混在しています。例えば、マルチレート制御による複数の処理ループ、データ処理、I/Oチャンネルからのデータ転送、ディスクへのデータ転送、ネットワーク経由でのリモートHMIへのデータ通信、タイムクリティカルでないヘルス/状態監視タスクなどです。
上記のようなタスクを実行する複雑なアプリケーションでは、RT FIFOやタイミングループ、ネットワークストリームのような一般的なLabVIEW構成要素を使用して、様々なアプリケーション要素間で協調し通信しています。さらに、フロントパネル表示器に高レートでデータをパブリッシュするだけのタスクもあり、これはcRIO高性能コントローラの組込UI機能に負荷がかかります。
図5: 複雑な実世界制御・監視アプリケーションのアーキテクチャ図
NI cRIO-9025は、このアプリケーションを使用して、およそ950Hzという最大制御ループレートを実現できました。このレートでCPU使用率は91%になりますが、デュアルコア性能コントローラなら、同じレートを実現するのにプロセッサリソースの15%しか使用しませんでした。そのため、利用可能なCPUリソースが大幅に増え、アプリケーションタスクの追加が可能となったほか、この複雑な制御/監視アプリケーションで、2 kHzを優に超える速度にまでループレートを高めることができました。一方、クアッドコアバリアントは、観測されたすべてのループレートでcRIO-9082と非常に類似したパフォーマンスを示しました。
図6: 複雑なアプリケーションを実行したときのCPUの使用率を比較した。アプリケーションには、ループレートが異なる一般的な制御・監視タスクが数多く含まれている
CompactRIOコントローラを使用すると、組込UIをサポートするローカルHMIが実装されますので、システムを簡素化しコストを削減することができます。それが可能なのは、これらの新しいコントローラでは最新のIntel Atomプロセッサとそれに付随するグラフィックスサポートを搭載しているためです。同プロセッサが提供するグラフィックスのサポートが、LabVIEWによってタッチ対応のUIと制御システムロジックを構築するための性能の基盤になっています。そのような統合を可能にするために、LabVIEW開発環境とNI Linux Real-Time OSはタスクの優先度を明らかにします。そのため開発者はHMIソフトウェアタスクより同じアプリケーションで実行している制御タスクの方に高い優先度を割り当てることができます。
この方式では、ターゲットのリソースがシステムの制御とユーザインタフェースのグラフィックの動作の両方に使用されます。そのためシステムハードウェアのコストが削減でき、システムメンテナンスの負担が軽減されるとともに、ソフトウェア開発が簡素化されますが、他のディスプレイオプションに比べるとコントローラのリソースをより多く消費します。
組込UIによるプロセッサリソースへの影響を測定するため、テスト3を修正して、要素を高速でアップデートすることでHMIに連続的な負荷をかけました。下図は、非常にアクティブなユーザインタフェースで組込UI機能を使用したテスト3の結果を示しています。
図7: 組込UIを有効にしてユーザインタフェースを高い頻度で更新すると、CPUの使用率が常に約3~10%高まることが見て取れる
限度までストレスがかかった状態で組込UI機能を使用すると、CPU使用率がデュアルコア性能コントローラで約10%、クアッドコア性能コントローラで3%増加します。テスト1および2と同様に、転送チャンネル数の変動に拘わらず、組込UI機能の効果は一定に保たれます。
Intel Atom SoCは、組込UIのグラフィック機能をサポートするため、オンボードGPUを採用してCPUを補強しています。GPUは高頻度のプロセッサ割り込みコールによってプロセッサと通信します。その動作によりLabVIEW Real-Timeアプリケーションでは管理できないジッタが生じます。Intel Atom CPUの高性能により、GPUを更新するための可変処理時間のこの増加は、テスト3でベンチマークされたアプリケーションの6 kHz未満の制御ループレートで持続可能です。しかし、組込UIを使用して高い制御ループレートを実現するには、GPUを無効にするか、以下のリンクで説明する通り、LabVIEW制御コードをオンボードFPGAに移行させる必要があります。
こうした組込UIに関する注意点がシステムの性能に影響する可能性のあるアプリケーションについては、以下の推奨事項を参考にしてください。
モーションコントロール、データロギング、画像入力、HMIなど、組込アプリケーションで実行するタスクはますます増えています。テクノロジと独自の機能を組み合わせて開発時間の短縮とシステムの簡素化、コストの低減を実現するNI CompactRIOコントローラは、それらのアプリケーションに最適な選択となります。
CompactRIOコントローラは、他のコントローラファミリ製品に比べ性能が大幅に向上しているほか、NI Linux Real-Timeなど主要な実現技術と互換性のあるターゲットの選択肢がさらに広がります。NI CompactRIOコントローラはLabVIEW RIOアーキテクチャに基づいた柔軟な高性能ハードウェア/ソフトウェア技術を採用しているため、広範な組込の制御/監視アプリケーションに利用することができます。
この一連のベンチマークにより、CompactRIOコントローラは、cRIO-9025といった同等のCompactRIOコントローラ既存製品に比べ、パフォーマンスが約4~8倍に向上していることがわかりました。さらに、クアッドコアバリアントのパフォーマンスはcRIO-908xと非常によく似ています。