Brevet FR2835934A1 — publié le 20030815

La présente invention concerne un dispositif et un procédé pour traiter un mot d'instruction très long (ou VLIW pour"very long instruction word"), et elle concerne plus particulièrement un dispositif et un procédé pour distribuer des instructions VLIW ayant des longueurs variables. Pour traiter rapidement des instructions dans un seul processeur ayant une seule unité d'exécution, le cycle d'exécution du processeur doit être accéléré. Cependant, dans le cadre de la technologie actuelle, le cycle d'horloge d'un microprocesseur est proche du cycle d'horloge de super-ordinateurs, et par conséquent le processus d'accélération du cycle d'exécution est limité. Une technique pour traiter plusieurs instructions en même temps est donc nécessaire pour améliorer la vitesse d'exécution d'instructions. Du fait de l'accroissement des exigences d'amélioration des performances pour le traitement par ordinateur, on a développé des structures d'ordinateur qui permettent l'exécution simultanée de multiples instructions. Par exemple, la figure 1 est un schéma synoptique illustrant la structure d'un processeur à mot d'instruction très long (VLIW) 100 de type classique. Le processeur VLIW 100 organise une multiplicité d'instructions en utilisant un compilateur de façon que plusieurs instructions soient exécutées simultanément. Le processeur VLIW 100 comprend une multiplicité d'unités fonctionnelles (UF) 141-147, qui sont commandées périodiquement par une instruction VLIW et sont connectées en parallèle les unes avec les autres. Le processeur VILW 100 comprend des créneaux d'émission 121- 127, qui spécifient des opérations spécifiques qui sont effectuées respectivement sur les unités fonctionnelles 141-147, et un bloc de registres 190, qui transfère des opérandes vers les unités fonctionnelles 141-147, et stocke les résultats d'opérations des unités fonctionnelles 141- 147. Une instruction VLIW utilisée dans le processeur VLIW 100 comprend un nombre n de sous-instructions. Dans un cas dans lequel un nombre maximal de sous-instructions VLIW est m, le nombre de sous-instructions VLIW est représenté par 0 : m. De façon générale, il y a deux procédés pour déterminer des unités fonctionnelles sur lesquelles chaque sous-instruction doit être exécutée. Un premier procédé consiste à constituer une telle instruction VLIW de façon qu'elle ait un nombre maximal (c'est-à-dire m) de sousinstructions qui soit le même que le nombre total (c'est-àdire k) d'unités fonctionnelles, comme représenté sur la figure 1. Dans ce cas, des sous-instructions devant être transmises à chaque unité fonctionnelle sont déterminées par des positions de sous-instructions constituant une instruction VLIW. Dans ce but, le nombre (c'est-à-dire n) des sous-instructions doit toujours avoir la valeur de m. Par conséquent, le premier procédé peut conduire à un gaspillage de codes de programme. Un second procédé consiste à coder dans des sous-instructions de l'information concernant des unités fonctionnelles. Ce procédé est utilisé de façon caractéristique pour résoudre le problème apparaissant dans le premier procédé. La figure 2 illustre un cas dans lequel de l'information concernant des unités fonctionnelles est codée de façon conjointe dans les sous-instructions. En se référant à la figure 2, on note qu'une information respective, indiquant pour quelle unité fonctionnelle une sous-instruction correspondante doit être utilisée, est codée dans chacune de sous-instructions 131-136. Cependant, conformément au second procédé, lorsque le nombre (c'est-àdire k) d'unités fonctionnelles augmente, la longueur de sous-instructions augmente, et la logique pour décoder l'information concernant les unités fonctionnelles devient complexe. La présente invention porte sur un dispositif et un procédé pour distribuer efficacement des sous-instructions, qui sont contenues dans un mot d'instruction très long (VLIW) ayant une longueur variable, à une unité fonctionnelle (UF) correspondante, en utilisant une logique de décodage simple. Conformément à un aspect de la présente invention, un processeur VLIW comprend une unité de distribution pour distribuer des sous-instructions à une unité fonctionnelle (UF) correspondante, en réponse à une information de position concernant les sous-instructions à l'intérieur de l'instruction VLIW, et pour décoder l'information concernant les sous-instructions, et au moins un ou plusieurs moteurs d'exécution, comprenant chacun une multiplicité d'unités fonctionnelles pour accomplir une opération prédéterminée en réponse aux sous-instructions qui sont distribuées par l'unité de distribution. Selon un autre aspect de l'invention, un dispositif pour distribuer un VLIW comprend un tampon de paquets pour stocker au moins une ou plusieurs instructions VLIW, et une unité de décodage pour organiser des sous-instructions dans les instructions VLIW stockées dans le tampon de paquets, de façon à générer une nouvelle instruction VLIW à exécuter, et pour décoder des bits prédéterminés de chaque sous-instruction à l'intérieur de l'instruction VLIW. Le dispositif est de préférence inclus dans un processeur VLIW ayant une multiplicité d'unités fonctionnelles. Selon un autre aspect de la présente invention, un procédé pour distribuer un VLIW comprend les étapes suivantes : (a) on charge l'instruction VLIW dans un tampon de paquets ; (b) on génère une nouvelle instruction VLIW basée sur des sous-instructions des instructions VLIW stockées dans le tampon de paquets pour être exécutées, et on décode des bits prédéterminés de chaque sous-instruction de l'instruction VLIW ; et (c) on sélectionne une unité fonctionnelle correspondante qui correspond à chaque sousinstruction, en réponse à des résultats du décodage effectué à l'étape (b), à l'information de position concernant les sous-instructions qui sont placées dans le tampon de paquets, et à l'information de position concernant les sous-instructions contenues dans l'instruction VLIW présente. D'autres caractéristiques et avantages de l'invention seront mieux compris à la lecture de la description qui va suivre de modes de réalisation préférés, donnés à titre d'exemples non limitatifs. La suite de la description se réfère aux dessins annexés, dans lesquels : La figure 1 est un schéma synoptique illustrant la structure d'un processeur à mot d'instruction très long (VLIW) classique ; La figure 2 illustre un cas dans lequel de l'information concernant des unités fonctionnelles est codée conjointement dans des sous-instructions ; La figure 3 est un schéma synoptique illustrant la structure d'un processeur VLIW ayant une unité de distribution conforme à un mode de réalisation de la présente invention ; Les figures 4,5 et 6 illustrent une opération de distribution pour une instruction VLIW ayant une longueur variable, qui est effectuée par une unité de distribution conforme à un mode de réalisation de la présente invention ; et La figure 7 est un organigramme d'un procédé pour distribuer une instruction VLIW conformément à un mode de réalisation de la présente invention. Dans la description qui suit, les éléments identiques ou similaires sont désignés par les mêmes numéros de référence dans l'ensemble des dessins. La figure 3 est un schéma synoptique illustrant un processeur VLIW 1000 ayant une unité de distribution 200 conforme à un mode de réalisation de la présente invention. En se référant à la figure 3, on note que le processeur VLIW 1000 comprend une unité de substitution d'instruction 20, un tampon de boucle 30, une unité de distribution 200, une multiplicité de moteurs d'exécution 400 et 500, une unité de commande de moteur actif (ACT) 620 et une unité de branchement (BRU) 640. Le processeur VLIW 1000 traite une instruction VLIW ayant une longueur variable dans laquelle le nombre de sous-instructions n'est pas fixé. L'unité de substitution d'instruction 20 reçoit l'instruction VLIW provenant d'une mémoire de programme (non représentée) par l'intermédiaire d'un bus de mémoire de programme 10. Le tampon de boucle 30 est connecté à l'unité de substitution d'instruction 20 et à l'unité de distribution 200 et il reçoit donc à partir de l'unité de distribution 200 des instructions qui sont exécutées de façon répétée, et il fournit les instructions à l'unité de substitution d'instruction 20. L'unité de distribution 200, qui comprend un tampon de paquets 210 et une unité de décodage 250, sélectionne des unités fonctionnelles (UF) dans lesquelles chaque sousinstruction du VLIW doit être exécutée, et elle transmet une sous-instruction correspondante à une unité fonctionnelle sélectionnée. Cependant, du fait qu'il y a une différence dans le nombre de sous-instructions qui sont allouées à chaque unité fonctionnelle, conformément à la présente invention, les 4 bits supérieurs des sousinstructions sont décodés pour obtenir ainsi une information concernant les unités fonctionnelles, qui correspond à la valeur de sous-instructions décodées. Le tampon de paquets 210 comprend un premier tampon de paquets 220 et un second tampon de paquets 240, ayant chacun une taille de 128 bits. L'unité de substitution d'instruction 20 communique avec une mémoire de programme, obtient un code de programme en unité de"prélèvement d'instruction", et elle stocke le code de programme dans les premier et second tampons de paquets 220 et 240, respectivement, d'une manière pipeline. Une unité de prélèvement d'instruction, qui est une unité pour accéder à la mémoire de programme, doit être supérieure ou égale à une longueur maximale (c'est-à-dire m) de l'instruction VLIW, de façon que le processeur VLIW tende vers des performances maximales. De préférence, l'unité de prélèvement d'instruction conforme à la présente invention est définie comme un paquet P ayant 128 bits. Une instruction VLIW stockée dans les premier et second tampons de paquets 220 et 240 comprend 1 à 6 sousinstructions, et chaque sous-instruction comprend une instruction de 20 bits (c'est-à-dire [19 : 0]). L'instruction VLIW peut être stockée dans l'un à la fois du premier tampon de paquets 220 ou du second tampon de paquets 240, ou bien elle peut être stockée séparément dans les premier et second tampons de paquets 220 et 240. L'unité de décodage 250 décode les bits supérieurs des sous-instructions qui se trouvent dans l'instruction VLIW stockée dans le tampon de paquets. L'unité de distribution 200 conforme à la présente invention sera décrite ci-dessous en détail, mais on notera qu'elle détermine une unité fonctionnelle qui correspond à chaque sous-instruction, sur la base des résultats du décodage effectué dans l'unité de décodage 250, de l'information de position concernant les sous-instructions qui sont placées dans le tampon de paquets, et de l'information de position concernant les sous-instructions qui sont placées dans l'instruction VLIW devant être exécutée au moment présent. Ensuite, l'unité de distribution distribue une sousinstruction correspondante à une unité fonctionnelle déterminée. Un premier et un second moteurs d'exécution 400 et 500 comprennent des premier et second groupes d'unités fonctionnelles 410 et 510 (ayant chacun une multiplicité de sous-groupes d'unités fonctionnelles FUGO, FUG1,...), et un premier et un second blocs de registres 490 et 590, qui transfèrent des données vers les premier et second groupes d'unités fonctionnelles 410 et 510, et stockent les résultats d'opérations qui sont accomplies dans les premier et second groupes d'unités fonctionnelles 410 et 510. Bien que deux moteurs d'exécution 400 et 500 soient représentés sur la figure 3, il faut noter que d'autres modes de réalisation de l'invention peuvent comprendre un seul ou de multiples moteurs d'exécution, selon la conception. Un premier sous-groupe d'unités fonctionnelles 420 (ou 520) (ou"FUGO") comprend des première et seconde unités arithmétiques et logiques (ALU), et un second sousgroupe d'unités fonctionnelles 430 (ou 530) (ou"FUG1") comprend des première et seconde unités de multiplication et d'accumulation (MAU). Un troisième sous-groupe d'unités fonctionnelles 440 (ou 540) comprend des première et seconde unités de chargement et de stockage (LSU). Ici, l'unité arithmétique et logique est une unité fonctionnelle dans laquelle une opération arithmétique telle qu'une addition ou une soustraction, et une opération logique sont effectuées, et une MAU est une unité fonctionnelle dans laquelle une multiplication et une accumulation des résultats de multiplication sont effectuées. De plus, l'unité de chargement et de stockage est une unité fonctionnelle dans laquelle une opération liée à l'accès à la mémoire de données est effectuée. Dans un mode de réalisation dans lequel le processeur VLIW 1000 comprend une multiplicité de moteurs d'exécution, l'unité de commande de moteur actif (ACT) 620 sélectionne un moteur à utiliser parmi la multiplicité de moteurs d'exécution. L'ACT 620 fixe à la valeur d'un bit d'activité [1 : 0] la valeur de bits inférieurs [1 : 0] des sous-instructions appartenant à l'instruction VLIW. La valeur du bit d'activité [1 : 0] est valide jusqu'à ce qu'une autre sous-instruction qui correspond à l'ACT 620 soit désignée, et les premier et second moteurs d'exécution 400 et 500 sont activés par la valeur du bit d'activité [1 : 0]. L'unité de branchement (BRU) 640 reçoit les sousinstructions qui sont distribuées par l'unité de distribution 200, elle reçoit les résultats d'opérations d'unités fonctionnelles qui sont transmis à partir des premier et second blocs de registres 490 et 590, et elle commande la séquence d'exécution d'un programme du processeur VLIW 1000. Des sous-instructions pour commander la séquence d'exécution d'un programme comprennent des sous-instructions liées à des conditions de branchement et de boucle conditionnelle. On décrira ci-dessous un procédé pour distribuer des sous-instructions en utilisant l'unité de distribution 200 pour le processeur VLIW 1000 ayant la structure cidessous. Les figures 4,5 et 6 illustrent une opération de distribution pour une instruction VLIW ayant une longueur variable, qui est accomplie avec une unité de distribution conforme à la présente invention. La figure 4 illustre une opération de distribution dans laquelle une instruction VLIW 310 à exécuter au moment présent comprend cinq sous-instructions (s-instO-sinst4), et l'instruction VLIW est stockée dans les premier et second tampons de paquets 220 et 240. La figure 5 illustre une opération qui suit l'opération de distribution représentée sur la figure 4, dans laquelle l'instruction VLIW à exécuter comprend cinq sous-instructions s-instO à s-inst4. La figure 6 illustre une opération de distribution qui est exécutée à la suite de l'opération de distribution représentée sur la figure 5, dans laquelle l'instruction VLIW à exécuter au moment présent comprend quatre sousinstructions (s-instO à s-inst3). En se référant aux figures 4,5 et 6, on note que l'instruction VLIW (comme indiqué par les traits gras dans les dessins) stockée dans le premier ou le second tampon de paquets 220 ou 240 est représentée respectivement par des numéros de référence 310,320 et 330. Chaque instruction VLIW 310,320 et 330 est une instruction VLIW ayant une longueur variable comprenant d'une à six sous-instructions. Du fait que les premier et second tampons de paquets 220 et 240 pour stocker l'instruction VLIW fonctionnent en un mode pipeline, l'instruction VLIW peut être utilisée efficacement. En vue du fonctionnement de l'unité de distribution 200 représentée sur la figure 4, l'instruction VLIW 310 comprend une position de valeur immédiate (IMM), une position de non-opération (NOP), et une position ACT, en fonction de positions de sous-instructions constituant l'instruction VLIW. Dans la position IMM, le contenu de bits inférieurs [15 : 0] des sous-instructions représente une valeur immédiate, et les sous-instructions dans la position IMM sont significatives lorsqu'elles sont utilisées dans l'ALU conjointement à une sous-instruction à deux mots contenue dans l'instruction VLIW. Chaque sous-instruction (s-instO à s-inst4) dans l'instruction VLIW 310 est distribuée par l'intermédiaire de l'unité de distribution 200 à une unité fonctionnelle qui correspond à la sous-instruction. On décrira ci-dessous des procédés pour distribuer des sous-instructions en utilisant l'unité de distribution 200. L'unité de distribution 200 décode les 4 bits supérieurs (c'est-à-dire [19 : 16]) de cinq sous-instructions (s-instO à s-inst4) qui sont stockées dans les premier et second tampons de paquets 220 et 240, en utilisant l'unité de décodage 250. D'après le résultat du décodage, lorsque la valeur des 4 bits supérieurs décodés est "0010", "0011", "0100", "0101", "0110", "0111" ou "1110", l'ALDO ou l'ALU1 est sélectionnée comme une unité fonctionnelle qui correspond à l'une des cinq sous-instructions (s-instO-s-inst4). Par exemple, si une sous-instruction correspondante est stockée en tant que données impaires du tampon de paquets, comme la première sous-instruction (s-instO) représentée sur la figure 4, l'ALU1 est sélectionnée comme une unité fonctionnelle qui correspond à la sous-instruction. Si une sous-instruction correspondante est stockée en tant que données paires du tampon de paquets, l'ALUO est sélectionnée comme une unité fonctionnelle qui correspond à la sous-instruction. Lorsque la valeur des 4 bits supérieurs décodés est "0000" ou "0001", MAU 0 ou MAU1 est sélectionnée comme une unité fonctionnelle qui correspond à une sous-instruction. Par exemple, si une sous-instruction correspondante est stockée en tant que données impaires du tampon de paquets, MAU1 est sélectionnée comme une unité fonctionnelle qui correspond à la sous-instruction. Si une sous-instruction correspondante est stockée comme des données paires du tampon de paquets, comme la seconde sous-instruction représentée sur la figure 4, MAUO est sélectionnée comme une unité fonctionnelle qui correspond à la sousinstruction. Lorsque la valeur des 4 bits supérieurs décodés est "1000", "1001", "1010", "1011" ou "1100"1 LSUO ou LSU1 est sélectionnée comme une unité fonctionnelle qui correspond à l'une de cinq sous-instructions (s-instO-s-inst4). Par exemple, si la valeur des 4 bits supérieurs décodés est "1110", l'unité de branchement (BRU) est sélectionnée comme une unité fonctionnelle qui correspond à la sousinstruction. Lorsque la valeur des 4 bits supérieurs des sousinstructions dans la position IMM à l'intérieur de l'instruction VLIW 310 est"llll", et une sous-instruction à deux mots dans l'ALU est à l'intérieur de la même instruction VLIW 310, une sous-instruction correspondante est une sous-instruction IMM significative. Par exemple, d'après le résultat du décodage, lorsque la valeur des 4 bits supérieurs des cinq instructions (s-instO-s-inst4) est"1110", une sous-instruction correspondante est une sous-instruction à deux mots. Dans ce cas, une autre sousinstruction est exigée, et celle-ci est une sousinstruction IMM. Lorsque la valeur des 4 bits supérieurs décodés est "1111", et une sous-instruction correspondante est dans la position ACT, les cinq sous-instructions (s-instO-sinst4) sont distribuées à l'ACT 620. Lorsque la valeur des 4 bits supérieurs décodés est"llll", et une sousinstruction correspondante n'est pas dans la position ACT et la position IMM, les cinq sous-instructions (s-instOs-inst4) sont dans la position NOP. Conformément à une telle règle de distribution, lorsque chaque valeur des 4 bits supérieurs des sousinstructions à l'intérieur de l'instruction VLIW 310 représentée sur la figure 4 est respectivement "0011", "0001", "1000", "1101" et "1111", la première sousinstruction (s-instO) est distribuée à ALU1 incluse dans le premier sous-groupe d'unités fonctionnelles 420, la seconde sous-instruction (s-insti) est distribuée à MAUO qui est incluse dans le second sous-groupe d'unités fonctionnelles 430, et la troisième sous-instruction (s-inst2) est distribuée à LSU1 qui est incluse dans le troisième sousgroupe d'unités fonctionnelles 440. La quatrième sousinstruction (s-inst3) dans l'instruction VLIW 310 est distribuée à la BRU 620 et la cinquième sous-instruction (s-inst4) est distribuée à l'ACT 640. Pour la commodité de l'explication, la figure 4 illustre un cas dans lequel chaque sous-instruction est distribuée au premier groupe d'unités fonctionnelles 410 inclus dans le premier moteur d'exécution 400. Ceci n'est cependant qu'un exemple. Chaque sous-instruction peut être distribuée librement à un groupe d'unités fonctionnelles 410 (ou 510) qui est inclus dans l'un du premier moteurs d'exécution 400 et du second moteurs d'exécution 500, conformément aux résultats de décodage. Par exemple, lorsque la valeur des bits supérieurs de sous-instructions est n0011", les sous-instructions sont stockées dans une position impaire du tampon de paquets, et la valeur du bit d'activité [1 : 0] est"11", les sousinstructions sont distribuées à l'ALU1 des premier et second moteurs d'exécution 400 et 500. Lorsque la valeur des bits supérieurs des sous-instructions est"llll", les sous-instructions sont stockées dans une position paire du tampon de paquets, la valeur du bit d'activité [1 : 0] est "10", et les sous-instructions sont dans la position IMM de l'instruction VLIW, les sous-instructions sont distribuées à l'ALUO du second moteur d'exécution 500. Lorsque la valeur des bits supérieurs des sous-instructions est"1111" et les sous-instructions sont dans la position ACT de l'instruction VLIW, les sous-instructions sont distribuées à l'ACT 620. De façon similaire, un dispositif pour distribuer une instruction VLIW ayant une longueur variable peut distribuer effectivement des sous-instructions à l'intérieur de l'instruction VLIW à des unités fonctionnelles correspondantes, en utilisant une logique de décodage simple. La figure 7 est un organigramme d'un procédé pour distribuer une instruction VLIW conformément à un mode de réalisation de la présente invention. En se référant à la figure 7, on note qu'initialement une instruction VLIW comprenant des sous-instructions est chargée dans un tampon de paquets inclus dans une unité de distribution 200 (étape 2100). Ensuite, des sous-instructions de l'instruction VLIW stockée dans le tampon de paquets sont organisées pour former une nouvelle instruction VLIW devant être exécutée au moment présent, et les 4 bits supérieurs de chaque sousinstruction dans l'instruction VLIW sont décodés (étape 2200). Une unité fonctionnelle qui correspond à chaque sous-instruction est sélectionnée en réponse à des résultats du décodage, à une information de position concernant les sous-instructions qui sont placées dans le tampon de paquets, et à une information de position concernant les sous-instructions dans une instruction VLIW nouvellement formée (étape 2300). L'information de position concernant les sous-instructions stockées dans le tampon de paquets indique si la sous-instruction correspondante est stockée dans une position impaire ou paire du tampon de paquets. L'information de position est utilisée pour déterminer quelle unité fonctionnelle est sélectionnée parmi les unités fonctionnelles des groupes d'unités fonctionnelles sélectionnés par les résultats du décodage. Après qu'une unité fonctionnelle qui correspond à chaque sous-instruction a été sélectionnée, l'unité de distribution 200 distribue une sous-instruction correspondante à une unité fonctionnelle sélectionnée (étape 2400). Comme décrit ci-dessus, avec une telle configuration du dispositif et du procédé pour distribuer une instruction VLIW ayant une longueur variable, des instructions peuvent être distribuées effectivement à des unités fonctionnelles correspondantes en utilisant une logique de décodage simple, même lorsque la longueur de l'instruction VLIW n'est pas fixée. Il va de soi que de nombreuses modifications peuvent être apportées au dispositif et au procédé décrits et représentés, sans sortir du cadre de l'invention. REVENDICATIONS 1. Processeur à mot d'exécution très long (VLIW) (1000), caractérisé en ce qu'il comprend : une unité de distribution (200) pour distribuer des sous-instructions à une unité fonctionnelle correspondante en réponse à une information de position des sous-instructions à l'intérieur de l'instruction VLIW, et pour décoder l'information des sous-instructions ; et au moins un ou plusieurs moteurs d'exécution (400,500), comprenant chacun une multiplicité d'unités fonctionnelles (410,510) pour exécuter une opération prédéterminée en réponse aux sous-instructions qui sont distribuées par l'unité de distribution (200). 2. Processeur VLIW selon la revendication 1, caractérisé en ce qu'il comprend en outre : une unité de commande de moteur actif (620) pour activer au moins un ou plusieurs moteurs d'exécution (400, 500) en réponse aux sous-instructions qui sont distribuées par l'unité de distribution (200) ; et une unité de branchement (640) pour commander la séquence d'exécution d'un programme du processeur VLIW (100) en réponse aux instructions qui sont distribuées par l'unité de distribution (200) et aux résultats d'opérations des moteurs d'exécution. 3. Processeur VLIW selon la revendication 1, caractérisé en ce qu'une longueur de l'instruction VLIW est variable. 4. Processeur VLIW selon la revendication 1, caractérisé en ce que chaque moteur d'exécution (400,500) comprend : un premier bloc d'unités fonctionnelles (420, 520) comprenant une multiplicité d'unités arithmétiques et logiques (ALU) pour effectuer une opération arithmétique ; un second bloc d'unités fonctionnelles (430,530) comprenant une multiplicité d'unités de multiplication et d'accumulation (MAU) pour effectuer une multiplication et une accumulation des résultats de multiplication ; et un troisième bloc d'unités fonctionnelles (440,540) comprenant une multiplicité d'unités de chargement et de stockage (LSU) pour effectuer une opération liée à l'accès à une mémoire de données. 5. Processeur VLIW selon la revendication 1, caractérisé en ce l'unité de distribution (200) comprend : un tampon de paquets (210) pour stocker l'instruction VLIW ; et une unité de décodage (250) pour décoder des bits prédéterminés de chaque sous-instruction dans l'instruction VLIW qui doit être exécutée au moment présent, parmi au moins une ou plusieurs instructions VLIW stockées dans le tampon de paquets (210). 6. Processeur VLIW selon la revendication 5, caractérisé en ce que le tampon de paquets comprend au moins deux tampons de paquets (220,240), ou plus, pour charger l'instruction VLIW en un mode pipeline. 7. Processeur VLIW selon la revendication 5, dans lequel l'unité de décodage (250) sélectionne un bloc d'unités fonctionnelles parmi une multiplicité de blocs d'unités fonctionnelles (420,430, 440, 520,530, 540) inclus dans les moteurs d'exécution, en réponse à des résultats d'un décodage effectué pour chaque sousinstruction. 8. Processeur VLIW selon la revendication 7, caractérisé en ce que l'unité de décodage (250) distribue les sous-instructions à une unité fonctionnelle paire incluse dans un bloc d'unités fonctionnelles sélectionné lorsqu'une sous-instruction prédéterminée est stockée dans une position paire du tampon de paquets (210), et l'unité de décodage distribue les sous-instructions à une unité fonctionnelle impaire incluse dans le bloc d'unités fonctionnelles sélectionné lorsqu'une sous-instruction correspondante dans l'instruction VLIW est stockée dans une position impaire du tampon de paquets (210). 9. dispositif pour distribuer un mot d'instruction très long (VLIW) dans un processeur VLIW (1000) ayant une multiplicité d'unités fonctionnelles (410,510), caractérisé en ce qu'il comprend : un tampon de paquets (210) pour stocker au moins une ou plusieurs instructions VLIW ; et une unité de décodage (250) pour organiser des sous-instructions des instructions VLIW stockées dans le tampon de paquets (210) de façon à générer une nouvelle instruction VLIW à exécuter, et pour décoder des bits prédéterminés de chaque sous-instruction dans l'instruction VLIW. 10. Dispositif selon la revendication 9, caractérisé en ce que le tampon de paquets comprend au moins deux tampons de paquets (220, 240), ou plus, pour charger l'instruction VLIW en un mode pipeline. 11. Dispositif selon la revendication 9, caractérisé en ce que la longueur d'une instruction VLIW est variable. 12. Dispositif selon la revendication 9, caractérisé en ce que l'instruction VLIW présente est divisée en une position d'opération de valeur immédiate (IMM), une position de non-opération (NOP) et une position d'unité de commande de moteur actif (ACT), en fonction de positions des sous-instructions. 13. Dispositif selon la revendication 12, caractérisé en ce que la position IMM est une position d'une première et d'une seconde sous-instructions de l'instruction VLIW. 14. Dispositif selon la revendication 12, caractérisé en ce que la position ACT est une position de la dernière sous-instruction dans l'instruction VLIW, qui n'est pas la position IMM. 15. Dispositif selon la revendication 12, caractérisé en ce que la position NOP est une position des sous-instructions dans l'instruction VLIW, qui n'est pas à la fois dans la position ACT et la position IMM. 16. Dispositif selon la revendication 9, caractérisé en ce que les unités fonctionnelles comprennent une multiplicité d'unités arithmétiques et logiques ou ALU (420, 520) pour effectuer une opération arithmétique, une multiplicité d'unités de multiplication et d'addition, ou MAU (430,530) pour effectuer une multiplication et une accumulation des résultats de multiplication, une multiplicité d'unités de chargement et de stockage, ou LSU (440,540) pour effectuer une opération liée à un accès à une mémoire de données, et une unité de branchement (640) pour commander la séquence d'exécution d'un programme du processeur VLIW. 17. Dispositif selon la revendication 16, caractérisé en ce que les unités fonctionnelles traitent une sous-instruction correspondante sur la base de résultats du décodage effectué par l'unité de décodage (250), de l'information de position concernant les sousinstructions qui sont placées dans le tampon de paquets (210), et de l'information de position concernant les sousinstructions qui sont placées dans l'instruction VLIW présente. 18. Procédé pour distribuer une instruction à mot d'instruction très long (VLIW) dans un processeur VLIW (1000) ayant une multiplicité d'unités fonctionnelles (410, 510), caractérisé en ce qu'il comprend les étapes suivantes : (a) on charge des instructions VLIW dans un tampon de paquets (210) ; (b) on génère une nouvelle instruction VLIW sur la base de sous-instructions des instructions VLIW stockées dans le tampon de paquets (210) devant être exécutées, et on décode des bits prédéterminés de chaque sous-instruction de l'instruction VLIW ; et (c) on sélectionne des unités fonctionnelles qui correspondent à chaque sous-instruction en réponse aux résultats du décodage effectué à l'étape (b), à une information de position concernant les sous-instructions qui sont placées dans le tampon de paquets (210), et à une information de position concernant les sous-instructions d'une instruction VLIW nouvellement établie. 19. Procédé selon la revendication 18, caractérisé en ce que l'étape (a) comprend en outre le chargement de l'instruction VLIW dans au moins deux tampons de paquets (220,240), ou plus, en un mode pipeline. 20. Procédé selon la revendication 18, caractérisé en ce que la longueur de l'instruction VLIW est variable. 21. Procédé selon la revendication 18, caractérisé en ce que les unités fonctionnelles comprennent une multiplicité d'unités arithmétiques et logiques ou ALU (420,520) pour effectuer une opération arithmétique, une multiplicité d'unités de multiplication et d'addition, ou MAU (430,530) pour effectuer une multiplication et une accumulation des résultats de multiplication, une multiplicité d'unités de chargement et de stockage, ou LSU (440,540) pour effectuer une opération liée à un accès à une mémoire de données, et une unité de branchement (640) pour commander la séquence d'exécution d'un programme du processeur VLIW. 22. Dispositif de stockage de programme lisible par machine, mettant en oeuvre de manière tangible un programme d'instructions exécutables par la machine pour accomplir des étapes de procédé de façon à distribuer un mot d'instruction très long (VLIW) dans un processeur VLIW (1000) ayant une multiplicité d'unités fonctionnelles (410, 510), ce dispositif de stockage de programme étant caractérisé en ce qu'il comprend en outre des instructions pour : stocker au moins une ou plusieurs instructions VLIW ; générer une nouvelle instruction VLIW sur la base de sousinstructions des instructions VLIW stockées dans le tampon de paquets (210) devant être exécutées ; décoder des bits prédéterminés de chaque sous-instruction de l'instruction VLIW ; et sélectionner des unités fonctionnelles qui correspondent à chaque sous-instruction en réponse aux résultats du décodage effectué, à une information de position concernant les sous-instructions qui sont placées dans le tampon de paquets (210), et à une information de position concernant les sous-instructions d'une instruction VLIW nouvellement établie.