CA2981462C - Architecture de communication pour l'echange de donnees entre des unites de traitement - Google Patents

Architecture de communication pour l'echange de donnees entre des unites de traitement

Info

Publication number
CA2981462C
CA2981462C CA2981462A CA2981462A CA2981462C CA 2981462 C CA2981462 C CA 2981462C CA 2981462 A CA2981462 A CA 2981462A CA 2981462 A CA2981462 A CA 2981462A CA 2981462 C CA2981462 C CA 2981462C
Authority
CA
Canada
Prior art keywords
memory
data
processing units
access
processing unit
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Active
Application number
CA2981462A
Other languages
English (en)
Other versions
CA2981462A1 (fr
Inventor
Etienne Zante
Jean-Pierre Balbinot
Jean-Baptiste Dubois
Richard Manot
Stephane Oinard
Original Assignee
Safran Electronics and Defense Cockpit Solutions SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Safran Electronics and Defense Cockpit Solutions SAS filed Critical Safran Electronics and Defense Cockpit Solutions SAS
Publication of CA2981462A1 publication Critical patent/CA2981462A1/fr
Application granted granted Critical
Publication of CA2981462C publication Critical patent/CA2981462C/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5011Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals
    • G06F9/5016Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resources being hardware resources other than CPUs, Servers and Terminals the resource being the memory
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F11/00Error detection; Error correction; Monitoring
    • G06F11/07Responding to the occurrence of a fault, e.g. fault tolerance
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/16Combinations of two or more digital computers each having at least an arithmetic unit, a program unit and a register, e.g. for a simultaneous processing of several programs
    • G06F15/163Interprocessor communication
    • G06F15/167Interprocessor communication using a common memory, e.g. mailbox
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4843Task transfer initiation or dispatching by program, e.g. task dispatcher, supervisor, operating system
    • G06F9/4881Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues
    • G06F9/4887Scheduling strategies for dispatcher, e.g. round robin, multi-level priority queues involving deadlines, e.g. rate based, periodic
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/54Interprogram communication
    • G06F9/544Buffers; Shared memory; Pipes
    • GPHYSICS
    • G06COMPUTING OR CALCULATING; COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Quality & Reliability (AREA)
  • Multi Processors (AREA)
  • Programmable Controllers (AREA)

Abstract

Cette architecture de communication, pour l’échange de données entre des unités de traitement (ui,...,un) destinées à fonctionner en parallèle 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-l,...,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-l,...,6-m) aptes à allouer à chaque unité de traitement des ports d’accès à la mémoire partagée.

Description

