Brevet FR3100909A1 — publié le 20210319

P rocédé d’accès aux ressources partagées d’une plateforme informatique, programme d’ordinateur et p late-forme informatique associés Procédé d’accès aux ressources partagées d’une plateforme informatique (10) comprenant un processeur multicœurs (21), des ressource(s) partagée(s) (18) entre des premières partitions selon lequel des requêtes d’accès aux ressources partagées émises par les premières partitions sont adressées à une deuxième partition qui, lors de son exécution sur le processeur, effectue lesdits accès ; - on réserve, pour l’exécution de la deuxième partition d’accès pendant un temps prédéterminé, de multiples cœurs (22) de façon synchrone ; - les accès à des ressources partagées distinctes (18) effectués par la deuxième partition devant être exécutés par des cœurs réservés distincts ; et - tous les accès à une ressource partagée effectués par la deuxième partition d’accès devant être exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. Figure pour l'abrégé : figure 1 Procédé d’accès aux ressources partagées d’une plateforme informatique, programme d’ordinateur et plate-forme informatique associés L’invention concerne le domaine des plateformes applicatives comportant des processeurs multi-cœurs, telles que des plates-formes avioniques embarquées, en particulier de la maîtrise du fonctionnement des applications logicielles exécutées sur de telles plateformes permettant leur certification par exemple de type Safety Net. En particulier, l’invention est relative à un procédé d’accès aux ressources partagées d’une plateforme informatique) comprenant : - au moins un processeur multicœurs comprenant au moins deux cœurs ; - un ensemble de partitions applicatives exécutables sur le processeur ; - un ensemble de ressource(s) partagée(s) entre lesdites partitions applicatives ; selon lequel l’ensemble des partitions applicatives comprend des premières partitions générant des requêtes d’accès à au moins une ressource partagée de l’ensemble de ressource(s) partagée(s), transmettant des données numériques à écrire dans ladite ressource partagée ou interrogeant ladite ressource partagée ; l’utilisation des cœurs par les partitions applicatives étant préalablement organisée selon une liste séquentielle d’affectations, les affectations indiquant, en correspondance avec les cœurs, des partitions et des temps prédéterminés, ledit procédé comprenant les étapes selon lesquelles : chaque cœur est sélectivement utilisé, pendant un temps prédéterminé indiqué dans une affectation de la liste, pour l’exécution d’une partition applicative indiquée en correspondance avec le cœur dans l’affectation, et il est déclenché un basculement de l’utilisation sélective du cœur, à l’issue dudit temps prédéterminé, vers l’exécution de la partition indiquée en correspondance dudit cœur dans l’affectation suivante de la liste séquentielle d’affectations pendant le temps prédéterminé indiqué en correspondance avec ledit cœur dans ladite affectation suivante. Dans les domaines techniques comme par exemple le domaine de l’avionique, de l’automobile, ou du nucléaire, il est très important de savoir déterminer pour chaque donnée numérique un temps de propagation maximal et d’être ainsi en mesure de garantir qu’une telle donnée sera délivrée d’une ressource à une autre en un temps limité caractérisé par le temps de propagation maximal. L’exécution simultanée de plusieurs logiciels sur un même processeur multi-cœurs s’accompagne de risques de contentions à cause du partage de ressources communes (bus, mémoire, périphériques d’entrée et/ou de sortie) : cela peut se traduire par des durées d’exécution de processus non maîtrisées et donc par une perte de déterminisme, ce qui est un obstacle important à la qualification des plateformes. Le terme « contention » désigne toute situation dans laquelle au moins une activité menée par au moins un cœur d’un processeur multi-cœurs subit des retards dans son exécution à cause du parallélisme temporel permis par ce processeur multi-cœurs. Il existe donc un besoin, sachant que certaines ressources communes, notamment des périphériques matériels dédiés aux entrées et aux sorties, ne supportent pas d’accès concurrents, d’offrir aux applications hébergées sur une plateforme multicœur, la même qualité de service qu’en monocœur, sur le plan du déterminisme sans pour autant demander à chaque application de prévoir dans son budget temporel une marge suffisante pour absorber les contentions possibles dues aux autres applications accédant à ces mêmes ressources communes. A cet effet, suivant un premier aspect, l’invention propose un procédé de d’accès aux ressources partagées d’une plateforme informatique du type précité caractérisé en ce que : - l’ensemble de partitions applicatives comprenant au moins une deuxième partition, dite partition d’accès aux ressources partagées, lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur sont adressées à la partition d’accès aux ressources partagées ; - la partition d’accès aux ressources partagées, lors de son exécution sur le processeur, effectue les accès aux ressources partagées pour mettre en œuvre les requêtes d’accès aux ressources partagées ; - on réserve, pour l’exécution de la partition d’accès aux ressources partagées, de multiples cœurs de façon synchrone sur des temps prédéterminés via des affectations respectives dans la liste séquentielle d’affectations, les conditions suivantes devant être respectées pendant chacun des temps prédéterminés affectés à ladite partition : - les accès à des ressources partagées distinctes effectués par la partition d’accès aux ressources partagées de l’ensemble sont exécutés par des cœurs réservés distincts ; et - pour chaque ressource partagée de l’ensemble, tous les accès à la ressource partagée effectués par la partition d’accès aux ressources partagées sont exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. L’invention permet ainsi de réduire les contentions, permet de contribuer à une maîtrise des temps de traitement, avec des bornes maximum des temps de traitement, à ce que les applications puissent être exécutées de façon indépendante les unes des autres et à maintenir la capacité de certification incrémentales en multi-cœur. Dans des modes de réalisation, le procédé d’accès aux ressources partagées d’une plateforme informatique suivant l’invention comporte en outre une ou plusieurs des caractéristiques suivantes : la partition d’accès aux ressources partagées transmet à destination des premières partitions les réponses, fournies par les ressources partagées, aux requêtes ; les ressources partagées de l’ensemble de ressource(s) partagée(s) sont des périphériques d’entrées et/ou de sortie de la plateforme informatique ; la plateforme est une plateforme avionique ; il est prédéfini pour chaque première partition relativement à chaque ressource partagée, une fréquence respective, et la partition d’accès aux ressources partagées, pendant chacun de ses temps prédéterminés d’exécution, accède à ladite ressource partagée à ladite fréquence pour recueillir des données fournies en réponse par ladite ressource partagée à une requête d’accès émise par ladite première partition et mise en œuvre par la partition d’accès aux ressources partagées ; lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur sont adressées à la partition d’accès aux ressources partagées en les déposant dans une mémoire de travail dans laquelle la partition d’accès aux ressources partagées viendra les lire et selon lequel les réponses auxdites requêtes sont déposées dans ladite mémoire par la partition d’accès aux ressources partagées, et selon lequel, les accès à une première, respectivement deuxième, ressource partagée étant exécutés pendant un temps prédéterminé, par un premier, respectivement deuxième, des cœurs réservés, la lecture dans la mémoire de travail des requêtes d’accès à la première, deuxième, ressource ou le dépôt dans la mémoire de travail des réponses audites requêtes devant être effectué par ledit premier, respectivement cœur réservé pendant ledit temps prédéterminé; et selon lequel en fonction d‘au moins l’activité du deuxième des cœurs réservés, il est déclenché l’affectation audit deuxième cœur, pendant ledit temps prédéterminé, d’au moins une partie de la lecture dans la mémoire de travail des requêtes d’accès à la première ressource ou du dépôt dans la mémoire de travail des réponses audites requêtes. Suivant un deuxième aspect, la présente invention propose un programme d’ordinateur comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé tel que défini ci-dessus. Suivant un troisième aspect, la présente invention propose une plateforme informatique comprenant : - au moins un processeur multicœurs comprenant au moins deux cœurs ; - un ensemble de partitions applicatives exécutables sur le processeur ; - un ensemble de ressource(s) partagée(s) entre lesdites partitions applicatives ; dans laquelle l’ensemble des partitions applicatives comprennent des premières partitions générant des requêtes d’accès à au moins une ressource partagée de l’ensemble de ressource(s) partagée(s), transmettant des données numériques à écrire dans ladite ressource partagée ou interrogeant ladite ressource partagée ; comprenant une liste séquentielle d’affectations organisant préalablement l’utilisation des cœurs par les partitions applicatives, les affectations indiquant, en correspondance avec les cœurs, des partitions et des temps prédéterminés, ladite plate-forme étant adaptée pour utiliser chaque cœur sélectivement pendant un temps prédéterminé indiqué dans une affectation de la liste pour l’exécution d’une partition applicative indiquée en correspondance avec le cœur dans l’affectation, ladite plate-forme étant adaptée pour déclencher un basculement de l’utilisation sélective du cœur, à l’issue dudit temps prédéterminé, vers l’exécution de la partition indiquée en correspondance dudit cœur dans l’affectation suivante de la liste séquentielle d’affectations pendant le temps prédéterminé indiqué en correspondance avec ledit cœur dans ladite affectation suivante ; ladite plate-forme étant caractérisée en ce que l’ensemble de partitions applicatives comprend au moins une deuxième partition, dite partition d’accès aux ressources partagées, lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur étant adressées à la partition d’accès aux ressources partagées ; - la partition d’accès aux ressources partagées est adaptée pour, lors de son exécution sur le processeur, effectuer les accès aux ressources partagées pour mettre en œuvre les requêtes d’accès aux ressources partagées ; - ladite plate-forme étant adaptée pour réserver, pour l’exécution de la partition d’accès aux ressources partagées, de multiples cœurs de façon synchrone sur des temps prédéterminés via des affectations respectives dans la liste séquentielle d’affectations, et pour respecter les conditions suivantes pendant chacun des temps prédéterminés affectés à ladite partition : - les accès à des ressources partagées distinctes effectués par la partition d’accès aux ressources partagées de l’ensemble sont exécutés par des cœurs réservés distincts ; et - pour chaque ressource partagée de l’ensemble, tous les accès à la ressource partagée effectués par la partition d’accès aux ressources partagées sont exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. Ces caractéristiques et avantages de l’invention apparaîtront à la lecture de la description qui va suivre, donnée uniquement à titre d’exemple, et faite en référence aux dessins annexés, sur lesquels : la figure 1 représente une plateforme avionique dans un mode de réalisation de l’invention ; la figure 2 est un organigramme d’étapes mises en œuvre dans un mode de réalisation de l’invention ; la figure 3 illustre l’utilisation des cœurs de la plateforme dans un mode de réalisation de l’invention ; la figure 4 illustre l’apport de l’invention par rapport aux solutions de l’art antérieur. La figure 1 représente une plateforme électronique 10, notamment une plateforme avionique destinée à être embarquée à bord d’un aéronef, par exemple un avion (en variante, l’aéronef est par exemple un hélicoptère ou encore un drone piloté à distance par un pilote, etc.). Dans le mode de réalisation considéré, la plateforme avionique 10 comprend une mémoire 12, un système d’exploitation 20, un processeur 21, un ensemble 19 de périphériques d’entrée et/ou de sortie et un dispositif électronique de contrôle 24. La plateforme 10 est par exemple reliée à d’autres systèmes électroniques, tels que des systèmes électroniques avioniques de l’aéronef (ex : système Radio, système « Flight Management », système anti collision (TAWS), …). La mémoire 12 stocke une pluralité de partitions 14. Ces partitions 14 comportent les partitions PART APP i, avec i=1 à m, m entier supérieur ou égal à 2, qui sont des applications logicielles appelées également fonctions avioniques et qui remplissent par exemple différentes fonctions pour l’accomplissement d’un vol, dont certaines, critiques en termes de sécurité, comme la fonction de freinage ou la fonction d’affichage des paramètres de vol, l’exécution de chaque fonction devant donc être maîtrisée de façon robuste. Dans le cas considéré, m = 2 : la mémoire stocke les partitions PART APP1 et PART APP 2 représentées sur la figure 1. Parmi les partitions figure en outre, selon l’invention, une partition spécifique PART SERV_IO 14, dite partition d’accès aux périphériques IO. Cette partition PART SERV_IO 14 est adaptée pour centraliser les échanges avec les périphériques IO 18. Une partition 14 est un programme chargeable dans un espace d’adressage unique dans la plateforme 10. La plateforme 10, via son système d’exploitation 20 et le dispositif électronique de contrôle 24 selon l’invention, est adaptée pour mettre en œuvre l’exécution des partitions 14 et contrôler l’utilisation, par une partition, du temps d’utilisation du processeur 21 de sorte que chaque partition est isolée des autres partitions partageant la plateforme 1. Les partitions 14 sont cadencées sur la base d’un cycle temporel de travail, maintenu par le système d’exploitation 20. Une partition 14 comprend une ou plusieurs unités de programmation, appelée(s) processus, partageant le même espace d’adressage, qui peuvent opérer séquentiellement ou en parallèle et qui se combinent dynamiquement pour fournir les fonctions associées à la partition. Le processeur 21, adapté pour exécuter les partitions sous le contrôle du système d’exploitation 20 et du dispositif électronique de contrôle 24 est un processeur multi-cœur, comportant une pluralité de cœurs 22, par exemple les cœurs Core0, Core1 comme représentés en figure 1, voire aussi dans des modes de réalisation des cœurs supplémentaires Core2, Core3 (non représentés en figure 1) etc. L’ensemble 19 de périphériques d’entrée et/ou de sortie comporte n périphériques d’entrée/sortie 18, nommés périphériques IO, avec n nombre entier supérieur ou égal à 2. Dans le cas considéré, l’ensemble 19 de périphériques d’entrée et/ou de sortie comporte deux périphériques d’entrée/sorties 18, le périphérique IO1 18 et le périphérique IO2 18. De façon connue, les périphériques IO 18 sont adaptés pour recevoir des requêtes d’accès en écriture, respectivement en lecture, de leur contenu et pour répondre à ces requêtes, en écrivant les données à écrire et en délivrant un acquit d’écriture, respectivement en fournissant les données lues. Le dispositif électronique de contrôle 24 comprend par exemple une mémoire 26 (qui dans un mode de réalisation est partie de la mémoire 12) et un bloc électronique de contrôle 25. Le bloc électronique de contrôle 25 du dispositif électronique de contrôle 24 est adapté pour séquencer l’exécution des partitions sur le processeur 21 en fonction d’une liste séquentielle d’affectations 27 stockée par exemple dans la mémoire 26. Dans un mode de réalisation, le dispositif électronique de contrôle 24 est intégré dans le système d’exploitation 20, qui réalise le séquencement. Les affectations de la liste séquentielle d’affectations indiquent, en correspondance avec les cœurs, les partitions et les temps prédéterminés, de façon à ce que chaque partition soit exécutée sur le cœur qui lui est affecté selon une affectation donnée, pendant le temps prédéterminé tel indiqué dans l’affectation, le bloc électronique de contrôle 25 étant adapté pour, à l’issue dudit temps, basculer l’utilisation du cœur vers l’exécution de la partition qui est affectée audit cœur dans l’affectation suivante de la liste séquentielle. Les affectations sont déterminées par ledit bloc de contrôle 25. Les temps prédéterminés sont notamment calculés en fonction d’une allocation temporelle budgétée pour chaque partition lors de l’installation de celle-ci sur la plateforme 1, selon des objectifs de performance visés. Lorsqu’une partition PART APP1 14 ou PART APP 2 14 (en-dehors de la partition spécifique PART SERV_IO ) est en cours d’exécution, certains processus de la partition mis en œuvre donnent lieu à l’exécution de commandes requérant l’accès à un, ou plusieurs, périphérique(s) IO 18. Selon l’invention, les partitions PART APP1 et PART APP2 sont définies de sorte que ces commandes d’accès aux périphériques IO sont adressées à la partition d’accès aux périphériques IO PART SERV_IO . La partition d’accès aux périphériques IO PART SERV_IO est adaptée pour, lors de son exécution sur le processeur 21, effectuer les accès aux périphériques IO 18, pour mettre en œuvre avec les périphériques IO 18 les opérations résultantes de lecture et/ou d’écriture correspondantes et pour ensuite délivrer aux partitions à l’origine de ces opérations le résultat de ces opérations (i.e. fournir les données interrogées pour une opération de lecture, fournir un acquittement du résultat d’écriture pour une opération d’écriture). Le bloc électronique de contrôle 25 est adapté pour réserver, pour l’exécution de la partition d’accès aux périphériques IO PART SERV_IO , de multiples cœurs de façon synchrone sur des temps prédéterminés via des affectations respectives dans la liste séquentielle d’affectations, les conditions suivantes étant respectées pendant chacun des temps prédéterminés affectés à ladite partition sont : - les accès à des périphérique IO 18 distincts effectués par la partition d’accès aux périphériques IO PART SERV_IO sont exécutés par des cœurs 22 réservés distincts ; et - pour chaque périphérique IO 18, tous les accès au périphérique IO 18 effectués par la partition d’accès aux périphériques IO PART SERV_IO sont exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. La figure 4 illustre un procédé dans un mode de mise en œuvre de l’invention. Dans une étape préalable 101 de conception de la plateforme 10, au moins une partition spécifique PART SERV_IO 14, dite partition d’accès aux périphériques IO, est créée (dans un mode de réalisation, plusieurs partitions PART SERV_IO sont créées), destinée à collecter l’ensemble des commandes d’accès aux périphériques IO effectuées par des partitions avioniques, par exemple PART APP1 et PART APP 2 . Ces dernières, elles, sont définies de façon à adresser à la partition spécifique PART SERV_IO leurs commandes d’accès aux périphériques IO. Les échanges entre la partition PART SERV_IO d’accès aux ressources IO et les partitions avioniques PART APP1 et PART APP 2 , comprenant la transmission de ces commandes, puis la fourniture du résultat de la mise en œuvre de ces commandes, sont effectués via une mémoire, par exemple de type RAM volatile non dédiée, référencée 15 sur la figure 1, dans laquelle les partitions avioniques PART APP1 et PART APP 2 écrivent les commandes d’accès aux périphériques IO, dans laquelle la partition PART SERV_IO lit ces commandes, puis y écrit le résultat de la réalisation de ces commandes suite à écriture/lecture dans les périphériques IO indiquées dans les commandes et enfin dans laquelle les partitions avioniques PART APP1 et PART APP 2 viennent extraire le résultat de leurs commandes d’accès aux périphériques IO. Dans un mode de réalisation, les commandes et résultats de commandes prennent la forme de messages, sur la base de l’interface de programmation (API) de la norme A653 : les applications PART APP1 et PART APP 2 font une acquisition des messages lus précédemment par la partition PART SERV_IO et poussent des messages vers la partition PART SERV_IO pour l’émission physique de ces messages vers IO1 ou IO2 lors de sa prochaine allocation temporelle. Un budget en terme d’utilisation de la mémoire et un budget en terme de temps d’utilisation du processeur (en fonction duquel va être fixé le temps pré-déterminé indiqué dans chaque affectation de la liste d’affectations 27 sont affectés sélectivement à chaque partition 14, PART SERV_IO , PART APP1 , PART APP 2 : en particulier, ces budgets pour PART SERV_IO sont dimensionnés pour permettre la prise en charge de toutes les lectures, écritures des périphériques IO1 18 et IO2 18, susceptibles d’être commandées par les partitions PART APP1 , PART APP 2 . Dans un mode de réalisation, pour chaque partition PART APP i ici avec i=1, 2, chaque port APEX IO (cf. norme ARINC 653) de niveau partition associé à la partition PART APP i peut être configuré, si besoin, avec l’identifiant de la partition PART SERV_IO , et en outre avec la fréquence de l’activation demandée et son décalage (phase) dans la Major Frame (i.e. par rapport à la trame temporelle de base de durée égale au cycle temporel de travail maintenu par le système d’exploitation 20 : il est ainsi défini, pour chaque partition PART APP i et pour chaque périphérique IOj, j=1,2 à quelle fréquence Fij, la partition PART SERV_IO pendant qu’elle s’exécute sur le processeur 21, va s’interfacer de façon active au périphérique IOj pour accéder au périphérique IOj et ainsi pouvoir déterminer si le résultat de lectures précédemment commandées sont disponibles, puis ensuite pour écrire les données dans la RAM 15. La partition d’accès aux périphériques IO PART SERV_IO agit ainsi comme un serveur et peut ainsi servir une ou plusieurs partitions, celles-ci ne partageant pas de ports au sein de PART SERV_IO . Cette configuration réalise ainsi l’agrégation des besoins exprimés dans les configurations indépendantes des partitions PART APP i et permet de préserver l’aspect incrémental de la plateforme 10 (i.e. la plateforme peut intégrer des applications supplémentaires tout en continuant à garantir le déterminisme des traitements). La partition PART SERV_IO est par exemple configurée pour traiter d’abord les commandes (et acquits) de type INPUT (i.e. écriture), puis ensuite celles de type OUTPUT (écriture) dans les périphériques IO 18. Cette disposition permet de minimiser la latence d’acquisition. Dans une étape ultérieure de fonctionnement opérationnel de la plateforme 10, en référence à la figure 2, en considérant l’affectation courante dans la liste séquentielle d’affectations 27 indiquant que les cœurs 22 Core0 et Core1 sont affectés spécifiquement et de façon synchrone à l’exécution de la partition d’accès aux périphériques IO PART SERV_IO 14, le bloc électronique de contrôle 25 commute l’activité de ces cœurs pour exécuter cette partition PART SERV_IO 14, à partir du temps T1 et pendant le temps t 1 indiqué dans l’affectation considérée, en affectant spécifiquement le cœur 22 Core0 aux accès au périphérique 18 IO2 et en affectant spécifiquement le cœur 22 Core1 aux accès au périphérique 18 IO1. Les accès aux périphériques IO1 et IO2 sont ainsi chacun organisés par cœur, minimisant ainsi les contentions liées aux IO1 et IO2 18) . La partition PART SERV_IO 14 lit dans la RAM 15 les commandes d’écriture dans les périphériques 18 IO1, IO2 à traiter, précédemment déposées dans la RAM 15 par les partitions PART APP i pendant leurs temps d’exécution ; puis la partition PART SERV_IO 14 effectue ces opérations d’écriture ainsi commandées dans les périphériques 18 IO1, IO2. Puis la partition PART SERV_IO 14 lit dans la RAM 15 les commandes de lecture dans les périphériques 18 IO1, IO2 à traiter ; la partition PART SERV_IO 14 effectue alors ces opérations de lecture ainsi commandées dans les périphériques 18 IO1, IO2. Tant que les données de lecture requises auprès des périphériques IO 18 ne sont pas mises à disposition, la partition PART SERV_IO 14 va écouter le périphérique IOj, j= 1, 2, 18 concerné par cette opération de lecture, à la fréquence définie (et avec la phase temporelle définie) pour ce périphérique et pour la partition PART APP i ayant commandé cette lecture. A l’issue de l’opération de lecture, la partition PART SERV_IO 14 dépose dans la RAM 15 les données lues à destination de la partition PART APPi Dès le temps t 1 écoulé à compter de T1, le bloc électronique de contrôle 25 commute l’activité des cœurs Core0, Core1 pour, pendant un temps t 2 indiqué dans l’affectation suivante dans la liste séquentielle d’affectations 27, exécuter cette partition PART SERV_IO 14 ; à partir du temps T2, le cœur Core0 est dédié à l’exécution de la partition PART APP 2 tandis que le cœur Core1 est dédié à l’exécution de la partition PART APP 1 conformément au contenu de cette affectation. Pendant ce temps t2, chaque partition PART APP i, i= 1, 2 écrit dans la RAM 15 ses commandes d’accès aux périphériques IO1, IO2 18 (sous forme de messages à émettre dans le cas API de la norme A653) et extrait de la RAM les résultats de commande d’accès précédemment déposés dans la RAM (sous forme de messages acquis dans le cas API de la norme A653) par la partition PART SERV_IO 14 Sur la figure 2, ont été indiqués, pendant le temps t 1 d’affectation des deux cœurs Core0, Core1 à la partition PART SERV_IO 14, les temps respectifs cumulés de dialogue avec les périphériques IO1, IO2 18 (zone libre libellée ACC. IO1, ACC. IO2), les temps de contentions (zone à points) et les temps d’écriture/lecture en RAM 15 (zone hachurée) : ainsi l’accès au périphérique IO1 par la partition PART SERV_IO 14 a duré un temps t 11 , les phénomènes de contention relatifs à l’accès au périphérique IO1 18 ont duré un temps t 1 2 , le temps d’écriture/lecture en RAM 15 relatif aux commandes et résultats de lecture/écriture sur le périphérique IO1 18 a duré un temps t 1 3 ; similairement l’accès au périphérique IO2 par la partition PART SERV_IO 14 a duré un temps t 0 1 , les phénomènes de contention relatifs à l’accès au périphérique IO2 18 ont duré un temps t 02 , le temps d’écriture/lecture en RAM 15 relatif aux commandes et résultats de lecture/écriture sur le périphérique IO2 18 a duré un temps t 03. Les temps de contention t 02 , t 1 2 se révèlent plus faibles que dans les solutions de l’art antérieur ; les contentions ont lieu dans l’exécution de la partition PART SERV_IO 14. Sur la figure 2, ont été indiqués, durant le temps t 2 affecté à l’exécution de la partition PART APP 2 sur le cœur Core0 et en parallèle à l’exécution de la partition PART APP 1 sur le cœur Core1 durant le temps t 3 , les temps d’écriture/lecture en RAM 15 (zone hachurée) ; les temps de contentions mémoire (traits verticaux) sont de durée négligeable au premier ordre (les données IO sont récupérées d’une mailbox en RAM CPU 15 pour laquelle la bande passante et le partage ont été dimensionnés en conséquence) ; le temps d’écriture/lecture en RAM 15 par la partition PART APP 1 relatif aux commandes - et résultats – d’accès aux périphérique IO1, IO2 18 par la partition PART APP 1 a duré un temps t 1 4 ; le temps d’écriture/lecture en RAM 15 par la partition PART APP 2 relatif aux commandes - et résultats - de lecture/écriture sur les périphérique IO1, IO2 18 par la partition PART APP 2 a duré un temps t 04 . Dans le mode de réalisation décrit ci-dessus, deux cœurs sont utilisés pour les accès à deux périphériques IO 18 : la solution est bien sûr ajustable, et un nombre n de cœurs seront utilisés selon l’invention pour accéder à n périphériques IO 18, avec n entier quelconque supérieur à 2. Par ailleurs, le fait que la partition PART SERV_IO soit répartie sur les n cœurs (n=2 dans le cas présent) a pour effet de permettre une collaboration pour la transmission des messages : dans un mode de réalisation, les échanges avec la RAM 15 relatives aux données à lire ou écrire dans la RAM 15 dans le cadre du traitement des accès au périphérique IO2 sont réaffectés au cœur Core1 par le bloc électronique de contrôle 25, en fonction d’au moins la charge de Core1, par exemple en cas de déséquilibre de charge, entre les deux cœurs, supérieur à un seuil fixé. La figure 3 illustre différentes situations. L’axe des abscisses est l’axe du temps, et T est un temps d’exécution par le processeur, sur l’axe des ordonnées sont indiquées trois situations AA1, AA2 et INV. Dans la situation AA1 de l’art antérieur correspondant au cas d’une plateforme avionique avec un processeur à cœur unique, les partitions s’exécutent séquentiellement et le temps CPU pris par les partitions pour les accès aux périphériques IO se cumule. Dans la situation AA2 de l’art antérieur correspondant au cas d’une plateforme avionique avec un processeur multi-cœur : les partitions s’exécutent en parallèle sur des cœurs distincts (sur la FIG3, une ligne par partition), les accès aux périphériques IO partagés (ACC. IO) peuvent devenir concurrents : il est nécessaire de prévoir une réserve importante dans les allocations temporelles aux partitions pour prendre en compte l’élongation des services d’accès aux IO compte-tenu des potentielles contentions (CONT P1 pour une des partition, Cont P2 pour l’autre partition). Selon l’invention correspondant à la situation INV en figure 3, les contentions (zones à points) apparaissent fortement réduites par rapport à l’art antérieur, les temps d’accès à la RAM 15 sont représentés en hachuré. Les solutions de l’art antérieur ne permettent pas d’offrir une caractérisation satisfaisante des temps de services d’accès IO qui ne dépendent pas de l’activité des applications en concurrence sur ces mêmes IOs. Ceci est d’autant plus vrai pour des contrôleurs d’IO dédiés, vus et accédés à travers des périphériques du SoC, qui sont existants et ne permettant pas des accès partagés équitablement entre les cœurs initiateurs des transactions IO. Cela impose un effort de caractérisation plus important au niveau de la plateforme multi-cœur IMA, mais aussi et surtout, au niveau des activités de vérification réalisées par chaque application qui voudra se déployer sur la plateforme multi-cœur IMA. Dans un mode de réalisation, la mémoire 12, le système d’exploitation 20, le processeur 21 et le dispositif électronique de contrôle 24 sont intégrés dans un même puce électronique (SoC ou en anglais « System On Chip »). Dans des modes de réalisation, certains au moins des périphériques d’entrée et/ou de sortie 18 sont des périphériques extérieurs, i.e. ils ne sont pas intégrés au SoC. Dans des modes de réalisation, les périphériques d’entrée et/ou de sortie 18 sont également intégrés au SoC. Dans un mode de réalisation, les étapes mises en œuvre par le bloc électronique de contrôle 25 sont le résultat de l’exécution, sur un processeur, d’instructions logicielles d’un programme d’ordinateur stocké dans une mémoire. Dans un tel cas, le bloc électronique de contrôle 25 comprend alors cette mémoire et ce processeur. Dans un autre mode de réalisation, le bloc électronique de contrôle 25 est réalisé sous forme d’un composant logique programmable, tel qu’un FPGA (de l’anglais Field Programmable Gate Array ), ou encore sous forme d’un circuit intégré dédié, tel qu’un ASIC (de l’anglais Applications Specific Integrated Circuit ). La présente invention permet ainsi de partager des ressources I/O entre applications au sein d’une plateforme avionique multi-cœur certifiée et avec la capacité de certification incrémentale en garantissant les temps d’exécution des applications accédant à ces I/O indépendamment des accès concurrents des applications s’exécutant sur les autres cœurs du processeur, comme requis par la norme DO-297 fixant les directives minimales pour l’avionique modulaire intégrée (IMA, en anglais « Integrated Modular Avionics”). Pour cela, les accès aux périphériques IO sont organisés en regroupant les accès à un périphérique IO par un seul cœur, pour réduire les contentions logicielles et matérielles. La présente invention permet de conserver les propriétés indispensables pour une plateforme IMA (Certification Incrémentale) qui sont : - le partitionnement robuste extensible (« extended robust partitioning ») et - l’incrémentalité ; ce qui requiert de maîtriser que : - une application (ou un groupe d’applications maitrisées) n’a pas d’influence sur les autres applications du moment qu’elle reste dans le budget (de temps, de mémoire, …) qui lui est alloué ; - les temps des services offerts restent maîtrisés quelles que soient les conditions d’exécution. Cette invention préserve la performance globale de la solution en offrant en outre aux applications avioniques des capacités de configuration des fréquences d’acquisition qui leur sont propres et qui ainsi peuvent être distinctes entre applications. L’invention a été décrite ci-dessus dans un contexte avionique, elle est bien sûr utilisable dans tout autre contexte. L’invention a été décrite en référence à la maîtrise des accès aux périphériques IO. Elle est bien sûr utilisable, de façon plus générale, pour maîtriser les temps d’accès à tout type de ressources communes aux cœurs, outre les périphériques IO : bus, mémoires, ARINC664, mémoire non volatile, ARINC429 (bus de com) etc. Procédé d’accès aux ressources partagées d’une plateforme informatique (10) comprenant : - au moins un processeur multicœurs (21) comprenant au moins deux cœurs (22) ; - un ensemble de partitions applicatives (14) exécutables sur le processeur ; - un ensemble (19) de ressource(s) partagée(s) (18) entre lesdites partitions applicatives ; selon lequel l’ensemble des partitions applicatives comprend des premières partitions générant des requêtes d’accès à au moins une ressource partagée de l’ensemble de ressource(s) partagée(s), transmettant des données numériques à écrire dans ladite ressource partagée ou interrogeant ladite ressource partagée ; l’utilisation des cœurs par les partitions applicatives étant préalablement organisée selon une liste séquentielle (27) d’affectations, les affectations indiquant, en correspondance avec les cœurs, des partitions et des temps prédéterminés, ledit procédé comprenant les étapes selon lesquelles : chaque cœur est sélectivement utilisé, pendant un temps prédéterminé indiqué dans une affectation de la liste, pour l’exécution d’une partition applicative indiquée en correspondance avec le cœur dans l’affectation, et il est déclenché un basculement de l’utilisation sélective du cœur, à l’issue dudit temps prédéterminé, vers l’exécution de la partition indiquée en correspondance dudit cœur dans l’affectation suivante de la liste séquentielle d’affectations pendant le temps prédéterminé indiqué en correspondance avec ledit cœur dans ladite affectation suivante ; ledit procédé étant caractérisé en ce qu’il comprend en outre les étapes suivantes : - l’ensemble de partitions applicatives (14) comprenant au moins une deuxième partition, dite partition d’accès aux ressources partagées, lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur sont adressées à la partition d’accès aux ressources partagées ; - la partition d’accès aux ressources partagées, lors de son exécution sur le processeur, effectue les accès aux ressources partagées pour mettre en œuvre les requêtes d’accès aux ressources partagées ; - on réserve, pour l’exécution de la partition d’accès aux ressources partagées, de multiples cœurs (22) de façon synchrone sur des temps prédéterminés via des affectations respectives dans la liste séquentielle d’affectations, les conditions suivantes devant être respectées pendant chacun des temps prédéterminés affectés à ladite partition : - les accès à des ressources partagées distinctes (18) effectués par la partition d’accès aux ressources partagées de l’ensemble sont exécutés par des cœurs réservés distincts ; et - pour chaque ressource partagée de l’ensemble, tous les accès à la ressource partagée effectués par la partition d’accès aux ressources partagées sont exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. Procédé d’accès aux ressources partagées d’une plateforme informatique (10) selon la revendication 1, selon lequel la partition d’accès aux ressources partagées (14) transmet à destination des premières partitions les réponses, fournies par les ressources partagées, aux requêtes. Procédé d’accès aux ressources partagées d’une plateforme informatique selon la revendication 1 ou 2, selon lequel les ressources partagées de l’ensemble de ressource(s) partagée(s) sont des périphériques d’entrées et/ou de sortie (18) de la plateforme informatique. Procédé d’accès aux ressources partagées d’une plateforme informatique selon l’une des revendications précédentes, selon lequel la plateforme (10) est une plateforme avionique. Procédé d’accès aux ressources partagées d’une plateforme informatique (10) selon l’une des revendications précédentes, selon lequel il est prédéfini pour chaque première partition (14) relativement à chaque ressource partagée (18), une fréquence respective, et la partition d’accès aux ressources partagées (14), pendant chacun de ses temps prédéterminés d’exécution, accède à ladite ressource partagée (18) à ladite fréquence pour recueillir des données fournies en réponse par ladite ressource partagée à une requête d’accès émise par ladite première partition et mise en œuvre par la partition d’accès aux ressources partagées. Procédé d’accès aux ressources partagées d’une plateforme informatique (10) selon l’une des revendications précédentes, selon lequel lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur sont adressées à la partition d’accès aux ressources partagées en les déposant dans une mémoire de travail (15) dans laquelle la partition d’accès aux ressources partagées viendra les lire et selon lequel les réponses auxdites requêtes sont déposées dans ladite mémoire par la partition d’accès aux ressources partagées, et selon lequel, les accès à une première, respectivement deuxième, ressource partagée étant exécutés pendant un temps prédéterminé, par un premier, respectivement deuxième, des cœurs réservés, la lecture dans la mémoire de travail des requêtes d’accès à la première, deuxième, ressource ou le dépôt dans la mémoire de travail des réponses audites requêtes devant être effectué par ledit premier, respectivement cœur réservé pendant ledit temps prédéterminé; et selon lequel en fonction d‘au moins l’activité du deuxième des cœurs réservés, il est déclenché l’affectation audit deuxième cœur, pendant ledit temps prédéterminé, d’au moins une partie de la lecture dans la mémoire de travail des requêtes d’accès à la première ressource ou du dépôt dans la mémoire de travail des réponses audites requêtes. Programme d’ordinateur, comportant des instructions logicielles qui, lorsqu’elles sont exécutées par un ordinateur, mettent en œuvre un procédé selon l’une des revendications 1 à 6.. Plateforme informatique (10) comprenant : - au moins un processeur multicœurs (21) comprenant au moins deux cœurs (22) ; - un ensemble de partitions applicatives (14) exécutables sur le processeur ; - un ensemble (19) de ressource(s) partagée(s) (18) entre lesdites partitions applicatives ; dans laquelle l’ensemble des partitions applicatives comprennent des premières partitions générant des requêtes d’accès à au moins une ressource partagée de l’ensemble de ressource(s) partagée(s), transmettant des données numériques à écrire dans ladite ressource partagée ou interrogeant ladite ressource partagée ; comprenant une liste séquentielle (27) d’affectations organisant préalablement l’utilisation des cœurs par les partitions applicatives, les affectations indiquant, en correspondance avec les cœurs, des partitions et des temps prédéterminés, ladite plate-forme étant adaptée pour utiliser chaque cœur sélectivement pendant un temps prédéterminé indiqué dans une affectation de la liste pour l’exécution d’une partition applicative indiquée en correspondance avec le cœur dans l’affectation, ladite plate-forme étant adaptée pour déclencher un basculement de l’utilisation sélective du cœur, à l’issue dudit temps prédéterminé, vers l’exécution de la partition indiquée en correspondance dudit cœur dans l’affectation suivante de la liste séquentielle d’affectations pendant le temps prédéterminé indiqué en correspondance avec ledit cœur dans ladite affectation suivante ; ladite plate-forme étant caractérisée en ce que l’ensemble de partitions applicatives (14) comprend au moins une deuxième partition, dite partition d’accès aux ressources partagées, lesdites requêtes d’accès émises par les premières partitions lors de leur exécution sur le processeur étant adressées à la partition d’accès aux ressources partagées ; - la partition d’accès aux ressources partagées est adaptée pour, lors de son exécution sur le processeur, effectuer les accès aux ressources partagées pour mettre en œuvre les requêtes d’accès aux ressources partagées ; - ladite plate-forme étant adaptée pour réserver, pour l’exécution de la partition d’accès aux ressources partagées, de multiples cœurs (22) de façon synchrone sur des temps prédéterminés via des affectations respectives dans la liste séquentielle d’affectations, et pour respecter les conditions suivantes pendant chacun des temps prédéterminés affectés à ladite partition : - les accès à des ressources partagées distinctes (18) effectués par la partition d’accès aux ressources partagées de l’ensemble sont exécutés par des cœurs réservés distincts ; et - pour chaque ressource partagée de l’ensemble, tous les accès à la ressource partagée effectués par la partition d’accès aux ressources partagées sont exécutés, pendant ledit temps prédéterminé, par un cœur unique parmi les cœurs réservés. Plateforme informatique (10) selon la revendication 8, dans laquelle la partition d’accès aux ressources partagées (14) est adaptée pour transmettre à destination des premières partitions les réponses, fournies par les ressources partagées, aux requêtes. Plateforme informatique selon la revendication 8 ou 9, dans laquelle les ressources partagées de l’ensemble de ressource(s) partagée(s) sont des périphériques d’entrées et/ou de sortie (18) de la plateforme informatique.