Contrôleur CompactRIO hautes performances : tests de débit et de performances

Aperçu

Le contrôleur hautes performances CompactRIO, qui s'appuie sur l'architecture LabVIEW RIO, est doté des technologies les plus récentes telles que la famille de systèmes sur puce (SoC) Atom E3800 64 bits d'Intel et les FPGA de la série Kintex-7 de Xilinx. Le SoC Atom d'Intel offre des performances et des fonctionnalités de haute qualité, avec notamment une unité de traitement graphique intégrée et un processeur multi-cœur. Le FPGA 325T de la série Kintex-7 a quasiment 3 fois plus de blocs logiques complexes et plus de 13 fois plus de slices DSP que les FPGA présents dans les autres contrôleurs CompactRIO. Le FPGA et le processeur communiquent par le biais du bus PCI Express, qui améliore considérablement le débit et permet d'accéder à 16 canaux DMA.

L'architecture LabVIEW RIO – sur laquelle repose le nouveau contrôleur hautes performances CompactRIO – offre la souplesse nécessaire pour consolider l'IHM et les tâches de contrôle sur la même cible et dans un seul système d'exploitation. Cela est rendu possible par les fonctionnalités du SoC Atom d'Intel multi-cœur et du système d'exploitation NI Linux Real-Time. Ce système d'exploitation donne au développeur la possibilité de hiérarchiser les tâches et d'attribuer notamment une priorité plus haute aux tâches de contrôle, par rapport aux tâches logicielles de l'IHM qui s'exécutent dans la même application.

La combinaison de ces technologies améliore considérablement le débit du système, tout en réduisant la latence des applications de contrôle en boucle fermée. Les concepteurs de systèmes embarqués trouveront dans ce contrôleur CompactRIO un matériel souple et performant capable de réduire la complexité et le coût de leurs systèmes.

Pour prouver ses capacités, le groupe R&D de NI a effectué une série de tests sur des applications de contrôle et de surveillance. Ces derniers sont valables pour tous les modèles de contrôleurs CompactRIO hautes performances, double cœur ou quadricœur (NI cRIO-903x).

Contenu

Configuration des tests et mesures

Ces tests ont été conçus pour représenter des applications de contrôle et de surveillance courantes, ainsi que les principales tâches qu'elles exécutent. Reportez-vous au tableau ci-dessous pour connaître les tests entrepris dans cette étude.

 

Tableau 1 – Tests effectués sur des contrôleurs CompactRIO pour mesurer les performances et le débit d'applications

 

Cette étude a été menée avec les cibles matérielles suivantes :


NI cRIO-9025 | processeur PowerPC 800 MHz
NI cRIO-9068 | processeur ARM Cortex-A9 double cœur 667 MHz
NI cRIO-903x | processeur double cœur Atom d'Intel 1,33 GHz
NI cRIO-903x | processeur quadricœur Atom d'Intel 1,91 GHz
NI cRIO-9082 | processeur double cœur Core i7 d'Intel 1,33 GHz

 

Bien que cette étude soit centrée sur le contrôleur CompactRIO hautes performances – en comparaison avec les contrôleurs précédents de la même famille comme le cRIO-9025 double cœur ou le cRIO-9082 quadricœur –, les cibles matérielles représentatives des autres familles CompactRIO telles que le cRIO-9068 sont également citées en référence, afin de présenter de manière plus globale l'ensemble des possibilités qu'offrent les systèmes CompactRIO.


L'utilisation de l'unité centrale est le paramètre commun utilisé pour comparer les performances relatives de chaque contrôleur CompactRIO. Pour chacun de ces tests, l'utilisation de l'unité centrale est mesurée à un état stable ; seuls le nombre des voies d'E/S et les fréquences de boucles de contrôle varient. Ces résultats indiquent les ressources disponibles pour ajouter du code supplémentaire, augmenter les fréquences de boucle et augmenter le nombre de voies de transfert.


Remarques supplémentaires :


• Pour les systèmes CompactRIO comportant des processeurs multi-cœurs, les résultats de chaque cœur correspondent à la moyenne des données recueillies.
• Dans le cas du contrôleur CompactRIO hautes performances, les tests ont été effectués avec l'option d'interface utilisateur (IU) embarquée activée puis désactivée, afin de mesurer l'impact de cette fonctionnalité sur les performances globales du système.

 

Test 1 – Test de performances de l'exemple de projet LabVIEW FPGA Control

La combinaison des technologies employées par le nouveau système CompactRIO apporte une amélioration sans précédent des performances dans le cadre d'applications concrètes complexes. Pour tester un scénario de contrôle, nous avons sélectionné l'exemple de projet LabVIEW FPGA Control on CompactRIO. Cet exemple de projet a été complété par un algorithme de génération de trajectoire de spline cubique sur 8 voies sur le contrôleur temps réel pour solliciter davantage l'unité centrale.

 

Figure 1 – Diagramme architectural de l'exemple de projet LabVIEW FPGA on CompactRIO, comprenant un algorithme de génération de trajectoire de spline cubine sur 8 voies

 

