FR3045866A1 - COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD - Google Patents

COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD Download PDF

Info

Publication number
FR3045866A1
FR3045866A1 FR1502613A FR1502613A FR3045866A1 FR 3045866 A1 FR3045866 A1 FR 3045866A1 FR 1502613 A FR1502613 A FR 1502613A FR 1502613 A FR1502613 A FR 1502613A FR 3045866 A1 FR3045866 A1 FR 3045866A1
Authority
FR
France
Prior art keywords
access
cores
common resource
core
common
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
FR1502613A
Other languages
French (fr)
Other versions
FR3045866B1 (en
Inventor
Xavier Jean
Madeleine Faugere
Perez Daniel Gracia
Rhun Jimmy Le
Sylvain Girbal
Arnaud Grasset
Marc Gatti
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.)
Thales SA
Original Assignee
Thales SA
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 Thales SA filed Critical Thales SA
Priority to FR1502613A priority Critical patent/FR3045866B1/en
Publication of FR3045866A1 publication Critical patent/FR3045866A1/en
Application granted granted Critical
Publication of FR3045866B1 publication Critical patent/FR3045866B1/en
Active legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/52Program synchronisation; Mutual exclusion, e.g. by means of semaphores

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Data Exchanges In Wide-Area Networks (AREA)

Abstract

Le calculateur comprend des ressources matérielles communes (12) accessibles aux cœurs (10) selon une séquence de fenêtres temporelles et en fonction de règles d'accès prédéfinies enregistrées dans au moins une mémoire du calculateur (6) et mises en œuvre par le calculateur (6) en cours de fonctionnement, selon lesquelles dans chaque fenêtre temporelle, chaque cœur (10) a, pour chaque ressource commune (12), un accès garanti, un accès sur demande ou un accès interdit à la ressource commune (12), la séquence incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur (10) a un accès garanti à au moins une ressource commune (12) et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs (10) ont un accès sur demande à une même ressource commune (12), l'accès à ladite même ressource commune (12) étant attribuable à un ou plusieurs cœurs (10) parmi lesdits plusieurs cœurs (10) ayant un accès sur demande, selon les règles d'accès et en fonction des demandes d'accès émises par lesdits plusieurs cœurs (10).The computer comprises common hardware resources (12) accessible to the cores (10) according to a sequence of time windows and according to predefined access rules stored in at least one memory of the computer (6) and implemented by the computer ( 6) in operation, according to which in each time window, each core (10) has, for each common resource (12), a guaranteed access, an on-demand access or a forbidden access to the common resource (12), the sequence including at least one time window during which at least one core (10) has guaranteed access to at least one common resource (12) and at least one time window during which a plurality of cores (10) have on demand access to the same common resource (12), access to said same common resource (12) being attributable to one or more cores (10) among said plurality of cores (10) having access on demand, according to the access rules and according to the access requests issued by said plurality of cores (10).

Description

CALCULATEUR COMPRENANT UN PROCESSEUR MULTI-COEURS ETCOMPUTER COMPRISING A MULTI-HEART PROCESSOR AND

PROCEDE DE CONTROLECONTROL METHOD

La présente invention concerne le domaine des calculateurs à processeurs multi-cœurs, comprenant plusieurs cœurs physiquement distincts partageant des ressources matérielles communes.The present invention relates to the field of multi-core processor computers, comprising several physically distinct cores sharing common hardware resources.

Chaque cœur d’un processeur multi-cœurs est une unité de calcul physiquement distincte des autres cœurs. La présence de plusieurs cœurs permet l’exécution en parallèle de plusieurs applications logicielles, afin d’offrir de meilleures performances globales.Each core of a multi-core processor is a computing unit that is physically distinct from other cores. The presence of multiple cores allows the parallel execution of several software applications, in order to offer better overall performance.

Pour l’exécution des applications logicielles, les cœurs utilisent des ressources matérielles communes. Ces ressources communes sont par exemple des mémoires, notamment une mémoire principale, un réseau d’interconnexion, des interfaces entrée/sortie (ou interface I/O) du calculateur (Bus rapide PCIe ou Réseau Ethernet par exemple) ou encore une interface d’interconnexion entre les cœurs et ces différentes ressources communes.For running software applications, cores use common hardware resources. These common resources are for example memories, in particular a main memory, an interconnection network, input / output interfaces (or I / O interface) of the computer (PCIe fast bus or Ethernet network for example) or an interface of interconnection between the hearts and these different common resources.

Les cœurs sont en concurrence pour l’utilisation de ces ressources communes. Cette concurrence entraîne une incertitude dans le temps de traitement des données par le processeur multi-cœurs.Hearts compete for the use of these common resources. This competition causes uncertainty in the processing time of the data by the multi-core processor.

Or, les systèmes électroniques embarqués tels que ceux utilisés dans le domaine avionique, le domaine spatial ou le domaine ferroviaire, ont besoin de déterminisme dans la durée des traitements pour satisfaire des contraintes de certification.However, on-board electronic systems such as those used in the avionics field, the space domain or the railway domain, need determinism in the duration of the processing to satisfy certification constraints.

Il est possible d’organiser les codes informatiques des applications logicielles exécutées par les cœurs de manière à assurer un ordonnancement des tâches tel qu’à un instant donné, un seul cœur a le droit d’accéder aux ressources communes. Néanmoins, cette conception des applications logicielles est très contraignante et difficilement adaptable à des systèmes électroniques embarqués, surtout ceux qui sont développés sans avoir connaissance des applications logicielles qu’ils auront à exécuter, comme c’est le cas d’un système avionique modulaire intégré (ou « IMA » pour « Integrated Modular Avionics » en anglais).It is possible to organize the computer codes of the software applications executed by the cores so as to ensure a scheduling of the tasks such that at a given moment, only one heart has the right to access the common resources. However, this design of software applications is very restrictive and difficult to adapt to embedded electronic systems, especially those that are developed without knowledge of the software applications they will have to perform, as is the case of an integrated modular avionics system (or "IMA" for "Integrated Modular Avionics").

Il est possible de déployer un contrôleur logiciel mettant en œuvre une politique d’accès aux ressources communes basée sur l’allocation de fenêtres temporelles aux cœurs, chaque cœur ayant un accès exclusif aux ressources communes pendant les fenêtres temporelles qui lui sont allouées. L’allocation des fenêtres temporelles est prédéterminée et statique. Néanmoins, l’accès aux ressources communes n’est pas optimisé et la durée des traitements s’en trouve affectée, ce qui peut être préjudiciable dans des systèmes électroniques embarqués.It is possible to deploy a software controller implementing a common resource access policy based on the allocation of time windows to the cores, each core having exclusive access to the common resources during the time slots allocated to it. The allocation of time windows is predetermined and static. However, access to common resources is not optimized and the processing time is affected, which can be detrimental in embedded electronic systems.

Un des buts de l’invention est de proposer un calculateur à processeur multi-cœurs implémentant un procédé de contrôle efficace, permettant d’améliorer l’utilisation des ressources communes tout en assurant un bon niveau de déterminisme dans la durée de traitement des données. A cet effet, l’invention propose un calculateur comprenant un processeur multi-cœurs possédant plusieurs cœurs physiquement distincts et des ressources matérielles communes partagées par les cœurs et accessibles aux cœurs selon une séquence de fenêtres temporelles et en fonction de règles d’accès prédéfinies enregistrées dans au moins une mémoire du calculateur et mises en œuvre par le calculateur en cours de fonctionnement, selon lesquelles dans chaque fenêtre temporelle, chaque cœur a, pour chaque ressource commune, un accès garanti, un accès sur demande ou un accès interdit à la ressource commune, la séquence incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur a un accès garanti à au moins une ressource commune et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs ont un accès sur demande à une même ressource commune, l’accès à ladite même ressource commune étant attribuable à un ou plusieurs cœurs parmi lesdits plusieurs cœurs ayant un accès sur demande, selon les règles d’accès et en fonction des demandes d’accès émises par lesdits plusieurs cœurs.One of the aims of the invention is to propose a multi-core processor computer implementing an effective control method, making it possible to improve the use of common resources while ensuring a good level of determinism in the duration of data processing. For this purpose, the invention proposes a computer comprising a multi-core processor having several physically distinct cores and common hardware resources shared by the cores and accessible to the cores according to a sequence of time windows and according to predefined registered access rules. in at least one memory of the computer and implemented by the computer during operation, according to which in each time window, each core has, for each common resource, guaranteed access, on-demand access or forbidden access to the resource common, the sequence including at least one time window during which at least one core has a guaranteed access to at least one common resource and at least one time window during which several cores have on-demand access to the same common resource, the access to the same common resource being attributable to one or more cores parm i said multiple cores having access on demand, according to the access rules and according to the access requests issued by said multiple cores.

