Brevet FR3000250A1 — publié le 20140627

SYSTEME DE PROCESSEUR MULTI-COEURS DE TRAITEMENT D'INFORMATIONS La présente invention concerne un système de processeur multi-coeurs de traitement d'informations. Par système de processeur multi-cceurs, il convient d'englober dans la présente demande, tous les systèmes multiples de cette nature c'est-à-dire par exemple des systèmes multiprocesseurs,..., dans lesquels des problèmes analogues se posent. On connaît déjà dans l'état de la technique, des systèmes de processeur multicoeurs de ce type, qui comportent un moteur d'échange de données associé à des utilisateurs multiples de ressources partagées. A titre d'exemple, les ressources partagées peuvent comporter des moyens de mémoire, des ports d'entrée et/ou de sortie de données, des unités de traitement externes, des calculateurs, etc. Les utilisateurs peuvent également comporter de nombreux types de moyens de cette nature. Cette structure de processeur multi-coeurs trouve par exemple des applications dans le domaine de l'avionique embarquée. Mais d'autres applications sont bien entendu, possibles. La conception des systèmes actuels est telle que n'importe quel utilisateur peut demander et avoir accès à n'importe quelle ressource partagée et ce n'importe quand et à n'importe quelle condition. Ainsi par exemple, il peut arriver des situations dans lesquelles une multitude d'utilisateurs souhaite accéder en même temps aux mêmes ressources partagées du système. On conçoit alors que ceci se traduit par des difficultés et des limitations d'accès pouvant se traduire par des ralentissements de fonctionnement de l'ensemble et surtout en particulier par une non maîtrise des durées maximales des accès ou d'une partie d'entre eux. Le fonctionnement d'un tel système de l'état de la technique est donc impossible à maîtriser. Or, dans de telles applications, il est extrêmement important de pouvoir contrôler le fonctionnement de tels systèmes. Le but de l'invention est donc de résoudre ces problèmes. A cet effet, l'invention a pour objet un système de processeur multi-coeurs de traitement d'informations, du type comportant un moteur d'échange de données associé à des utilisateurs multiples de ressources partagées, caractérisé en ce qu'il comporte des moyens de contrôle des échanges de données dans le processeur, associés à chaque utilisateur, au moteur d'échange et aux ressources partagées et définissant au niveau du processeur, une loi d'échange de données déterminée selon une cartographie spatio-temporelle définie, permettant d'obtenir des performances de fonctionnement prédictibles de ce processeur. Selon d'autres caractéristiques du système suivant l'invention prises seules ou en combinaison : - chaque utilisateur est associé à des moyens de filtrage de ses échanges d'informations avec le moteur d'échange ; - les ressources partagées sont associées à des moyens de gestion des entrées/sorties de données dans/de celles-ci ; - la cartographie spatio-temporelle est figée ; - la cartographie spatio-temporelle est programmable; - les utilisateurs comportent des éléments choisis dans le groupe comprenant : - des ports d'entrée/sortie de données, - des unités de traitement externes, - un ou des systèmes de processeur externes, - des unités de transfert de données, - des unités locales ou distantes de traitement d'informations, - des processeurs, - des calculateurs, - des capteurs, - des actionneurs, et - des afficheurs ; - des utilisateurs virtuels. - les ressources partagées comportent : - des moyens à mémoire, - des ports d'entrée/sortie de données, - des unités de traitement externes, - un ou des systèmes de processeur externes, - des unités de transfert de données, - des unités locales ou distantes de traitement d'informations, - des processeurs, - des calculateurs, - des capteurs, - des actionneurs, et - des afficheurs ; - des ressources virtuelles. - la cartographie spatio-temporelle est établie à partir d'un partitionnement spatio-temporel des accès des utilisateurs au moteur d'échange et/ou aux ressources partagées; - la cartographie spatio-temporelle est établie à partir de quotas d'accès spatio-temporels des utilisateurs au moteur d'échange et/ou aux ressources partagées ; - la cartographie spatio-temporelle est établie à partir des attributs des accès des utilisateurs au moteur d'échange et/ou aux ressources partagées ; - il comporte des moyens de supervision et de génération et de stockage d'informations de traçabilité des échanges dans le moteur; - les moyens de stockage d'informations de traçabilité des échanges dans le moteur sont accessibles depuis l'extérieur de celui-ci, pour permettre une analyse de son fonctionnement ; - les moyens de supervision et de génération et de stockage sont configurables depuis l'extérieur de façon à permettre une observation ciblée depuis l'extérieur ; - il comporte des moyens d'autocontrôle de bon fonctionnement intégrés. L'invention sera mieux comprise à la lecture de la description qui va suivre, donnée uniquement à titre d'exemple et faite en se référant aux dessins annexés, sur lesquels : - la figure 1 représente un schéma synoptique illustrant la structure générale d'un système de processeur de traitement d'informations selon l'invention, - la figure 2 représente un schéma synoptique illustrant une variante de réalisation d'un système selon l'invention, et - la figure 3 représente une vue détaillée de moyens de contrôle des échanges de données entrant dans la constitution d'un système de processeur selon l'invention. On a en effet illustré sur ces figures et en particulier sur la figure 1, un système de processeur multi-coeurs de traitement d'informations en particulier pour les systèmes à haute performance de traitement, requérant un comportement temporel maîtrisé à savoir dont les bornes supérieures de traitement sont calculables. Un tel système trouve de nombreuses applications par exemple dans le domaine de l'avionique embarquée ou autre. Ce système est désigné par la référence générale 1 et comporte un moteur d'échange de données, désigné par la référence générale 2, associé à des utilisateurs multiples de ressources partagées. Dans l'exemple de réalisation illustré sur ces figures 1 et 2, les utilisateurs multiples sont désignés par la référence générale 3, tandis que les ressources partagées sont désignées par la référence générale 4. En fait, les utilisateurs 3 tels que décrits précédemment, peuvent comporter un certain nombre d'éléments comprenant par exemple des ports d'entrée et de sortie de données, des unités de traitement externes, un ou des systèmes de processeur externes, des unités de transfert de données, des unités locales ou distantes de traitement d'informations, des processeurs, des calculateurs, des capteurs, des actionneurs ou encore des afficheurs, adaptés pour être raccordés à ce système de processeur multicoeurs. Dans l'exemple illustré sur ces figures 1 et 2, ces utilisateurs multiples comportent par exemple entre autres, des coeurs multiples de processeur, ces coeurs étant désignés par exemple par les références 5, 6, 7 et 8, sur ces figures. Ces utilisateurs multiples peuvent également désigner des utilisateurs virtuels tels que des machines virtuelles, des systèmes d'exploitation, des partitions, des systèmes logiciels Les ressources partagées désignées par la référence générale 4 sur ces figures, comportent également des moyens de différents types. Dans l'exemple de réalisation illustré sur ces figures 1 et 2, ces ressources partagées comprennent des moyens de mémoire et en particulier deux mémoires ou deux zones mémoire, désignées par les références 9 et 10 sur ces figures, associées par exemple à des sous domaines du système de processeur, désignés par les références 11 et 12. Bien entendu d'autres ressources partagées comme par exemple également des sorties de données, des unités de traitement externes, des systèmes de processeur externes, des unités de transfert de données, des unités locales ou distantes de traitement d'informations, des processeurs, des calculateurs, des actionneurs et des afficheurs, peuvent également être envisagés. Ces ressources peuvent également désigner des ressources virtuelles telles que des machines virtuelles, des systèmes d'exploitation, des partitions, des systèmes logiciels Comme cela est illustré sur ces figures 1 et 2, des ports d'entrée et sortie de données tels que ceux désignés par la référence générale 13 sur ces figures, peuvent également être envisagés. Pour résoudre les différents problèmes décrits précédemment concernant la maîtrise de son fonctionnement, le système de processeur multi-coeurs selon l'invention comporte des moyens de contrôle des échanges de données dans le processeur, associés à chaque utilisateur, au moteur d'échange et aux ressources partagées et définissant au niveau du processeur, une loi d'échange de données déterminée selon une cartographie spatio-temporelle définie, permettant d'obtenir des performances de fonctionnement prédictibles de ce processeur. C'est ainsi par exemple, comme cela est illustré sur ces figures, que les différents utilisateurs sont associés chacun à des moyens de filtrage des échanges d'informations de celui-ci avec le moteur d'échange. Dans la présente description il convient de noter que l'expression moyens de filtrage doit être comprise comme regroupant des moyens assurant non seulement des fonctions de filtrage proprement dites mais également de Policing, comme bien connu dans la technique. Ainsi, par exemple les coeurs de processeur 5, 6, 7 et 8 sont associés à des moyens de filtrage respectivement 14, 15, 16 et 17, de leurs accès et de leurs échanges avec le moteur d'échange. Des moyens à ressources partagées tels que par exemple les moyens à mémoire 9 et 10, sont quant à eux, associés chacun à un contrôleur de mémoire comme ceux désignés par les références 18 et 19 sur ces figures et à des moyens de gestion des entrées/sorties de données dans ou de ces moyens à ressources partagées. Ces moyens de gestion des entrées/sorties sont désignés par les références 20 et 21 sur ces figures. Les ports d'entrée et de sortie de données peuvent également être associées à des moyens de filtrage/gestion correspondants comme les moyens de filtrage/gestion désignés par la référence générale 22 sur ces figures. Ces moyens 22 peuvent alors présenter des structures de filtrage et/ou de gestion telles qu'elles ont été décrites précédemment selon la nature des utilisateurs connectés à ceux-ci. Cette cartographie spatio-temporelle qui permet de déterminer une loi d'échange de données dans le processeur, peut alors être établie à partir d'un partitionnement spatio-temporel des accès des utilisateurs au moteur d'échange et/ou aux ressources partagées. Cette cartographie peut également être établie à partir de quotas d'accès spatio-temporels des utilisateurs au moteur d'échange et/ou aux ressources partagées. De même, celle-ci peut être établie à partir des attributs des accès des utilisateurs au moteur d'échange et/ou aux ressources partagées. Ceci permet alors de maîtriser les échanges dans le système de processeur pour permettre de contrôler son fonctionnement et lui permettre de présenter des performances de fonctionnement prédictibles. En effet, en maîtrisant les différents échanges de données dans le processeur, il est possible de maitriser «la charge de travail » ou charge des transactions/des accès de données incluant leur densités (nombre d'accès par unité de temps et/ou nombre d'accès par zone d'accès) de celui-ci et donc de maîtriser et prévoir ses performances de fonctionnement. On notera également que la cartographie spatio-temporelle décrite précédemment peut par exemple être figée ou programmable selon les circonstances. Les moyens de contrôle des échanges de données dans le processeur sont illustrés également d'une autre façon sur la figure 3. Ainsi par exemple, sur cette figure 3, les utilisateurs sont désignés par les références 30, 31 et 32, tandis que des ressources partagées sont désignées par les références 33, 34 et 35. Chaque requête d'utilisateur telle que la requête désignée par la référence générale 36, émise par exemple par l'utilisateur 30, passe alors à travers une unité de filtrage correspondante 37 et une unité de gestion des accès aux ressources partagées selon une cartographie spatio-temporelle correspondante, cette unité de gestion étant désignée par la référence générale 38. L'unité de filtrage est configurable en fonction des profils de trafics retenus pour chacun des utilisateurs. Bien entendu, le système de processeur selon l'invention peut comporter des moyens complémentaires comme par exemple des moyens de supervision et de génération et de stockage d'informations de traçabilité des échanges dans le moteur d'échange. Ces moyens de supervision et de génération et de stockage peuvent alors être configurables depuis l'extérieur de façon à permettre une observation ciblée depuis l'extérieur. Les observations réalisées sont datées et par exemple possèdent toutes la même référence temporelle. Les moyens de stockage des informations de traçabilité des échanges dans le moteur peuvent alors être accessibles par exemple par l'extérieur de ce système, pour permettre une analyse de son fonctionnement. De même, des moyens d'autocontrôle de bon fonctionnement du système, peuvent être intégrés dans celui-ci. Une telle structure peut alors être mise en oeuvre pour permettre à des utilisateurs d'accéder à des ressources partagées dans un même domaine voire dans des domaines différents, comme cela ressort des figures 1 et 2. Chaque transaction à l'intérieur du système est alors contrôlée pour déterminer si celle-ci respecte un contrat d'insertion de transaction tel que fixé par les moyens de contrôle. En cas de respect de ce contrat, la transaction est alors validée tandis que dans le cas contraire, celle-ci est invalidée avec génération d'un contexte permettant via les moyens de supervision, l'observation externe. Ces moyens de supervision couvrent les évènements normaux pour lesquels la transaction est validée et les évènements anormaux pour lesquels la transaction est invalidée. Bien entendu d'autres modes de réalisation encore peuvent être envisagés. REVENDICATIONS1.- Système de processeur multi-coeurs de traitement d'informations, du type comportant un moteur d'échange de données (2) associé à des utilisateurs multiples (3) de ressources partagées (4), caractérisé en ce qu'il comporte des moyens de contrôle des échanges de données dans le processeur, associés à chaque utilisateur (3), au moteur d'échange (2) et aux ressources partagées (4) et définissant au niveau du processeur, une loi d'échange de données déterminée selon une cartographie spatio-temporelle définie, permettant d'obtenir des performances de fonctionnement prédictibles de ce processeur. 2. Système de processeur selon la revendication 1, caractérisé en ce que chaque utilisateur est associé à des moyens de filtrage (14, 15, 16, 17) de ses échanges d'informations avec le moteur d'échange (2). 3.- Système de processeur selon la revendication 1 ou 2, caractérisé en ce que les ressources partagées (4) sont associés à des moyens (20, 21, 22)_de gestion des entrées/sorties de données dans/de celles-ci 4.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que la cartographie spatio-temporelle est figée. 5.- Système de processeur selon l'une quelconque des revendications 1 à 3, caractérisé en ce que la cartographie spatio-temporelle est programmable. 6.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que les utilisateurs (3) comportent des éléments choisis dans le groupe comprenant : - des ports d'entrées/sorties de données, - des unités de traitement externes, - un ou des systèmes de processeur externes, - des unités de transfert de données, - des unités locales ou distantes de traitement d'informations, - des processeurs, - des calculateurs, - des capteurs, - des actionneurs, et - des afficheurs, - des utilisateurs virtuels. 7.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que les ressources partagées (4) comportent :- des moyens à mémoire, - des ports d'entrées/sorties de données, - des unités de traitement externes, - un ou des systèmes de processeur externes, - des unités de transfert de données, - des unités locales ou distantes de traitement d'informations, - des processeurs, - des calculateurs, - des capteurs, - des actionneurs, et - des afficheurs, - des ressources virtuelles. 8.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que la cartographie spatio-temporelle est établie à partir d'un partitionnement spatio-temporel des accès des utilisateurs (3) au moteur d'échange (2) et/ou aux ressources partagées (4). 9.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que la cartographie spatio-temporelle est établie à partir de quotas d'accès spatio-temporels des utilisateurs (3) au moteur d'échange (2) et/ou aux ressources partagées (3). 10.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce que la cartographie spatio-temporelle est établie à partir des attributs des accès des utilisateurs (3) au moteur d'échange (2) et/ou aux ressources partagées (4). 11.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte des moyens de supervision et de génération et de stockage d'informations de traçabilité des échanges dans le moteur (2). 12.- Système de processeur selon la revendication 11, caractérisé en ce que les moyens de stockage d'informations de traçabilité des échanges dans le moteur (2) sont accessibles depuis l'extérieur de celui-ci, pour permettre une analyse de son fonctionnement. 13.- Système de processeur selon la revendication 11 ou 12, caractérisé en ce que les moyens de supervision et de génération et de stockage sont configurables depuis l'extérieur de façon à permettre une observation ciblée depuis l'extérieur. 14.- Système de processeur selon l'une quelconque des revendications précédentes, caractérisé en ce qu'il comporte des moyens d'autocontrôle de bon fonctionnement intégrés.