FR2865291A1 - Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede - Google Patents

Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede Download PDF

Info

Publication number
FR2865291A1
FR2865291A1 FR0400528A FR0400528A FR2865291A1 FR 2865291 A1 FR2865291 A1 FR 2865291A1 FR 0400528 A FR0400528 A FR 0400528A FR 0400528 A FR0400528 A FR 0400528A FR 2865291 A1 FR2865291 A1 FR 2865291A1
Authority
FR
France
Prior art keywords
processor
delegating
function
registers
execution
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
Application number
FR0400528A
Other languages
English (en)
Inventor
Lescure Benoit De
Frederic Plissonneau
Marie Jean Colaitis
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.)
Thomson Licensing SAS
Original Assignee
Thomson Licensing 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 Thomson Licensing SAS filed Critical Thomson Licensing SAS
Priority to FR0400528A priority Critical patent/FR2865291A1/fr
Priority to EP05100230A priority patent/EP1557755A1/fr
Priority to CNA2005100045304A priority patent/CN1645351A/zh
Priority to US11/038,303 priority patent/US20050172104A1/en
Priority to MXPA05000788A priority patent/MXPA05000788A/es
Priority to KR1020050005397A priority patent/KR20050076702A/ko
Priority to JP2005013610A priority patent/JP2005209206A/ja
Publication of FR2865291A1 publication Critical patent/FR2865291A1/fr
Pending legal-status Critical Current

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]
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/30098Register arrangements
    • G06F9/3012Organisation of register space, e.g. banked or distributed register file
    • G06F9/30123Organisation of register space, e.g. banked or distributed register file according to context, e.g. thread buffers
    • 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/30Arrangements for executing machine instructions, e.g. instruction decode
    • G06F9/38Concurrent instruction execution, e.g. pipeline or look ahead
    • G06F9/3877Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor
    • G06F9/3879Concurrent instruction execution, e.g. pipeline or look ahead using a slave processor, e.g. coprocessor for non-native instruction execution, e.g. executing a command; for Java instruction set

Landscapes

  • Engineering & Computer Science (AREA)
  • Software Systems (AREA)
  • Theoretical Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Multi Processors (AREA)
  • Advance Control (AREA)

Abstract

La présente invention concerne un procédé de transfert de données d'un processeur délégant (200), requérant l'exécution de fonctions, vers un processeur délégué (202), exécutant ces fonctions à partir d'un identifiant de fonction et de paramètres d'exécution associés à cette fonction, cet identifiant et ces paramètres étant foumis par le processeur délégant (200), caractérisé en ce que le processeur délégant (200) accède à une banque (216) de registres intemes du processeur délégué (202) pour stocker dans ces registres les paramètres associés à une fonction à exécuter simultanément à l'exécution par le processeur délégué d'une autre fonction.

Description