Le calculateur comprend en option une ou plusieurs des caractéristiques suivantes, prises isolément ou selon toutes les combinaisons techniquement possibles : - la séquence comprend au moins une fenêtre temporelle pendant laquelle l’accès à une ressource commune ou à chaque ressource commune est réservé exclusivement à un ou plusieurs cœurs ayant un accès garanti à cette ressource commune ou à chaque ressource commune ; - la séquence comprend au moins une fenêtre temporelle pendant laquelle l’accès à une ressource commune ou à chaque ressource commune est réservé exclusivement à un seul et unique cœurs ayant un accès garanti à cette ressource commune ou à chaque ressource commune ; - la séquence comprend au moins une fenêtre temporelle pendant laquelle l’accès à une ressource commune ou à chaque ressource commune est attribuable exclusivement à un ou plusieurs cœurs parmi plusieurs cœurs ayant un accès sur demande à cette ressource commune ou à chaque ressource commune ; - la séquence comprend au moins une fenêtre temporelle pendant laquelle l’accès à une ressource commune ou à chaque ressource commune est attribuable exclusivement à un seul et unique cœur parmi plusieurs cœurs ayant accès sur demande à cette ressource commune ou à chaque ressource commune ; - la séquence comprend au moins une fenêtre temporelle pendant laquelle l’accès à des premières ressources communes est attribuable à au moins un cœur d’un premier groupe de cœurs selon un premier jeu de règles d’accès et l’accès des deuxièmes ressources communes distinctes de premières ressources communes est attribuable à au moins un cœur d’un deuxième groupe de cœurs disjoint du premier groupe de cœurs selon un deuxième jeu de règles d’accès indépendantes de celles du premier jeu de règles d’accès ; - la séquence comprend une première phase possédant des fenêtres temporelles ayant une même première durée et une deuxième phase possédant des fenêtres temporelles ayant une même deuxième durée différente de la première durée ; - il est configuré de sorte que chaque cœur exécute un contrôleur d’accès appliquant les règles d’accès pour déterminer, pour chaque fenêtre temporelle, si ce cœur est à un accès garanti ou un accès sur demande à une ressource commune ou à chaque ressource commune pendant cette fenêtre temporelle ; - les contrôleurs d’accès des différents cœurs sont synchronisés à partir d’une horloge de référence commune aux cœurs ; - le contrôleur d’accès de chaque cœur est exécuté par le cœur à partir d’une mémoire cache du cœur intégrée physiquement au cœur, sans accéder aux ressources communes ; - chaque fenêtre temporelle pendant laquelle plusieurs cœurs ont un accès sur demande à au moins une même ressource commune, comprend une période de notification pendant laquelle chaque cœur indique aux autres cœurs s’il souhaite ou non réserver la fenêtre temporelle, une période de décision pendant laquelle chaque cœur détermine s’il est autorisé à accéder aux ressources partagées pendant la fenêtre temporelle, en fonction des demandes émises par les autres cœurs, et une période d’utilisation pendant laquelle chaque cœur autorisé peut accéder aux ressources partagées. L’invention concerne également une procédé de contrôle d’un processeur multi-cœurs possédant plusieurs cœurs physiquement distincts ayant accès à des ressources matérielles communes partagées par les cœurs et accessibles aux cœurs selon une séquence de fenêtres temporelles et en fonction de règles d’accès prédéfinies enregistrées dans au moins une mémoire du calculateur et selon lesquelles, dans chaque fenêtre temporelle, chaque cœur a, pour chaque ressource commune, un accès garanti, un accès sur demande ou un accès interdit à la ressource commune, la séquence incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur a un accès garanti à au moins une ressource commune, et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs ont un accès sur demande à une même ressource commune, le procédé comprenant, au cours du fonctionnement du processeur, l’attribution de l’accès à ladite même ressource commune à un ou plusieurs cœurs parmi lesdits plusieurs cœurs ayant un accès sur demande, en fonction des demandes d’accès émises par lesdits plusieurs cœurs. L’invention et ses avantages seront mieux compris à 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 est une vue schématique d’un calculateur d’un système avionique embarqué, le calculateur comprenant un processeur multi-cœurs possédant plusieurs cœurs partageant des ressources communes ; - les Figures 2 à 5 sont des frises temporelles illustrant des partitions temporelles de partage des ressources communes; - la Figure 6 est une frise temporelle illustrant différentes phases d’une fenêtre temporelle d’une partition temporelle de partage des ressources communes ; - la Figure 7 représente des graphiques illustrant différentes phases d’acquisition, d’exécution et de restitution par deux cœurs d’un processeur multi-cœurs.The calculator optionally includes one or more of the following characteristics, taken separately or in any technically possible combination: the sequence comprises at least one time window during which access to a common resource or to each common resource is reserved exclusively for a or multiple cores with guaranteed access to this common resource or common resource; the sequence comprises at least one time window during which access to a common resource or to each common resource is reserved exclusively for a single and unique core having a guaranteed access to this common resource or to each common resource; the sequence comprises at least one time window during which the access to a common resource or to each common resource is attributable exclusively to one or more cores among several cores having access on request to this common resource or to each common resource; the sequence comprises at least one time window during which access to a common resource or to each common resource is attributable exclusively to one and only one of several cores having access on request to this common resource or to each common resource; the sequence comprises at least one time window during which access to first common resources is attributable to at least one heart of a first group of cores according to a first set of access rules and access to the second common resources distinct first common resources is attributable to at least one heart of a second group of cores disjoined from the first group of cores according to a second set of access rules independent of those of the first set of access rules; the sequence comprises a first phase having time windows having the same first duration and a second phase having time windows having the same second duration different from the first duration; it is configured so that each core executes an access controller applying the access rules to determine, for each time window, whether this heart is at a guaranteed access or on-demand access to a common resource or to each resource common during this time window; the access controllers of the different cores are synchronized from a reference clock common to the cores; the access controller of each heart is executed by the heart from a memory cache of the heart physically integrated into the core, without accessing the common resources; each time window during which several cores have on-demand access to at least one common resource, includes a notification period during which each heart indicates to the other cores whether or not it wishes to reserve the time window, a decision period during wherein each core determines whether it is allowed to access the shared resources during the time window, based on requests from the other cores, and a usage period during which each authorized heart can access the shared resources. The invention also relates to a method of controlling a multi-core processor having a plurality of physically distinct cores having access to common hardware resources shared by the cores and accessible to the cores in a sequence of time windows and according to access rules defined in at least one memory of the computer and according to which, in each time window, each core has, for each common resource, a guaranteed access, access on request or a forbidden access to the common resource, the sequence including at least one time window during which at least one core has guaranteed access to at least one common resource, and at least one time window during which several cores have on-demand access to the same common resource, the method comprising, during operation of the processor , assigning access to the same common resource to an o u more than one of said plurality of cores having access on demand, depending on the access requests issued by said multiple cores. The invention and its advantages will be better understood on reading the description which will follow, given solely by way of example, and with reference to the appended drawings, in which: FIG. 1 is a schematic view of a calculator an onboard avionics system, the computer comprising a multi-core processor having several cores sharing common resources; FIGS. 2 to 5 are temporal friezes illustrating temporal partitions for sharing common resources; FIG. 6 is a temporal frieze illustrating different phases of a temporal window of a temporal partition of sharing of common resources; FIG. 7 represents graphs illustrating different phases of acquisition, execution and rendering by two cores of a multi-core processor.

Sur la Figure 1, un système avionique 2 embarqué dans un aéronef 4 possède un calculateur 6 possédant un processeur 8 multi-cœurs comprenant plusieurs cœurs 10, des ressources communes 12 partagées par les cœurs 10, et une interconnexion 14 électronique par l’intermédiaire de laquelle les cœurs 10 accèdent aux ressources communes 12.In FIG. 1, an avionics system 2 embedded in an aircraft 4 has a computer 6 having a multi-core processor 8 comprising several cores 10, common resources 12 shared by the cores 10, and an electronic interconnection 14 via which hearts access the common resources 12.

Les cœurs 10 sont physiquement distincts. Chaque cœur 10 est une unité de calcul individuelle comprenant ses propres composants électroniques, distincts de ceux des autres cœurs 10.Hearts 10 are physically distinct. Each core 10 is an individual computing unit comprising its own electronic components, distinct from those of the other cores 10.

Les ressources communes 12 sont des ressources matérielles partagées par les cœurs 10. Les ressources communes 12 sont par exemple des mémoires, telles qu’une mémoire principale, une mémoire cache partagée (par exemple une mémoire de niveau 2 dite Cache L2 ou de niveau 3 dite Cache L3), ou des interfaces entrée/sortie (ou interface I/O). Une interface entrée/sortie permet d’émettre ou de recevoir des signaux sur un bus de communication (non représenté), par exemple un bus de communication du système avionique pour une communication entre plusieurs calculateurs ou entre les calculateurs et des sondes de mesure ou des actuateurs. L’interconnexion 14 est par exemple un bus d’interconnexion. De préférence, tous les cœurs 10 du processeur 8 sont reliés aux ressources communes 12 par l’intermédiaire du même et unique moyen formé par l’interconnexion 14.The common resources 12 are hardware resources shared by the cores 10. The common resources 12 are, for example, memories, such as a main memory, a shared cache memory (for example a level 2 memory called Cache L2 or level 3 so-called L3 Cache), or input / output interfaces (or I / O interface). An input / output interface makes it possible to transmit or receive signals on a communication bus (not shown), for example an avionics communication bus for communication between several computers or between the computers and measuring probes or sensors. actuators. The interconnection 14 is for example an interconnection bus. Preferably, all the cores 10 of the processor 8 are connected to the common resources 12 via the same and only means formed by the interconnection 14.

Chaque cœur 10 est apte à exécuter une ou plusieurs applications logicielles utiles, de préférence sous le contrôle d’un système d’exploitation informatique (ou « OS » pour « Operating System » en anglais), qui est une application logicielle particulière exécutée par le cœur 10 et qui contrôle l’utilisation des ressources logicielles ou matérielles accessibles à ce cœur 10 (y compris les ressources communes 12) par les applications logicielles utiles. Chaque cœur 10 peut posséder son propre système d’exploitation individuel, mais aussi disposer d’un système d’exploitation partagé entre plusieurs cœurs 10. Dans la suite, le terme « application AP » désigne les applications logicielles utiles ou le système d’exploitation exécuté par un cœur 10.Each core 10 is able to execute one or more useful software applications, preferably under the control of a computer operating system (or "OS" for "Operating System" in English), which is a particular software application executed by the core 10 and which controls the use of software or hardware resources accessible to this core 10 (including common resources 12) by the useful software applications. Each core 10 can have its own individual operating system, but also have an operating system shared between several cores 10. In the following, the term "AP application" refers to useful software applications or the operating system performed by a heart 10.

Lors de son exécution, une application AP exécutée par un cœur 10 émet des requêtes qui sont traitées par le cœur 10. Une requête correspond généralement à une demande de lecture ou d’écriture à une adresse déterminée de l’espace mémoire adressable.At its execution, an AP application executed by a heart 10 issues requests that are processed by the heart 10. A request generally corresponds to a request to read or write to a specific address of the addressable memory space.

Pour répondre à une requête d’une application AP exécutée par un cœur 10, le cœur 10 fait appel notamment aux ressources communes 12. Dans la suite, une «transaction» désigne un échange de données entre un cœur 10 déterminé et une ressource commune 12 déterminée.To respond to a request from an application AP executed by a heart 10, the core 10 uses in particular the common resources 12. In the following, a "transaction" refers to an exchange of data between a determined core 10 and a common resource 12 determined.

