Brevet FR2840702A1 — publié le 20031212

chaque carte graphique du cluster. PROCEDE DE CHANGEMENT DE TACHES DE CODAGE D' IMAGE La presente invention se rapporte au domaine de la gestion de la memoire pour le calcul de taches en paralleles. Dans cette optique, la presente invention se rapporte plus particulierement a la mise en place d'un systeme de sauvegarde/restauration ( >) permettant de changer de contexte le plus rapidement possible (un coup d'horloge pour la sauvegarde du contexte). En particulier, la presente invention concerne la gestion de la sauvegarde/restauration dans le traitement dtimages en parallele. Wile utilise done des proprietes de cette technique telles que l'utilisation d'informations de codage et de decodage ( >). L'art anterieur connalt deja par le document WO9411816: >, un systeme de changement de contexte pour la sauvegarde, la restauration ou la permutation de taches destine a etre utilise dans un processeur multitache couple a une memoire externe ou une memoire du systeme. Le processeur comporte un ou plusieurs blocs fonctionnels qui executent les taches. Lesdits blocs fonctionnels comprennent des registres stockant des donnees d'etats qui representent, a certains moments, le contexte du systeme. Ledit systeme comprend un regisseur qui recoit une commande de sauvegarde ou de changement et genere une instruction de sauvegarde du contexte en reponse a cette derriere. Le regisseur est configure de maniere a transferer l' instruction de sauvegarde du contexte aux blocs fonctionnels generant un programme d'etats qui comporte une ou plusieurs instructions de chargement de registre, les donnees d'etats representant le contexte du systeme de facon que ce dernier puisse etre restaure ulterieurement. Le programme d'etats est stocke dans une memoire externe ou une memoire du systeme. La sauvegarde du contexte comme des programmes detats permet au systeme de passer rapidement d'un contexte a l'autre sans perdre d'informations importantes. Dans ce procede connu, il est necessaire de copier tout le contexte dans une memoire externe afin de changer de contexte. Cette methode demande par consequent un temps trop important pour le changement de tache. I1 est propose, dans la demande de brevet internationale WO9914671 une invention concernant un procede de changement de contexte d'une premiere tache a une deuxieme tache dans une unite de traitement de donnees dotee d'un fichier registre comportant plusieurs registres banalises et un registre de changement de contexte, une memoire comprenant une zone de sauvegarde de contexte anterieure et une zone de sauvegarde de contexte inutilisee. La memoire est couplee au fichier registre et a une unite de commande d' instructions, un registre d'adresse diinstruction et un registre de mot d'etat programme etant couples a la memoire et au fichier registre. Le procede consiste a acquerir une nouvelle zone de sauvegarde dans la zone de sauvegarde non utilisee, a memoriser le contexte de la premiere tache dans la nouvelle zone et a relier la nouvelle zone avec la zone de sauvegarde de contexte anterieure. Ce document de l'art anterieur propose une solution qui necessite la recherche d'une zone libre dans un espace memoire predefini. Cette recherche induit un temps supplementaire dans le passage d'une tache a l'autre. La presente invention entend remedier aux inconvenients de l'art anterieur en mettant en uvre un systeme permettant de changer de contexte de maniere rapide (chargement d'un contexte en un coup d'horloge). Pour cela, le systeme selon l' invention met en place un ensemble de memoires internee au processeur destinees a contenir les donnees de contexte de deux tfiches et les donnees de codage et de decodage (codec) d'une tfiche. Lorsqutune instruction de changement de tfiche est envoyee au processeur, celui-ci charge le contexte de la deuxieme tfiche pendant que le traitement de la premiere tfiche s'effectue, arrete le traitement de la premiere tfiche, sauve dans une memoire externe le codec de la tfiche courante, accede aux donnees de la tfiche arrivante deja chargees dans la memoire interne et charge a partir d'une memoire externe le codec correspondent a la tfiche arrivante. Ainsi le temps pendant loquel le systeme de calcul est arrete est limite aux etapes de dechargement du codec de la premiere tfiche et de chargement du codec de la deuxieme tfiche. Pour ce faire, la presente invention est du type decrit ci-dessus et elle est remarquable, dans son acception la plus large, en ce qu'elle met en uvre un procede de changement de tfiches de traitement d' image utilisant une architecture comportant une premiere memoire interne pour stocker un premier contexte, une deuxieme memoire interne pour stocker un deuxieme contexte et une troisieme memoire interne pour stocker des informations permettant le codage et le decodage ainsi que des moyens de traitement desdits contextes et un moyen de communication avec au moins un element exterieur, et destine a passer d'une premiere tfiche de codage ou de decodage utilisant ledit premier contexte a une deuxieme tfiche de codage ou de decodage utilisant ledit deuxieme contexte comprenant les etapes suivantes: a) Une premiere etape ou l' architecture traite ladite premiere tfiche en utilisant des donnees de codage et de decodage contenues dans ladite troisieme memoire interne et des donnees audit premier contexte contenues dans ladite premiere memoire interne; b) une deuxieme etape de copie des donnees audit deuxieme contexte depuis une memoire externe vers ladite deuxieme memoire interne a travers ledit moyen de communication; ou ladite deuxieme etape s'effectue pendant que ladite premiere tache est en cours de traitement. Selon un autre mode de realisation de ce procede, il existe une troisieme tache de codage ou de decodage utilisant un troisieme contexte, les donnees audit troisieme contexte etant contenues dans ladite deuxieme memoire interne et en ce que le procede comprend une etape additionnelle precedent l'etape a): c) Une etape de copie des donnees audit troisieme contexte depuis ladite deuxieme memoire interne vers une memoire externe a travers ledit moyen de communication. Ladite etape c) etant effectuee pendant le traitement de ladite premiere tache Avantageusement, le procede comprend en outre les etapes additionnelles consecutives a ltetape b): d) une etape d'arret du traitement de ladite premiere tache; e) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] depuis ladite troisieme memoire interne vers une memoire externe par ledit moyen de communication; f) une etape de copie des donnees permettant le codage ou le decodage de ladite deuxieme tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; g) une etape de changement d'adressage de memoire depuis ladite premiere memoire interne vers ladite deuxieme memoire interne; h) une etape de demarrage du traitement de ladite deuxieme tache; Avantageusement, le procede comprend des etapes additionnelles precedent l'etape a): i) une etape de copie des donnees audit premier contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; j) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; k) une etape de demarrage du traitement de ladite premiere tache. Si l'autre mode de realisation deja decrit est mis en muvre, le procede peut avantageusement comprendre des etapes additionnelles precedent l'etape c): i) une etape de copie des donnees audit premier contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; j) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; k) une etape de copie des donnees audit troisieme contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; 1) une etape de demarrage du traitement de ladite premiere tache. Selon un mode de mise en muvre de ['invention, l' architecture utilisee comprend en outre une quatrieme memoire interne pour stocker des informations permettant le codage et le decodage et le procede comprend une etape additionnelle a la suite de l'etape b): m) une etape de copie des donnees permettant le codage ou le decodage de ladite deuxieme tache [codec] a partir d'une memoire externe vers ladite quatrieme memoire interne par ledit moyen de communication; ladite etape m) etant effectuee pendant le traitement de ladite premiere tache. On comprendra mieux l' invention a l 'aide de la description, faite ci-apres a titre purement explicatif, d'un mode de realisation de ['invention, en reference a la figure annexee: - la figure 1 illustre la composition d'un processeur mis en place dans la procedure de sauvegarde/restauration; L' architecture utilisee par le procede selon ['invention, illustree figure 1, est une architecture de processeur de traitement d' images comprenant une unite de calcul (1), une memoire interne (2) pouvant contenir le codec de la tache en cours, c'est-a-dire les informations necessaires au codage et/ou au decodage des donnees d' image recues par l' architecture. L' architecture comprend egalement deux memoires internee (3) et (4) cites de contexte. Chaque memoire de contexte est susceptible de contenir un jeu de donnees necessaires a ['unite de calcul. Par exemple, une memoire de contexte peut contenir une ou plusieurs lignes de l' image a coder ainsi que des files dattente d' entree et de sortie a ces lignes. Les memoires internee (2), (3) et (4) vent relies par une liaison (5) a des elements exterieurs qui peuvent etre un autre processeur ou une memoire par exemple. Une realisation du procede de changement de tache selon l' invention le plus simple, c'est-a-dire entre deux taches deja lancees, est constitue des etapes suivantes, en faisant reference a la figure 1: a) une etape d'activation du mode sauvegarde/restauration en modifiant la valeur d'un registre destine a cette utilisation; b) l'etape d'activation entralne l'arret du traitement de la premiere tache; c) une etape de lecture du codec de la premiere tache inscrit dans le registre approprie (2) afin de le sauvegarder dans une memoire exterieure; d) une etape ou un interrupteur est mis a 1 pour signifier la fin de la procedure de sauvegarde du codec; e) une etape de passage de la zone memoire contenant le contexte de la premiere tache (3) a la zone memoire contenant le contexte de la deuxieme tache (4); f) une etape d'ecriture du codec de la deuxieme tache a partir d'une memoire externe dans le registre approprie (2); g) une etape ou un interrupteur est mis a 1 pour signifier la fin de la procedure de restauration du codec; h) une etape de desactivation du mode sauvetage/restauration en modifiant la valeur d'un registre destine a cette utilisation; i) le lancement du traitement de la deuxieme tache. Selon un autre mode de realisation, le procede permet le changement de tache entre plus de deux taches. Dans ce cas, le procede comporte les etapes supplementaires: j) une etape de lecture des informations de contexte de la premiere tache dans la memoire interne (3) afin de sauvegarder ces informations dans une memoire externe; k) une etape d'ecriture des informations de contexte d'une troisieme tache dans la memoire interne (3) a partir d'une memoire externe; 1) le procede depuis l'etape a) ou la deuxieme tache et la troisieme tache remplacent respectivement la premiere tache et la deuxieme tache; Ainsi de suite, il est possible de proceder a des changements de taches avec un nombre illimite de taches. I1 est de plus possible de mettre en muvre un procede permettant de reduire encore le temps de changement entre deux taches: pour cela, le procede selon l' invention utilise une architecture contenant une memoire interne supplementaire destinee a stocker les donnees d'un deuxieme codec. Ainsi, pendant le traitement de la premiere tache, les memoires de contexte et de codec de la deuxieme tache vent chargees depuis une memoire externe. Le processeur est alors arrete le temps necessaire pour changer l'adressage des memoires: le module de calcul du processeur change son pointeur de memoire et le dirige vers les memoires de contexte et de codec de la deuxieme tache. Ce changement d'adressage prend tres peu de temps. L' invention est decrite dans ce qui precede a titre d'exemple. I1 est entendu que l'homme du metier est a meme de realiser differentes variantes de l' invention sans pour autant sortir du cadre du brevet. REVENDICATIONS 1. Procede de changement de taches de traitement dtimage utilisant une architecture comportant une premiere memoire interne pour stocker un premier contexte, une deuxieme memoire interne pour stocker un deuxieme contexte et une troisieme memoire interne pour stocker des informations permettant le codage et le decodage ainsi que des moyens de traitement desdits contextes et un moyen de communication avec au moins un element exterieur, et destine a passer d'une premiere tache de codage ou de decodage utilisant ledit premier contexte a une deuxieme tache de codage ou de decodage utilisant ledit deuxieme contexte comprenant les etapes suivantes: a) une premiere etape ou l' architecture traite ladite premiere tache en utilisant des donnees de codage et de decodage contenues dans ladite troisieme memoire interne et des donnees audit premier contexte contenues dans ladite premiere memoire interne; b) une deuxieme etape de copie des donnees audit deuxieme contexte depuis une memoire externe vers ladite deuxieme memoire interne a travers ledit moyen de communication; caracterise en ce que ladite deuxieme etape s'effectue pendant que ladite premiere tache est en cours de traitement. 2. Procede de changement de taches de traitement dtimage selon la revendication 1, caracterise en ce qu'il existe une troisieme tache de codage ou de decodage utilisant un troisieme contexte, les donnees audit troisieme contexte etant contenues dans ladite deuxieme memoire interne et en ce que le procede comprend une etape additionnelle precedent l'etape a): c) une etape de copie des donnees audit troisieme contexte depuis ladite deuxieme memoire interne vers une memoire externe a travers ledit moyen de communication; ladite etape c) etant effectuee pendant le traitement de ladite premiere tache 3. Procede de changement de taches de traitement d' image selon la revendication 1 ou la revendication 2, caracterise en ce qu'il comprend en outre les etapes additionnelles consecutives a l'etape b): d) une etape d'arret du traitement de ladite premiere tache; e) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] depuis ladite troisieme memoire interne vers une memoire externe par ledit moyen de communication; f) une etape de copie des donnees permettant le codage ou le decodage de ladite deuxieme tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; g) une etape de changement d'adressage de memoire depuis ladite premiere memoire interne vers ladite deuxieme memoire interne; h) une etape de demarrage du traitement de ladite deuxieme tache. 4. Procede de changement de taches de traitement d' image selon la revendication 1, caracterise en ce qu'il comprend des etapes additionnelles precedent l'etape a): i) une etape de copie des donnees audit premier contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; j) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; k) une etape de demarrage du traitement de ladite premiere tache. 5. Procede de changement de taches de traitement d'images selon la revendication 2, caracterise en ce qu'il comprend des etapes additionnelles precedent letape c): i) une etape de copie des donnees audit premier contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; j) une etape de copie des donnees permettant le codage ou le decodage de ladite premiere tache [codec] a partir d'une memoire externe vers ladite troisieme memoire interne par ledit moyen de communication; k) une etape de copie des donnees audit troisieme contexte depuis une memoire externe vers ladite premiere memoire interne a travers ledit moyen de communication; 1) une etape de demarrage du traitement de ladite premiere tache. 6.Procede de changement de taches selon la revendication 1, caracterise en ce que l' architecture utilisee comprend en outre une quatrieme memoire interne pour stocker des informations permettant le codage et le decodage et qu'il comprend une etape additionnelle a la suite de l'etape b): m) une etape de copie des donnees permettant le codage ou le decodage de ladite deuxieme tache [codec] a partir d'une memoire externe vers ladite quatrieme memoire interne par ledit moyen de communication; ladite etape m) etant effectuee pendant le