Brevet FR2752470A1 — publié le 19980220

La présente invention concerne un dispositif à multiprocesseurs comprenant des processeurs asymétriques présentant des caractéristiques dissemblables de commande et de traitement des données. De manière plus spécifique, la présente invention concerne un dispositif et un procédé pour traiter des interruptions et des exceptions dans un dispositif à multiprocesseurs asymétriques. Les processeurs polyvalents comprennent de manière typique des circuits et des structures permettant de traiter des interruptions et des exceptions. Une interruption est un événement qui amène un processeur à arrêter l'exécution d'un chemin d'instruction en cours et à commencer l'exécution d'un chemin d'instruction de service d'interruption qui est désigné et rendu actif par un module d'interruption. Lorsque le chemin d'instruction de service d'interruption a terminé son exécution, le chemin d'instruction en cours continue d'être exécuté. Des interruptions sont des événements externes en ce le sens que la cause d'une interruption n'est pas directement reliée à l'exécution d'instructions dans le chemin d'instruction en cours. Des interruptions sont typiquement traitées en sauvegardant l'état ou le contexte du processeur, en exécutant un programme d'intervention, et en restaurant alors l'état ou le contexte du processeur et en reprenant le chemin d'exécution interrompu. Une exception est un événement qui est provoqué soit par l'exécution d'une instruction ou un essai d'exécuter une instruction par un processeur, dont l'exécution n'est pas cohérante avec l'état actuel du processeur. Des exemples d'événements qui provoquent une condition d'exception comprennent un essai de faire exécuter une instruction illégale ou indéfinie par un processeur, un essai de faire exécuter une instruction lorsque l'adresse de l'instruction ou l'adresse des données ne sont pas alignées, une erreur de protection, un point de rupture réglé, une division par zéro, et une condition de dépassement de capacité au cours de l'exécution d'une instruction arithmétique. Un processeur répond à une condition d'exception en exécutant un chemin 2 2752470 d'instruction d'un organe de traitement d'exception. Des exceptions sont de manière traditionnelle traitées en exécutant un jeu choisi d'instructions dépendant du type particulier de condition qui a provoqué la condition d'exception. Les mécanismes de traitement d'interruption et d'exception qui sont utilisés dans des dispositifs d'architecture de multiprocesseurs sont en général inefficaces pour être utilisés dans un système & multiprocesseurs asymétriques avec des processeurs présentant des caractéristiques dissemblables de commande et de traitement des données car les opérations de commande inhérentes au traitement d'interruption et d'exception sont rapidement et facilement effectuées par des processeurs polyvalents et de manière sensiblement plus difficile pour des processeurs vectoriels à grand contexte. Les opérations de dispositifs à multiprocesseurs qui sont traitées en utilisant des exceptions et des interruptions impliquent souvent le fait de sauvegarder l'état des processeurs, y compris le fait de sauvegarder des registres et des données qui sont actuellement en cours de traitement. Un processeur présentant de nombreux grands registres ne sauvegarde pas facilement ni ne recharge facilement l'état du processeur pendant des opérations telles qu'une commutation de contexte à processeurs multiples. Il est ainsi désiré d'avoir une architecture de multiprocesseurs qui facilite le traitement d'exception et d'interruption pour des processeurs asymétriques comprenant un grand état de machine ou un grand contexte. Conformément à un aspect de la présente invention, un dispositif d'ordinateur à multiprocesseurs comprend un ensemble de processeurs, appelés processeurs asymétriques, présentant des caractéristiques mutuellement dissemblables de commande et de traitement des données. Les processeurs asymétriques sont commandés par un système de fonctionnement unique bien que les processeurs individuels présentent des jeux d'instruction qui sont mutuellement indépendants des 3 2752470 autres processeurs. Le dispositif d'ordinateur à multiprocesseurs utilise une définition architecturale à multiprocesseurs de traitement d'interruption et d'exception dans lequel un processeur, appelé processeur de données ou vectoriel, présentant un grand état de machine et une grande largeur de données détecte des exceptions mais renvoie les opérations de traitement d'interruption d'exception vers un autre processeur, appelé processeur de commande, présentant un petit état de machine et une petite largeur de données. Le petit état de machine et la petite largeur de données du processeur de commande sont bien appropriés pour exécuter des programmes de systèmes de fonctionnement tels qu'un traitement d'interruption et d'exception étant donné que les programmes de commande impliquent de manière typique le fait de contrôler et de commander des codes et des indicateurs individuels. Au contraire, le grand état de machine et la grande largeur de données du processeur de données ou vectoriel traite de manière inefficace les tâches de commande de sorte que le renvoi du traitement différé d'interruption et d'exception vers le processeur de commande est extrêmement avantageux. Conformément à l'autre aspect de la présente invention, un dispositif d'ordinateur à multiprocesseur comprend un processeur de données qui prend un état inactif lors d'une remise à l'état initial et lorsqu'une exception est détectée. Le processeur de données entre l'état inactif de manière à faciliter la conception et la programmation du dispositif, et pour simplifier la synchronisation des processeurs au niveau de la remise à l'état initial du dispositif. Conformément à un mode supplémentaire de réalisation de la présente invention, un dispositif d'ordinateur à multiprocesseurs comprend un processeur de commande qui effectue des lectures et des enregistrements de registres de commande et d'état à l'intérieur d'un processeur de données. Le processeur de commande commande ainsi le fonctionnement du processeur de données au cours de l'exécution d'un système de fonctionnement ou de programmes d'application. Le processeur 4 2752470 de commande a accès aux registres de commande et d'état du processeur de données indépendamment de l'exécution du processeur de données de sorte que les mêmes registres de commande et d'état peuvent être accédes par le processeur de commande et le processeur de données en parallèle. Conformément à un mode additionnel de réalisation de la présente invention, un dispositif d'ordinateur à multiprocesseurs présente une définition architecturale dans laquelle le processeur de commande est amené à accéder à l'état interne, y compris aux registres de commande et d'état, du processeur de données seulement lorsque le processeur de données se trouve à l'état inactif. Cette contrainte simplifie sensiblement les interactions de programmations entre le processeur de commande et le processeur de données et protège le processeur de données contre l'entrée d'un état incohérent et incorrect. De nombreux avantages sont obtenus par l'architecture à multiprocesseurs asymétriques ainsi que par le procédé de fonctionnement décrits. Un avantage est que le modèle de programmation et la mise en oeuvre du processeur de données sont sensiblement simplifiés, même par rapport à une architecture symétrique qui utilise des processeurs multiples identiques. Diverses autres caractéristiques de l'invention ressortent d'ailleurs de la description détaillée qui suit. Des formes de réalisation de l'objet de l'invention sont représentées, à titre d'exemple non limitatifs, aux dessins annexes. La figure 1 est un schéma synoptique de type évolué illustrant un dispositif à multiprocesseurs multimédia conforme à un mode de réalisation de la présente invention. La figure 2 est un schéma synoptique montrant un processeur de signaux multimédia inclu dans le dispositif à multiprocesseurs multimédia illustré à la figure 1. La figure 3 est un schéma synoptique qui illustre un processeur de commande du dispositif à multiprocesseurs multimédia. 2752470 La figure 4 est un schéma fonctionnel du processeur de commande. La figure 5 est un schéma synoptique montrant un processeur vectoriel du processeur de signaux multimédia illustré à la figure 2. La figure 6 est un schéma synoptique montrant des chemins de données d'exécution du processeur vectoriel illustré à la figure 5. La figure 7 est un schéma synoptique montrant une interface de coprocesseur dans le processeur de signaux multimédia illustré à la figure 2. La figure 8 est un schéma synoptique illustrant une architecture de micro-programmation du processeur de signaux multimédia. La figure 9 est un organigramme qui illustre des opérations concernant le traitement d'interruption et d'exception dans le dispositif à multiprocesseurs multimédia. En se référant à la figure 1, un schéma synoptique de type évolué illustre un dispositif à multiprocesseurs multimédia 100 comprenant un processeur central 102 et un processeur de signaux multimédia 104. Un processeur central typique 102 est un processeur x86 tel qu'un processeur PentiumTM ou Pentium ProTM. Le processeur central 102 exécute des programmes basés sur des instructions et des données maintenues dans une mémoire système 116. Le processeur central 102 communique avec le processeur de signaux multimédia 104 par l'intermédiaire d'un bus système 106 tel qu'un bus PCI. Le processeur de signaux multimédia 104 fournit une interface pour divers blocs fonctionnels tels qu'un CODEC audio et de communication 108, un convertisseur A/N vidéo 110, un convertisseur N/A vidéo 112 et une mémoire tampon SDRAM de trame 114. En se référant à la figure 2, un schéma synoptique montre le processeur de signaux multimédia 104 à l'intérieur du dispositif à multiprocesseurs multimédia 100. Le processeur de signaux multimédia 104 comprend une mémoire 6 2752470 centrale de processeur de signaux numériques (PSN) 202 qui est reliée à un ensemble d'interfaces multimédia. La mémoire centrale de PSN 202 constitue le moteur de calcul du processeur de signaux multimédia 104 et comprend un processeur de commande RISC 204, un processeur vectoriel 206, un sous système antémémoire 208, un bus rapide (FBUS) 210 et un bus entrée/sortie E/O 212. Le processeur de commande 204 est un ARM7TM de 32 bits qui est conçu et fabriqué par ARM Limited, Grande Bretagne, et effectue des fonctions de traitement général tel que des opérations système à fonctionnement en temps réel, des traitements d'interruption et d'exception, une gestion des dispositifs entrée/sortie, une communication avec le processeur central 102 et analogue. Dans un mode de réalisation, le processeur de commande 204 fonctionne à 40 MHz. Le processeur de commande 104 fournité une interface pour le processeur vectoriel 206 par l'intermédiaire d'une interface de coprocesseur 242. Le processeur de commande 204 effectue un traitement d'exception en réponse à des exceptions, en général des conditions anormales qui se produisent au cours du traitement des instructions, en provoquant une modification du déroulement de commandes d'exécution. Le processeur de commande 204 répond à sept types d'exception, listés dans l'ordre d'une priorité plus élevée à une priorité plus basse, comprenant une condition de remise à l'état initial, une condition de suspension d'exécution (données), FIQ, IRQ, une condition de suspension d'exécution (pré-extraction), et une interruption de piégeage d'instruction indéfinie ou de logiciel. En se référant à la figure 3, un schéma synoptique illustre le processeur de commande ARM7 204 qui est commandé par un décodeur d'instructions et une logique de commande 302. Le processeur de commande 204 communique avec le sous système antémémoire 208 par l'intermédiaire d'un registre de données d'écriture 304 et d'un registre pipeline d'instructions et de données de lecture 306. Le processeur de commande 204 inclut un registre d'adresses 308 et un 7 2752470 incrémenteur d'adresses 310 pour adresser des données dans un bloc de registres 312 à 31x32 bits. Le processeur de commande 204 comprend une logique arithmétique telle qu'une ALU à 32 bits 314, un décaleur à tambour 316 et un multiplicateur de Booth 318. L'interface de coprocesseur 242 est couplé directement au décodeur d'instructions et à la logique de commande 302 par l'intermédiaire de lignes de signaux nOPC, nCPI, CPA et CPB qui communiquent des codes d'opération et des arguments d'instruction entre le processeur de commande 204 et le processeur vectoriel 206 par l'intermédiaire de l'interface de coprocesseur 242. La figure 4 illustre un schéma fonctionnel du processeur 204. Le processeur vectoriel 206 est le moteur de traitement de signaux numériques du processeur de signaux multimédia 104. Le processeur vectoriel 206 présente une architecture d'Instruction Unique-Données Multiples et comprend un moteur RISC pipeliné qui fonctionne sur des éléments de données multiples en parallèle afin d'effectuer des fonctions de traitement de signaux tels que des Transformés de Cosinus Discrètes (TCD), un filtrage FIR, une convolution, une estimation de mouvement vidéo et d'autres opérations de traitement. Le processeur vectoriel 206 supporte une arithmétique vectorielle dans laquelle des éléments de données multiples sont actionnés en parallèle, à la manière d'un processus vectoriel, par un ensemble d'unités d'exécution vectoriel. Le processeur vectoriel 206 exécute à la fois des opérations scalaires et des opérations vectorielles-scalaires combinées. Les éléments de données multiples du processeur vectoriel 206 sont comprimés dans un vecteur à 576 bits qui est calculé à un débit de trente deux opérations arithmétiques à virgule fixe de 8/9 bits, seize opérations arithmétiques à virgule fixe de 16 bits, ou huit opérations arithmétiques à virgule fixe ou à virgule flottante par cycle (par exemple 12,5 ns). La plupart des opérations scalaires à 32 bits sont pipelinées à une cadence d'une instruction par cycle tandis que la plupart des opérations vectorielles à 576 bits sont pipelinées à une 8 2752470 cadence d'une instruction en deux cycles. Les opérations de charge et de mise en mémoire présentent une simultanéité d'exécution avec des opérations arithmétiques et sont exécutées de manière indépendante par des circuits séparés de charge et de mise en mémoire. En se référant à la figure 5, le processeur vectoriel 206 présente quatre blocs fonctionnels comprenant une unité d'extraction d'instructions 502, un décodeur et un délivreur d'instructions 504, un chemin de données d'exécution d'instructions 506 et une unité de charge et de mise en mémoire 508. L'unité d'extraction d'instructions 502 et le décodeur et le délivreur d'instructions 504 sont inclus dans le processeur vectoriel 206 pour permettre au processeur vectoriel 206 de fonctionner de manière indépendante du processeur de commande 204. L'unité d'extraction d'instructions 502 effectue une extraction préalable des instructions et traite des instructions de déroulement de commande telles que des instructions de Branchement et de Saut vers Sous-programme. L'unité d'extraction d'instructions 502 contient une file d'attente à seize entrées d'instructions d'extraction préalable pour le train d'exécution en cours et une file d'attente à huit entrées d'instructions d'extraction préalable pour le train de cible de Branchement. L'unité d'extraction d'instructions 502 reçoit jusqu'à huit instructions provenant de l'antémémoire d'instructions dans un cycle. Le décodeur et le délivreur d'instructions 504 décodent et organisent toutes les instructions exécutées par le processeur vectoriel 206. Le décodeur traite une instruction dans un cycle dans l'ordre de réception à partir de l'unité d'extraction d'instructions 502, tandis que le délivreur organise la plupart des instructions en dérangement dépendant à la fois de la ressource d'exécution et de la disponibilité des données d'opérandes. En se référant à la figure 6, le chemin des données d'exécution d'instructions 506 comprend un fichier registre à quatre entrées 602, huit multiplicateurs parallèles 32x32 604 9 2752470 et huit ALU à 36 bits 606. Le fichier registre 602 supporte deux opérations de lecture et deux opérations d'enregistrement par cycle. Les multiplicateurs parallèles 604 produisent jusqu'à huit multiplications à 32 bits dans un format entier ou à virgule flottante, ou seize multiplications à 16 bits ou trente deux multiplications à 8 bits par cycle. Les ALU 606 exécutent soit huit opérations ALU à 36 bits dans un format entier ou à virgule flottante, soit seize opérations ALU à 16 bits, soit encore trente deux opérations à 8 bits par cycle (par exemple, 12,5 ns). Le fichier registre 602 inclut un ensemble de registres spécialisés et un ensemble de registres d'adresses de retour. Les registres spécialisés comprennent un registre de commande vectorielle et d'état (VCSR), un compteur de programme vectoriel (VPC), un compteur de programme d'exception vectoriel (VEPC), un registre de source d'interruption vectoriel (VISRC), un registre de synchronisation du processeur vectoriel et de commande (VASYNC) et d'autres registres tels que divers registres de comptage, de masquage, de dépassement de capacité et de point de rupture. Le compteur de programme vectoriel (VPC) constitue l'adresse de l'instruction suivante devant être exécutée par le processeur vectoriel 206. Le registre de source d'interruption vectoriel (VISRC) indique les sources d'interruption vers le processeur de commande 204. Les bits appropriés du VISRC sont réglées par le matériel lors de la détection d'exceptions. Les bits sont remis à l'état initial par le logiciel avant que reprenne l'exécution du processeur vectoriel 206. Tout bit contenu dans le VISRC amène le processeur vectoriel 206 à entrer l'état VPIDLE. Si le bit d'autorisation d'interruption correspondant est réglé dans un registre VIMSK de l'interface de coprocesseur 242, une interruption IRQ est signalée au processeur de commande 204. Le processeur vectoriel 206 détecte des conditions d'exceptions y compris des exceptions précises et des exceptions imprécises. Les exceptions précises sont détectées 2752470 par le processeur vectoriel 206 et rapportées avant l'instruction en défaut. Les exceptions précises comprennent une exception de point de rupture d'adresse d'instructions, une exception de point de rupture d'adresse de données, une exception d'instruction incorrecte, une exception d'un seul chemin, une exception de dépassement de capacité d'empilage d'adresses de retour, une exception de dépassement de capacité négatif d'empilage d'adresses de retour, une exception VCINT, et une exception VCJOIN. Les exceptions imprécises du processeur vectoriel 206 sont détectées et rapportées après l'exécution d'un nombre variable d'instructions qui sont plus tard, dans l'ordre du programme vers l'instruction en défaut. Les instructions imprécises comprennent une exception d'adresse d'instructions incorrecte, une exception d'adresse de données incorrecte, une exception d'adresse de données non alignée, une exception de dépassement de capacité entière, une exception de dépassement de capacité à virgule flottante, une exception d'opérande incorrecte à virgule flottante, une exception de division par zéro à virgule flottante et une exception de division par zéro entière. Le registre d'instructions d'interruption vectoriel (VIINS) est mis à jour avec l'instruction VCINT ou l'instruction VCJOIN du processeur vectoriel lorsque l'instruction est exécutée pour interrompre le processeur de commande 204. Le processeur vectoriel 206 reconnaît deux conditions particulières comprenant une instruction d'Interruption de CoProcesseur (CPINT) qui est exécutée par le processeur de commande 204 et un Dépassement de Capacité d'Empilage de Matériel qui résulte de multiples instructions de Branchement à Sous-programme exécutées par le logiciel du processeur vectoriel 206. D'autres conditions d'interruption et d'exception créées dans le processeur de signaux multimédia 104 sont traitées par le processeur de commande 204. Le processeur vectoriel 206 exécute une séquence de mise sous tension d'instructions lors de la remise à l'état il 2752470 initial du système qui place le processeur vectoriel 206 dans un état inactif (VP_IDLE). Le processeur vectoriel 206 reste dans l'état VP-IDLE jusqu'à ce que le processeur de commande 204 initialise les registres du processeur vectoriel 206 et déclenche les opérations du processeur vectoriel 206 en utilisant une instruction STARTVP du jeu d'instructions du processeur de commande. En se référant à nouveau à la figure 2, le processeur de commande 204 déclenche les opérations du processeur vectoriel 204. De manière spécifique, le processeur de commande 206 commande les interactions avec le processeur vectoriel 206 par l'intermédiaire d'extensions vers le jeu d'instructions du processeur de commande 204. Les extensions du jeu d'instructions comprennent des opérations de données de coprocesseur tel qu'une instruction STARTVP et une instruction INTVP, des transferts de données de coprocesseur, et des transferts de registre de coprocesseur, telle qu'une instruction TESTSET et des instructions MFVP, MTVP, MFER et MTER pour les registres de lecture et d'enregistrement du processeur vectoriel 206. Le processeur de commande 204 déclenche le processeur vectoriel 206 en utilisant une instruction STARTVP. L'instruction STARTVP amène le processeur vectoriel 206 à entrer un état VPRUN indiquant que le processeur vectoriel 206 est en train d'exécuter une opération. Le STARTVP ne fait rien si le processeur vectoriel 206 est déjà dans l'état VP_RUN. Aucun résultat n'est communiqué au processeur de commande 204 en réponse à l'instruction STARTVP et le processeur de commande 204 continue l'exécution à la suite de STARTVP. L'instruction STARTVP est appelée à la suite d'une instruction de format d'opérations de données de coprocesseur (CDP) qui règle un code de condition. L'instruction STARTVP est appelée en utilisant la syntaxe d'assembleur suivante: CDP {cond} p7,0, cO,cO,cO STARTVP {cond} 12 2752470 o les conditions comprennent (eg) non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl), et d'autres conditions. STARTVP n'est exécuté que si la condition est vérifiée. Le processeur de commande 204 utilise l'instruction STARTVP pour signaler au processeur vectoriel 206 une requête de démarrer l'exécution et efface automatiquement le bit d'interruption du processeur vectoriel (VISRC ) et le bit de jonction du processeur vectoriel (VISRCVIP>) du registre de la source d'interruption vectorielle (VISRC). Lors de l'appel de STARTVP, le processeur de commande 204 continue à exécuter l'instruction suivante sans attendre que le processeur vectoriel 206 commence à exécuter une opération. L'état du processeur vectoriel 206 doit être initialisé comme on le désire avant ' que STARTVP soit appelé. L'instruction STARTVP n'a aucun effet si le processeur vectoriel 206 est déjà dans l'état VP_RUN. Une exception de processeur vectoriel non disponible peut se produire pendant une instruction STARTVP. Le processeur de commande 204 arrête le processeur vectoriel 206 en utilisant une instruction de processeur vectoriel d'interruption (INTVP). L'instruction INTVP amène le processeur vectoriel 206 à entrer un état VP_IDLE indiquant que le processeur vectoriel 206 n'est pas en train d'exécuter une opération. INTVP ne fait rien si le processeur vectoriel 206 n'est pas en train d'exécuter une opération. Aucun résultat n'est communiqué au processeur vectoriel 204 en réponse à l'instruction INTVP, et le processeur de commande 204 continue l'exécution après INTVP. L'instruction INTVP est appelée après une instruction de format d'opération de données de coprocesseur (CDP) qui règle un code de condition. L'instruction INTVP n'est exécutée que si le condition est vérifiée. Ainsi, l'instruction INTVP est appelée en utilisant la syntaxe d'assembleur suivante: CDP{cond} p7,1, cO,cO,cO INTVP{cond} 13 2752470 o les conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl), et d'autres conditions. Le processeur de commande 204 utilise l'instruction INTVP pour signaler au processeur vectoriel 206 une requête d'arrêter l'exécution. Lors de l'appel de INTVP, le processeur de commande 204 continue à exécuter l'instruction suivante sans attendre que le processeur vectoriel 206 s'arrête. Un déplacement à partir de l'instruction de registre étendu (MFER) est utilisé de manière typique à la suite de l'instruction INTVP pour déterminer si le processeur vectoriel 206 s'est arrêté. L'instruction INTVP n'a aucun effet si le processeur vectoriel 206 est déjà dans l'état VP_IDLE. Une exception de processeur vectoriel non disponible peut se produire au cours d'une instruction INTVP. Le processeur de commande 204 essaie l'état de fonctionnement du processeur vectoriel 206, y compris un essai de synchronisation, en utilisation une instruction d'essai et de réglage (TESTSET). TESTSET lit un registre étendu d'utilisateur et règle le bit 30 du registre à 1, en fournissant une synchronisation de type producteur/ utilisateur entre le processeur vectoriel 206 et le processeur de commande 204. TESTSET amène le processeur de commande 204 à être bloqué jusqu'à ce que le registre soit transféré. Le processeur de commande 204 requiert l'instruction TESTET suivant une instruction d'opérations de transfert de registre de coprocesseur (MRC, MCR) qui règle un code de condition. L'instruction TESTSET n'est exécutée que si la condition est vérifiée. L'instruction TESTSET est appelée en utilisant la syntaxe d'assembleur suivante: MRC{cond} p7,0,Rd,cO,cER,0 TESTSET{cond} Rd, RNAME o les conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pi), et d'autres conditions. Rd est un registre du processeur de 14 2752470 commande 204. ER est un registre étendu de l'interface de coprocesseur 242 et RNAME se réfère à une mnémonique de registre architecturellement spécifiée, telle que UER1 ou VASYNC. D'autres instructions du processeur de commande transfèrent un registre scalaire/usage spécialisé du processeur vectoriel vers un registre de processeur de commande. Encore d'autres instructions du processeur de commande transfèrent un registre du processeur de commande vers un registre scalaire/spécialisé du processeur vectoriel. Par exemple, une instruction MFVP déplace des données du registre scalaire/spécialisé du processeur vectoriel vers un registre général du processeur de commande 204. L'instruction MFVP est appelée à la suite d'une instruction d'opérations de transfert du registre de coprocesseur (MRC, MCR) qui règle un code de condition. L'instruction MFVP n'est exécutée que si la condition est vérifiée. L'instruction MFVP est appelée en utilisant la syntaxe d'assembleur suivante: MRC{cond} p7,Rd,CRn, CRm,0 MTVP{cond} Rd,RNAME oles conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl) et d'autres conditions. Le code de numéro de coprocesseur p7 désigne le processeur vectoriel 206. Rd est un registre du processeur de commande 204. CRn et CRm sont des registres scalaire/spécialisé du processeur vectoriel 206. RNAME se réfère à une mnémonique de registre architecturellement spécifiée telle que SPO ou VCSR. Le processeur de commande 204 appelle l'instruction MFVP pour déplacer des données des registres scalaire/spécialisé CRn et CRm du processeur vectoriel 206 vers le registre Rd du processeur de commande. Une exception de processeur vectoriel indisponible peut se produire pendant une instruction NFVP. Un déplacement vers l'instruction du processeur vectoriel (MTVP) déplace les données vers un registre 2752470 scalaire/spécialisé du processeur vectoriel depuis un registre général du processeur de commande 204. L'instruction MTVP est appelée à la suite d'une instruction d'opérations de transfert de registre de coprocesseur (MRC, MCR) qui règle un code de condition. L'instruction MTVP n'est exécutée que si la condition est vérifiée. L'instruction MTVP est appelée en utilisant la syntaxe d'assembleur suivante: MRC{cond} p7,1,Rd,CRn,CRm,O MTVP{cond} RNAME, Rd o les conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl), et d'autres conditions. Le code de numéro de coprocesseur p7 désigne le processeur vectoriel 206. Rd est un registre du processeur de commande 204. CRn et CRm sont des registres scalaire/spécialisé du processeur vectoriel 206. RNAME se réfère à une mnémonique de registre architecturellement spécifiée telle que SPO ou VCSR. Le processeur de commande 204 appelle l'instruction MTVP pour déplacer des données du registre Rd du processeur de commande vers les registres scalaire/spécialisé CRn et CRm du processeur vectoriel 206. Une exception de processeur vectoriel indisponible peut se produire pendant une instruction MTVP. MFVP et MTVP ne doivent être exécutés que lorsque le processeur vectoriel 206 se trouve dans un état VP_IDLE. Aucune communication directe n'a lieu entre le processeur de commande 204 et le processeur vectoriel 206. Chaque transfert utilisé un stockage intermédiaire qui est fourni, dans le mode de réalisation illustré, par l'interface de coprocesseur 242. Les instructions MFVP et MTVP permettent au processeur de commande 204 de librement lire et enregistrer des registres de commande et d'état à l'intérieur du processeur vectoriel 206. Le processeur de commande 204 commande ainsi le fonctionnement du processeur vectoriel 206 pendant l'exécution du système opératoire ou des programmes 16 2752470 d'application. Les instructions MFVP et MTVP ne doivent être exécutées que lorsque le processeur vectoriel 206 est dans un état VP_IDLE parce que le processeur de commande 204 a accès aux registres de commande et d'état du processeur vectoriel 206 indépendamment de l'exécution du processeur vectoriel 206 de sorte que les mêmes registres de commande et d'état peuvent être accédés par le processeur de commande 204 et le processeur vectoriel 206 en parallèle. Un déplacement vers l'instruction de registre étendu (MTER) déplace des données depuis le processeur de commande 204 jusqu'à un registre étendu spécifié. L'instruction MTER est appelée à la suite d'une instruction d'opérations de transfert de registre de coprocesseur (MRC, MCR) qui règle un code de condition. L'instruction MTER n'est exécutée que si la condition est vérifiée. L'instruction MTER est appelée en utilisant la syntaxe d'assembleur suivante: MRC{cond} p7,1,Rd,cP,CER, 0 MTER{cond} RNAME,Rd o les conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl), et d'autres conditions. Le code de numéro de coprocesseur p7 désigne le processeur vectoriel 206. Rd est un registre du processeur de commande 204. P désigne un coprocesseur choisi et ER désigne un registre étendu du coprocesseur P. RNAME se réfère à une mnémonique de registre architecturellement spécifiée telle que PER0 ou CSR. Le processeur de commande 204 appelle l'instruction MTER pour déplacer des données du registre Rd du processeur de commande vers le registre étendu désigné ER du coprocesseur désigné P. Une violation de protection pendant une tentative d'accès vers le coprocesseur désigné peut se produire pendant une instruction MTER. Un déplacement depuis l'instruction de registre étendu (MFER) déplace les données d'un registre étendu d'un coprocesseur désigné vers un registre du coprocesseur de commande 204. L'instruction MFER est appelée ensuite vers une 17 2752470 instruction d'opérations de transfert de registre de coprocesseur (MRC, MCR) qui règle un code de condition. L'instruction MFER n'est exécutée que si la condition est vérifiée. L'instruction MFER est appelée en utilisant la syntaxe d'assembleur suivante: MRC{cond} p7,2,Rd,cP,cER,0 MTER{cond} Rd, RNAME o les conditions comprennent égal (eg), non égal (ne), jeu de report (jr), effacer report (er), moins (mi), plus (pl), et d'autres conditions. Le code de numéro de coprocesseur p7 désigne le processeur vectoriel 206. Rd est un registre du processeur de commande 204. P désigne un coprocesseur choisi et ER désigne un registre étendu du coprocesseur P. RNAME se réfère à une mnémonique de registre architecturellement spécifiée telle que PERO ou CSR. Le processeur de commande 204 appelle l'instruction MFER pour déplacer des données depuis le registre étendu désigné ER du coprocesseur désigné P vers le registre Rd. Une violation de protection pendant une tentative d'accès vers le coprocesseur désigné peut se produire pendant une instruction MTER. Un schéma synoptique de l'interface de coprocesseur 242 est montré à la figure 7. L'interface de coprocesseur 242 complète la fonctionnabilité du processeur de commande 204 en ajoutant des registres et des fonctions logiques pour mettre en oeuvre des instructions qui étendent le jeu d'instructions du processeur de commande 204. L'interface de coprocesseur 204 comprend des registres pour communiquer entre le processeur de commande 204 et le processeur vectoriel 206. L'interface de coprocesseur 242 sert également de tampon pour communiquer des données et des signaux entre des structures qui fonctionnent à des cadences d'horloge différentes. Dans un mode de réalisation, le processeur de commande focntionne à une cadence de 40 MHz et le processeur vectoriel 206 fonctionne à 80 MHz. 18 2752470 L'interface de coprocesseur 242 comprend un décodeur 702, une machine d'état 704, un bloc de registres étendus privilégiés 706 et un bloc de registres étendus d'utilisateurs 708. Les registres du bloc de registre étendu privilégiés 706 et du bloc de registres étendus d'utlisateurs 708 peuvent être lus et enregistrés par le processeur de commande 204 et par le processeur vectoriel 206. Le décodeur 702 décode des instructions du jeu d'instructions du processeur de commande. Le jeu d'instructions du processeur de commande comprend des instructions qui peuvent être exécutées sur le processeur de commande 204 et des instructions étendues qui ne sont pas exécutées par le processeur de commande 204 mais sont au lieu de cela exécutées par l'interface de coprocesseur 204 pour mettre en oeuvre une fonctionnalité de coprocesseur spécial. Le décodeur 702 décode des instructions du processeur de commande, détecte des instructions étendues et fournit des instructions d'extension détectées à la machine d'état 704 en vue d'une exécution. La machine d'état 704 inclut une logique pour mettre en oeuvre les instructions d'extension. Le bloc de registres étendus privilégiés 706 présente des registres étendus qui sont accédés au cours de l'exécution d'instructions spéciales par le processeur de commande 204. Le bloc de registres étendus privilégiés 706 comprend un registre de commande (CTR), un registre de version de processeur (PVR), un registre de masque d'interruption vectorielle (VIMSK), un registre de point de rupture d'adresse d'instructions (AIABR), un registre de point de rupture d'adresse de données (ADABR), un registre de zone de travail (SPREG) et un registre d'état (STR). Le bloc de registres étendus privilégiés 706 est utilisé principalement pour une synchronisation du processeur de commande et du processeur vectoriel 206. Dans un mode de réalisation, les registres d'un bloc de registres étendus d'utilisateurs 708 ne présentent qu'un seul bit, correspondant au bit , de sorte que des bits et sont lus comme étant 0. Le bloc de registres étendus 19 2752470 d'utilisateurs 708 comprend un indicateur d'état du processeur vectoriel (VPSTATE) et un indicateur de synchronisation du processeur vectoriel et du processeur de commande (VASYNC). VPSTATE indique que le processeur vectoriel 206 est dans l'état VPRUN quand le bit est réglé. Lorsque le bit est remis à l'état initial, le processeur vectoriel 206 est dans l'état VP_IDLE et est arrêté avec le compteur de programme adressant l'instruction suivante à exécuter. VASYNC permet une synchronisation producteur-utilisateur entre le processeur vectoriel 206 et le processeur de commande 204. L'indicateur VASYNC est positionné ou remis à l'état initial par l'exécution d'une instruction VMOD dans le processeur vectoriel 206. VASYNC est également positionné ou remis à l'état initial par un processus du processeur de commande 204 utilisant un déplacement depuis le registre étendu (MFER), une instruction de déplacement vers le registre étendu (MTER) ou l'instruction TESTEST. Lors de la remise sous tension, tous les bits du bloc de registres étendus privilégiés 706 et du bloc de registres étendus d'utilisateurs 708 sont remis à l'état initial de sorte que le processeur vectoriel 206 est inactif. Le registre de masque d'interruption vectoriel (VIMSK) commande le rapport des exceptions se produisant à l'intérieur du processeur vectoriel 206 vers le processeur de commande 204. Les bits du VIMSK lorsqu'ils sont réglés en même temps qu'un bit correspondant du registre de source d'interruption vectoriel (VISRC), permettent à l'exception d'interrompre le processeur de commande 204. Le registre VISRC comprend un ensemble de bits indiquant quelle est la source d'un ensemble d'exceptions et d'interruptions. Les bits du registre VIMSK comprennent une autorisation d'Interruption de Point de Rupture d'Adresse de Données (DABE), une autorisation d'interruption de point de rupture d'adresse d'instruction (IABE), et une autorisation d'interruption d'un seul chemin (SSTPE). Le VIMSK commande en outre des bits d'autorisation d'interruption de dépassement 2752470 de capacité (FOVE), d'opérande incorrecte (FINVE) et de division par zéro (FDIVE), à virgule flottante, ainsi que les bits d'autorisation d'interruption de dépassement de capacité (IOVE) et de division par zéro (IDIVE), entier. Le VIMSK commande également une autorisation d'interruption VCINT (VIE), une autorisation d'interruption VCJOIN (VJE) et une autorisation de commutation de contexte (CSE). Le processeur vectoriel 206 interagit avec le processeur de commande 204 en envoyant des signaux au processeur de commande 204. De manière spécifique, le processeur vectoriel 206 comprend une logique fournissant un accès de lecture et un accès d'enregistrement au processeur de commande 204. Le processeur vectoriel 206, en utilisant une instruction VCJOIN et une instruction VCINT, envoie des signaux vers un processeur de commande 204 de manière indirecte par l'intermédiaire de registres étendus d'utilisateurs en indiquant que le processeur vectoriel 206 a exécuté une instruction de synchronisation. Le processeur vectoriel 206 envoie aussi directement des signaux au processeur de commande 204 par l'intermédiaire d'une requête d'interruption indiquant que le processeur vectoriel 206 a arrêté l'exécution et a entré l'état VPIDLE. Le processeur vectoriel 206 exécute deux instructions pour envoyer des signaux au processeur de commande 204. L'instruction VCJOIN (VCJOIN n) se réunit conditionnellement au processeur de commande 204 et amène le processeur vectoriel 206 à s'arrêter et à entrer l'état VP_IDLE. Un compteur de programme (non représenté) du processeur vectoriel 206 adresse l'instruction après l'instruction VCJOIN. L'instruction VCINT (VCINT n) interrompt de manière conditionnelle le processeur de commande 204, en amenant le processeur vectoriel 206 à s'arrêter et à entrer l'état VP_IDLE. Le compteur de programme du processeur vectoriel 206 adresse l'instruction après l'instruction VCINT. Les instructions VCINT et VCJOIN sont des instructions exécutées par le processeur vectoriel 204 qui sont classées en classe d'écoulement de commande. Les instructions d'écoulement de commande comprennent diverses 21 2752470 instructions conditionnelles telles que des instructions de branchement, de décrément et de branchement, de saut, de retour de sous- programme, de commutation et de barrière de contexte. Un ensemble d'instructions en cours d'exécution sur un processeur vectoriel 206, comprenant une instruction de commutation de contexte conditionnel (VCCS), une instruction d'interruption conditionnelle (VCINT) et une instruction de liaison conditionnelle (VCJOIN), sont utilisés pour traiter des interruptions et des exceptions. L'instruction d'interruption conditionnelle (VCINT), si elle est autorisée, arrête l'exécution du processeur vectoriel 206 et interrompt le processeur de commande 204. L'instruction VCINT peut créer une interruption VCINT. La syntaxe d'assembleur de l'instruction d'interruption conditionnelle (VCINT) est comme suit: VCINT.cond #ICODE o cond est un code de condition définie et #ICODE est une valeur à 23 bits qui identifie une constante devant être utilisée par le processeur de commande 204. Le code de condition (cond) est choisi à partir des codes de condition: inconditionnel (in), inférieur à (ia), égal à (ea), inférieur ou égal à (ie), plus grand que (pq), non égal à (ne), supérieur ou égal à (sa) et dépassement de capacité (dc). L'opération VCINT est décrite par un pseudo-code comme suit: Si ((cond==VCSR[SO, GT, EQ, LT]) I (cond==in)) { VISRC = 1; VIINS = [instruction VCINT.cond #ICODE]; VEPC = VPC; si (VIMSK VPSTATE = VP IDLE; } autrement VPC = VPC + 4; 22 2752470 En conséquence, si le registre de commande vectoriel et d'état (VCSR) est en concordance avec le code de condition ou que le code de condition est inconditionnel, alors le bit d'interruption vectoriel du registre de la source d'interruption vectoriel (VISRC) est réglé, le registre d'instruction d'interruption vectoriel (VIINS) est chargé avec l'instruction identifiée par le paramètre #ICODE, et le compteur du programme d'exception vectoriel (VEPC) est chargé avec la valeur provenant du compteur de programme du processeur vectoriel 206. Le registre d'instructions d'interruption vectoriel (VIINS) est chargé avec un identificateur de l'instruction VCINT, la condition, et l'argument #ICODE pour appliquer au processeur de commande 204 une information concernant: (1) la raison pour laquelle le processeur vectoriel 206 est en cours d'interruption du processeur de contrôle 204 et (2) une valeur constante devant être utilisée par le processeur de commande 204 en exécutant le programme de service d'interruption logiciel. Si le bit d'autorisation d'interruption du processeur vectoriel du registre VIMSK est réglé, alors le processeur vectoriel 206 envoie un signal d'interruption (IRQ) au processeur de commande 204. L'état (VP_STATE) du processeur vectoreil 206 est réglé à l'état inactif. Cependant, si le code de condition n'est pas inconditionnel et que le code de condition n'est pas en concordance avec le registre de commande vectoreil d'état (VCSR), alors l'instruction VCINT est ignorée à l'exception que le compteur du programme est incrémenté de quatre. La liaison conditionnelle avec l'instruction de tâche du processeur de commande (VCJOIN), si elle est autorisée, arrête l'exécution du processeur vectoriel 206 et réunit l'opération de tâche dans le processeur de commande 204. L'instruction VCJOIN peut créer une interruption VCJOIN. La syntaxe d'assembleur de l'instruction d'interruption conditionnelle (VCJOIN) est comme suit: VCJOIN.cond #Offset 23 2752470 o cond est un code de condition défini et #Offset est une valeur à 23 bits qui identifie le décalage par rapport à l'emplacement de l'instruction VCJOIN dans la mémoire du processeur vectoriel 206 d'un sous-programme du processeur vectoriel qui doit être ensuite rendu actif. L'instruction VCJOIN rend actif un sous-programme de service d'interruption qui s'exécute dans le processeur de commande 204. Le processeur de commande 204 sauvegarde le paramètre #Offset et effectue un programme de service d'interruption défini. Pendant que le programme de service d'interruption est terminé, le processeur de commande 204 effectue des opérations définies et règle des registres du processeur vectoriel 206 en vue d'un traitement ultérieur. A la fin du programme de service d'interruption, le processeur de commande 204 démarre le processeur vectoriel 206 en utilisant une instruction STARTVP et désigne l'adresse de sauvegarde #Offset en tant qu'emplacement d'un sous-programme au niveau duquel le processeur vectoriel 206 doit commencer l'exécution. L'argument décalé est utilisé par le processeur de commande 204 à la manière d'une instruction de branchement pour diriger la séquence d'instructions exécutée par le processeur de commande 204. Un exemple de l'utilisation de l'instruction VCJOIN est donné dans la demande de brevet US 08/699 280 intitulée "EFFICIENT CONTEXT SAVING AND RESTORING IN MULTIPROCESSORS", S.P. Song et al., et à laquelle il est possible de se référer. Le code de condition (cond) est choisi à partir des codes de condition: inconditionnel (In), inférieur à (ia), égal à (ea), inférieur ou égal à (ie), plus grand que (pq), non égal à (ne), supérieur ou égal à (sa) et dépassement de capacité (dc). L'opération VCJOIN est décrite par un pseudo-code comme suit: Si ((cond==VCSR[SO,GT,EQ,LT]) 1 (cond==in)) { {VISRC = 1; VIINS = [VCJOIN.cond instruction #Offset]; VEPC = VPC; 24 2752470 si (VIMSK ==1) int de processeur de commande de signaux; VPSTATE = VP IDLE; } autrement VPC = VPC+4; En conséquence, si le registre de commande vectoriel et d'état (VCSR) est en concordance avec le code de condition ou que le code de condition est inconditionnel, alors le bit de liaison vectoriel du registre de la source d'interruption vectoriel (VISRC) est réglé, le registre d'instruction d'interruption vectoriel (VIINS) est chargé avec l'instruction identifiée par le paramètre #Offset, et le compteur du programme d'exception vectoriel (VEPC) est chargé avec la valeur provenant du compteur de programme du processeur vectoriel 206. Le registre d'instructions d'interruption vectoriel (VIINS) est chargé avec un identificateur de l'instruction VCJOIN, la condition et l'argument #Offset pour appliquer au processeur de commande 204 une information concernant (1) la raison pour laquelle le processeur vectoriel 206 est en cours d'interruption du processeur de commande 204 et (2) le décalage par rapport à une adresse ou un label de la mémoire d'instructions du processeur vectoriel 206 indiquant un décalage de branchement pour diriger l'écoulement de la séquence d'instructions du programme du processeur vectoriel lorsque le processeur de commande 204 rend à nouveau actif le processeur vectoriel 206. L'utilisation d'une souplesse de décalage de branchement permet au processeur vectoriel 206 de diriger la séquence de commande exécutée par le processeur de commande 204 en réponse à une requête d'interruption. Si le bit d'autorisation de liaison du processeur vectoriel du registre VIMSK est réglé, alors le processeur vectoriel 206 envoie un signal d'interruption (IRQ) au processeur de commande 204. L'état (VP_STATE) du processeur vectoriel 206 est réglé à l'état inactif. Cependant, si le code de condition n'est pas inconditionnel et que le code de commande n'est pas en 2752470 concordance avec le registre de commande vectoriel et d'état (VCSR), alors l'instruction VCJOIN est ignorée à l'exception que le compteur de programme est incrémenté de quatre. L'instruction de commutation de contexte conditionnel (VCCS) effectue un saut immédiat (non retardé) vers un sous- programme de commutation de contexte si le bit d'autorisation de commutation de contexte du registre VIMSK, VIMSK , est vérifié. Si VIMSK est vérifié, une adresse de retour dans VPC+4 est sauvegardée sur la pile d'adresses de retour. S'il n'en est pas ainsi, l'exception se poursuit à l'adresse VPC+4. L'instruction VCCS peut créer une exception de dépassement de capacité de la pile d'adresses de retour. La syntaxe d'assembleur de l'instruction de commutation de contexte conditionnel (VCCS) est comme suit: VCCS #Offset o #Offset est une valeur à 23 bits qui identifie l'emplacement du sous-programme de commutation de contexte. L'opération VCCS est décrite par un pseudo-code comme suit: Si VIMSK == 1) { si (VSP > 15) { VISRC = 1; processeur de commande de signaux avec RASO; VPSTATE = VP_IDLE; } autrement { RSTACK[VSP ]=VPC+4; VSP = VSP +1; VPC + VPC + 4; } autrement VPC = VPC+4; En conséquence, si le bit d'autorisation de commutation de contexte du registre VIMSK est réglé, l'indicateur de pile de retour (VSP) est essayé en vue du débordement de capacité. Si une condition de débordement de capacité s'est produite, le bit de dépassement de capacité de la pile d'adresses de 26 2752470 retour du registre de la source d'interruption vectoriel (VISRC) est réglé, le processeur vectoriel 206 envoie une exception de dépassement de capacité de la pile d'adresses de retour au processeur de commande 204 et l'état (VP_STATE) du processeur vectoriel 206 est réglé à l'état inactif. Si une condition de dépassement de capacité ne s'est pas produite, alors le compteur de programme incrémenté de quatre est poussé sur la pile d'adresses de retour (RSTACK), l'indicateur de pile de retour (VSP) est incrémenté de 1 et le compteur de programme (VPC) du processeur vectoriel 206 est incrémenté par le produit étendu du signe de #Offset fois quatre. Si le bit d'autorisation de commutation de contexte du registre VIMSK n'est pas réglé, alors l'instruction VCCS est ignorée à l'exception que le compteur de programme est incrémenté de quatre. Le processeur de commande 204 et le processeur vectoriel 206 fonctionnent de manière indépendante, en parallèle, une fois que les opérations du processeur vectoriel 206 commencent à être exécutées après l'exécution de l'instruction STARTVP par le processeur de commande 204. Les opérations indépendantes et parallèles du processeur de commande 204 et du processeur vectoriel 206 sont synchronisées en utilisant des instructions de commande spéciales. Le support de l'exécution concurrente de deux pas: un sur le processeur de commande 204 et un autre sur le processeur vectoriel 206, augmente de manière avantageuse la vitesse d'exécution de la tâche et facilite l'adaptation du fonctionnement du code d'instruction sur le processeur de commande 204 à une variété de processeurs de la famille MSP de processeurs. Dans le mode de réalisation illustré, le processeur vectoriel 206 fonctionne à une cadence de 80 MHz. En se référant à nouveau à la figure 2, le sous système d'antémémoire 208 comprend une antémémoire de données 214 (par exemple, 5 kilo-octets), une antémémoire d'instructions (par exemple, 2 kilo-octets), et une ROM d'antémémoire 218 (par exemple 16 kilo-octets) et fonctionne de manière typique à la même vitesse que le processeur vectoriel 206 (80 MHz). 27 2752470 Dans un mode de réalisation, le sous sytème d'antémémoire 208 comprend une capacité de stockage de 1 kilo-octet d'instructions et une capacité de stockage de 1 kilo-octet de données pour le processeur de commande 204, 1 kilo-octet de capacité de stockage d'instruction et 4 kilo-octets de capacité de stockage de données pour le processeur vectoriel 206, et un partage de 16 kilo-octets de ROM d'instructions intégrés et d'antémémoire de données pour l'ensemble du processeur de commande 204 et du processeur vectoriel 206. Le sous système d'antémémoire 208 fournit une interface pour le processeur de commande 204 par l'intermédiaire de bus de données à 32 bits et fournit une interface pour le processeur vectoriel 206 par l'intermédiaire de bus de données à 128 bits. La ROM d'antémémoire 218 comprend un logiciel d'initialisation de uROM, un logiciel de diagnostic d'auto- test, un logiciel de gestion de divers systèmes, des programmes de bibliothèque et une antémémooire pour des instructions choisies et des constantes de données. De manière spécifique, la ROM d'antémémoire 218 comprend un organe de traitement d'exception d'instructions et des organes de traitement d'interruption de dispositifs entrée et sortie 0,1,2,3 pour le processeur de commande 204. La ROM d'antémémoire 218 comprend également un organe de traitement d'interruption du processeur vectoriel et un organe de traitement d'exception du point de rupture du processeur vectoriel qui s'exécutent dans le processeur de commande 204. Le FBUS 210 fournit une interface pour un ensemble de périphériques FBUS comprenant, par exemple, une interface de bus PCI à 32 bits 220, un organe de commande de mémoire SDRAM à 64 bits, un organe de commande DMA à 8 canaux 224, un bloc logique ASIC d'utilisateur 226 et un organe de déplacement de données mémoire 228. L'interface de bus PCI 220 fournit une interface pour le bus système 106 et fonctionne, par exemple, à 33 MHz. Le bloc logique ASIC d'utilisateur 226 fournit une logique de commande pour mettre en oeuvre une fonctionnabilité adaptée aux besoins particuliers de l'utilisateur, si cela est désiré. Le bloc logique ASIC 28 2752470 d'utilisateur 226, dans un mode de réalisation, fournit 10 kiloportes comprenant des interfaces à divers dispositifs analogiques CODEC et d'entrée/sortie (E/S) spécifiques d'utilisateur. L'organe de déplacement de données mémoire 228 transfère des données DMA depuis le processeur central 102 à la mémoire STRAM 230 qui est locale par rapport au processeur de signaux multimédia 104. Le bus d'entrée/sortie (E/O) 212 fournit une interface pour un ensemble de dispositifs à bus E/O comprenant, par exemple, un processeur de train de bits 232, une ligne série UART 224, un circuit à rythmeurs 236, un organe de commande d'interruption 238, et un registre spécial 240. Le processeur de train de bits 232 traite le train de bits vidéo. Le registre spécial 240 est utilisé pour un traitement d'initialisation et d'interruption commandé par logiciel. En se référant à la figure 8, un schéma synoptique illustre l'architecture de logiciel et de micro-programmation 800 du processeur de signaux multimédia 104 comprenant un logiciel d'éléments de système MPS 802 s'exécutant sur le processeur de signaux multimédia 104 et un logiciel de système d'applications PC et de fonctionnement 808 s'exécutant sur le processeur central 102. Le processeur de signaux multimédia 104 est commandé par une micro- programmation comprenant une bibliothèque de micro- programmation à vecteur DSP 804 qui s'exécute sur le processeur vectoriel 206 et un bloc de fonctions de gestion système 806 qui s'exécute sur le processeur de commande 204. La bibliothèque de micro-programmation à vecteur DSP 804 et le bloc de fonctions de gestion système 806 sont inclus dans le logiciel des éléments de système MSP 802. L'architecture 800 sépare de manière avantageuse la fonctionnalité de traitement des signaux des opérations de commande d'application centrale afin de simplifier le développement du logiciel, améliorer la gestion de la conception du logiciel et réduire les frais de développement et d'entretien des applications. 29 2752470 Le logiciel des éléments de système MSP 802 s'exécute exclusivement sur le processeur de commande 204 et comprend une partie résidante à temps réel MSP 810, un module de bibliothèque multimédia 812, le bloc de fonctions de gestion de système 806 et la bibliothèque de micro- programmation à vecteur DSP 804. La partie résidante à temps réel MSP 810 est de manière typique responsable pour fournir une interface pour le processeur central 102, la gestion de ressource, le traitement du dispositif E/O et la plupart des traitements d'interruption et d'exception. La partie résidante à temps réel MSP 810 comprend un logiciel pour fournir une interface pour des logiciels WindowsTM et Windows NTTM s'exécutant dans le processeur central 102. La partie résidante à temps réel MSP 810 comprend également un logiciel pour sélectionner et télécharger un micro-programmation d'application choisie depuis le processeur central 102, un logiciel pour organiser des tâches devant être exécutées dans le processeur de commande 204 et dans le processeur vectoriel 206, et un logiciel permettant de gérer des ressources système du processeur de signaux multimédia 104 comprenant des dispositifs à mémoire et E/G. La partie résidante à temps réel MSP 810 comprend un logiciel pour synchroniser une communication entre des tâches du processeur de signaux multimédia 104 et un logiciel pour rapporter des conditions reliées au MSP d'interruption d'exception et d'état. La bibliothèque de micro-programmation à vecteur DSP effectue sensiblement toutes les fonctions de traitement de signaux numériques. La bibliothèque de micro-programmation à vecteur DSP 804 commande également des interruptions spéciales spécifiques telles qu'une Interruption de Coprocesseur qui est émise par le processeur de commande 204 vers le processeur vectoriel 206, ou une Exception de Dépassement de Capacité de Pile de Matériel, qui est créée à l'intérieur du processeur vectoriel 206. * Le module de bibliothèque multimédia 812 effectue des fonctions de traitement de communication comprenant une communication de données, une communication vidéo et audio 2752470 MPEG, une communication de codage et de synthèse de parole, une communication audio compatible SoundBlasterTM, et analogue. La partie résidante à temps réel MPS 810 est un système de fonctionnement en temps réel, robuste, à multitache, et pré- vidé comprenant des perfectionnements qui facilitent des applications multimédia s'exécutant sur le processeur de signaux multimédia 104. Le logiciel d'applications PC et de système de fonctionnement 808 s'exécutant dans le processeur central 102 commande le processeur de signaux multimédia 104 en lisant et en enregistrant des registres de commande et d'état MSP par l'intermédiaire du bus système 106, et en enregistrant vers des structures à données partagées qui sont résidentes pour la mémoire système 116 et résidentes pour le processeur de signaux multimédia 104. L'exécution du programme MSP commence avec le processeur de commande 204 qui exécute un premier train d'exécution. Le processeur de commande 204 peut lancer un second train d'exécution indépendant dans le processeur vectoriel 206. Les opérations du processeur de commande 204 et du processeur vectoriel 206 sont synchronisées par l'intermédiaire d'instructions de coprocesseur spécifiques qui fonctionnent dans le processeur de commande 204, comprenant des instructions STARTVP, INTVP et TESTVP, ainsi que des instructions spéciales s'exécutant dans le processeur vectoriel 206, comprenant des instructions VJOIN et VINT. Un transfert de données entre le processeur de commande 204 et le processeur vectoriel 206 est effectué en utilisant des instructions de déplacement de données exécutées dans le processeur de commande 204. Après mise sous tension, le processeur de signaux multimédia 104 entre de manière automatique une séquence d'auto-essai de manière à essayer pleinement la fonctionnabilité. La séquence d'auto- essai comprend l'initialisation de tous les registres du processeur de signaux multimédia 104 et l'exécution d'un diagnostic d'auto- essai sur puce pour vérifier la fonctionnabilité des éléments 31 2752470 du processeur de signaux multimédia 104. A la fin de la séquence d'autoessai, le processeur de signaux multimédia 104 exécute un logiciel d'éléments de système MSP 802 qui charge et exécute un logiciel d'initialisation MSP et charge et exécute la partie résidente à temps réel MSP 810. Le processeur de signaux multimédia 104 supporte trois types d'opération de remise à l'état initial comprenant une remise à l'état initial du système à commande par matériel par l'intermédiaire du bus PCI, une remise à l'état initial du système à commande par logiciel par l'intermédiaire du bit de Remise à l'Etat Initial du Système PCI du registre de commande MSP, et un redémarrage à commande par logiciel par l'intermédiaire du processeur de commande 204 et d'un bit de redémarrage vectoriel du registre de commande MSP. En se référant à la figure 9, un organigramme illustre des fonctionnements concernés par le traitement d'interruption et d'exception du système à multiprocesseurs multimédia 100. Le processeur vectoriel 206 effectue des fonctions de commande et de gestion très limitées à l'intérieur du système à multiprocesseurs multimédia 100. De manière spécifique, bien que le processeur vectoriel 206 génère des exceptions, le processeur vectoriel 206 n'inclut pas une capacité à traiter des exceptions. Au lieu de cela, les exceptions et l'initialisation de remise à l'état initial sont traitées par le processeur de commande 204. En outre, le processeur de commande 204 n'est autorisé à lire ou à enregistrer le processeur vectoriel 206 que lorsque le processeur vectoriel 206 est inactif. En conséquence, le processeur de commande 204 fonctionne en tant que processeur "commandant" et le processeur vectoriel 206 fonctionne en tant que processeur "commandé" sous la commande du processeur commandant. De cette façon, le système à multiprocesseurs multimédia 100 comprend un ensemble de processeurs qui sont asymétriques en ce sens que le processeur vectoriel 206 et le processeur de commande 204 présentent des caractéristiques dissemblables de commande et de traitement de données. Les 32 2752470 processeurs asymétriques sont commandées par un système de fonctionnement unique. Le processeur vectoriel 206 et le processeur de commande 204 présentent des jeux d'instructions qui sont mutuellement indépendants. Le système à multiprocesseurs multimédia 100 utilise une définition architecturale à multiprocesseurs de traitement d'interruption et d'exception dans lequel le processeur vectoriel 206 présente un grand état de machine ou un grand context ainsi qu'une grande largeur de données et plusieurs registres. Dans un mode de réalisation pris à titre d'exemple, un processeur vectoriel 206 présente une largeur de données de 128 bits avec des registres vectoriels à 64288 bits, plus de 80 registres scalaires à 32 bits et 4 kilo- octets de mémoire de travail. Le grand état de machine du processeur vectoriel 206 comprend un nombre relativement grand de registres avec les registres qui présentent un relativement grand nombre de bits. Le processeur vectoriel 206 est très efficace pour traiter de grandes structures de données telles que des réseaux ou des vecteurs, mais il n'est pas optimisé pour traiter de petites structures de données telles que des bits et des indicateurs. Ainsi, le processeur vectoriel 206 comprend des circuits pour détecter des exceptions mais renvoie les opérations de traitement d'interruption et d'exception vers le processeur de commande 204. Le processeur de commande 204 présente un petit état de machine et une petite largeur de données, par exemple 16 ou 32 bits, lesquels sont avantageux pour exécuter des programmes de système de fonctionnement tels qu'un traitement d'interruption et d'exception car les programmes de commande impliquent de manière typique le contrôle et la commande de codes et d'indicateurs individuels. Le processeur vectoriel 206 détecte une condition d'exception et, au lieu de satisfaire à la condition, envoie un signal d'interruption vers le processeur de commande 204 et entre un état inactif et reste dans l'état inactif jusqu'à ce que les conditions ou les sources qui ont provoqué l'exception soient prises en charge par des opérations du 33 2752470 processeur de commande 204. La commande du système à multiprocesseurs multimédia 100 est simplifiée car les opérations de commande d'exception et d'interruption n'ont pas besoin d'être coordonnées, puisque toutes les opérations de commande sont effectuées par le processeur de commande 204 seul. Le processeur vectoriel 206 fonctionne dans un état d'exécution (VP_RUN) et un état inactif (VP_IDLE), lesquels sont définis en accord avec l'architecture MSP, de manière à indiquer respectivement si le processeur vectoriel 206 est en train d'exécuter ou a suspendu de manière indéfinie l'exécution. Lors de la remise à l'état initial 902 du système à multiprocesseurs multimédia 100, le processeur vectoriel 206 entre l'état VPIDLE 904. Le processeur de commande 204 n'est autorisé qu'à lire ou à enregistrer un registre 906 du processeur vectoriel 906 pendant l'état VPIDLE. Les résultats d'une opération de lecture ou d'une opération d'enregistrement, qui sont exécutés dans le processeur de commande 204 et dirigés vers un registre du processeur vectoriel 206 lorsque le processeur vectoriel 206 est dans l'état VP_RUN, sont "indéfinis de manière bornée". Un résultat "indéfini de manière bornée" est un état du système à multiprocesseurs multimédia 100 qui peut être généré par une séquence d'instructions quelconque du processeur de signaux multimédia 104. En conséquence, des accès de lecture et d'enregistrement des registres à l'intérieur du processeur vectoriel 206 par le processeur de commande 204 sont seulement permis lorsque le processeur vectoriel 206 est dans l'état VPIDLE. Le processeur de commande 204 initialise les registres 908 du processeur vectoriel 206. Après initialisation des registres du processeur vectoriel 206 a un état sélectionné, le processeur de commande 204 exécute une instruction STARTVP 910 pour changer l'état du processeur vectoriel 206 à l'état VPRUN 911. Lorsque le processeur vectoriel 206 rencontre une condition d'exception 912, le processeur vectoriel 206 entre 34 2752470 l'état VP_IDLE 914 et émet un signal vers le processeur de commande 204 avec une requête d'interruption 916. Le processeur vectoriel 206 reste dans l'état VPIDLE jusqu'à ce que le processeur de commande 204 exécute une autre instruction STARTVP 918. Le processeur de commande 204 détermine la nature de l'exception rapportée 920 en lisant des registres du processeur vectoriel 206 et traite l'exception 922 d'une manière définie. Le processeur de commande 204 ré-initialise alors en 924 des registres du processeur vectoriel 206, si cela est désiré, et redémarrage l'exécution 926 du processeur vectoriel 206. Le processeur vectoriel 206 est plus efficace pour sauvegarder et restaurer des registres à l'intérieur du processeur vectoriel 206 que ne l'est le processeur de commande 204. En conséquence, de meilleures performances sont obtenus lorsque le processeur de commande 204 programme le processeur vectoriel 206 afin d'exécuter des instructions de sauvegarde et de restauration des registres pendant des opérations de commutation de contexte. Une opération de commutation de contexte avantageuse est énoncée en détail dans la demande de brevet US N 08/699 280 intitulée "EFFICIENT CONTEXT SAVING AND RESTORING IN MULTIPROCESSORS", S.P. Song et al., déposée le 19 août 1996. Le processeur vectoriel 206 entre l'état VPIDLE lors de la remise à l'état initial et lorsqu'une exception est détectée pour faciliter la conception et la programmation du système, et pour simplifier la synchronisation des processeurs au niveau de la remise à l'état initial du système. En général, des exceptions se produisent de manière peu fréquente de sorte que le traitement d'interruption du processeur vectoriel 206 est grandement simplifié sans réduire de manière significative la fonctionnabilité ou les performances du processeur vectoriel 206. En outre, la réponse aux exceptions est considérée de manière commune comme étant une caractéristique de signification limitée. Par exemple, de nombreux programmes d'applications de type traditionnel qui s'exécute en temps réel, tels que des 2752470 programmes d'applications multimédia, comprennent une programmation qui met hors service la réponse à des événements d'exception dans un mode de fonctionnement en temps réel. Dans un autre exemple, certains programmes d'applications de type traditionnel utilisent un mode de saturation pour éviter des conditions arithmétiques ou de dépassement de capacité négatif au cours d'un traitement arithmétique en temps réel. L'invention n'est pas limitée aux exemples de réalisation représentés et décrits en détails car diverses modifications peuvent y être apportées sans sortir de son cadre. Par exemple, les modes de réalisation ont été décrits comme des systèmes qui utilisent un système à multiprocesseurs comprenant un ordinateur central Pentium et un processeur multimédia particulier. Cependant d'autres configurations de processeurs peuvent être utilisées dans d'autres modes de réalisation. La présente invention est concernée par les demandes de brevets suivantes, déposées aux Etats-Unis le 19 août 1996, et auxquelles il est possible de se référer: Demande de brevet US N 08/697 102 intitulée "MULTIPROCESSOR OPERATION IN A MULTIMEDIA SIGNAL PROCESSOR", Le Nguyen. Demande de brevet US N 08/699 597 intitulée "SINGLE- INSTRUCTION-MULTIPLE-DATA PROCESSING IN A MULTIMEDIA SIGNAL PROCESSOR", Le Nguyen. Demande de brevet US N 08/699 280 intitulée "EFFICIENT CONTEXT SAVING AND RESTORING IN MULTIPROCESSORS, S.P. Song et al. Demande de brevet US N 08/699 295 intitulée "SYSTEM AND METHOD FOR HANDLING SOFTWARE INTERRUPTS WITH ARGUMENT PASSING", S.P. Song et al. Demandes de brevet US N 08/699 303 et 08/699 382 intitulées "METHODS AND APPARATUS FOR PROCESSING VIDEO DATA", C. Reader et al. 36 2752470 Demande de brevet US NO 08/697 086 intitulée "SINGLE- INSTRUCTIONMULTIPLE-DATA PROCESSING USING MULTIPLE BANKS OF VECTOR REGISTERS", Le Nguyen et al. Demande de brevet US NO 08/699 585 intitulée "SINGLE- INSTRUCTION-MULTIPLE-DATA PROCESSING WITH COMBINED SCALAR/ VECTOR OPERATIONS", Le Nguyen et al. 37 2752470 REVENDICATIONS 1. Dispositif à ordinateur (100) caractérisé en ce qu'il comprend: un ensemble de processeurs couplés de manière mutuelle comportant des processeurs (102, 104) présentant des caractéristiques mutuellement dissemblables de commande et de traitement de données; un système de fonctionnement commun (116) pour commander l'ensemble des processeurs; un organe de traitement d'interruption et d'exception (204) pour fonctionner en liaison avec le système de fonctionnement comprenant: un détecteur d'interruption et d'exception (202) fonctionnant sur un premier processeur (104) de l'ensemble des processeurs pour détecter des conditions d'interruption et d'exception du premier processeur; et un sous-organe de traitement d'interruption et d'exception (208) fonctionnant sur un second processeur (102) de l'ensemble des processeurs pour détecter des conditions d'interruption et d'exception du premier processeur (104) et pour traiter les conditions d'interruption et d'exception du premier processeur (104) et du second processeur (102), en combinaison. 2. Dispositif à ordinateur (100) selon la revendication 1 caractérisé en ce que: le second processeur (102) est un processeur de commande (204) présentant une largeur de chemin de données définie; et le premier processeur (104) est un processeur vectoriel (206) présentant une large largeur de chemin de données qui est sensiblement plus grande que la largeur du chemin de données du second processeur (204). 3. Dispositif à ordinateur (100) selon la revendication 1, caractérisé en ce que: 38;2752470 le détecteur d'interruption et d'exception (202) fonctionnant sur le premier processeur (104) de l'ensemble de processeurs met le premier processeur (104) à un état inactif en réponse à la détection d'une exception. 4. Dispositif à ordinateur (100) selon la revendication 1 caractérisé en ce que: le second processeur (102) présente un accès de lecture et d'enregistrement vers des registres de commande et d'état (312) du premier processeur. 5. Dispositif à ordinateur (100) selon la revendication 4, caractérisé en ce que: le détecteur d'interruption et d'exception (202) fonctionnant sur le premier processeur (104) de l'ensemble des processeurs met le premier processeur (104) à un état inactif en réponse à la détection d'une exception; et le second processeur (102) est amené à avoir un accès de lecture et d'enregistrement vers des registres de commande et d'état (312) du premier processeur (104) lorsque le premier processeur (104) est dans l'état inactif. 6. Dispositif à ordinateur (100) caractérisé en ce qu'il comprend: un ensemble de processeurs couplés de manière mutuelle comportant des processeurs (102, 104) présentant des caractéristiques mutuellement dissemblables de commande et de traitement de données; un système de fonctionnement commun (116) pour commander l'ensemble des processeurs; un organe de traitement d'interruption et d'exception (204) pour fonctionner en liaison avec le système de fonctionnement comprenant: un détecteur d'interruption et d'exception (202) fonctionnant sur un premier processeur (104) de l'ensemble des processeurs pour détecter des conditions d'interruption et d'exception du premier processeur, le détecteur d'interruption et d'exception (202) mettant le premier processeur (104) dans un état inactif en réponse à la détection d'une exception. 39 2752470 7. Dispositif à ordinateur (100) selon la revendication 6, caractérisé en ce que l'organe de traitement d'interruption et d'exception (204) comprend en outre: un sous-organe de traitement d'interruption et d'exception (200) fonctionnant sur un second processeur (102) de l'ensemble des processeurs et commandant une réponse d'interruption et d'exception du premier processeur (104). 8. Dispositif à ordinateur selon la revendication 7, caractérisé en ce que: le second processeur (102) est un processeur de commande (204) présentant une largeur de chemin de données définie; et le premier processeur (104) est un processeur vectoriel (206) présentant une large largeur de chemin de données qui est sensiblement plus grande que la largeur de chemin de données du second processeur (102). 9. Dispositif à ordinateur (100) selon l'une des revendications 1 ou 6 caractérisé en ce que l'organe de traitement d'interruption et d'exception (204) est prévu pour fonctionner en liaison avec le système de fonctionnement commun (116) sur un premier processeur (104) et sur un second processeur (102) de l'ensemble des processeurs, le second processeur (102) présentant un accès de lecture et d'enregistrement vers des registres de commande et d'état (312) du premier processeur (104). 10. Dispositif à ordinateur (100) selon la revendication 9, caractérisé en ce que l'organe de traitement d'interruption et d'exception (204) comprend en outre: un détecteur d'interruption et d'exception (202) fonctionnant sur le premier processeur (104) pour détecter des conditions d'interruption et d'exception du premier processeur (104). 11. Dispositif à ordinateur (100) selon la revendication 9 caractérisé en ce que l'organe de traitement d'interruption et d'exception (204) comprend en outre: un sous-organe de traitement d'interruption et d'exception (208) fonctionnant sur le second processeur (102) 2752470 pour détecter des conditions d'interruption et d'exception du premier processeur (104) et pour traiter les conditions d'interruption et d'exception du premier processeur (104) et du second processeur (102), en combinaison. 12. Dispositif à ordinateur (100) selon la revendication 9, caractérisé en ce que: le second processeur (102) est un processeur de commande (204) présentant une largeur de chemin de données définie; et le premier processeur (104) est un processeur vectoriel (206) présentant une large largeur de chemin de donnée qui est sensiblement plus grande que la largeur de chemin de données du second processeur (102). 13. Dispositif à ordinateur (100) selon la revendication 9, caractérisé en ce que: le détecteur d'interruption et d'exception (202) fonctionnant sur le premier processeur (104) de l'ensemble des processeurs met le premier processeur (104) à un état inactif en réponse à la détection d'une exception; et le second processeur (102) est amené à avoir un accès de lecture et d'enregistrement vers des registres de commande et d'état (312) du premier processeur (104) seulement lorsque le premier processeur (104) est à l'état inactif. 14. Procédé de traitement d'interruption et d'exception dans un dispositif à ordinateur (100) comportant des processeurs asymétriques (102, 104), comprenant les opérations consistant à: faire fonctionner un premier (104) des processeurs asymétriques en tant que processeur commandé; faire fonctionner un second (102) des processeurs asymétriques en tant que processeur commandant; détecter une condition d'exception dans le processeur commandé (104); envoyer un signal de requête d'interruption depuis le processeur commandé (104) au processeur commandant (102) indiquant la condition d'exception du processeur commandé (104); 41 2752470 appeler un état inactif dans le processeur commandé (104) en réponse à la condition d'exception; et faire fonctionner le processeur commandant (102) pour traiter la condition d'exception du processeur commandé (104). 15. Procédé selon la revendication 14 caractérisé en ce qu'il comprend supplémentairement les opérations consistant détecter une remise à l'état initial du dispositif à ordinateur (100); et appeler un état inactif du processeur commandé (104) en réponse à la remise à l'état initial du dispositif à ordinateur (100). 16. Procédé selon la revendication 15 caractérisé en ce que les opérations de mise en fonctionnement du processeur commandant (102) pour traiter la condition d'exception du processeur commandé (104) comprend en outre les opérations consistant à: faire fonctionner le processeur commandant (102) pour initialiser des registres (312) du processeur commandé (104) lorsque le processeur commandé (104) est à l'état inactif en réponse au signal de requête d'interruption provenant du processeur commandé (104); et faire fonctionner le processeur commandant (102) pour exécuter une instruction afin de mettre le processeur commandé (104) dans un état d'exécution lorsque les registres (312) du processeur commandé (104) sont initialisés. 17. Procédé selon la revendication 16 caractérisé en ce que l'opération consistant à faire fonctionner le processeur commandant (102) pour qu'il traite la condition d'exception du processeur commandé (104) comprend en outre les opérations consistant à: faire fonctionner le processeur commandant (102) pour lire une information de registre provenant du processeur commandé (104); déterminer un type d'exception sur la base de l'information de registre; et 42 2752470 faire fonctionner le processeur commandant (102) pour traiter l'exception sur la base du type d'exception. 18. Procédé selon la revendication 14 caractérisé en ce qu'il comprend supplémentairement les opérations consistant à a: faire fonctionner le processeur commandant (102) pour lire et enregistrer des registres du processeur commandé (104) lorsque le processeur commandé (104) est à l'état inactif. 19. Procédé selon la revendication 14 caractérisé en ce qu'il comprend supplémentairement les opérations consistant à: faire fonctionner le processeur commandant (102) et le processeur commandé (104) en utilisant un dispositif de fonctionnement unique; et exécuter des jeux d'instructions mutuellement indépendantes dans le processeur commandant (104) et le processeur commandé (102). 20. Procédé selon la revendication 14 caractérisé en ce que: le processeur commandé (104) est un processeur vectoriel (206) ou un processeur de données présentant un grand état de machine et une grande largeur de données; et le processeur commandant (102) est un processeur de commande (204) présentant un état de machine et une largeur de données qui sont sensiblement plus petite que l'état de machine et la largeur de données du processeur commandé (104). 21. Dispositif à ordinateur multimédia (100) comprenant: un processeur de commande (204); un processeur vectoriel ou de données (206) couplé au processeur de commande (204), le processeur vectoriel ou de données (206) présentant un grand état de machine et une grande largeur de données en comparaison du processeur de commande (204); 43 2752470 une interface de coprocesseur (242) couplée entre le processeur de commande (204) et le processeur vectoriel ou de données (206); un détecteur d'exception (202) couplé au processeur vectoriel ou de données (206) pour détecter une condition d'exception et, en réponse à la détection de la condition d'exception, envoyer une requête d'interruption au processeur de commande (204) et mettre le processeur vectoriel ou de données (206) à un état inactif; et un organe de traitement d'exception (208) couplé au processeur de commande (204) pour recevoir la requête d'interruption et, en réponse à la requête d'interruption, traiter la condition d'exception du processeur vectoriel ou de données (206). 22. Dispositif à ordinateur multimédia (100) selon la revendication 21 caractérisé en ce que l'interface de coprocesseur (242) comprend: un ensemble de registres (706, 708) qui peuvent être lus et enregistrés par le processeur de commande (204) et le processeur vectoriel ou de données (206); un décodeur (702) pour décoder des instructions du jeu d'instructions du processeur de commande (204) et détecter des instructions d'extension qui peuvent être exécutées sur l'interface de coprocesseur (242); et une machine détat (704) pour exécuter les instructions d'extension. 23. Dispositif à ordinateur multimédia (100) selon la revendication 21 caractérisé en ce que: le processeur de commande (204) et le processeur vectoriel ou de données (206) présentent des caractéristiques mutuellement dissemblables de commande et de traitement de données. 24. Dispositif à ordinateur mutimédia (100) selon la revendication 23 caractérisé en ce que; le processeur de commande (204) présente une largeur de chemin de donnnées définie; et 44 2752470 le processeur vectoriel et de données(206) présente une large largeur de chemin de données qui est sensiblement plus grande que la largeur du chemin de donnée du processeur de commande (204). 25. Dispositif à ordinateur multimédia (100) selon la revendication 21 caracétérisé en ce qu'il comprend en outre: un processeur principal (102) couplé au processeur de commande (204), le processeur principal (102) comprenant des codes de programme pour commander les fonctionnements du processeur de commande (204).