Lors de l’exécution des applications AP par les cœurs 10, les cœurs 10 sont en concurrence pour l’utilisation des ressources communes 12. Or, chaque transaction entre un cœur 10 déterminé et une ressource commune 12 déterminée doit être effectuée avec un coût temporel borné.When executing the AP applications by the cores 10, the cores 10 compete for the use of the common resources 12. However, each transaction between a determined core 10 and a common resource 12 determined must be performed with a time cost thick headed.

Le partage de ressources communes 12 par plusieurs cœurs 10 nécessite donc de définir une politique de partage de ressources communes 12, c’est-à-dire un ensemble de règles restreignant l’activité concurrente des différents cœurs 10 dans les ressources communes 12.The sharing of common resources 12 by several cores 10 therefore requires defining a common resource sharing policy 12, that is to say a set of rules restricting the concurrent activity of the different cores 10 in the common resources 12.

Comme illustré sur la Figure 2, le calculateur 6 est configuré pour mettre en œuvre une politique de partage des ressources communes 12 basée sur une séquence de fenêtres temporelles F1, F2 incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur 10 à un accès garanti à au moins une ressource commune 12 sans avoir à demande une autorisation préalable, et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs 10 ont accès sur demande à au moins une même ressource commune 12, chaque cœur 10 étant autorisé ou non à accéder à la ressource commune 12 en fonction des demandes d’accès faites par les autres cœurs 10 et de règles d'accès prédéfinies.As illustrated in FIG. 2, the computer 6 is configured to implement a common resource sharing policy 12 based on a sequence of time windows F1, F2 including at least one time window during which at least one core 10 has one access. guaranteed to at least one common resource 12 without having to request a prior authorization, and at least one time window during which several cores 10 have access on request to at least one common resource 12, each core 10 being authorized or not to access the common resource 12 according to the access requests made by the other cores 10 and predefined access rules.

La séquence de fenêtre est périodique. L’accès garanti ou sur demande de chaque cœur 10 à chaque ressource commune 12 pendant chaque fenêtre temporelle F1, F2, est prédéfini lors de la conception et de la configuration du calculateur 6.The window sequence is periodic. The guaranteed or on request access of each core 10 to each common resource 12 during each time window F1, F2, is predefined during the design and configuration of the computer 6.

Dans chaque fenêtre temporelle, pour chaque ressource commune 12, chaque cœur 10 a sélectivement un accès garanti à cette ressource commune 12, un accès sur demande à cette ressource commune 12 ou un accès interdit à cette ressource commune 12.In each time window, for each common resource 12, each core 10 selectively has a guaranteed access to this common resource 12, on-demand access to this common resource 12 or forbidden access to this common resource 12.

Les règles d’accès définissent, pour chaque fenêtre temporelle F1, F2, chaque cœur 10 et chaque ressource commune 12, si, pendant la fenêtre temporelle F1, F2, le cœur 10 à un accès garanti à la ressource commune 12, un accès sur demande à la ressource commune 12 ou un accès interdit à la ressource commune 12.The access rules define, for each time window F1, F2, each core 10 and each common resource 12, if, during the time window F1, F2, the core 10 has a guaranteed access to the common resource 12, an access on request to the common resource 12 or a forbidden access to the common resource 12.

Dans une mode de réalisation, pendant au moins une fenêtre temporelle, plusieurs cœurs 10 ont un accès garanti à une même ressource commune 12 et/ou pendant au moins une fenêtre temporelle, au moins un cœur 10 a un accès garanti à une ressource commune 12 et plusieurs autres cœurs 10 ont accès sur demande à cette même ressource commune 12. Dans les deux cas, des cœurs 10 sont en concurrence pour l’accès à une même ressource commune 12.In one embodiment, during at least one time slot, several cores 10 have guaranteed access to the same common resource 12 and / or during at least one time slot, at least one core 10 has guaranteed access to a common resource 12 and several other cores 10 have on-demand access to this same common resource 12. In both cases, cores 10 compete for access to the same common resource 12.

De préférence, dans chaque fenêtre temporelle pour laquelle un cœur 10 a un accès garanti à une ressource commune 12 déterminée, ce cœur 10 est le seul et unique cœur à avoir accès à cette ressource commune 12 déterminée. Ce cœur 10 à un accès exclusif à cette ressource commune 12. Aucun autre cœur 10 n’a un accès garanti ou un accès sur demande à cette ressource commune 12. Tous les autres cœurs 10 ont un accès interdit à cette ressource commune 12.Preferably, in each time window for which a core 10 has a guaranteed access to a common resource 12 determined, this core 10 is the one and only heart to have access to this common resource 12 determined. This core 10 has exclusive access to this common resource 12. No other core 10 has guaranteed access or on-demand access to this common resource 12. All other cores 10 have forbidden access to this common resource 12.

Dans un mode de réalisation, au moins dans une fenêtre temporelle, au moins un cœur 10 a un accès garanti à au moins une première ressource commune 12 et plusieurs autres cœurs 10 ont accès sur demande à au moins une deuxième ressource commune 12, chaque première ressource commune 12 étant distincte de chaque deuxième ressource commune 12.In one embodiment, at least one time window, at least one core 10 has guaranteed access to at least one first common resource 12 and several other cores 10 have access on request to at least one second common resource 12, each first common resource 12 being distinct from each second common resource 12.

Dans un mode de réalisation, au moins dans une fenêtre temporelle, et notamment dans une phase comprenant plusieurs fenêtre temporelles successives, un premier groupe de cœurs 10 à un accès garanti ou sur demande à un premier groupe de ressource communes 12 selon un premier jeu de règles d’accès propres à ce premier groupe de cœurs 10, et un deuxième groupe de cœurs 10, distincts de ceux du premier groupe de cœurs 10, a un accès garanti ou sur demande à un deuxième groupe de ressources communes 12 distinctes de celles du premier groupe de ressources communes 12, selon un deuxième jeu de règles d’accès propres à ce deuxième groupe de cœurs 10 et indépendantes de celles du premier jeu de règles d’accès. De telles règles d’accès sont acceptables dès lors que l’accès aux ressources communes 12 n’entraine pas d'interférence dans l’interconnexion 14.In one embodiment, at least in a time window, and especially in a phase comprising a plurality of successive time windows, a first group of cores 10 with a guaranteed or on request access to a first group of common resources 12 according to a first set of access rules specific to this first group of cores 10, and a second group of cores 10, distinct from those of the first group of cores 10, has a guaranteed or on request access to a second group of common resources 12 distinct from those of the first group of common resources 12, according to a second set of access rules specific to this second group of cores 10 and independent of those of the first set of access rules. Such access rules are acceptable when access to common resources 12 does not cause interference in the interconnection 14.

De manière générale, chaque cœur 10 dispose, pour chaque ressource commune 12, d'au moins une fenêtre temporelle pendant laquelle il a un accès garanti ou un accès sur demande à cette ressource commune 12.In general, each core 10 has, for each common resource 12, at least one time window during which it has a guaranteed access or access on request to this common resource 12.

De manière générale, dans une même fenêtre temporelle, les règles d’accès de chaque cœur 10 aux ressources communes 12 sont différentes d’une ressource commune 12 à l’autre, ou identiques pour toutes les ressources communes 12. Dans une fenêtre temporelle, un cœur 10 peut avoir à un accès garanti à une ressource commune et un accès sur demande à une autre ressource commune 12.In a general manner, in the same time window, the access rules of each core 10 to the common resources 12 are different from a common resource 12 to the other, or identical for all the common resources 12. In a time window, a heart 10 may have guaranteed access to a common resource and on-demand access to another common resource 12.

Dans un mode de réalisation, dans chaque fenêtre temporelle, les règles d’accès de chaque cœur 10 aux ressources communes 12 sont identiques pour toutes les ressources communes 12. Ainsi, dans chaque fenêtre temporelle, chaque cœur 10 a sélectivement un accès garanti à chaque ressources communes 12, un accès sur demande à chaque ressource commune 12 ou un accès interdit à chaque ressource commune 12.In one embodiment, in each time window, the access rules of each core 10 to the common resources 12 are identical for all the common resources 12. Thus, in each time window, each core 10 selectively has a guaranteed access to each common resources 12, on-demand access to each common resource 12 or forbidden access to each common resource 12.

Dans le mode de réalisation de la Figure 2, dans chaque fenêtre temporelle, les règles d’accès de chaque cœur 10 aux ressources communes 12 sont identiques pour toutes les ressources communes 12.In the embodiment of FIG. 2, in each time window, the access rules of each core 10 to the common resources 12 are identical for all the common resources 12.

Les fenêtres temporelles comprennent des fenêtres temporelles à accès garanti F1 et des fenêtres temporelles à accès régulé F2.The time windows include time slots with guaranteed access F1 and time slots with controlled access F2.

De préférence, dans chaque fenêtre temporelle à accès garanti F1, un seul et unique cœur 10 auquel cette fenêtre est dite «allouée», a un accès garanti aux ressources communes 12. Tous les autres cœurs 10 ont un accès interdit aux ressources communes 12.Preferably, in each guaranteed access time window F1, a single core 10 to which this window is said to be "allocated" has guaranteed access to common resources 12. All other cores 10 have forbidden access to common resources 12.

Dans chaque fenêtre temporelle à accès régulé F2, plusieurs cœurs 10 auxquels cette fenêtre est dite « allouée », ont accès sur demande aux ressources communes 12, l’accès de chaque cœur 10 ayant demandé à accéder aux ressources communes 12 étant autorisé ou interdit en fonction des demandes d’accès faites par les autres cœurs 10 et de règles d’accès prédéfinies.In each time slot with controlled access F2, several cores 10 to which this window is said to be "allocated", have on request access to the common resources 12, the access of each heart 10 having requested access to the common resources 12 being authorized or prohibited in depending on the access requests made by the other cores 10 and predefined access rules.