La Figure ci-dessous montre l'utilisation de l'unité centrale au moment de l'exécution de la boucle de contrôle à une fréquence de 1,5 kHz. À cette fréquence, le contrôleur hautes performances double cœur utilise environ 15 % des ressources de son processeur. Il s'agit d'une nette amélioration par rapport au contrôleur cRIO-9025, qui utilisait 70 % des ressources de son processeur. De même, le contrôleur hautes performances quadricœur utilisait 5 % des ressources de son processeur. Ce résultat est très similaire aux performances observées sur le contrôleur cRIO-9082.


Figure 2 – Utilisation du processeur requise pour lancer une application de contrôle exécutant un algorithme de génération de trajectoire de spline cubique sur 8 voies à une fréquence de 1,5 kHz

 

Ce test a été réitéré avec l'option d'IU embarquée activée sur le contrôleur CompactRIO hautes performances. Cependant – et bien qu'il ne sollicite pas la portion IHM de l'exemple de projet LabVIEW FPGA Control on CompactRIO –, aucune modification particulière n'a été observée au niveau de l'utilisation de l'unité centrale.

 

Test 2 – Test du débit d'une application de surveillance

Dans les applications de surveillance, il est courant de devoir déplacer des données des voies d'E/S vers les processeurs temps réel pour poursuivre les opérations de traitement, d'enregistrement ou de visualisation. Un test simple a été créé pour reproduire ce scénario et mesurer l'utilisation de l'unité centrale tout en faisant varier le nombre de voies qui transfèrent des données. Chaque voie transfère des échantillons 16 bits à une fréquence de 100 kHz. Ce test n'inclut pas d'opération de traitement en ligne, ni de transfert en continu sur disque.

 

Figure 3 – Diagramme architectural d'une tâche simplifiée de transfert de données dans le cadre d'une application de surveillance

 

La Figure ci-dessous indique les résultats d'un transfert de 100 voies à 100 kHz. Dans le cadre de ce test, il faut prendre en compte les éventuels goulots d'étranglement qui peuvent résulter de légères différences au niveau des architectures matérielles. Par exemple, bien que le contrôleur CompactRIO hautes performances et le modèle cRIO-9068 disposent tous les deux de 16 voies DMA implémentées avec différentes technologies de bus, ils présentent des débits maximum théoriques très différents : 320 Mo/s pour le contrôleur cRIO-9068 et 250 Mo/s pour le CompactRIO hautes performances. Pourtant, le contrôleur CompactRIO hautes performances peut supporter un plus grand nombre de tranferts en continu en utilisant moins de ressource d'unité centrale, car son processeur est plus performant.

 

Figure 4 – Utilisation du processeur requise pour transférer en continu 100 voies d'échantillons 16 bits à 100 kHz par voie

 

Comme pour le test de performances de l'application de contrôle, l'impact de l'option d'IU embarquée sur le CompactRIO hautes performances n'est pas évident, étant donné que ce test ne sollicite pas l'IHM. Pour en observer les effets, consultez le Test 3.

 

Test 3 – Test de performances d'une application concrète complexe

Le meilleur moyen d'estimer les performances de l'ensemble des fonctionnalités du contrôleur cRIO est probablement de les tester dans le cadre d'une application concrète complexe. Les applications de grande envergure combinent généralement plusieurs types de tâches de contrôle et de surveillance courantes, comme plusieurs boucles de traitement avec des cadencement différents, un traitement et un transfert en continu des données provenant des voies d'E/S, un transfert en continu sur disque, une communication des données sur le réseau vers une IHM distante, ainsi que des tâches de surveillance d'état non critiques au niveau du temps.

Une application complexe présentant ces tâches a été implémentée à l'aide des composants architecturaux LabVIEW communs, tels que des FIFO temps réel, des boucles cadencées et des flux réseau pour coordonner les différents composants de l'application et leur permettre de communiquer entre eux. De plus, il existe une tâche dédiée à la publication de données sur un indicateur de la face-avant à haute fréquence, pour solliciter au maximum la fonctionnalité d'IU embarquée sur le contrôleur cRIO.

 

Figure 5 – Diagramme architectural d'une application de contrôle et de surveillance concrète complexe

 

Dans le cadre de cette application, le cRIO-9025 atteint une fréquence de boucle de contrôle maximale d'environ 950 Hz. À cette fréquence, l'utilisation de l'unité centrale s'élève à 91 %, tandis que le contrôleur hautes performances n'utilise que 15 % des ressources du processeur disponibles pour atteindre la même fréquence. Cela laisse une quantité importante des ressources de l'unité centrale disponible pour ajouter des tâches d'applications supplémentaires ou augmenter la fréquence de boucle pour atteindre des vitesses dépassant nettement les 2 kHz pour cette application complexe de contrôle et de surveillance. D'un autre côté, le modèle quadricœur a démontré des performances très similaires à celles du cRIO-9082 à toutes les vitesses de boucles étudiées.

