Contrôleur NI CompactRIO : Tests de débit et de performances

Aperçu

Le contrôleur CompactRIO, qui s’appuie sur l’architecture LabVIEW RIO, est doté des technologies les plus récentes telles que la puissante famille de systèmes sur puce (SoC) Atom d’Intel E3800 64 bits et le 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 multicœ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 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 multicœ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 plus haute priorité 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 démontrer les capacités du contrôleur CompactRIO, le groupe R&D de National Instruments a effectué une série de tests sur des applications de contrôle et de surveillance. Ces tests s’appliquent également à toutes les variantes double cœur et quadricœur du contrôleur CompactRIO ((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 et sur ses performances par rapport à celles des contrôleurs précédents de la même famille comme le cRIO-9025 dans le cas de la variante à double cœur et le cRIO-9082 dans le cas de la variante quadricœur, les cibles matérielles représentatives des autres familles CompactRIO telles que le cRIO-9068 sont également incluses comme point de 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 de voies de transfert de données 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 multicœurs, les résultats de chaque cœur correspondent à la moyenne des données recueillies.
• Dans le cas du contrôleur CompactRIO, 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 Control on CompactRIO, comprenant un algorithme de génération de trajectoire de spline cubique 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 double cœur utilise environ 15 % des ressources de son processeur. Cela démontre une amélioration notable par rapport au contrôleur cRIO-9025, qui utilisait 70 % des ressources de son processeur. De même, le contrôleur quadricœur utilise 5 % des ressources de son processeur, ce qui est très semblable aux performances observées du 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. 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 de 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 les contrôleurs cRIO-9068 et CompactRIO disposent tous deux de 16 voies DMA implémentées avec différentes technologies de bus, ils présentent toujours une bande passante théorique maximale notable : 320 Mo/s pour le contrôleur cRIO-9068 et 250 Mo/s pour le contrôleur CompactRIO. Pourtant, le contrôleur CompactRIO peut supporter un plus grand nombre de transferts en continu, en utilisant moins de ressources d’unité centrale, car son processeur présente de meilleures performances.

 

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 contrôleur CompactRIO 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 cadencements 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 double cœur n’utilise que 15 % des ressources du processeur disponibles pour atteindre la même fréquence. Cela laisse une quantité importante de 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. En revanche, la variante quadricœur a montré des performances très similaires à celles du cRIO-9082 à toutes les fréquences de boucle observé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 fréquences de boucles de contrôle différentes

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

Le contrôleur 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 plus haute priorité 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 par rapport aux 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 augmentation constante de l’utilisation de l’unité centrale d’environ 3-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.

 

Lorsqu’elle est pleinement sollicitée, l’utilisation de la fonctionnalité d’IU embarquée entraîne une augmentation de l’utilisation de l’unité centrale d’environ 10 % pour le contrôleur double cœur et de 3 % pour le contrôleur 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. Les hautes performances de l’unité centrale Atom d’Intel maintiennent cette augmentation du temps de traitement dédié à la mise à jour du GPU avec des fréquences de boucle de contrôle inférieures à 6 kHz pour l’application évaluée dans le test 3. Pour atteindre une fréquence de boucle supérieure tout en utilisant une IU embarquée, il est nécessaire de désactiver le GPU ou de passer le code de contrôle LabVIEW sur le FPGA intégré, comme indiqué dans les liens en bas de page.

Pour les applications dans lesquelles ces remarques concernant l’IU embarquée pourraient potentiellement compromettre les performances du système, 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.
  • 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.

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 CompactRIO est parfaitement adapté à ces applications.

Le contrôleur CompactRIO 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.

Grâce à cette série de tests, le contrôleur CompactRIO présente des performances environ 4 à 8 fois supérieures à celles des offres existantes dans des familles comparables de contrôleurs CompactRIO, telles que le cRIO-9025. De plus, le contrôleur quadricœur offre des performances très similaires à celles du cRIO-908x.