Un cœur 10 auquel la fenêtre temporelle à accès régulé F2 n’est pas allouée, a un accès interdit au ressources communes 12.A heart 10 to which the F2 time slot is not allocated, has forbidden access to common resources 12.

Lorsqu’un cœur 10, après demande, a un accès autorisé aux ressources communes 12 dans une fenêtre temporelle à accès régulé F2, cette fenêtre temporelle à accès régulé F2 est dite « attribuée » à ce cœur 10.When a heart 10, after request, has an authorized access to the common resources 12 in a time-controlled access window F2, this time-controlled access window F2 is said to be "allocated" to this heart 10.

De préférence, chaque fenêtre temporelle à accès régulé F2 est attribuée en fonction des demandes d’accès faites par les cœurs 10 et de règles d’accès prédéfinies, à un seul et unique cœur 10 parmi les cœurs 10 demandant à accéder au ressources communes 12 pendant cette fenêtre temporelle à accès régulé F2. L'autorisation d’accès dans une fenêtre temporelle à accès garanti F1 est invariable au cours du fonctionnement du calculateur 6. Elle ne peut pas être modifiée au cours du fonctionnement du calculateur 6. Seul le cœur 10 auquel cette fenêtre temporelle à accès garanti F1 est allouée est autorisé à accéder aux ressources communes 12 pendant cette fenêtre temporelle à accès garanti F1. L’attribution d’une fenêtre temporelle à accès régulé F2 est obtenue sur demande d’un ou plusieurs cœur(s) 10 auxquels la fenêtre temporelle à accès régulé F2 a été allouée, au cours du fonctionnement du calculateur 6. La séquence est périodique et la demande d’accès doit être réitérée à chaque occurrence de la fenêtre temporelle à accès régulé F2.Preferably, each controlled access time window F2 is allocated based on the access requests made by the cores 10 and predefined access rules, to a single and only one of the cores 10 requesting access to the common resources 12 during this time window with controlled access F2. The access authorization in a guaranteed access time window F1 is invariable during the operation of the computer 6. It can not be modified during the operation of the computer 6. Only the core 10 at which this time window with guaranteed access F1 is allocated is allowed to access common resources 12 during this guaranteed access time window F1. The allocation of a time-controlled access window F2 is obtained on request from one or more core (s) to which the controlled access time window F2 has been allocated, during the operation of the computer 6. The sequence is periodic and the access request must be reiterated at each occurrence of the time-controlled access window F2.

En option, la séquence comprend au moins une fenêtre temporelle à accès interdit F3, pendant laquelle chaque cœur 10 a un accès interdit aux ressources communes 12. Ceci permet par exemple de laisser un accès aux ressources communes 12 à un composant logiciel ou matériel extérieur non pris en charge par la politique de partage.Optionally, the sequence comprises at least one forbidden access time window F3, during which each core 10 has a forbidden access to the common resources 12. This allows, for example, to allow access to the common resources 12 to an external software or hardware component. supported by the sharing policy.

En revenant à la Figure 1, l’application des règles d’accès aux ressources communes 12 pendant les fenêtres temporelles est avantageusement réalisée de manière distribuée par les cœurs 10.Returning to FIG. 1, the application of the rules for access to common resources 12 during the time windows is advantageously performed in a manner distributed by the cores 10.

Chaque cœur 10 possède une mémoire cache privée 16, qui est utilisée exclusivement par ce cœur 10, et qui est physiquement intégrée au cœur 10.Each core 10 has a private cache memory 16, which is used exclusively by this core 10, and which is physically integrated in the core 10.

Chaque cœur 10 comprend un contrôleur d’accès 18 logiciel pour contrôler l’accès de ce cœur 10 aux ressources communes 12. Le contrôleur d’accès 18 est une couche logicielle interposée entre les applications exécutées par le cœur 10 (y compris un système d’exploitation exécuté par le cœur 10) et le cœur 10 lui-même. Le contrôleur d’accès 18 est un programme informatique qui comprend des instructions de codes propres à ce programme.Each core 10 includes a software access controller 18 to control the access of this core 10 to the common resources 12. The access controller 18 is a software layer interposed between the applications executed by the core 10 (including a system of access control). operation performed by the heart 10) and the heart 10 itself. Access controller 18 is a computer program that includes code instructions specific to that program.

Chaque cœur 10 exécute son propre contrôleur d’accès 18 localement, sans faire appel aux ressources communes 12. Le contrôleur d’accès 18 comprend des instructions de code qui sont entièrement stockées dans la mémoire cache privée 16 du cœur 10 et exécutables en utilisant uniquement la mémoire cache privée 16 de ce cœur 10.Each core 10 executes its own access controller 18 locally, without using the common resources 12. The access controller 18 includes code instructions that are fully stored in the private cache 16 of the core 10 and executable using only the private cache 16 of this heart 10.

La mémoire cache privée 16 du cœur 10 possède une capacité suffisante pour l’exécution du contrôleur d’accès 18. L’exécution du contrôleur d’accès 18 par le cœur 10 ne nécessite donc pas l’émission de transactions vers les ressources communes 12, susceptibles d’interférer avec l’activité des autres cœurs 10 dans les ressources communes 12.The private cache 16 of the core 10 has sufficient capacity for the execution of the access controller 18. The execution of the access controller 18 by the core 10 does not therefore require the issuance of transactions to the common resources 12 , likely to interfere with the activity of other hearts 10 in common resources 12.

Le contrôleur d’accès 18 de chaque cœur 10 est configuré pour intercepter des requêtes adressées au cœur 10 par les applications AP exécutées par ce cœur 10, avant l’émission de transactions correspondantes par le cœur 10 vers les ressources communes 12, et pour commander l’émission par le cœur 10 d’au moins une transaction associée à chaque requête interceptée, dans une fenêtre temporelle allouée au cœur 10.The access controller 18 of each core 10 is configured to intercept requests addressed to the core 10 by the AP applications executed by this core 10, before the corresponding transactions are sent by the core 10 to the common resources 12, and to command the transmission by the heart 10 of at least one transaction associated with each intercepted request, in a time slot allocated to the heart 10.

Le contrôleur d’accès 18 de chaque cœur 10 est configuré pour mettre en œuvre la politique de partage des ressources communes relativement au cœur 10 exécutant ce contrôleur d’accès 18. Chaque contrôleur d’accès 18 applique des règles d’accès 20 stockées par exemple dans la mémoire vive 16 du cœur 10.The access controller 18 of each core 10 is configured to implement the common resource sharing policy with respect to the core 10 executing the access controller 18. Each access controller 18 applies access rules stored by example in the RAM 16 of the heart 10.

Les contrôleurs d’accès 18 sont synchronisés sur une horloge commune 22. Ceci permet de s’assurer que chaque contrôleur d’accès 18 se situe dans la même fenêtre temporelle de la séquence à chaque instant.The access controllers 18 are synchronized to a common clock 22. This makes it possible to ensure that each access controller 18 is in the same time window of the sequence at each instant.

Pour chaque fenêtre temporelle à accès garanti F1, le contrôleur d’accès 18 de chaque cœur 10 auquel cette fenêtre temporelle à accès garanti F1est allouée, autorise l’accès de ce cœur 10 aux ressources communes 12.For each guaranteed access time window F1, the access controller 18 of each core 10 to which this guaranteed access time window F1 is allocated, authorizes the access of this core 10 to the common resources 12.

Les fenêtres temporelles à accès régulé F2 sont attribuables à un ou plusieurs cœur(s) 10, sur demande effectuée par ce(s) cœurs(s) 10. L’attribution effectuée sur demande permet d’attribuer la fenêtre temporelle à un cœur 10 seulement sur demande de ce cœur 10, si une application AP exécutée par ce cœur 10 a émis une requête nécessitant l’émission d’une transaction.The time slots with controlled access F2 are attributable to one or more heart (s) 10, on request made by this (these) heart (s) 10. The attribution made on request makes it possible to attribute the time window to a heart 10 only on request of this heart 10, if an application AP executed by this heart 10 has issued a request requiring the issuance of a transaction.

Le contrôleur d’accès 18 de chaque cœur 10 demande l’attribution de chaque fenêtre temporelle à accès régulé F2 allouée à ce cœur 10 si une application AP exécutée par ce cœur 10 a besoin d’accéder aux ressources communes 12.The access controller 18 of each core 10 requests the allocation of each regulated access time window F2 allocated to this core 10 if an application AP executed by this core 10 needs access to the common resources 12.

Pour l'attribution d’une fenêtre temporelle à accès régulé F2, chaque contrôleur d’accès 18 ayant intercepté une requête, envoie une requête d’accès visible des contrôleurs d’accès 18 des autres cœurs 10, et chaque contrôleur d’accès 18 détermine localement si la fenêtre temporelle à accès régulé F2 est attribuée au cœur 10 correspondant par application de règles d’accès 20. Si la fenêtre temporelle à accès régulé F2 est attribuée au cœur 10, le contrôleur d’accès 18 émet la transaction correspondant à la requête interceptée.For the assignment of a time-controlled access window F2, each access controller 18 having intercepted a request, sends a visible access request from the access controllers 18 of the other cores 10, and each access controller 18 determines locally whether the controlled access time window F2 is allocated to the corresponding core 10 by application of access rules 20. If the controlled access time window F2 is allocated to the heart 10, the access controller 18 transmits the transaction corresponding to the intercepted request.

Il est possible que plusieurs cœurs 10 demandent l’attribution d’une même fenêtre temporelle à accès régulé F2 qui n’est attribuable qu’à un nombre limité de cœurs 10 strictement inférieur aux nombre de cœurs 10 total du processeur 8.It is possible for several cores 10 to request the allocation of the same access controlled time window F2 which is attributable to a limited number of cores strictly less than the total number of cores of the processor 8.

