FR 3057970 A1 20180427 FR 1660389 A 20161026 1 Architecture de communication pour l'échange de données entre des unités de traitement La présente invention se rapporte aux systèmes de traitement de données comprenant plusieurs unités de traitement destinées à fonctionner en parallèle et, notamment, à de tels systèmes de traitement de données destinés à être embarqués à bord d'aéronefs. Une application particulièrement intéressante, mais nullement limitative de l'invention, concerne les systèmes de traitement de données fondés sur l'utilisation d'un ou de plusieurs processeurs de calcul graphique pouvant coopérer avec une ou plusieurs unités centrales de traitement pour exécuter des calculs graphiques et créer des contenus graphiques destinés à être affichés sur un écran d'une interface homme/machine embarquée à bord d'un aéronef. L'invention se rapporte, de manière générale, à tout système de traitement de données comprenant des unités de traitement aptes à recevoir des applications logicielles ou matérielles destinées à fonctionner en parallèle. Les systèmes de traitement de ce type sont dotés d'une architecture de communication qui assure l'échange de données entre les unités de traitement de données. Divers types de techniques peuvent être utilisés pour la mise en oeuvre d'une communication entre des unités de traitement. On peut en premier lieu utiliser une technique de contrôle d'accès multiple à répartition dans le temps, encore appelée TDMA pour : « Time Division Multiple Access » en anglais, pour superviser les communications entre les unités de traitement. Cette technique TDMA repose sur une division temporelle de la bande passante disponible en répartissant les temps d'accès disponibles entre les différentes unités de traitement. Le principe du TDMA repose ainsi sur l'utilisation de fenêtres temporelles ou « slots » durant lesquelles une seule des unités de traitement a accès à un élément supervisé. 3057970 2 A l'expiration de la fenêtre temporelle, l'accès à une ressource est confié à une autre unité de traitement. Les fenêtres temporelles peuvent être fixes et organisées selon un schéma répétitif au cours du temps. Toutefois, dans ce cas, la 5 communication n'est pas optimale. En effet, lorsqu'une unité de traitement à qui une fenêtre temporelle a été accordée n'a pas d'action à effectuer pendant la période de temps qui lui a été allouée, l'architecture de communication n'est pas accessible par un autre élément qui a potentiellement une action à effectuer. 10 C'est la raison pour laquelle il a été proposé d'allouer dynamiquement les fenêtres temporelles. Il est connu d'utiliser le TDMA en version dynamique, les fenêtres temporelles étant allouées en fonction de la demande, et en fonction des besoins en bande passante. 15 Un inconvénient avec les accès TDMA en version dynamique est de rendre impossible la prédictibilité du mécanisme des échanges de données au niveau de chaque unité de traitement. Il devient également impossible de s'assurer qu'à chaque instant, un acteur communique avec la ressource à laquelle il doit accéder. 20 Un but de l'invention est de proposer une architecture de communication pour l'échange de données entre des unités de traitement aptes à fonctionner en parallèle dans laquelle le caractère prévisible de la communication de données est garanti. En d'autres termes, un but de l'invention est de proposer une 25 architecture de communication pour l'échange de données entre des unités de traitement aptes à fonctionner en parallèle garantissant que chaque unité de traitement a accès à une ressource à laquelle elle est effectivement autorisée à accéder. L'invention a donc pour objet, selon un premier aspect, une 30 architecture de communication pour l'échange de données entre des unités de traitement, notamment destinées à recevoir des applications logicielles ou matérielles, aptes à fonctionner en parallèle, comprenant un système de communication comprenant un ensemble d'interfaces destinées chacune à être raccordée à une unité de traitement, un 3057970 3 ensemble de séquenceurs aptes à définir, pour chaque unité de traitement, des intervalles de temps d'accès à une mémoire partagée accessible par les unités de traitement pour l'écriture et la lecture de données, pour l'arbitrage séquentiel des accès à ladite mémoire, et un 5 ensemble de gestionnaires d'adresses aptes à allouer à chaque unité de traitement des ports d'accès à la mémoire partagée. Cette architecture de communication permet ainsi de définir des intervalles de temps d'accès à la mémoire partagée tout en attribuant à chaque unité de traitement des zones d'adresses mémoire 10 pour la lecture et l'écriture de données. Les gestionnaires d'adresses garantissent ainsi qu'une unité de traitement n'a pas accès à des ports de la mémoire partagée auxquels elle n'est pas autorisée à accéder. Selon une autre caractéristique de l'architecture selon 15 l'invention, celle-ci comprend en outre une mémoire de configuration destinée à communiquer avec les gestionnaires d'adresses et destinée à recevoir des tables d'accès, pour chaque unité de traitement, aux ports d'accès et à la mémoire partagée. On peut prévoir qu'un moyen de détection d'erreurs est associé 20 à au moins l'une desdites mémoire de configuration et mémoire partagée. Dans un mode de réalisation, les séquenceurs sont des séquenceurs d'accès multiple à répartition dans le temps, encore appelés TDMA. 25 Dans un mode de réalisation, les séquenceurs comportent des moyens configurables de raccordement sélectif desdits séquenceurs aux interfaces. Avantageusement, la mémoire partagée comprend, pour chaque unité de traitement, au moins deux emplacements mémoire comprenant 30 au moins un emplacement mémoire de stockage de messages échantillonnés et au moins un emplacement mémoire de stockage de files de données. 3057970 4 Dans un mode de réalisation, tout ou partie des éléments constitutifs de l'architecture sont intégrés dans un même circuit intégré. L'invention a également pour objet, selon un autre aspect, un 5 système de traitement de données multiples, comprenant un ensemble d'unités de traitement de données, notamment configurées pour recevoir des applications logicielles ou matérielles, destinées à fonctionner en parallèle. Ce système comprend au moins une architecture de 10 communication telle que définie ci-dessus pour l'échange de données entre les unités de traitement. Dans un mode de mise en oeuvre, le système comprend un premier ensemble d'unités de traitement de données et au moins un deuxième ensemble d'unités de traitement de données, les unités de 15 chaque ensemble étant raccordées au moyen d'au moins un système de communication connectés chacun à une ou plusieurs mémoires partagées. D'autres buts, caractéristiques et avantages de l'invention apparaîtront à la lecture de la description suivante, donnée uniquement 20 à titre d'exemple non limitatif, et faite en référence aux dessins annexés sur lesquels : -la figure 1 est un schéma synoptique d'une architecture de communication conforme à l'invention ; -la figure 2 illustre le mécanisme de séquencement des accès 25 multiples à répartition dans le temps mis en oeuvre au sein de l'architecture de la figure 1 ; -les figures 3 et 4 illustrent le principe des accès à la mémoire partagée par stockage de messages échantillonnés et de files de données ; et 30 -la figure 5 illustre un exemple de mise en oeuvre d'un système de traitement de données multiple utilisant une architecture de communication de la figure 1. 3057970 5 La figure 1 illustre schématiquement une architecture de communication selon l'invention, désignée par la référence numérique générale 1. Dans l'exemple de réalisation envisagé, cette architecture 1 est 5 destinée à assurer la communication de données entre des unités de traitement ui, u2, ... un, par l' intermédiaire d'un système de communication 2 et d'une mémoire partagée 3. Lesdites unités de traitement ui, u2,...un sont aptes à recevoir des applications logicielles ou matérielles. 10 La mémoire partagée 3 peut être disposée à l'intérieur du système de communication 2, comme représenté sur le mode de réalisation de la figure 1, ou encore à l'extérieur dudit système 2. L'architecture 1 de l'invention peut, par exemple, être utilisée au sein d'un système multicoeur de traitement de données comprenant 15 un ensemble d'unités de traitement, par exemple des processeurs raccordés en réseau pour l'échange de données entre les processeurs. Les processeurs raccordés en réseau peuvent être des processeurs de calcul graphique qui coopèrent avec des unités centrales de traitement. 20 De manière générale, l'invention concerne une architecture de communication permettant l'échange de données entre des unités de traitement dans lesquelles sont chargées, ou destinées à recevoir, des applications logicielles ou matérielles fonctionnant en parallèle. Le système de communication 2 comporte, successivement, un 25 ensemble d'interfaces 4-1, 4-2,...4-n raccordées chacune à une seule unité de traitement. Ces interfaces sont constituées par des interfaces adaptées pour communiquer de manière bidirectionnelle avec les unités de traitement. 30 Les interfaces 4-1,...4-n sont raccordées à des séquenceurs 5-1, 5-2,...5-m qui reçoivent les flux de données issus des interfaces et allouent aux unités centrales des fenêtres temporelles d'accès à la mémoire partagée 3. 3057970 6 Les séquenceurs 5-1, 5-2, ...5-m peuvent être des séquenceurs TDMA. Dans ce cas, lesdits séquenceurs 5-1, 5-2, ...5-m assurent une division temporelle de la bande passante disponible pour l'accès à la mémoire partagée 3 en définissant des fenêtres temporelles au cours 5 desquelles, pour chaque séquenceur 5-1, 5-2, ...5-m, une seule des interfaces est autorisée à transférer des données vers la mémoire partagée 3 ou à recevoir des données en provenance de cette mémoire 3. Le système 2 est également doté d'un ensemble de 10 gestionnaires d'adresses 6-1, 6-2, 6-m qui communiquent chacun avec un séquenceur correspondant et qui contrôlent les accès à la mémoire 3. Les gestionnaires 6-1, 6-2...,6-m sont supervisés par une mémoire de configuration dans laquelle peuvent être chargées une ou 15 plusieurs tables d'accès aux ports pl, p2, ...,pm à la mémoire avant toute utilisation ou en cours d'utilisation. Le chargement de la ou des tables d'accès permet de définir les configurations permettant aux gestionnaires 6-1, 6-2...,6-m de transférer les données lors d'un accès par un port pl, p2, ...,pm depuis 20 ou vers un emplacement physique spécifique de la mémoire partagée 3. Afin de garantir l'accès à la mémoire partagée 3, le nombre m de ports accessibles correspond au nombre de gestionnaires d'adresses et au nombre de séquenceurs de manière que les séquenceurs puissent avoir des accès parallèles et simultanés à la mémoire. 25 La mémoire de configuration 7 peut être, par exemple, configurée au démarrage du système de traitement, lors d'une phase de configuration, au cours de laquelle chaque unité de traitement déclare les ports vers lesquels elle est destinée à écrire. Ces tables d'accès sont ensuite fournies aux gestionnaires d'adresses pour indiquer les 30 ports avec lesquels les unités de traitement sont autorisées à communiquer. Les éléments essentiels du système de communication et des séquenceurs peuvent être réalisés à partir de briques de moyens matériels programmables. 3057970 7 Ainsi, les accès aux ports de la mémoire sont programmés lors de la phase préalable de configuration et la configuration est stockée dans la mémoire de configuration. On voit en effet sur la figure 1 que les séquenceurs sont 5 capables d'être raccordés à l'ensemble des interfaces 4-1,...4-n. Selon le mode de réalisation représenté à la figure 1, les séquenceurs sont dotés, en entrée, d'éléments configurables de raccordement sélectif aux interfaces. Ces éléments configurables comprennent ici des interrupteurs 8 10 qui sont sélectivement programmés de manière à assurer le raccordement d'un séquenceur à une unique interface. On voit également sur la figure 1 que la mémoire de configuration 7 et la mémoire partagée 3 sont chacune dotées d'un module de correction d'erreur 9, 10 qui assure une détection et/ou une 15 correction des erreurs dans les données stockées dans les mémoires 3 et 7. Il peut par exemple s'agir de détecter et corriger des bits de données corrompus à partir de la valeur des autres bits d'un mot stocké en mémoire. Selon une variante, seule l'une ou l'autre des mémoires est 20 dotée d'un tel module de correction d'erreurs. En référence à la figure 2, les séquenceurs TDMA 5-1,...,5-m assurent l'arbitrage des accès à la mémoire partagée 3 en utilisant des intervalles de temps d'accès à la mémoire partagée 3 pour l'écriture et la lecture des données. 25 Selon le mode de réalisation représenté à la figure 2, les accès s'effectuent par périodes P d'intervalles de temps d'accès « slotl, slotn ». Le séquencement utilisé ici est un séquencement par intervalles d'accès fixes, mais éventuellement inhomogènes. La taille des intervalles de temps de chaque slot peut être différente. La 30 configuration de ces intervalles de temps, pour chaque période, est soit chargée au démarrage soit mémorisée de manière permanente dans les séquenceurs. Selon le mode de réalisation représenté aux figures 3 et 4, l'accès à la mémoire partagée 3 s'effectue, pour chaque port, en 3057970 8 utilisant un emplacement mémoire qui peut être un emplacement mémoire de stockage de messages échantillonnés, un emplacement mémoire de stockage de files de données ou un autre type d'emplacement. 5 Ainsi, la mémoire 3 est partagée en sections Ul, ..., Un allouées respectivement aux unités de traitement. Pour chaque section Ul, ..., Un, la mémoire partagée 3 comporte un ou plusieurs emplacements mémoire « portsampling 1 »,... « portsampling p » pour la lecture et l'écriture de messages M échantillonnés. Ce mécanisme de 10 lecture et d'écriture est généralement désigné en anglais par le terme de « sampling ». Pour chaque section Ul, ..., Un, la mémoire partagée comporte également des emplacements mémoire de stockage de files Ml, M2 et M3 de données, « port-queueingl »,... « port-queueingq ». Ces accès 15 sont désignés en anglais par le terme de « queueing ». Selon l'accès à la mémoire par messages échantillonnés, l'information contenue dans le port est mise à jour à chaque nouvelle écriture. L'accès au port implique la gestion de la taille du message M. Comme illustré, un indicateur I représentatif de l'ancienneté de 20 la donnée stockée en mémoire peut être ajouté à chaque emplacement mémoire. Selon le mécanisme d'accès à la mémoire par files de données, la première donnée écrite par l'une des unités de traitement est la première donnée lue par l'unité de traitement destinataire des données. 25 Une fois la donnée lue, elle est effacée du port. Ce mécanisme de lecture et d'écriture implique l'utilisation d'une notion de taille de message et de profondeur de file. Dans les deux cas, une unique unité de traitement est autorisée à écrire des données dans un port qui lui est alloué. Dans le cas d'un 30 accès à la mémoire par file de données, une unique unité de traitement est autorisée à lire et à exploiter les données écrites dans la mémoire. Grâce à l'utilisation des gestionnaires d'adresses, les unités de traitement peuvent accéder à des éléments de stockage de la mémoire, tel que Port sampling 1 à p et Port queueing 1 à q, sans avoir 3057970 9 connaissance de l'adresse physique à laquelle le message lu et écrit est stocké. Les gestionnaires d'adresses assurent la gestion des ports. Dans le cas de l'écriture par échantillon, les gestionnaires 5 d'adresses assurent l'intégrité des messages. Tant qu'une unité de traitement accède à un message, celui-ci n'est pas altéré par une nouvelle écriture, sans pour autant bloquer cette nouvelle écriture. Un accès en lecture à l'élément de stockage garantit la lecture 10 de la donnée la plus récente. Dans le cas d'un accès en lecture en cours, une nouvelle écriture n'altère pas la donnée lue par l'unité de traitement en cours de lecture. Par contre, tout nouvel accès se fait sur une nouvelle donnée. Dans le cas d'un accès par file de données, les gestionnaires 15 d'accès garantissent que le message lu est le premier disponible de la file. Lors d'un accès en lecture, les gestionnaires d'adresses retournent les données contenues dans le premier message de la file d' attente. 20 A l'accès suivant, le message suivant est fourni au destinataire, sans que celui-ci n'ait à se soucier de l'adressage physique des messages. Dans tous les cas, les gestionnaires d'adresses s'assurent que chacun des éléments de stockage ne possède qu'un unique fournisseur 25 et, dans le cas d'un accès par file d'attente, chacun des éléments de stockage ne possède qu'un unique consommateur. En ce qui concerne la mémoire partagée 3, celle-ci peut en réalité être constituée d'une ou de plusieurs mémoires. Elle peut également être intégrée au système de communication ou être 30 constituée par une mémoire externe à celui-ci. Le système de communication, ou les principaux éléments constitutifs dudit système, peuvent être intégrés dans un même circuit intégré. 3057970 10 L'invention qui vient d'être décrite peut être utilisée pour assurer l'échange de données entre des unités de traitement d'un système multiple de traitement de données. Il peut par exemple s'agir d'assurer la communication entre des 5 processeurs de traitement de données partitionnés et raccordés en réseau. On a représenté sur la figure 5 un exemple de réalisation d'un tel système. Le système illustré à la figure 5 est un système multicoeur qui 10 comporte ici deux étages comprenant chacun plusieurs unités de traitement ul,...,un, et un ou plusieurs ensembles supplémentaires d'unités de traitement u' 1,...u'n. Le système selon l'invention peut être un système multicoeur comportant trois étages, quatre étages, voire plus. 15 Les échanges de données entre les unités de traitement du premier ensemble et du deuxième ensemble d'unités de traitement et au sein de chaque unité de traitement s'effectuent au moyen d'un système de communication identique au système de communication 2 décrit précédemment, par l'intermédiaire d'une ou de plusieurs 20 mémoires partagées 3. Selon le mode de réalisation représenté sur la figure 5, les systèmes de communication 2 partagent la même mémoire partagée 3. Selon une autre variante, les systèmes de communication 2 peuvent avoir chacun une ou plusieurs mémoires partagées 3 dédiées. REVENDICATIONS1. Architecture de communication (1) pour l'échange de données entre des unités de traitement (ui,...,un) aptes à fonctionner en parallèle, caractérisée en ce qu'elle comprend un système (2) de communication comprenant un ensemble d'interfaces (4-1,...,4-n) destinées chacune à être raccordée à une unité de traitement, un ensemble de séquenceurs (5-1,...,5-m) aptes à définir, pour chaque unité de traitement, des intervalles de temps d'accès à une mémoire partagée (3) accessible par les unités de traitement pour l'écriture et la lecture de données, pour l'arbitrage séquentiel des accès à ladite mémoire, et un ensemble de gestionnaires d'adresses (6-1,...,6-m) aptes à allouer à chaque unité de traitement des ports d'accès à la mémoire partagée. 2. Architecture selon la revendication 1, comprenant en outre une mémoire de configuration (7) destinée à communiquer avec les gestionnaires d'adresses (6-1,...,6-m) et destinée à recevoir des tables d'accès, pour chaque unité de traitement, aux ports d'accès et à la mémoire partagée. 3. Architecture selon la revendication 2, comprenant un moyen (9, 10) de détection d'erreurs associé à au moins l'une desdites mémoire de configuration et mémoire partagée. 4. Architecture selon l'une quelconque des revendications 1 à 3, dans laquelle les séquenceurs (5-1,...5-m) sont des séquenceurs d'accès multiple à répartition dans le temps. 5. Architecture selon l'une quelconque des revendications 1 à 4, dans laquelle les séquenceurs comportent des moyens configurables (8) de raccordement sélectif desdits séquenceurs aux interfaces. 6. Architecture selon l'une quelconque des revendications 1 à 5, dans laquelle la mémoire partagée (3) comprend, pour chaque unité de traitement, au moins deux emplacements mémoire comprenant au moins un emplacement mémoire de stockage de messages échantillonnés et/ou au moins un emplacement mémoire de stockage de files de données. 3057970 12 7. Architecture selon l'une quelconque des revendications 1 à 6, dans laquelle tout ou partie des éléments constitutifs de l'architecture sont intégrés dans un même circuit intégré. 8. Système de traitement de données multiples, comprenant un 5 ensemble d'unités de traitement de données (ui,...,un, destinées à fonctionner en parallèle, caractérisé en ce que ledit système comprend au moins une architecture de communication (1) selon l'une quelconque des revendications 1 à 7, pour l'échange de données entre les unités de traitement. 10 9. Système de traitement selon la revendication 8, comprenant un premier ensemble d'unités de traitement de données (ui,...,un) et au moins un deuxième ensemble d'unités de traitement de données (u'i,...u'n), les unités de chaque ensemble étant raccordées au moyen d'au moins un système de communication (2) connectés chacun à une 15 ou plusieurs mémoires partagées (3).