FR3019667A1 - Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees - Google Patents

Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees Download PDF

Info

Publication number
FR3019667A1
FR3019667A1 FR1457007A FR1457007A FR3019667A1 FR 3019667 A1 FR3019667 A1 FR 3019667A1 FR 1457007 A FR1457007 A FR 1457007A FR 1457007 A FR1457007 A FR 1457007A FR 3019667 A1 FR3019667 A1 FR 3019667A1
Authority
FR
France
Prior art keywords
data processing
processor
core
data
cores
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.)
Granted
Application number
FR1457007A
Other languages
English (en)
Other versions
FR3019667B1 (fr
Inventor
Etienne Denis Marie Zante
Remi Andreoletti
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Safran Electrical and Power SAS
Original Assignee
Zodiac Aero Electric 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 Zodiac Aero Electric SAS filed Critical Zodiac Aero Electric SAS
Priority to US14/667,852 priority Critical patent/US10509737B2/en
Priority to DE102015104872.8A priority patent/DE102015104872A1/de
Priority to CA2887077A priority patent/CA2887077C/fr
Publication of FR3019667A1 publication Critical patent/FR3019667A1/fr
Application granted granted Critical
Publication of FR3019667B1 publication Critical patent/FR3019667B1/fr
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/10Program control for peripheral devices
    • G06F13/12Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor
    • G06F13/124Program control for peripheral devices using hardware independent of the central processor, e.g. channel or peripheral processor where hardware is a sequential transfer control unit, e.g. microprocessor, peripheral processor or state-machine
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/38Information transfer, e.g. on bus
    • G06F13/40Bus structure
    • G06F13/4063Device-to-bus coupling
    • G06F13/4068Electrical coupling
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR 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/173Interprocessor communication using an interconnection network, e.g. matrix, shuffle, pyramid, star, snowflake
    • G06F15/17337Direct connection machines, e.g. completely connected computers, point to point communication networks
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T1/00General purpose image data processing
    • G06T1/20Processor architectures; Processor configuration, e.g. pipelining
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06TIMAGE DATA PROCESSING OR GENERATION, IN GENERAL
    • G06T2210/00Indexing scheme for image generation or computer graphics
    • G06T2210/52Parallel processing

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • General Physics & Mathematics (AREA)
  • Microelectronics & Electronic Packaging (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Multi Processors (AREA)
  • Image Generation (AREA)

Abstract

Ce système de traitement de données pour interface graphique comprend au moins un processeur de calcul graphique (GPU) et au moins une unité centrale de traitement (CPU) qui communique avec le processeur de calcul graphique, ledit processeur et ladite unité centrale de traitement comprenant chacun un ensemble de cœurs de traitement de données (C1,..., C6, C' 1,... C' 6). Les cœurs de traitement de données du processeur de calcul graphique sont chacun reliés à un cœur de traitement de données de l'unité centrale de traitement par un unique bus (B1,..., B6) dédié de manière à réaliser un transfert de données en parallèle entre ledit processeur de calcul graphique et ladite unité centrale de traitement.

Description

Système de traitement de données pour interface graphique et interface graphique comportant un tel système de traitement de données La présente invention concerne les systèmes de traitement de données pour interface graphique et concerne en particulier les systèmes de traitement de données fondés sur l'utilisation d'un processeur de calcul graphique (GPU, pour « Graphic Processing Unit ») pouvant coopérer avec une unité centrale de traitement (CPU, pour « Central Processing Unit »). Elle se rapporte également à une interface homme/machine utilisant un tel système de traitement. Une application particulièrement intéressante de l'invention concerne les systèmes de traitement de données pour interfaces homme/machine embarquées à bord d'aéronefs. Il existe en effet un besoin pour disposer d'interfaces homme/machine tactiles à bord d'aéronefs. Dans le domaine des interfaces graphiques, les systèmes de traitement de données sont classiquement utilisés pour exécuter des calculs graphiques et créer des contenus graphiques destinés à être affichés sur un écran de l'interface. Il peut en particulier s'agir de créer des contenus graphiques comportant des zones tactiles manipulables manuellement, en l'espèce par un pilote, pour l'exécution de fonctions prédéfinies.
Dans l'état de la technique, de manière générale, les architectures de traitement de données peuvent être réalisées sous la forme de CPU simples coeurs, d'unités centrales de traitement multiples (multi-CPU) ou CPU multicoeurs. Pour la réalisation de calculs graphiques, on utilise des architectures massivement multicoeurs et l'on utilise en particulier des processeurs de calcul graphique coopérant avec une unité centrale de traitement pour augmenter la puissance de calcul.
En ce qui concerne les CPU simples coeurs, le composant de base d'une telle architecture est le processeur, qui est un composant permettant l'interprétation d'instructions machine définissant des programmes informatiques.
Comme on le sait, pour qu'un système intégrant un processeur puisse fonctionner, il est couplé à une mémoire permanente, qui permet le stockage du programme à exécuter, à une mémoire rapide pour la lecture et l'écriture des variables utilisées lors de l'exécution des programmes, et de périphériques, de type entrée/sortie, bus de communication, contrôleur mémoire, ..., assurant l'échange de données avec l'extérieur du système. Les processeurs modernes intégrés sur puce intègrent également un bus de communication et de la mémoire cache, très rapide, pour le stockage, au plus près de la zone d'exécution du programme, des variables utilisées par le programme, seules les variables de taille relativement importante ou moins utilisées étant envoyées vers la mémoire rapide. Les SoC (pour « System on Chip ») intègrent, en plus du processeur, un certain nombre de périphériques.
Enfin, les microcontrôleurs sont des puces qui intègrent l'ensemble des éléments nécessaires au fonctionnement du processeur, à savoir mémoire et périphérique. En ce qui concerne les CPU simples coeurs, les besoins croissants de puissance pour les processeurs tendent à augmenter progressivement la fréquence de fonctionnement, rendue possible par la finesse de gravure du silicium toujours plus importante. Mais l'augmentation de la fréquence provoque également une augmentation très importante de la consommation, de sorte que le gain en puissance devient marginal devant l'augmentation de la consommation. Il a donc été proposé de répliquer les coeurs de calcul afin de paralléliser l'exécution d'un programme sans pour autant augmenter la fréquence de fonctionnement. Dans une architecture CPU multicoeur classique, chaque coeur possède un premier niveau de mémoire cache, dite mémoire cache de premier niveau. Les différents coeurs peuvent partager ensuite une autre mémoire cache dite de second niveau. Un troisième niveau de mémoire cache peut être prévu lorsque l'on souhaite regrouper certains coeurs.
La parallélisation des tâches et l'attribution à l'un ou l'autre des coeurs des instructions à effectuer se fait via le jeu d'instructions interprété par le processeur et par le système d'exploitation (OS) implémenté qui peuvent attribuer telle ou telle tâche en fonction des différents coeurs. On parle alors de processeur multicoeur. Une telle stratégie d'implémentation peut également être applicable aux SoC multicoeurs. Une autre stratégie consiste à prévoir une architecture similaire à l'architecture classique mais, au lieu de paralléliser le fonctionnement, les différents coeurs sont utilisés pour fiabiliser le traitement. Les coeurs exécutent les mêmes instructions au coup d'horloge près, et les traitements sont ensuite comparés afin d'obtenir un fonctionnement fiable dans des conditions critiques. Cette stratégie est connue sous le terme de « Lockstep ». Une autre stratégie consiste à répliquer un système plutôt qu'un coeur. On parle alors de multiprocesseur. Chaque processeur est indépendant et ne partage pas de mémoire cache avec les autres. Ce type d'architecture est généralement implanté en externe pour réaliser des supercalculateurs ou des groupes de serveurs reliés en réseau pour réaliser des calculs relativement lourds nécessitant des ressources de calcul importantes. En ce qui concerne les architectures GPU, les unités de traitement graphique sont, comme les CPU, des architectures de calcul exécutant un jeu d'instructions. Un GPU est toutefois un processeur optimisé pour les calculs graphiques tels que, accélération matérielle, calculs tridimensionnels, décodage vidéo, ... Depuis longtemps, les GPU sont composés de multiples coeurs de calcul qui se répartissent les tâches graphiques. Il s'agit d' architectures de traitement parallèles. Comme indiqué précédemment, les GPU sont massivement multicoeurs et peuvent comporter plus de 1000 coeurs, pour les plus performants. Les différents coeurs se voient attribuer un certain nombre de calculs à effectuer par un contrôleur. En ce qui concerne les systèmes de traitement de données destinés à être embarqués à bord d'aéronefs, comme on le conçoit, ce type de système électronique est soumis à des contraintes sévères de maîtrise du matériel employé et de déterminisme, qui impose de déterminer de manière certaine le fonctionnement du système, par exemple en ce qui concerne la durée de transfert de données. Ils nécessitent une validation et une certification par les autorités compétentes. Les systèmes de traitement de données pour les interfaces homme-machine embarquées pour avions commerciaux doivent ainsi satisfaire un certain nombre de règles et de recommandations de développement.
Dans l'état de la technique, les systèmes de calcul embarqués sont généralement réalisés à partir de composants pris sur étagère ou « COTS » (pour « Commercial Off The Shelf »), c'est-à-dire de composants fabriqués en grande série pour réduire les coûts de fabrication et de maintenance. Toutefois, l'utilisation de composants COTS conventionnels pose en premier lieu des problèmes d'obsolescence, imposant de provisionner un grand nombre de composants et de les stocker afin de garantir la maintenabilité du produit. Compte tenu du temps de développement et de la durée de vie d'un produit pour l'aéronautique, qui peuvent atteindre plusieurs dizaines d'années, il est courant que les composants utilisés lors de la conception d'un système électronique soient en fait obsolètes même avant la fin du processus de conception, obligeant à réaliser des phases de modification et de recertification périodiques. En second lieu, les composants électroniques COTS sont généralement dérivés de marchés grands publics ou du secteur des télécommunications et sont dès lors optimisés pour des applications non aéronautiques. Leur utilisation dans le domaine aéronautique implique la désactivation des applications d'origine, leur modification pour les rendre compatibles avec le domaine aéronautique puis une certification, engendrant des coûts supplémentaires. Par ailleurs, les systèmes multicoeurs usuels comportent uniquement des mémoires et des systèmes périphériques partagés entre les différents coeurs de calcul. Il en résulte un besoin d'arbitrage dans les accès potentiellement concurrents auxdits systèmes périphériques. La gestion de ces accès concurrents dans un système classique COTS est faite par un système de cohérence non maîtrisé. L'utilisation de composants de type COTS dans un système aéronautique impose donc la mise en place d'un grand nombre de verrous logiciels et matériels permettant de garantir le fonctionnement du composant dans le respect des recommandations des autorités de certification. L'ajout de ces verrous implique une dégradation forte des performances des unités centrales de traitement de données.
D'autre part, les unités de traitement graphiques conventionnelles utilisent des interfaces de programmation utilisant des fonctions normalisées de calcul de type openGL (pour « Open Graphics Library ») pour élaborer des interfaces prototypes qui, après validation, sont retraitées par des outils logiciels compatibles avec le domaine aéronautique pour l'élaboration de l'interface finale. Il en résulte une modification de l'interface d'origine de sorte que, après retraitement, l'interface finale embarquée à bord d'un cockpit peut être sensiblement différente de celle qui a été développée à l'origine et validée par les utilisateurs finaux.
Au vu de ce qui précède, le but que se propose d'atteindre l'invention est de proposer un système de traitements de données pour interface graphique permettant de pallier les inconvénients précités et, en particulier, de proposer une architecture de traitement de données adaptée au monde critique de l'aéronautique.
L'invention a donc pour objet, selon un premier aspect, un système de traitement de données pour interface graphique comprenant au moins un processeur de calcul graphique et au moins une unité centrale de traitement qui communique avec le processeur de calcul graphique, ledit processeur et ladite unité centrale de traitement comportant chacun un ensemble de coeurs de traitement de données. Selon une caractéristique générale du système de traitement de données selon l'invention, les coeurs de traitement de données du processeur de calcul graphique sont chacun reliés à un coeur de traitement de données de l'unité centrale de traitement par un unique moyen de transfert de données dédié, de manière à réaliser un transfert de données en parallèle entre ledit processeur de calcul graphique et ladite unité centrale de traitement.
En d'autres termes, l'invention permet une optimisation de la puissance de calcul à des fins d'utilisation en aéronautique en multipliant les coeurs de traitement CPU/GPU pour obtenir une architecture clonée ayant les mêmes avantages de parallélisation des tâches qu'une architecture multicoeur, sans les inconvénients de complexité et de ressources partagées qui ne sont pas envisageables pour des raisons de sécurité et de criticité aéronautiques. Selon une autre caractéristique de l'invention, au moins une partie des coeurs de traitement de données comportent chacun un coeur de calcul assurant l'exécution d'instructions sur les données et un moyen de transfert de données local interne relié à des dispositifs périphériques dédiés chacun à un coeur de traitement. Les coeurs de traitement de données peuvent être reliés entre eux par un moyen de transfert de données global interne audit processeur de calcul graphique ou à ladite unité centrale de traitement et reliés à des dispositifs périphériques partagés entre les coeurs de traitement de données. Les systèmes de traitement peuvent en outre comporter des moyens d'arbitrage pour arbitrer l'accès aux dispositifs périphériques partagés entre les coeurs de traitement de données.
Dans un mode de réalisation, les moyens d'arbitrage comportent un ordonnanceur attribuant périodiquement et successivement à chaque coeur un intervalle de temps pendant lequel ledit coeur est autorisé à communiquer avec les dispositifs périphériques partagés par l'intermédiaire du bus global.
Le système peut encore comporter un système d'exploitation global partagé entre plusieurs coeurs de traitement. Selon encore une autre caractéristique de l'invention, le système comporte des moyens pour combiner les sorties de chaque coeur de traitement du processeur de calcul graphique. L'invention a encore pour objet une interface graphique pour cockpit d'aéronef comportant un système de traitement de données tel que défini ci-dessus. 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 : - les figures 1 à 3 illustrent des exemples de mise en oeuvre de couplages entre un CPU et un GPU, selon l'état de la technique ; - la figure 4 illustre un mode de couplage entre un CPU et un GPU selon l'invention ; - la figure 5 illustre l'architecture générale d'un système de traitement de données conforme à l'invention ; et - la figure 6 montre une partie d'un système de traitement de données conforme à l'invention montrant l'utilisation de périphériques dédiés à chaque coeur de traitement et de dispositifs périphériques partagés. On se référera tout d'abord aux figures 1 à 3 qui montrent différentes configurations d'une architecture 1 CPU/GPU simple coeur ou multicoeur selon l'état de la technique. Comme on le voit, dans l'état de la technique, chaque unité centrale de traitement (CPU) 2 communique avec son processeur de calcul graphique (GPU) 3 associé par un unique bus de communication 4 global partagé entre les coeurs.
Il peut s'agir, dans diverses configurations, d'un CPU et d'un GPU simples coeurs (figure 1), d'un CPU simple coeur et d'un GPU multicoeur (figure 2), ou encore d'un CPU et d'un GPU multicoeurs, respectivement à m coeurs et à n coeurs.
Selon un tel agencement, dans lequel le bus de communication est commun aux coeurs de l'unité centrale CPU et du processeur graphique GPU, lorsqu'un coeur de l'unité centrale CPU met en oeuvre une application logicielle, il exploite l'ensemble des coeurs du processeur GPU. Par ailleurs, les coeurs du processeur GPU sont partagés, ce qui implique notamment une mise à jour et une certification simultanées de l'ensemble de coeurs. L'emploi d'un bus global nécessite en outre de prévoir un arbitrage poussé pour autoriser l'accès au processeur. Le temps de transfert de données sur le bus commun n'est toutefois pas garanti. En particulier, lorsque le nombre de coeurs augmente, la gestion des priorités et le calcul des temps d'accès s'avèrent plus complexes à mettre en oeuvre. De surcroît, le nombre d'entrées et sorties est limité.
Ainsi, le fonctionnement déterministe de ce type de composants, notamment en ce qui concerne la durée de transfert de données qui ne peut être déterminée de manière certaine, n'est pas garanti. On a représenté sur la figure 4 une architecture CPU/GPU selon l'invention permettant de pallier ces inconvénients. Comme on le voit, le CPU et le GPU sont ici multicoeurs, à m coeurs 5, les coeurs étant reliés par couples CPU/GPU par un moyen de transfert de données 6 dédié, par exemple un ensemble de m bus, comme illustré, ou un réseau sur puce NoC (pour « Network On Chip »). Dans l' exemple représenté, les processeurs GPU sont indépendants et reliés chacun à un unique coeur CPU via un bus dédié. Chaque coeur GPU produit une image graphique liée à l'application qu'il gère. Les différentes images produites sont ensuite assemblées par un mixeur pour produire, en définitive, une image d'écran qui est destinée à être affichée sur l'écran d'une interface homme-machine. Ainsi, chaque couple CPU/GPU héberge une application graphique distincte et indépendante des autres. Cette architecture permet donc le développement parallèle et par plusieurs fournisseurs d'applications d'interfaces homme-machine pour différents systèmes avioniques commerciaux. Cette architecture entièrement partitionnée permet de réaliser une certification incrémentale. En d'autres termes, il est possible de mettre à jour un coeur sans impact sur les autres.
On a représenté sur la figure 5 l'architecture générale d'un système de traitement de données selon l'invention, pour interface graphique, fondé sur le couplage entre un processeur de calcul graphique GPU et une unité centrale de traitement CPU à l'aide d'un bus dédié. Comme indiqué précédemment, on ne sort pas du cadre de l'invention lorsque le couplage est réalisé, de manière générale, par un moyen de transfert de données. On voit en effet sur cette figure que l'unité centrale de traitement CPU et le processeur de calcul graphique GPU comportent chacun un ensemble de coeurs de traitement de données C1-C6 et C'1- C'6, respectivement, ici au nombre de six, reliés entre eux par des bus B1-B6 dédié ou, de manière générale, un moyen de transfert de données, dédié. Ainsi, les problèmes d'arbitrage et de temps de transfert non garanti ne se posent plus dans cette architecture, les données étant véhiculées entre les coeurs de traitement sur des bus non partagés. Comme on le voit, les coeurs de traitement de données de l'unité centrale de traitement sont organisés sur le même modèle et sont fondés sur l'utilisation d'un coeur de calcul, tel que 8. Chaque coeur de traitement comporte un bus de communication interne 9 ou, de manière générale, un moyen de transfert de données, qui assure la communication au sein du coeur entre les divers composants qui le composent et avec des dispositifs périphériques locaux. Chaque coeur de traitement comporte en effet différents types de mémoires, avec entre autre, une mémoire permanente 10, par exemple de type Flash ainsi qu'une mémoire vive 11, par exemple de type DDR, associées respectivement à un contrôleur de mémoire permanente 12 et à un contrôleur de mémoire vive 13. Bien entendu, on ne sort pas du cadre de l'invention lorsque les coeurs de calculs sont dotés d'autres types de dispositifs périphériques locaux, notamment d'autres types de mémoire. Comme cela sera précisé en référence à la figure 4, chaque coeur de traitement comporte également un certain nombre de périphériques locaux d'entrée et de sortie de données qui peuvent être différents d'un coeur à l'autre.
Des périphériques de communication 14 assurent la communication entre les bus dédiés B1-B6 et le bus de communication interne 9 associé. A côté des mémoires 10 et 11 dédiées à chaque coeur de traitement, l'unité centrale de traitement CPU comporte en outre des mémoires et périphériques globaux partagés entre les coeurs. Il s'agit en particulier des mémoires 15, 16 et 17 associées à leurs contrôleurs de mémoire respectifs 18, 19 et 20. Il s'agit, à titre illustratif, mais de façon nullement limitative, de mémoires de type Flash, DDR ou de périphériques globaux partagés 21, 22 et 23, par exemple de types ARINC 429 ou ARINC 825. Dans l'application envisagée, qui concerne les interfaces graphiques pour équipement de cockpit pour aéronef, de telles mémoires peuvent, par exemple, être utilisées pour l'enregistrement d'informations concernant un vol. Un bus global interne 24 ou, de manière générale, un moyen de transfert de données, assure l'échange de données entre les coeurs de traitement de données C1-C6, avec les mémoires 15, 16 et 17 et avec les dispositifs périphériques globaux 21, 22 et 23. Les coeurs de traitement de données C' 1-C'6 du processeur de calcul graphique ont une structure similaire et sont fondés sur l'utilisation d'un coeur de calcul tel que 25. Ce coeur de calcul 25 communique avec un bus de communication interne 26 ou, de manière générale, avec un moyen de transfert de données, lequel est relié via des liens de communication 27 et 28 avec les bus dédiés B1-B6. A côté du coeur de calcul 25, chaque coeur de traitement de données C' 1-C'6 incorpore en outre un coeur GPU de calcul graphique 29 relié au bus interne 26. Enfin, un bus local 30 ou, de manière générale, un moyen de transfert de données, qui communique avec les liens de communication 27 et 28, avec le coeur de calcul 25 et avec le coeur de calcul GPU 29 est relié à une mémoire locale 31 externe associée à un contrôleur correspondant 32. Par ailleurs, l'unité de traitement graphique GPU comporte un mixeur 33 relié au bus local 30 de chaque unité de traitement de données C' 1-C' 6. En effet, chaque couple CPU/GPU assure l'exécution d'une tâche qui lui est affectée et génère une portion de l'image finale. Le mixeur 33 procède à la combinaison de ces diverses images pour l'élaboration de l'écran final affiché sur l'interface homme-machine.
De manière optionnelle, le système de traitement qui vient d'être décrit peut être doté d'une entrée vidéo 34, d'une mémoire externe 35 associée à un contrôleur 36 correspondant et à un système d'arbitrage 37 pour l'accès à des données externes partagées. Un dispositif 38 de récupération d'images associé à un gestionnaire de flux 39 permet de combiner des vidéos ou images récupérées de l'entrée 34 ou de la mémoire 35 pour générer l'image finale. Comme on le conçoit, l'architecture qui vient d'être décrite s'apparente à une architecture multiprocesseur intégrée à une seule et même puce. En effet, chaque coeur étant indépendant et possédant ses propres contrôleurs mémoire et périphériques dédiés, l'architecture selon l'invention est analogue à une architecture multi-SoC. En se référant à la figure 6, sur laquelle on a représenté une stratégie d'implantation de système d'exploitation dans un système de traitement de données conforme à l'invention, on voit que chaque coeur de traitement, noté C"1, C"2 ou C"3 incorpore un certain nombre de d'interfaces d'Entrée/Sortie telles que 42, 43 ou 44 qui communiquent avec un coeur « core#1 », « core#2 » ou « core#3 » via un bus local B, tandis que d'autres interfaces d'Entrée/Sortie 45 sont partagés entre les coeurs de traitement avec lesquels ils communiquent via un bus d'interface commun B'. Cette stratégie peut aussi bien s'appliquer à l'unité centrale de traitement qu'au processeur de calcul graphique. En d'autres termes, on dispose ici de deux niveaux d'interfaces d'Entrée/Sortie, l'architecture intégrant à la fois des interfaces d'Entrée/Sortie dédiées à chaque coeur pour l'accès à des périphériques dédiés et des interfaces d'Entrée/Sortie globales qui sont partagées entre les coeurs pour l'accès à des périphériques partagés. On conçoit que les interfaces I/O locales, d'accès direct, sans partage et sans arbitrage permettent un accès plus rapide à des périphériques locaux dédiés à un coeur, tandis que les interfaces I/O globales permettent un accès à des périphériques partagés entre les coeurs. L'accès déterministe aux ressources partagées rend souhaitable l'utilisation d'un bus d'accès partagé 24 (figure 5) maîtrisée.
Ainsi, le bus 24 est associé à des moyens d'arbitrage servant à arbitrer les échanges de données avec les dispositifs partagés ou, en d'autres termes, à arbitrer l'accès des coeurs aux ressources partagées. A titre d'exemple, ces arbitrages peuvent prendre la forme d'un ordonnanceur, par exemple intégré au bus, attribuant de manière périodique des temps de communication pour chaque coeur et ce, les uns après les autres.

Claims (7)

  1. REVENDICATIONS1. Système de traitement de données pour interface graphique comprenant au moins un processeur de calcul graphique (GPU) et au moins une unité centrale de traitement (CPU) qui communique avec le processeur de calcul graphique, ledit processeur et ladite unité centrale de traitement comprenant chacun un ensemble de coeurs de traitement de données (C1,..., C6, C'1,...C'6), caractérisé en ce que les coeurs de traitement de données du processeur de calcul graphique sont chacun reliés à un coeur de traitement de données de l'unité centrale de traitement par un unique moyen de transfert de données (B1,..., B6) dédié, de manière à réaliser un transfert de données en parallèle entre ledit processeur de calcul graphique et ladite unité centrale de traitement.
  2. 2. Système selon la revendication 1, dans lequel au moins une partie des coeurs de traitement de données (C1,..., C6, C'1,...C'6) comportent chacun au moins un coeur de calcul (8) assurant l'exécution d'instructions sur les données et un moyen de transfert de données local interne (9) relié à des dispositifs périphériques (12, 13) dédiés chacun à un coeur de traitement.
  3. 3. Système selon la revendication 2, dans lequel les coeurs de traitement de données sont reliés entre eux par un moyen de transfert de données global interne (24) audit processeur de calcul graphique ou à ladite unité centrale de traitement et reliés à des dispositifs périphériques partagés entre les coeurs de traitement de données.
  4. 4. Système selon la revendication 3, comportant des moyens d'arbitrage (33) pour arbitrer l'accès aux dispositifs périphériques partagés entre les coeurs de traitement de données.
  5. 5. Système selon l'une quelconque des revendications 1 à 4, comportant un système d'exploitation global partagé entre plusieurs coeurs de traitement.
  6. 6. Système selon l'une quelconque des revendications 1 à 5, comportant des moyens (33) pour combiner les sorties de chaque coeur de traitement du processeur de calcul graphique.
  7. 7. Interface graphique pour cockpit d'aéronef, caractérisée en ce qu'elle comporte un système de traitement de données selon l'une quelconque des revendications 1 à 6.
FR1457007A 2014-04-07 2014-07-21 Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees Active FR3019667B1 (fr)

Priority Applications (3)

Application Number Priority Date Filing Date Title
US14/667,852 US10509737B2 (en) 2014-04-07 2015-03-25 Data processing system for a graphical interface and graphical interface comprising such a data processing system
DE102015104872.8A DE102015104872A1 (de) 2014-04-07 2015-03-30 Datenverarbeitungssystem für eine grafische Schnittstelle und grafische Schnittstelle, die ein solches Datenverarbeitungssystem aufweist
CA2887077A CA2887077C (fr) 2014-04-07 2015-04-01 Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
US201461976078P 2014-04-07 2014-04-07
US61976078 2014-04-07

Publications (2)

Publication Number Publication Date
FR3019667A1 true FR3019667A1 (fr) 2015-10-09
FR3019667B1 FR3019667B1 (fr) 2018-03-09

Family

ID=52450235

Family Applications (2)

Application Number Title Priority Date Filing Date
FR1457008A Active FR3019668B1 (fr) 2014-04-07 2014-07-21 Systeme multicoeur de traitement de donnees a dispositifs d'entree/sortie locaux et globaux et interface graphique comportant un tel systeme de traitement de donnee
FR1457007A Active FR3019667B1 (fr) 2014-04-07 2014-07-21 Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees

Family Applications Before (1)

Application Number Title Priority Date Filing Date
FR1457008A Active FR3019668B1 (fr) 2014-04-07 2014-07-21 Systeme multicoeur de traitement de donnees a dispositifs d'entree/sortie locaux et globaux et interface graphique comportant un tel systeme de traitement de donnee

Country Status (3)

Country Link
US (2) US10509737B2 (fr)
CA (2) CA2886466C (fr)
FR (2) FR3019668B1 (fr)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2017172616A1 (fr) * 2016-03-27 2017-10-05 Gilbarco Inc. Distributeur de carburant comportant une électronique de commande intégrée
US10713747B2 (en) * 2018-06-08 2020-07-14 Honeywell International Inc. System and method for distributed processing of graphic server components
FR3099262B1 (fr) * 2019-07-23 2023-10-20 Zodiac Aero Electric Système de traitement graphique de données

Family Cites Families (10)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6195593B1 (en) * 1997-09-03 2001-02-27 Seiko Epson Corporation Reusable modules for complex integrated circuit devices
US6456628B1 (en) * 1998-04-17 2002-09-24 Intelect Communications, Inc. DSP intercommunication network
US6823472B1 (en) * 2000-05-11 2004-11-23 Lsi Logic Corporation Shared resource manager for multiprocessor computer system
US7324438B1 (en) * 2003-02-13 2008-01-29 Cisco Technology, Inc. Technique for nondisruptively recovering from a processor failure in a multi-processor flow device
US9275430B2 (en) * 2006-12-31 2016-03-01 Lucidlogix Technologies, Ltd. Computing system employing a multi-GPU graphics processing and display subsystem supporting single-GPU non-parallel (multi-threading) and multi-GPU application-division parallel modes of graphics processing operation
US8886994B2 (en) * 2009-12-07 2014-11-11 Space Micro, Inc. Radiation hard and fault tolerant multicore processor and method for ionizing radiation environment
EP2515507A1 (fr) * 2011-04-19 2012-10-24 Siemens Aktiengesellschaft Configuration automatique de dispositifs de réseau
US20140201326A1 (en) * 2013-01-16 2014-07-17 Marvell World Trade Ltd. Interconnected ring network in a multi-processor system
US9946658B2 (en) * 2013-11-22 2018-04-17 Nvidia Corporation Memory interface design having controllable internal and external interfaces for bypassing defective memory
US10217183B2 (en) * 2013-12-20 2019-02-26 Nvidia Corporation System, method, and computer program product for simultaneous execution of compute and graphics workloads

Non-Patent Citations (2)

* Cited by examiner, † Cited by third party
Title
CHI-KEUNG LUK ET AL: "Qilin: Exploiting parallelism on heterogeneous multiprocessors with adaptive mapping", MICROARCHITECTURE, 2009. MICRO-42. 42ND ANNUAL IEEE/ACM INTERNATIONAL SYMPOSIUM ON, IEEE, PISCATAWAY, NJ, USA, 12 December 2009 (2009-12-12), pages 45 - 55, XP031597172, ISBN: 978-1-60558-798-1 *
NHAT-PHUONG TRAN ET AL: "Heterogeneous parallel computing for data encryption application", COMPUTER SCIENCES AND CONVERGENCE INFORMATION TECHNOLOGY (ICCIT), 2011 6TH INTERNATIONAL CONFERENCE ON, IEEE, 29 November 2011 (2011-11-29), pages 562 - 566, XP032257689, ISBN: 978-1-4577-0472-7 *

Also Published As

Publication number Publication date
US20150287157A1 (en) 2015-10-08
CA2886466C (fr) 2022-12-06
CA2887077C (fr) 2023-09-26
CA2887077A1 (fr) 2015-10-07
CA2886466A1 (fr) 2015-10-07
FR3019668A1 (fr) 2015-10-09
FR3019667B1 (fr) 2018-03-09
US10762005B2 (en) 2020-09-01
FR3019668B1 (fr) 2018-01-26
US10509737B2 (en) 2019-12-17
US20150286589A1 (en) 2015-10-08

Similar Documents

Publication Publication Date Title
US11138348B2 (en) Heterogeneous compute architecture hardware/software co-design for autonomous driving
EP0536010B1 (fr) Procédé et dispositif pour la gestion temps réel d'un système comprenant au moins un processeur apte à gérer plusieurs fonctions
CN110580197A (zh) 大型模型深度学习的分布式计算架构
Lin et al. Zcluster: A zynq-based hadoop cluster
WO2010139896A1 (fr) Procédé et dispositif de chargement et d'exécution d'instructions à cycles déterministes dans un système avionique multi-coeurs ayant un bus dont le temps d'accès est non prédictible
EP3470986B1 (fr) Procédé et dispositif de surveillance d'une application logicielle avionique via sa durée d'exécution, programme d'ordinateur et système avionique associés
Xie et al. Extreme datacenter specialization for planet-scale computing: Asic clouds
CA2887077C (fr) Systeme de traitement de donnees pour interface graphique et interface graphique comportant un tel systeme de traitement de donnees
EP3204867B1 (fr) Système embarqué sur puce à haute sûreté de fonctionnement
EP3494475B1 (fr) Procede et dispositif de distribution de partitions sur un processeur multi-coeurs
WO2012110445A1 (fr) Dispositif pour accélérer l'exécution d'une simulation system c
Lampson Hints and principles for computer system design
FR3053140B1 (fr) Architecture de calcul notamment pour un systeme embarque aeronautique
US10936389B2 (en) Dual physical-channel systems firmware initialization and recovery
FR3057081A1 (fr) Processeur comprenant une pluralite de coeurs de calcul
EP3695313B1 (fr) Procédé et dispositif électronique d'implémentation d'un partitionnement lors de l'exécution d'applications logicielles sur une plateforme comprenant un processeur multi-coeurs, programme d'ordinateur et système électronique associés
Gribbon et al. Development issues in using fpgas for image processing
WO2011058260A1 (fr) Procede et dispositif d'optimisation d'execution d'applications logicielles dans une architecture multiprocesseur comprenant plusieurs controleurs d'entree/sortie et unites de calcul secondaires
EP2652624B1 (fr) Procede, programme d'ordinateur et dispositif de gestion d'acces memoire dans une architecture multiprocesseurs de type numa
FR3099262A1 (fr) Système de traitement graphique de données
DE102023129956A1 (de) Ressourcenvorhersage für arbeitslasten
EP2572253B1 (fr) Procede d'optimisation de gestion de veille d'un microprocesseur permettant la mise en oeuvre de plusieurs coeurs logiques et programme d'ordinateur mettant en oeuvre un tel procede
FR3107369A1 (fr) Calculateur electronique, systeme electronique, procede de surveillance de l'execution d'une application et programme d'ordinateur associe
FR3042619A1 (fr) Equipement et systeme d'exploitation embarque

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLSC Publication of the preliminary search report

Effective date: 20170908

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

TP Transmission of property

Owner name: SAFRAN ELECTRICAL & POWER, FR

Effective date: 20210326

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9

PLFP Fee payment

Year of fee payment: 10