Architectures de streaming de données dans les systèmes PXI
Introduction
En général, les systèmes d’instrumentation intègrent un streaming (transfert continu) de données limité. Les instruments autonomes s'interfacent aux PC de contrôle via des bus dont la bande passante est insuffisante pour supporter des vitesses de transfert permettant aux instruments d'acquérir ou de générer des données en continu à une vitesse d'échantillonnage ou de rafraîchissement élevée. Par exemple, la majorité des acquisitions effectuées avec des oscilloscopes autonomes sont finies. La durée de l’acquisition est dictée par la quantité de mémoire embarquée disponible dans l’oscilloscope. Une fois l'acquisition terminée, les données sont transférées vers le PC de contrôle. De la même façon, avec un générateur autonome de signaux arbitraires, la forme d'onde est téléchargée dans la mémoire embarquée de l'appareil, puis générée une seule fois ou bouclée à partir de la mémoire. Vu qu’elle est basée sur les bus PCI et PCI Express dont les bandes passantes sont élevées, la plate-forme PXI permet aux instruments de transférer en continu (streaming) des données vers et depuis des sources autres qu'une mémoire embarquée. En regardant de plus près l’exemple précédent, un oscilloscope PXI est capable d’acquérir des données en continu à une vitesse d’échantillonnage élevée car les données peuvent être transférées en temps réel depuis la mémoire embarquée sur le bus PCI ou PCI Express, à une vitesse suffisamment élevée (jusqu’à 2 Goctets/s) pour que les données ne soient pas effacées avant d'être transférées. Avant d’examiner les architectures de streaming de données susceptibles d’être mises en œuvre dans les systèmes PXI, il est important de comprendre la façon dont les transferts s'effectuent sur les bus PCI et PCI Express.
Table des matières
Streaming de données avec le bus PCI
Le PCI est un bus parallèle. La configuration la plus courante, utilisée dans le PXI, consiste en une largeur de 32 bits avec une horloge de 33 MHz. Cela aboutit à une bande passante max. théorique de 132 Mo/s (approximativement 110 Moctets/s peuvent être supportés de façon soutenue). Étant donné que le bus est parallèle, tous les périphériques rattachés au bus partagent sa bande passante. Les données acquises par un périphérique PCI sont transférées depuis sa mémoire embarquée sur le bus PCI, via le contrôleur PCI, sur le bus d'E/S, et dans la mémoire système (RAM). Elles peuvent ensuite être transférées depuis la mémoire système vers un ou plusieurs disques durs, via le bus d'E/S. Le microprocesseur est chargé de gérer ce processus. Les données qui sont générées par un périphérique PCI suivent le chemin inverse. En outre, le streaming de données peer-to-peer entre deux périphériques sur le bus PCI est possible. La Figure n°1 illustre l'architecture de streaming de données d'un système basé PCI, comme le PXI.

[+] Agrandir l'image
Streaming de données avec le bus PCI Express
Le PCI Express, évolution du bus PCI, maintient la compatibilité logicielle avec le PCI mais remplace le bus parallèle par un bus série haute vitesse (2,5 Gbits/s). Le PCI Express envoie les données via des paires de signaux différentiels appelées "canaux" (lanes), et qui offrent 250 Moctets/s de bande passante par direction et par canal. Plusieurs canaux peuvent être regroupés pour former des liens (links) avec des largeurs de liens types de x1 (prononcer "fois 1"), x4, x8 et x16. Un lien x16 offre une bande passante de 4 Goctets/s par direction. En outre, contrairement au PCI, qui partage sa bande passante avec tous les matériels rattachés au bus, chaque périphérique PCI Express dispose d'une bande passante dédiée. Le PXI Express supporte jusqu'à 6 Goctets/s de bande passante système au total (contrôleur vers fond de panier) et jusqu'à 2 Goctets/s de bande passante dédiée par emplacement (fond de panier vers module).
Les données acquises par un périphérique PCI sont transférées depuis la mémoire embarquée du matériel sur un lien PCI Express dédié, via le bus d'E/S, vers la mémoire système. Elles peuvent ensuite être transférées de la mémoire système vers un ou plusieurs disques durs, via le bus d'E/S. Le microprocesseur est chargé de gérer ce processus. Les données qui sont générées par un périphérique PCI Express suivent le chemin inverse. Le streaming de données peer-to-peer est aussi possible entre deux périphériques PCI Express. La Figure n°2 illustre l'architecture de streaming de données d'un système basé PCI Express, comme le PXI Express.

