Vous concevez un nouveau système de test où le débit unitaire est critique. Vous évaluez plusieurs instruments qui utilisent GPIB, USB, Ethernet ou PCI/PXI Express (PXIe). Comment savoir quels bus d’instruments fourniront une performance système suffisante ? La bande passante théorique de chaque option de bus est un excellent point de départ pour évaluer la performance, mais souvent l’évaluation doit être approfondie. Cet article examinera les quatre principaux facteurs qui affectent la sélection du bus d’instruments : la bande passante du bus, la latence, l’implémentation de drivers spécifiques au fournisseur et l’application.
Même dans un modèle simplifié de système de test (voir Figure 1), de nombreux composants matériels et logiciels peuvent affecter la performance du bus. Dans l'hôte, l'application logicielle, le système d'exploitation, la combinaison CPU/RAM, le support du système d'exploitation temps réel, l'optimisation du CPU multicœur, les piles logicielles, les drivers et l'interface matérielle affectent la performance du bus. Du côté de l'instrument, le matériel et firmware d'E/S, la combinaison CPU/RAM et la vitesse de mesure affecteront la performance du bus. Changer l'un de ces composants peut modifier la performance du bus, tout comme le changement d'un bus à un autre affectera la performance globale du système. Tous ces composants peuvent être classés dans l’un des quatre principaux facteurs affectant la performance du bus. De nombreuses comparaisons de performance de bus se concentrent uniquement sur la bande passante du bus, en ignorant les autres composants matériels et logiciels qui influencent la performance réelle du bus. Les concepteurs de systèmes doivent évaluer non seulement la performance théorique d'un bus, mais aussi la manière dont les périphériques spécifiques sur ce bus fonctionnent dans le contexte de l'ensemble du système.
Comme indiqué précédemment, les quatre principaux facteurs qui affectent la performance du bus sont la bande passante du bus, la latence, l'implémentation du driver/firmware spécifique au fournisseur et l'application. La bande passante est le débit de données. Cela se mesure généralement en millions de bits par seconde (Mbit/s). La latence est le temps de transfert. Cela se mesure généralement en secondes. Par exemple, dans les transferts Ethernet, de grands blocs de données sont fractionnés en petits segments et envoyés en plusieurs paquets. La latence est la quantité de temps passé à transférer l'un de ces paquets. Un système ne peut pas répondre aux données plus rapidement que la latence de ses bus. L'implémentation du logiciel, du firmware et du matériel du driver de bus affectera ses performances.
Tous les instruments ne sont pas créés égaux. Un PC implémenté avec un processeur multicœur ou un système d'exploitation en temps réel (RTOS) et plus de RAM aura une performance plus élevée qu'un PC avec un processeur plus lent et moins de RAM. Il en va de même pour les instruments. Les compromis d’implémentation faits par le concepteur de l’instrument, qu’il s’agisse d’un instrument modulaire PXIe ou traditionnel, auront un impact sur la performance de l’instrument. L’un des principaux avantages des instruments PXI Express est qu’ils sont définis par logiciel afin que l’utilisateur final puisse décider des compromis d’implémentation optimaux. Certains ont également des architectures FPGA programmables, qui permettent des performances plus déterministes et la possibilité d’effectuer un traitement personnalisé sur l’instrument sans affecter les autres ressources système.
Le dernier facteur important affectant la performance du bus est l’application ou l’utilisation de l’instrument. Dans certaines applications, le sous-système de mesure est le goulot d'étranglement alors que dans d'autres, le goulot d'étranglement est le sous-système du processeur. Comprendre quel sous-système est le goulot d’étranglement permet d’améliorer la performance. Et le point clé reste que pour qu’un bus particulier soit suffisamment performant, il doit répondre ou dépasser les exigences de l’application. Un examen plus détaillé de chaque facteur important aidera les utilisateurs à mieux comprendre les compromis.
Figure 2. Bandes passantes théoriques versus latences des bus T&M grand public
Comme mentionné précédemment, la latence aura un impact profond sur la performance du bus en fonction de la taille des transferts de données. La bande passante théorique et la latence des bus de contrôle d’instruments courants (voir Figure 2) fournissent des indications sur la relation entre la performance du bus et la taille de transfert. Par exemple, voyons deux bus de communication. Fast Ethernet (100 M Ethernet) a une bande passante de 100 Mbit/s, ce qui est supérieur à la bande passante de 64 Mbit/s du GPIB haute vitesse. Mais la latence du Fast Ethernet est beaucoup plus lente (dans la gamme des millisecondes) que celle du GPIB haute vitesse, qui se situe dans la gamme des dizaines de microsecondes. La figure 3 montre la performance du bus, la vitesse de transfert réelle, pour plusieurs bus sur le même instrument. Pour les transferts de données inférieurs à 8 Ko, le GPIB haute vitesse offre de meilleures performances. Mais pour les tailles de transfert supérieures à 8 Ko, Ethernet offre de meilleures performances.
De nombreux ingénieurs s’appuient encore sur des instruments vieillissants dotés d’interfaces GPIB ou Ethernet plus anciennes, et la compréhension de leurs caractéristiques de performance est importante pour maintenir les systèmes existants. Cependant, les plates-formes modernes telles que PXI peuvent améliorer considérablement le débit, réduire la latence et simplifier l’intégration avec des architectures et des exigences en constante évolution. Ces mises à niveau aident également à prendre en charge les systèmes de test alors que la technologie continue d’évoluer et de réduire la complexité de la maintenance à long terme.
Le même principe selon lequel la bande passante et la latence affectent la performance du bus s'applique également lors de la comparaison des bus de communication aux bus système. Les bus de communication, tels que bus GPIB, USB et LAN, sont généralement utilisés en dehors du PC pour connecter des périphériques et ont des latences plus longues et des bandes passantes plus faibles. Les bus système, tels que PCI et PCI Express, sont généralement utilisés à l'intérieur du PC et ont de meilleures latences avec des bandes passantes beaucoup plus élevées, offrant les meilleures performances pour les petites et grandes tailles de transfert. En effet, les données de plusieurs bus de communication sont regroupées sur des bus système pour être traitées par le CPU hôte.
Une autre façon de voir les choses est que la valeur première des bus de communication n’est pas la performance, mais un autre facteur. Par exemple, l’USB facilite la connexion de périphériques externes et le LAN est excellent pour distribuer les mesures sur de longues distances. Mais ces deux bus sont reliés au CPU et à la RAM par une bande passante plus élevée et des bus système à latence plus faible tels que PCI Express.
L’implémentation est le troisième facteur important affectant la performance du bus. Par exemple, la sélection des puces d'interface de bus, le codage du firmware de l'instrument ou des drivers d'instruments et le dimensionnement du CPU et de la RAM auront un impact sur la performance du bus. Prenons le cas des implémentations de bus GPIB et Ethernet standard sur deux oscilloscopes de fournisseurs différents. Les résultats de la Figure 4 montrent l’impact des choix d’implémentation sur la performance du bus. Le premier oscilloscope offre de meilleures performances pour la plupart des tailles de transfert à la fois pour bus GPIB standard et Ethernet. Ce benchmark utilisait des commandes SCPI sur le même PC avec les mêmes câbles GPIB. La seule différence était l'implémentation de l'instrument des interfaces GPIB. (Ces comparaisons sont basées sur une instrumentation vieillissante et restent utiles pour illustrer comment les différences d’implémentation peuvent affecter le débit, même en utilisant le même type de bus.)
Cet impact est particulièrement problématique car la plupart des fournisseurs d’instruments ne spécifient pas la performance du bus pour leurs instruments. De plus, le type et la vitesse du CPU d'instruments, la profondeur de mémoire, le système d'exploitation, le firmware et le logiciel d'interface utilisateur ont tous un impact sur la performance du bus. Cela signifie que les concepteurs de systèmes doivent évaluer la performance du bus avant que la sélection finale de l’instrument ne soit terminée, en particulier lorsque vous travaillez avec des systèmes obsolètes ou en l’absence de spécifications de débit claires.
Un autre impact important de l’implémentation sur les performances du bus est la surcharge hôte exigée par le driver d’instrument. Les instruments utilisant des bus système, tels que PCI/PXI, PCI Express/PXI Express, peuvent utiliser l'accès direct à la mémoire (DMA) pour déplacer des données directement vers/depuis la mémoire système avec une intervention minimale du CPU hôte. Dans ces conditions, le rôle du CPU est principalement de configurer le flux de données et sa mémoire réservée. En revanche, les drivers d'instruments qui utilisent des bus de communication nécessitent souvent une gestion étroite et intensive par le CPU hôte à chaque transfert en entrée et en sortie de mémoire. Ces piles de drivers ajoutent des délais et du jitter au cadencement du transfert de données car elles nécessitent un traitement supplémentaire et sont soumises aux priorités du système d'exploitation. Selon le débit requis, la pile logicielle du driver peut consommer une partie importante de la capacité du CPU et pourrait même devenir un goulot d’étranglement dans le flux de données.
Le dernier facteur important pour rendre un bus performant est l’application de l’instrument dans le système. Certaines applications requièrent beaucoup de traitement des données, comme le calcul des FFT et le transfert de waveforms volumineuses, tandis que d’autres peuvent avoir des besoins de traitement moins importants tels que la recherche de valeurs minimales ou maximales. Cependant, d'autres systèmes peuvent ne pas être sensibles du tout aux besoins de traitement car le traitement se fera hors ligne après la conclusion d'une mesure. Plus l’application est exigeante en calcul et sensible à la latence, plus le processeur risque de devenir un goulot d’étranglement.
Dans ces applications, les instruments basés sur des bus système tels que PCI/PXI et PCI Express/PXI Express fourniront une meilleure solution car ils prennent en charge les transferts basés sur DMA et offrent des latences plus faibles et une bande passante plus élevée (reportez-vous à la Figure 3). En revanche, pour les applications à faible débit et tolérantes à la latence, souvent n'importe quel bus suffit. Dans ces cas, la sélection de l’instrument peut répondre à d’autres critères tels que la vitesse de mesure, l’exactitude, la précision, la distance, le coût, la robustesse ou la taille.
À partir de l’analyse des quatre principaux facteurs qui affectent la performance : la bande passante du bus, la latence du bus, l’implémentation spécifique au fournisseur et l’application, certaines recommandations de conception de systèmes méritent d’être prises en considération. Tout d’abord, pour des performances maximales, gardez les mesures aussi proches que possible du CPU ou dans le cadre du système avec PXI. Cela tire parti des drivers plus performants avec DMA et de la faible latence des bus système tout en réduisant les retards supplémentaires dans le cadencement des mesures et la charge sur le processeur. Enfin, reconnaissez que même dans le même bus et pour le même type de mesure, les différents instruments et leurs drivers varient dans leurs performances de débit et l’utilisation du CPU. Donc, si vous ne trouvez pas de spécifications claires, vous devrez peut-être évaluer la performance du bus des instruments potentiels avant de faire la sélection finale.
Lorsque la performance du bus est importante, le PXI Express combine la meilleure bande passante, la faible latence et la transparence logicielle avec l’évolutivité, ce qui vous permet de mettre à niveau la performance et d’ajouter des capacités en fonction de l’évolution des exigences, sans repenser l’ensemble de votre système de test.