Brevet FR3001311A1 — publié le 20140725

INTERFACE RESEAU D'UN SoC COMPORTANT UN CONTROLEUR DE COMMUNICATION AMELIORE DESCRIPTION DOMAINE TECHNIQUE La présente invention concerne le domaine des systèmes sur puce ou SoC (System on Chip) mettant en oeuvre un réseau sur puce ou NoC (Network on Chip), et plus particulièrement celui des interfaces réseau d'un réseau sur puce. ART ANTÉRIEUR Pour répondre aux besoins d'applications telles que du décodage vidéo haute-résolution ou de la transmission de données sans-fil haut-débit, il est connu de mettre en oeuvre des architectures de réseau sur puce dites « hétérogènes », c'est à dire composées d'éléments de traitement encore appelés ressources de natures différentes et qui peuvent être sous forme de processeur(s) de traitement, d'accélérateur(s) matériels, d'unité(s) reconfigurable(s), de mémoire(s). Les figures 1 et 2 illustrent un exemple d'architecture de réseau sur puce ou NoC (NoC pour « Network on Chip ») selon l'art antérieur. Cette architecture comprend une pluralité de ressources 1 aptes à communiquer entre elles et à s'échanger des données. Des liens notés 2, permettent de relier lesdites ressources 1, tandis que des noeuds notés 3 permettent quant à eux d'établir une connexion physique entre les différents liens 2 ainsi qu'un aiguillage des communications. Parmi l'ensemble des ressources 1 compris dans une telle architecture, un élément 5 est prévu pour permettre d'initier les communications sur le réseau. Cet élément généralement nommé contrôleur de réseau 5, a la possibilité de programmer les communications entre une pluralité de ressources du réseau destinées à réaliser des tâches telles que des traitements de données élémentaires, par exemple des calculs, ou des stockages de données, ou des codages/décodages de données (figure 1). Chaque ressource 1 de la structure de réseau comporte une partie ou des moyens que l'on appelle coeur fonctionnel ou unité de traitement 12, dédiée notamment aux traitements de données et/ou aux calculs, ainsi qu'une autre partie ou des moyens que l'on nomme interface réseau 13, et qui permet à la ressource 1 de communiquer avec le réseau (figure 2). Les interfaces réseau 13 permettent de faire abstraction des communications au niveau des unités de traitement. Le rôle d'une interface réseau est de gérer localement les communications entrantes et sortantes de l'unité de traitement de sorte que, vu de cette dernière, tout se passe comme si les connexions avec les autres unités de traitement étaient de type point à point. Les interfaces réseau permettent de faire communiquer entre elles des unités de traitement de nature différentes. En outre, les interfaces réseau peuvent être reliées à un ou plusieurs noeuds du réseau. Un réseau sur puce utilise ainsi une couche d'interface permettant de gérer les communications entre les différents éléments ou ressources du réseau. L'exécution d'une application par un système sur puce peut requérir la coopération de plusieurs ressources. Cette coopération est généralement organisée et synchronisée par le contrôleur de réseau 5. Le contrôleur de réseau 5 suit l'évolution du flot de données à travers le réseau. Il envoie des ordres de réception de données, de traitement puis d'émission de données aux différentes unités de traitement via leurs interfaces réseau associées. A chaque étape de traitement, les unités rendent compte au contrôleur de réseau de leurs activités respectives, par exemple par un mécanisme d'interruption. Le contrôleur de réseau prend alors des décisions sur les actions suivantes à réaliser par la ou les unités de traitement. Ce type de fonctionnement en mode centralisé est simple à mettre en oeuvre mais peu performant en termes de latence. En effet, le contrôleur de réseau est sans cesse interrompu et le flot de données s'écoule par à-coups. Par ailleurs, il ne permet pas aisément un changement d'échelle lorsque le nombre de ressources et donc d'unités de traitement croît. En vue d'effectuer un traitement de flots de données, un réseau sur puce, peut, selon un mode de fonctionnement connu, permettre à chaque ressource du réseau de traiter un ensemble de données venant d'une ou plusieurs ressources émettrices et de renvoyer un résultat de ce traitement vers une ou plusieurs ressources réceptrices selon un scénario qui aura été déterminé auparavant. Ce scénario peut être établi à l'aide d'une séquence de programmations appelées « configurations ». Ces configurations sont généralement transmises aux ressources par le contrôleur de réseau. Le document EP 1 835 411 Al divulgue un système de contrôle permettant de programmer des séquences de configurations pour des contrôleurs de communication. Plus précisément, le contrôleur de réseau fournit à chaque couple d'interface réseau et unité de traitement associée une configuration ou une séquence de configurations à adopter pour l'exécution d'une tâche. Chaque configuration est décrite par un contenu de configuration c'est-à-dire un ensemble de valeurs de paramètres de configuration stocké dans l'interface réseau, chaque contenu de configuration définissant une configuration de communication de l'interface et/ou une configuration opératoire de l'unité de traitement. Une interface réseau peut comprendre un contrôleur d'interface local permettant de fournir des séquences de configurations et de gérer le paramétrage, ainsi qu'une unité de gestion des configurations. Une interface réseau comprend également un module contrôleur d'entrée (non représenté) associé à un ou plusieurs moyens de stockage en entrée, d'où transiteront des données entrantes de la ressource. Ces moyens de stockage peuvent se présenter par exemple sous forme d'une ou plusieurs unités FIFO, ou d'une ou plusieurs mémoires, dont le module contrôleur d'entrée est susceptible de connaître le taux de remplissage ainsi que les adresses libres. En fonction de la manière dont il est paramétré, le module contrôleur d'entrée permet notamment à la ressource de transmettre des données spéciales appelées « crédits » à d'autres ressources du réseau, selon un mécanisme d'émission de crédits servant à synchroniser les communications dans le réseau. Un tel mécanisme décrit par exemple dans le document EP 1 641 197 Al, prévoit qu'une première ressource, lorsqu'elle est destinée à recevoir des données à traiter ou à transmettre qui proviennent d'une seconde ressource, envoie préalablement des crédits vers la seconde ressource pour signifier à cette dernière qu'elle est autorisée à envoyer lesdites données à traiter ou à transmettre, conformément à ce qui est indiqué par une configuration de gestion de crédits courante que la première ressource utilise. Le nombre de crédits envoyé par la première ressource pourra permettre d'indiquer à la seconde ressource, la quantité de données que cette seconde ressource est autorisée à envoyer vers la première ressource. Ce nombre de crédits dépend de la place libre dont la première ressource dispose en entrée, ainsi que de la quantité de données que la première ressource est censée recevoir de la part de la seconde ressource. Comme cela a été décrit auparavant, cette quantité de données est indiquée dans la configuration de gestion de crédits courante que la première ressource utilise. Une fois qu'elle est autorisée à émettre grâce à la réception de crédits, la seconde ressource est susceptible d'émettre autant de données que le nombre de crédits envoyés par la première ressource le lui permet. Ainsi, l'envoi de crédits de la première ressource vers la seconde ressource permet l'ouverture d'un chemin pour des données provenant de la seconde ressource et destinées à la première ressource. Ce mécanisme d'envoi de crédits permet d'assurer qu'une donnée émise par la seconde ressource peut être réceptionnée par la première ressource. Une interface réseau comprend également un module contrôleur de communication de sortie. Le module contrôleur de communication de sortie est associé à un ou plusieurs moyens de stockage en sortie, d'où transiteront des données sortantes de la ressource. Ces moyens de stockage peuvent se présenter sous forme d'une ou plusieurs unités FIFO, ou d'une ou plusieurs mémoires dont le module contrôleur d'informations sortantes pourra connaître le taux de remplissage et les adresses libres. Le module contrôleur de communication de sortie peut être prévu notamment pour, en fonction de la manière dont il est paramétré, créer des paquets de données à transmettre vers une ou plusieurs autres ressources réceptrices. Dans un réseau sur puce, les flots de données peuvent être de type statique, avec des volumes de données échangées fixes, ou de type dynamique, avec des volumes de données échangées. Pour certaines applications, telle que le décodage vidéo, il est préférable d'établir un flot de données dynamique dans la mesure où le volume de données à traiter peut évoluer au cours du temps. Différentes solutions aux problématiques liées à la gestion de flots de données dynamiques ont été présentées. Le document:"Separation of data flow and control flow in reconfigurable multi-core SoCs using the Gannet service-based architecture", W. Vanderbauwhede, In Adaptive Hardware and Systems, 2007. AHS 2007. Second NASA/ESA Conference on, pages 326 -333, aug. 2007 présente une solution pour configurer des communications sur un réseau sur puce. Cette solution nécessite deux réseaux distincts : un premier réseau pour acheminer des données de contrôle, un deuxième réseau pour des données à traiter ce qui représente un coût matériel non négligeable. Par ailleurs, la gestion des communications est réalisée par le biais d'un contrôleur de réseau sous forme d'un micro-contrôleur. Un tel réseau utilise un protocole de communication complexe, qui requiert une longue durée pour établir des connexions et n'est efficace que pour des transferts d'une quantité importante de données. Le document: "The connection-then-credit flow control protocol for heterogeneous multicore systems-on-chip", N. Concer, and al. Computer-Aided Design of Integrated Circuits and Systems, IEEE Transactions on, 29(6):869 -882, june 2010, présente un protocole permettant d'établir une connexion avant de débuter un transfert de données par un envoi de crédit. Un inconvénient de ce protocole est qu'il est nécessaire de connaître le volume de données à échanger au démarrage de la communication. Le document "An Optimized Message Passing Framework for Parallel Implementation of Signal Processing Applications", de Saha et al., In Design, Automation and Test in Europe, 2008. DATE '08, pages 1220-1225, march 2008, présente une solution pour la gestion de flots de données dynamiques à l'aide d'une interface de communication appelée SPI « Signal Passing Interface ». Un inconvénient lié à cette implémentation vient du fait que les volumes de données à traiter sont limités et qu'il est nécessaire de connaitre de façon prédictive la quantité maximale d'information qui sera transmise. Il se pose le problème de mettre en oeuvre une nouvelle interface réseau dans un réseau sur puce, permettant de gérer de façon efficace des flots de données dynamiques et permettant de préférence de gérer à la fois des flots de données statique et dynamique, et qui ne présente pas les inconvénients évoqués ci-dessus. EXPOSÉ DE L'INVENTION La présente invention concerne une interface réseau pour une première ressource d'un système sur puce SoC adaptée à interfacer une unité de traitement de données de ladite première ressource avec un réseau No[ dudit système sur puce, l'interface réseau étant dotée d'un contrôleur de communication d'entrée comprenant : - des moyens d'émission de crédits, aptes à émettre des crédits en direction d'une ou de plusieurs ressources du réseau, - des moyens de réception de données, aptes à recevoir des données à traiter en provenance d'une ou de plusieurs ressources du réseau, l'interface réseau étant dotée en outre d'un contrôleur de communication de sortie comprenant : - des moyens de réception de crédits aptes à recevoir des crédits en direction d'une ou de plusieurs ressources du réseau, - des moyens d'émission de données, aptes à émettre des données à traiter en direction d'une ou de plusieurs ressources du réseau. Selon l'invention, l'interface réseau est en outre dotée d'un contrôleur d'entrée ou de sortie comprenant : - des moyens de détection d'un indicateur de fin de communication entre la première ressource et au moins une deuxième ressource avec laquelle un lien de communication est établi, - des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, produire un signal d'indication de fermeture dudit lien à destination de la deuxième ressource. Avec des ressources munies d'une telle interface réseau, on peut mettre en oeuvre des échanges de données selon un lien dynamique. Avec des ressources munies d'une telle interface réseau, on peut mettre en oeuvre une gestion des fins de communications entre ressources d'un réseau sur puce, sans qu'un contrôleur de communication général ait à transmettre un signal indicateur de fin de communication individuellement à chacune des ressources. L'interface peut comprendre en outre des moyens pour, consécutivement à une détection d'un signal d'indication de fermeture de lien de communication provenant d'une interface réseau de la deuxième ressource, produire un signal d'acquittement de fermeture de lien de communication. L'interface peut également comprendre des moyens pour, consécutivement à une fermeture dudit lien de communication entre la première ressource et la deuxième ressource, produire un signal de déclenchement de changement de configuration à destination du contrôleur d'interface réseau. Le contrôleur de communication donné de l'interface réseau peut être doté d'au moins un compteur de crédits, le contrôleur de communication donné comprenant en outre : des moyens pour, consécutivement à une réception d'un signal d'acquittement de fermeture de lien de communication, produire un signal de réinitialisation du compteur de crédits. L'interface réseau peut comprendre en outre des moyens pour lorsqu'un indicateur d'acquittement de fermeture de lien a été détecté, émettre un signal signifiant la fermeture dudit lien à destination de ladite unité de traitement. L'interface réseau peut comprendre en outre des moyens de détection d'un type de lien de communication, statique ou dynamique établi entre la première ressource et ladite deuxième ressource. Cette interface de réseau peut ainsi savoir si la quantité de données d'un flot de données qu'elle émet et/ou reçoit est susceptible d'évoluer au cours d'une communication avec une autre interface réseau d'une autre ressource du réseau. Lors de la communication entre ladite première ressource et ladite deuxième ressource, la première ressource peut être émettrice de données à traiter à destination de la deuxième ressource, la deuxième ressource étant quant à elle réceptrice de données à traiter en provenance de la première ressource. Le signal d'indication de fermeture dudit lien à destination de la deuxième ressource peut être alors inclus dans des données transmises vers la deuxième ressource. Parmi lesdits contrôleurs de communication de sortie et contrôleur de communication d'entrée, l'autre contrôleur de communication peut également comprendre : - des moyens de détection d'un indicateur de fin de communication entre la première ressource et au moins une autre ressource avec laquelle un lien de communication est établi, - des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, produire un signal d'indication de fermeture dudit lien à destination de ladite autre ressource. La présente invention concerne également un système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie comprenant : - des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et - des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant : - des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et - des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource, le système étant comprenant des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, le contrôleur de communication de sortie de la première interface comprenant : - des moyens de réception d'un indicateur de fin de communication entre la première ressource et la deuxième ressource avec laquelle une communication dynamique est établie, et - des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication à destination de la deuxième ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de données relatives à cette communication, et en ce que le contrôleur de communication d'entrée de la deuxième interface comprenant : - des moyens de réception du message de fermeture de communication envoyé par la première interface réseau, la réception d'un tel message mettant fin à l'attente de données à traiter par la deuxième ressource lors de cette communication dynamique et à l'envoi de crédits relatifs à cette communication. Avantageusement, le contrôleur d'entrée de la deuxième interface comprend également des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication à destination de la première ressource, et dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la deuxième ressource. La présente invention prévoit également, un système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie comprenant : - des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et - des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, la deuxième interface réseau étant dotée d'un contrôleur de communication d'entrée comprenant : - des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et - des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource, le système comprenant des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et le contrôleur de communication d'entrée de la deuxième interface comprend : - des moyens de réception d'un indicateur de fin de communication entre la première ressource et la deuxième ressource avec laquelle une communication dynamique est établie, et - des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication à destination de la première ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de crédits relatifs à cette communication, et le contrôleur de communication de sortie de la première interface comprenant : - des moyens de réception du message de fermeture de communication envoyé par la deuxième interface réseau, la réception d'un tel message mettant fin à l'attente de crédits par la première interface lors de cette communication dynamique et à l'envoi de données relatives à cette communication. Le contrôleur de sortie de la première interface peut comprendre en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication à destination de la deuxième ressource, et dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la première ressource. Avantageusement, une interface réseau peut comprendre des moyens pour, suite à la fermeture d'une communication dynamique, indiquer la fin de la communication à un contrôleur d'interface réseau qui peut ensuite reconfigurer cette interface réseau pour une nouvelle communication. Une interface réseau peut également comprendre des moyens pour, suite à la fermeture d'une communication dynamique, indiquer la fin de la communication à l'unité de traitement de la ressource associée à cette interface réseau. Selon une possibilité de mise en oeuvre du système sur puce dans lequel des communications statique ou dynamique peuvent être établies entre deux interfaces réseau associées à deux ressources, une communication étant statique ou dynamique selon que la quantité de données à échanger et respectivement connue ou inconnue lors de l'établissement de la communication entre les ressources. Le système sur puce peut être configuré de sorte que lors d'une communication donnée entre la première et la deuxième ressource, les données émises par la première interface transitent toujours par le même lien physique de communication du réseau sur puce et les crédits émis par la deuxième interface transitent toujours par le même lien physique de communication du réseau sur puce, afin d'assurer respectivement l'ordonnancement temporel des données et des crédits. BRÈVE DESCRIPTION DES DESSINS La présente invention sera mieux comprise à la lecture de la description d'exemples de réalisation donnés, à titre purement indicatif et nullement limitatif, en faisant référence aux dessins annexés sur lesquels : - les figures 1 et 2 illustrent un système sur puce SoC suivant l'art antérieur ; - la figure 3 illustre des échanges entre des interfaces réseaux d'un système sur puce ; - les figures 4A-4C illustrent un premier mode de gestion de fin de communication entre des interfaces réseaux de ressources d'un système sur puce selon un mode de mise en oeuvre de l'invention ; - les figures 5A-5B illustrent un deuxième mode de gestion de fin de communication entre des interfaces réseaux de ressources d'un système sur puce selon un mode de mise en oeuvre de l'invention ; - les figures 6A-6D illustrent des formats de données à traiter et des formats de crédits susceptibles d'être échangés au sein d'un système sur puce selon un mode de mise en oeuvre de l'invention ; - les figures 7A et 7B illustrent respectivement un exemple de dispositif adaptatif de déclenchement d'envoi de données, un exemple de dispositif adaptatif de déclenchement d'envoi de crédits. Des parties identiques, similaires ou équivalentes des différentes figures portent les mêmes références numériques de façon à faciliter le passage d'une figure à l'autre. Les différentes parties représentées sur les figures ne le sont pas nécessairement selon une échelle uniforme, pour rendre les figures plus lisibles. EXPOSÉ DÉTAILLÉ DE MODES DE RÉALISATION PARTICULIERS Un exemple d'échange entre une première interface réseau 130a d'une première ressource A et une deuxième interface réseau 130b d'une deuxième ressource B, via un réseau NoC d'un système sur puce SoC mis en oeuvre suivant l'invention, est illustré sur la figure 3. Les interfaces réseaux 130a, 130b, comportent chacune un contrôleur de communication d'entrée 132 (non représenté pour la première interface 130a) et un contrôleur de communication de sortie 134 (non représenté pour la deuxième interface 130b). Des données à transmettre, provenant d'une unité de traitement (non représentée sur la figure 3) de la première ressource A, et sous forme d'un flot de données S4 sont reçues par le contrôleur de communication de sortie 134a de la première interface réseau 130a et transmises à destination du contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b qui restitue alors un flot de données S7 à une unité de traitement non représentée sur la figure 3) de la deuxième ressource B. Dans cet exemple, le contrôleur de communication de sortie 134a de la première interface réseau 130a, transmet des données S6 à un contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b, lorsqu'au préalable le contrôleur de communication d'entrée 132b de la deuxième interface réseau 130b a transmis des crédits S5 au contrôleur de communication de sortie 134a de la première interface réseau 130a autorisant l'envoi de données S6 et indiquant à la première ressource A, la quantité de données S6 qu'elle est autorisée à émettre. En fonctionnement normal, les échanges de données et de crédits se déroulent de manière continue, les données produites par le contrôleur de sortie d'une ressource émettrice sont transmises au fur et à mesure de la production au contrôleur de communication d'entrée de la ressource réceptrice. Les interfaces réseau 130a, 130b, sont dotées en outre respectivement d'un premier contrôleur d'interface 170a local, et d'un deuxième contrôleur d'interface 170b local prévus pour permettre de faire adopter aux interfaces une configuration ou une série de configurations. Au début d'une communication entre les ressources A et B, les contrôleurs de communication 134a et 132b peuvent recevoir une information donnée indicatrice du type de communication destinée à être établie entre la première interface réseau 130a et la deuxième interface réseau 130b, en particulier si cette communication est de type statique ou de type dynamique. Cette information donnée peut être sous forme d'une configuration et indiquer dans le cas d'une communication statique, la quantité de données destinées à être échangées entre la première ressource A et la deuxième ressource B ou dans le cas d'une communication dynamique indiquer que le volume de données échangées entre la première ressource A et la deuxième ressource B n'est pas connu lors de l'établissement de la communication et sera décidé au cours de la communication. Pour terminer une communication établie notamment entre la première ressource A et la deuxième ressource B, et éventuellement permettre par la suite de reconfigurer une nouvelle communication, par exemple pour atteindre une autre destination, l'unité de traitement émettrice des données peut émettre un signal S8 de fin de transmission de données pour mettre fin à la communication. Ce signal S8 est alors transmis au contrôleur de communication de sortie 134a de la première ressource A et indique que la totalité des données prévues pour transiter sur le lien entre la première ressource A et la deuxième ressource B ont été transmises. Le contrôleur de communication de sortie 134a peut ainsi comporter des moyens de détection d'un signal ou d'une information de fin de transmission de données, indiquant une fin de communication. Ce signal S8 de fin de transmission de données peut être avantageusement contenu dans un flot de données à transmettre. Suite à cet évènement, le contrôleur de communication de sortie 134a de la première interface 130a peut produire et envoyer un message de fermeture de communication S9 indiquant que la communication entre l'interface réseau 130a de la première ressource A et l'interface réseau 130b de la deuxième ressource B est terminée (figure 4A). Suite à la réception d'un tel message de fermeture de communication S9, le contrôleur d'entrée 132b de la deuxième interface réseau 130b peut être prévu pour produire et renvoyer un signal d'acquittement Sio de fermeture de communication (figure 4B). Ensuite, les contrôleurs de communication 134a, 132b de la première interface réseau 130a et de la deuxième interface réseau 130b peuvent être en outre adaptés pour indiquer, par le biais d'un signal SH d'attente de configuration, à leurs contrôleurs d'interface réseau respectifs 170a, 170b qu'ils sont en attente d'une nouvelle configuration à exécuter (figure 4C). Ainsi, les contrôleurs d'interface réseau 170a, 170b, peuvent directement reconfigurer leurs interfaces respectives pour leur permettre d'effectuer une autre communication. Par reconfiguration, on entend ici permettre aux interfaces de mettre en oeuvre un changement de configuration. Dans cet exemple de réalisation, pour assurer un enchainement de configurations il n'est pas obligatoire de prévoir un contrôleur de réseau tel qu'évoqué précédemment dans la partie art antérieur de la présente demande. En se passant d'un contrôleur de réseau général, on met ainsi en oeuvre un réseau sur puce amélioré en termes de latence et de performances. Selon une possibilité de mise en oeuvre, les contrôleurs de communication 134a, 132b, peuvent également indiquer par le biais d'un autre signal S12 d'indication de fermeture de communication destiné aux unités de traitement (non représentées) auxquelles leurs interfaces de communication 130a, 130b, sont respectivement associées, que la communication établie entre la première ressource A et la deuxième ressource B est terminée, fermée. Par exemple, dans un cas où l'unité de traitement réalise un traitement itératif, cela permet d'indiquer à l'unité de traitement qu'elle peut cesser ce traitement. Le message de fermeture de communication S9 envoyé par le contrôleur de communication de sortie 134a de la première interface 130a peut être envoyé une fois que toutes les données provenant de la première ressource A et destinées à la deuxième ressource B ont été transmises. Selon une mise en oeuvre particulière, ce message de fermeture de communication S9 peut accompagner, voire être inclus dans un paquet de données contenant les dernières données en provenance de la première ressource A et transmises à la deuxième ressource B. Lorsqu'on introduit un tel message dans le contenu des données elles- mêmes, un gain de temps, et de bande passante peut être réalisé. Le message d'acquittement Sio de fermeture de communication envoyé par le contrôleur de communication d'entrée 132b de la deuxième interface 130b est envoyé une fois que toutes les données provenant de la première ressource A et destinées à la deuxième ressource B ont été transmises. On s'assure ainsi que lorsque les contrôleurs de communication d'entrée 132b, et de sortie 134a émettent le signal SH de fin de communication aux unités de traitement respectives avec lesquelles la première interface réseau 130a et la deuxième interface réseau 130b sont respectivement associées, qu'il n'y a plus de trafic de données et/ou de crédits en transit dans le réseau. Le signal d'acquittement S10 de fermeture de communication peut permettre de déclencher en outre une réinitialisation d'un compteur de crédits du contrôleur de communication de sortie 134a décomptant un nombre de crédits disponibles. Le contrôleur de communication de sortie 134a de la première interface 130a peut alors recevoir à nouveau des crédits, dès lors qu'une nouvelle configuration de gestion de crédits sera exécutée. De cette manière, on empêche que des crédits reçus par la première ressource A et en provenance d'une précédente ressource émettrice, c'est-à-dire une ressource ayant émis ces crédits lors d'une précédente communication, soient utilisés pour envoyer des données à une nouvelle ressource réceptrice d'une nouvelle configuration alors que cette ressource n'est pas censée les recevoir. Les interfaces réseau peuvent être également prévues de sorte que l'émission du signal d'acquittement S10 de fermeture de communication permette de réinitialiser un compteur de crédits décomptant un nombre de crédits envoyés par le contrôleur de communication d'entrée 132b afin de permettre l'utilisation de ces crédits nouvellement disponibles pour une autre communication. Dans le cas où un lien statique est établi entre la première ressource A et la deuxième ressource B, le critère de fin de communication et donc de fermeture de la communication statique entre ces deux ressources, peut être directement associé, pour la première ressource, à un nombre total de crédits à recevoir ou de données à envoyer et associé, pour la seconde ressource, à un nombre total de crédits à émettre ou de données à recevoir. Dans ce cas, lorsque le nombre de crédits à émettre/recevoir ou le nombre de données à émettre/recevoir est atteint, chaque ressource peut conclure que la communication est terminée. Ainsi, dans le cas d'une communication statique une émission d'un message de fermeture de communication tel que celui Sg, peut ne pas être nécessaire. Les contrôleurs de communication 132, 134 peuvent directement signaler la fin du transfert et émettre un signal S11 à leurs contrôleurs d'interface réseau respectifs qu'ils sont en attente d'une nouvelle configuration à exécuter. Selon une variante illustrée sur les figures 5A-5B, la deuxième ressource B réceptrice de données, peut être celle qui met fin à une communication avec la première ressource A émettrice de données. Pour cela, un signal Sig de fin de transmission de données peut être émis par l'unité de traitement (non représentée) de la deuxième ressource B vers le contrôleur de communication d'entrée 132b de l'interface réseau 130b de la deuxième ressource B. Un message Sig de fermeture de communication est ensuite émis par l'interface réseau 130b de la deuxième ressource B au contrôleur de communication de sortie 134a de la première ressource A émettrice de données. Un signal d'acquittement S20 de fermeture de communication peut être ensuite émis par le contrôleur de sortie 134a de la première ressource A à destination du contrôleur d'entrée 132b de la deuxième ressource B. Les données transitant dans le réseau sont transférées sous forme de paquets. Un paquet peut être formé de données associées à des informations de protocole telles que la source ou la destination du paquet. Pour réduire le cout en bande-passante lié à ces informations de protocole, plusieurs données peuvent être groupées dans un même paquet. Dans un réseau sur puce tel que précédemment décrit, il peut être prévu, en mode de fonctionnement normal, qu'un contrôleur de communication de sortie ne puisse envoyer un nouveau paquet que si un nombre de données disponibles correspondant à une consigne Xsec sont présentes dans une mémoire de ce contrôleur de communication de sortie. Les interfaces réseau des ressources d'un système sur puce suivant l'invention peuvent également comprendre des moyens de forçage d'envoi de données. Lorsque des données en nombre insuffisant pour former un paquet complet restent en attente d'envoi, afin d'éviter une situation de blocage, des moyens pour émettre un signal de forçage d'envoi de données au contrôleur de communication de sortie 134a peuvent être prévus. Ces moyens peuvent être intégrés à une unité de traitement d'une ressource. La décision de l'émission du signal de forçage peut être ainsi prise en interne par l'unité de traitement et peut déprendre de l'application à laquelle le système sur puce est soumis. Par exemple, pour une application du système sur puce à un traitement d'image, l'unité de traitement d'une ressource peut considérer une taille d'image, ou un nombre de pixels par ligne d'image pour prendre cette décision d'émission du signal de forçage. Des moyens de déclenchement à retard peuvent être également mis en oeuvre au niveau du contrôleur de communication de sortie pour forcer un envoi des données disponibles présentes dans une mémoire du contrôleur de communication de sortie 134a en quantité inférieure à une consigne, dès que des données sont restées disponibles pendant un laps de temps supérieur à une durée de consigne prédéterminée dans une mémoire du contrôleur de communication de sortie. Dans l'un ou l'autre des cas, même si le nombre de données à transmettre présentes en mémoire de la première ressource A est inférieur à un seuil d'envoi, la réception par l'interface de communication de sortie de la première ressource du signal « de forçage d'envoi » ou d'un signal en provenance des moyens de déclenchement à retard, permet de déclencher la transmission des données vers la deuxième ressource B, dès lors que le nombre de crédits à disposition de la première ressource A est suffisant. Un tel forçage d'envoi de données peut avantageusement être réalisé lorsque l'on souhaite mettre fin à une communication et peut s'avérer nécessaire dans certains cas pour ne pas « oublier » de transmettre des données, ou éviter que des données ne soient émises vers un mauvais destinataire. On pourra par exemple prévoir que la réception d'un indicateur de fin de communication par le contrôleur de sortie 134a entraîne, successivement ou simultanément (dans un même paquet), l'envoi des dernières données disponibles et l'envoi d'un message de fermeture de communication. Un forçage d'envoi de crédits peut être de la même manière mis en oeuvre. Au niveau du contrôleur de communication d'entrée de l'interface réseau d'une ressource, la quantité de crédits envoyée par ce contrôleur peut être conforme à un seuil prédéterminé qui peut avoir été établi ou fixé par le biais d'une configuration. Cela peut permettre d'éviter un envoi trop fréquent de crédits susceptible d'encombrer le réseau, ou d'en limiter la bande passante. Selon une première possibilité dans le cas où des crédits sont restés disponibles pendant un temps supérieur à une durée prédéterminée dans une mémoire d'un contrôleur de communication d'entrée, des moyens de déclenchement à retard peuvent être prévus pour déclencher l'envoi de ces crédits, même lorsque le nombre de crédits disponibles en mémoire du contrôleur de communication d'entrée est inférieur au seuil prédéterminé défini initialement. Selon une deuxième possibilité qui peut être éventuellement combinée avec la première, des moyens de calcul de seuil dynamique sont mis en oeuvre pour forcer l'envoi de crédits même lorsque le nombre de crédits disponibles en mémoire du contrôleur de communication d'entrée est inférieur au seuil prédéterminé. Ces moyens de calcul de seuil dynamique comptabilisent le nombre de données reçues par le contrôleur de communication d'entrée d'une interface réseau et incrémentent, à chaque réception d'une nouvelle donnée, un compteur modulo Y - sec, avec Ysec égal à la consigne sur la taille des crédits. Si toutes les tailles de paquets de données reçues correspondent à la consigne d'origine, ce compteur reste à zéro et c'est le seuil par défaut qui est employé. Si des paquets de données de taille inférieure à Ysec sont reçus, la valeur du compteur, alors non nulle, est utilisée comme nouveau seuil provisoire d'envoi des crédits, puis le compteur est remis à zéro et le seuil rebascule sur sa valeur initiale. Comme dans le cas des données, un tel forçage d'envoi de crédits peut avantageusement être réalisé lorsque l'on souhaite mettre fin à une communication et peut s'avérer nécessaire dans certains cas, pour ne pas oublier d'envoyer les derniers crédits relatifs à la communication en cours de fermeture, ou pour éviter d'envoyer des crédits vers un mauvais destinataire. On pourra par exemple prévoir que la réception d'un indicateur de fin de communication par le contrôleur d'entrée 132b entraîne, successivement ou en simultanément (même paquet), l'envoi des derniers crédits disponibles et l'envoi d'un message de fermeture de communication. Des exemples de structures des paquets de données, susceptibles d'être utilisés, et de transiter et au sein d'un réseau sur puce d'un système sur puce suivant l'invention, sont données sur les figures 6A-6D. Sur la figure 6A, un paquet de données de plusieurs mots, également appelés flits, de 32 bits, est représenté. Chaque flit peut être formé de 32 bits numérotés de 31 à 0, auxquels s'ajoutent 2 bits de contrôle, un premier bit de contrôle numéroté 33 permettant d'indiquer le début d'un paquet, un deuxième bit de contrôle numéroté 32 indiquant la fin d'un paquet. Le premier flit, comporte en en-tête, un champ PKT_TYPE indicateur de type de paquet, c'est-à-dire si ce paquet est un paquet de données à traiter ou un paquet de crédits. Des informations pour le routage du paquet sont contenues dans un champ ROUTING. Les flits suivants contiennent des champs DATAO,..., DATAN_1 correspondant à des données à transmettre. La fin du paquet est indiquée dans le dernier flit. Sur la figure 6B, un paquet indicateur d'une fin de communication est illustré. Le flit d'en-tête de ce paquet est similaire à celui du paquet de données décrit précédemment en liaison avec la figure 6A, à l'exception d'un bit « end » dont l'état logique, par exemple mis à '1', indique une fin de communication. Sur la figure 6C, un paquet de crédit est illustré. Le champ PKT_TYPE est mis à une valeur indiquant que le paquet contient une information de crédit. Un champ additionnel NUM est indicateur d'un nombre de crédit. Dans l'exemple de la figure 6C, NUM est tel que le paquet comporte k crédits. Sur la figure 6D, un autre paquet de crédits est illustré. Ce paquet comporte un champ end mis à une valeur logique '1' indicatrice d'une fin de communication et un nombre de crédits égal à un. Sur la figure 7A, un exemple de dispositif de gestion d'envoi de données à traiter d'une interface réseau de la première ressource A destinée à émettre des données vers la deuxième ressource B, est illustré. Ce dispositif comprend un premier registre 212 indiquant un nombre total de données à traiter. Ce nombre total de données est établi par configuration et a une valeur déterminée N fixe lorsque le lien entre la première ressource A et la deuxième ressource B est de type statique. En cas d'établissement d'une communication dynamique, le premier registre 212 peut être mis à une valeur particulière, par exemple avec tous ses bits mis à 0, pour permettre une détection de communication dynamique par l'interface réseau. Selon une variante de réalisation, un registre spécifique à l'indication du type de communication, statique ou dynamique, peut être prévu avec par exemple des valeurs 0 ou 1 pour indiquer l'un ou l'autre type. Le dispositif comporte également un compteur 214 indiquant un nombre courant de données envoyées par la première ressource A, tandis qu'un registre 218 indique, quant à lui, un nombre courant de données disponibles à émettre. Un registre 220 permet d'indiquer la taille consigne Xsec des paquets de données, c'est-à-dire le nombre de données qu'un paquet de données contient en fonctionnement normal. Cette taille est établie par configuration. En fonction de l'état des registres 214, 218, 220, et d'une éventuelle réception d'un signal Sno de forçage d'envoi de données ou d'un signal 5120 provenant du dispositif de déclenchement à retard, des moyens de commande 230 d'envoi de données déclenchent une émission de données à condition qu'un nombre suffisant de crédits reçus indiqué par un registre 228 soient disponibles. Des moyens 235 de mise en forme des données sous forme de paquets tels qu'illustrés précédemment peuvent être également prévus. Sur la figure 7B, un exemple correspondant de mise en oeuvre d'un dispositif de gestion d'envoi de crédits d'une interface réseau de la deuxième ressource B destinée à émettre des crédits vers la première ressource A, et dont le principe de fonctionnement a été décrit précédemment, est illustré. Ce dispositif comprend un premier registre 252 indiquant un nombre total de crédits à émettre, qui est établi par configuration. Ce nombre total de crédits a une valeur déterminée fixe lorsque la communication entre la première ressource A et la deuxième ressource B est de type statique. En cas de communication dynamique, le registre 252 peut être mis à une valeur particulière, par exemple avec tous ses bits à 0, pour permettre d'établir une distinction avec le cas d'une communication statique et indiquer à la deuxième ressource B que le volume de données au cours de l'échange avec la première ressource A est non connu à l'avance, et sera déterminé au cours, voire à la fin de la communication. Le dispositif comporte également un compteur 254 indiquant un nombre courant de crédits envoyés vers la première ressource A, associé à un compteur 256 de données reçues de la première ressource. Un compteur 258 indique quant à lui un nombre courant de crédits disponibles. Ce compteur 258 prend initialement une valeur correspondant à une taille mémoire disponible, puis est incrémenté lorsque des données sont consommées par la deuxième ressource B, et décrémenté lorsque des crédits sont envoyés vers la première ressource A. La taille de consigne Y - sec des paquets de crédits établie par configuration est indiquée par un registre 260. En fonction de l'état des registres 254, 256, 258, 260, et d'une éventuelle réception d'un signal 5210 de forçage d'envoi de crédits ou d'un signal 5220 provenant du dispositif de déclenchement à retard, des moyens de commande 270 d'envoi de crédits déclenchent une émission de crédits, après une mise en forme des données de crédits sous forme de paquets à l'aide d'un module 275. Les interfaces réseau sont de préférence capables de connaître l'ordre d'émission des données ou crédits qu'elles reçoivent et qui ont été émis par une autre interface, afin d'assurer que le message de fermeture de communication ne mette pas fin trop tôt à la communication et que des données ou crédits de fin de communication ne soient pas perdus. L'ordonnancement des données ou crédits envoyés peut être assuré par le réseau, ou par le type de structure de paquets utilisé (qui peut éventuellement contenir une information sur la configuration à laquelle se rattache les données/crédits). Dans le cas des systèmes sur puce, les réseaux sur puce sont souvent conçus de sorte que pour une communication donnée, un même lien physique est utilisé pendant la communication de sorte qu'un premier paquet envoyé avant un second paquet arrive nécessairement avant ce second paquet au niveau de l'interface réseau destinataire. Il est néanmoins possible que les données transitant d'une première interface réseau vers une seconde interface réseau empruntent un premier lien physique de communication et que des crédits transitant de la seconde vers la première interface réseau empruntent un second lien physique, l'ordonnancement des données et des crédits étant également assuré dans ce cas. REVENDICATIONS1. Système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau (130a) étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie (134a) comprenant : - des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et - des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant : - des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et - des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource, le système étant caractérisé en ce qu'il comprend des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et en ce que le contrôleur de communication de sortie (134a) de la première interface comprend : - des moyens de réception d'un indicateur (Se) de fin de communication entre la première ressource (A) et la deuxième ressource (B) avec laquelle une communication dynamique est établie, et- des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication (S9) à destination de la deuxième ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de données relatives à cette communication, et en ce que le contrôleur de communication d'entrée de la deuxième interface comprend : - des moyens de réception du message de fermeture de communication envoyé par la première interface réseau, la réception d'un tel message mettant fin à l'attente de données à traiter par la deuxième ressource lors de cette communication dynamique et à l'envoi de crédits relatifs à cette communication. 2. Système sur puce selon la revendication 1, dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication (S9) à destination de la première ressource, et dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la deuxième ressource. 3. Système sur puce comprenant plusieurs ressources reliées à un réseau sur puce par des interfaces réseau dédiées, une interface réseau (130a) étant adaptée à interfacer une unité de traitement de données d'une ressource avec le réseau sur puce, le système comprenant des moyens d'établissement d'une communication entre une première et une deuxième ressource via respectivement des première et deuxième interfaces réseau associées, dans lequel la première interface réseau est dotée d'un contrôleur de communication de sortie (134a) comprenant : - des moyens de réception de crédits aptes à recevoir des crédits en provenance de la deuxième interface réseau, et- des moyens d'émission de données, aptes à émettre sur le réseau, à destination de la deuxième ressource, des données à traiter délivrées par la première ressource, et dans lequel la deuxième interface réseau est dotée d'un contrôleur de communication d'entrée comprenant : - des moyens d'émission de crédits, aptes à émettre sur le réseau, des crédits à destination de la première ressource du réseau, et - des moyens de réception de données, aptes à recevoir des données à traiter en provenance de la première ressource du réseau et à destination de la deuxième ressource, le système étant caractérisé en ce qu'il comprend des moyens d'établissement d'une communication dynamique entre les première et deuxième ressources, pour laquelle le nombre de données à échanger n'est pas connu des interfaces réseau lors de l'établissement de la communication, et en ce que le contrôleur de communication d'entrée (132b) de la deuxième interface comprend : - des moyens de réception d'un indicateur (S3) de fin de communication entre la première ressource (A) et la deuxième ressource (B) avec laquelle une communication dynamique est établie, et - des moyens pour, consécutivement à une détection d'un indicateur de fin de communication, envoyer sur le réseau sur puce un message de fermeture de communication (S9) à destination de la première ressource, l'envoi d'un tel message mettant fin à ladite communication dynamique et à l'envoi de crédits relatifs à cette communication, et en ce que le contrôleur de communication de sortie de la première interface comprend : - des moyens de réception du message de fermeture de communication envoyé par la deuxième interface réseau, la réception d'un tel message mettant fin à l'attente de crédits par la première interface lors de cette communication dynamique et à l'envoi de données relatives à cette communication. 4. Système sur puce selon la revendication 3, dans lequel le contrôleur de sortie de la première interface comprend en outre des moyens pour, consécutivement à la réception d'un message de fermeture de communication, envoyer sur le réseau sur puce un message d'acquittement de fermeture de communication (Se) à destination de la deuxième ressource, et dans lequel le contrôleur d'entrée de la deuxième interface comprend en outre des moyens de réception du message d'acquittement de fermeture de communication envoyé par la première ressource. 5. Système sur puce selon l'une des revendications précédentes, dans lequel suite à la fermeture d'une communication dynamique, une interface réseau comprend des moyens pour indiquer la fin de la communication à un contrôleur d'interface réseau qui peut ensuite reconfigurer cette interface réseau pour une nouvelle communication. 6. Système sur puce selon l'une des revendications précédentes, dans lequel, suite à la fermeture d'une communication dynamique, une interface réseau indique la fin de la communication à l'unité de traitement de la ressource associée à cette interface réseau. 2 0 7. Système sur puce selon l'une des revendications précédentes, dans lequel des communications statique ou dynamique peuvent être établies entre deux interfaces réseau associées à deux ressources, une communication étant statique ou dynamique selon que la quantité de données à échanger et respectivement connue ou inconnue lors de l'établissement de la communication entre les ressources. 25 8. Système sur puce selon l'une des revendications précédentes, dans lequel lors d'une communication donnée entre la première et la deuxième ressource, les données émises par la première interface transitent toujours par le même lien physique de communication du réseau sur puce et les crédits émis par la deuxième 30 interface transitent toujours par le même lien physique de communication du réseau surpuce, afin d'assurer respectivement l'ordonnancement temporel des données et des crédits.