[+] Agrandir l'image
Figure n°2. Architecture de streaming de données d'un système basé PCI Express, comme le PXI Express
Le PCI et le PCI Express sont des bus dotés d'une bande passante élevée qui permettent à différentes architectures de streaming de données d'être mises en œuvre dans les systèmes PXI d'instrumentation et d'acquisition de données. Ces architectures impliquent :
- la mémoire embarquée sur le périphérique
- la mémoire du contrôleur
- les disques durs du contrôleur (y compris les réseaux RAID)
- les contrôleurs de streaming de données directement sur disque (direct-to-disk)
La mémoire embarquée sur le périphérique
Comme abordé précédemment, le streaming de données acquises d'un instrument vers la mémoire embarquée ou la génération de données depuis la mémoire embarquée sur un instrument est l'architecture de streaming de données la plus courante. Étant donné que la mémoire est locale, et que les données n'ont pas besoin d'être transférées sur un bus, elles peuvent être écrites et lues à pleine vitesse d'échantillonnage ou de rafraîchissement de l'instrument. En outre, vu que le streaming de données s'effectue par un FPGA ou un ASIC embarqué, le contrôleur système n'est quasiment pas sollicité (voir Figure n°3). Le support de l'API (application programming interface) pour cette architecture de streaming de données est, le plus souvent, direct et simple parce que c'est assez courant.

[+] Agrandir l'image
Figure n°3. Diagramme fonctionnel d'un oscilloscope PXI de National Instruments
L'inconvénient principal de transférer en continu les données vers et depuis la mémoire embarquée est la capacité limitée de cette mémoire. Cette capacité limitée nécessite d'équilibrer la vitesse d'échantillonnage ou de rafraîchissement et la durée de streaming ou de relecture des données. Les modules PXI, proposés par National Instruments, intègrent jusqu'à 512 Moctets de mémoire par voie. Avec un numériseur 8 bits dont l'acquisition peut s'effectuer à la fréquence de 200 Méchantillons/s, la mémoire sera remplie en 2,5 secondes environ. Vu les défis de conception associés à son intégration dans un instrument, la mémoire embarquée est aussi plus coûteuse que la mémoire d'un PC standard.
Mémoire du contrôleur
La mémoire (RAM) du contrôleur de système PXI a une capacité plus importante que celle embarquée sur les modules. Jusqu'à 4 Goctets de mémoire peuvent être utilisés avec un contrôleur embarqué ou un PC de contrôle externe. Cette mémoire est moins coûteuse que celle embarquée sur les modules parce que c'est de la RAM standard.
Le streaming sur la mémoire du contrôleur s'effectue à partir de la mémoire embarquée du module, sur le bus PCI ou PCI Express, via le contrôleur PCI (dans le cas du PCI), et sur le bus d'E/S. Le streaming depuis la mémoire du contrôleur se passe dans le sens inverse. Avec un module PXI, le bus PCI limite la vitesse de streaming des données à environ 110 Moctets/s. Avec un module PXI Express, la vitesse maximale de streaming des données est dictée par la composante du système (châssis, contrôleur ou module) qui est basée sur la largeur du lien PCI Express la plus petite (voir Figure n°4). Par exemple, dans un système composé d'un châssis x4, d'un contrôleur x4 et d'un module x1, le module va limiter la vitesse maximale de streaming des données de cet emplacement particulier à 250 Moctets/s. Un traitement de la part du contrôleur est nécessaire pour gérer le transfert des données depuis la mémoire du module vers la mémoire du contrôleur pour l'acquisition, et depuis la mémoire du contrôleur vers la mémoire du module pour la génération.

