11-10-2011 12:00 PM
La technologie FPGA est de plus en plus utilisée dans le domaine boursier afin d’accélérer les traitements.
"La plate-forme CompactRIO permet, grâce à l'intégration d'un FPGA, d’élaborer des applications en minimisant la latence dans l’acquisition et le traitement des données."
- Lionel GIROD, Step Automation and Test (Step AT)
The Challenge:
Mesurer le temps de transfert des données pour les applications boursières de faible latence.
The Solution:
Utiliser la plate-forme CompactRIO et des modules personnalisés pour l’acquisition des données envoyées par paquet en UDP multicast et horodater ces paquets à l’aide d’un serveur de temps NTP.
Author(s):
Lionel GIROD - Step Automation and Test (Step AT)
La société Step AT est spécialisée dans la conception de produits pour les applications embarquées et temps réel et notamment dans la personnalisation de la plate-forme CompactRIO au travers de modules complémentaires permettant d’ajouter des fonctionnalités à la cible FPGA. C’est dans ce cadre que la société Wall Street FPGA, basée à New York et intervenant dans le domaine de la finance pour une société d’information financière américaine, a fait appel à nos services.
Les données de cotation des valeurs boursières sont diffusées par des agences spécialisées dont un classement est effectué de manière régulière afin de permettre aux abonnés de choisir la plus performante. Une de ces agences a confié à Wall Street FPGA le soin de concevoir un système de mesure de performances pour chercher un moyen d’accélérer le temps de diffusion de ces données.
Lors de l’ouverture des marchés, des « interrupteurs » présents dans chaque agence se ferment permettant à celles-ci de diffuser les valeurs de cotation afin d'autoriser les spéculations. Ces données sont encapsulées dans des paquets UDP multicast espacés entre eux de 200 microsecondes. Chaque microseconde passée dans les tuyaux du réseau interne des agences retarde leur diffusion, c’est pour cela qu’une connaissance approfondie des temps de propagation des précieuses données est indispensable et ceci passe par l’utilisation d’une source de temps précise telle qu’un serveur NTP (Network Time Protocol).
La plate-forme CompactRIO permet, grâce à l'intégration d'un FPGA, d’élaborer des applications en minimisant la latence dans l’acquisition et le traitement des données. Dans cette application, la société Wall Street FPGA désirait donc acquérir et traiter les données uniquement à partir du FPGA sans recourir au contrôleur temps réel. Le principal problème résidait dans le fait que les drivers UDP multicast et le client NTP ne sont disponibles que sur le contrôleur et sont donc inexploitables dans cette application.
Wall Street FPGA nous a contactés pour trouver une solution permettant de traiter les paquets UDP multicast et NTP directement à partir du FPGA en passant par un module de la Série C conçu pour le besoin. Nous avions développé depuis peu un module CompactRIO basé sur un processeur ARM proposant un degré de personnalisation assez élevé, notamment grâce à la programmation du cœur du module à l’aide de NI LabVIEW Embedded for ARM, et c’est naturellement que nous avons proposé de répondre au besoin (UDP multicast et client NTP) avec deux modules basés sur la même architecture matérielle (processeur ARM), mais avec un firmware différent.
Le premier module est chargé de récupérer les paquets correspondant aux valeurs boursières et de les transmettre au fond de panier FPGA via un bus SPI. Le deuxième module permettait de fournir une source d’horloge suffisamment précise pour permettre l’horodatage des paquets UDP.
Le client final souhaitait pouvoir acquérir les paquets UDP et les dater avec une précision inférieure à 100 microsecondes. La seule manière d’y parvenir consistait à synchroniser l’horloge interne du microprocesseur ARM avec une horloge de précision venant d’un serveur de temps NTP. Le principe de la synchronisation sur un réseau Ethernet consiste à estimer un retard entre l’horloge maître (celle du serveur issu d’une horloge atomique ou GPS) et celle de l’esclave (horloge du module CompactRIO) grâce à des échanges de marqueurs de temps permettant de recaler l’horloge esclave. Le but étant de dater très précisément les paquets, le module de réception UDP déclenche une ligne numérique directement envoyée au module NTP pour minimiser la latence quant à la détermination du temps absolu de réception de la trame UDP.
Grâce à l‘utilisation conjointe des Modules LabVIEW FPGA et LabVIEW Embedded for ARM, nous avons pu mettre au point une solution pour Wall Street FPGA et leur permettre de proposer ce système de mesure de performance dans des délais raisonnables malgré la distance et l’impossibilité pour nous de réellement déboguer l’application sur site.
Si, à l’avenir, la solution est validée par le client, nous pourrions fournir de nouveaux modules à Wall Street FPGA dans l’optique d’équiper de nouvelles agences aux États-Unis.
Novembre 2011
Author Information:
Lionel GIROD
Step Automation and Test (Step AT)
41, rue des métiers
83140 Six-Fours-Les Plages
France
Tel: +33 (0)4 94 62 86 80
lionel.girod@stepat.com