Pour régler ces cas, les règles d’accès 20 comprennent par exemple un ordre de priorité associé à chaque cœur 10 pour chaque fenêtre temporelle à accès régulé F2. Si deux cœurs 10 demandent l’accès à une même fenêtre temporelle à accès régulé F2, le cœur 10 ayant l’ordre de priorité le plus élevé se verra attribuer la fenêtre temporelle à accès régulé F2 prioritairement. Même si chaque cœur 10 exécute un contrôleur d’accès 18 qui applique localement les règles d’accès 20 adaptées à ce cœur 10, les règles d’accès appliquées par les contrôleurs d’accès 18 des différents cœurs 10 sont bien entendu définies de façon cohérente.To adjust these cases, the access rules 20 include, for example, a priority order associated with each core 10 for each time slot with controlled access F2. If two cores 10 request access to the same access controlled time window F2, the heart 10 having the highest priority order will be assigned priority time window F2 access priority. Even if each core 10 executes an access controller 18 which locally applies the access rules 20 adapted to this core 10, the access rules applied by the access controllers 18 of the different cores 10 are of course defined so consistent.

Par exemple, pour une fenêtre temporelle donnée : - si l’accès aux ressources communes 12 doit être autorisé à un seul et unique cœur 10 identifié à la conception (i.e. il s’agit d’une fenêtre temporelle à accès garanti F1 allouée exclusivement à ce cœur 10), les règles d’accès définissent un accès garanti pour ce cœur 10 et un accès interdit pour tous les autres cœurs 10 ; - si l’accès aux ressources communes doit être autorisé à plusieurs cœurs seulement identifiés à la conception (i.e. il s’agit d’une fenêtre temporelle à accès garanti F1 allouée à plusieurs cœurs 10), les règles d’accès définissent par exemple un accès garanti aux cœurs 10 en question et un accès interdit pour tous les autres cœurs 10; - si l’accès aux ressources communes 12 doit être autorisé à un seul cœur parmi plusieurs cœurs pouvant en faire la demande, les règles d’accès définissent par exemple un accès sur demande pour certains cœurs 10 et un accès interdit pour tous les autres cœurs 10, les cœurs 10 ayant un accès autorisé sur demande ayant des priorités différentes ; - si l’accès aux ressources communes doit être autorisé à un cœur 10 particulier et un seul autre cœur 10 sur demande, les règles d’accès définissent par exemple que le cœur 10 particulier a un accès garanti et que tous les autres cœurs 10 ont un accès sur demande ou un accès interdit, les cœurs 10 ayant un accès sur demande ayant des priorités différentes, - si l’accès aux ressources communes doit être autorisé à au plus deux cœurs 10 les règles d’accès définissent par exemple que tous les cœurs 10 ont un accès sur demande ou un accès interdit, la même priorité n’étant pas partagée par plus de deux cœurs 10 ayant un accès sur demande ou que tous les cœurs 10 ont un accès sur demande ou un accès interdit, les cœurs 10 ayant un accès sur demande ayant des priorités différentes.For example, for a given time window: - if the access to common resources 12 must be authorized to a single core 10 identified at design (ie it is a guaranteed access time window F1 allocated exclusively to this heart 10), the access rules define a guaranteed access for this core 10 and a forbidden access for all the other cores 10; - if the access to the common resources must be authorized to several cores only identified at the design (ie it is a guaranteed access time window F1 allocated to several cores 10), the access rules define for example a guaranteed access to the cores in question and forbidden access for all other cores 10; if the access to the common resources 12 must be authorized to a single heart among several cores that can make the request, the access rules define for example an access on demand for some cores 10 and a forbidden access for all the other cores 10, the cores 10 having an authorized access on request having different priorities; if the access to the common resources must be allowed to a particular core and only one other core on demand, the access rules define for example that the particular core has a guaranteed access and that all the other cores have on-demand access or forbidden access, cores 10 having on-demand access having different priorities, - if access to common resources must be allowed to no more than two cores 10 access rules define for example that all cores 10 have on-demand access or forbidden access, the same priority not being shared by more than two cores 10 having on-demand access or that all cores 10 have on-demand access or forbidden access, the cores 10 having on demand access with different priorities.

La séquence de fenêtres temporelles et les règles d’accès peuvent être définies lors de la conception, en fonction par exemple des applications AP exécutées par les cœurs 10 et de l’architecture électronique du calculateur 6, et en particulier de son interconnexion 14 et de ses ressources communes 12.The sequence of time windows and the access rules can be defined during the design, as a function, for example, of the AP applications executed by the cores 10 and of the electronic architecture of the computer 6, and in particular of its interconnection 14 and of its common resources 12.

Une séquence peut comprendre par exemple, pour chaque ressource commune 12 ou pour les ressources communes 12 dans leur ensemble, au moins une fenêtre temporelle à accès garanti allouée exclusivement à un seul cœur, au moins une fenêtre temporelle à accès garanti allouée à plusieurs cœurs, au moins une fenêtre temporelle à accès régulé attribuable à un seul cœur à la fois et/ou au moins une fenêtre temporelle à accès régulé attribuable à plusieurs cœurs à la fois.A sequence may comprise, for example, for each common resource 12 or for the common resources 12 as a whole, at least one guaranteed access time slot allocated exclusively to a single core, at least one guaranteed access time slot allocated to several cores, at least one controlled access time slot attributable to a single core at a time and / or at least one time controlled access slot attributable to multiple cores at a time.

Dans le mode de réalisation de la Figure 3, la séquence de fenêtres temporelles comprend plusieurs phases dans lesquelles les configurations des fenêtres temporelles diffèrent.In the embodiment of Figure 3, the sequence of time windows comprises several phases in which the time window configurations differ.

Plus particulièrement, la séquence de fenêtres temporelles comprend une première phase PH1 comprenant une première série SE1 de fenêtres temporelles cyclique répétée plusieurs fois pendant la première phase PH1, et une deuxième phase PH2 comprenant une deuxième série SE2 de fenêtres temporelles cyclique répétée plusieurs fois pendant la deuxième phase PH2.More particularly, the sequence of time windows comprises a first phase PH1 comprising a first series of cyclic time windows SE1 repeated several times during the first phase PH1, and a second phase PH2 comprising a second series SE2 of cyclic time windows repeated several times during the first phase. second phase PH2.

La première série SE1 et la deuxième série SE2 diffèrent par l’ordre et le nombre de fenêtres temporelles. La première série SE1 comprend ici deux fenêtres temporelles à accès régulé F2 suivies d’une fenêtre temporelle à accès garanti F1. Les fenêtres temporelles de la première série SE1 et de la deuxième série SE2 possèdent la même durée.The first series SE1 and the second series SE2 differ in order and number of time windows. The first series SE1 here comprises two time-controlled access windows F2 followed by a guaranteed access time window F1. The time windows of the first series SE1 and the second series SE2 have the same duration.

Dans la variante de la Figure 4, les fenêtres temporelles de la première série SE1 possède une première durée égale pour toutes les fenêtres de la première série SE1, et les fenêtres temporelles de la deuxième série SE2 possèdent une deuxième durée égale pour toutes les fenêtres temporelles de la deuxième série SE2, la première durée étant différente de la deuxième durée.In the variant of FIG. 4, the time windows of the first series SE1 have a first equal duration for all the windows of the first series SE1, and the time windows of the second series SE2 have a second duration equal for all the time windows. of the second series SE2, the first duration being different from the second duration.

Dans le mode de réalisation illustré sur la Figure 5, la séquence comprend une première phase PH1 au cours de laquelle l’accès aux ressources communes 12 est détermine selon un premier jeu de règles d’accès déterminé pour une premier groupe G1 de cœurs 10 et selon un deuxième jeu de règles d’accès pour les cœurs 10 d’un deuxième groupe G2 de cœurs 10 disjoint du premier groupe G1 de cœurs, le règles d’accès du premier jeu étant indépendantes de celles du deuxième jeu, et une deuxième phase PH2 au cours de laquelle l’accès aux ressources communes 12 est déterminé pour l’ensemble des cœurs 10 selon des règles d’accès communes interdépendantes.In the embodiment illustrated in FIG. 5, the sequence comprises a first phase PH1 during which access to the common resources 12 is determined according to a first set of access rules determined for a first group G1 of cores 10 and according to a second set of access rules for the cores 10 of a second group G2 of cores 10 disjoint from the first group G1 of cores, the access rules of the first game being independent of those of the second game, and a second phase PH2 during which access to common resources 12 is determined for all cores 10 according to common interdependent access rules.

Un tel mode de réalisation est possible notamment si du fait de l’architecture électronique et/ou de la configuration des applications AP exécutée par les cœurs 10, il est possible de déterminer que les cœurs 10 du premier groupe G1 et les cœurs du deuxième groupe G2 ne tenteront pas d’accéder aux même ressources communes pendant la première phase PH1.Such an embodiment is possible especially if, because of the electronic architecture and / or the configuration of the applications AP executed by the cores 10, it is possible to determine that the cores 10 of the first group G1 and the cores of the second group G2 will not attempt to access the same common resources during the first phase PH1.

Pour chaque fenêtre temporelle à accès régulé F2, chaque cœur 10 pouvant demander un accès aux ressources communes 12 doit au préalable demander l’accès aux ressources communes 12 et déterminé si la fenêtre temporelle à accès régulé F2 lui est attribuée en fonction des éventuelles demandes des autres cœurs 10 et des règles d’accès.For each access controlled time window F2, each core 10 that can request access to the common resources 12 must first request access to the common resources 12 and determined whether the time slot with controlled access F2 is allocated to it according to the possible requests of the other cores 10 and access rules.

Comme illustré sur la Figure 6, chaque fenêtre temporelle à accès régulé F2 comprend une période de notification/réception P1 dans laquelle le contrôleur d’accès 18 de chaque cœur 10 notifie aux contrôleurs d’accès 16 de chaque autre cœur 10 s’il souhaite utiliser la fenêtre temporelle et reçoit les notifications des contrôleurs d’accès 18 des autres cœurs 10, une période de décision P2, dans laquelle le contrôleur d’accès 18 de chaque cœur 10 applique les règles d’accès pour déterminer si la fenêtre temporelle est effectivement allouée à ce cœur 10, et une période utile P3 pendant laquelle chaque cœur 10 autorisé à utiliser la fenêtre temporelle émet des transactions.As illustrated in FIG. 6, each time slot with controlled access F2 comprises a notification / reception period P1 in which the access controller 18 of each core 10 notifies the access controllers 16 of each other core 10 whether it wishes to use the time window and receive the notifications of the access controllers 18 of the other cores 10, a decision period P2, in which the access controller 18 of each core 10 applies the access rules to determine if the time window is effectively allocated to this heart 10, and a useful period P3 during which each heart 10 authorized to use the time window issues transactions.