CA 2981462 2017-10-03 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 œuvre 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é. 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 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. 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. 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. 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 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 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 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 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 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 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é à 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. 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 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. 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 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 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 œuvre, 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 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 à 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 multiples à répartition dans le temps mis en œuvre 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 -la figure 5 illustre un exemple de mise en œuvre d’un système de traitement de données multiple utilisant une architecture de communication de la figure 1. 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 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. 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 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. 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 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. 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. 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 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 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 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 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. 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 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. 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 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 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 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 dotée d’un tel module de correction d’erreurs. En référence à la figure 2, les séquenceurs TDMA 5-l,...,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. 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 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 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. 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 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 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 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. 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 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 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 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 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 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. 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 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 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é. 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 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 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’l,...u’n. Le système selon l’invention peut être un système multicoeur comportant trois étages, quatre étages, voire plus. 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 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. L’invention telle que décrite inclut donc les aspects suivants : 1. 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-l,...,4-n) destinées chacune à être raccordée à une unité de traitement; un ensemble de séquenceurs (5-l,...,5-m) aptes à définir, pour chaque unité de traitement, des périodes d’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, où les séquenceurs (5-l,...5-m) sont des séquenceurs d’accès multiple à répartition dans le temps, où la taille de chaque intervalle de temps des périodes d’intervalles de temps peut être égale ou différente, où les intervalles de temps, pour chaque période, sont soit chargés au démarrage soit mémorisés de manière permanente dans les séquenceurs (5-1,...5-m), où la mémoire partagée est accessible par une seule interface de l’ensemble d’interfaces (4-l,...,4-n) dans un intervalle de temps particulier des intervalles de temps, et où chaque séquenceur de l’ensemble de séquenceurs (5- l,...,5-m) est raccordable à une unique interface de l’ensemble d’interfaces (4-l,...,4-n), par l'intermédiaire d’interrupteurs programmables; et un ensemble de gestionnaires d’adresses (6-l,...,6-m) aptes à allouer à chaque unité de traitement des ports d’accès à la mémoire partagée. 2. Architecture selon l’aspect 1, comprenant en outre une mémoire de configuration (7) destinée à communiquer avec les gestionnaires d’adresses (6-l,...,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 l’aspect 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 aspects 1 à 3, 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. 5. Architecture selon l’une quelconque des aspects 1 à 4, dans laquelle tout ou partie des éléments constitutifs de l’architecture sont intégrés dans un même circuit intégré. 6. Système de traitement de données multiples, comprenant un ensemble d’unités de traitement de données (ui,...,un, u’i,...,u’n) 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 aspects 1 à 5, pour l’échange de données entre les unités de traitement. 7. Système de traitement selon l’aspect 6, 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 ou plusieurs mémoires partagées (3). Date Reçue/Date Received 2024-03-15

Claims (7)

1. 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-l,...,4-n) destinées chacune à être raccordée à une unité de traitement; un ensemble de séquenceurs (5-l,...,5-m) aptes à définir, pour chaque unité de traitement, des périodes d’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, où les séquenceurs (5-1,...5-m) sont des séquenceurs d’accès multiple à répartition dans le temps, où la taille de chaque intervalle de temps des périodes d’intervalles de temps peut être égale ou différente, où les intervalles de temps, pour chaque période, sont soit chargés au démarrage soit mémorisés de manière permanente dans les séquenceurs (5-1,...5-m), où la mémoire partagée est accessible par une seule interface de l’ensemble d’interfaces (4-l,...,4-n) dans un intervalle de temps particulier des intervalles de temps, et où chaque séquenceur de l’ensemble de séquenceurs (5- l,...,5-m) est raccordable à une unique interface de l’ensemble d’interfaces (4-l,...,4-n), par l'intermédiaire d’interrupteurs programmables; et un ensemble de gestionnaires d’adresses (6-l,...,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-l,...,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 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.
5. Architecture selon l’une quelconque des revendications 1 à 4, dans laquelle tout ou partie des éléments constitutifs de l’architecture sont intégrés dans un même circuit intégré.
6. Système de traitement de données multiples, comprenant un ensemble d’unités de traitement de données (ui,...,un, u’i,...,u’n) 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 à 5, pour l’échange de données entre les unités de traitement.
7. Système de traitement selon la revendication 6, 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 ou plusieurs mémoires partagées (3). Date Reçue/Date Received 2024-03-15
CA2981462A 2016-10-26 2017-10-03 Architecture de communication pour l'echange de donnees entre des unites de traitement Active CA2981462C (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1660389 2016-10-26
FR1660389A FR3057970B1 (fr) 2016-10-26 2016-10-26 Architecture de communication pour l'echange de donnees entre des unites de traitement

Publications (2)

Publication Number Publication Date
CA2981462A1 CA2981462A1 (fr) 2018-04-26
CA2981462C true CA2981462C (fr) 2025-09-23

Family

ID=58347481

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2981462A Active CA2981462C (fr) 2016-10-26 2017-10-03 Architecture de communication pour l'echange de donnees entre des unites de traitement

Country Status (5)

Country Link
US (1) US11216308B2 (fr)
CN (1) CN107992444B (fr)
CA (1) CA2981462C (fr)
DE (1) DE102017122909A1 (fr)
FR (1) FR3057970B1 (fr)