[+] Agrandir l'image
Figure n°4. Avec le PXI Express, la vitesse maximale de streaming des données d'un emplacement particulier est dictée par la composante du système (châssis, contrôleur ou module) qui présente la plus petite largeur de lien PCI Express.
Disques durs du contrôleur
Les disques durs des contrôleurs PXI offrent une capacité de mémoire conséquente et économique pour le streaming de données vers et depuis des instruments ou des modules d'acquisition de données (processus communément appelé "streaming sur disque" et "streaming depuis le disque"). Le ou les disques durs peuvent être intégrés à un contrôleur embarqué, un contrôleur monté en baie, ou un PC contrôlant à distance le système PXI, ou alors ils peuvent être externes au système, interfacés à un module PXI ou PXI Express ou encore à un module ExpressCard placé dans l'emplacement ExpressCard d'un contrôleur embarqué (voir Figure n°5). Avec un module d'interface PXI Express ou ExpressCard, le bus PCI Express relie le bus d'E/S aux disques durs.

[+] Agrandir l'image
Figure n°5. Bon nombre de contrôleurs embarqués PXI et PXI Express incluent un emplacement ExpressCard qui peut servir à connecter des disques durs externes en utilisant le bus PCI Express.
Le streaming sur les disques du contrôleur s'effectue à partir de la mémoire embarquée, sur le bus PCI ou PCI Express, via le contrôleur PCI (dans le cas du PCI), et sur le bus d'E/S, via la mémoire du contrôleur. Le streaming depuis la mémoire du contrôleur s'effectue pareillement mais dans le sens inverse. Un traitement est nécessaire de la part du contrôleur pour gérer le transfert des données de la mémoire du module vers la mémoire du contrôleur, puis vers les disques durs pour l'acquisition, ou des disques durs vers la mémoire du contrôleur, puis vers la mémoire du module pour la génération. Que les disques durs soient internes ou externes, la vitesse à laquelle les données peuvent être écrites ou lues vers ou depuis les disques durs limite les vitesses de streaming des données. Une façon d'accroître cette vitesse est d'utiliser un réseau RAID-0 de plusieurs disques durs. RAID est l'acronyme de "Redundant Array of Independent Disks" = "réseau redondant de disques indépendants". Un réseau RAID-0 augmente la vitesse à laquelle les données sont écrites et lues vers et depuis les disques durs en répartissant de façon équitable les données entre chaque disque dur (voir Figure n°6). Par exemple, avec le contrôleur monté en baie NI PXI-8351 ou PXIe-8351 configuré avec un réseau RAID-0 de deux disques durs SATA II, les données peuvent être transférées en continu sur disque depuis des modules d'instrumentation ou d'acquisition de données à raison de 80 Moctets/s maximum.

[+] Agrandir l'image
Figure n°6. Un réseau RAID-0 augmente la vitesse à laquelle les données sont écrites et lues vers et depuis les disques durs en répartissant de façon équitable les données entre plusieurs disques durs.
Contrôleur de streaming de données directement sur disque
Au moment du streaming vers et depuis la mémoire du contrôleur ou des disques durs dans un système PXI, le contrôleur PCI (dans le cas du PCI), le bus d'E/S, la mémoire du contrôleur et le processeur sont des chemins de données partagés, qui réduisent la largeur de bande du streaming des données. En outre, le système d'exploitation, les drivers et le logiciel d'application gérant le flux de données introduisent des temps de latences. De surcroît, la gestion par le système d'exploitation des E/S sur fichier n'est pas déterministe.
Pour dépasser ces limitations, un contrôleur "direct-to-disk" avec streaming des données directement sur disque peut être associé à des instruments PXI ou PXI Express pour enregistrer ou relire directement et de façon déterministe des données vers/depuis un réseau de disques durs à des vitesses élevées soutenues et pour de longues périodes. Avec un module contrôleur direct-to-disk PXI ou PXI Express, les données sont transmises en continu directement depuis la mémoire embarquée des instruments, sur le bus PCI ou PCI Express, vers le contrôleur en question pour l'acquisition (voir Figure n°7). Pour la génération, les données sont transmises en continu directement depuis le module contrôleur direct-to-disk, sur le bus PCI ou PCI Express, vers la mémoire embarquée des instruments.