Avantageusement, le contrôleur d’accès 18 de chaque cœur 10 auquel une fenêtre temporelle à accès garanti est allouée ne met pas en œuvre la période de notification/réception pour cette fenêtre temporelle.Advantageously, the access controller 18 of each core 10 to which a guaranteed access time slot is allocated does not implement the notification / reception period for this time window.

Dans un mode de réalisation, le contrôleur d’accès 18 de chaque cœur 10 est configuré pour contrôler les requêtes de chaque application AP exécutée par chaque cœur 10 comme suit : - le contrôleur d’accès 18 intercepte la requête et planifie la transaction (i.e. il détermine comment la transaction sera effectuée) ; - le contrôleur d’accès 18 se met en attente active de la prochaine fenêtre temporelle allouée au cœur 10, indépendamment du caractère garanti ou régulé des accès ; - lorsque la fenêtre temporelle allouée au cœur 10 est active, le contrôleur d’accès 18 effectue la transaction planifiée ; • le contrôleur d’accès 18 termine la transaction en vérifiant que la transaction s’est correctement déroulé, en option, collecte des statistiques d’usage, puis il prépare la reprise de l’exécution de l’application AP.In one embodiment, the access controller 18 of each core 10 is configured to control the requests of each AP application executed by each core 10 as follows: the access controller 18 intercepts the request and plans the transaction (ie it determines how the transaction will be performed); the access controller 18 puts itself in active waiting for the next time slot allocated to the heart 10, independently of the guaranteed or regulated character of the accesses; when the time slot allocated to the heart 10 is active, the access controller 18 performs the planned transaction; • The access controller 18 completes the transaction by verifying that the transaction has proceeded correctly, optionally, collects usage statistics, and then prepares the resumption of the execution of the application AP.

Pendant l’attente active, le contrôleur d’accès 18 en effectuant la routine suivante : - recherche de la prochaine fenêtre temporelle ; - si la prochaine fenêtre temporelle est une fenêtre temporelle à accès garanti pour ce cœur 10 sans demande nécessaire, exécution de la transaction dans cette fenêtre temporelle ; - si la prochaine fenêtre temporelle est une fenêtre temporelle à accès régulé pour ce cœur 10, et que le contrôleur d’accès 18 a été configuré pour utiliser cette fenêtre temporelle, demande de réservation de la fenêtre temporelle, - si la réservation a réussi, émission de la transaction dans la fenêtre temporelle, - sinon, retour à la recherche de la prochaine fenêtre temporelle.During the active wait, the access controller 18 by performing the following routine: - search for the next time window; if the next time window is a guaranteed access time window for this core without any necessary request, execution of the transaction in this time window; if the next time window is a time slot with controlled access for this core, and the access controller has been configured to use this time window, request for reservation of the time window, if the reservation has succeeded, issue of the transaction in the time window, - otherwise, return to search for the next time window.

Le fonctionnement des cœurs 10 a été décrit précédemment pour des fenêtres temporelles F1, F2 avec des règles d’accès identiques pour toutes les ressources communes 12. En variante, il est possible de prévoir dans chaque fenêtre temporelle des règles d'accès spécifiques pour chaque ressource commune 12, avec un fonctionnement analogue des cœurs 10 et notamment de leurs contrôleurs d’accès 18. L’accès des cœurs 10 en fonction d’une séquence comprenant des fenêtres temporelles à accès garanti allouées de manière prédéfinie à un ou plusieurs cœur(s) 10 et de fenêtre temporelles à accès régulé attribuables sur demande à un ou plusieurs cœur(s), ces cœurs 10 effectuant ces demandes seulement si nécessaire et/ou seulement durant certaines phases d’exécution, permet de préserver le déterminisme en améliorant l’accès aux ressources communes 12 pour chaque cœur 10 en fonction des besoins de ce cœur 10, aussi appelée « bande passante disponible à la demande ».The operation of the cores 10 has been described previously for time windows F1, F2 with identical access rules for all the common resources 12. As a variant, it is possible to provide in each time window specific access rules for each common resource 12, with similar operation of the cores 10 and in particular their access controllers 18. The access of the cores 10 according to a sequence comprising guaranteed access time windows allocated in a predefined manner to one or more cores ( s) 10 and time-controlled access windows assignable to one or more core (s), these cores 10 performing these requests only if necessary and / or only during certain phases of execution, can preserve the determinism by improving the access to the common resources 12 for each core 10 according to the needs of this core 10, also called "bandwidth". on demand ".

Par exemple, dans un calculateur conforme au standard ARINC 653, chaque cœur 10 exécute un système d’exploitation en charge d’ordonnancer les applications utiles exécutées par le cœur 10. Les applications utiles sont réparties dans des conteneurs appelés partitions, chaque partition embarquant un ou plusieurs processus.For example, in a calculator compliant with the ARINC 653 standard, each core 10 executes an operating system in charge of scheduling the useful applications executed by the heart 10. The useful applications are distributed in containers called partitions, each partition embedding a or several processes.

Le système d’exploitation est chargé d’ordonnancer les partitions et les processus au sein des partitions. Il doit garantir un partitionnement spatial et temporel strict entre partitions. Les partitions sont exécutées séquentiellement suivant une séquence périodique de fenêtres temporelles.The operating system is responsible for scheduling partitions and processes within partitions. It must guarantee strict spatial and temporal partitioning between partitions. The partitions are sequentially executed according to a periodic sequence of time windows.

Le système d’exploitation change régulièrement de partition et effectue successivement les opérations suivantes lors du changement de partition : - la partition sortante est terminée et son contexte est sauvegardé ; - la mémoire cache est vidée (« flushée ») du contenu appartenant à la partition sortante, - les communications inter-processus et inter-partitions sont effectuées dans des ports prévus à cet effet, par exemple dans une mémoire principale ; et - l’exécution de la partition entrante est préparée.The operating system regularly changes partitions and successively performs the following operations when the partition is changed: - the outgoing partition is completed and its context is saved; the cache memory is flushed out of the content belonging to the outgoing partition; the inter-process and inter-partition communications are carried out in ports provided for this purpose, for example in a main memory; and - the execution of the incoming partition is prepared.

Le changement de partition doit être réalisé dans un temps borné, le plus court possible. Il est donc avantageux d’offrir une garantie élevée sur la bande passante disponible à chaque cœur 10 pendant le changement de partition. Le besoin de bande passante est le plus élevé pour les phases de flush de la mémoire cache et de communication inter-partitions.The change of partition must be realized in a limited time, as short as possible. It is therefore advantageous to offer a high guarantee on the bandwidth available to each core during the partition change. The bandwidth requirement is highest for the flush phases of the cache and inter-partition communication.

La bande passante garantie des cœurs 10 est améliorée en décalant les phases de demande de bande passante fortes des cœurs 10, i.e. en décalant en particulier les phases de flush de la mémoire cache et de communication inter-partition des différents cœurs.The guaranteed bandwidth of the cores 10 is improved by shifting the high bandwidth demand phases of the cores 10, i.e. by shifting in particular the flush phases of the cache memory and inter-partition communication of the different cores.

Grâce au partage des ressources communes proposé, cette bande passante garantie peut être améliorée lors des phases de flush de cache et de communication inter-partitions, où le besoin en bande passante est élevé.With the proposed shared resource sharing, this guaranteed bandwidth can be improved during cache flush and cross-partition communication, where bandwidth requirements are high.

Par ailleurs, pour assurer le déterminisme d’un calculateur comprenant un processeur multi-cœurs, il est possible de configurer les applications logicielles AP exécutées par chaque cœur 10 selon un modèle d’exécution dans lequel que chaque application logicielles AP est décomposées en phases d’exécution, lors desquelles le cœur 10 n’effectuera pas de transaction et en phases de communication, lors desquelles le cœur 10 effectuera des transactions, et de configurer un ordonnancement global des applications logicielles AP exécutées par les différents cœurs 10 assurant qu’au plus un cœur 10 est en phase de communication à tout instant.Moreover, to ensure the determinism of a computer comprising a multi-core processor, it is possible to configure the software applications AP executed by each core 10 according to an execution model in which each software application AP is decomposed into phases of operation. execution, during which the heart 10 will not perform a transaction and in communication phases, during which the heart 10 will perform transactions, and configure a global scheduling AP software applications executed by the different cores 10 ensuring that at least a heart 10 is in communication phase at any time.

Dans un mode de réalisation possible, chaque tâche à exécuter par une application logicielle AP est découpée en trois phases: acquisition A, exécution E et restitution R.In one possible embodiment, each task to be executed by an AP software application is divided into three phases: acquisition A, execution E and restoration R.

Pendant l'acquisition A, chaque tâche rapatrie localement toutes les données nécessaires au calcul. Pendant la phase d'exécution E, chaque tâche n’est autorisée qu'à accéder à des ressources privées du cœur 10, sans émission de transaction. Pendant la restitution R, chaque tâche fournit les résultats des calculs aux autres tâches pouvant en avoir besoin. Les transactions (et donc les interférences potentielles entre les cœurs 10) sont donc restreintes aux phases d'acquisition A et de restitution R.During acquisition A, each task repatriates locally all the data necessary for the calculation. During the execution phase E, each task is authorized only to access private resources of the heart 10, without transaction issuing. During rendering R, each task provides the results of the calculations to other tasks that may need them. The transactions (and therefore the potential interferences between the cores 10) are therefore restricted to the acquisition A and reproduction R phases.

