FR3028065A1 - Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante - Google Patents

Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante Download PDF

Info

Publication number
FR3028065A1
FR3028065A1 FR1460431A FR1460431A FR3028065A1 FR 3028065 A1 FR3028065 A1 FR 3028065A1 FR 1460431 A FR1460431 A FR 1460431A FR 1460431 A FR1460431 A FR 1460431A FR 3028065 A1 FR3028065 A1 FR 3028065A1
Authority
FR
France
Prior art keywords
task
processing unit
external input
execution
executed
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR1460431A
Other languages
English (en)
Other versions
FR3028065B1 (fr
Inventor
Christophe Arnal
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics Rousset SAS
Original Assignee
STMicroelectronics Rousset SAS
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics Rousset SAS filed Critical STMicroelectronics Rousset SAS
Priority to FR1460431A priority Critical patent/FR3028065B1/fr
Priority to US14/840,208 priority patent/US20160124776A1/en
Publication of FR3028065A1 publication Critical patent/FR3028065A1/fr
Application granted granted Critical
Publication of FR3028065B1 publication Critical patent/FR3028065B1/fr
Expired - Fee Related legal-status Critical Current
Anticipated expiration legal-status Critical

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/50Allocation of resources, e.g. of the central processing unit [CPU]
    • G06F9/5005Allocation of resources, e.g. of the central processing unit [CPU] to service a request
    • G06F9/5027Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals
    • G06F9/5038Allocation of resources, e.g. of the central processing unit [CPU] to service a request the resource being a machine, e.g. CPUs, Servers, Terminals considering the execution order of a plurality of tasks, e.g. taking priority or time dependency constraints into consideration
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/46Multiprogramming arrangements
    • G06F9/48Program initiating; Program switching, e.g. by interrupt
    • G06F9/4806Task transfer initiation or dispatching
    • G06F9/4812Task transfer initiation or dispatching by interrupt, e.g. masked
    • G06F9/4818Priority circuits therefor
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F13/00Interconnection of, or transfer of information or other signals between, memories, input/output devices or central processing units
    • G06F13/14Handling requests for interconnection or transfer
    • G06F13/20Handling requests for interconnection or transfer for access to input/output bus
    • G06F13/24Handling requests for interconnection or transfer for access to input/output bus using interrupt

Landscapes

  • Engineering & Computer Science (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Bus Control (AREA)
  • Hardware Redundancy (AREA)

Abstract

Procédé de commande d'une unité de traitement (1) en présence d'une tâche en cours d'exécution (200) par l'unité de traitement (1). L'unité de traitement (1) étant équipée d'au moins une entrée externe (3) raccordée électriquement à une sortie correspondante de l'unité de traitement (1) et associée à un niveau de priorité d'exécution, le procédé comprend, en présence d'une requête de tâche auxiliaire générée de façon interne à l'unité de traitement (1), une génération (202) par l'unité de traitement (1) d'un signal électrique auxiliaire correspondant à la requête d'exécution de ladite tâche auxiliaire, une délivrance dudit signal électrique auxiliaire à ladite au moins une entrée externe (3), et une comparaison (215) entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe (3) et à la tâche en cours d'exécution.

Description

Procédé de commande d'une unité de traitement améliorant la gestion des tâches à exécuter et unité de traitement correspondante Des modes de mise en oeuvre et de réalisation de l'invention concernent la gestion des tâches d'une unité de traitement, et plus particulièrement un procédé de commande d'une unité de traitement ordonnançant l'exécution de tâches par le microprocesseur en tenant compte des niveaux de priorité des tâches. Une unité de traitement telle qu'un microprocesseur réalise différentes tâches dont l'exécution peut être initialement requise par un élément externe au microprocesseur ou bien par le microprocesseur lui-même. Une tâche exécutable par un microprocesseur peut comporter un niveau de priorité. L'affectation de niveaux de priorité à chaque tâche à exécuter permet de définir le niveau d'importance de chaque tâche et l'ordre dans lequel ces tâches devraient être exécutées de préférence. Pour organiser l'exécution des tâches, c' est-à-dire pour ordonnancer les tâches de l'unité de traitement, l'unité de traitement utilise généralement des moyens d'ordonnancement de tâches, aussi appelé « ordonnanceur » en français ou « scheduler » en anglais. Les moyens d'ordonnancement de tâches permettent de commander l'accès aux ressources de l'unité de traitement pour l'exécution des différentes tâches. Ces moyens permettent d'assurer la répartition des ressources de l'unité de traitement aux différentes tâches. Un des rôles de l'ordonnanceur, est donc de permettre à toutes les tâches de s'exécuter à un moment ou un autre et d'utiliser au mieux le processeur pour l'utilisateur. Un ordonnanceur est caractérisé principalement par le débit d'exécution de tâches, le temps de latence lors d'un changement de tâches, et la taille de la mémoire (externe si l'unité de traitement est un processeur ou interne dans d'autres cas) nécessaire pour l'exécution de toutes les tâches exécutables et la gestion de la mémoire.
Il est connu deux types d'ordonnanceur généralement mis en oeuvre dans une unité de traitement. Le premier type de moyens d'ordonnancement de tâches consiste en un ordonnanceur logiciel ne tenant pas compte des niveaux de priorité des tâches pour lesquelles une requête d'exécution est émise par rapport à la tâche en cours d'exécution. Dans ce premier type d'ordonnanceur, la tâche en cours d'exécution doit être terminée avant qu'une autre tâche puisse être exécutée. Aucune interruption de tâche n'est prise en compte.
Le second type de moyens d'ordonnancement de tâches consiste en un ordonnanceur mis en oeuvre par une implémentation logicielle au sein d'un système d'exploitation exécuté par le microprocesseur. Pour que chaque tâche s'exécute sans se préoccuper des autres et/ou aussi pour exécuter les tâches selon les contraintes imposées au système, l'ordonnanceur du système effectue des commutations de contexte de celui-ci. Cependant, la commutation de contexte ajoute de la latence au fonctionnement, une latence due notamment au temps d'exécution de l'ordonnanceur logiciel et à la sauvegarde/restauration du contexte des tâches. En effet, à chaque fois qu'une requête d'exécution de tâche est reçue par le microprocesseur, le microprocesseur met en oeuvre via un programme informatique une comparaison des niveaux de priorité de la tâche en cours d'exécution et des tâches pour lesquelles une requête d'exécution a été émise. Cette vérification informatique est consommatrice de temps. Par ailleurs, l'implémentation de l'ordonnanceur dans le système d'exploitation est relativement complexe, mettant notamment en oeuvre une pluralité de pointeurs de zones mémoires et nécessitant une mémoire importante. En effet, dans ce type d'ordonnanceur, un espace mémoire distinct est alloué pour l'exécution de chaque tâche. L'interruption d'une tâche entraine la sauvegarde de son contexte dans son espace mémoire alloué et l'exécution d'une autre tâche dans un autre espace mémoire distinct. Ce type de fonctionnement entraine la nécessité de prévoir une marge supplémentaire de mémoire pour chaque espace mémoire distinct et donc d'augmenter la taille de la mémoire nécessaire.
Selon un mode de réalisation et de mise en oeuvre, il est proposé un procédé et une architecture de commande d'une unité de traitement permettant d'avoir un ordonnanceur plus efficace tenant compte des niveaux de priorité des tâches à exécuter et permettant de réduire le temps de latence lors de l'interruption d'une tâche.
Selon un aspect, il est proposé un procédé de commande d'une unité de traitement en présence d'une tâche en cours d'exécution par l'unité de traitement. Selon une caractéristique générale de cet aspect, l'unité de traitement étant équipée d'au moins une entrée externe raccordée électriquement à une sortie correspondante de l'unité de traitement et associée à un niveau de priorité d'exécution, le procédé comprend, en présence d'une requête de tâche auxiliaire générée de façon interne à l'unité de traitement, une génération par l'unité de traitement d'un signal électrique auxiliaire correspondant à la requête d'exécution de ladite tâche auxiliaire, une délivrance dudit signal électrique auxiliaire à ladite au moins une entrée externe, et une comparaison entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe et à la tâche en cours d'exécution. La génération par l'unité de traitement d'un signal électrique auxiliaire destiné à être délivré à une entrée externe permet de recevoir chacune des requêtes d'exécution de tâche en entrée de l'unité de traitement et ainsi de traiter toutes les requêtes de la même manière, comme des interruptions. La comparaison des niveaux de priorité est faite avantageusement directement via le câblage de l'unité de traitement et des différentes entrées externes quelles qu'elles soient. L'architecture de l'unité de traitement permettant la mise en oeuvre d'un tel procédé permet donc que chaque tâche soit gérée par le gestionnaire d'interruption de l'unité de traitement.
La comparaison permet de déterminer quelle tâche possède la plus haute priorité, c'est-à-dire celle pour laquelle la tâche associée doit être effectuée avant les autres, entre les tâches pour lesquelles une requête d'exécution a été reçue et la tâche en cours d'exécution.
La comparaison permet de déterminer si la tâche en cours d'exécution doit être interrompue au profit d'une tâche possédant un niveau de priorité plus important. Avantageusement, l'unité de traitement comportant au moins une entrée externe supplémentaire apte à recevoir un signal électrique correspondant à une requête d'exécution d'au moins une tâche par l'unité de traitement générée à l'extérieur de l'unité de traitement, le procédé comprend une comparaison entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe supplémentaire, à ladite au moins une entrée externe et à la tâche en cours d'exécution. Dans cette configuration, les requêtes d'exécution de tâches générées par un composant externe sont également prises en compte de la même manière que les requêtes d'exécution de tâches auxiliaires générées en interne.
Selon le résultat de la comparaison, le procédé peut comprendre en outre une interruption de la tâche additionnelle en cours d'exécution et une sauvegarde de ses paramètres si l'une des tâches associées à ladite au moins une entrée externe ou à ladite au moins une entrée externe auxiliaire possède par rapport à la tâche additionnelle en cours d'exécution un niveau de priorité activant l'exécution de cette tâche, par exemple plus élevé que la tâche additionnelle en cours d'exécution. Selon le protocole mis en oeuvre, une nouvelle tâche ayant un niveau de priorité de même niveau ou de niveau moindre que la tâche en cours d'exécution peut entraîner l'interruption et la sauvegarde de la tâche en cours d'exécution. La comparaison est plus rapide qu'une comparaison réalisée par implémentation logicielle de par l'architecture électrique de câblage qui offre la possibilité de réaliser une comparaison électrique plutôt qu'une comparaison mise en oeuvre informatiquement dans un système d'exploitation. De plus, la comparaison n'entraîne pas une vérification des niveaux de priorité à chaque événement comme dans le cas d'un système d'exploitation, car l'unité de traitement connaît déjà, de par les priorités associées à chaque entrée externe supplémentaire ou non, pour quelles entrées externes supplémentaires ou non recevant une requête d'exécution de tâche elle devra interrompre la tâche en cours d' exécution.
La comparaison est également plus rapide que dans un système comprenant un simple ordonnanceur électronique connu dans l'état de l'art car ce dernier est géré par l'unité de traitement sur un grand nombre de cycles d'horloge, de l'ordre d'une centaine généralement, tandis que dans le procédé mis en oeuvre dans cet aspect cela pourrait se faire, à titre d'exemple non limitatif, par l'écriture d'un seul bit, via une entrée externe, supplémentaire ou non, dans l'unité de traitement pour requérir une tâche, et selon le bit, l'unité de traitement sait directement ce qu'elle doit faire étant donné le câblage et les niveaux de priorité affectés à chaque entrée externe supplémentaire ou non qui sont préenregistrés dans l'unité de traitement. La sauvegarde des paramètres de la tâche interrompue permet de sauvegarder le contexte de la tâche interrompue pour permettre la reprise ultérieure de ladite tâche interrompue. De préférence, la tâche associée à ladite au moins une entrée externe ou à ladite au moins une entrée externe supplémentaire possédant un niveau de priorité plus élevé que la tâche additionnelle en cours d'exécution est exécutée à la suite de la sauvegarde de la tâche additionnelle. En exécutant la nouvelle tâche à la suite de la sauvegarde du contexte de la tâche interrompue, aucun espace mémoire n'est perdu. En effet, aucun espace mémoire n'est inutilisé ou maintenu inutilisable pour la réalisation des tâches par l'unité de traitement. De préférence, on dédit au moins un espace mémoire à l'exécution des tâches par l'unité de traitement et une portion d'espace mémoire utilisée par une tâche terminée est utilisable pour l'exécution d'une éventuelle autre tâche à exécuter. Ainsi lorsqu'une tâche est terminée et qu'aucune nouvelle tâche ne possède un niveau de priorité plus élevé que celui de la dernière tâche interrompue, le pointeur de mémoire remonte l'adresse mémoire à laquelle les paramètres de la dernière tâche interrompue ont été sauvegardés, et les paramètres sont restaurés à partir de cette adresse et la tâche est reprise à la suite. Avantageusement, la sauvegarde de la tâche additionnelle peut comprendre uniquement la sauvegarde des registres de travail de l'unité de traitement. Sauvegarder uniquement des registres de travail de l'unité de traitement permet de réduire le nombre de paramètres à sauvegarder pour la sauvegarde du contexte de la tâche interrompue et ainsi de réduire le temps de latence. Selon un autre aspect, il est proposé une unité de traitement équipée d'au moins une entrée externe raccordée électriquement à une sortie correspondante de l'unité de traitement et associée à un niveau de priorité d'exécution, l'unité de traitement comprenant en outre des moyens de génération configurés pour générer, au cours de l'exécution d'une tâche par l'unité de traitement, un signal électrique auxiliaire correspondant à la requête d'exécution d'une tâche auxiliaire par l'unité de traitement générée de façon interne à l'unité de traitement, les moyens de génération étant couplés via la sortie correspondante à ladite au moins une entrée externe, et l'unité de traitement comportant en outre des moyens de comparaison aptes à comparer les niveaux de priorité respectivement associés à ladite au moins une entrée externe et à la tâche en cours d'exécution. Les moyens de génération sont préférentiellement couplés à ladite au moins une entrée externe par au moins une liaison physique. On entend par liaison physique, des pistes électriquement conductrices ou des câbles électriques ou toute sorte de connexion électrique. De préférence, l'unité de traitement comporte au moins une entrée physique externe supplémentaire apte à recevoir un signal électrique correspondant à une requête d'exécution par l'unité de traitement d'une tâche généré à l'extérieur de l'unité de traitement, les moyens de comparaison étant configurés en outre pour réaliser une comparaison entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe supplémentaire, à ladite au moins une entrée externe et à la tâche en cours d'exécution. L'unité de traitement peut avantageusement comprendre en outre des moyens d'interruption configurés pour interrompre la tâche additionnelle en cours d'exécution et des moyens de sauvegarde configurés pour enregistrer des paramètres de la tâche interrompue, les moyens d'interruption et les moyens de sauvegarde étant actionnés si l'une des tâches associées à ladite au moins une entrée externe supplémentaire ou à ladite au moins une entrée externe possède par rapport à la tâche additionnelle en cours d'exécution un niveau de priorité activant l'exécution de cette tâche, par exemple plus élevé que la tâche additionnelle en cours d'exécution. De préférence, l'unité de traitement comprend au moins un espace mémoire dédié à l'exécution des tâches par l'unité de traitement et un unique pointeur par espace mémoire, une nouvelle tâche étant exécutée à la suite de la sauvegarde des paramètres de la tâche interrompue, l'espace utilisé dans un espace mémoire pour une tâche terminée étant utilisable par n'importe quelle autre éventuelle tâche à exécuter. Les moyens de sauvegarde peuvent avantageusement être configurés pour uniquement sauvegarder les registres de travail de l'unité de traitement. D' autres avantages et caractéristiques de l' invention apparaîtront à l'examen de la description détaillée d'un mode de mis en oeuvre de l'invention nullement limitatif, et des dessins annexés, sur lesquels : - la figure 1 représente, de manière schématique, une unité de traitement selon un mode de réalisation de l'invention ; - la figure 2 présente un organigramme du procédé de commande de l'unité de traitement de la figure 1 selon un mode de mise en oeuvre de l'invention. Sur la figure 1 est représentée de manière schématique une unité de traitement selon un mode de réalisation de l'invention. L'unité de traitement représentée sur la figure 1 est un microprocesseur 1. Le microprocesseur 1 est équipé d'une pluralité d'entrées externes 3 destinées à recevoir des signaux électriques distincts générés par le microprocesseur 1 et correspondant chacun à une requête d'exécution par le microprocesseur 1 d'une tâche auxiliaire distincte. Le microprocesseur 1 comporte en outre une pluralité d'entrées physiques externes supplémentaires 2 aptes à recevoir chacune un signal électrique distinct. Chaque signal électrique distinct est généré à l'extérieur du microprocesseur 1 et correspond à une requête d'exécution par le microprocesseur 1 d'une tâche distincte correspondante. Les entrées externes supplémentaires 2 et les entrées externes 3 sont des entrées physiques du microprocesseur et sont chacune associées dans l'exemple illustré à des niveaux différents de priorité d'exécution à l'aide d'une table 4 recensant les niveaux de priorité pour chaque entrée externe supplémentaire 2 et entrée externe 3. La table de correspondance 4 peut être réalisée sous la forme d'une mémoire paramétrée initialement avec les différents niveaux de priorité. Le microprocesseur 1 comprend également des moyens 5 de génération configurés pour générer un signal électrique auxiliaire correspondant à la requête d'exécution d'une tâche auxiliaire générée de façon interne au microprocesseur 1. Les moyens de génération 5 sont raccordés à chaque entrée externe 3 via une sortie 6 correspondante du microprocesseur 1. Les moyens de génération 5 peuvent être des moyens logiciels aptes à commander la génération d'un signal électrique sur une des sorties 6 du microprocesseur 1.
Le microprocesseur 1 comprend en outre des moyens de comparaison 7 aptes à comparer les niveaux de priorité respectivement associés aux entrées externes supplémentaires 2 et aux entrées externes 3 ayant respectivement reçu un signal électrique. Les moyens de comparaison peuvent être implémentés par des moyens électroniques tels qu'un ensemble de portes logiques configurés pour sélectionner le signal possédant la priorité la plus haute. Les moyens 5 de génération du signal électrique auxiliaire sont configurés pour permettre la génération d'une requête d'exécution d'une tâche au cours de l'exécution d'une tâche additionnelle par le microprocesseur 1, et les moyens de comparaison 7 sont configurés en outre pour réaliser une comparaison entre les niveaux de priorité respectivement associés aux entrées externes supplémentaires 2 et aux entrées externes 3 ayant respectivement reçu un signal électrique et à la tâche en cours d'exécution. Le microprocesseur 1 est également équipé de moyens 8 d'interruption de la tâche additionnelle en cours d'exécution, de moyens 9 de sauvegarde des paramètres de la tâche interrompue, et d'un espace mémoire 10 dédié à l'exécution des tâches par le microprocesseur 1. Les moyens d'interruption 8 et les moyens de sauvegarde 9 sont configurés pour agir si l'une des tâches associées aux entrées externes supplémentaires 2 ou aux entrées externes 3 ayant reçu un signal électrique possède un niveau de priorité plus élevé que la tâche additionnelle en cours d'exécution.
Les moyens d'interruption 8 peuvent être mis en oeuvre sous la forme de moyens logicielles ou de moyens électroniques de commande, et les moyens de sauvegarde 9 peuvent être réalisés sous la forme d'un module électronique de commande. Le fonctionnement du microprocesseur 1 est régi par le procédé illustré sur la figure 2 qui illustre un organigramme d'un procédé de commande selon un mode de mise en oeuvre de l'invention. Dans une première étape 200, le microprocesseur 1 exécute une tâche. La tâche en cours d'exécution peut être une tâche dont la requête a été générée par un élément externe au microprocesseur 1.
Dans une étape 202, le microprocesseur 1 peut générer, au cours de l'exécution de la tâche à l'étape 200, une requête interne d'exécution par lui même d'une tâche auxiliaire. Si le microprocesseur 1 génère en interne une requête d'exécution d'une tâche auxiliaire, les moyens 5 de génération délivrent un signal électrique auxiliaire à une entrée externe 3 via une des sorties 6. Le signal électrique ainsi délivré correspond à une requête d'exécution de la tâche auxiliaire. On vérifie dans une étape 205, si une requête d'exécution d'une nouvelle tâche a été reçue, la requête ayant pu être émise par une entité externe au microprocesseur 1 ou bien de manière interne par le microprocesseur 1 à l'étape 202. Si aucune nouvelle requête n'a été reçue, on vérifie, dans une étape 210, si la tâche en cours d'exécution est terminée. Si la tâche est terminée, on commande, dans une étape 212, l'exécution d'une nouvelle tâche en fonction des niveaux de priorité des tâches en attente d'exécution et on reprend à l'étape 200. Lorsque le microprocesseur 1 reçoit dans l'étape 205 une requête d'exécution d'une nouvelle tâche, il compare, dans une étape 220, le niveau de priorité associé à la nouvelle tâche dont la requête d'exécution vient d'être reçue au niveau de priorité de la tâche en cours d'exécution. Dans le cas où plusieurs requêtes d'exécution sont reçues en même temps à l'étape 205, avant l'étape 220, le microprocesseur 1 compare, dans une étape 215, les niveaux de priorité de toutes les requêtes reçues. La comparaison peut notamment comprendre une comparaison du niveau de priorité d'une requête d'exécution d'une tâche auxiliaire au niveau de priorité d'une requête d'exécution d'une tâche générée par un élément externe au microprocesseur 1. Il résulte de la comparaison de l'étape 215 la désignation d'une requête possédant le niveau de priorité le plus élevé. Le niveau de priorité de cette requête sera alors comparer au niveau de priorité de la tâche en cours d'exécution dans l'étape 220. Alternativement, les étapes 215 et 200 peuvent être combinées en une seule et même étape dans laquelle est réalisée une comparaison entre les niveaux de priorité respectivement aux entrées externes supplémentaires 2 et aux entrées externes 3 ayant respectivement reçu un signal électrique et à la tâche en cours d'exécution. Si, lors de la comparaison de l'étape 220, le niveau de priorité de la nouvelle tâche dont l'exécution est requise possède une priorité moins élevée que celle de la tâche en cours d'exécution, l'exécution de la tâche déjà en cours d'exécution est maintenue et on reprend à l'étape 205 l'attente d'une nouvelle réception de requête d'exécution de tâche ou la fin de la tâche en cours d'exécution.
En revanche, si le niveau de priorité de la nouvelle tâche dont l'exécution est requise possède une priorité plus élevée que celle de la tâche en cours d'exécution, la tâche en cours d'interruption est interrompue dans une étape 225 par les moyens d'interruption 8 et les paramètres de la tâche interrompue sont sauvegardés dans une étape 230 par les moyens de sauvegarde 9 dans la mémoire 10. La sauvegarde comprend uniquement la sauvegarde des registres de travail du microprocesseur 1 de manière à réduire le temps d'enregistrement et ainsi le temps de latence du microprocesseur 1 entre l'interruption 225 et l'exécution de la nouvelle tâche.
La sauvegarde uniquement des registres de travail de l'unité de traitement permet de réduire le nombre de paramètres à sauvegarder pour la sauvegarde du contexte de la tâche interrompue et ainsi de réduire le temps de latence. Ensuite, dans une étape 235, les moyens de commande émettent une commande d'exécution de la nouvelle tâche et le procédé reprend à la première étape 200, la nouvelle tâche étant exécutée dans l'espace mémoire 10 directement à la suite de la sauvegarde des paramètres de la dernière tâche interrompue. Le microprocesseur 1 peut également comprendre l'enregistrement du niveau de priorité de la tâche en cours d'exécution comme un seuil d'interruption et ainsi s'auto-configuré pour ne permettre une interruption de la tâche en cours d'exécution que si certaines des entrées externes supplémentaires 2 ou des entrées externes 3 reçoivent un signal électrique.
L'architecture du microprocesseur et le procédé associé mis en oeuvre au sein du microprocesseur permettent d'obtenir un ordonnanceur optimisé tenant compte des niveaux de priorité des tâches à exécuter et permettant de réduire le temps de latence lors de l'interruption d'une tâche grâce notamment à la possibilité offerte d'évaluer les niveaux de priorité via le montage du circuit.

Claims (12)

  1. REVENDICATIONS1. Procédé de commande d'une unité de traitement (1) en présence d'une tâche en cours d'exécution (200) par l'unité de traitement (1), caractérisé en ce que, l'unité de traitement (1) étant équipée d'au moins une entrée externe (3) raccordée électriquement à une sortie correspondante de l'unité de traitement (1) et associée à un niveau de priorité d'exécution, le procédé comprend, en présence d'une requête de tâche auxiliaire générée de façon interne à l'unité de traitement (1), une génération (202) par l'unité de traitement (1) d'un signal électrique auxiliaire correspondant à la requête d'exécution de ladite tâche auxiliaire, une délivrance dudit signal électrique auxiliaire à ladite au moins une entrée externe (3), et une comparaison (215) entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe (3) et à la tâche en cours d'exécution.
  2. 2. Procédé selon la revendication 1, dans lequel, l'unité de traitement (1) comportant au moins une entrée externe supplémentaire (2) apte à recevoir un signal électrique correspondant à une requête d'exécution d'au moins une tâche par l'unité de traitement (1) générée à l'extérieur de l'unité de traitement (1), le procédé comprend une comparaison entre les niveaux de priorité respectivement associés à ladite au moins une entrée externe supplémentaire (2), à ladite au moins une entrée externe (3) et à la tâche en cours d'exécution.
  3. 3. Procédé selon la revendication 2, comprenant en outre une interruption (225) de la tâche additionnelle en cours d'exécution et une sauvegarde (230) de ses paramètres si l'une des tâches associées à ladite au moins une entrée externe supplémentaire (2) ou à ladite au moins une entrée externe (3) possède par rapport à la tâche additionnelle en cours d'exécution un niveau de priorité activant l'exécution de cette tâche.
  4. 4. Procédé selon la revendication 3, dans lequel la tâche associée à ladite au moins une entrée externe supplémentaire (2) ou à ladite au moins une entrée externe (3) possédant un niveau de prioritéplus élevé que la tâche additionnelle en cours d'exécution est exécutée à la suite de la sauvegarde de la tâche additionnelle.
  5. 5. Procédé selon la revendication 4, dans lequel on dédit au moins un espace mémoire (10) à l'exécution des tâches par l'unité de traitement (1) et une portion d'espace mémoire (10) utilisée par une tâche terminée est utilisable pour l'exécution d'une éventuelle autre tâche à exécuter.
  6. 6. Procédé selon l'une des revendications 3 à 5, dans lequel la sauvegarde (230) de la tâche additionnelle comprend uniquement la sauvegarde des registres de travail de l'unité de traitement.
  7. 7. Unité de traitement (1), caractérisé en ce qu'elle est équipée d'au moins une entrée externe (3) raccordée électriquement à une sortie correspondante de l'unité de traitement (1) et associée à un niveau de priorité d'exécution, l'unité de traitement (1) comprenant en outre des moyens de génération (5) configurés pour générer, au cours de l'exécution d'une tâche par l'unité de traitement (1), un signal électrique auxiliaire correspondant à la requête d'exécution d'une tâche auxiliaire par l'unité de traitement (1) générée de façon interne à l'unité de traitement (1), les moyens de génération (5) étant couplés à ladite au moins une entrée externe (3) via la sortie correspondante, et l'unité de traitement (1) comportant en outre des moyens de comparaison (7) aptes à comparer les niveaux de priorité respectivement associés à ladite au moins une entrée externe (3) et à la tâche en cours d'exécution.
  8. 8. Unité de traitement (1) selon la revendication 7, dans laquelle les moyens de génération sont couplés à ladite au moins une entrée externe (3) par au moins une liaison physique.
  9. 9. Unité de traitement (1) selon l'une des revendications 7 ou 8, comportant au moins une entrée physique externe supplémentaire (2) apte à recevoir un signal électrique correspondant à une requête d'exécution par l'unité de traitement (1) d'une tâche généré à l'extérieur de l'unité de traitement (1), les moyens de comparaison (7) étant configurés en outre pour réaliser une comparaison entre les niveaux de priorité respectivement associés àladite au moins une entrée externe supplémentaire (2), à ladite au moins une entrée externe (3) et à la tâche en cours d'exécution.
  10. 10. Unité de traitement (1) selon la revendication 8, comprenant en outre des moyens (8) d'interruption configurés pour interrompre la tâche additionnelle en cours d'exécution et des moyens (9) de sauvegarde configurés pour enregistrer des paramètres de la tâche interrompue, les moyens d'interruption (8) et les moyens de sauvegarde (9) étant actionnés si l'une des tâches associées à ladite au moins une entrée externe supplémentaire (2) ou à ladite au moins une entrée externe (3) possède par rapport à la tâche additionnelle en cours d'exécution un niveau de priorité activant l'exécution de cette tâche.
  11. 11. Unité de traitement (1) selon la revendication 9, comprenant au moins un espace mémoire (10) dédié à l'exécution des tâches par l'unité de traitement (1) et un unique pointeur par espace mémoire (10), une nouvelle tâche étant exécutée à la suite de la sauvegarde des paramètres de la tâche interrompue, l'espace utilisé dans un espace mémoire (10) pour une tâche terminée étant utilisable par n'importe quelle autre éventuelle tâche à exécuter.
  12. 12. Unité de traitement (1) selon l'une des revendications 9 ou 10, dans lequel les moyens de sauvegarde (9) sont configurés pour uniquement sauvegarder les registres de travail de l'unité de traitement (1).
FR1460431A 2014-10-30 2014-10-30 Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante Expired - Fee Related FR3028065B1 (fr)

Priority Applications (2)

Application Number Priority Date Filing Date Title
FR1460431A FR3028065B1 (fr) 2014-10-30 2014-10-30 Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante
US14/840,208 US20160124776A1 (en) 2014-10-30 2015-08-31 Process for controlling a processing unit improving the management of the tasks to be executed, and corresponding processing unit

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR1460431A FR3028065B1 (fr) 2014-10-30 2014-10-30 Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante

Publications (2)

Publication Number Publication Date
FR3028065A1 true FR3028065A1 (fr) 2016-05-06
FR3028065B1 FR3028065B1 (fr) 2017-12-22

Family

ID=53008572

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1460431A Expired - Fee Related FR3028065B1 (fr) 2014-10-30 2014-10-30 Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante

Country Status (2)

Country Link
US (1) US20160124776A1 (fr)
FR (1) FR3028065B1 (fr)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958036A (en) * 1997-09-08 1999-09-28 Lucent Technologies Inc. Circuit for arbitrating interrupts with programmable priority levels
GB2411023A (en) * 2004-02-11 2005-08-17 Advanced Risc Mach Ltd Interrupt priority control within a nested interrupt system.

Family Cites Families (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JPS55123736A (en) * 1979-03-16 1980-09-24 Hitachi Ltd Interrupt control system
US6574693B1 (en) * 1999-10-11 2003-06-03 Ati International Srl Method and apparatus for gating interrupts in a computing system
JP4756603B2 (ja) * 2006-10-10 2011-08-24 ルネサスエレクトロニクス株式会社 データプロセッサ
US8352804B2 (en) * 2010-05-20 2013-01-08 Infineon Technologies Ag Systems and methods for secure interrupt handling

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US5958036A (en) * 1997-09-08 1999-09-28 Lucent Technologies Inc. Circuit for arbitrating interrupts with programmable priority levels
GB2411023A (en) * 2004-02-11 2005-08-17 Advanced Risc Mach Ltd Interrupt priority control within a nested interrupt system.

Also Published As

Publication number Publication date
FR3028065B1 (fr) 2017-12-22
US20160124776A1 (en) 2016-05-05

Similar Documents

Publication Publication Date Title
EP2366147B1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
CA2852367C (fr) Procede, programme d'ordinateur et dispositif d'allocation de ressources informatiques d'un cluster pour l'execution d'un travail soumis audit cluster
FR2899700A1 (fr) Systeme et procede pour profils de refroidissement adaptatifs de systemes informatiques.
FR3017725A1 (fr) Procede de deploiement d'un ensemble d'application (s) logicielle (s)
US20200327228A1 (en) Automatic idle-state scanning for malicious code
US20190294730A1 (en) Device-based search in data storage device
EP3494475A1 (fr) Procede et dispositif de distribution de partitions sur un processeur multi-coeurs
EP3633495A1 (fr) Procédé de gestion d'une alimentation dvfs et système correspondant
FR3028065A1 (fr) Procede de commande d'une unite de traitement ameliorant la gestion des taches a executer et unite de traitement correspondante
CN110168513A (zh) 在不同存储系统中对大文件的部分存储
EP2545449B1 (fr) Procédé de configuration d'un système informatique, programme d'ordinateur et système informatique correspondants
EP2667302A1 (fr) Procédé de gestion du démarrage d'instances d'applications sur des machines virtuelles d'un réseau distribué
EP3809303B1 (fr) Procédé d'authentification d'un circuit sur puce et système sur puce associé
US11238009B1 (en) Techniques for automated policy analysis
EP3073376B1 (fr) Procédé de séquencement de commandes d'exécution, procédé d'exécution, programme d'ordinateur et circuit intégré
EP3139301B1 (fr) Architecture d'un coffre-fort numérique utilisable pour préserver l'intégrité d'objets numériques dans le temps
FR3044785B1 (fr) Procede de configuration optimisee d'un systeme executant une pluralite d'applications, notamment dans un vehicule
FR3071334A1 (fr) Procede pour assurer la stabilite des donnees d’un processeur multicoeur d’un vehicule automobile
US11095522B2 (en) Dynamic scaling for data processing streaming system
US11095683B1 (en) Systems and methods for delegating endpoint security operations to a nearby computing device
EP4113297A1 (fr) Procédé de gestion des travaux dans un système informatique et système associé
FR3003967A1 (fr) Procede d'execution d'un logiciel securitaire et d'un logiciel non securitaire entrelaces
FR3142017A1 (fr) Procédé et dispositif de contrôle d’au moins un dispositif embarqué dans un aéronef
FR2942330A1 (fr) Dispositif de traitement de l'information communiquant permettant un acces rapide a un ensemble d'informations personnelles
FR3096482A1 (fr) Procédé pour contrôler l’admission d’au moins une tâche temps réel à être exécutée

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20160506

PLFP Fee payment

Year of fee payment: 3

PLFP Fee payment

Year of fee payment: 4

PLFP Fee payment

Year of fee payment: 5

ST Notification of lapse

Effective date: 20200905