Brevet FR2794259A1 — publié le 20001201

L'invention se rapporte, d'une façon générale, à l'exécution d'instructions basée sur le traitement d'une ou plusieurs micro-inst ruct ions dans un système de traitement de données, et concerne en particulier un dispositif matériel destiné à exécuter des instructions programmables en utilisant un jeu de micro-instructions déterminées. Au début de l'informatique, les ordinateurs n'avaient que de petites quantités de mémoire. De ce fait et de manière à maximiser les performances des ordinateurs dans les années 1960, un jeu d'instructions complexe (bien connu comme architecture d'ordinateur à jeu d'instructions complexe (CISC)) a été utilisé pour réduire la quantité de mémoire nécessaire. Il en est résulté une efficacité augmentée due au fait qu'un programme prenait moins de mémoire d'ordinateur, et pouvait donc récupérer davantage d'informations pour le traitement. A cette époque, les unités de mémoire étaient plus lentes que l'unité centrale (UC). Si une instruction complexe encapsulait plusieurs instructions simples, le temps passé à la récupération de l'instruction depuis la mémoire était réduit. Ceci était très important dans la mesure où les ordinateurs fonctionnaient de manière séquentielle et l'instruction devait donc être achevée avant que l'ordinateur ne récupère une autre instruction à partir d'un traitement en mémoire. Un autre point fort de l'architecture CISC était le microcode. Le microcode agissant essentiellement comme une couche de traduction entre les instructions et l'électronique de l'ordinateur. Le microcode était une bénédiction pour les architectes d'ordinateurs car il était plus facile d'ajouter de nouveaux types d'instructions machine sans avoir à concevoir de nouveaux circuits électroniques. Ils pouvaient concevoir une famille d'architecture, c'est-à-dire une gamme d'ordinateurs partageant le même jeu d'instructions. Le résultat net de la microprogrammation, en dehors de ce qui précède, était qu'elle réduisait le trafic entre l'unité centrale et la mémoire. Elle diminuait le volume des instructions dans le cheminement des données en laissant ainsi plus de place aux données. Mais l'inconvénient des systèmes de traitement de données à architecture CISC était qu'un très petit pourcentage d'instructions complexes était utilisé aussi bien par les programmeurs que par les compilateurs. Chacune de ces instructions complexes nécessite cependant un nombre beaucoup plus grand de transistors dans la puce que l'instruction simple, augmentant ainsi la taille de la puce de silicium. A la fin des années 70, les progrès dans la technologie des semiconducteurs commencèrent à réduire la différence de vitesse entre la mémoire centrale et les puces de processeurs. A mesure que la vitesse de la mémoire augmentait et que des langages de haut niveau supplantaient le langage assembleur, les avantages majeurs de l'architecture CISC commencèrent à disparaître, et les concepteurs d'ordinateurs commencèrent à étudier la manières permettant l'optimisation des performances des ordinateurs en plus de rendre le matériel plus rapide. Une des réalisations essentielles a été qu'une séquence d'instructions simples produise les mêmes résultats qu'une séquence d'instructions complexes, mais puisse être mise en oeuvre à l'aide d'une conception matérielle plus simple (et plus rapide) L'architecture d'ordinateur à jeu d'instructions réduit (RISC) a été le résultat de ces études. Dans une machine à architecture RISC, le jeu d'instructions ne contient que des instructions fondamentales simples à partir desquelles davantage d'instructions complexes peuvent être composées. Chaque instruction a la même longueur, de sorte qu'elle peut être chargée en une seule opération. La plupart des instructions sont effectuées en un cycle machine, ce qui permet au processeur de traiter plusieurs instructions en même temps. Ce traitement en pipeline est une technique essentielle utilisée ' pour accélérer les machines à architecture RISC. Il en résulte que les compilateurs RISC doivent générer des programmes pour exécuter des instructions complexes, ce qui aurait été fait par le matériel dans les ordinateurs à architecture CISC. Du fait que l'architecture RISC ne comporte pas un jeu complet d'instructions comme dans l'architecture CISC, ceci exige que du code plus long soit écrit ainsi qu'un séquencement moins optimisé d'instructions par comparaison aux instructions optimisées de l'architecture CISC. En d'autres termes, l'architecture RISC n'est pas toujours adaptée à tous les programmes, en particulier lorsqu'un nombre réduit d'instructions complexes est la séquence d'instructions la plus fréquemment utilisée. En conséquence, le but principal de l'invention est de fournir un dispositif matériel destiné à traiter un jeu d'instructions correspondant mieux au besoin de chaque programme, permettant l'utilisation d'instructions simples lorsque cela est nécessaire, et davantage d'instructions complexes correspondant à la séquence d'instructions de base la plus fréquemment utilisée. Un autre but de l'invention est de fournir un dispositif matériel destiné au traitement d'instructions programmables capable d'exécuter des séquences sélectionnées de micro- instructions parmi un jeu limité de micro-instructions. L'invention se rapporte de ce fait à un dispositif matériel pour le traitement parallèle d'une instruction déterminée d'un jeu d'instructions programmables présentant un même format, avec un champ d'opérande définissant les étapes d'exécution de l'instruction, chacune des étapes d'exécution correspondant à une micro-instruction sélectionnée parmi une pluralité de micro- inst ruct ions. Ce dispositif comprend des blocs de décision qui sont chacun associés à une instruction spécifique d'un jeu d'instructions programmables, un seul bloc de décision étant sélectionné par l'instruction déterminée pour définir quelles sont les micro-instructions qui doivent être traitées en vue de l'exécution de l'instruction déterminée, des blocs d'activation respectivement associés aux macroblocs de décision destinés à exécuter une ou plusieurs micro-instructions spécifiques, seul le bloc d'activation associé uniquement au bloc de décision sélectionné étant activé pour exécuter les micro-instructions spécifiques, et un bloc de sélection de micro-inst ruct ions relié à chaque bloc d'activation pour sélectionner les micro- instructions spécifiques parmi la pluralité de micro-instructions en réponse au contenu du champ d'opérande de l'instruction déterminée. Ce qui précède et d'autres buts, caractéristiques et avantages de l'invention seront mieux compris en lisant la description plus particulière qui suit de l'invention en référence aux dessins annexés dans lesquels : La figure 1 est un bloc-diagramme représentant un mode de réalisation préféré du dispositif conforme à l'invention. La figure 2 est un bloc-diagramme représentant un mode de réalisation préféré d'un bloc de décision du dispositif conforme à l'invention. La figure 3 est un bloc-diagramme représentant principalement un mode de réalisation préféré d'un bloc d'activation du dispositif conforme à l'invention. La figure 4 est un bloc-diagramme représentant principalement un mode de réalisation préféré du bloc de sélection de micro-instructions du dispositif conforme à l'invention. L'idée principale de l'invention est de sélectionner, parmi un jeu d'instructions, un groupe d'instructions appropriées qui doivent être utilisées comme instructions programmables pour les programmes réalisant l'assemblage d'instructions et de séquences d'instructions les plus fréquemment utilisées. Une telle sélection peut être effectuée sur une plage spécifique d'instructions réservées à ce propos et/ou peut être un remplacement des instructions inutilisées, ou moins utilisées, par des instructions plus appropriées. Chacune des instructions programmables consiste en une séquence de micro-instructions prises dans un jeu réduit de micro-instructions. On suppose que chaque construction considérée dans la présente invention comprend un champ d'opérande (opcode) de 8 bits. Ceci signifie que le jeu d'instructions comprend 256 instructions. Parmi ces instructions, il est préférable que seule une partie d'entre elles soit programmable alors que d'autres ne le sont pas. Ainsi, par exemple, on peut supposer que les instructions présentant un champ d'opérande dont la valeur se situe entre 00000000 et 11011111 sont prédéfinies alors que les instructions présentant un champ d'opérande dont la valeur se situe entre 11100000 et 11111111 sont programmables. Dans le dispositif matériel conforme à l'invention illustré sur la figure 1, un registre d'instruction 10 est utilisé pour charger l'instruction qui doit être exécutée. Chaque instruction parmi un groupe de n instructions est décodée par un premier bloc de décision 12, 14, 16, 18 ou 20 parmi n blocs de décision respectivement associés aux n instructions. La sortie de chaque bloc de décision 12 à 20 est fournie à l'un des blocs d'activation correspondant parmi une pluralité de n blocs d'activation 22, 24, 26, 28, 30. Les sorties des blocs d'activation 22 à 30 sont toutes à la valeur 0 à l'exception de la sortie du bloc d'activation correspondant au bloc de décision associé à l'instruction chargée dans le registre 10, lequel est à la valeur 1, Puis, le bloc d'activation recevant la valeur 1 de son bloc de décision correspondant active l'une ou plusieurs mi cro- inst ruct ions 32, 34, 36, 38, 40, 42, 44 qui doivent être exécutées dans le traitement de l'instruction décodée. Par exemple, le nombre de micro- ins t ruct ions est de 7 sur la figure 1. D'une manière générale, le nombre de micro-instructions est réduit, par exemple 64 ou moins, dans la mesure ou un tel nombre réduit définit un nombre très important de combinaisons déterminées par le champ d'opérande de l'instruction. Comme on le verra ci-après, un bloc de sélection de micro-instructions 46 est utilisé pour sélectionner les micro-instruct ions spécifiques qui doivent être exécutées en réponse au contenu du champ d'opérande. De même, un bloc de registres 48 est utilisé pour mémoriser les bits de commande définis par le champ d'opérande de l'instruction, et permettant qu'à la fois le bloc d'activation sélectionné et le bloc de sélection de micro-instructions 46 soient commandés conformément à l'instruction programmable comme décrit ci-après. Chaque bloc de décision 12, 14, 16, 18 ou 20 est un dispositif matériel qui est configuré conformément à l'instruction associée comme décrit à présent en faisant référence à la figure 2. Une telle configuration est réalisée en utilisant un registre de masque 50 et un registre de valeur 52. Le registre de masque 50 qui présente la même longueur que le registre d'instruction 10, contient des bits utilisés pour masquer les bits qui n'ont pas d'intérêt pour l'exécution de l'invention. Ces bits sont tous des bits de données qui ne sont pas des bits d'opérande dans l'instruction, mais peuvent être également des bits du champ d'opérande qui sont inutiles pour cette instruction. Ainsi, les instructions pour une comparaison sur 8 bits et une comparaison sur 16 bits sont similaires mais 8 bits du code d'opération sont inutiles pour une comparaison sur 8 bits et peuvent être masqués. Dans un tel cas, le masque permet de réduire le nombre de blocs de décision du fait que plusieurs instructions sont présentées par un seul masque. On notera que dans le mode de réalisation préféré, les bits qui sont utilisés en tant que masque sont initialisés à la valeur 1 et que les autres bits correspondant aux bits pertinents du champ d'opérande sont initialisés à la valeur 0. Chaque bit du registre de masque est combiné logiquement dans un circuit OU (OR) 54 (seul un circuit est référencé sur la figure 2), le bit correspondant de l'instruction étant chargé dans le registre d'instruction 10. Ceci signifie que seul les bits utiles du champ d'opérande de l'instruction conservent leurs valeurs correctes alors que les autres bits correspondant aux bits de masquage du registre de masque 50 sont tous établis à la valeur 1. Le registre de valeur 52 qui a la même longueur que le registre d'instruction 10, contient des bits identiques aux bits utiles du champ d'opérande dans l'instruction et des bits inutiles du champ d'opérande ou des bits des autres champs de données sont initialisés à la valeur 1. Chaque bit du registre de valeur 52 est combiné logiquement dans un circuit OU EXCLUSIF (XOR) 56 (seul un circuit est référencé sur la figure 2), le bit correspondant fourni par le circuit logique OU étant associé au bit correspondant de l'instruction. Par suite, tous les bits fournis par le circuit logique OU EXCLUSIF sont combinés logiquement dans un circuit NON-OU (NOR) 58. Ceci signifie que la ligne de sortie 60 du circuit NON-OU est établi à la valeur 1 uniquement si toutes les sorties des circuits OU EXCLUSIF sont établies à 0, c'est-à-dire lorsque la séquence de bits au niveau des sorties des circuits logiques OU est identique à la séquence des bits chargés dans le registre de valeur 52. En d'autres termes, la ligne de sortie 60 du bloc de décision est à la valeur 1 uniquement si ce bloc est configuré conformément à l'instruction chargée dans le registred'instruction 10. Bien que la détermination de l'instruction impliquée soit de préférence mise en oeuvre en utilisant un bloc de décision tel que décrit en faisant référence à la figure 2, il est possible d'utiliser tout autre mécanisme de décodage quelconque. Ainsi, un décodage de base du code d'opérande de l'instruction serait suffisant pour identifier et sélectionner les micro-instructions devant être exécutées. A titre d'exemple, si une plage est définie pour le jeu d'instructions programmable, un premier décodage identifiera cette plage. Il correspond à une ligne de sélection de circuit (CS) bien connue dans la conception des ordinateurs et de la logique. En outre, un décodage séparé des bits significatifs de cette plage est effectué afin de sélectionner chaque instruction. Ceci peut être réalisé en utilisant des décodeurs classiques 3 à 8 ou 4 à 16. Une conception équivalente en utilisant un ET logique, un OU logique et des portes d'inverseurs de circuits peut être utilisée. Alors, chaque bloc de décision représente un ET logique entre chaque sortie de ce décodeur et la ligne CS décodant la plage. Il n'y aura, s'il existe un code d'opération d'instruction programmable, qu'un bloc de décision qui identifiera et sélectionnera le code d'opération car il n'y aura qu'une sortie de décodeur valide. Si le code d'opération qui est décodé n'est pas compris dans la plage programmable, la ligne CS ne sera pas activée et aucun sélecteur de bloc ne sera activé. Toujours avec cet exemple déjà mentionné ci-dessus, on suppose que 5 bits du code d'opérande sont programmables, résultant en un sous-ensemble de 32 instructions programmables. Ce sous-ensemble peut être divisé en 8 groupes d'instructions définis par 3 bits et chaque groupe peut inclure 4 instructions définies par 2 bits. Dans un tel exemple, un groupe détermine les micro-instructions qui peuvent être activées par les instructions du groupe, et une instruction détermine lesquelles de ces micro- inst ruct ions sont exécutées et dans quel ordre (en parallèle ou en séquence). En supposant que les micro-instructions qui peuvent être utilisées dans un groupe sont prises à partir d'un jeu global de 64 micra-instructions, le procédé préféré consiste à prédéfinir des associations de micro-instructions. Avec un code de sélection de 8 bits, il est possible de définir 256 telles associations de micro-instructions. On notera que le nombre de ces associations peut être plus important en augmentant ainsi le nombre de bits du code de sélection. En supposant qu'une association de 3 micro-instructions soit affectée à un groupe, il est nécessaire de définir un code d'exécution déterminant, pour chaque instruction du groupe, les micro- inst ruct ions parmi ces 3 micro-instructions devant être utilisées et dans quel ordre. Dans un tel cas, les possibilités d'exécution qui en découlent sont les suivantes : 1: micro-instructions 1, 2 et 3 exécutées en parallèle 2: mi cro- inst ruct ions 1, 2 exécutées en parallèle, 3 non exécutée 3: micro- inst ruct ions 1, 3 exécutées en parallèle, 2 non exécutée 4: micro- inst ruct ions 2, 3 exécutées en parallèle, 1 non exécutée 5: micro-instructions 1 exécutée, 2 et 3 non exécutées 6: micro-instructions 2 exécutée, 1 et 3 non exécutées 7: micro-instructions 3 exécutée, 1 et 2 non exécutées 8: micro-instructions 1, 2 et 3 exécutées en séquence 9: micro-instructions 2, 1 et 3 exécutées en séquence 10: micro-instructions 2, 3 et 1 exécutées en séquence 11: micro-instructions 3, 2 et 1 exécutées en séquence 12; micro-instructions 3, 1 et 2 exécutées en séquence 13: micro-instructions 1, 3 et 2 exécutées en séquence 14: micro- inst ruct ions 1, 2 exécutées en séquence, 3 non exécutée 15 micro-inst ruct ions 1, 3 exécutées en séquence, 2 non exécutée 16: micro- inst ruct ions 2, 3 exécutées en séquence, 1 non exécutée 17: micro- instructions 2, 1 exécutées en séquence, 3 non exécutée 18: micro- instructions 3, 1 exécutées en séquence, 2 non exécutée 19: micro- inst ruct ions 3, 2 exécutées en séquence, 1 non exécutée 20: micro-instructions 1, 2 exécutées en parallèle, 3 après 21: micro-instructions 1, 3 exécutées en parallèle, 2 après 22: micro- instructions 2, 3 exécutées en parallèle, 1 après 23: micro- inst ruct ions 3 en premier puis 1, 2 exécutées en parallèle 24: mi cro- inst ruct ions 2 en premier puis 1, 3 exécutées en parallèle 25: micro- ins t ruct ions 1 en premier, puis 2, 3 exécutées en parallèle En conséquence, un code d'exécution de 5 bits pour chaque instruction du groupe est suffisant. Naturellement, lorsque davantage de micro-inst ruct ions sont utilisées dans un groupe, le code d'exécution peut nécessiter plus de 5 bits. Un mode de réalisation préféré d'un bloc d'activation 22 à 30 (par exemple le bloc d'activation 22) activant 3 micro-instructions parmi le jeu de micro-instructions est à présent décrit en faisant référence à la figure 3. On notera que dans le présent exemple, chaque groupe nécessite 8 bits (code de sélection) et 4 x 5 bits (code d'exécution), c"est-à-dire 28 bits. Ainsi, du fait qu'il existe 8-groupes définis par 3 bits du champ d'opérande de l'instruction, le bloc de registres doit avoir une capacité minimale de 28 x 8 = 224 bits. Mais il est évident que la capacité du bloc de registres doit être adaptée au nombre de micro-instructions- qui sont utilisées, au nombre d'associations de micro-instructions, au nombre d'instructions programmables et au nombre de groupes d'instruction programmables. On notera que, en plus de définir les instructions programmables par un sous-champ dans le code d'opérande de l'instruction, certaines instructions programmables peuvent être définies par un remplacement des instructions inutilisées ou moins utilisées. Un tel remplacement par des instructions programmables est obtenu en modifiant le contenu du registre de masque 50 et du registre de valeur 52 dans le bloc de décision (se reporter à la figure 2) en réponse à un code spécifique dans le bloc de registres 48. En revenant à la figure 3, le code d'exécution (de 5 bits) du bloc de registres 48 est utilisé par une logique de commande 62 dans le bloc d'activation pour établir les sorties Ml, M2, M3 et 1L2, 1L3, 2L3, 2L1, 3L1, 3L2. Les sorties Ml, M2, M3 définissent quelles micro- inst ruct ions doivent être activées, mi correspondant à la micro-instruction 1 (32), M2 correspondant à la micro-instruction 2 (34) et M3 correspondant à la micro-instruction 3 (36). Les sorties du bas mLn déterminent l'ordre selon lequel ces micro-instructions sont activées. Pour information, mLn avec m et n représentant 1, 2 ou 3, indique qu'une micro-instruction m sera exécutée seulement après qu'une micro-instruction n a été entièrement exécutée. De manière à simplifier la figure, un bloc de sélection de micro-instructions 46 qui sera décrit ci-après, n'est représenté que par des lignes en pointillé. De la même manière, les lignes de liaison entre un bloc d'activation 22 et les micro-instructions sont représentées par des lignes en pointillé sans les détails des liaisons. Bien que dans l'exemple, seules trois micro-instruct ions sont exécutées, il est possible que le nombre de micro-instructions qui doivent être exécutées soit différent. D'une manière générale, si le nombre d'instructions est I, les sorties de la logique de commande 62 sont Ml, M2, MI, et le nombre de sorties inférieures mLn est égal à I x (I-1) . On notera que chacune des sorties M est un masque pour la micro-instruction correspondante : la valeur 1 sélectionne la micro-instruction et la valeur 0 la désactive. - Sur la base de la mise en oeuvre ci-dessus de la logique de commande 62, il devient clair de comprendre comment mettre en oeuvre une combinaison de circuits logiques ET et OU représentés sur la figure 3. Mais, il est également clair que de tels circuits pourraient être remplacés par l'homme du métier par une logique câblée différente pour obtenir le même résultat. On notera que chaque bloc de micro- inst ruct ions 32, 34 ou 36 comporte une ligne d'entrée qui est utilisée pour activer la micro-instruction lorsqu'elle est établie à la valeur 1 et une ligne de sortie qui n'est établie à la valeur 1 que lorsque l'exécution de la micro- inst ruct ion est achevée. En supposant que seules les mi cro- instructions 1 et 2 doivent être exécutées, avec la micro-instruction 2 qui s'exécute après l'achèvement de l'exécution de la micro- instruction 1, les valeurs binaires des sorties sont établies comme suit : mi - - - - > 1 M2 ---- > 1 M3 ---- > 0 lL2 ---- > 1 1L3 ---- > 1 2L3 ---- > 1 2L1 ---- > 0 3L1 -7 --- > 1 3L2 ---- > 1 En se référant à nouveau à la figure 3, à la fois 1L3 et 1L2 étant établies à une valeur 1, le circuit ET (AND) 64 a ses deux entrées (des cicuits OU (OR) ) établies à une valeur 1 et le circuit ET produit une sortie à une valeur 1 vers un circuit ET (AND) 66. Du fait que le bloc d'activation 22 de la figure 3 est sélectionné, l'entrée depuis le bloc de décision 12 (se reporter à la figure 2) est établie à une valeur 1. La troisième entrée Ml du circuit ET 66 étant à la valeur 1, le circuit ET 66 produit un bit à la valeur 1 sur sa ligne de sortie 68 qui active la micro-instruction 1. Réciproquement, un circuit ET 70 a sa première entrée établie à une valeur 1 (par 2L3) . Mais sa seconde entrée est à une valeur 0 du fait que parmi ses deux entrées, 2L1 est établie à une valeur 0 et une micro-instruction 1 produit un bit à une valeur 0 sur sa ligne de sortie 72 tant que la micro-instruction 1 n'est pas achevée. Aussitôt que l'exécution de la micro-instruction 1 est achevée, elle produit un bit à une valeur 1 sur la ligne de sortie 72 et le circuit ET 70 a ses deux entrées qui sont établies à une valeur 1. De ce fait, le circuit ET 70 établit sa sortie à une valeur 1. Les trois entrées du circuit ET 74 étant établies à une valeur 1 du fait que la sortie M2 est à une valeur 1, il produit un bit à une valeur 1 sur sa ligne de sortie 76 qui active une micro-instruction 2. En ce qui concerne la micro-instruction 3, elle ne sera jamais activée. En effet, le circuit ET 78 a son entrée M3 qui est établie à 0 par la logique de commande 62. De ce fait, la ligne de sortie 80 (ligne d'activation de la micro-instruction 3) du circuit ET 78 est toujours à une valeur 0. Le bloc de sélection de micro-instructions 46 (se reporter à la figure 1) relié à chacun des blocs d'activation en vue de la sélection de la micro-instruction spécifique devant être utilisée par l'instruction parmi la pluralité de micro-inst ruct ions, est décrit à présent en faisant référence à la figure 4. Comme mentionné ci-dessus, le bloc de registres 48 est utilisé pour mémoriser les bits de commande définis par le champ dopérande de l'instruction, et en particulier, un code de sélection associé à chaque groupe d'instructions en vue de définir quelles sont les micro-instructions qui doivent être utilisées dans l'instruction. En supposant qu'il existe 256 associations de micro-instructions, chaque code de sélection comprend 8 bits. Si comme défini ci-dessus, il existe 8 groupes d'instructions (définis par trois bits dans le code d'opérande), 8 codes de sélection 82 ou 84 sont nécessaires pour commander le bloc de sélection de micro-instructions 46. Le bloc de sélection de micro-instructions 46 est essentiellement composé de n sélecteurs 86, 88, 90 associés respectivement à chacun des blocs d'activation. Comme illustré sur la figure 4, le sélecteur 86 est associé au bloc d'activation 22, le sélecteur 88 est associé au bloc d'activation 24 et le sélecteur 90 est associé au bloc d'activation 30. Chaque sélecteur de micro-instructions 86, 88 ou 90 comprend autant de circuits combinatoires logiques que le nombre de sorties multiplié par le nombre d'entrées. Pour chaque couple entrée/sortie, ce circuit utilise le code de sélection et les liaisons des blocs d'activation associés en tant qu'entrées et comporte une seule sortie vers la micro- inst ruct ion appropriée par l'intermédiaire du circuit OU 92. Le circuit combinatoire établit sa sortie à une valeur 1 chaque fois que l'entrée du code de sélection est activé, c'est-à-dire pour tous les codes de sélection qui commandent de mapper cette entrée vers cette sortie. Pour toutes les autres valeurs du code de sélection, la sortie est établie à une valeur 0. Par exemple, avec un code de sélection de 8 bits définissant 256 cas possibles, seuls dix cas pourraient avoir défini la micro-instruction 4 (38) devant être associée à une sortie 1 du bloc d'activation 2 (24) . En supposant qu'il existe 8 groupes de 4 instructions, ceci signifie que n et qu'il existe 32 blocs d'activation respectivement associés aux 32 sélecteurs. En outre, un code de sélecteur commande 4 sélecteurs, comme le code de sélecteur 82 qui commande le sélecteur 86 (1), le sélecteur 88 (2) .... Dans l'exemple illustré sur la figure 4, 3 micro-instructions parmi 7 micro-instructions sont activées! nécessitant ainsi trois lignes de liaisons bidirectionnelles entre un bloc d'activation et son sélecteur associé dans le bloc de sélection de micro-instructions 46. La ligne de sortie de chaque sélecteur n'est pas reliée directement à la micro-instruction sélectionnée par l'intermédiaire d'un circuit OU du fait que chaque sélecteur peut activer chaque micro-instruction en fonction du code de sélection dans le bloc de registres 48. Par conséquent, toutes les sorties des sélecteurs 1 à n sont combinées dans un circuit OU tel que le circuit OU (OR) 92 pour chaque micro- inst ruct ion. Dans l'autre sens, c'est-à-dire à partir de chaque bloc de micro-instruction vers le sélecteur, il n'existe aucun besoin de regrouper les lignes de connexion du fait que la ligne provenant du bloc de mi cro- instructions sera établie à une valeur 1 et reconnue directement par le sélecteur défini par le code de sélecteur et non pas par les autres sélecteurs du fait qu'un seul sélecteur est actif. Par conséquent, la sortie de chaque micro-instructions est reliée directement à tous les sélecteurs et réciproquement, chaque sélecteur est relié à chaque bloc de micro-instruction par deux lignes de liaison, une ligne de sortie (par l'intermédiaire d'un circuit OU) et une ligne d'entrée (directement). REVENDICATIONS 1. Dispositif matériel pour le traitement parallèle d'une instruction déterminée d'un jeu d'instructions programmables présentant un même format avec un champ d'opérande définissant les étapes d'exécution de l'instruction, chacune desdites étapes d'exécution correspondant à une micro-instruction sélectionnée parmi une pluralité de micro-instructions (32 à 44), ledit dispositif comprenant : . des blocs de décision (12 à 20) qui sont chacun associé à une instruction spécifique dudit jeu d'instructions programmables, seul un bloc de décision étant sélectionné par ladite instruction déterminée de manière à définir quelles sont les micro-instructions qui doivent être traitées pour l'exécution de ladite instruction déterminée, . des blocs d'activation (22 à 30) respectivement associés auxdits blocs de décision destinés à exécuter une ou plusieurs micro-instructions spécifiques, seul le bloc d'activation associé audit bloc de décision sélectionné étant activé pour exécuter lesdites micro-instructions spécifiques, et . un bloc de sélection de micro-inst ruct ions (46) relié à chacun desdits blocs d'activation destiné à sélectionner lesdites micro-instructions spécifiques parmi ladite pluralité de micro- instructions en réponse au contenu dudit champ d'opérande de ladite instruction déterminée. 2. Dispositif selon la revendication 1, comprenant en outre un bloc de registres (48) destiné à mémoriser un code de sélection sélectionnant lesdites micro-instructions spécifiques et un code d'exécution définissant lesquelles desdites micro-instructions spécifiques doivent être exécutées et dans quel ordre. 3. Dispositif selon la revendication 2, dans lequel chacun desdits blocs d'activation (22 à 30) comprend une logique de commande sensible audit code d'exécution dans ledit bloc de registres (48), ledit bloc d'activation (22) associé audit bloc de décision sélectionné (12) qui est activé fournissant, en réponse audit code d'exécution et audit bloc de décision, des premiers signaux de commande (Mi, M2, M3) destinés à sélectionner quelles micro-instructions parmi lesdites micro-instructions spécifiques doivent être exécutées et des seconds signaux de commande (3L2, 3L1, 2L1, 2L3, 1L3, 1L2) déterminant chaque micro-instruction devant être exécutée et quelle micro-instruction précédente doit être exécutée complètement auparavant. 4. Dispositif selon la revendication 3, dans lequel ledit bloc d'activation (22) comprend en outre une logique combinatoire comprenant un circuit ET (66, 74 ou 78) associé à chacune desdites micro-instructions spécifiques et aux circuits logiques (64 ou 70), la sortie dudit circuit ET étant établie à une valeur 1 pour activer la micro-instruction associée lorsque ledit bloc de décision (12) et ledit bloc d'activation sont activés ensemble, ledit signal de commande destiné à sélectionner la micro-instruction est actif et ladite micro-instruction précédente a été exécutée. 5. Dispositif selon l'une quelconque des revendications 2 à 4, dans lequel ledit bloc de sélection de micro-instructions (46) comprend une pluralité de sélecteurs de micro-instructions (86, 88, 90) associés respectivement à chacun desdits blocs d'activation (22 à 30), chaque sélecteur de micro- ins t ruct ions connectant le bloc d'activation associé auxdites micro-instructions spécifiques en réponse audit code de sélection (82 ou 84). 6. Dispositif selon la revendication 5, dans lequel chacun desdits sélecteurs de micro-instructions (86, 88, 90) comprend des moyens de connexion destiné à relier ledit bloc d'activation associé (22 à 30) à chaque micro-instruction (32 à 44), seules les connexions auxdites micro-instructions spécifiques étant activées en réponse audit code de sélection. 7. Dispositif selon la revendication 6, dans lequel lesdits moyens de connexion dans ledit sélecteur de micro-instructions (86, 88, 90) comprennent des moyens destinés à activer chaque micro-instruction qui a été sélectionnée en réponse audit code de sélection et un moyen pour connecter ladite micro- instruction sélectionnée audit bloc d'activation associé (22 à 30) lorsque ladite micro-instruction sélectionnée a été exécutée. 8. Dispositif selon l'une quelconque des revendications 2 à 7, dans lequel ledit jeu d'instructions programmables est un premier jeu d'instructions parmi une pluralité d'instructions comprenant également un second jeu d'instructions non programmables, ledit jeu d'instructions programmables étant défini par un sous-champ dudit champ d'opérande. 9. Dispositif selon la revendication 8, dans lequel ledit sous-champ dudit champ d'opérande comprend une première partie définissant des groupes d'instructions associés respectivement à des groupes de micro- inst ruct ions spécifiques parmi ladite pluralité de micro-instructions (32 à 44), chaque groupe d'instructions étant associé respectivement à un code de sélection mémorisé dans ledit bloc de registres (48), et une seconde partie définissant ladite instruction déterminée parmi ledit groupe d'instructions, ladite instruction déterminée étant associée respectivement à un code d'exécution dans ledit bloc de registres pour définir quelles micro-inst ruct ions parmi le groupe de micro-instructions spécifiques sélectionnées par ledit code de sélection doivent être activées et dans quel ordre. 10. Dispositif selon l'une quelconque des revendications 1 à 9, dans lequel chacun desdits blocs de décision (12 à 20) comprend un registre de masque (50) ayant la-même longueur que ladite instruction déterminée et contenant un masque destiné à masquer les bits des champs autres que le champ d'opérande et un registre de valeur (52) contenant une valeur présentant la même longueur que celle de ladite instruction déterminée et composée d'une partie définie correspondant audit champ d'opérande et identique à celui-ci, et des moyens de logique combinatoire (54, 56) destinés à combiner logiquement ladite instruction déterminée au contenu dudit registre de masque et au contenu dudit registre de valeur de sorte que la sortie dudit bloc de décision n'est à la valeur 1 que lorsque ladite instruction déterminée est ladite instruction spécifique associée audit bloc de décision. 11. Dispositif selon la revendication 10, dans lequel certaines instructions programmables peuvent être définies par un remplacement d'instructions inutilisées ou moins utilisées, un tel remplacement étant obtenu en modifiant le contenu dudit registre de masque (50) et ledit registre de valeur (52) dans ledit bloc de décision en réponse à un code spécifique dans ledit bloc de registres (48).