Ce découpage permet de définir des ordonnancements des tâches au niveau du processeur 8 de telle sorte qu’à un instant donné, une seule phase de communication (acquisition A ou restitution R) est en cours, conjointement avec une ou plusieurs phases d'exécution. S’il est possible d’obtenir un ordonnancement des tâches qui assure la séparation des phases de communication (acquisition A et restitution R) et d’exécution (exécution E), durant ces tâches, il est possible d’optimiser le taux d’accès aux ressources communes 12 (ou « bande passante ») tout en préservant un partie de cette bande passante pour les cœurs 10 qui exécutent une phase d’exécution.This division makes it possible to define scheduling tasks at the level of the processor 8 so that at a given moment, a single communication phase (acquisition A or reproduction R) is in progress, together with one or more execution phases. If it is possible to obtain a scheduling of tasks which ensures the separation of the communication phases (acquisition A and reproduction R) and execution (execution E), during these tasks, it is possible to optimize the rate of access to common resources 12 (or "bandwidth") while preserving a portion of this bandwidth for the cores 10 that execute an execution phase.

Comme illustré sur la Figure 8, sur laquelle chaque graphique représente le besoin en bande passante d’un cœur 10 respectif au cours du temps, les besoins en bande passante sont plus élevés dans les périodes de communication (acquisition A ou restitution R).As illustrated in Figure 8, in which each graph represents the bandwidth requirement of a respective core over time, the bandwidth requirements are higher in the communication periods (acquisition A or return R).

Il est possible de prévoir plusieurs cœurs 10, chaque cœur 10 effectuant ses phases de communication en bande passante à la demande, i.e. dans des fenêtres temporelles à accès régulés allouée à ce cœur 10, et des phases d’exécution en bande passante garantie, i.e. dans des fenêtres temporelles à accès garanti allouées à ce cœur 10.It is possible to provide a plurality of cores 10, each core 10 performing its communication phases in bandwidth on demand, ie in time slots with controlled access allocated to this core 10, and guaranteed bandwidth execution phases, ie in guaranteed access time windows allocated to this core 10.

Pendant une phase de communication d’un cœur 10, la séquence de fenêtres temporelles comprend plusieurs fenêtres temporelles incluant une ou plusieurs fenêtre(s) temporelle(s) à accès régulé allouée(s) à ce cœur 10.During a communication phase of a heart 10, the sequence of time windows comprises several time windows including one or more time-controlled access window (s) allocated to this heart 10.

Pendant une phase d’exécution d’un cœur, la séquence de fenêtres temporelles comprend plusieurs fenêtres temporelles incluant une ou plusieurs fenêtre(s) temporelle(s) à accès garanti F1 allouée à ce cœur 10.During a heart execution phase, the sequence of time windows includes several time windows including one or more guaranteed access time window (s) F1 allocated to this heart 10.

Pour optimiser la bande passante, les cœurs 10 effectuent des phases de communication qui se chevauchent partiellement dans le temps (ici des phases d’acquisition A). Ceci ne nécessite pas de reconfiguration d’un contrôleur d’accès 18 installé sur les cœurs 10.To optimize the bandwidth, cores 10 perform communication phases that partially overlap in time (here acquisition phases A). This does not require reconfiguration of an access controller 18 installed on the cores 10.

Grâce à un modèle d’exécution avec découpage des tâches, il est possible d’adapter les applications logicielles existantes pour obtenir des applications logicielles optimisées pour la mise en place d’un contrôle d’accès tel que proposé.Thanks to a task-driven execution model, it is possible to adapt existing software applications to obtain optimized software applications for setting up access control as proposed.

Le contrôle de l’accès des cœurs d’un processeur multi-cœurs à des ressources partagées au travers de fenêtres temporelles à allocation statique et de fenêtres temporelles à allocation dynamique permet d’améliorer l’accès des cœurs aux ressources communes. Cela permet de diminuer la latence d’exécution de certaines tâches. Des fenêtres temporelles non utilisées par certains cœurs peuvent être utilisées par d’autres cœurs. De plus, ce contrôle d’accès permet une plus grande souplesse d’allocation de bande passante à certains cœurs, de manière variable au cours du temps. Ce contrôle d’accès permet de faire migrer des applications vers une structuration de code informatique optimisée pour une exécution sur un processeur multi-cœurs en supportant une relaxation de la contrainte de séparation stricte entre les différentes phases (acquisition, exécution, restitution) en garantissant un trafic minimum pour les accès pouvant intervenir au cours d’une phase d’exécution.Controlling access from cores of a multi-core processor to shared resources through static allocation time windows and dynamic allocation time windows improves cores' access to common resources. This reduces the latency of performing certain tasks. Time windows not used by some cores can be used by other cores. In addition, this access control allows a greater flexibility of allocation of bandwidth to certain cores, in a variable manner over time. This access control makes it possible to migrate applications to optimized computer code structuring for execution on a multi-core processor by supporting a relaxation of the strict separation constraint between the different phases (acquisition, execution, restitution) by guaranteeing minimum traffic for access that may occur during an execution phase.

Claims (12)

REVENDICATIONS 1Calculateur comprenant un processeur multi-coeurs possédant plusieurs cœurs (10) physiquement distincts et des ressources matérielles communes (12) partagées par les cœurs (10) et accessibles aux cœurs (10) selon une séquence de fenêtres temporelles et en fonction de règles d’accès prédéfinies enregistrées dans au moins une mémoire du calculateur (6) et mises en œuvre par le calculateur (6) en cours de fonctionnement, selon lesquelles dans chaque fenêtre temporelle, chaque cœur (10) a, pour chaque ressource commune (12), un accès garanti, un accès sur demande ou un accès interdit à la ressource commune (12), la séquence incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur (10) a un accès garanti à au moins une ressource commune (12) et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs (10) ont un accès sur demande à une même ressource commune (12), l’accès à ladite même ressource commune (12) étant attribuable à un ou plusieurs cœurs (10) parmi lesdits plusieurs cœurs (10) ayant un accès sur demande, selon les règles d’accès et en fonction des demandes d’accès émises par lesdits plusieurs cœurs (10).1calculator comprising a multi-core processor having several cores (10) physically separate and common hardware resources (12) shared by the cores (10) and accessible to the cores (10) according to a sequence of time windows and according to rules d predefined accesses stored in at least one memory of the computer (6) and implemented by the computer (6) during operation, according to which in each time window, each core (10) has, for each common resource (12) , guaranteed access, on-demand access or forbidden access to the common resource (12), the sequence including at least one time window during which at least one core (10) has guaranteed access to at least one common resource (12). ) and at least one time window during which several cores (10) have on-demand access to the same common resource (12), access to said same common resource (12) and attributable to one or more cores (10) among said plurality of cores (10) having on-demand access, according to the access rules and according to the access requests issued by said plurality of cores (10). 2, - Calculateur selon la revendication 1, dans lequel la séquence comprend au moins une fenêtre temporelle (F1) pendant laquelle l’accès à une ressource commune (12) ou à chaque ressource commune (12) est réservé exclusivement à un ou plusieurs cœurs (10) ayant un accès garanti à cette ressource commune (12) ou à chaque ressource commune (12).2, - computer according to claim 1, wherein the sequence comprises at least one time window (F1) during which access to a common resource (12) or each common resource (12) is reserved exclusively for one or more cores (10) having guaranteed access to this common resource (12) or to each common resource (12). 3. - Calculateur selon la revendication 1 ou 2, dans lequel la séquence comprend au moins une fenêtre temporelle (F1) pendant laquelle l’accès à une ressource commune (12) ou à chaque ressource commune (12) est réservé exclusivement à un seul et unique cœurs (10) ayant un accès garanti à cette ressource commune (12) ou à chaque ressource commune (12).3. - Calculator according to claim 1 or 2, wherein the sequence comprises at least one time window (F1) during which access to a common resource (12) or to each common resource (12) is reserved exclusively to a single and single cores (10) having guaranteed access to that common resource (12) or each common resource (12). 4, - Calculateur selon l’une quelconque des revendications précédentes, dans lequel la séquence comprend au moins une fenêtre temporelle (F2) pendant laquelle l’accès à une ressource commune (12) ou à chaque ressource commune (12) est attribuable exclusivement à un ou plusieurs cœurs (10) parmi plusieurs cœurs (10) ayant un accès sur demande à cette ressource commune (12) ou à chaque ressource commune (12).4, - calculator according to any one of the preceding claims, wherein the sequence comprises at least one time window (F2) during which access to a common resource (12) or to each common resource (12) is attributable exclusively to one or more cores (10) among a plurality of cores (10) having on demand access to that common resource (12) or each common resource (12). 5. - Calculateur selon l’une quelconque des revendications précédentes, dans lequel la séquence comprend au moins une fenêtre temporelle (F2) pendant laquelle l’accès à une ressource commune (12) ou à chaque ressource commune (12) est attribuable exclusivement à un seul et unique cœur (10) parmi plusieurs cœurs (10) ayant accès sur demande à cette ressource commune (12) ou à chaque ressource commune (12).5. - computer according to any one of the preceding claims, wherein the sequence comprises at least one time window (F2) during which access to a common resource (12) or to each common resource (12) is attributable exclusively to a single heart (10) among a plurality of cores (10) having on demand access to that common resource (12) or each common resource (12). 6. - Calculateur selon l'une quelconque des revendications précédentes, dans lequel la séquence comprend au moins une fenêtre temporelle pendant laquelle l'accès à des premières ressources communes (12) est attribuable à au moins un cœur (10) d’un premier groupe de cœurs selon un premier jeu de règles d’accès et l’accès des deuxièmes ressources communes (12) distinctes de premières ressources communes (12) est attribuable à au moins un cœur d’un deuxième groupe de cœurs disjoint du premier groupe de cœurs selon un deuxième jeu de règles d'accès indépendantes de celles du premier jeu de règles d'accès.6. - computer according to any one of the preceding claims, wherein the sequence comprises at least one time window during which the access to first common resources (12) is attributable to at least one core (10) of a first group of cores according to a first set of access rules and the access of the second common resources (12) distinct from the first common resources (12) is attributable to at least one core of a second group of cores disjoined from the first group of cores according to a second set of access rules independent of those of the first set of access rules. 7. - Calculateur selon l’une quelconque des revendications précédentes, dans lequel la séquence comprend une première phase possédant des fenêtres temporelles ayant une même première durée et une deuxième phase possédant des fenêtres temporelles ayant une même deuxième durée différente de la première durée.7. - computer according to any one of the preceding claims, wherein the sequence comprises a first phase having time windows having the same first duration and a second phase having time windows having the same second duration different from the first duration. 8. - Calculateur selon l’une quelconque des revendications précédentes, configuré de sorte que chaque cœur exécute un contrôleur d’accès (18) appliquant les règles d’accès pour déterminer, pour chaque fenêtre temporelle, si ce cœur est à un accès garanti ou un accès sur demande à une ressource commune ou à chaque ressource commune pendant cette fenêtre temporelle.8. - computer according to any one of the preceding claims, configured so that each core executes an access controller (18) applying the access rules to determine, for each time window, if the heart is at a guaranteed access or on-demand access to a common resource or each common resource during this time window. 9. - Calculateur selon la revendication 8, dans lequel les contrôleurs d’accès (18) des différents cœurs (10) sont synchronisés à partir d’une horloge de référence commune aux cœurs.9. - Calculator according to claim 8, wherein the access controllers (18) of the different cores (10) are synchronized from a reference clock common to the cores. 10. Calculateur selon la revendication 9, dans lequel le contrôleur d’accès (18) de chaque cœur (10) est exécuté par le cœur (10) à partir d’une mémoire cache (16) du cœur intégrée physiquement au cœur, sans accéder aux ressources communes (12).The computer of claim 9, wherein the access controller (18) of each heart (10) is executed by the heart (10) from a cache memory (16) of the heart physically integrated with the heart, without access common resources (12). 11. - Calculateur selon la revendication 10, dans lequel chaque fenêtre temporelle pendant laquelle plusieurs cœurs (10) ont un accès sur demande à au moins une même ressource commune (12), comprend une période de notification pendant laquelle chaque cœur indique aux autres cœurs s'il souhaite ou non réserver la fenêtre temporelle, une période de décision pendant laquelle chaque cœur détermine s’il est autorisé à accéder aux ressources partagées pendant la fenêtre temporelle, en fonction des demandes émises par les autres cœurs, et une période d’utilisation pendant laquelle chaque cœur autorisé peut accéder aux ressources partagées.The calculator of claim 10, wherein each time window during which plural cores (10) have on-demand access to at least one common resource (12) includes a notification period during which each heart indicates to the other cores. whether or not it wishes to reserve the time window, a decision period during which each core determines whether it is authorized to access the shared resources during the time window, according to the requests made by the other cores, and a period of time. use during which each authorized heart can access the shared resources. 12. - Procédé de contrôle d’un processeur multi-cœurs possédant plusieurs cœurs (10) physiquement distincts ayant accès à des ressources matérielles communes (12) partagées par les cœurs (10) et accessibles aux cœurs (10) selon une séquence de fenêtres temporelles et en fonction de règles d’accès prédéfinies enregistrées dans au moins une mémoire du calculateur (6) et selon lesquelles, dans chaque fenêtre temporelle, chaque cœur (10) a, pour chaque ressource commune (12), un accès garanti, un accès sur demande ou un accès interdit à la ressource commune (12), la séquence incluant au moins une fenêtre temporelle pendant laquelle au moins un cœur (10) a un accès garanti à au moins une ressource commune (12), et au moins une fenêtre temporelle pendant laquelle plusieurs cœurs (10) ont un accès sur demande à une même ressource commune (12), le procédé comprenant, au cours du fonctionnement du processeur (8), l’attribution de l’accès à ladite même ressource commune (12) à un ou plusieurs cœurs (10) parmi lesdits plusieurs cœurs (10) ayant un accès sur demande, en fonction des demandes d’accès émises par lesdits plusieurs cœurs (10).12. - Method for controlling a multi-core processor having several physically distinct cores (10) having access to common hardware resources (12) shared by the cores (10) and accessible to the cores (10) in a sequence of windows time and according to predefined access rules stored in at least one memory of the computer (6) and according to which, in each time slot, each core (10) has, for each common resource (12), a guaranteed access, a on-demand access or forbidden access to the common resource (12), the sequence including at least one time window during which at least one core (10) has guaranteed access to at least one common resource (12), and at least one a time window during which a plurality of cores (10) have on-demand access to the same common resource (12), the method comprising, during the operation of the processor (8), allocating access to said same common resource (12) to one or more cores (10) among said plurality of cores (10) having on-demand access as a function of access requests from said plurality of cores (10).
FR1502613A 2015-12-16 2015-12-16 COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD Active FR3045866B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR1502613A FR3045866B1 (en) 2015-12-16 2015-12-16 COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR1502613A FR3045866B1 (en) 2015-12-16 2015-12-16 COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD
FR1502613 2015-12-16

