Brevet FR2927212A1 — publié le 20090807

Procédé de reconfiguration d'un ensemble de composants d'un circuit électronique, système de reconfiguration et protocole de transmission de données correspondants La présente invention concerne un procédé de reconfiguration d'un ensemble de composants d'un circuit électronique muni de ressources mémoires, ledit circuit étant connecté à un réseau. Elle concerne également un système de reconfiguration et un protocole de transmission de données correspondants. Plus particulièrement, l'invention se rapporte aux circuits FPGA ("Field Programmable Gate Array") qui sont classiquement constitués de réseaux prédiffusés de composants logiques programmables ou configurables avant d'être utilisés pour une fonction particulière. Les circuits FPGA fournissent ainsi des systèmes sur puce reconfigurables permettant de construire des systèmes à la demande. Dans ce contexte, la reconfiguration des circuits FPGA revêt une importance capitale dans un grand nombre d'applications industrielles. Classiquement, la reconfiguration d'un FPGA pour une fonction donnée est effectuée grâce à un téléchargement de données de reconfiguration du circuit à partir d'une mémoire externe. Lorsque l'utilisateur souhaite utiliser le circuit FPGA pour une autre fonction, il est nécessaire de reconfigurer le circuit en téléchargeant de nouvelles données de configuration à partir d'une autre mémoire externe. Ainsi, il est nécessaire de prévoir autant de mémoires externes que de fonctions du circuit FPGA. Récemment, il a été proposé un procédé de reconfiguration d'un circuit FPGA permettant de reconfigurer uniquement un ensemble élémentaire des composants du circuit FPGA. Ce procédé est connu sous l'appellation de reconfiguration partielle et dynamique de Virtex. Il présente l'avantage de ne pas avoir à reconfigurer l'intégralité d'un circuit FPGA pour chaque fonction et permet ainsi de prévoir des circuits FPGA de moindre surface de silicium. Cependant, ce procédé nécessite d'avoir plus de fichiers de données de configuration adaptées à chaque fonction d'un ensemble élémentaire des composants du circuit FPGA. Ainsi, il est nécessaire de disposer de ressources mémoires supplémentaires pour stocker tous les blocs de données de reconfiguration partielle. Ainsi, l'économie réalisée sur les composants eux-mêmes des circuits FPGA est perdue en partie dans les mémoires. Il y a donc en quelque sorte une migration des millimètres carrés de silicium des circuits FPGA vers les mémoires. Par conséquent, le bénéfice engendré par la réutilisation accrue d'un même circuit FPGA est masqué par la nécessité de disposer de nombreuses mémoires de stockage des données de reconfiguration qui ont un faible taux de réutilisation. Le but de l'invention est de résoudre ces problèmes. Plus particulièrement, l'invention vise à fournir une solution performante peu coûteuse de reconfiguration partielle d'un circuit FPGA. A cet effet, l'invention a pour objet un procédé de reconfiguration d'un ensemble de composants d'un circuit électronique muni de ressources mémoires, ledit circuit étant connecté à un réseau, caractérisé en ce qu'il comporte une étape de téléchargement de données de configuration dudit ensemble vers les ressources mémoires du circuit électronique à partir d'un serveur connecté audit réseau. Suivant des modes particuliers de réalisation, le procédé comporte une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : -le serveur est connecté à un deuxième serveur par l'intermédiaire d'un deuxième réseau, - il comprend une étape de transmission par le circuit électronique d'une requête de téléchargement vers le serveur, ladite requête comprenant l'identité des données de configuration, - le circuit électronique est un circuit FPGA, - le réseau est un réseau local, - le réseau local est un réseau Ethernet, - le réseau est un réseau local sans fil Wi-Fi, - le réseau est un réseau CAN, - l'étape de téléchargement de données de configuration est mise en oeuvre selon un protocole adaptatif de niveau liaison de données capable de s'adapter aux ressources mémoires du circuit électronique, - l'étape de téléchargement de données de configuration est associée à une étape de régulation du flux des données de configuration téléchargées mise en oeuvre par le protocole adaptatif, -l'étape de téléchargement de données de configuration est associée à une étape de détection d'erreurs de transmission desdites données mise en oeuvre par le protocole adaptatif. L'invention a également pour objet un système de reconfiguration d'un ensemble de composants d'un circuit électronique muni de ressources mémoires, ledit circuit étant connecté à un réseau, caractérisé en ce qu'il comporte des moyens de téléchargement de données de configuration dudit ensemble vers les ressources mémoires du circuit électronique à partir d'un serveur connecté audit réseau. L'invention a encore pour objet un protocole de transmission de données de niveau liaison de données, caractérisé en ce qu'il met en oeuvre une liaison de données entre un serveur et un circuit électronique muni de ressources mémoires, ladite liaison de données étant capable de s'adapter aux ressources mémoires du circuit électronique. Suivant des modes particuliers de réalisation, le protocole comporte une ou plusieurs des caractéristiques suivantes, prise(s) isolément ou suivant toutes les combinaisons techniquement possibles : - il met en oeuvre une régulation du flux de données entre le serveur et le circuit électronique, - il met en oeuvre une détection d'erreurs de transmission des données entre le serveur et le circuit électronique. Ainsi, l'invention permet de pallier les inconvénients de la méthode de reconfiguration partielle dynamique de Virtex en s'affranchissant de l'utilisation de mémoires externes pour stocker les données de configuration de circuits FPGA. L'invention est fondée sur l'accès, à travers un réseau local, à un serveur distant comprenant les données de configuration au niveau de la couche liaison de données (couche 2 du modèle OSI). Le serveur étant connecté au même réseau que le circuit FPGA, il n'est pas nécessaire de prévoir un mécanisme de routage de la couche réseau (couche 3 du modèle OSI). Ainsi, l'invention fournit une solution simple peu coûteuse pour la reconfiguration des circuits FPGA. On va maintenant décrire des modes de réalisation de l'invention de façon plus précise mais non limitative en regard des dessins annexés, sur lesquels : - la figure 1 est un schéma synoptique illustrant la structure d'un système de reconfiguration selon un premier mode de réalisation de l'invention ; - la figure 2 est un schéma synoptique illustrant la structure d'un système de reconfiguration selon un deuxième mode de réalisation de l'invention ; - la figure 3 est un schéma synoptique illustrant la structure des moyens matériels mis en oeuvre dans le système de reconfiguration selon l'invention ; - la figure 4 est un schéma synoptique illustrant la structure des moyens logiciels mis en oeuvre dans le système de reconfiguration selon l'invention ; et - la figure 5 est un organigramme illustrant le fonctionnement du protocole de transmission de données selon l'invention. Le système selon l'invention permet la reconfiguration partielle d'un circuit électronique connecté à un réseau grâce au téléchargement de données de configuration de la partie concernée du circuit à partir d'un serveur connecté audit réseau. On a illustré sur la figure 1, la structure d'un tel système de reconfiguration partielle d'un circuit électronique FPGA. Un tel circuit électronique FPGA est désigné par la référence générale 2. Dans l'exemple représenté sur la figure 1, la reconfiguration concerne un ensemble 4 de composants du circuit FPGA 2. Des ressources mémoire 6 sont prévues dans le circuit FPGA 2 pour le stockage de données numériques comprenant des trains de bits. Par ailleurs, le circuit FPGA 4 est connecté à un réseau local 8 auquel est également connecté un serveur 10 dans lequel sont stockées des données de configuration de différents ensembles de composants du circuit FPGA 2. Le réseau local 8 est dans la suite de la description un réseau Ethernet. Dans un autre mode de réalisation, le réseau local 8 est un réseau WiFi. Ceci est intéressant notamment pour les applications de communication et de calcul nomade. Dans un autre mode de réalisation, le réseau local 8 est un réseau CAN. Ceci est intéressant notamment pour les systèmes électroniques automobiles. Selon un deuxième mode de réalisation de l'invention représenté sur la figure 2, le serveur local 10 est relié, par l'intermédiaire d'un réseau standard tel un réseau IP 11, à un deuxième serveur global 12. Ceci permet au serveur local 10 de rafraîchir les données de configuration à partir du serveur global 12. Le serveur global 12 fait partie intégrante de la hiérarchie des serveurs de données de configuration. Il permet en fonctionnement normal de rafraîchir à moindre débit les données du serveur local 10 en fonction du type de circuit FPGA 2 connecté à ce dernier à l'aide de tout type de protocole standard de transfert de données. De même, il permet, à moindre débit de transférer des données de reconfiguration au circuit FPGA 2 en cas d'absence ou de panne du serveur local 10. La structure et le fonctionnement détaillés du système de reconfiguration selon l'invention sont décrits dans la suite de la description en référence aux figures 3 à 5. Le système de reconfiguration de l'ensemble 4 de composants du circuit FPGA 2 comprend des moyens de téléchargement de données de configuration de l'ensemble 4 à partir du serveur 10 connecté au réseau local 8. Ces moyens de téléchargement comprennent à la fois des moyens matériels et des moyens logiciels. La figure 3 est un schéma synoptique illustrant la structure des moyens matériels mis en oeuvre dans le système de reconfiguration selon l'invention. Dans l'exemple d'architecture matérielle du système de l'invention, le circuit FPGA 2 est muni d'une unité de traitement d'informations de type par exemple PowerPC 13 pour l'exécution du téléchargement de données de configuration et d'un port de configuration 14 pour le pilotage du contenu de l'ensemble 4 de composants reconfigurables. L'interface du circuit FPGA 2 avec le réseau Ethernet 8 est réalisée à l'aide de deux bus 16 et 18. Le bus 16 est appelé bus PLB ("Processor Local Bus") et il est relié d'un côté au PowerPC 13 du circuit FPGA 2 et d'un autre côté au réseau Ethernet 8. Le bus 18 est appelé bus OPB ("On-chip Peripheral Bus") et il est relié au port de configuration 14. Par ailleurs un pont 20 relie le bus PLB 16 et le bus OPB 18. Le PowerPC 13 est également associé à deux mémoires 22 et 24 pour le stockage de programmes exécutables et de données. La mémoire 22 est appelée mémoire programme ou IOCM ("Instruction On Chip Memory") et la mémoire 24 est appelée mémoire de données ou DOCM ("Data On Chip Memory"). Les flèches en pointillés de la figure 3 représentent la transmission des données de configuration sous forme de trains de bits à partir du serveur 10 par l'intermédiaire du réseau Ethernet 8 vers le circuit FPGA 2 afin de reconfigurer l'ensemble 4 de composants. Ainsi les trains de bits représentant les données de configuration de l'ensemble 4 sont téléchargés du serveur 10 via le réseau Ethernet 8 par le PowerPC 13. Les trains de bits de données de configuration reçus sont ensuite interprétés par un protocole de transmission de données dédié qui sera décrit de manière détaillée en référence à la figure 5 et transmises au port de configuration 14 via les bus PLB 16 et OPB 18. La figure 4 est un schéma synoptique illustrant la structure des moyens logiciels mis en oeuvre dans le système de reconfiguration selon l'invention. Les moyens logiciels mis en oeuvre dans le système selon l'invention comprennent un pilote 26 du port de configuration 14, un pilote 28 du réseau Ethernet 8 et un traitement du protocole de transmission de données dédié à la reconfiguration désigné par la référence 30. Le but recherché par l'architecture logicielle représentée dans la figure 4 est d'éliminer au maximum l'empilement de couches logicielles permettant ainsi de travailler au niveau le plus bas du modèle OSI soit la couche 2 (couche de liaison de données). La nature du protocole de transmission de données pour la configuration selon l'invention est une source de gain en performance car ce protocole permet un échange de données aussi efficace que possible entre le réseau Ethernet 8 et le port de configuration 14. Le système selon l'invention prévoit un échange de type producteur-consommateur entre le réseau Ethernet 8 et le port de configuration 14 afin de découpler le chargement du port de configuration 14 de la communication via le réseau Ethernet 8. Ainsi, le pilote Ethernet 28 remplit un tampon circulaire intermédiaire (non représenté) de paquets de données de configuration. Cette réception de paquets est faite par rafales de taille au maximum égale à la moitié de la capacité du tampon. Le traitement de protocole de configuration 30 s'exécute en parallèle et transfère les paquets reçus du tampon du réseau Ethernet 8 dans le port de configuration 14 avant de lancer la reconfiguration de l'ensemble 4 de composants du circuit FPGA 2. Le dimensionnement du tampon intermédiaire est un point critique qui permet de faire fonctionner simultanément la réception des paquets et la reconfiguration via le port de configuration 14. Le nombre maximal de paquets d'une rafale dépend des ressources mémoires 6 disponibles et le protocole de configuration proposé par l'invention supporte des configurations mémoires différentes et même variables dans le temps afin d'adapter le débit aux ressources disponibles à l'instant du téléchargement. L'objectif est d'allouer le tampon de taille minimale qui assure le débit maximal. La figure 5 est un organigramme illustrant le fonctionnement du protocole de transmission de données pour la reconfiguration selon l'invention. Sur la figure 5, la partie de gauche décrit le comportement du serveur 10 et la partie de droite décrit le comportement du circuit FPGA 2. Le protocole de transmission de données selon l'invention se situe au niveau de la couche 2 du modèle OSI et met en oeuvre une liaison de données avec détection d'erreurs et contrôle de flux. L'adaptativité de ce protocole correspond à la faculté qu'il a de s'adapter aux ressources mémoires 6 disponibles sur le circuit FPGA 2. En cas d'erreur de transmission, la reconfiguration est instantanément arrêtée après signalisation à l'émetteur de l'erreur. Pour cela le pilote Ethernet 28 détecte tout paquet mal transmis et grâce à une numérotation en séquence de 1 à N des paquets, il est possible de détecter tout paquet manquant, dupliqué, ou déplacé dans le flux. Selon un mode de réalisation, une stratégie de rupture immédiate de la communication au niveau du train de bits est effectuée. Selon un autre mode de réalisation, une stratégie de rupture immédiate de la communication au niveau des paquets est effectuée. Un mécanisme de régulation de flux par le circuit FPGA est prévu. Il consiste à envoyer de l'information au serveur 10. Etant donné que cette rétroaction suspend la transmission de données, il est nécessaire d'envoyer aussi peu de paquets de contrôle de flux au serveur 10 que possible. Selon un mode de réalisation, un système d'acquittement positif tous les P paquets est prévu, P étant déterminé par le traitement de protocole 30 en fonction des ressources mémoires 6 disponibles à l'instant du téléchargement. Le protocole peut être utilisé dans deux modes différents. En mode "maître" ou "auto-reconfiguration", le circuit FPGA 2 décide du moment de la reconfiguration et transmet en 32 au serveur 10 une requête de téléchargement comprenant l'identité des données de reconfiguration 34 (un nom de fichier de trains de bits dans une arborescence à titre d'exemple). En mode "esclave" il reçoit directement le fichier sans en connaître l'identité. En début de transmission 36, le serveur 10 envoie au circuit FPGA 2 le nombre total de paquets N qui seront transmis et le circuit FPGA 2 répond en 38 avec la valeur de P. En début de transmission 36 et après chaque acquittement positif 40, le serveur 10 envoie en 42, P paquets en rafales puis attend l'acquittement suivant en 44. La transmission est ainsi constituée de N/P rafales de P paquets jusqu'au N'eme paquet en 44 qui termine la session de téléchargement. En cas de détection d'erreur en 46 ou de réinitialisation du matériel, le circuit FPGA 2 revient à sa position d'attente 48 du nombre N du protocole. Dans un mode de réalisation, un temporisateur est prévu pour détecter la disparition subite de l'une des extrémités et replacer le serveur 10 et/ou le circuit FPGA 2 dans leurs positions d'attente respectives 48 et 50. Ainsi dans la pratique, le système selon l'invention permet d'avoir une solution de reconfiguration partielle de circuits électroniques de type FPGA ultra légère et de faible coût. Cette solution est constituée de moyens matériels et logiciels ainsi que d'une mise en oeuvre d'un protocole de transmission de données spécifiques afin d'obtenir des circuits FPGA reconfigurables via un réseau standard tel que l'Ethernet. Ces circuits FPGA sont destinés aux applications embarquées ayant très peu de ressources matérielles et tirant profit d'architectures dédiées. La solution de l'invention ne nécessite pas de mémoires externes pour stocker le code de l'exécutif des données de configuration ni de tampon de protocoles de communication étant donné que le protocole de transmission de données de l'invention se situe au niveau de la couche 2 du modèle OSI. Par ailleurs, le mode de réalisation représenté dans la figure 2 permet une hiérarchisation des serveurs de données de reconfiguration et l'utilisation de deux types distincts de protocoles. Il s'agit, dans ce mode de réalisation de mettre en oeuvre un protocole au niveau de la couche 2 du modèle OSI sur le réseau local pour communiquer avec le serveur local et de tout type de protocole standard au niveau des couches supérieures ou égales à 3 du modèle OSI pour accéder au serveur global via un réseau global. L'invention permet, selon les résultats obtenus lors d'expériences, d'atteindre des débits de reconfiguration au moins dix fois plus rapides que les meilleures solutions existantes. REVENDICATIONS 1.- Procédé de reconfiguration d'un ensemble (4) de composants d'un circuit électronique (2) muni de ressources mémoires (6), ledit circuit (2) étant connecté à un réseau (8), caractérisé en ce qu'il comporte une étape de téléchargement (42) de données de configuration dudit ensemble (4) vers les ressources mémoires (6) du circuit électronique (2) à partir d'un serveur (10) connecté audit réseau (8). 2.- Procédé de reconfiguration selon la revendication 1, caractérisé en ce que le serveur (10) est connecté à un deuxième serveur (12) par l'intermédiaire d'un deuxième réseau (11). 3.- Procédé de reconfiguration selon la revendication 1 ou 2, caractérisé en ce qu'il comprend une étape de transmission (32) par le circuit électronique (2) d'une requête de téléchargement vers le serveur (10), ladite requête comprenant l'identité (34) des données de configuration. 4.- Procédé de reconfiguration selon l'une quelconque des revendications 1 à 3, caractérisé en ce que le circuit électronique (2) est un circuit FPGA. 5.- Procédé de reconfiguration selon l'une quelconque des revendications 1 à 4, caractérisé en ce que le réseau (8) est un réseau local. 6.- Procédé de reconfiguration selon la revendication 5, caractérisé en ce que le réseau local (8) est un réseau Ethernet. 7.- Procédé de reconfiguration selon la revendication 5, caractérisé en ce que le réseau (8) est un réseau local sans fil Wi-Fi. 8.- Procédé de reconfiguration selon la revendication 5, caractérisé en ce que le réseau (8) est un réseau CAN. 9.- Procédé de reconfiguration selon l'une quelconque des revendications 1 à 8, caractérisé en ce que l'étape de téléchargement (42) de données de configuration est mise en oeuvre selon un protocole adaptatif de niveau liaison de données capable de s'adapter aux ressources mémoires (6) du circuit électronique (2). 10.- Procédé de reconfiguration selon la revendication 9, caractérisé en ce que l'étape de téléchargement (42) de données de configuration est associée à une étape de régulation du flux des données de configuration téléchargées mise en oeuvre par le protocole adaptatif. 11.- Procédé de reconfiguration selon la revendication 9 ou 10, caractérisé en ce que l'étape de téléchargement (42) de données de configuration est associée à une étape de détection d'erreurs de transmission desdites données mise en oeuvre par le protocole adaptatif. 12.- Système de reconfiguration d'un ensemble (4) de composants d'un circuit électronique (2) muni de ressources mémoires (6), ledit circuit (2) étant connecté à un réseau (8), caractérisé en ce qu'il comporte des moyens de téléchargement de données de configuration dudit ensemble vers les ressources mémoires (6) du circuit électronique (2) à partir d'un serveur (10) connecté audit réseau (8). 13.- Protocole de transmission de données de niveau liaison de données, caractérisé en ce qu'il met en oeuvre une liaison de données entre un serveur (10) et un circuit électronique (2) muni de ressources mémoires (6), ladite liaison de données étant capable de s'adapter aux ressources mémoires (6) du circuit électronique. 14.- Protocole de transmission selon la revendication 13, caractérisé en ce qu'il met en oeuvre une régulation du flux de données entre le serveur (10) et le circuit électronique (2). 15.- Protocole de transmission selon la revendication 13 ou 14, caractérisé en ce qu'il met en oeuvre une détection d'erreurs de transmission des données entre le serveur (10) et le circuit électronique (2).