Brevet FR3050565A1 — publié le 20171027

Système électronique embarqué Des modes de réalisation de l'invention concernent les systèmes électroniques, et plus particulièrement les systèmes électroniques comportant des architectures multiprocesseurs embarquées par exemple à base de moyens de traitement de type processeurs, de microcontrôleurs, et d' accélérateurs matériels spécifiques à chaque application tels que la vision par ordinateur, l'analyse de données, le traitement d'images et le traitement de vidéos. A la suite de l'évolution conjointe de la technologie et des besoins du marché, de meilleures performances de tels systèmes électroniques sont exigées dans un délai de commercialisation (« time to market » en anglais) de plus en plus strict. Par ailleurs, on demande généralement aux concepteurs de concevoir de tels systèmes électroniques tout en assurant à la fois des flexibilités de conception et une meilleure efficacité en terme de performance, de consommation d' énergie, et d' encombrement surfacique sur silicium, également désignée par l'homme du métier sous l'acronyme anglosaxon « PPA » (« Performance Power Area »), et ce d'autant plus pour des systèmes embarqués. Toutefois, la conception actuelle d'un tel système électronique se limite à des intégrations non-efficaces entre des processeurs programmables et des accélérateurs matériels spécifiques à chaque application parce qu'ils sont généralement couplés de façon non étroite (« loosly coupled » en anglais) via un système de communication à grande vitesse, par exemple un réseau Ethernet Gigabit, et que les processeurs et les accélérateurs matériels utilisent des protocoles de communication différents. En effet, en général, lesdits accélérateurs exécutent des traitements de flux (« Steam processing » en anglais) massivement parallèles tandis que les processeurs effectuent des traitements séquentiels de type chargement/stockage (« load/store » en anglais). 3050565 2 Actuellement, le niveau de complexité pour programmer un tel système électronique avec des outils classiques est souvent très élevé d'autant plus si un parallélisme de traitement et une optimisation globale sur la gestion des ressources telles que la mémoire et les 5 processeurs programmables sont pris en compte. En plus, il est difficile de partitionner un tel système électronique en deux parties, une partie matérielle et une partie logicielle, car pour ce faire ces deux parties doivent être considérablement modifiées. Une procédure d'exploration ou une 10 vérification d'une telle architecture est également longue. Ainsi, selon un mode de réalisation, il est proposé d'offrir une solution technique à faible complexité pour réaliser un système multiprocesseurs, notamment embarqué, ayant une architecture matérielle/logicielle permettant un couplage étroit (« tightly coupled » 15 en anglais) entre des accélérateurs matériels et des processeurs programmables via une mémoire partagée. Selon un aspect, il est proposé un système électronique configuré pour implémenter une application logicielle décrite sous la forme d'un graphe de type réseau de Kahn, communément désigné par 20 l'homme du métier sous l'acronyme anglosaxon « KPN » (« Kahn Process Network »), comportant des acteurs. L'un au moins des acteurs comporte un processeur et l'un au moins des acteurs comporte un accélérateur matériel et le système comporte en outre des mémoires tampons couplées entre les différents 25 acteurs, et des moyens de traitement configurés pour permettre un dialogue entre lesdits acteurs selon un protocole commun de communication et de synchronisation alors que ledit processeur et ledit accélérateur matériel sont conçus pour utiliser des protocoles de communication individuels différents. 30 Un tel protocole commun de communication et de synchronisation basé sur un modèle d'exécution d'un réseau de Kahn permet avantageusement d'effectuer des communications et des synchronisations efficaces entre les différents acteurs, ici par exemple ledit au moins un accélérateur et ledit au moins un processeur. 3050565 3 Selon un mode de réalisation, les moyens de traitement comportent une mémoire partagée contenant lesdites mémoires tampons, et des compteurs partagés de synchronisation associés aux mémoires tampons, ledit protocole de communication et de 5 synchronisation appliqué entre les acteurs étant basé sur lesdits compteurs partagés de synchronisation. Les moyens de traitement peuvent être configurés pour gérer les mémoires tampons sur la base de jetons. Chaque mémoire tampon peut comporter au moins un jeton initialement dans un état « LIBRE » 10 et peut être couplée à un acteur source et à un acteur destinataire, et les moyens de traitement peuvent être configurés pour gérer : une fonction « RESERVER » utilisable par un quelconque acteur source et conçue pour demander à la mémoire tampon couplée audit acteur source de fournir un jeton dans un état « LIBRE », 15 une fonction « POUSSER » utilisable par un quelconque acteur source et conçue pour renvoyer à la mémoire tampon couplée audit acteur source, un jeton modifié à la suite d'une modification d'un jeton dans l'état « LIBRE », une fonction « CAPTURE » utilisable par un quelconque acteur 20 destinataire et conçue pour capturer un jeton modifié de la mémoire tampon couplée audit acteur destinataire, et une fonction « LIBERATION » utilisable par un quelconque acteur destinataire et conçue pour remettre un jeton modifié de la mémoire tampon couplée audit acteur destinataire dans l'état 25 « LIBRE ». Par ailleurs, les compteurs partagés peuvent comporter un compteur d'écriture configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction « POUSSER » et un compteur de libération configuré pour être incrémenté à la suite de chaque mise en 30 oeuvre de la fonction « LIBERATION ». Les compteurs non-partagés peuvent comporter un compteur de « réservation » configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction « RESERVER » et un compteur de « capture » configuré pour être 3050565 4 incrémenté à la suite de chaque mise en oeuvre de la fonction « CAPTURE ». En outre, les moyens de traitement peuvent être configurés pour effectuer un blocage de la fonction « RESERVER », sur la base 5 de la valeur de la différence entre le contenu du compteur de réservation et celui du compteur de libération et d'une comparaison entre cette valeur de différence et la capacité de la mémoire tampon associée, et pour effectuer un blocage de la fonction « CAPTURE » sur la base de la valeur de différence entre le contenu du compteur 10 d'écriture et celui du compteur de « CAPTURE ». Avantageusement, ledit graphe de type réseau de Kahn supporte un parallélisme de traitement entre les acteurs. Pour ce faire, le jeu de mémoires tampons de diffusion peut comprendre au moins une mémoire tampon de diffusion couplée à un 15 seul acteur source et à au moins deux acteurs destinataires, et au moins une mémoire tampon de collecte couplée à au moins deux acteurs sources et à un seul acteur destinataire. Les moyens de traitement peuvent en outre être configurés pour gérer les mémoires tampons sur la base de jeton et gérer 20 une fonction « DIFFUSION » utilisable par lesdits au moins deux acteurs destinataires et conçue pour capturer parallèlement un même jeton modifié généré par ledit seul acteur source et disponible dans ladite mémoire tampon de type diffusion et pour remettre ensuite ledit même jeton modifié en son état « LIBRE », et 25 une fonction « COLLECTE » utilisable par lesdits au moins deux acteurs sources et conçue pour que chacun de ces acteurs sources demande à ladite au moins une mémoire tampon de collecte un jeton en état « LIBRE » et pour que chacun renvoie ensuite à ladite au moins une mémoire tampon de collecte un jeton modifié à la suite d'une 30 modification dudit jeton en état « LIBRE ». Selon un mode de réalisation, les moyens de traitement comportent au moins une interface de communication couplée entre la mémoire partagée et ledit au moins un accélérateur matériel, et un 3050565 5 moyen de contrôle configuré pour supporter ledit protocole commun de communication et de synchronisation. Le moyen de contrôle peut être par exemple un moyen d'accès direct à la mémoire. 5 Ledit moyen d'accès direct à la mémoire peut être configuré pour être synchronisé via les compteurs partagés de synchronisation et être programmé par un acteur logiciel. Il convient de noter que ladite mémoire partagée fonctionne ici comme un support physique pour implémenter ledit protocole qui est 10 également supporté sous forme matérielle par ladite interface de communication et par ledit moyen de contrôle. Chaque interface de communication peut avantageusement être configurée pour recevoir un flux de demandes d'opérations provenant dudit accélérateur matériel correspondant et pour délivrer des 15 commandes d'opérations de mémoire à ladite mémoire partagée. Chaque interface peut également comprendre un moyen de commande des mémoires tampons configuré pour gérer les mémoires tampons couplées aux accélérateurs matériels sur la base de jetons, et des moyens de synchronisation configurés pour effectuer des 20 synchronisations des jetons, et un bloc de traitement configuré pour implémenter ledit protocole. A titre d'exemple, ledit protocole commun de communication de synchronisation peut être adapté à un traitement parallèle de données entre les acteurs et à une utilisation de variables globales 25 partagées par lesdits acteurs. D'autres avantages et caractéristiques de l' invention apparaîtront à l'examen de la description détaillée de modes de réalisation, nullement limitatifs, et des dessins annexés sur lesquels : - Les figures 1 à 5 illustrent schématiquement des modes 30 de réalisation de l'invention. Ledit système électronique SE est configuré pour implémenter une application logicielle AL (figurel). Celle-ci est décrite sous la forme d'un graphe de type réseau de Kahn GKPN qui comporte des acteurs Ai et des mémoires tampons FIFOj, ici par exemple basées sur 3050565 6 le principe du premier entré, premier sorti, (« First In First Out » : FIFO en anglais), et couplés entre lesdits acteurs Ai. Lesdits acteurs peuvent avantageusement être implémentés sous forme de modules logiciels au sein de processeurs ou sous forme 5 matérielle, par exemple au sein d'un accélérateur matériel. La figure 2 illustre schématiquement un exemple de système électronique SE selon l'invention, configuré pour implémenter une application logicielle du type de celle illustrée sur la figure 1. Les acteurs comportent, ici par exemple des processeurs 10 programmables PPO à PPn, et des unités spécialisées dans l'accélération matérielle HW IPO à HW IPK. Ces accélérateurs matériels HW IPO à HW IPK peuvent être par exemple de type unité matérielle dédiée à un opérateur spécifique de traitement d'image ou de signal tels que le codage, la transformation et la convolution, etc. 15 notamment comportant une interface de flux de données (« data-flow » en anglais). Ledit système électronique SE comporte également des moyens de traitement MT comportant une mémoire partagée MP et des interfaces de communication ICO à ICK couplées respectivement entre 20 les accélérateurs matériels HW IPO à HW IPK et ladite mémoire partagée MP, et configurés pour permettre une communication entre lesdits acteurs Ai selon un protocole commun de communication et de synchronisation PCCS. Ladite mémoire partagée MP est par ailleurs couplée à des 25 unités périphériques UP selon un couplage étroit (« Tightly Coupled » en anglais), une unité périphérique peut être par exemple un contrôleur d'interruption (« interrupt controler » en anglais). Un bus d'interconnexion BI est couplé à ladite mémoire partagée MP et à des moyens de contrôle MC, ici par exemple des 30 moyens d'accès direct à la mémoire (« Direct Memory Access » : DMA). Lesdits accélérateurs matériels HW IPO à HW IPK sont conçus pour utiliser des protocoles de communication de flux qui sont 3050565 7 différents de ceux séquentiels utilisés par lesdits processeurs PPO à PPN. Comme dans un réseau de Kahn classique, tous les acteurs Ai dudit graphe de type réseau de Kahn GKPN peuvent être des acteurs 5 sources AO à A4 au vu des acteurs suivants Al à A5 et/ou être des acteurs destinataires Al à A5 au vu des acteurs précédents AO à A4. Un acteur peut être simultanément un acteur source et un acteur destinataire, comme les acteurs Al à A4 illustrés sur la figure 1. Toutes les mémoires tampons, ici les mémoires FIFOO à FIFO4 10 illustrées sur la figure 2, couplées entre les acteurs Ai peuvent être par exemple des mémoires tampons circulaires qui fonctionnent sur la base de jetons. Ledit graphe GKPN et toutes les mémoires tampons FIFOO FIFO4 sont avantageusement implémentées dans ladite mémoire 15 partagée MP. Chaque mémoire tampon FIFOj comporte par exemple M emplacements de mémoire tampon et M jetons correspondants. On va maintenant décrire en se référant de nouveau à la figure 1 des exemples de fonctions utilisées dans le graphe GKPN. Tous les jetons sont initialisés dans un état « LIBRE » 20 (« FREE » en anglais). Quant à un acteur source, ici par exemple l'acteur source A0, il peut réaliser préalablement une fonction dite « RESERVER » (« RESERVE » en anglais) correspondant à une demande d'un emplacement de mémoire tampon libre dans une mémoire tampon, par 25 exemple la mémoire FIFOO, couplée entre l'acteur source AO et un acteur destinataire correspondant Al. En d'autres termes, l'acteur source AO demande un jeton dans l'état « LIBRE » JLO dans ladite mémoire tampon FIFOO correspondante. Si une telle demande peut être satisfaite, ladite 30 mémoire tampon FIFOO délivre ledit jeton JLO audit acteur source AO et l'autorise à modifier/écrire ledit jeton JLO. Une fois que l'acteur source AO a terminé la modification dudit jeton JLO, l'acteur source AO peut effectuer une fonction dite 3050565 8 « POUSSER » (« PUSH » en anglais) pour renvoyer un jeton modifié JMO à ladite mémoire tampon A0. Quant à un acteur destinataire, ici par exemple l'acteur destinataire Al au vu de l'acteur source A0, il peut réaliser 5 préalablement une fonction dite « CAPTURE » (« POP » en anglais), correspondant à une capture d'un jeton modifié dans une mémoire tampon, ici par exemple le jeton modifié JMO de la mémoire tampon A0. Autrement dit, ledit acteur destinataire Al capture ledit jeton 10 modifié JMO une fois sa demande de capture validée par ladite mémoire tampon FIFOO. Ledit acteur destinataire Al est ensuite autorisé à lire ledit jeton modifié JMO et à utiliser des données qui y sont enregistrées. Une fois que l'acteur destinataire Al a terminé des opérations 15 sur ledit jeton modifié JMO, l'acteur destinataire Al peut effectuer une fonction dite « LIBERATION » (« RELEASE » en anglais) pour remettre ledit jeton modifié JMO en son état « LIBRE », c'est-à-dire que le jeton modifié JMO redevient le jeton JLO. De ce fait, l'acteur source AO peut réutiliser le jeton de l'état « LIBRE » JLO disponible 20 dans la mémoire tampons FIFOO via la fonction « RESERVER ». Il convient de noter que ledit graphe de type réseau de Kahn GKPN supporte en outre un parallélisme de données (« data parallelism » en anglais). Pour ce faire, le jeu de mémoires tampons FIFOj comporte au 25 moins une mémoire tampon dite de « diffusion », ici par exemple la mémoire FIFO1, couplée à un seul acteur source, ici par exemple l'acteur Al, et à au moins deux acteurs destinataires, ici par exemple les acteurs A2 à A4. En effet, ledit seul acteur source Al peut générer et délivrer à 30 ladite mémoire tampon de diffusion FIFO1 un jeton modifié JM1 en appliquant les fonctions « RESERVER » et « POUSSER ». Lesdits au moins deux acteurs A2 à A4 peuvent ensuite effectuer une fonction dite « DIFFUSION » (« BROADCAST » en 3050565 9 anglais) de façon à capturer parallèlement ledit même jeton modifié JM1 disponible dans ladite mémoire tampon de diffusion FIFO1. Une fois que lesdits au moins deux acteurs A2 à A4 ont consommé ledit même jeton modifié JM1, ils peuvent le remettre 5 ensuite en son état « LIBRE », c'est-à-dire que le jeton JM1 devient le jeton en état « LIBRE » JL1. Le jeu de mémoires tampons FIFOj comporte par ailleurs et au moins une mémoire tampon de collecte, ici par exemple la mémoire FIFO2, couplée à au moins deux acteurs sources, ici par exemple les 10 acteurs A2 à A4 et à un seul acteur destinataire, ici par exemple l'acteur A5. Lesdits au moins deux acteurs sources A2 à A4 peuvent effectuer une fonction dite « COLLECTE » supportée par les moyens de traitement MT de façon à demander chacun à ladite mémoire 15 tampon de collecte FIFO2 un jeton en état « LIBRE » JL2 à JL4. Si ces jetons JL2 à JL4 sont disponibles dans la mémoire tampon de collecte FIFO2, les acteurs A2 à A4 les modifient prospectivement et ensuite renvoient chacun de façon parallèle à ladite mémoire tampon de collecte FIFO2 un jeton modifié JM2, JM3 et JM4. Autrement dit, 20 ladite mémoire tampon de collecte FIFO2 reçoit à la fois trois jetons modifiés JM2 à JM4. La gestion des mémoires tampons associées aux acteurs processeurs, configurés pour délivrer et stocker les différents jetons peut être réalisée par un contrôleur de gestion de mémoire CGM. 25 Comme il sera expliqué plus en détails ci-après, la gestion des mémoires tampons associées aux acteurs matériels HW IPO à HW IPK peut être réalisée par des moyens de contrôle MCMT incorporés dans les interfaces de communication ICO à ICK. En outre, ledit graphe de type réseau de Kahn GKPN permet 30 avantageusement de supporter des variables globales par exemple du langage C/C++ de façon à faciliter le parallélisme des codes de référence séquentiels, écrits souvent en C ou C++, et à alléger la complexité de programmation. 3050565 10 Comme indiqué ci-avant, ledit protocole commun de communication et de synchronisation PCCS est supporté dans tous les acteurs Ai et toutes les mémoires tampons FIFOj dudit graphe de type réseau de Kahn GKPN. Le mécanisme de synchronisation est en effet 5 assuré dans chaque mémoire tampon FIFOj via des compteurs partagés CP et non-partagés CNP. On se réfère maintenant à la figure 3 pour illustrer un exemple d'une mémoire tampon et de ses compteurs partagés CP et non-partagés CNP selon l'invention. 10 A chaque mémoire tampon FIFOj sont associés deux compteurs partagés CP comportant un compteur d'écriture CE incrémenté à la suite de chaque opération de la fonction « POUSSER » et un compteur de libération CL incrémenté à la suite de chaque opération de la fonction « LIBERATION ». Ces deux compteurs partagés CP de 15 chaque mémoire tampon FIFOj peuvent être implémentés dans ladite mémoire partagée MP. Le compteur d'écriture CE et le compteur de libération CL d'une mémoire tampon FIFOj sont visibles et partagés uniquement par les deux acteurs AS et AD couplés à ladite mémoire tampon FIFOj. 20 Seul l'acteur source AS peut modifier le compteur d'écriture CE et seul l'acteur destinataire AD peut modifier le compteur de libération CL. Par ailleurs, à chaque mémoire tampon FIFOj sont associés deux compteurs non-partagés CNP comportant un compteur de 25 « réservation » CR incrémenté à la suite de chaque opération de la fonction « RESERVER » et visible seulement par l'acteur source AS associé, et un compteur de « capture » CC incrémenté à la suite de chaque opération de la fonction « CAPTURE » et visible seulement par l'acteur destinataire associé. 30 Ledit protocole commun de communication et de synchronisation PCCS prévoit également un blocage sur les actions « RESERVER » et un autre blocage sur les actions « CAPTURE ». Lorsque la différence entre le contenu du compteur de « réservation » CR et celui du compteur de libération CL, c'est-à-dire 3050565 11 CR - CL, est égale ou supérieure à la capacité de la mémoire tampon FIFOj, ledit protocole PCCS bloque temporellement la fonction « RESERVER » de façon à attendre un nouveau jeton « LIBRE » généré par la fonction « LIBERATION ». 5 Lorsque la différence entre le contenu du compteur d'écriture CE et celui du compteur de « capture » CC est égale à zéro, ledit protocole PCCS bloque temporellement la fonction « CAPTURE » de façon à attendre l'arrivée d'un nouveau jeton modifié généré par la fonction « POUSSER ». 10 Grâce notamment à ces fonctions décrites ci-avant, les acteurs Ai dudit graphe GKPN peuvent être implémentés sous forme de modules logiciels (processeurs) ou d'accélérateurs matériels en appliquant ledit même protocole PCCS. Il convient de noter ici que le moyen d'accès direct à la 15 mémoire MC illustré sur la figure 2 est également configuré pour supporter ledit protocole PCCS via des compteurs partagés CP et non-partagés CNP. En effet, l'un quelconque des acteurs logiciels peut programmer ledit accès direct à la mémoire DMA de façon à effectuer des opérations des fonctions « POUSSER » et « LIBERATION ». 20 La figure 4 illustre le fonctionnement d'un exemple d'accès direct à la mémoire selon l'invention. Plus précisément, lors d'un transfert de données par exemple issues d'une mémoire externe ME via les moyens MC vers un acteur destinataire AD2 dans ledit système électronique SE, ladite mémoire 25 externe ME fonctionne comme un acteur source et elle lance un transfert de type DMA, bien connu de l'homme du métier. Les moyens MC direct à la mémoire sont chargés de modifier un jeton d'une mémoire tampon FIFO AD2DMA couplée entre les moyens MC et ledit acteur destinataire AD2 et d'effectuer une action « POUSSER » à 30 la place de ladite mémoire externe ME. Le compteur d'écriture CE de ladite mémoire tampon MT est incrémenté après l'action « POUSSER ». En cas d'un transfert de données par exemple issues d'un acteur source AS2 dudit système électronique SE vers ladite mémoire 3050565 12 externe ME via les moyens MC, l'acteur source AS2 écrit un jeton de la mémoire tampon MT correspondante et lance un transfert « DMA » sans faire une action « POUSSER ». Les moyens MC sont configurés pour effectuer une action « LIBERATION » pour libérer ledit jeton et 5 incrémenter le compteur de libération CL d'une mémoire tampon FIFO AS2DMA couplée entre ledit acteur source AS2 et les moyens MC lorsque ledit transfert « DMA » est terminé. On se réfère maintenant à la figure 5 pour illustrer un exemple d'une interface de communication ICk selon l'invention. 10 Ladite interface de communication ICk reçoit à son entrée un flux des demandes des opérations de lectures/écritures provenant de l'accélérateur matériel HW IPk correspondant et génère à sa sortie des demandes d'opérations de chargement/stockage vers la mémoire partagée MP. Les demandes d'opérations lectures/écritures suivent un 15 protocole de flux tandis que les demandes d'opérations de chargement/stockage sont formées selon un protocole de chargement/stockage. Ladite interface de communication ICk comprend un moyen de commande des mémoires tampons MCMT configuré pour gérer des 20 mémoires tampons de lecture/écriture FIFOL/FIFOE couplées à ladite interface de communication ICk, des moyens de synchronisation MS configurés pour effectuer des synchronisations des jetons, et un bloc de traitement BT destiné à implémenter ledit protocole commun de communication et de synchronisation PCCS. 25 Afin de traiter des demandes d'opérations de lecture reçue par une mémoire tampon de lecture FIFOL, les moyens de synchronisation MS sont configurés pour lire la valeur du compteur d'écriture associé à ladite mémoire tampon de lecture FIFOL et la comparer avec celle du compteur de « capture » associé à ladite même mémoire tampon FIFOL 30 de façon à déterminer la présence d'un nouveau jeton modifié. Si ledit jeton modifié est présent et qu'il y a une demande d'opération de lecture reçue par ladite mémoire tampon de lecture FIFOL, le bloc de traitement BT transmet les réponses de la mémoire partagée MP audit accélérateur matériel HW IPO jusqu'à ce que le 3050565 13 nombre d'opérations de lecture soit égal à un premier nombre égal à la taille du jeton modifié. Quand le nombre d'opérations de lecture devient égal à la taille dujeton modifié, le compteur « LIBERATION », autrement dit le compteur partagé, de 5 ladite mémoire tampon de lecture FIFOL est incrémenté. Ladite mémoire tampon de lecture FIFOL bloque temporellement la fonction « CAPTURE » jusqu'à ce qu'il y ait un nouveau jeton modifié. En d'autres termes l'accès et la délivrance des réponses de la mémoire partagée à l'accélérateur matériel est autorisé dès qu'il y a un 10 jeton modifié. Le compteur non partagé de « CAPTURE » est incrémenté lorsque le nombre de demandes d'opération de lecture atteint la taille du jeton. La lecture reste bloquée quand il y a trop de demandes de lecture par rapport à la taille du jeton et on attend alors un nouveau jeton. 15 Quant à un traitement des demandes d'opérations d'écriture reçues par une mémoire tampon d'écriture FIFOE, les moyens de synchronisation MS lisent la valeur du compteur de « réservation » associé à ladite mémoire tampon d'écriture FIFOE et la comparent avec celle du compteur de libération associé à ladite même mémoire 20 tampon FIFOE de façon à déterminer si un nouveau jeton « LIBRE » est présent. Si ledit jeton « LIBRE » est présent et qu'il y a une demande d'écriture reçue par la mémoire tampon d'écriture FIFOE, le bloc de traitement BT délivre les demandes de stockage vers la mémoire 25 partagée MP jusqu'à ce que le nombre de demandes d'opérations d'écriture soit égal à un deuxième nombre correspondant à la taille dudit jeton « LIBRE ». Quand le nombre de demandes d'opérations d'écriture devient égal à la taille du jeton « LIBRE », le compteur d'écriture, autrement dit le compteur partagé, de ladite mémoire 30 tampon d'écriture FIFOE est incrémenté. La mémoire tampon d'écriture FIFOE bloque temporellement la fonction « RESERVER » jusqu'à ce qu'il y ait un nouveau jeton « LIBRE ». Il convient de noter que le premier nombre et le deuxième nombre peuvent être identiques ou différents et que les compteurs non- 3050565 14 partagés des mémoires tampons de lecture/écriture FIFOL/FIFOE, c'est-à-dire les compteurs de « capture » et de « réservation », sont respectivement incrémentés après chaque action « CAPTURE »/« RESERVER ». 5 Ainsi, lesdites interfaces de communication ICO à ICk permettent avantageusement de convertir directement et rapidement les demandes d'opérations lectures/écritures provenant des accélérateurs matériels HW IPO à HW IPK en celles d' opérations chargements/stockages utilisables dans la mémoire partagée MP. REVENDICATIONS1. Système électronique (SE), configuré pour implémenter une application logicielle (AL) décrite sous la forme d'un graphe de type réseau de Kahn (GKPN) comportant des acteurs (Ai), caractérisé en ce que l'un au moins des acteurs (Ai) comporte un processeur (PPn) et l'un au moins des acteurs (Ai) comporte un accélérateur matériel (HW_IPk) et le système (SE) comporte en outre des mémoires tampons (FIFOj) couplées entre les différents acteurs (Ai), et des moyens de traitement (MT) configurés pour permettre un dialogue entre lesdits acteurs (Ai) selon un protocole commun de communication et de synchronisation (PCCS) alors que ledit processeur (PPn) et ledit accélérateur matériel (HW_IPk) sont conçus pour utiliser des protocoles de communication individuels différents. 2. Système selon la revendication 1, dans lequel les moyens de traitement (MT) comportent une mémoire partagée (MP) contenant lesdites mémoires tampons (FIFOj), et des compteurs partagés (CP) et non-partagés (CNP) de synchronisation associés aux mémoires tampons (FIFOj), ledit protocole de communication et de synchronisation (PCCS) appliqué entre les acteurs (Ai) étant basé sur lesdits compteurs partagés (CP) et non-partagés (CNP) de synchronisation. 3. Système selon la revendication 2, dans lequel les moyens de traitement sont configuré pour gérer les mémoires tampons sur la base de jeton, chaque mémoire tampon (FIFOj) comporte au moins un jeton initialement dans un état « LIBRE » et est couplée à un acteur source (A0) et à un acteur destinataire (A1), et les moyens de traitement (MT) sont configurés pour gérer une fonction « RESERVER » utilisable par un quelconque acteur source (AO) et conçue pour demander à la mémoire tampon (FIFOO) couplée audit acteur source (A0) de fournir un jeton dans un état « LIBRE » (JLO), une fonction « POUSSER » utilisable par un quelconque acteur source (A0) et conçue pour renvoyer à la mémoire tampon (FIFOO) 3050565 16 couplée audit acteur source (A0), un jeton modifié (JMO) à la suite d'une modification d'un jeton dans l'état « LIBRE » (JLO), une fonction « CAPTURE » utilisable par un quelconque acteur destinataire (A1) et conçue pour capturer un jeton modifié (JMO) de la 5 mémoire tampon (FIFO0) couplée audit acteur destinataire (A1), et une fonction « LIBERATION » utilisable par un quelconque acteur destinataire (A1) et conçue pour remettre un jeton modifié (JMO) de la mémoire tampon (FIF00) couplée audit acteur destinataire (A1) dans l'état « LIBRE » (JLO). 10 4. Système selon la revendication 3, dans lequel les compteurs partagés (CP) comportent un compteur d'écriture (CE) configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction « POUSSER » et un compteur de libération (CL) configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction 15 « LIBERATION », et les compteurs non-partagés comportent un compteur de « réservation » (CR) configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction « RESERVER », et un compteur de « capture » (CC) configuré pour être incrémenté à la suite de chaque mise en oeuvre de la fonction « CAPTURE ». 20 5. Système selon la revendication 4, dans lequel les moyens de traitement son configurés pour effectuer un blocage de la fonction « RESERVER », sur la base de la valeur de la différence entre le contenu du compteur de réservation (CR) et celui du compteur de libération (CL) et d'une comparaison entre cette valeur de différence 25 et la capacité de la mémoire tampon associée, et pour effectuer un blocage de la fonction « CAPTURE »sur la base de la valeur de différence entre le contenu du compteur d'écriture (CE) et celui du compteur de « CAPTURE » (CC). 6. Système selon la revendication 2, dans lequel le jeu de 30 mémoires tampons (FIFOj) comprend en outre au moins une mémoire tampon de diffusion (FIFO1) couplée à un seul acteur source (A1) et à au moins deux acteurs destinataires (A2 à A4), et au moins une mémoire tampon de collecte (FIFO2) couplée à au moins deux acteurs sources (A2 à A4) et à un seul acteur destinataire (A5), les moyens de 3050565 17 traitement (MT) étant en outre configurés pour gérer les mémoires tampons sur la base de jeton et gérer une fonction « DIFFUSION » utilisable par lesdits au moins deux acteurs destinataires (A2 à A4) et conçue pour capturer 5 parallèlement un même jeton modifié (JM2) généré par ledit seul acteur source (A1) et disponible dans ladite mémoire tampon de diffusion (FIFO1) et pour remettre ensuite ledit même jeton modifié en son état « LIBRE » (JL1), et une fonction « COLLECTE » utilisable par lesdits au moins 10 deux acteurs sources (A2 à A4) et conçue pour que chacun de ces acteurs sources demande à ladite au moins une mémoire tampon de collecte (FIFO2) un jeton en état « LIBRE » (JL2 à JL4) et pour que chacun renvoie ensuite à ladite au moins une mémoire tampon de collecte (FIFO2) un jeton modifié (JM2 à JM4) à la suite d'une 15 modification dudit jeton en état « LIBRE » (JL2 à JL4). 7. Système selon l'une quelconque des revendications précédentes, dans lequel les moyens de traitement (MT) comportent au moins une interface de communication (ICk) couplée entre la mémoire partagée (MP) et ledit au moins un accélérateur matériel (HW IPk), et 20 un moyen de contrôle (MC) configuré pour supporter ledit protocole commun de communication et de synchronisation (PCCS). 8. Système selon la revendication 7, dans lequel le moyen de contrôle (MC) est un moyen d'accès direct à la mémoire (DMA). 9. Système selon les revendications 4 et 8, dans lequel ledit 25 moyen d'accès direct à la mémoire (DMA) est configuré pour être synchronisé via les compteurs partagés (CP) de synchronisation et être programmé par un acteur logiciel. 10. Système selon l'une quelconque des revendications 6 à 8, dans lequel chaque interface de communication (ICk) est configurée 30 pour recevoir un flux de demandes d'opérations provenant dudit accélérateur matériel (HW IPk) correspondant et pour délivrer des commandes d'opérations de mémoire à ladite mémoire partagée (MP), et comprend un moyen de commande des mémoires tampons (MCMT) configuré pour gérer les mémoires tampons (FIFOj) couplées aux 3050565 18 accélérateurs matériels sur la base de jetons, des moyens de synchronisation (MS) configurés pour effectuer des synchronisations des jetons, et un bloc de traitement (BT) configuré pour implémenter ledit protocole. 5 11. Système selon l'une quelconque des revendications précédentes, dans lequel ledit protocole commun de communication de synchronisation (PCCS) est adapté à un traitement parallèle de données entre les acteurs (Ai) et à une utilisation de variables globales partagées par lesdits acteurs (Ai).