FR3096491A1 - management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR - Google Patents
management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR Download PDFInfo
- Publication number
- FR3096491A1 FR3096491A1 FR1905396A FR1905396A FR3096491A1 FR 3096491 A1 FR3096491 A1 FR 3096491A1 FR 1905396 A FR1905396 A FR 1905396A FR 1905396 A FR1905396 A FR 1905396A FR 3096491 A1 FR3096491 A1 FR 3096491A1
- Authority
- FR
- France
- Prior art keywords
- core
- shared resource
- access
- application
- electronic component
- 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.)
- Pending
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F9/00—Arrangements for program control, e.g. control units
- G06F9/06—Arrangements 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/46—Multiprogramming arrangements
- G06F9/52—Program 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)
- Debugging And Monitoring (AREA)
Abstract
Un composant électronique inclut une architecture multicœur comportant plusieurs cœurs et une ressource partagée. Les cœurs exécutent en parallèle des applications susceptibles de tenter d’accéder de manière concurrente à la ressource partagée. Des événements indiquent des tentatives d’accès à la ressource partagée par les cœurs. Ces événements sont comptés indépendamment pour chaque cœur par fenêtres temporelles et une alarme est déclenchée lorsque le nombre de tentatives d’accès comptées pour un cœur dépasse un seuil prédéfini représentatif d’un quota d’accès à la ressource partagée attribué audit cœur ou à chaque application exécutée sur ledit cœur. Après une ou plusieurs alarmes déclenchées sur une période de durée prédéfinie, le cœur ayant entraîné la ou les alarmes est empêché temporairement d’accéder à la ressource partagée. Ainsi, la ségrégation entre applications est assurée. Figure à publier avec l’abrégé : Fig. 3AAn electronic component includes a multicore architecture comprising several cores and a shared resource. The cores are running parallel applications that may attempt to concurrently access the shared resource. Events indicate attempts to access the resource shared by cores. These events are counted independently for each core by time windows and an alarm is triggered when the number of access attempts counted for a core exceeds a predefined threshold representative of an access quota to the shared resource allocated to said core or to each core. application executed on said heart. After one or more alarms triggered over a predefined period of time, the heart that caused the alarm (s) is temporarily prevented from accessing the shared resource. Thus, segregation between applications is ensured. Figure to be published with the abstract: Fig. 3A
Description
Description Titre de l'invention : gestion d'accès à une ressource partagée PAR une pluralité de coeurS D'UN PROCESSEUR MULTIcoeur Domaine technique Description Title of the invention: management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR Technical field
[0001] La présente invention concerne la gestion d'accès à une ressource partagée par une pluralité de coeurs d'un processeur multicoeur dans un composant électronique de type SoC (« System on Chip » en terminologie anglo-saxonne).The present invention relates to the management of access to a resource shared by a plurality of cores of a multicore processor in an electronic component of the SoC type (“System on Chip” in English terminology).
La présente invention s'applique plus particulièrement dans le domaine de l'avionique, dans le cadre de calculateurs incluant au moins un tel processeur multicceur.The present invention applies more particularly in the field of avionics, in the context of computers including at least one such multicore processor.
Technique antérieure Prior technique
[0002] Les composants électroniques de type SoC (« System on Chip » en terminologie anglo-saxonne) sont des circuits intégrés qui combinent différents composants usuels des ordinateurs, tels que de la mémoire et un ou plusieurs processeurs, sur un même substrat.[0002] Electronic components of the SoC type (“System on Chip” in English terminology) are integrated circuits which combine various common computer components, such as memory and one or more processors, on the same substrate.
Alors qu'une carte mère traditionnelle héberge et interconnecte un ensemble de composants électroniques implémentant des fonctionnalités respectives, les composants électroniques de type SoC intègrent toutes ces fonctionnalités dans un seul circuit intégré.While a traditional motherboard hosts and interconnects a set of electronic components implementing respective functionalities, SoC type electronic components integrate all these functionalities in a single integrated circuit.
Les composants électroniques de type SoC sont de plus en plus utilisés, notamment dans le domaine des calculateurs en avionique, pour le gain de place et de consommation énergétique qu'ils procurent. Electronic components of the SoC type are increasingly used, in particular in the field of avionics computers, for the saving in space and energy consumption that they provide.
[0003] Certains composants électroniques de type SoC intègrent un ou plusieurs processeurs multicceur (« multicore processor » en terminologie anglo-saxonne), de manière à pouvoir paralléliser des exécutions d'applications.[0003] Certain electronic components of the SoC type integrate one or more multicore processors (“multicore processor” in English terminology), so as to be able to parallelize the execution of applications.
Plusieurs applications peuvent partager un même coeur, mais à tout instant, au maximum une application est exécutée sur chaque coeur.Several applications can share the same core, but at any time, at most one application is executed on each core.
D'autre part, plusieurs applications peuvent s'exécuter simultanément, chacune sur un coeur du composant électronique de type SoC considéré, ces applications partageant une ressource dudit composant électronique de type SoC. On the other hand, several applications can be executed simultaneously, each on a core of the electronic component of the SoC type considered, these applications sharing a resource of said electronic component of the SoC type.
[0004] La Fig. lA illustre schématiquement un agencement de composant électronique de type SoC basé sur une architecture multicceur incluant un dispositif d'interconnexion CI (« Core Interconnect » en terminologie anglo-saxonne) 110, tel qu'un bus ou un réseau, interconnectant une pluralité de coeurs CP1 101, CP2 102, CP3 103, CP4 104, ainsi qu'au moins une ressource partagée SR (« Shared Resource » en terminologie anglo-saxonne) 120.[0004] FIG. 1A schematically illustrates an arrangement of electronic component of the SoC type based on a multicore architecture including a CI ("Core Interconnect" in English terminology) interconnection device 110, such as a bus or a network, interconnecting a plurality of cores CP1 101, CP2 102, CP3 103, CP4 104, as well as at least one shared resource SR (“Shared Resource” in English terminology) 120.
Une telle ressource partagée SR est par exemple, mais non exclusivement, une mémoire vive RAM (« Random Access Memory » en terminologie anglo-saxonne) de type dynamique, plus particulièrement de type SDRAM (« Synchronous Dynamic RAM » en terminologie anglo-saxonne).Such a shared resource SR is for example, but not exclusively, a random access memory RAM (“Random Access Memory” in English terminology) of the dynamic type, more particularly of the SDRAM type (“Synchronous Dynamic RAM” in English terminology) .
Une telle ressource partagée SR est, selon un autre exemple, une interface d'entrée-sortie interfaçant un 2 périphérique partagé (tel qu'un capteur) ou une interface de communication (telle qu'une interface filaire ou sans-fil).Such a shared resource SR is, according to another example, an input-output interface interfacing a shared peripheral (such as a sensor) or a communication interface (such as a wired or wireless interface).
Plusieurs ressources partagées peuvent ainsi être interconnectées grâce au dispositif d'interconnexion Cl 110 et subir des tentatives d'accès concurrentes par les différents coeurs CP1 101, CP2 102, CP3 103, CP4 104. Several shared resources can thus be interconnected thanks to the interconnection device Cl 110 and undergo concurrent access attempts by the different cores CP1 101, CP2 102, CP3 103, CP4 104.
[0005] La technique usuelle d'exécution en parallèle d'applications dans des contextes multicoeur consiste à affecter une ou plusieurs applications à chaque coeur, et d'attribuer des tranches de temps d'exécution et un ou plusieurs espaces mémoire à chaque application ou à chaque partition d'application (lorsque l'application considérée est décomposée en plusieurs partitions).[0005] The usual technique for executing applications in parallel in multicore contexts consists of assigning one or more applications to each core, and allocating execution time slices and one or more memory spaces to each application or to each application partition (when the application considered is broken down into several partitions).
Dans le domaine de l'avionique, chaque application implémente une fonction avionique.In the field of avionics, each application implements an avionics function.
Pour plus de détails sur le partitionnement temporel et spatial de ressources de traitement (telles que les coeurs de processeur), on pourra se référer au standard ARINC 653. For more details on the temporal and spatial partitioning of processing resources (such as processor cores), reference may be made to the ARINC 653 standard.
[0006] La Fig.[0006] FIG.
1B illustre schématiquement une décomposition temporelle (temps t) d'utilisation des coeurs CP1 101, CP2 102, CP3 103, CP4 104. 1B schematically illustrates a temporal breakdown (time t) of use of cores CP1 101, CP2 102, CP3 103, CP4 104.
[0007] Sur la durée considérée sur la Fig.[0007] Over the period considered in FIG.
1B, le coeur CP1 101 est utilisé de la manière suivante : une période 181 d'exécution d'une première application, suivie d'une période d'inutilisation du coeur CP1 101, suivie d'une autre période 181 d'exécution de la première application, suivie d'une autre période d' inutilisation du coeur CP1 101, suivie enfin d'encore une autre période 181 d'exécution de la première application. 1B, the CP1 core 101 is used as follows: a period 181 of execution of a first application, followed by a period of non-use of the CP1 core 101, followed by another period 181 of execution of the first application, followed by another period of non-use of the core CP1 101, finally followed by yet another period 181 of execution of the first application.
[0008] Sur la durée considérée, le coeur CP2 102 est utilisé de la manière suivante : une période 171 d'exécution d'une seconde application, suivie d'une période 172 d'exécution d'une troisième application, suivie d'une période 173 d'exécution d'une quatrième application, suivie d'une autre période 171 d'exécution de la seconde application, suivie enfin d'une autre période 172 d'exécution de la troisième application. [0008] Over the period considered, the CP2 core 102 is used as follows: a period 171 of execution of a second application, followed by a period 172 of execution of a third application, followed by a period 173 of execution of a fourth application, followed by another period 171 of execution of the second application, finally followed by another period 172 of execution of the third application.
[0009] Sur la durée considérée, le coeur CP3 103 est utilisé de la manière suivante : une période 161 d'exécution d'une cinquième application, suivie d'une période 162 d'exécution d'une sixième application, suivie d'une autre période 161 d'exécution de la cinquième application, suivie d'une autre période 162 d'exécution de la sixième application, suivie enfin d'une autre période 161 d'exécution de la cinquième application. [0009] Over the period considered, the CP3 core 103 is used as follows: a period 161 of execution of a fifth application, followed by a period 162 of execution of a sixth application, followed by a another period 161 of execution of the fifth application, followed by another period 162 of execution of the sixth application, finally followed by another period 161 of execution of the fifth application.
[0010] Sur la durée considérée, le coeur CP4 104 est utilisé de la manière suivante : une période 151 d'exécution d'une septième application, suivie d'une période 152 d'exécution d'une huitième application, suivie d'une période d'inutilisation du coeur CP4 104, suivie d'une autre période 151 d'exécution de la septième application, suivie d'une autre période 152 d'exécution de la huitième application, suivie d'une autre période d'inutilisation du coeur CP4 104, suivie enfin d'encore une autre période 151 d'exécution de la septième application. [0010] Over the period considered, the CP4 core 104 is used as follows: a period 151 of execution of a seventh application, followed by a period 152 of execution of an eighth application, followed by a period of non-use of the CP4 core 104, followed by another period 151 of execution of the seventh application, followed by another period 152 of execution of the eighth application, followed by another period of non-use of the core CP4 104, followed finally by still another period 151 of execution of the seventh application.
[0011] 11 apparait ainsi que les ressources des coeurs sont partagées dans le temps selon des cadencements indépendants.[0011] 11 thus appears that the resources of the cores are shared over time according to independent timings.
Il résulte de cette approche que plusieurs applications 3 peuvent entrer en concurrence pour accéder à la ressource partagée SR 120.It follows from this approach that several applications 3 can enter into competition to access the shared resource SR 120.
Une ou plusieurs applications (et donc un ou plusieurs coeurs respectifs) peuvent ainsi être bloquées par une saturation de la ressource partagée SR 120 par l'application (et donc le coeur correspondant) auquel l'accès à la ressource partagée a été accordé (« eranted » en terminologie anglo-saxonne).One or more applications (and therefore one or more respective cores) can thus be blocked by a saturation of the shared resource SR 120 by the application (and therefore the corresponding core) to which access to the shared resource has been granted (“ eranted” in Anglo-Saxon terminology).
Ces conflits d'accès à la ressource partagée SR 120 entraînent des temps d'exécution des applications très variables (ralentissement des applications bloquées), ce qui pose un problème de perte de ségrégation entre les applications par déni de service DoS (« Deny of Service » en terminologie anglo-saxonne).These conflicts of access to the shared resource SR 120 result in highly variable application execution times (slowdown of blocked applications), which poses a problem of loss of segregation between applications by denial of service DoS ("Deny of Service » in Anglo-Saxon terminology).
Au moins certaines des applications exécutées par la plateforme sont considérées comme étant de « non confiance », c'est-à-dire qu'elles peuvent avoir des comportements agressifs, qu'ils soient volontaires ou pas, pour accéder à la ressource partagée SR 120, ce qui amplifie le problème de perte de ségrégation entre les applications.At least some of the applications executed by the platform are considered to be "untrusted", that is to say that they can have aggressive behaviors, whether voluntary or not, to access the shared resource SR 120, which amplifies the problem of loss of segregation between applications.
Or la ségrégation entre applications, particulièrement en cc qui concerne les calculateurs en avionique, rend possible une certification incrémentale, l'objectif industriel étant alors une réduction des coûts d'intégration lorsqu'un code source modifié d'une ou plusieurs application doit être intégré.However, the segregation between applications, particularly with regard to avionics computers, makes incremental certification possible, the industrial objective then being a reduction in integration costs when a modified source code of one or more applications must be integrated. .
A contrario, un défaut de ségrégation entre applications réduit les possibilités d'optimiser l'avionique en termes de coût, volume, poids, consommation d'énergie et fiabilité.Conversely, a lack of segregation between applications reduces the possibilities of optimizing the avionics in terms of cost, volume, weight, energy consumption and reliability.
Exposé de l'invention Disclosure of Invention
[0012] Un objet de la présente invention est de proposer un composant électronique incluant une architecture multicoeur comportant plusieurs coeurs et une ressource partagée, les coeurs étant destinés à exécuter en parallèle des applications susceptibles de tenter d'accéder de manière concurrente à la ressource partagée, le composant électronique comportant en outre : au moins un agent notificateur en charge de générer des événements relatifs à des tentatives d'accès à la ressource partagée par les coeurs ; un gestionnaire d'événements en charge de compter indépendamment pour chaque coeur lesdits événements par fenêtres temporelles, dites premières fenêtres temporelles, et de déclencher une alarme lorsque le nombre de tentatives d'accès comptées pour un coeur dépasse, pendant une dite première fenêtre temporelle, un seuil prédéfini représentatif d'un quota d'accès à la ressource partagée attribué audit coeur ou à chaque application exécutée sur ledit coeur ; et au moins un agent d'application de politique en charge, après une ou plusieurs alarmes déclenchées par le gestionnaire d'événements pendant une fenêtre temporelle, dite seconde fenêtre temporelle, d'empêcher temporairement le coeur ayant entraîné la ou les alarmes d'accéder à la ressource partagée. [0012] An object of the present invention is to provide an electronic component including a multicore architecture comprising several cores and a shared resource, the cores being intended to execute in parallel applications likely to attempt to access the shared resource concurrently. , the electronic component further comprising: at least one notifying agent in charge of generating events relating to attempts to access the resource shared by the cores; an event manager in charge of independently counting for each core said events by time windows, called first time windows, and of triggering an alarm when the number of access attempts counted for a core exceeds, during a said first time window, a predefined threshold representative of an access quota to the shared resource allocated to said core or to each application executed on said core; and at least one policy application agent in charge, after one or more alarms triggered by the event manager during a time window, called the second time window, of temporarily preventing the core that caused the alarm(s) from accessing to the shared resource.
[0013] Ainsi, chaque coeur (ou l'application exécutée sur ledit coeur) est empêché d'accéder à la ressource partagée quand le quota qui lui est attribué est dépassé.[0013] Thus, each core (or the application executed on said core) is prevented from accessing the shared resource when the quota allocated to it is exceeded.
Cela permet alors de limiter l'empiètement de l'application qui s'exécutait sur ledit coeur sur les quotas attribués aux autres coeurs.This then makes it possible to limit the encroachment of the application which was running on said core on the quotas allocated to the other cores.
La ségrégation entre applications est ainsi assurée, ce qui rend possible une certification incrémentale des applications. Segregation between applications is thus ensured, which makes incremental certification of applications possible.
[0014] Dans un mode de réalisation particulier, le composant électronique comporte un dit agent notificateur dans un contrôleur de la ressource partagée, qui envoie au gestionnaire d'événements un événement notifiant chaque tentative d'accès à la ressource partagée, l'événement indiquant au moins l'identité du coeur ayant émis la requête d'accès à la ressource partagée. In a particular embodiment, the electronic component comprises a so-called notifier agent in a controller of the shared resource, which sends to the event manager an event notifying each attempt to access the shared resource, the event indicating at least the identity of the core having issued the request for access to the shared resource.
[0015] Dans un mode de réalisation particulier, la ressource partagée est une mémoire de type dynamique, en particulier de type SDRAM. [0015] In a particular embodiment, the shared resource is a memory of the dynamic type, in particular of the SDRAM type.
[0016] Dans un mode de réalisation particulier, chaque événement notifiant d'une tentative d'accès à la ressource partagée indique en outre si l'accès concerne une page mémoire déjà ouverte, et si l'accès concerne une lecture mémoire ou une écriture mémoire. [0016] In a particular embodiment, each event notifying an attempt to access the shared resource also indicates whether the access concerns a memory page already open, and whether the access concerns a memory read or a write. memory.
[0017] Dans un mode de réalisation particulier, le quota d'accès à la ressource partagée attribué à chaque coeur, ou à chaque application exécutée sur ledit coeur, est défini pour des événements du type écriture mémoire avec ouverture de nouvelle page mémoire. [0017] In a particular embodiment, the access quota to the shared resource allocated to each core, or to each application executed on said core, is defined for events of the memory write type with opening of a new memory page.
[0018] Dans un mode de réalisation particulier, un dit agent d'application de politique est inclus chaque coeur et, lorsque ledit coeur a entraîné la ou les alarmes pendant une dite seconde fenêtre temporelle, ledit agent d'application de politique est en charge d'empêcher temporairement ledit coeur d'accéder à la ressource partagée. In a particular embodiment, a said policy enforcement agent is included in each core and, when said core has caused the alarm(s) during a said second time window, said policy enforcement agent is in charge to temporarily prevent said core from accessing the shared resource.
[0019] Dans un mode de réalisation particulier, pour empêcher temporairement ledit coeur d'accéder à la ressource partagée, ledit agent d'application de politique génère une interruption suspendant l'exécution de l'application alors en cours d'exécution sur ledit coeur. [0019] In a particular embodiment, to temporarily prevent said core from accessing the shared resource, said policy application agent generates an interrupt suspending the execution of the application then running on said core. .
[0020] Dans un mode de réalisation particulier, un dit coeur est empêché d'accéder à la ressource partagée suite à la survenue d'une ou plusieurs alarmes jusqu'à expiration de la seconde fenêtre temporelle pendant laquelle ladite ou lesdites alarmes ont été déclenchées. [0020] In a particular embodiment, a said core is prevented from accessing the shared resource following the occurrence of one or more alarms until the expiry of the second time window during which said alarm or alarms were triggered. .
[0021] Dans un mode de réalisation particulier, un dit coeur est empêché d'accéder à la ressource partagée suite à la survenue d'une ou plusieurs alarmes jusqu'à expiration d'une durée prédéfinie tant que ledit coeur ne commute pas sur une autre application, ou jusqu'à ce que ledit coeur commute sur une autre application. [0021] In a particular embodiment, a said core is prevented from accessing the shared resource following the occurrence of one or more alarms until the expiry of a predefined duration as long as said core does not switch to a another application, or until said core switches to another application.
[0022] Un autre objet de la présente invention est de proposer un aéronef comportant un composant électronique tel que susmentionné, dans l'un quelconque de ses modes de réalisation. Another object of the present invention is to provide an aircraft comprising an electronic component as mentioned above, in any one of its embodiments.
[0023] Un autre objet de la présente invention est de proposer un procédé implémenté par un composant électronique incluant une architecture multicoeur comportant plusieurs coeurs et une ressource partagée, les coeurs exécutant en parallèle des applications susceptibles de tenter d'accéder de manière concurrente à la ressource partagée, le procédé comportant les étapes suivantes : générer des événements relatifs à des tentatives d'accès à la ressource partagée par les coeurs ; compter indépendamment pour chaque coeur lesdits événements par fenêtres temporelles, dites premières fenêtres temporelles, et déclencher une alarme lorsque le nombre de tentatives d'accès comptées pour un coeur dépasse, pendant une dite première fenêtre temporelle, un seuil prédéfini représentatif d'un quota d'accès à la ressource partagée attribué audit coeur ou à chaque application exécutée sur ledit coeur ; et après une ou plusieurs alarmes déclenchées par le gestionnaire d'événements pendant une fenêtre temporelle, dite seconde fenêtre temporelle, empêcher temporairement le coeur ayant entraîné la ou les alarmes d'accéder à la ressource partagée.Another object of the present invention is to propose a method implemented by an electronic component including a multicore architecture comprising several cores and a shared resource, the cores executing in parallel applications likely to attempt to access the shared resource, the method comprising the following steps: generating events relating to attempts to access the shared resource by the cores; independently count for each core said events by time windows, called first time windows, and trigger an alarm when the number of access attempts counted for a core exceeds, during a said first time window, a predefined threshold representative of a quota of access to the shared resource allocated to said core or to each application executed on said core; and after one or more alarms triggered by the event manager during a time window, called the second time window, temporarily preventing the core that caused the alarm(s) from accessing the shared resource.
Brève description des dessins Brief description of the drawings
[0024] Les caractéristiques de l'invention mentionnées ci-dessus, ainsi que d'autres, appa- raîtront plus clairement à la lecture de la description suivante d'au moins un exemple de réalisation, ladite description étant faite en relation avec les dessins joints, parmi lesquels : [0024] The characteristics of the invention mentioned above, as well as others, will appear more clearly on reading the following description of at least one embodiment, said description being given in relation to the drawings. gaskets, including:
[0025] [fig.I A] illustre schématiquement un agencement de composant électronique de type SoC basé sur une architecture rnulticoeur, selon l'état de la technique ; [0025] [fig.I A] schematically illustrates an electronic component arrangement of the SoC type based on a multicore architecture, according to the state of the art;
[0026] [fig.113] illustre schématiquement une décomposition temporelle d'utilisation des coeurs de l'architecture multicoeur ; [0026] [fig.113] schematically illustrates a temporal breakdown of use of the cores of the multicore architecture;
[0027] [fig.2] montre une vue de dessus d'un aéronef comportant des équipements infor- matiques munis d'au moins un composant électronique de type SoC basé sur une architecture multicceur [0027] [fig.2] shows a top view of an aircraft comprising computer equipment fitted with at least one electronic component of the SoC type based on a multicore architecture
[0028] [fig.3A] illustre schématiquement un agencement logique de surveillance et de contrôle d'accès à une ressource partagée par les coeurs de l'architecture rnulticoeur ; [0028] [fig.3A] schematically illustrates a logical arrangement for monitoring and controlling access to a resource shared by the cores of the multi-core architecture;
[0029] W8.313_1 illustre schématiquement l'agencement logique de surveillance et de contrôle d'accès à une ressource partagée par les coeurs de l'architecture rnulticoeur, dans un mode de réalisation particulier ; [0029] W8.313_1 schematically illustrates the logical arrangement for monitoring and controlling access to a resource shared by the cores of the multicore architecture, in a particular embodiment;
[0030] [fig.3C] illustre schématiquement un agencement logique de surveillance et de contrôle d'accès à la ressource partagée par les coeurs de l'architecture multicoeur, dans un autre mode de réalisation particulier ; [0030] [fig.3C] schematically illustrates a logical arrangement for monitoring and controlling access to the resource shared by the cores of the multicore architecture, in another particular embodiment;
[0031] [fig.4] illustre schématiquement un agencement particulier d'un gestionnaire d'événements pour la surveillance et le contrôle d'accès à la ressource partagée par les coeurs de l'architecture multicceur ; [0031] [fig.4] schematically illustrates a particular arrangement of an event manager for monitoring and controlling access to the resource shared by the cores of the multicore architecture;
[0032] [fig.5A] illustre schématiquement un organigramme d'un algorithme de surveillance et de contrôle d'accès à la ressource partagée par les coeurs de l'architecture multicceur ; et [0032] [fig.5A] schematically illustrates a flowchart of an algorithm for monitoring and controlling access to the resource shared by the cores of the multicore architecture; And
[0033] [fig.5B] illustre schématiquement un organigramme d'un autre algorithme de sur- 6 vcillance et de contrôle d'accès à la ressource partagée par les coeurs de l'architecture multicoeur, complémentaire à l'algorithme de la Fig.[0033] [FIG. 5B] schematically illustrates a flowchart of another algorithm for monitoring and controlling access to the resource shared by the cores of the multicore architecture, complementary to the algorithm of FIG.
5A dans un mode de réalisation particulier. 5A in a particular embodiment.
[0034] EXPOSE DETAILLE DE MODES DE REALISATION [0034] DETAILED DESCRIPTION OF EMBODIMENTS
[0035] La Fig. 2 montre une vue de dessus d'un aéronef 200 comportant des équipements informatiques munis d'au moins un composant électronique 201 de type SoC basé sur une architecture multieoeur telle qu'introduite en relation avec les Figs. lA et 1B.[0035] FIG. 2 shows a top view of an aircraft 200 comprising computer equipment fitted with at least one electronic component 201 of the SoC type based on a multicore architecture as introduced in relation to FIGS. 1A and 1B.
Les coeurs CP1 101, CP2 102, CP3 103, CP4 104 de l'architecture multicoeur exécutent donc des applications qui peuvent se trouver en situation d'effectuer des tentatives d'accès concurrentes à la ressource partagée SR 120.The cores CP1 101, CP2 102, CP3 103, CP4 104 of the multicore architecture therefore execute applications which may find themselves in a situation of making concurrent access attempts to the shared resource SR 120.
L'architecture multieoeur peut comporter une quantité différente de coeurs que celle schématiquement illustrée sur la Fig.The multi-core architecture can comprise a different quantity of cores than that schematically illustrated in FIG.
1A. 1A.
[0036] Un mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, CP2 102, CP3 103, CP4 104 est détaillé par la suite.A mechanism for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, CP2 102, CP3 103, CP4 104 is detailed below.
Grâce à ce mécanisme, même si une ou plusieurs applications ont un comportement agressif vis-à-vis de l'accès à la ressource partagée SR 120, la ségrégation entre applications est assurée.Thanks to this mechanism, even if one or more applications behave aggressively with respect to access to the shared resource SR 120, segregation between applications is ensured.
Un comportement agressif est défini comme un ensemble de sollicitations d'accès à la ressource partagée SR 120 qui empêche une ou plusieurs autres applications exécutées en parallèle (sur d'autres coeurs) d'accéder à la ressource partagée SR 120 pendant des périodes temporelles de durée supérieure à un seuil prédéfini. Aggressive behavior is defined as a set of SR 120 shared resource access solicitations that prevents one or more other applications running in parallel (on other cores) from accessing the SR 120 shared resource for time periods of longer than a predefined threshold.
[0037] Dans un mode de réalisation particulier, la ressource partagée SR 120 est une mémoire de type dynamique, préférentiellement de type SDRAM.In a particular embodiment, the shared resource SR 120 is a memory of the dynamic type, preferably of the SDRAM type.
En effet, une telle ressource partagée forme typiquement le plan mémoire principal du composant électronique 201 de type SoC.Indeed, such a shared resource typically forms the main memory array of the electronic component 201 of the SoC type.
Elle constitue une ressource parmi les plus critiques du composant électronique 201 de type SoC, car le plan mémoire principal supporte aussi bien les chargements (« fetching » en terminologie anglo-saxonne) d'instructions de code exécutable, que les accès des applications vis-à-vis de leurs données applicatives.It constitutes one of the most critical resources of the electronic component 201 of the SoC type, because the main memory plane supports both the loading (“fetching” in Anglo-Saxon terminology) of executable code instructions, and the accesses of applications vis- to their application data.
Toute lenteur excessive sur les accès à la mémoire est source de perturbation potentielle du temps d'exécution d'applications concurrentes (notion de « Worst Case Execution Time », en terminologie anglo-saxonne).Any excessive slowness in memory access is a source of potential disruption of the execution time of concurrent applications (notion of “Worst Case Execution Time”, in Anglo-Saxon terminology).
Les accès au plan mémoire principal du composant électronique 201 de type SoC, et d'une manière plus générale les accès mémoire, doivent être surveillés et contrôlés de manière adéquate pour assurer la ségrégation entre applications et limiter l'impact, sur toute application, des accès mémoire sollicités par une autre application concurrente.Accesses to the main memory plane of electronic component 201 of the SoC type, and more generally memory accesses, must be adequately monitored and controlled to ensure segregation between applications and limit the impact, on any application, of memory access requested by another concurrent application.
Comme détaillé plus loin, certains accès à la ressource partagée SR 120 peuvent avoir plus d'impact que d'autres et méritent d'être plus particulièrement surveillés et contrôlés.As detailed below, certain accesses to the shared resource SR 120 may have more impact than others and deserve to be more particularly monitored and controlled.
C'est le cas des changements de page lors des écritures mémoires, notamment pour les mémoires de type dynamique (e.g.This is the case of page changes during memory writes, in particular for dynamic type memories (e.g.
SDRAM). 7 SDRAMs). 7
[0038] Les accès par chaque coeur à la ressource partagée SR 120 sont surveillés et contrôlés indépendamment des autres coeurs.The accesses by each core to the shared resource SR 120 are monitored and controlled independently of the other cores.
Comme il ne peut y avoir au maximum qu'une seule application qui est exécutée sur chacun des coeurs CP1 101, CP2 102, CP3 103, CP4 104, surveiller les tentatives d'accès à la ressource partagée SR 120 par chaque coeur revient à surveiller indépendamment chaque application exécutée au sein du composant électronique 201 de type SoC. Since there can be at most only one application which is executed on each of the cores CP1 101, CP2 102, CP3 103, CP4 104, monitoring the attempts to access the shared resource SR 120 by each core amounts to monitoring independently each application executed within the electronic component 201 of the SoC type.
[0039] La surveillance des accès à la ressource partagée SR 120 est effectuée par fenêtres temporelles (périodes d'observation) successives.The monitoring of accesses to the shared resource SR 120 is carried out by successive time windows (observation periods).
Les accès à la ressource partagée SR 120 par chacun des coeurs CP1 101, CP2 102, CP3 103, CP4 104 sont comptés pendant ces fenêtres temporelles et sont comparés avec un gabarit définissant un quota d'accès, au moins pour un ou plusieurs types d'accès prédéfinis, à la ressource partagée SR 120.The accesses to the shared resource SR 120 by each of the cores CP1 101, CP2 102, CP3 103, CP4 104 are counted during these time windows and are compared with a template defining an access quota, at least for one or more types of predefined access, to the shared resource SR 120.
Le gabarit sert à répartir la bande passante d'accès à la ressource partagée SR 120 entre les différents coeurs CP1 101, CP2 102, CP3 103, CP4 104. The template is used to distribute the access bandwidth to the shared resource SR 120 between the different cores CP1 101, CP2 102, CP3 103, CP4 104.
[0040] Comme détaillé ci-après, pour plus de souplesse dans l'interprétation des com- portements des applications vis-à-vis de la ressource partagée SR 120, la surveillance peut être effectuée de manière hiérarchique. [0040] As detailed below, for more flexibility in the interpretation of the behavior of the applications with respect to the shared resource SR 120, the monitoring can be carried out in a hierarchical manner.
[0041] La Fig.[0041] FIG.
3A illustre schématiquement un agencement logique de surveillance et de contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, CP2 102, CP3 103, CP4 104, dans un mode de réalisation particulier. 3A schematically illustrates a logical arrangement for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, CP2 102, CP3 103, CP4 104, in a particular embodiment.
[0042] Le composant électronique 201 de type SoC comporte un gestionnaire d'événements EM (« Event Manager » en terminologie anglo-saxonne) 300.The electronic component 201 of the SoC type comprises an event manager EM (“Event Manager” in English terminology) 300.
Le gestionnaire d'événements EM 300 est en charge de collecter des événements reçus en provenance d'au moins un agent notificateur NA (« Notifying Agents » en terminologie anglo-saxonne). The event manager EM 300 is in charge of collecting events received from at least one notifying agent NA (“Notifying Agents” in English terminology).
[0043] Selon un mode de réalisation particulier, chaque coeur CP1 101, CP2 102, CP3 103, CP4 104 inclut un tel agent notificateur NA qui envoie des événements au gestionnaire d'événements EM 300 en fonction des activités du coeur concerné.According to a particular embodiment, each core CP1 101, CP2 102, CP3 103, CP4 104 includes such a notifier agent NA which sends events to the event manager EM 300 according to the activities of the core concerned.
Ce sont respectivement les agents notificateurs NA1 301, NA2 302, NA3 303, NA4 304 sur la Fig.They are respectively the notifier agents NA1 301, NA2 302, NA3 303, NA4 304 in FIG.
3A.3A.
Chaque agent notificateur NA est alors apte à envoyer au gestionnaire d'événements EM 300 notamment un événement notifiant de chaque tentative d'accès à la ressource partagée SR 120 par le coeur dans lequel est inclus ledit agent notificateur NA. Each notifying agent NA is then able to send to the event manager EM 300 in particular an event notifying each attempt to access the shared resource SR 120 by the core in which said notifying agent NA is included.
[0044] Selon un autre mode de réalisation, un tel agent notificateur NA est inclus dans un contrôleur de ressource partagée SRC (« Shared Resource Controller » en terminologie anglo-saxonne) 320 en charge de contrôler la ressource partagée SR 120.According to another embodiment, such a notifying agent NA is included in a shared resource controller SRC (“Shared Resource Controller” in English terminology) 320 in charge of controlling the shared resource SR 120.
C'est l'agent notificateur NA5 305 sur la Fig.This is the NA5 notifier 305 in FIG.
3A, qui peut être le seul agent notificateur NA dont a besoin le gestionnaire d'événements EM 300 dans le cadre du mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, 8 CP2 102, CP3 103, CP4 104.3A, which may be the only notifier agent NA needed by the event manager EM 300 as part of the mechanism for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, 8 CP2 102, CP3 103, CP4 104.
L'agent notificatcur NA du contrôleur de ressource partagée SRC 320 envoie un événement notifiant chaque tentative (requête) d'accès à la ressource partagée SR 120, l'événement indiquant au moins l'identité du coeur ayant émis la requête d'accès à la ressource partagée SR 120.The notifying agent NA of the shared resource controller SRC 320 sends an event notifying each attempt (request) to access the shared resource SR 120, the event indicating at least the identity of the core having issued the access request to the shared resource SR 120.
Lorsque la ressource partagée SR 120 est une mémoire de type dynamique (e.g.When the shared resource SR 120 is a dynamic type memory (e.g.
SDRAM), chaque événement notifiant d'une tentative (requête) d'accès à la ressource partagée SR 120 indique préférentiellement en outre si l'accès concerne une page mémoire déjà ouverte, et si l'accès concerne une lecture ou une écriture.SDRAM), each event notifying of an attempt (request) to access the shared resource SR 120 preferably also indicates whether the access concerns a memory page already open, and whether the access concerns a read or a write operation.
En effet, les écritures en mémoire ont plus d'impact sur le temps d'accès mémoire que les lectures.Indeed, memory writes have more impact on memory access time than reads.
En effet, en cas de lecture mémoire, le coeur concerné doit typiquement attendre que l'acquisition des informations à partir de la mémoire soit réalisée, et par conséquent, le coeur en question est bridé en termes de lectures requises auprès dc la mémoire.Indeed, in the event of memory reading, the core concerned must typically wait for the acquisition of information from the memory to be carried out, and consequently, the core in question is restrained in terms of readings required from the memory.
Par contre, un coeur peut lancer une série d'écritures en mémoire sans être bridé temporellement comme en lecture, les instructions d'écriture étant alors typiquement empilées par le contrôleur de ressource partagée SRC 320 sans que le coeur concerné n'ait à attendre que l'exécution d'une écriture soit réalisée avant d'en ordonner une autre.On the other hand, a core can initiate a series of memory writes without being time-limited as in reading, the write instructions then being typically stacked by the shared resource controller SRC 320 without the core concerned having to wait until the execution of an entry is carried out before ordering another one.
De plus, accéder à une page mémoire qui n'est pas déjà ouverte (c'est-à-dire effectuer un changement de page mémoire) a un impact significatif sur le temps d'accès mémoire, ce qui pénalise d'autant plus les tentatives d'accès mémoire par une ou plusieurs autres applications exécutées en parallèle dans l'architecture multicoeur.Moreover, accessing a memory page which is not already open (i.e. performing a memory page change) has a significant impact on the memory access time, which penalizes all the more the memory access attempts by one or more other applications running in parallel in the multicore architecture.
Des changements de page sur écriture sont ainsi des accès mémoire parmi les plus pénalisants en termes de temps d'accès mémoire.Page changes on write are thus among the most penalizing memory accesses in terms of memory access time.
Comme décrit plus loin, il est donc souhaitable de surveiller particulièrement ces types d'accès mémoire.As described below, it is therefore desirable to monitor these types of memory access in particular.
Dans un mode de réalisation particulier, chaque événement indique préférentiellement en outre l'adresse mémoire concernée, ce qui permet de restreindre la surveillance à des zones sous cohérence mémoire. In a particular embodiment, each event preferentially also indicates the memory address concerned, which makes it possible to restrict monitoring to areas under memory consistency.
[0045] Le gestionnaire d'événements EM 300 filtre donc les événements reçus en provenance des différents agents notificateurs NA, de sorte à identifier, parmi tous les événements reçus, ceux qui concernent la surveillance et le contrôle d'accès à la ressource partagée SR 120.The event manager EM 300 therefore filters the events received from the various notifying agents NA, so as to identify, among all the events received, those relating to monitoring and access control to the shared resource SR 120.
Il se peut en effet que le gestionnaire d'événements EM 300 reçoive des événements de bien d'autres types que ceux relatifs à la surveillance et au contrôle d'accès à la ressource partagée SR 120. It is indeed possible that the EM 300 event manager receives events of many other types than those relating to monitoring and access control to the shared resource SR 120.
[0046] Le gestionnaire d'événements EM 300 effectue alors des comptages des événements qui concernent la surveillance et le contrôle d'accès à la ressource partagée SR 120.The event manager EM 300 then performs event counts which relate to monitoring and access control to the shared resource SR 120.
Les comptages sont effectués sur une base de fenêtres temporelles (périodes d'observation) successives, comme déjà mentionné.The counts are made on the basis of successive time windows (observation periods), as already mentioned.
Au passage d'une fenêtre temporelle à une fenêtre temporelle suivante, les comptages reprennent à zéro.When passing from one time window to a following time window, the counts restart at zero.
Si les comptages montrent un excès de tentatives d'accès, ou d'un certain type d'accès, à la ressource partagée SR 120 de la part d'un coeur (ou d'une application exécutée sur ledit 9 coeur) par rapport à un gabarit préétabli, le gestionnaire d'événements EM 300 génère une alarme.If the counts show an excess of attempts to access, or some type of access, to the shared resource SR 120 by a core (or an application running on said 9 core) compared to a pre-established template, the EM 300 event manager generates an alarm.
La survenue d'une ou plusieurs alarmes dans un intervalle de temps donné (qui peut être indépendant de la durée de la fenêtre temporelle susmentionnée), pour un même coeur, entraîne une sanction.The occurrence of one or more alarms in a given time interval (which may be independent of the duration of the aforementioned time window), for the same core, leads to a sanction.
La sanction consiste à empêcher temporairement l'application, qui a généré un comportement trop agressif vis-à-vis de l'accès à la ressource partagée SR 120, d'accéder à la ressource partagée SR 120. The sanction consists in temporarily preventing the application, which generated an overly aggressive behavior vis-à-vis the access to the shared resource SR 120, from accessing the shared resource SR 120.
[0047] Les gabarits (profils) sont définis, par mesure, sur des bancs d'essai (« benchmark » en terminologie anglo-saxonne) représentatifs des différents types d'applications destinées à être embarquées dans le composant électronique 201 de type SoC.The templates (profiles) are defined, by measurement, on test benches (“benchmark” in English terminology) representative of the different types of applications intended to be embedded in the electronic component 201 of the SoC type.
Ces bancs d'essai s'appuient par exemple sur des générateurs automatiques de code GAC, tels que fournis dans la suite SCADE (marque déposée) de la société Esterel Technologies (marque déposée), et/ou sur des portions de système d'exploitation embarqué et/ou de libraires standards (par exemple, la librairie « merncopy »).These test benches are based, for example, on automatic GAC code generators, as provided in the SCADE suite (registered trademark) of Esterel Technologies (registered trademark), and/or on portions of the operating system embedded and/or standard libraries (for example, the “merncopy” library).
Ces bancs d'essai permettent de définir des comportements acceptables d'accès à la ressource partagée SR 120, en fonction d'une bande passante attribuée à un coeur (et donc aux applications exécutées sur ce coeur) pour accéder à la ressource partagée SR 120.These test benches make it possible to define acceptable behaviors for accessing the shared resource SR 120, according to a bandwidth allocated to a core (and therefore to the applications executed on this core) to access the shared resource SR 120 .
Chaque gabarit définit alors un ou plusieurs seuils de comptage d'événements d'accès à la ressource partagée SR 120, au-delà desquels, sur une fenêtre temporelle (période d'observation) de durée prédéterminée, le comportement de l'application considérée est jugé trop agressif vis-à-vis de la ressource partagée SR 120, du fait d'un impact trop important sur des applications concurrentes en termes de latence d'accès à la ressource partagée SR 120.Each template then defines one or more thresholds for counting access events to the shared resource SR 120, beyond which, over a time window (observation period) of predetermined duration, the behavior of the application considered is considered too aggressive with respect to the shared resource SR 120, due to too great an impact on concurrent applications in terms of access latency to the shared resource SR 120.
Autrement dit, chaque gabarit définit un quota d'accès, par fenêtre temporelle, à la ressource partagée.In other words, each template defines an access quota, per time window, to the shared resource.
A chaque coeur est donc associé un gabarit prédéfini qui est représentatif d'un quota d'accès à la ressource partagée SR 120, par fenêtre temporelle, pour ledit coeur.Each core is therefore associated with a predefined template which is representative of an access quota to the shared resource SR 120, per time window, for said core.
Une autre approche est de définir le gabarit par application.Another approach is to define the template per application.
Ainsi, lorsqu'un coeur commute d'une application à une autre, il en informe le gestionnaire d'événements EM 300 afin de basculer du gabarit de l'application dont l'exécution cesse vers le gabarit de l'application dont l'exécution prend place.Thus, when a core switches from one application to another, it informs the event manager EM 300 of this in order to switch from the template of the application whose execution ceases to the template of the application whose execution take place.
Lorsque le coeur (ou l'application) en question dépasse ce quota, une alarme est générée par le gestionnaire d'événements EM 300.When the core (or the application) in question exceeds this quota, an alarm is generated by the EM 300 event manager.
Un seuil peut être ainsi fixé pour chaque type d'événements relatifs à la surveillance des accès à la ressource partagée SR 120 ou pour un ensemble de types d'événements relatifs à la surveillance des accès à la ressource partagée SR 120. A threshold can thus be set for each type of event relating to the monitoring of access to the shared resource SR 120 or for a set of types of events relating to the monitoring of access to the shared resource SR 120.
[0048] La durée des fenêtres temporelles (périodes d'observation) et la définition des gabarits (quotas) doivent être suffisantes pour qu'une application ne soit pas significativement impactée en performance tant qu'elle n'est pas significativement pénalisante pour les applications exécutées en parallèle, et que ces autres applications puissent bénéficier du service escompté de la ressource partagée SR 120, comme défini par les quotas qui sont respectivement attribués aux coeurs CP1 101, CP2 102, CP3 103, CP4 104. The duration of the time windows (observation periods) and the definition of the templates (quotas) must be sufficient for an application not to be significantly impacted in performance as long as it is not significantly penalizing for the applications executed in parallel, and that these other applications can benefit from the expected service of the shared resource SR 120, as defined by the quotas which are respectively allocated to the cores CP1 101, CP2 102, CP3 103, CP4 104.
[0049] Chaque alarme générée par le gestionnaire d'événements EM 300 est transmise à un agent d'application de politique PEA (« Pol icy Enforcement Agent » en terminologie anglo-saxonne), inclus préférentiellement dans le coeur qui a entraîné l'alarme en question.Each alarm generated by the event manager EM 300 is transmitted to a policy application agent PEA ("Pol icy Enforcement Agent" in English terminology), preferably included in the heart which caused the alarm in question.
Ainsi, chaque coeur CP1 101, CP2 102, CP3 103, CP4 104 inclut préférentiellement un tel agent d'application de politique PEA, de sorte à ce que la sanction soit appliquée au plus près de l'application concernée.Thus, each core CP1 101 , CP2 102 , CP3 103 , CP4 104 preferentially includes such a policy application agent PEA, so that the sanction is applied as close as possible to the application concerned.
Ce sont respectivement les agents d'application de politique PEA1 311, PEA2 312, PEA3 313, PEA4 314 sur la Fig.They are respectively the policy application agents PEA1 311, PEA2 312, PEA3 313, PEA4 314 in FIG.
3A. 3A.
[0050] Lorsqu'une alarme est reçue du gestionnaire d'événements EM 300, l'agent d'application de politique PEA en question génère préférentiellement une interruption qui préempte l'application en cours d'exécution sur le coeur concerné et qui suspend temporairement, de manière contrôlée, l'exécution de ladite application.When an alarm is received from the EM 300 event manager, the PEA policy application agent in question preferentially generates an interrupt which preempts the application running on the core concerned and which temporarily suspends , in a controlled manner, the execution of said application.
Les autres applications s'exécutant au même moment sur les autres coeurs ne sont alors pas lésées par le comportement trop agressif vis-à-vis de l'accès à la ressource partagée SR 120 de l'application qui a généré l'alarme.The other applications executing at the same time on the other cores are then not harmed by the excessively aggressive behavior with respect to access to the shared resource SR 120 of the application which generated the alarm.
Dans un mode de réalisation particulier, l'agent d'application de politique PEA en question n'applique pas de sanction à chaque alarme reçue, mais l'agent d'application de politique PEA en question applique son propre mécanisme de surveillance des accès à la ressource partagée SR 120, dont les alarmes reçues du gestionnaire d'événements EM 300 sont un type d'événements d'entrée parmi d'autres.In a particular embodiment, the PEA policy enforcement agent in question does not apply a sanction to each alarm received, but the PEA policy enforcement agent in question applies its own access monitoring mechanism to the shared resource SR 120, whose alarms received from the event handler EM 300 are one type of input event among others.
Par exemple, plutôt que d'autoriser 5 changements de page en écriture d'une mémoire de type dynamique (e.g.For example, rather than allowing 5 page changes when writing a dynamic type memory (e.g.
SDRAM) par période de 10 microsecondes avant d'appliquer une sanction, il est ainsi possible d'autoriser 3 changements de page en écriture par période de 10 ps au sein du gestionnaire d'événements EM 300 avant de générer une alarme et, au niveau de l'agent d'application de politique PEA, d'autoriser 2 alarmes en provenance du gestionnaire d'événements EM 300 par activation de partition (« partition activation » en terminologie anglo-saxonne) avant d'appliquer la sanction.SDRAM) per period of 10 microseconds before applying a sanction, it is thus possible to authorize 3 write page changes per period of 10 ps within the EM 300 event manager before generating an alarm and, at the of the PEA policy application agent, to authorize 2 alarms originating from the EM 300 event manager per partition activation (“partition activation” in English terminology) before applying the sanction.
Une application peut ainsi demander une fois 5 changements de page sans être sanctionnée, mais dépasser répétitivement 3 changements de page par fenêtre temporelle de 10 microsecondes au sein d'une activation de partition entraîne la sanction. An application can thus request 5 page changes once without being sanctioned, but repeatedly exceeding 3 page changes per 10 microsecond time window within a partition activation results in the sanction.
[0051] Dans une variante de réalisation, un agent d'application de politique PEA est inclus dans le contrôleur de ressource partagée SRC 320 au lieu qu'un tel agent d'application de politique PEA soit inclus dans chaque coeur.In a variant embodiment, a PEA policy application agent is included in the shared resource controller SRC 320 instead of such a PEA policy application agent being included in each core.
Lorsqu'une alarme est reçue du gestionnaire d'événements EM 300, l'agent d'application de politique PEA en question retarde, pendant un temps prédéterminé, tout accès à la ressource partagée SR 120 en provenance du coeur qui a généré l'alarme (par exemple, en baissant son niveau de priorité d'accès par rapport aux autres coeurs).When an alarm is received from the EM event handler 300, the PEA policy enforcement agent in question delays, for a predetermined time, any access to the shared resource SR 120 from the core which generated the alarm. (for example, by lowering its access priority level relative to the other cores).
Les autres applications s'exécutant au 11 même moment sur les autres coeurs ne sont alors pas lésées par le comportement trop agressif vis-à-vis de l'accès à la ressource partagée SR 120 de l'application qui a généré l'alarme.The other applications executing at the same time on the other cores are then not harmed by the excessively aggressive behavior with respect to access to the shared resource SR 120 of the application which generated the alarm.
Dans un mode de réalisation particulier, l'agent d'application de politique PEA en question n'applique pas de sanction à chaque alarme reçue, comme déjà présenté ci-dessus. In a particular embodiment, the PEA policy application agent in question does not apply a sanction to each alarm received, as already presented above.
[0052] Suspendre l'exécution d'une application grâce à un agent d'application de politique PEA inclus dans le coeur concerné évite que ladite application ne continue de solliciter l'accès à la ressource partagée SR 120, et est donc plus performant que d'inclure, à la place, un agent d'application de politique PEA dans le contrôleur de ressource partagée SRC 320. Suspending the execution of an application by means of a PEA policy application agent included in the core concerned prevents said application from continuing to request access to the shared resource SR 120, and is therefore more efficient than to include, instead, a PEA policy enforcement agent in the shared resource controller SRC 320.
[0053] Dans un mode de réalisation particulier, le gestionnaire d'événements EM 300 fait partie d'une unité, appelée EPU (« Event Proccss Unit » en terminologie anglo-saxonne), d'un composant électronique de type SoC dans la famille QoriQ (marque déposée) des produits de la société NXP (marque déposée).In a particular embodiment, the event manager EM 300 is part of a unit, called EPU ("Event Process Unit" in English terminology), of an electronic component of the SoC type in the family QoriQ (registered trademark) of the products of NXP (registered trademark).
Dans ce cadre, des événements « Dchug » sont formalisés, qui peuvent servir de support pour permettre de générer des événements à destination du gestionnaire d'événements EM 300 et pour permettre au gestionnaire d'événements EM 300 de générer des alarmes. In this context, “Dchug” events are formalized, which can be used as a support to make it possible to generate events intended for the EM 300 event manager and to make it possible for the EM 300 event manager to generate alarms.
[0054] Dans le mode de réalisation de la Fig.[0054] In the embodiment of FIG.
3B s'appuyant sur l'agencement de la Fig.3B based on the arrangement of FIG.
3A, chaque coeur CP1 101, CP2 102, CP3 103, CP4 104 comporte un agent d'application de politique PEA.3A, each core CP1 101, CP2 102, CP3 103, CP4 104 comprises a policy application agent PEA.
Le gestionnaire d'événements EM 300 reçoit divers événements en provenance des coeurs CP1 101, CP2 102, CP3 103, CP4 104 et du contrôleur de ressource partagée SRC 320.The EM event handler 300 receives various events from the cores CP1 101, CP2 102, CP3 103, CP4 104 and the shared resource controller SRC 320.
Lorsque les événements montrent que le coeur (et donc l'application en cours (l'exécution) a un comportement jugé trop agressif vis-à-vis de l'accès à la ressource partagée SR 120, le gestionnaire d'événements EM 300 envoie une alarme à l'agent d'application de politique PEA1 311, PEA2 312, PEA3 313, PEA4 314 inclus dans le coeur CP1 101, CP2 102, CP3 103, CP4 104 en question.When the events show that the core (and therefore the application in progress (execution) has a behavior deemed too aggressive with respect to access to the shared resource SR 120, the event manager EM 300 sends an alarm to the policy application agent PEA1 311, PEA2 312, PEA3 313, PEA4 314 included in the core CP1 101, CP2 102, CP3 103, CP4 104 in question.
L'agent d'application de politique PEA en question empêche alors temporairement l'accès à la ressource partagée SR 120 pour l'application en question.The PEA policy application agent in question then temporarily prevents access to the shared resource SR 120 for the application in question.
En variante, comme déjà discuté, l'agent d'application de politique PEA en question dispose de son propre niveau de surveillance d'accès à la ressource partagée SR 120 et n'applique pas une sanction à chaque alarme reçue. Alternatively, as already discussed, the PEA policy application agent in question has its own level of monitoring access to the shared resource SR 120 and does not apply a sanction to each alarm received.
[0055] Dans le mode de réalisation alternatif de la Fig.[0055] In the alternative embodiment of FIG.
3C, le composant électronique 201 de type SoC comporte un seul agent d'application de politique PEA 315 implémenté dans le contrôleur de ressource partagée SRC 320.3C, the electronic component 201 of the SoC type comprises a single PEA policy application agent 315 implemented in the shared resource controller SRC 320.
Le gestionnaire d'événements EM 300 reçoit divers événements en provenance des coeurs CP1 101, CP2 102, CP3 103, CP4 104 et du contrôleur de ressource partagée SRC 320.The EM event handler 300 receives various events from the cores CP1 101, CP2 102, CP3 103, CP4 104 and the shared resource controller SRC 320.
Lorsque les événements montrent qu'application a eu un comportement jugé trop agressif vis-à-vis de l'accès à la ressource partagée SR 120, le gestionnaire d'événements EM 300 envoie une alarme 12 à l'agent d'application de politique PEA 315.When the events show that the application has behaved too aggressively with respect to access to the shared resource SR 120, the event handler EM 300 sends an alarm 12 to the policy application agent AEP 315.
L'agent d'application de politique PEA 315 rejette alors temporairement toute tentative d'accès à la ressource partagée SR 120 pour le coeur en question (et donc l'application en question).The PEA policy application agent 315 then temporarily rejects any attempt to access the shared resource SR 120 for the core in question (and therefore the application in question).
En variante, comme déjà discuté, l'agent d'application dc politique PEA en question dispose de son propre niveau de surveillance d'accès à la ressource partagée SR 120 ct n'applique pas une sanction à chaque alarme reçue. Alternatively, as already discussed, the PEA policy application agent in question has its own level of monitoring access to the shared resource SR 120 and does not apply a sanction to each alarm received.
[0056] La Fig. 4 illustre schématiquement un agencement particulier du gestionnaire d'événements EM 300 pour la surveillance et le contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, CP2 102, CP3 103, CP4 104. [0056] FIG. 4 schematically illustrates a particular arrangement of the event manager EM 300 for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, CP2 102, CP3 103, CP4 104.
[0057] Le gestionnaire d'événements EM 300 comporte un sélecteur d'événements ES (« Event Selector » en terminologie anglo-saxonne) 402 en charge de recevoir en entrée les différents événements 401 qui sont adressés par les agents notificateurs NA au gestionnaire d'événements EM 300.The EM event manager 300 comprises an event selector ES ("Event Selector" in English terminology) 402 in charge of receiving as input the various events 401 which are sent by the notifying agents NA to the manager of EM 300 events.
Le sélecteur d'événements ES 402 est en outre en charge de recevoir en entrée des événements 412, 413 internes au gestionnaire d'événements EM 300, comme détaillé ci-après. The event selector ES 402 is also in charge of receiving events 412, 413 internal to the event manager EM 300 as input, as detailed below.
[0058] Le gestionnaire d'événements EM 300 comporte en outre une unité de séquencement et de combinaison S&CU (« Sequencing & Combining Unit » en terminologie anglo-saxonne) 404 en charge de filtrer les événements 403 reçus et propagés par le sélecteur d'événements ES 402.The EM event manager 300 further comprises a sequencing and combining unit S&CU ("Sequencing & Combining Unit" in English terminology) 404 in charge of filtering the events 403 received and propagated by the selector of ES 402 events.
L'unité de séquencement et de combinaison S&CU 404 compare les événements 403 avec des conditions prédéfinies, afin de détecter les événements dont les types concernent effectivement la surveillance et le contrôle d'accès à la ressource partagée SR 120.The S&CU sequencing and combining unit 404 compares the events 403 with predefined conditions, in order to detect the events whose types actually concern monitoring and access control to the shared resource SR 120.
Lorsqu'une correspondance est trouvée, l'unité de séquencement et de combinaison S&CU 404 envoie une information 405 représentative de ladite correspondance à un ensemble de compteurs C 411 du gestionnaire d'événements EM 300. When a match is found, the sequencing and combination unit S&CU 404 sends information 405 representative of said match to a set of counters C 411 of the event manager EM 300.
[0059] L'ensemble de compteurs C 411 comporte ainsi des compteurs d'événements en charge de compter les événements notifiés par l'unité de séquencement et de combinaison S&CU 404.The set of counters C 411 thus comprises event counters in charge of counting the events notified by the sequencing and combination unit S&CU 404.
Il existe typiquement un compteur par type d'événement et par coeur. There is typically one counter per type of event and per core.
[0060] Parmi l'ensemble de compteurs C 411, le gestionnaire d'événements EM 300 comporte en outre des compteurs qui ne comptent pas les événements notifiés par l'unité de séquencement et de combinaison S&CU 404, mais qui comptent des cycles de temps pour définir les fenêtres temporelles (périodes d'observation) utilisées par le gestionnaire d'événements EM 300 dans le cadre de la surveillance des accès à la ressource partagée SR 120.[0060] Among the set of counters C 411, the event manager EM 300 also includes counters which do not count the events notified by the sequencing and combination unit S&CU 404, but which count time cycles to define the time windows (observation periods) used by the EM 300 event manager when monitoring access to the SR 120 shared resource.
Lorsqu'un compteur de temps atteint une période prédéfinie (nombre de cycles de temps successifs), ledit compteur de temps envoie au sélecteur d'événements ES 402 un événement de fin de période 412 et se remet à zéro.When a time counter reaches a predefined period (number of successive time cycles), said time counter sends to the event selector ES 402 an end of period event 412 and resets to zero.
Cet événement de fin de période 412 est transmis par le sélecteur d'événements ES 402 13 à l'unité de séquencement et de combinaison S&CU 404, qui le relaie sous forme d'un événement périodique 406 à une unité d'action AU (« Action Unit » en terminologie anglo-saxonne) 408 du gestionnaire d'événements EM 300.This end of period event 412 is transmitted by the ES event selector 402 13 to the S&CU sequencing and combining unit 404, which relays it as a periodic event 406 to an action unit AU (" Action Unit” in English terminology) 408 of the EM 300 event manager.
L'unité d'action AU 408 envoie alors une instruction de remise à zéro de chaque compteur d'événements qui est affilié à l'événement de fin de période 412 en question. AU action unit 408 then sends a reset instruction to each event counter that is affiliated with the period end event 412 in question.
[0061] Lorsqu'un compteur d'événements dépasse un seuil prédéfini, une alarme est dé- clenchée pour notifier d'une détection de comportement trop agressif d'une application vis-à-vis de l'accès à la ressource partagée SR 120.[0061] When an event counter exceeds a predefined threshold, an alarm is triggered to notify of the detection of too aggressive behavior of an application with respect to access to the shared resource SR 120 .
Pour cc faire, ledit compteur d'événements transmet au sélecteur d'événements ES 402 un événement correspondant 413, qui inclut une identification du coeur CP1 101, CP2 102, CP3 103, CP4 104 auquel ledit compteur est associé.To do this, said event counter transmits to the ES event selector 402 a corresponding event 413, which includes an identification of the core CP1 101, CP2 102, CP3 103, CP4 104 with which said counter is associated.
Cet événement de dépassement de seuil 413 est transmis par le sélecteur d'événements ES 402 à l'unité de séquencement et de combinaison S&CU 404, qui le relaie sous forme d'un événement d'alarme 407 à l'unité d'action AU 408.This threshold crossing event 413 is transmitted by the ES event selector 402 to the S&CU sequencing and combining unit 404, which relays it in the form of an alarm event 407 to the action unit AU 408.
L'unité d'action AU 408 génère une alarme correspondante 409, que l'unité d'action AU 408 transmet à l'agent d'application de politique PEA concerné. AU action unit 408 generates a corresponding alarm 409, which AU action unit 408 forwards to the relevant PEA policy enforcement agent.
[0062] La Fig.[0062] FIG.
5A illustre schématiquement un organigramme d'un algorithme de sur- veillance et de contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, CP2 102, CP3 103, CP4 104.5A schematically illustrates a flowchart of an algorithm for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, CP2 102, CP3 103, CP4 104.
L'algorithme de la Fig.The algorithm of FIG.
5A est implémenté par le gestionnaire d'événements EM 300, indépendamment pour chaque coeur CP1 101, CP2 102, CP3 103, CP4 104. 5A is implemented by the EM 300 event manager, independently for each core CP1 101, CP2 102, CP3 103, CP4 104.
[0063] Dans une étape 501, le gestionnaire d'événements EM 300 détecte un début de période d'observation (fenêtre temporelle).In a step 501, the event manager EM 300 detects a start of the observation period (time window).
Dans le contexte de la Fig. 4, ce début de période d'observation correspond à la mise à zéro des compteurs de temps.In the context of Fig. 4, this start of the observation period corresponds to the resetting of the time counters.
Par exemple, la durée de la période d'observation (fenêtre temporelle) est de 10 microsecondes.For example, the duration of the observation period (time window) is 10 microseconds.
La durée des périodes d'observation (fenêtres temporelles) successives est choisie en fonction des caractéristiques temps-réel des applications concurrentes pour lesquelles la ségrégation est recherchée.The duration of the successive observation periods (time windows) is chosen according to the real-time characteristics of the competing applications for which segregation is sought.
A titre d'exemple, si toutes les applications ont des temps de réponse proche de 1 seconde, alors la durée de la fenêtre peut être allongée, par exemple à 50 rnillisecondes.By way of example, if all the applications have response times close to 1 second, then the duration of the window can be extended, for example to 50 milliseconds.
A l'opposé, si certaines de ces applications ont des temps de réponse très courts, par exemple de l'ordre de 1 milliseconde, alors la durée des périodes d'observation (fenêtres temporelles) successives est raccourcie, par exemple à 10 microsecondes.Conversely, if some of these applications have very short response times, for example of the order of 1 millisecond, then the duration of the successive observation periods (time windows) is shortened, for example to 10 microseconds.
A noter que la durée des périodes d'observation (fenêtres temporelles) peut différer d'un coeur à l'autre.It should be noted that the duration of the observation periods (time windows) may differ from one core to another.
Les fenêtres temporelles (périodes d'observation) pour les différents coeurs peuvent être synchrones ou déphasées.The time windows (observation periods) for the different cores can be synchronous or out of phase.
La solution déphasée peut induire une meilleure utilisation des ressources du composant électronique 201 de type SoC. The phase-shifted solution can induce a better use of the resources of the electronic component 201 of the SoC type.
[0064] Dans une étape 502, le gestionnaire d'événements EM 300 compte des événements, de types prédéfinis qui sont relatifs à la surveillance et au contrôle d'accès à la 14 ressource partagée SR 120, survenant pendant la période d'observation.[0064] In a step 502, the event manager EM 300 counts events, of predefined types which relate to monitoring and access control to the shared resource SR 120, occurring during the observation period.
Dans le contexte de la Fig. 4, à la survenue d'un nouvel événement pertinent pour la surveillance d'accès à la ressource partagée SR 120, le gestionnaire d'événements EM 300 incrémente au moins un compteur correspondant parmi l'ensemble de compteurs C 411.In the context of Fig. 4, on the occurrence of a new event relevant to the monitoring of access to the shared resource SR 120, the event manager EM 300 increments at least one corresponding counter among the set of counters C 411.
Comme déjà mentionné, lorsque la ressource partagée SR 120 est une mémoire notamment de type dynamique (e.g.As already mentioned, when the shared resource SR 120 is a memory, in particular of the dynamic type (e.g.
SDRAM), le gestionnaire d'événements EM 300 compte les changements de page mémoire en écriture mémoire.SDRAM), the EM 300 event handler counts memory page changes as memory writes.
En effet, les applications produisant beaucoup de lectures mémoire se ralentissent d'elles-mêmes et sont donc peu pénalisantes pour les applications concurrentes.Indeed, applications producing a lot of memory reads slow down on their own and are therefore not very penalizing for competing applications.
D'autres critères de surveillance d'accès à la ressource partagée SR 120 peuvent être utilisés, et déclencher également une alarme sur dépassement d'un quota prédéfini (seuil correspondant), comme par exemple la surveillance d'un nombre total d'accès à la ressource partagée SR 120 requis par le coeur (ou l'application) en question pendant la période d'observation, éventuellement filtrés par adresse mémoire, afin de restreindre la surveillance à des zones sous cohérence mémoire. Other criteria for monitoring access to the shared resource SR 120 can be used, and also trigger an alarm on exceeding a predefined quota (corresponding threshold), such as for example the monitoring of a total number of accesses to the shared resource SR 120 required by the core (or the application) in question during the observation period, possibly filtered by memory address, in order to restrict the monitoring to areas under memory coherence.
[0065] Dans une étape 503, le gestionnaire d'événements EM 300 compare le comptage desdits événements sur la période d'observation par rapport à des seuils respectifs prédéfinis en fonction du quota d'accès à la ressource partagée SR 120 défini par le gabarit associé au coeur considéré ou à l'application considérée. In a step 503, the event manager EM 300 compares the counting of said events over the observation period with respect to respective predefined thresholds according to the access quota to the shared resource SR 120 defined by the template associated with the core under consideration or with the application under consideration.
[0066] Dans une étape 504, le gestionnaire d'événements EM 300 vérifie si, pour chaque type d'événement compté, le seuil prédéfini correspondant, dans le gabarit applicable à la période d'observation en cours, est dépassé ou pas.In a step 504, the event manager EM 300 verifies whether, for each type of event counted, the corresponding predefined threshold, in the template applicable to the current observation period, is exceeded or not.
Si le seuil prédéfini est dépassé pour au moins un type d'événement, une étape 507 est effectuée ; sinon, une étape 505 est effectuée. If the predefined threshold is exceeded for at least one type of event, a step 507 is performed; otherwise, a step 505 is performed.
[0067] Dans l'étape 505, le gestionnaire d'événements EM 300 vérifie si la période d'observation a pris fin ou pas.[0067] In step 505, the event manager EM 300 verifies whether the observation period has ended or not.
Si la période d'observation a pris fin, une étape 506 est effectuée ; sinon, l'étape 502 est répétée pour continuer de compter les éventuels événements prédéfinis qui sont relatifs à la surveillance et au contrôle d'accès à la ressource partagée SR 120 et qui surviennent pendant la période d'observation. If the observation period has ended, a step 506 is carried out; otherwise, step 502 is repeated to continue counting any predefined events which relate to monitoring and access control to the shared resource SR 120 and which occur during the observation period.
[0068] Dans l'étape 506, le gestionnaire d'événements EM 300 effectue une remise à zéro du comptage.In step 506, the event manager EM 300 resets the count to zero.
Dans le contexte de la Fig. 4, cela correspond à la remise à zéro des compteurs d'événements suite à la réception par l'unité d'action AU 408 d'un événement périodique marquant la fin d'une fenêtre temporelle (période d'observation) correspondante.In the context of Fig. 4, this corresponds to the resetting of the event counters following the reception by the AU action unit 408 of a periodic event marking the end of a corresponding time window (observation period).
Ainsi, tant que le coeur considéré, ou l'application considérée, ne dépasse pas son quota d'accès à la ressource partagée SR 120, le coeur en question ne subit pas de sanction et le mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 est transparent pour ledit coeur.Thus, as long as the core in question, or the application in question, does not exceed its access quota to the shared resource SR 120, the core in question does not undergo any sanction and the mechanism for monitoring and controlling access to the shared SR resource 120 is transparent to said core.
Ensuite, l'étape 501 est répétée, avec une nouvelle période d'observation. Then, step 501 is repeated, with a new observation period.
[0069] Dans l'étape 507, le gestionnaire d'événements EM 300 envoie une alarme à l'agent d'application de politique PEA concerné.[0069] In step 507, the EM event manager 300 sends an alarm to the PEA policy application agent concerned.
Dans le contexte de la Fig.In the context of Fig.
3B, l'agent d'application de politique PEA est celui du coeur sur lequel est exécutée l'application qui a déclenché l'alarme (i.c., le coeur pour lequel l'algorithme de la Fig.3B, the PEA policy application agent is that of the core on which the application which triggered the alarm is executed (i.c., the core for which the algorithm of FIG.
5A est exécuté).5A is executed).
Dans le contexte de la Fig.In the context of Fig.
3B, l'agent d'application de politique PEA est celui du contrôleur de ressource partagée SRC 320 et l'alarme envoyée indique à quel coeur s'applique ladite alarme.3B, the policy application agent PEA is that of the shared resource controller SRC 320 and the alarm sent indicates to which core said alarm applies.
Ensuite, l'étape 506 est effectuée, dans laquelle le comptage est remis à zéro et suspendu jusqu'à cc qu'une nouvelle période d'observation débute. Next, step 506 is performed, in which the count is reset and suspended until a new observation period begins.
[0070] Comme déjà indiqué, l'agent d'application de politique PEA en question peut appliquer une sanction à l'application qui a déclenché l'alarme après réception d'une ou plusieurs alarmes dans un laps de temps prédéfini.As already indicated, the PEA policy enforcement agent in question can apply a sanction to the application that triggered the alarm after receiving one or more alarms within a predefined period of time.
Lorsque l'agent d'application de politique PEA en question applique une sanction sur réception de chaque alarme reçue du gestionnaire d'événements EM 300 et que les agents d'application de politique PEA sont inclus dans les coeurs, l'agent d'application de politique PEA concerné génère préférentiellement une interruption qui entraîne la suspension de l'exécution de l'application concernée.When the PEA policy enforcement agent in question applies a sanction on receipt of each alarm received from the EM 300 event handler and the PEA policy enforcement agents are included in the cores, the PEA policy concerned preferentially generates an interrupt which leads to the suspension of the execution of the application concerned.
L'application en question subit ainsi une interruption peu après avoir dépassé le quota d'accès qui lui est attribué, le décalage temporel venant notamment d'une latence introduite par les traitements relatifs du gestionnaire d'événements EM 300 et par une insertion d'une instruction d'interruption dans un pipeline d'instructions du coeur concerné).The application in question thus undergoes an interruption shortly after having exceeded the access quota allocated to it, the time lag coming in particular from a latency introduced by the relative processing of the EM 300 event manager and by an insertion of an interrupt instruction in an instruction pipeline of the core concerned).
On peut noter que, dans des cas de commutation de contexte (« context switching » en terminologie anglo-saxonne) en fin de partition, l'interruption n'est pas prise en compte.It may be noted that, in cases of context switching (“context switching” in English terminology) at the end of the partition, the interruption is not taken into account.
Cela laisse possible l'exécution d'une autre application par le même coeur malgré la sanction.This leaves possible the execution of another application by the same core despite the sanction.
Cette autre application ne subit alors pas la sanction à la place de l'application à laquelle la sanction est supposée s'appliquer. This other application then does not suffer the penalty instead of the application to which the penalty is supposed to apply.
[0071] La sanction consiste à empêcher temporairement le coeur concerné d'accéder à la ressource partagée SR 120.The sanction consists in temporarily preventing the core concerned from accessing the shared resource SR 120.
La sanction peut être levée à l'issue de la période d'observation en cours.The sanction can be lifted at the end of the current observation period.
En variante, la sanction peut être appliquée pendant une durée prédéfinie, tant que le coeur concerné ne commute pas sur une autre application, ou la sanction peut être appliquée jusqu'à ce que le coeur commute sur une autre application. As a variant, the sanction can be applied for a predefined duration, as long as the core concerned does not switch to another application, or the sanction can be applied until the core switches to another application.
[0072] Préférentiellement, l'application de la sanction est transparente pour les autres coeurs.[0072] Preferably, the application of the penalty is transparent to the other cores.
Par exemple, les coeurs ne partagent pas de canaux d'un contrôleur d'interruption et/ou les instructions du code d'interruption relatif à la sanction n'accèdent pas à des ressources critiques ou à temps de réaction élevé. For example, the cores do not share interrupt controller channels and/or the penalty-related interrupt code instructions do not access critical or high-reaction time resources.
[0073] La Fig.[0073] FIG.
5B illustre schématiquement un organigramme d'un algorithme de sur- veillance et de contrôle d'accès à la ressource partagée SR 120 par les coeurs CP1 101, CP2 102, CP3 103, CP4 104.5B schematically illustrates a flowchart of an algorithm for monitoring and controlling access to the shared resource SR 120 by the cores CP1 101, CP2 102, CP3 103, CP4 104.
L'algorithme de la Fig.The algorithm of FIG.
5B est implémenté par chaque 16 agent d'application de politique PEA, lorsque plusieurs alarmes doivent être reçues avant de pénaliser l'application concernée. 5B is implemented by each PEA policy enforcement agent, when several alarms must be received before penalizing the concerned application.
[0074] Dans une étape 551, l'agent d'application de politique PEA détecte un début de période d'observation (fenêtre temporelle).In a step 551, the PEA policy application agent detects a start of the observation period (time window).
Cette période d'observation peut être différente et indépendante de la période d'observation (fenêtre temporelle) utilisée dans l'algorithme de la Fig.This observation period can be different and independent of the observation period (time window) used in the algorithm of FIG.
5A par le gestionnaire d'événements EM 300.5A by the EM 300 event manager.
Par exemple, la période d'observation utilisée par l'agent d'application de politique PEA dure le temps d'une activation de partition.For example, the observation period used by the PEA policy enforcement agent lasts for the duration of a partition activation.
A noter que la durée des périodes d'observation (fenêtres temporelles) peut différer d'un agent d'application de politique PEA à l'autre.Note that the duration of the observation periods (time windows) may differ from one PEA policy enforcement agent to another.
Ainsi, il est possible d'adapter la durée de la période d'observation à chaque partition lors des commutations de contexte.Thus, it is possible to adapt the duration of the observation period to each partition during context switching.
La période d'observation de la Fig.The observation period of FIG.
5B peut donc aussi être identique à celle de la Fig.5B can therefore also be identical to that of FIG.
5A, ce qui est aisément réalisable en propageant les événements périodiques 406, par l'unité d'action AU 408, à chaque agent d'application de politique PEA. 5A, which is easily accomplished by propagating the periodic events 406, by the AU action unit 408, to each PEA policy enforcement agent.
[0075] Dans une étape 552, l'agent d'application de politique PEA compte des événements prédéfinis qui sont relatifs à la surveillance et au contrôle d'accès à la ressource partagée SR 120, survenant pendant la période d'observation.[0075] In a step 552, the policy application agent PEA counts predefined events which relate to monitoring and access control to the shared resource SR 120, occurring during the observation period.
Les alarmes notifiées par le gestionnaire d'événements EM 300 est un type d'événements, du point de vue de l'agent d'application de politique PEA.Alarms notified by the EM 300 event handler is one type of event, from the point of view of the PEA policy enforcement agent.
L'agent d'application de politique PEA dispose donc de ses propres compteurs, à la manière du gestionnaire d'événements EM 300.The PEA policy application agent therefore has its own counters, like the EM 300 event manager.
Comme déjà expliqué, cela permet de ne pas appliquer de sanction lorsqu'une alarme est déclenchée de manière marginale. As already explained, this makes it possible not to apply a sanction when an alarm is triggered marginally.
[0076] Dans une étape 553, l'agent d'application de politique PEA compare le comptage desdits événements sur la période d'observation par rapport à des seuils respectifs prédéfinis en fonction du quota d'accès à' la ressource partagée SR 120 défini par le gabarit associé au coeur considéré ou à l'application considérée. In a step 553, the policy application agent PEA compares the count of said events over the observation period with respect to respective predefined thresholds according to the access quota to the shared resource SR 120 defined by the template associated with the core considered or with the application considered.
[0077] Dans une étape 554, l'agent d'application de politique PEA vérifie si, pour chaque type d'événement relatif à la surveillance et au contrôle d'accès à la ressource partagée SR 120, le seuil prédéfini correspondant est dépassé ou pas.In a step 554, the policy application agent PEA verifies whether, for each type of event relating to monitoring and access control to the shared resource SR 120, the corresponding predefined threshold is exceeded or not.
Si le seuil prédéfini est dépassé pour au moins un type d'événement, une étape 557 est effectuée ; sinon, une étape 555 est effectuée. If the predefined threshold is exceeded for at least one type of event, a step 557 is performed; otherwise, a step 555 is performed.
[0078] Dans l'étape 555, l'agent d'application de politique PEA vérifie si la période d'observation a pris fin ou pas.[0078] In step 555, the PEA policy application agent verifies whether the observation period has ended or not.
Si la période d'observation a pris fin, une étape 556 est effectuée ; sinon, l'étape 552 est répétée pour continuer de compter les éventuels événements prédéfinis qui sont relatifs à la surveillance et au contrôle d'accès à la ressource partagée SR 120 et qui surviennent pendant la période d'observation. If the observation period has ended, a step 556 is performed; otherwise, step 552 is repeated to continue counting any predefined events that relate to monitoring and access control to the shared resource SR 120 and that occur during the observation period.
[0079] Dans l'étape 556, l'agent d'application de politique PEA effectue une remise à zéro du comptage.In step 556, the PEA policy application agent resets the count to zero.
Ensuite, l'étape 551 est répétée, avec une nouvelle période 17 d'observation. Next, step 551 is repeated, with a new observation period.
[0080] Dans l'étape 557, l'agent d'application de politique PEA empêche temporairement le coeur concerne d'accéder à la ressource partagée SR 120.[0080] In step 557, the policy enforcement agent PEA temporarily prevents the core concerned from accessing the shared resource SR 120.
Lorsque l'agent d'application de politique PEA est inclus dans un des coeurs, ledit agent d'application de politique PEA génère préférentiellement une interruption qui entraîne la suspension de l'exécution de l'application en cours sur ledit coeur.When the policy application agent PEA is included in one of the cores, said policy application agent PEA preferably generates an interrupt which results in the suspension of the execution of the application in progress on said core.
Lorsque l'agent d'application de politique PEA est inclus dans le contrôleur de ressource partagée SRC 320, ledit agent d'application de politique PEA rejette temporairement toute tentative d'accès à la ressource partagée SRC 320 venant du coeur concerné.When the policy application agent PEA is included in the shared resource controller SRC 320, said policy application agent PEA temporarily rejects any attempt to access the shared resource SRC 320 coming from the core concerned.
Ensuite, l'étape 556 est effectuée, dans laquelle le comptage est remis à zéro et suspendu jusqu'à ce qu'une nouvelle période d'observation débute. Next, step 556 is performed, in which the count is reset and suspended until a new observation period begins.
[0081] La sanction consiste à empêcher temporairement le coeur concerné d'accéder à la ressource partagée SR 120.The sanction consists in temporarily preventing the core concerned from accessing the shared resource SR 120.
La sanction peut être levée à l'issue de la période d'observation (fenêtre temporelle) en cours.The sanction may be lifted at the end of the current observation period (time window).
En variante, la sanction peut être appliquée pendant une durée prédéfinic, tant que le coeur concerné ne commute pas sur une autre application, ou la sanction peut être appliquée jusqu'à ce que le coeur commute sur une autre application.As a variant, the sanction can be applied for a predefined duration, as long as the core concerned does not switch to another application, or the sanction can be applied until the core switches to another application.
L'application sanctionnée peut ainsi attendre d'autant plus longtemps qu'elle a consommé le quota rapidement. The penalized application can thus wait all the longer as it has consumed the quota quickly.
[0082] A noter que le mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 décrit ci-dessus peut être couplé à un ou plusieurs autres mécanismes de régulation dans le composant électronique 201 de type SoC.Note that the mechanism for monitoring and controlling access to the shared resource SR 120 described above can be coupled to one or more other regulation mechanisms in the electronic component 201 of the SoC type.
Par exemple, les composants électroniques référencés TIOxx dans la famille QorIQ (marque déposée) des produits de la société NXP (marque déposée) permettent de définir une limite au nombre de requêtes qu'un coeur peut s'octroyer à un instant.For example, the electronic components referenced TIOxx in the QorIQ (registered trademark) family of products from the company NXP (registered trademark) make it possible to define a limit to the number of requests that a heart can grant itself at a time.
Il est alors possible de définir un compromis entre seuils de comptage et durée des périodes d'observation.It is then possible to define a compromise between counting thresholds and duration of the observation periods.
Le mécanisme de régulation est particulièrement adapté à réguler les lectures mémoire.The regulating mechanism is particularly suitable for regulating memory reads.
Par conséquent, les accès à la ressource partagée SR 120 qui sont de type lecture mémoire sont avantageusement surveillés grâce à ce mécanisme de régulation et les accès à la ressource partagée SR 120 qui sont de type écriture mémoire sont avantageusement surveillés par le mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 décrit ci-dessus.Consequently, the accesses to the shared resource SR 120 which are of the memory read type are advantageously monitored thanks to this regulation mechanism and the accesses to the shared resource SR 120 which are of the memory write type are advantageously monitored by the monitoring mechanism and access control to the shared resource SR 120 described above.
Il est ainsi possible de diminuer la latence de la sanction pour les accès à la ressource partagée SR 120 qui sont de type écriture mémoire, sans pénaliser les accès à la ressource partagée SR 120 qui sont de type lecture mémoire. It is thus possible to reduce the latency of the sanction for the accesses to the shared resource SR 120 which are of the memory write type, without penalizing the accesses to the shared resource SR 120 which are of the memory read type.
[0083] A noter que le mécanisme de surveillance et de contrôle d'accès à la ressource partagée SR 120 peut aussi reconnaitre des événements indicateurs de réduction de gêne, comme par exemple un ensemble d'opérations de lecture mémoire, et sur seuil prédéfini, avant écoulement de la fenêtre temporelle (période d'observation) 18 considérée, commander une remise à zéro du comptage associé au coeur concerné.It should be noted that the mechanism for monitoring and controlling access to the shared resource SR 120 can also recognize events indicating a reduction in discomfort, such as for example a set of memory read operations, and on a predefined threshold, before the expiry of the time window (observation period) 18 considered, order a reset of the count associated with the heart concerned.
Il est ainsi possible d'abaisser un budget d'écriture avec changement de page, ou d'allonger la durée de fenêtre temporelle (période d'observation) applicable sans pénaliser les applications ayant un profil connu non agressif, tout en continuant à pénaliser des applications qui ont un taux de sollicitation atypique de la ressource partagée SR 120. It is thus possible to lower a write budget with page change, or to lengthen the duration of the time window (observation period) applicable without penalizing the applications having a known non-aggressive profile, while continuing to penalize applications that have an atypical request rate of the shared resource SR 120.
[0084] A noter aussi que, lorsque chaque coeur inclut un agent d'application de politique PEA, le déclenchement des sanctions (par exemple sous interruption) peut entraîner une collecte par l'agent d'application de politique PEA concerné de statistiques aidant à la calibration des quotas : temps total passé en sanction ; plus rapide exhaustion du quota ; identification de code applicatif sanctionné...It should also be noted that, when each core includes a PEA policy application agent, the triggering of the sanctions (for example under interruption) can lead to the collection by the PEA policy application agent concerned of statistics helping to the calibration of quotas: total time spent in sanction; faster exhaustion of the quota; identification of sanctioned application code...
19 [Revendication 1] [Revendication 2] [Revendication 3] [Revendication 4]19 [Claim 1] [Claim 2] [Claim 3] [Claim 4]
Claims (1)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1905396A FR3096491A1 (en) | 2019-05-22 | 2019-05-22 | management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR |
Applications Claiming Priority (2)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR1905396A FR3096491A1 (en) | 2019-05-22 | 2019-05-22 | management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR |
FR1905396 | 2019-05-22 |
Publications (1)
Publication Number | Publication Date |
---|---|
FR3096491A1 true FR3096491A1 (en) | 2020-11-27 |
Family
ID=67742781
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR1905396A Pending FR3096491A1 (en) | 2019-05-22 | 2019-05-22 | management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR3096491A1 (en) |
Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217280A1 (en) * | 2008-02-21 | 2009-08-27 | Honeywell International Inc. | Shared-Resource Time Partitioning in a Multi-Core System |
US8943287B1 (en) * | 2012-07-17 | 2015-01-27 | Rockwell Collins, Inc. | Multi-core processor system configured to constrain access rate from memory |
US20160283272A1 (en) * | 2015-03-25 | 2016-09-29 | Intel Corporation | Shared resource access control method and apparatus |
WO2018078610A1 (en) * | 2016-10-31 | 2018-05-03 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
-
2019
- 2019-05-22 FR FR1905396A patent/FR3096491A1/en active Pending
Patent Citations (4)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US20090217280A1 (en) * | 2008-02-21 | 2009-08-27 | Honeywell International Inc. | Shared-Resource Time Partitioning in a Multi-Core System |
US8943287B1 (en) * | 2012-07-17 | 2015-01-27 | Rockwell Collins, Inc. | Multi-core processor system configured to constrain access rate from memory |
US20160283272A1 (en) * | 2015-03-25 | 2016-09-29 | Intel Corporation | Shared resource access control method and apparatus |
WO2018078610A1 (en) * | 2016-10-31 | 2018-05-03 | Leonardo S.P.A. | Certifiable deterministic system software framework for hard real-time safety-critical applications in avionics systems featuring multi-core processors |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
US11842208B2 (en) | Virtual provisioning with implementation resource boundary awareness | |
US9697045B2 (en) | Selecting resource allocation policies and resolving resource conflicts | |
TWI595760B (en) | Management systems for managing resources of servers and management methods thereof | |
US7865686B2 (en) | Virtual computer system, and physical resource reconfiguration method and program thereof | |
US8055725B2 (en) | Method, apparatus and program product for remotely restoring a non-responsive computing system | |
US20180219899A1 (en) | Method and system for placing a workload on one of a plurality of hosts | |
CN114902627A (en) | Defining WAN policies for Internet of things endpoint automation software | |
US20200092294A1 (en) | Escalating User Privileges in Cloud Computing Environments | |
EP3470986A1 (en) | Method and device for monitoring an avionics software application by means of its execution time, associated computer program and avionics system | |
CN112204554A (en) | Watchdog timer hierarchy | |
Wang et al. | SOL: Safe on-node learning in cloud platforms | |
US20180129532A1 (en) | Thread interrupt offload re-prioritization | |
EP3204867B1 (en) | System on a chip having high operating certainty | |
US9823857B1 (en) | Systems and methods for end-to-end quality of service control in distributed systems | |
EP3494475B1 (en) | Method and device for distributing partitions on a multicore processor | |
CN103580899B (en) | Event log management method, system, cloud service client and virtual platform | |
US20230015075A1 (en) | Managing l4 ports | |
CN114356215A (en) | Distributed cluster and control method of distributed cluster lock | |
US8650281B1 (en) | Intelligent arbitration servers for network partition arbitration | |
FR3096491A1 (en) | management of access to a resource shared BY a plurality of cores OF A MULTI-core PROCESSOR | |
EP3660677B1 (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 | |
US10489189B2 (en) | Selection of maintenance tasks | |
FR3084500A1 (en) | ELECTRONIC METHOD AND DEVICE FOR INSTALLING AVIONIC SOFTWARE ON A PLATFORM INCLUDING A MULTI-CORE PROCESSOR, COMPUTER PROGRAM AND RELATED ELECTRONIC SYSTEM | |
US9769195B1 (en) | Systems and methods for efficiently allocating resources for behavioral analysis | |
US20170262209A1 (en) | Memory-driven out-of-band management |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PLFP | Fee payment |
Year of fee payment: 2 |
|
PLSC | Publication of the preliminary search report |
Effective date: 20201127 |
|
RX | Complete rejection |
Effective date: 20210325 |