Figure 6 – Utilisation des ressources de l'unité centrale nécessaire pour exécuter une application complexe avec un grand nombre de tâches courantes de contrôle et de surveillance à des vitesses de boucles de contrôle différentes.

Effets de l'interface utilisateur (IU) embarquée

Le contrôleur hautes performances CompactRIO réduit le coût et la complexité des systèmes en implémentant une IHM locale avec un support d'interface utilisateur embarquée. En effet, ce nouveau contrôleur incorpore le dernier processeur Atom d'Intel avec support des graphismes, qui constitue une solide base pour construire à la fois la logique du système de contrôle et l'interface utilisateur tactile avec LabVIEW. Pour cela, l'environnement de développement LabVIEW et le système d'exploitation NI Linux Real-Time permettent au développeur de hiérarchiser les tâches et d'attribuer notamment une priorité plus haute aux tâches de contrôle, par rapport aux tâches logicielles de l'IHM qui s'exécutent dans la même application.

Dans ce cas, les ressources de la cible sont utilisées à la fois pour le contrôle du système et pour gérer les graphismes de l'interface utilisateur. Cela réduit le coût du matériel du système, les efforts de maintenance, ainsi que la complexité du développement logiciel, mais consomme davantage de ressources du contrôleur comparé à d'autres méthodes d'affichage.

Pour mesurer l'impact de l'interface utilisateur embarquée sur les ressources du processeur, le Test 3 a été modifié pour solliciter en continu l'IHM en mettant à jour ses composants à des fréquences élevées. La Figure ci-dessous montre l'impact de l'utilisation de la fonctionnalité de l'interface utilisateur embarquée avec une interface utilisateur très active, comme celle du Test 3.

Figure 7 – Une utilisation constante de l'unité centrale d'environ 10 % peut être observée lorsque la fonctionnalité d'IU embarquée est activée et que l'IU est mise à jour à des fréquences élevées.

 

Lorsque cette fonctionnalité est pleinement sollicitée, son utilisation résulte en une augmentation de l'utilisation de l'unité centrale de 10 % sur le contrôleur hautes performances double cœur, et de 3 % sur le modèle quadricœur. Comme pour les Tests 1 et 2, l'impact de la fonctionnalité d'IU embarquée reste inchangé en dépit des variations au niveau du nombre de voies transférées.

Pour supporter les capacités graphiques de l'IU embarquée, le système sur puce (SoC) Atom d'Intel utilise un GPU pour améliorer les capacités de l'unité centrale. Le GPU communique avec le processeur par le biais d'appels d'interruption fréquents, qui prennent du temps de traitement sur celui requis par l'application LabVIEW Real-Time. Dans le cadre du test 3, les hautes performances de l'unité centrale Atom d'Intel maintiennent l'augmentation du temps de traitement dédié à la mise à jour du GPU dans des fréquences de boucles de contrôle inférieures à 6 kHz. Pour atteindre des fréquences de boucle plus élevées tout en continuant à utiliser l'IU embarquée, il faudra soit désactiver le GPU, soit basculer le code de commande LabVIEW sur le FPGA embarqué, en suivant les indications ci-dessous.

Pour les applications dans lesquelles ces remarques concernant l'IU embarquée pourraient potentiellement compromettre les performances du systèmes, tenez compte des recommandations suivantes :

  • Le cœur du processeur peut permettre d'isoler davantage de tâches en affectant l'exécution de tâches dans LabVIEW. En savoir plus.
  • Passez le code de contrôle LabVIEW dans la logique matérielle du FPGA intégré si davantage de fiabilité et d'isolation sont requises. En savoir plus
  • Désactivez le GPU du système sur puce (SoC) Atom d'Intel pour diminuer le jitter au détriment de l'utilisation de l'unité centrale. En savoir plus

Conclusions

Les applications embarquées exécutent une quantité croissante de fonctions telles que la commande de mouvement, l'enregistrement de données, l'acquisition d'images et les IHM. Avec la combinaison de technologies et les fonctionnalités uniques qu'il présente et qui accélèrent le développement tout en réduisant le coût et la complexité des systèmes, le contrôleur hautes performances CompactRIO est parfaitement adapté à ces applications.

Le contrôleur CompactRIO hautes performances démontre une nette amélioration des performances par rapport aux autres familles de contrôleurs, et élargit la gamme de cibles compatibles en utilisant des technologies innovantes telles que NI Linux Real-Time. Il offre des technologies matérielles et logicielles souples et performantes basées sur l'architecture LabVIEW RIO, parfaitement adaptées à un large éventail d'applications de contrôle et de surveillance embarquées.

À l'issue de cette série de tests, le contrôleur CompactRIO hautes performances a révélé des performances de 4 à 8 fois supérieures à celles qu'offrent les contrôleurs de familles cRIO comparables, comme le cRIO-9025. À l'heure actuelle, le modèle quadricœur présente des performances très similaires à celles du cRIO-908x. Pour en savoir plus sur ces contrôleurs, consultez la page www.ni.com/compactrio.