2865291 1
La présente invention se rapporte à un procédé de transfert de données dans un système multiprocesseur, à un système multiprocesseur et à un processeur mettant en oeuvre ce procédé, notamment pour le traitement de données multimédia.
Un système multiprocesseur comprend une pluralité de processeurs et des moyens de transferts de données entre ces derniers. Selon un exemple connu de système multiprocesseur, un processeur 100, tel qu'illustré sur la figure 1 annexée, dénommé processeur délégant, exécute un programme en faisant appel à des fonctions exécutées par un second processeur 102 dénommé processeur délégué afin, par exemple, d'accélérer l'exécution de l'ensemble de ce programme.
1 o Dans un tel système multiprocesseur, chaque processeur comprend des registres internes nécessaires à l'exécution des instructions qui forment chaque fonction. Généralement, cet ensemble de registres comprend un compteur de programme ('Program counter' en anglais), un pointeur de pile ('Stack pointeur' en anglais), un registre d'état ('Status Register' en anglais) et des registres de travail pour traiter les données.
Par ailleurs, le processeur 100 délégant met en oeuvre la procédure d'exécution de fonctions par le processeur 102 délégué en établissant une base 110 des données nécessaires à cette exécution, cette base 110 étant intermédiaire entre le processeur 100 délégant et le processeur 102 délégué auxquels elle est reliée par l'intermédiaire d'un bus 104 de communication.
Selon d'autres variantes, le bus 104 est interne au processeur 100 délégant et/ou il relie une pluralité de processeurs délégant (non représentés) à la base 110 et au processeur délégué 102.
Par ailleurs, la base 110 peut être formée à l'aide de différents composants électroniques, tels que: - une mémoire intermédiaire, partagée entre le processeur 100 délégant et le processeur délégué 102, du type mémoire statique à accès aléatoire ou SRAM (de l'anglais 'Static Random Access Memory'), un disque ou une mémoire Flash, - des dispositifs de communications de traitement par ordre d'arrivée, ou FIFO (de l'anglais 'First In First Out'), - d'autres moyens de communication tels que des dispositifs de communication en série.
Le processeur délégué 102 accède par la suite à la base 110 de données pour y retirer, par exemple, une adresse ou un symbole qui est traité par un décodeur 106 interne de fonctions du processeur 102 délégué pour identifier une fonction à exécuter. Le décodeur 106 interne de fonctions peut identifier la fonction appelée dans une mémoire 2865291 2 108 externe contenant l'ensemble des fonctions que peut exécuter le processeur 102 délégué.
Par la suite, le processeur 102 délégué consulte la base 110 pour obtenir les paramètres nécessaires à l'exécution de la fonction appelée, ces paramètres étant alors 5 mémorisés dans une mémoire 112 interne.
Finalement, la fonction appelée peut ainsi s'exécuter dans cette mémoire 112 et fournir son résultat.
Il apparaît qu'un système multiprocesseur selon l'art antérieur présente l'avantage d'utiliser des composants électroniques - processeurs, bus, base de données - 1 o standards, c'est-à-dire qui ne requièrent pas de modifications pour leur utilisation dans un système multiprocesseur. En d'autres termes, un système multiprocesseur permet de cumuler les capacités de traitement propres aux processeurs compris dans le système.
Toutefois, la présente invention résulte de la constatation qu'un système multiprocesseur connu présente l'inconvénient de requérir un nombre important d'opération d'accès à des données. Par exemple, le transfert de données entre les processeurs délégant 100 et délégué 102 comprend notamment les étapes suivantes: - la transmission, par le processeur 100 délégant à la base 110, des paramètres nécessaires à l'exécution d'une fonction par le processeur 102 délégué, - la transmission, par le processeur 100 délégant à la base 110, d'une demande d'exécution d'une fonction par le processeur 102 délégué, - l'accès du processeur 102 délégué de la base 110 pour déterminer s'il y a une demande d'exécution de ses fonctions à mettre en oeuvre.
Par la suite, si le processeur 102 délégué trouve dans la base 110 une telle demande d'exécution, par exemple sous la forme d'un symbole propre à cette fonction ou 2 5 d'une adresse d'une des fonctions enregistrées dans sa mémoire 108, il exécute cette fonction.
A cet effet, au début de l'exécution de la fonction, le processeur 102 délégué doit à nouveau consulter la base 110 pour accéder aux paramètres transmis précédemment par le processeur 100 délégant.
3 o Cet inconvénient implique que les programmes d'exécution sont complexes et longs puisqu'ils intègrent un nombre important d'instructions d'accès (en écriture et en lecture) de données à transmettre entre les processeurs délégant 100 et délégué 102.
Par exemple, le traitement de données multimédia (images, sons, vidéo) par des systèmes multiprocesseurs est une application nécessitant une grande rapidité d'exécution car elle est souvent réalisée en temps réel.
2865291 3 Dans ce cas, un processeur 100 délégant établit une base 110 de données contenant, entre autres, des adresses mémoires correspondant à des pixels à traiter et à des paramètres de traitement des valeurs associées aux pixels (par exemple luminosité et couleur) pour permettre l'exécution d'une fonction par le processeur 102 délégué.
II apparaît alors que, pour une utilisation vidéo, on estime que 10% à 15% du délai d'exécution d'une fonction est requis pour la récupération de données, ce délai de récupération étant dénommé par la suite "temps non efficace" en ternie de calcul ou, en anglais 'Overhead'.
La présente invention vise à remédier à au moins un des inconvénients 1 o précédemment mentionnés en réduisant le temps d'accès d'un processeur délégué aux données nécessaires à l'exécution d'une fonction commandée par un processeur délégant.
C'est pourquoi, l'invention concerne un procédé de transfert de données d'un processeur délégant, requérant l'exécution de fonctions, vers un processeur délégué, exécutant ces fonctions à partir d'un identifiant de fonction et de paramètres d'exécution associés à cette fonction, cet identifiant et ces paramètres étant fournis par le processeur délégant, caractérisé en ce que le processeur délégant accède à une banque de registres internes du processeur délégué pour stocker les paramètres associés à une fonction à exécuter simultanément à l'exécution par le processeur délégué d'une autre fonction.
Ainsi, grâce à l'invention, la vitesse d'exécution des programmes par un système multiprocesseur est accrue. En effet, quand le processeur délégué commence à exécuter une fonction demandée par le processeur délégant, le processeur délégué a un accès instantané aux paramètres associés à cette fonction qui sont déjà placés dans sa banque de registres interne.
En d'autres termes, il n'y a plus 'd'overhead' associé à la lecture externe de paramètres dans l'exécution d'une fonction.
Aussi, les fonctions et les programmes mettant en oeuvre un processeur délégant et un processeur délégué sont plus courts et rapides à établir par l'absence d'instructions relatives à la consultation de paramètres associés à une fonction exécutée par le processeur délégué.
Dans une réalisation, le processeur délégant accède à des registres internes exclusivement alloués à ce processeur délégant pour le stockage de données.
Selon une réalisation, un gestionnaire interne du processeur délégué commande l'allocation des registres, ou espace mémoire, de la banque de registres au processeur délégant.
2865291 4 Dans une réalisation, préalablement à l'allocation d'espace mémoire, le processeur délégant requiert au gestionnaire du processeur délégué une allocation d'espace mémoire pour stocker des paramètres nécessaires à l'exécution d'une fonction.
Selon une réalisation, lorsque le gestionnaire alloue un espace mémoire au processeur délégant, ce gestionnaire transmet un identifiant d'espace mémoire alloué au processeur délégant puis ce dernier transfère les paramètres pour l'exécution d'une fonction dans l'espace mémoire alloué.
Dans une réalisation, le processeur délégant transfère les données identifiant la fonction demandée dans des moyens intermédiaires entre le processeur 1 o délégué et le processeur délégant, tels qu'une mémoire vive FIFO.
Selon une réalisation, la banque de registres internes du processeur délégué est une mémoire comprenant des sous-ensembles de registres ayant au moins une des caractéristiques suivantes: - chaque sous-ensemble de registres a ses propres ports d'écriture et de lecture, - chaque sous-ensemble de registres a le même nombre de registres et contient tous les registres nécessaires au fonctionnement du processeur délégué pour exécuter l'ensemble des fonctions que ce processeur délégué est apte à exécuter, - chaque sous-ensemble peut communiquer avec le processeur délégant ou le processeur délégué.
Dans une réalisation, les paramètres sont stockés dans des registres comprenant des registres de travail nécessaires aux différents traitements des données exécutés par le processeur délégué ou le processeur délégant.
L'invention concerne aussi un système multiprocesseur comportant au moins un processeur délégant, apte à requérir l'exécution de fonctions par un processeur délégué qui exécute ces fonctions à partir d'un identifiant de fonction et de paramètres d'exécution associés à cette fonction, cet identifiant et ces paramètres étant fournis par le processeur délégant, caractérisé en ce qu'il comprend des moyens pour que le processeur délégant accède à une banque de registres internes du processeur délégué afin de stocker, dans ces registres internes, des paramètres associés à une fonction à exécuter simultanément à l'exécution par le processeur délégué d'une autre fonction selon un procédé conforme à au moins une des réalisations précédentes.
Dans une réalisation, le système multiprocesseur comprend une pluralité de microprocesseurs délégants en relation avec un même microprocesseur délégué.
2865291 5 L'invention conceme aussi un processeur délégué apte à exécuter des fonctions à partir d'un identifiant de fonction et de paramètres d'exécution, associés à cette fonction, cet identifiant et ces paramètres étant fournis par un processeur délégant, caractérisé en ce qu'il comprend des moyens pour que le processeur délégant accède à une banque de registres internes dudit processeur délégué pour stocker les paramètres associés à une fonction simultanément à son exécution d'une autre fonction selon un procédé conforme à l'une des réalisations précédentes.
D'autres caractéristiques et avantages de l'invention apparaîtront avec la description effectuée ci-dessous, à titre illustratif et non limitatif, en référence aux figures ci- 1 o jointes sur lesquelles: - la figure 1, déjà décrite, représente schématiquement le transfert de données dans un système multiprocesseur selon l'art antérieur, - la figure 2 représente schématiquement le transfert de données dans un système multiprocesseur conforme à l'invention, et - la figure 3 représente une structure d'une banque de registre dans un processeur délégué conforme à l'invention.
Dans la réalisation préférée de l'invention, un processeur délégué 202 (figure 2) comprend une banque 216 de registres internes qui est accessible aux instructions de ce processeur délégué 202 en écriture, par un port 220 d'écriture, et en lecture par un port 218 de lecture.
Cette banque 216 de registres est aussi accessible à un processeur 200 délégant en écriture, par un port 212 d'écriture, et en lecture, par un port 214 grâce à : - un bus 204 de communication, qui peut être interne ou externe au processeur 200 délégant, et qui peut aussi relier d'autres processeurs (non représentés) - et une interface 210 interne au processeur 202 délégué qui reçoit et envoie des données par le bus 204.
La banque 216 est gérée par un gestionnaire 222, interne au processeur 202 délégué. Ce gestionnaire 222 alloue des espaces mémoires clairement identifiés dans la banque 216 au processeur 202 délégué et au processeur 200 délégant pour que ces deux processeurs puissent travailler en parallèle dans la banque 216.
Dans cette réalisation préférée, la banque 216 de registres comprend des espaces mémoires EMo 310 (figure 3), EM1 311, ...EMj 300, EM(j+1) 301, ... , EMi 302, EMn 304, chaque espace mémoire étant un ensemble de registres indépendants permettant au processeur délégué d'exécuter l'ensemble de ses fonctions sur chaque 3 5 espace mémoire.
2865291 6 Chaque espace mémoire comporte donc des registres de travail nécessaires aux différents traitements des données exécutés par le processeur 202 délégué ou le processeur 200 délégant. Par ailleurs, chaque espace mémoire possède ses propres ports en écriture et en lecture.
Dans un exemple concret adapté aux vitesses de transfert et aux capacités actuelles des processeurs utilisés, notamment dans le domaine du traitement d'images, la banque 216 est constituée de 4 portions de 16 registres chacune, constituant ainsi 64 registres.
Ainsi, le processeur délégué et le processeur délégant travaillent en 1 o permanence dans différents espaces mémoires grâce au gestionnaire 222 qui évite les conflits d'allocation en allouant les espaces mémoires dans un ordre de mémoire tampon en anneau (en anglais 'token ring').
Comme représenté sur le schéma de la figure 3, le processeur 202 délégué est en train d'exécuter une fonction au travers des ports 306 de lecture et écriture sur l'espace mémoire 300 EMj pendant que le processeur 200 délégant est en train d'écrire des paramètres nécessaires à l'exécution d'une autre fonction dans l'espace mémoire 302 EMi au travers des ports 308 de lecture et écriture.
On constate alors un des avantages de l'invention, à savoir que le processeur 202 délégué a un accès direct aux paramètres nécessaires à l'exécution d'une fonction car ils ont été déjà stockés par le processeur 200 délégant dans sa banque 216 de registres.
En d'autres termes, le processeur 202 délégué n'a pas besoin d'accéder à ces paramètres dans une base extérieure, ce qui réduit sensiblement les périodes de consultation de données.
Une base 217 FIFO est utilisée par le processeur 200 délégant pour transmettre les données représentant la fonction à exécuter au processeur 202 délégué.
De fait, le processeur 200 délégant et le processeur 202 délégué sont capables d'interpréter les données représentant la fonction à exécuter, par exemple au moyen d'une représentation symbolique de la fonction à exécuter ou d'une adresse explicite de la fonction dans une mémoire 208 externe au processeur 202 délégué. Dans ce cas, ces données sont décodées grâce à des moyens 206 de décodage du processeur 202 délégué.
Ainsi, le processeur 202 délégué exécute une fonction lorsqu'il a la possibilité de prendre une nouvelle fonction en charge. Dans ce cas, le processeur 202 accède à la base 217 FIFO qui détermine la fonction à exécuter et parallèlement, change 2865291 7 l'allocation d'espace mémoire dans la banque 216 de registres pour que le nouvel espace mémoire alloué à cette fonction corresponde à un espace mémoire dans lequel les paramètres nécessaires à l'exécution de la nouvelle fonction ont été stockés.
Dans cette réalisation préférée de l'invention, lorsque le processeur 200 délégant a besoin de l'exécution par le processeur 202 délégué d'une fonction, le procédé de transfert de données s'effectue en deux étapes, à savoir. (figure 2 et 3): - Selon une première étape, le processeur 200 délégant transmet les paramètres nécessaires à la réalisation de la fonction qu'il souhaite faire exécuter par le processeur 202 délégué et fait une demande d'exécution de cette fonction sans 1 o interrompre l'éventuelle activité de calcul du processeur 202 délégué.
Pour cela, le processeur 200 délégant demande à l'interface 210 du processeur 202 délégué une allocation d'espace mémoire dans sa banque 216 de registres et attend la réponse par l'intermédiaire du bus 204 de données.
L'interface 210 transmet un message 224 au gestionnaire 222 demandant l'allocation d'un espace mémoire dans la banque 216.
Quand une telle allocation est possible, le gestionnaire transmet l'identifiant 226 de l'espace mémoire alloué au processeur 200 délégant, par exemple EMi 302.
A l'aide de cet identifiant, le processeur 200 délégant écrit, par l'intermédiaire de l'interface 210 et des ports 212 / 214 écriture et lecture, dans son espace mémoire alloué EMi 302 les paramètres nécessaires à l'exécution de la fonction demandée.
Puis le processeur 200 transmet à la base 217 FIFO des données représentant la fonction à exécuter, qui sont par exemple soit une représentation symbolique de la dite fonction soit une adresse de la mémoire 208 - Selon une seconde étape, lorsque le processeur 202 délégué est prêt à exécuter une nouvelle fonction demandée par le processeur 200 délégant, le processeur 202 délégué se positionne au début de la série d'instructions formant la fonction demandée par le processeur 200 délégant en utilisant les paramètres écrits dans l'espace mémoire alloué pour cette nouvelle fonction, à savoir EMi 302, de telle sorte que le processeur délégant peut directement commencer l'exécution de la fonction.
II convient de signaler que, dans cette réalisation préférée de l'invention, l'allocation de l'espace mémoire réalisée par le gestionnaire 222 s'effectue de la façon suivante: Lors de la mise en service du processeur 202 délégué, aucun espace mémoire n'est alloué ni au processeur 200 délégant ni au processeur 202 délégué.
2865291 8 Lorsque le processeur 200 délégant demande une première allocation d'espace mémoire, le premier espace mémoire 310 EMO lui est alloué. Puis, lorsque ce processeur 200 délégant demande une nouvelle allocation d'espace mémoire après avoir eu alloué l'espace mémoire EMi 302, alors le gestionnaire lui alloue l'espace mémoire 303 {EM(i+1) modulo n}, n étant un nombre entier, sauf si ce nouvel espace mémoire {(EM(i+1) ou EMO} est déjà utilisé par le processeur 202 délégué.
Dans ce dernier cas, le processeur 200 délégant attend jusqu'à ce que ce nouvel espace mémoire {EM(i+1) ou EMO si i=n+1} devienne libre.
Cette invention est susceptible de nombreuses variantes. En particulier, 1 o dans une variante, plusieurs processeurs délégants accèdent, par exemple simultanément, aux registres internes du processeur 202.

Claims (1)

  1. 9 REVENDICATIONS
    1. Procédé de transfert de données d'un processeur délégant (200), requérant l'exécution de fonctions, vers un processeur délégué (202), exécutant ces fonctions à partir d'un identifiant de fonction et de paramètres d'exécution associés à cette fonction, cet identifiant et ces paramètres étant fournis par le processeur délégant (200), caractérisé en ce que le processeur délégant (200) accède à une banque (216) de registres internes (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,
    . EMn 304) du processeur délégué (202) pour stocker dans ces registres (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) les paramètres associés à une fonction à exécuter simultanément à l'exécution par le processeur délégué d'une autre fonction...CLMF: 2. Procédé selon la revendication 1 caractérisé en ce que le processeur délégant (200) accède à des registres internes (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) exclusivement alloués à ce processeur délégant pour le stockage de données.
    3. Procédé selon la revendication 1 ou 2 caractérisé en ce qu'un gestionnaire interne (222) du processeur délégué (202) commande l'allocation des registres (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) de la banque de registres au processeur délégant (200).
    4. Procédé selon la revendication 3 caractérisé en ce que, préalablement à l'allocation d'espace mémoire, le processeur délégant (200) requiert au gestionnaire (222) du processeur délégué (202) une allocation d'espace mémoire (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) pour stocker des paramètres nécessaires à l'exécution d'une fonction.
    5. Procédé selon la revendication 4 caractérisé en ce que, lorsque le gestionnaire (222) alloue un espace mémoire (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) au processeur délégant (200), ce gestionnaire (222) transmet un identifiant (226) d'espace mémoire alloué au processeur délégant (200) puis ce dernier transfère les paramètres pour l'exécution d'une fonction dans l'espace mémoire alloué.
    6. Procédé selon l'une des revendications précédentes caractérisé en ce que le processeur délégant (200) transfère les données identifiant la fonction demandée dans des moyens (217) intermédiaires entre le processeur délégué (202) et le processeur délégant (200), tels qu'une mémoire vive FIFO.
    7. Procédé selon l'une des revendications précédentes caractérisé en que la banque (216) de registres internes (EMo 310, EM1 311,...EMj 300, EM(j+ 1) 2865291 10 301,..., EMi 302,... EMn 304) du processeur délégué (202) est une mémoire comprenant des sous-ensembles de registres ayant au moins une des caractéristiques suivantes: - chaque sous-ensemble de registres a ses propres ports d'écriture et de lecture, - chaque sous-ensemble de registres a le même nombre de registres et contient tous les registres nécessaires au fonctionnement du processeur délégué pour exécuter l'ensemble des fonctions que ce processeur délégué est apte à exécuter, chaque sous-ensemble peut communiquer avec le processeur délégant ou le processeur délégué.
    8. Procédé selon l'une des revendications précédentes caractérisé en ce que les paramètres sont stockés dans des registres (EMo 310, EM1 311,... EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) comprenant des registres de travail nécessaires aux différents traitements des données exécutés par le processeur délégué ou le processeur délégant.
    9. Système multiprocesseur comportant au moins un processeur délégant (200), apte à requérir l'exécution de fonctions par un processeur délégué (202) qui exécute ces fonctions à partir d'un identifiant de fonction et de paramètres d'exécution associés à cette fonction, cet identifiant et ces paramètres étant fournis par le processeur délégant (200), caractérisé en ce qu'il comprend des moyens pour que le processeur délégant (200) accède à une banque (216) de registres internes (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304) du processeur délégué (202) afin de stocker, dans ces registres internes (EMo 310, EM1 311,...EMj 300, EM(j+1) 301,..., EMi 302,... EMn 304), des paramètres associés à une fonction à exécuter simultanément à l'exécution par le processeur délégué (202) d'une autre fonction selon un procédé conforme à au moins une des revendications précédentes.
    10. Système multiprocesseur selon la revendication 9 caractérisé en ce qu'une pluralité de microprocesseurs délégants sont en relation avec un même microprocesseur délégué.
    11. Processeur délégué (202) apte à exécuter des fonctions à partir d'un identifiant de fonction et de paramètres d'exécution, associés à cette fonction, cet identifiant et ces paramètres étant fournis par un processeur délégant (200), caractérisé en ce qu'il comprend des moyens pour que le processeur délégant (200) accède à une banque (216) des registres internes dudit processeur délégué pour stocker les paramètres associés à une fonction simultanément à l'exécution, par ledit processeur délégué, d'une autre fonction selon un procédé conforme à l'une des revendications 1 à 8.
FR0400528A 2004-01-21 2004-01-21 Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede Pending FR2865291A1 (fr)

Priority Applications (7)

Application Number Priority Date Filing Date Title
FR0400528A FR2865291A1 (fr) 2004-01-21 2004-01-21 Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede
EP05100230A EP1557755A1 (fr) 2004-01-21 2005-01-17 Procédé de transfert de données dans un système multiprocesseur, système multiprocesseur et processeur mettant en oeuvre ce procédé.
CNA2005100045304A CN1645351A (zh) 2004-01-21 2005-01-18 多处理器系统中传送数据的方法、多处理器系统及处理器
US11/038,303 US20050172104A1 (en) 2004-01-21 2005-01-19 Method for transferring data in a multiprocessor system, multiprocessor system and processor carrying out this method
MXPA05000788A MXPA05000788A (es) 2004-01-21 2005-01-19 Metodo para transferir datos en un sistema multiprocesador, sistema multiprocesador y procesador que realiza este metodo.
KR1020050005397A KR20050076702A (ko) 2004-01-21 2005-01-20 멀티프로세서 시스템에서의 데이터 전송 방법과, 그방법을 수행하는 멀티프로세서 및 프로세서
JP2005013610A JP2005209206A (ja) 2004-01-21 2005-01-21 マルチプロセッサシステムにおけるデータ転送方法、マルチプロセッサシステム、及び、この方法を実施するプロセッサ

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR0400528A FR2865291A1 (fr) 2004-01-21 2004-01-21 Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede

Publications (1)

Publication Number Publication Date
FR2865291A1 true FR2865291A1 (fr) 2005-07-22

Family

ID=34630653

Family Applications (1)

Application Number Title Priority Date Filing Date
FR0400528A Pending FR2865291A1 (fr) 2004-01-21 2004-01-21 Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede

Country Status (7)

Country Link
US (1) US20050172104A1 (fr)
EP (1) EP1557755A1 (fr)
JP (1) JP2005209206A (fr)
KR (1) KR20050076702A (fr)
CN (1) CN1645351A (fr)
FR (1) FR2865291A1 (fr)
MX (1) MXPA05000788A (fr)

Families Citing this family (7)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR100759110B1 (ko) * 2006-10-26 2007-09-19 이상만 플로워용 방진장치
US7865697B2 (en) * 2008-02-27 2011-01-04 International Business Machines Corporation Apparatus for and method of processor to processor communication for coprocessor functionality activation
US8803897B2 (en) * 2009-09-03 2014-08-12 Advanced Micro Devices, Inc. Internal, processing-unit memory for general-purpose use
CN102539864B (zh) * 2010-12-31 2016-01-20 北京普源精电科技有限公司 数字示波器及信号测量方法
CN102693210B (zh) * 2011-03-21 2017-03-01 中兴通讯股份有限公司 一种处理器间传递参数的方法及装置
US8880811B2 (en) * 2011-06-27 2014-11-04 Intel Mobile Communications GmbH Data processing device and data processing arrangement for accelerating buffer synchronization
CN112236792A (zh) * 2018-06-06 2021-01-15 E·马伊姆 P2p架构中的安全交易系统

Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US20010040577A1 (en) * 1992-01-30 2001-11-15 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system

Family Cites Families (5)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US4648034A (en) * 1984-08-27 1987-03-03 Zilog, Inc. Busy signal interface between master and slave processors in a computer system
US5038282A (en) * 1988-05-11 1991-08-06 Massachusetts Institute Of Technology Synchronous processor with simultaneous instruction processing and data transfer
JP3327283B2 (ja) * 2000-03-10 2002-09-24 ヤマハ株式会社 ディジタルシグナルプロセッサ
US6822959B2 (en) * 2000-07-31 2004-11-23 Mindspeed Technologies, Inc. Enhancing performance by pre-fetching and caching data directly in a communication processor's register set
US6957326B1 (en) * 2001-06-28 2005-10-18 Turin Networks Methods and apparatuses for executing threads

Patent Citations (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US20010040577A1 (en) * 1992-01-30 2001-11-15 A/N Inc. External memory system having programmable graphics processor for use in a video game system or the like
US6134653A (en) * 1998-04-22 2000-10-17 Transwitch Corp. RISC processor architecture with high performance context switching in which one context can be loaded by a co-processor while another context is being accessed by an arithmetic logic unit
US6397240B1 (en) * 1999-02-18 2002-05-28 Agere Systems Guardian Corp. Programmable accelerator for a programmable processor system

Also Published As

Publication number Publication date
CN1645351A (zh) 2005-07-27
EP1557755A1 (fr) 2005-07-27
MXPA05000788A (es) 2005-08-29
US20050172104A1 (en) 2005-08-04
JP2005209206A (ja) 2005-08-04
KR20050076702A (ko) 2005-07-26

Similar Documents

Publication Publication Date Title
EP2366147B1 (fr) Gestionnaire physique de barriere de synchronisation entre processus multiples
FR2778258A1 (fr) Controleur d'acces de trafic dans une memoire, systeme de calcul comprenant ce controleur d'acces et procede de fonctionnement d'un tel controleur d'acces
FR2767939A1 (fr) Procede d'allocation de memoire dans un systeme de traitement de l'information multiprocesseur
WO2010046355A1 (fr) Dispositif pour gerer des tampons de donnees dans un espace memoire reparti sur une pluralite d'elements de memoire
FR2814555A1 (fr) Systeme et procede de gestion memoire de coherence de donnees et reseau multiprocesseur associe
FR3007542A1 (fr) File d'echange de donnees ayant une profondeur illimitee
FR2865291A1 (fr) Procede de transfert de donnees dans un systeme multiprocesseur, systeme multiprocesseur et processeur mettant en oeuvre ce procede
EP3217290A1 (fr) Systeme sur puce et procede d'echange de donnees entre noeuds de calculs d'un tel systeme sur puce
US7900010B2 (en) System and method for memory allocation management
EP2124153A1 (fr) Procédés et dispositif de mise en oeuvre de périphériques multifonction avec un gestionnaire de périphérique standard unique
EP2530586B1 (fr) Procédé de génération d'un logiciel
EP3506110B1 (fr) Accès multiples à un fichier de données stocké dans un système de stockage de données associé à un espace mémoire tampon
FR2759178A1 (fr) Circuit de gestion de memoire dans un environnement multi-utilisateurs avec requete et priorite d'acces
FR3093830A1 (fr) Procédé de gestion d’accès à un bus partagé, et dispositif électronique correspondant
FR3078462A1 (fr) Procede et dispositif de controle d'un acces a une ressource d'un systeme informatique par des applications logicielles
EP3451179B1 (fr) Contrôleur d'accès direct en mémoire, dispositif et procédé de réception, stockage et traitement de données correspondants
WO2013110816A2 (fr) Procédé d'utilisation d'une mémoire partagée
EP0622744B1 (fr) Procédé et dispositif de détermination de la composition d'un circuit intégré
FR2980611A1 (fr) Circuit pour planifier le deroulement d'un traitement de donnees
EP0082903B1 (fr) Unité de commande pouvant être connectée à deux mémoires de vitesses différentes
EP3598314A1 (fr) Accès direct en mémoire
FR3086780A1 (fr) Systeme et procede d'acces a une ressource partagee
EP0346420B1 (fr) Procede d'echange d'information dans un systeme multiprocesseur
EP1233419A2 (fr) Procédé de rafraíchissement d'une mémoire dynamique
EP1293909B1 (fr) Controle d'accès dynamique d'une fonction à une ressource collective.