Publications (2)

Publication Number Publication Date
FR3045866A1 true FR3045866A1 (en) 2017-06-23
FR3045866B1 FR3045866B1 (en) 2018-02-02

Family

ID=56084073

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1502613A Active FR3045866B1 (en) 2015-12-16 2015-12-16 COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD

Country Status (1)

Country Link
FR (1) FR3045866B1 (en)

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3839733A1 (en) * 2019-12-19 2021-06-23 Thales Graphic processor, platform comprising such a graphic processor and a multi-core central processor, and method for managing resource(s) of such a graphic processor

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009089490A2 (en) * 2008-01-10 2009-07-16 Qualcomm Incorporated Shared resource allocation
US20100211682A1 (en) * 2009-02-19 2010-08-19 International Business Machines Corporation Method and system for exclusive access to shared resources in a database
US20120311604A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Deterministic parallelization through atomic task computation
FR3010201A1 (en) * 2013-09-03 2015-03-06 Thales Sa COMPUTER COMPRISING A MULTICOAL PROCESSOR AND METHOD OF CONTROLLING SUCH A CALCULATOR

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2009089490A2 (en) * 2008-01-10 2009-07-16 Qualcomm Incorporated Shared resource allocation
US20100211682A1 (en) * 2009-02-19 2010-08-19 International Business Machines Corporation Method and system for exclusive access to shared resources in a database
US20120311604A1 (en) * 2011-05-31 2012-12-06 International Business Machines Corporation Deterministic parallelization through atomic task computation
FR3010201A1 (en) * 2013-09-03 2015-03-06 Thales Sa COMPUTER COMPRISING A MULTICOAL PROCESSOR AND METHOD OF CONTROLLING SUCH A CALCULATOR

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP3839733A1 (en) * 2019-12-19 2021-06-23 Thales Graphic processor, platform comprising such a graphic processor and a multi-core central processor, and method for managing resource(s) of such a graphic processor
FR3105469A1 (en) * 2019-12-19 2021-06-25 Thales GRAPHIC PROCESSOR, PLATFORM INCLUDING SUCH GRAPHIC PROCESSOR AND A MULTI-CORE CENTRAL PROCESSOR, AND RESOURCE MANAGEMENT PROCESS OF SUCH GRAPHIC PROCESSOR

Also Published As

Publication number Publication date
FR3045866B1 (en) 2018-02-02

Similar Documents

Publication Publication Date Title
FR3025908B1 (en) MECHANISM AND METHOD FOR ACCESSING DATA IN A SHARED MEMORY
EP2232368B1 (en) System comprising a plurality of processing units making it possible to execute tasks in parallel, by mixing the mode of execution of control type and the mode of execution of data flow type
FR3025907B1 (en) MECHANISM AND METHOD FOR PROVIDING COMMUNICATION BETWEEN A CLIENT AND A SERVER BY ACCESSING SHARED MEMORY MESSAGE DATA.
FR2946442A1 (en) METHOD AND APPARATUS FOR LOADING AND EXECUTING DETERMINISTIC CYCLE INSTRUCTIONS IN A MULTI-HEART AVIONICS SYSTEM HAVING A BUS WHOSE ACCESS TIME IS NOT PREDICTIBLE
EP3494475B1 (en) Method and device for distributing partitions on a multicore processor
AU2021202879A1 (en) Migration of a desktop workload
US10936403B2 (en) Symmetry management in multiprocessor systems
CA2886466C (en) Multi-core data treatment system with local and global input/output devices and graphical interface comprising such a data treatment system
EP3599552A1 (en) Electronic device and method for installing avionics software applications on a platform comprising a multicore processor, associated computer program and electronic system
FR3045866A1 (en) COMPUTER COMPRISING A MULTI-HEART PROCESSOR AND A CONTROL METHOD
FR3010201A1 (en) COMPUTER COMPRISING A MULTICOAL PROCESSOR AND METHOD OF CONTROLLING SUCH A CALCULATOR
De Munck et al. Revisiting conservative time synchronization protocols in parallel and distributed simulation
FR2971596A1 (en) DEVICE FOR ACCELERATING THE EXECUTION OF A SYSTEMS SIMULATION
FR3057081B1 (en) PROCESSOR COMPRISING A PLURALITY OF CALCULATING HEARTS
EP3660677A1 (en) Method and device for monitoring software application(s) with buffer time period preceding a section reserved for a set of shared resource(s), associated computer program and avionics system
WO2016034447A1 (en) Onboard system implementing critical avionics functions
US20230266997A1 (en) Distributed scheduling in container orchestration engines
EP3792759A1 (en) Method for accessing shared resources of a computer platform, associated computer program and computer platform
EP3695313B1 (en) Electronic device and method for implementing partitioning during the execution of software applications on a platform comprising a multi-core processor, associated computer program and electronic system
US10901901B2 (en) Deployment of processing elements in non-uniform memory access environments
WO2018122221A1 (en) Method for controlling a multi-core processor and associated computer
WO2023052730A1 (en) Method for supervising and supervisor of the control of a parallel processing operation distributed in a communication network, service provision device and program implementing same
FR3000250A1 (en) MULTI-HEART PROCESSING SYSTEM FOR INFORMATION PROCESSING
FR2956226A1 (en) METHOD, COMPUTER PROGRAM AND CONTROLLER SUPERVISION DEVICE FOR MANAGING PROCESS TIME SHARING IN A MULTI-HAND COMPUTING SYSTEM

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170623

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 5

PLFP Fee payment

Year of fee payment: 6

PLFP Fee payment

Year of fee payment: 7

PLFP Fee payment

Year of fee payment: 8

PLFP Fee payment

Year of fee payment: 9