Families Citing this family (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US11544203B2 (en) 2019-12-30 2023-01-03 Micron Technology, Inc. Sequencer chaining circuitry
US11513941B2 (en) 2020-09-02 2022-11-29 Ge Aviation Systems Llc Systems and method for flexible write- and read-access of a regulated system
US20240078185A1 (en) * 2022-09-07 2024-03-07 Mellanox Technologies, Ltd. Using parallel processor(s) to process packets in real-time
US12204782B2 (en) 2023-06-20 2025-01-21 Stmicroelectronics International N.V. Communication logic to enhance area effectiveness for memory repair mechanism

Family Cites Families (8)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4363096A (en) * 1980-06-26 1982-12-07 Gte Automatic Electric Labs Inc. Arbitration controller providing for access of a common resource by a duplex plurality of central processing units
US6687797B1 (en) * 2001-05-17 2004-02-03 Emc Corporation Arbitration system and method
EP1482412B1 (fr) * 2003-05-30 2006-08-23 Agilent Technologies Inc Arbitrage de mémoire partagée
JP5037952B2 (ja) * 2007-01-15 2012-10-03 株式会社日立製作所 ストレージシステム及びストレージシステムの制御方法
US20080270658A1 (en) * 2007-04-27 2008-10-30 Matsushita Electric Industrial Co., Ltd. Processor system, bus controlling method, and semiconductor device
US9098462B1 (en) * 2010-09-14 2015-08-04 The Boeing Company Communications via shared memory
CN103810124A (zh) * 2012-11-09 2014-05-21 辉达公司 用于数据传输的系统及方法
FR3019340B1 (fr) * 2014-03-28 2016-03-25 Voox Composant electronique a reponse determeniste

Also Published As

Publication number Publication date
US20180113743A1 (en) 2018-04-26
FR3057970B1 (fr) 2019-12-13
CA2981462A1 (fr) 2018-04-26
CN107992444A (zh) 2018-05-04
FR3057970A1 (fr) 2018-04-27
DE102017122909A1 (de) 2018-04-26
CN107992444B (zh) 2024-01-23
US11216308B2 (en) 2022-01-04

Similar Documents

Publication Publication Date Title
CA2981462C (fr) Architecture de communication pour l'echange de donnees entre des unites de traitement
KR20190105497A (ko) Fpga 기반 가속화를 위한 새로운 ssd 구조
FR2517442A1 (fr) Dispositif d'interruption pour un systeme de multitraitement, procede pour sa commande et systeme pour sa mise en oeuvre
FR3020886A1 (fr)
EP2320325B1 (fr) Contrôleur d'accès direct en mémoire à sources multiples, procédé et programme d'ordinateur correspondants
FR2881540A1 (fr) Procede et systeme destines a empecher que des lignes de memoire cache soient videes jusqu'a ce que les donnees stockees dans celles-ci ne soient utilisees.
FR2773237A1 (fr) Systeme et procede pour modifier le mappage de partitions vers des unites logiques dans une memoire d'ordinateur
FR2936068A1 (fr) Procede et dispositif d'encapsulation d'applications dans un systeme informatique pour aeronef.
EP3259674B1 (fr) Circuit dram muni d'un processeur integre
KR20190105496A (ko) Fpga 기반 가속화를 위한 새로운 ssd 구조
EP2940690B1 (fr) Compteur bidirectionnel en mémoire flash
FR2884632A1 (fr) Systemes distribues de calcul bases sur des informations d'etat distribuees et procedes et protocoles correspondants
EP0077863A1 (fr) Dispositif de balayage de lignes de communications destiné à un contrôleur de communications
EP0580727B1 (fr) Circuit coupleur et son utilisation dans une carte et procede
EP0632622B1 (fr) Procédé pour espacer temporellement les émissions de cellules appartenant à des messages ainsi que des dispositifs pour la mise en oeuvre d'un tel procédé
EP1341087B1 (fr) Procédé et système de gestion d'un journal personnel d'évènements
EP3557433B1 (fr) Procédé de gestion du routage de transactions entre au moins un équipement source et au moins un équipement cible, par exemple une mémoire multiports, et système sur puce correspondant
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
EP0822495B1 (fr) Distribution de tickets dans un système informatique multinodal
FR3100909A1 (fr) Procédé d'accès aux ressources partagées d'une plateforme informatique, programme d'ordinateur et plate-forme informatique associés
EP0082903B1 (fr) Unité de commande pouvant être connectée à deux mémoires de vitesses différentes
FR2686991A1 (fr) Procede, systeme et processeur de communication entre une pluralite de sous-ensembles d'un equipement.
EP4187392A1 (fr) Procédé de gestion d'une mémoire au sein d'un système sur puce
EP3392768B1 (fr) Procédé et dispositif électronique de vérification d'une configuration de partitionnement, programme d'ordinateur associé
FR2624631A1 (fr) Systeme multiprocesseur, procede d'echange d'informations mis en oeuvre et composant memoire multiport serie susceptible d'equiper ledit systeme

Legal Events

Date Code Title Description
EEER Examination request

Effective date: 20220907

MFA Maintenance fee for application paid

Free format text: FEE DESCRIPTION TEXT: MF (APPLICATION, 7TH ANNIV.) - STANDARD

Year of fee payment: 7

U00 Fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U00-U101 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: MAINTENANCE REQUEST RECEIVED

Effective date: 20240925

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-U102 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: MAINTENANCE FEE PAYMENT DETERMINED COMPLIANT

Effective date: 20240925

Free format text: ST27 STATUS EVENT CODE: A-2-2-U10-U11-U102 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: MAINTENANCE FEE PAYMENT PAID IN FULL

Effective date: 20240925

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-2-2-D10-D22-D128 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: NOTICE OF ALLOWANCE IS ISSUED

Effective date: 20250313

Free format text: ST27 STATUS EVENT CODE: A-2-2-D10-D22-D128 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: ALLOWANCE REQUIREMENTS DETERMINED COMPLIANT

Effective date: 20250313

W00 Other event occurred

Free format text: ST27 STATUS EVENT CODE: A-2-2-W10-W00-W100 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: LETTER SENT

Effective date: 20250313

D00 Search and/or examination requested or commenced

Free format text: ST27 STATUS EVENT CODE: A-4-4-D10-D00-D164 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: RESPONSE TO NOTICE OF ALLOWANCE

Effective date: 20250704

D22 Grant of ip right intended

Free format text: ST27 STATUS EVENT CODE: A-2-4-D10-D22-D143 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: PRE-GRANT

Effective date: 20250722

W00 Other event occurred

Free format text: ST27 STATUS EVENT CODE: A-4-4-W10-W00-W111 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: CORRESPONDENT DETERMINED COMPLIANT

Effective date: 20250722

Q17 Modified document published

Free format text: ST27 STATUS EVENT CODE: A-4-4-Q10-Q17-Q103 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: DOCUMENT PUBLISHED

Effective date: 20250916

F11 Ip right granted following substantive examination

Free format text: ST27 STATUS EVENT CODE: A-4-4-F10-F11-X000 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: GRANT BY ISSUANCE

Effective date: 20250923

MPN Maintenance fee for patent paid

Free format text: FEE DESCRIPTION TEXT: MF (PATENT, 8TH ANNIV.) - STANDARD

Year of fee payment: 8

U00 Fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U00-U101 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: MAINTENANCE REQUEST RECEIVED

Effective date: 20250926

U11 Full renewal or maintenance fee paid

Free format text: ST27 STATUS EVENT CODE: A-4-4-U10-U11-U102 (AS PROVIDED BY THE NATIONAL OFFICE); EVENT TEXT: MAINTENANCE FEE PAYMENT PAID IN FULL

Effective date: 20250926