Figure n°7. Les contrôleurs direct-to-disk peuvent directement et de façon déterministe enregistrer et relire les données vers/depuis un réseau de disques durs à des vitesses soutenues et pour de longues périodes.
Un exemple de contrôleur direct-to-disk pour la plate-forme PXI est le Conduant StreamStor. Un module StreamStor PXI-808 peut être associé à des instruments PXI pour enregistrer et relire directement les données à une vitesse soutenue de 110 Moctets/s. Pour une acquisition, le driver d'instrument du module PXI concerné écrit les données depuis la mémoire du module sur le bus PCI directement vers une adresse mémoire mappée au contrôleur StreamStor, qui écrit ensuite, de façon déterministe, les données sur un banc de disques durs SATA (jusqu'à 8 unités) de 400 Goctets max. pour une capacité de stockage totale de 3,2 téraoctets de données maximum (de même pour la génération, mais en sens inverse). La Figure n°8 illustre un système d'instrumentation PXI avec un contrôleur StreamStor pour le streaming des données directement sur disques.

[+] Agrandir l'image
Figure n°8. Système d'instrumentation PXI avec un contrôleur direct-to-disk StreamStor pour un streaming des données directement sur disques.
Pour en savoir plus sur l'utilisation des contrôleurs direct-to-disk avec des systèmes PXI d'instrumentation et d'acquisition de données, consultez le tutorial Implementing Terabyte Instrumentation through Integration with Real-Time Recorders.
Conclusion
La plate-forme PXI, basée sur les bus PCI et PCI Express à bandes passantes élevées, permet aux instruments d'échanger en continu des données vers et depuis des sources autres que leur mémoire embarquée, comme la mémoire du contrôleur, le ou les disques durs du contrôleur et les contrôleurs direct-to-disk. Avec un maximum de 2 Goctets/s de bande passante disponibles pour chaque instrument, le PXI permet de réaliser des applications de streaming de données impossibles sinon avec des instruments autonones.
Tutoriaux et produits NI appropriés
National Instruments, leader en test automatisé, s'engage à fournir les produits matériels et logiciels dont les ingénieurs ont besoin pour créer les systèmes de test de la nouvelle génération.
Logiciels :
- NI TestStand (gestionnaire et séquenceur de tests)
- LabVIEW : environnement de programmation graphique
- SignalExpress : logiciel de mesure interactif
Matériels ::
- Instruments modulaires (oscilloscopes, multimètres, RF, commutation, etc.)
- Acquisition de données multifonction
- Composants du système PXI (châssis et contrôleurs)
- Contrôle d’instrumentation (GPIB, USB et LAN)
Tutoriaux
NI met à votre disposition un kit intitulé Designing Next Generation Test Systems Developers Guide. Ce guide regroupe des tutoriaux conçus pour vous aider à développer des systèmes de test permettant de réduire les coûts, d'augmenter le débit des tests, et d'évoluer avec les besoins futurs. Pour lire ce guide dans sa totalité, vous avez la possibilité de : le télécharger au format PDF (90 pages environ) ou de le visualiser sur le Web :Designing Next Generation Test Systems Developers Guide.
Législation
Ce tutorial a été développé par National Instruments. Bien qu'un support technique puisse être fourni pour ce tutorial, il n'a pas été complètement testé ni vérifié, et NI ne garantit pas sa qualité, ni qu'il continuera à être supporté pour les nouvelles versions des produits et drivers qui y sont rattachés. CE TUTORIAL EST FOURNI "EN L'ÉTAT" SANS GARANTIE D'AUCUNE SORTE, ET EST SUJET À CERTAINES RESTRICTIONS COMME PLUS SPÉCIFIQUEMENT DÉTERMINÉES DANS LES CONDITIONS D'UTILISATION DE NI.COM (http://ni.com/legal/termsofuse/unitedstates/us/).
