Brevet FR2475763A1 — publié le 19810814

La présente invention concerne un processeur numé- rique conçu pour le fonctionnement en mode pipeline qui com- prend une source fournissant un train de mots d'instruction pour commander des opérations de traitement de routine et fournissant un train de mots de données, une unité arithmé- tique qui traite un mot de données avec un autre mot de données, dans des sous-unit6s de traitement sélectionnées qui accomplissent les opérations représentées par une expression, ce qui produit un mot de données résultant, et une unité de destination qui reçoit le mot de données résultant provenant de l'unité arithmétique. Les calculateurs numériques commandés par program- me enregistré, ou ordinateurs, comprennent de façon caracté- ristique une mémoire, des circuits d'entrée-sortie, un con- tr8leur et une unité arithmétique. La mémoire constitue une source pour un programme d'ordinateur et des données à traiter par l'unité arithmétique. L'unité arithmétique com- prend des circuits qui offrent des moyens permettant de manipuler les données d'une manière prédéterminée. Le con- tr8leur fournit des signaux de commande destinés à assurer la synchronisation et à commander les transferts des données qui doivent être traitées. Les circuits d'entrée- sortie offrent des moyens permettant le transfert d'infor- mation entre l'ordinateur et des dispositifs externes. Certaines opérations de l'ordinateur peuvent être condi- tionnées par des indicateurs, des états ou des conditions indiquant un résultat d'opérations antérieures ou d'autres événements. Pour augmenter la vitesse de calcul, certains ordinateurs sont conçus de façon à permettre le fonctionne- ment en mode pipeline. Dans un fonctionnement en mode pipe- line, l'unité ou section arithmétique comprend un ensemble de circuits spécialisés capables de travailler simultané- ment mais formant conjointement une organisation de type universel. Ces circuits spécialisés fonctionnent indépen- damment, chacun d'eux accomplissant une tâche particulière dans une procédure de type universel. Le fonctionnement en mode pipeline divise un traitement en plusieurs sous- traitements qu'exécutent les circuits spécialisés indivi- duels. Les sous-traitements successifs sont accomplis selon un mode en chevauchement analogue à celui d'une chaîne de montage dans l'industrie. De nouveaux opérandes sont appliqvés à'lenéedillunité arithmétique au cours de chaque cycle. Différentes sous-unités de l'unité arithmétique accomplis- sent leurs tâches en ordre séquentiel pendant des cycles successifs. Un résultat est produit à chaque cycle. Chaque circuit spécialisé effectue sa propre tache à la cadence de cycle. La commande d'un ordinateur ou d'un processeur à structure pipeline présente des problèmes particulièrement embarrassants lorsque des opérations doivent être exécutées de façon conditionnelle, du fait que les instructions s'empilent dans le pipeline pendant le fonctionnement dans les conditions normales. Un processeur numérique à structure pipeline de l'art antérieur est conçu de façon à transférer les mots de données et les instructions de la mémoire vers l'unité arithmétique et vers une unité de commande, dans des trains respectifs à structure pipeline. Ces trains de mots de données et de mots d'instruction emplissent des pipelines de circuits dans le processeur. Tant que le processeur fonctionne normalement, les pipelines d'information sont traités pas à pas d'une manière cyclique dans les unités du processeur. Il apparaît cependant un problème lorsqu'une opération doit être exécutée conditionnellement. Cette opé- ration est réalisée de façon caractéristique par un trans- fert conditionnel qui provoque l'exécution d'une séquence parmi deux séquences alternatives comprenant une ou plu- sieurs instructions. Du fait que l'une de ces séquences d'instructions se trouve dans le pipeline du processeur lorsque la condition est examinée, il peut être nécessaire d'interrompre l'exécution de cette séquence et de commencer à emplir le pipeline pour exécuter l'autre séquence. Chaque mise en oeuvre de cette autre séquence entraîne une perte de temps de traitement. Conformément à l'invention, le problème est résolu par un processeur numérique conçu pour le fonctionnement en mode pipeline, dans lequel le processeur comprend des cir- cuits de commande destinés à décoder un seul mot d'instruc- tion conditionnelle pour commander l'accomplissement d'un test de condition spécifique pendant un premier cycle sui- vant du processeur, les circuits de commande décodEt unautre mot d'instruction pendant le premier cycle suivant du pro- cesseur, afin de commander certaines opérations d'une unité de traitement pendant un second cycle suivant du processeur, un comparateur réagissant au mot d'instruction conditionnel- le décodé compare au moyen d'un premier dispositif les con- ditions qui existent dans le processeur numérique au cours du premier cycle de processeur suivant, et au moyen d'un second dispositif, l'information de condition spécifique qui figure dans le mot d'instruction conditionnelle, pour produire un signal de condition, et des circuits logiques fonctionnant sous la dépendance du signal de condition blo- quent sélectivement la commande d'une partie au moins d'une unité du processeur numérique pendant le second cycle sui- vant du processeur. L'invention sera mieux comprise à la lecture de la description qui va suivre d'un mode de réalisation et en se référant aux dessins annexés sur lesquels: Les figures 1 et 2, placées de la manière repré- sentée sur la figure 3 qui apparaît à côté de la figure 1, forment un schéma synoptique d'un processeur de signal numérique à structure pipeline; La figure 4 est un diagramme séquentiel Les figures 5 et 6, placées de la manière repré- sentée sur la figure 7 qui apparaît à côté de la figure 5, forment un diagramme fonctionnel du processeur; et La figure 8 est un diagramme fonctionnel du pro- cesseur pour une opération conditionnelle. On va maintenant considérer les figures 1 et 2 qui représentent l'architecture d'ensemble d'un processeur de signal numérique à structure pipeline. Une mémoire morte 100 enregistre des instructions et des mots de données fixes. Les instructions sont transfé- rées à partir de la mémoire morte vers des registres d'ins- truction IR-C; IR-L, M, N; et IR-S, T, portant respective- ment les références 131, 133 et 134, par l'intermédiaire d'un bus commun de commande et de données, 101. Certaines parties des instructions sont distribuées aux registres d'instruction. Des mots de données fixes, ou motsde coeffi- cient, sont transférés de la mémoire morte vers un registre de coefficient 102, par l'intermédiaire du bus commun de commande et de données 101. Le registre 102 porte la mention REG X du fait que les coefficients sont identifiés ci-après par le symbole x. Une mémoire vive 105 enregistre des mots de données variables qui peuvent être enregistrés dans cette mémoire soit à partir d'une source externe soit à partir de la sortie de l'unité arithmétique du processeur considéré. Les mots de données variables sont transférés de la mémoire vive vers un registre de données variables 106, par l'inter- médiaire du bus commun de données et de commande 101. Le registre 106 porte la mention REG Y, du fait que les mots de données variables sont identifiés ci-après par le symbo- le y. Au choix de l'utilisateur, la mémoire vive peut enre- gistrer des coefficients utilisés à la place de mots de données fixes, aussi bien que les mots de données varia- bles. Les registres 102 et 106 enregistrent respective- ment un train séquentiel de mots de coefficient et de mots de données variables qui sont des opérandes appliqués en tant que signaux d'entrée à une unité arithmétique 110. Ces séquences d'opérandes sont traitées en mode pipeline dans une sousunité de multiplicateur 112, une sous-unité d'accumulateur 115 et une sous-unité de circuit d'arrondi et de dépassement de capacité, 116. Un mot de sortie arron- di apparaît dans un registre 118 qui porte la mention REG W, du fait que les mots de sortie arrondis sont identi- fiés ci-après par le symbole w. L'unité arithmétique comprend un circuit de sélection de sortie 120 qui est destiné à choisir en tant que mot de sortie appliqué sur le bus de données 101 à partir de l'unité arithmétique, soit le mot de données variables y qui est enregistré dans le registre 106, soit le mot de sortie arrondi w qui est enregistré dans le registre 118. Le mot de sortie arrondi w est un résultat d'un certain traitement accompli par l'unité arithmétique. Le mot de sortie choisi peut être transféré à partir du registre 106 ou du registre 118 et par le bus commun de commande et de données 101, vers une destination à laquelle il est possible d'écrire de l'information, comme la mémoire vive 105. Comme il a été indiqué précédemment, des instruc- tions destinées au processeur de signal numérique sont enregistrées dans la mémoire morte 100. Pendant chaque cycle du processeur, représenté sur la figure 4, une seule instruction est automatiquement lue dans la mémoire morte à un emplacement qui correspond à une adresse produite par une unité ou section arithmétique d'adresse, 124. L'adresse provenant d'un registre de compteur d'instruction PC dans l'unité arithmétique d'adresse est appliquée par un bus d'adresse 128 au circuit d'adresse de la mémoire morte. La mémoire morte réagit au cours de chaque cycle du processeur en émettant par le bus commun de commande et de données l'instruction unique ainsi prélevée, cette instruction étant dirigée vers les divers registres de zone, ou instruction, de commande IR-C, IR-L,M,N, et IR-S,T qui sont associés à différentes unités du processeur. Chaque instruction, ou code d'opération, utilisé dans le processeur de signal numérique comprend plusieurs zones de commande, ou messages de commande, chacun d'eux ayant une désignation telle que 1, m, n, s et t, qu'on utilisera par la suite. Le registre de zone de commande IR-L,M,N associé à l'unité arithmétique 110 reçoit certai- nes des zones, comme les zones d'instruction 1, m et n, qui sont respectivement associées à la commande des opérations de multiplication, d'accumulation et d'arrondi. Le registre de zone de commande IR-S,T, associé à l'unité arithmétique d'adresse 124, reçoit les zones d'instruction s et t qui concernent la commande de la modification du registre d'adresse pour commander le prélèvement des opérandes x et y et pour enregistrer le mot de sortie choisi par le circuit sélecteur 120. L'unité arithmétique d'adresse 124 comprend deux ensembles de registres 141 et 142, un réseau de bascules de bus d'adresse 145, un additionneur 147 et un réseau de bascules d'additionneur 150 qui sont interconnectés par un certain nombre de bus. L'ensemble de registres 141, comprenant les registres RX, RY, RD et PC, est conçu de façon à enregis- trer les adresses de mémoire. Une adresse enregistrée dans le registre RX peut être utilisée pour accéder à un mot de coefficient enregistré dans une position de la mémoire vive ou de la mémoire morte. Une adresse enregistrée dans le registre RY ne peut être utilisée que pour accéder à un mot de données variables enregistré dans une position de la mémoire vive. Une adresse enregistrée dans le registre RD peut être utilisée pour écrire un mot de données résultant à une destination, comme une position dans la mémoire vive. Une adresse enregistrée dans le registre de compteur d'instruction PC est utilisée pour accéder à l'instruction suivante ou au mot de données fixes suivant dans la mémoire morte. Le second ensemble de registres 142 est conçu de. façon à enregistrer des valeurs d'incrément variables des- tinées à être utilisées pour incrémenter automatiquement les adresses qui sont enregistrées dans les registres RX, RY et RD. Selon une variante, on peut incrémenter les adresses enregistrées au moyen d'un incrément parmi un ensemble d'incréments de valeur fixe. Les opérations du processeur de signal numérique sont commandées par deux types d'instructions. Les instruc- tions normales sont utilisées la plupart du temps. Elles commandent l'accomplissement d'opérations arithmétiques pendant le traitement des signaux. Il existe une instruction d'un autre type, utilisée occasionnellement, qu'on appelle une instruction auxiliaire. Une instruction auxiliaire parti- culière commande le chargement d'un registre d'adresse ou d'un registre d'incrément d'adresse dans l'unité arithméti- que d'adresse. On suppose qu'une séquence d'instructions de démarrage est enregistrée dans la mémoire morte à partir d'une adresse initiale et qu'un circuit de restauration positionne le registre de compteur d'instruction PC à l'adresse initiale. Après l'opération de restauration, il y a de façon caractéristique une séquence d'instructions des- tinée à enregistrer des adresses supplémentaires dans les registres d'adresse RX, RY et RD et des valeurs d'incrément dans les registres d'incrément RI, RJ et RK. Ces registres sont positionnés par des instructions auxiliaires. Habi- tuellement, les valeui sont enregistrées dans les registres RI, RJ et RK sont conservées dans ceux-ci pendant toute la durée d'exécution d'un programme, tandis que les valeurs contenues dans les registres RX, RY et RD sont modifiées de temps en temps pendant l'exécution d'une séquence d'ins- tructions normales. Une fois que le processeur a été restauré et que les valeurs d'adresse et d'incrément ont été enregistrées, le processeur peut exécuter un programme valide pour trai- ter des signaux numériques. La plupart des instructions qui sont utilisées pour le traitement des signaux sont des instructions arithmétiques normales. L'information contenue dans chacun des registres RX, RY, RD, PC, RI, RJ et RK peut être fixée à n'importe quelle valeur particulière au moyen d'une instruction auxi- liaire. Par exemple, une première instruction destinée à charger le registre d'adresse RY spécifie qu'un certain registre du processeur doit être chargé ou positionné. Dans cette première instruction, une zone de commande c contient l'information nécessaire. Cette zone de commande c est enregistrée dans un registre d'instruction IR-C pendant le cycle de prise en charge d'instruction. Un mot de données fixes, associé à la première instruction et chargé dans l'unité arithmétique d'adresse 124 pendant le cycle du processeur au cours duquel cette instruction est déccdée, fournit une information qui identi- fie le registre d'adresse qui doit être chargé et qui fixe la valeur d'incrément à charger. La zone de commande et la zone de valeur sont transférées par le bus commun de com- mande et de données 101, depuis la mémoire vers le registre de zone de commande XSR, 185, et le registre de zone de valeur XSL. 186. Pendant que la première instruction est exécutée, la zone de commande qui se trouve dans le registre XSR est décodée dans un décodeur 157 pour sélectionner le registre d'adresse approprié. A partir du registre XSL, la valeur à charger dans le registre d'adresse RY est-appliquée aux registres 141 et 142 par un circuit sélecteur 158 et un bus , pendant le cycle d'exécution de la première instruc- tion. Une seconde instruction destinée au chargement du registre d'incrément RI spécifie qu'un registre du pro- cesseur doit être chargé ou positionné. Comme dans l'exem- ple qui vient d'être décrit, concernant le positionnement du registre d'adresse RY, un mot de données fixes qui est associé de façon similaire à la seconde instruction définit une zone de commande destinée à identifier le registre à positionner et une zone de valeur destinée à établir la valeur à charger. Les zones du mot de données fixes sont transmises à partir du registre XSR, par le décodeur 157 et le bus 137, pour déterminer le registre d'incrément qui est sélectionné dans l'ensemble de registres 142, et à partir du registre XSL, par le sélecteur 158 et le bus 160, pour établir la valeur qui doit être chargée dans le regis- tre d'incrément sélectionné pendant le cycle d'exécution de la seconde instruction. Pendant le traitement des instructions normales comme des instructions auxiliaires, les zones de commande s et t de l'instruction sont enregistrées dans le registre d'instruction IR-S,T lorsque cette instruction est prise en charge. Ces zones sont décodées dans un décodeur 152 pendant le cycle suivant du processeur et l'information décodée est enregistrée dans un circuit de commande AAU, 154. Cette information décodée est appliquée par un bus 135 aux ensembles de registres 141 et 142 pendant le cycle d'exécution d'instruction, ou second cycle du processeur, après la prise en charge. Un registre d'adresse ainsi qu'un registre d'incrément ou un incrément fixe sont sélectionnés par l'information présente sur le bus 135. L'adresse est appliquée au réseau de bascules de bus d'adresse 145 ainsi qu'à l'entrée d'un additionneur 147. La valeur d'incrément est appliquée simultanément à l'autre entrée de l'addition- neur 147, qui incrémente l'adresse et l'enregistre pendant un état de machine dans un réseau de bascules d'addition- neur 150. Pendant l'état de machine suivant, l'adresse incrémentée est appliquée par un bus 136 à l'ensemble de registres d'adresse 141. Simultanément au traitement d'une instruction nor- male, une partie de l'information contenue dans les zones s et t est transmise avec un retard égal à un seul état de machine, ce retard étant défini par un circuit de retard 155. Cette information retardée constitue une information de sélection permettant de déterminer celui des registres d'adresse 141 qui devra faire l'objet d'une opération d'écriture après l'opération d'adressage qu'on vient de décrire. Dans l'état de machine suivant, l'information retardée est décodée dans un décodeur 157 et est appliquée par un bus 137 aux registres d'adresse 141. A ce moment, l'adresse incrémentée qui est enregistrée dans le réseau de bascules d'additionneur 150 est écrite dans le registre d'adresse sélectionné, ce qui modifie ainsi l'adresse après l'opération d'adressage. Pendant le traitement d'une instruction de posi- tionnement de registre auxiliaire, l'opération décrite ci-dessus consistant à réécrire dans un registre d'adresse une adresse postmodifiée peut être présélectionnée par l'opération de positionnement de registre. La présélection est accomplie par le décodeur 157 sous l'effet d'une infor- mation qui lui est appliquée à partir du circuit logique 122, par l'intermédiaire d'une ligne 138, du circuitCbCccmfrlds d'unité arithmétique d' adresse 154 et du circuit de irtardl55. Lorsque l'instruction de positionnement de regis- tre présélectionne l'écriture d'un registre d'adresse, l'information destinée à la sélection du registre d'adresse est appliquée à l'ensemble de registres d'adresse 141, à partir du registre XSR et par l'intermédiaire du décodeur 157 et du bus 137. Simultanément, l'information provenant du registre XSR est transmise par le décodeur 157 et le bus 137 pour sélectionner l'information présente sur le bus 160 à la place de l'information présente sur le bus 137. L'unité arithmétique d'adresse 124 émet les adresses au moyen du réseau de bascules de bus d'adresse , pour accéder à des positions dans les mémoires 100 et , elle produit de nouvelles adresses dans l'additionneur 147 et elle positionne les registres d'adresse RX, RY, RD et PC. On va maintenant considérer la figure 4 sur laquelle le diagramme montre que les adresses sont émises vers la mémoire sous la forme d'une série de quatre adresses émises pendant chaque cycle du processeur. L'une des adresses est émise pendant chacun des quatre états de machi- ne, au cours de chaque cycle du processeur. La première adresse émise pendant le premier état de machine est l'adresse qui est enregistrée dans le registre de compteur d'instruction PC. Comme il est indiqué sur la figure 4, cette adresse est émise automatiquement pendant le premier état de machine de chaque cycle du processeur. La seconde adresse émise pendant le second état de machine est l'adresse qui est enregistrée dans le registre RD ou dans le registre RX. La troisième adresse qui est émise pendant le troisième état de machine est l'adresse qui est enregis- trée dans le registre RX ou dans le registre de compteur d'instruction PC. La quatrième adresse qui est émise pendant le quatrième état de machine est l'adresse qui est enregis-- trée dans le registre RY. Chaque adresse émise par l'unité arithmétique d'adresse est enregistrée dans le réseau de bascules de bus d'adresse 145 pendant les états de machine mentionnés du cycle du processeur. Pendant ces états de machine également, il les adresses sont incrémentées dans l'additionneur d'unité arithmétique d'adresse 147, avec une valeur d'incrément qui est lue dans l'un des registres d'incrëment RI, RJ et RK, ou bien, dans le cas de l'adresse provenant du registre PC, l'adresse est incrémentée de +1. Ces opérations d'augmenta- tion sont accomplies pendant l'état de machine au cours duquel l'adresse est enregistrée dans le réseau de bascules. L'identification des registres d'adresse et d'incrément sélectionnés s'effectue en appliquant les zones de commande appropriées au registre d'instruction IR-S,T, avant l'opération d'adressage, afin que le code approprié soit appliqué aux circuits d'accès pour les registres d'adresse comme les registres d'incrément pendant l'état de machine au cours duquel l'adresse doit être émise. L'adresse comme la valeur de l'incrément sont lues et sont addition- nées par l'additionneur 147. L'adresse incrémentée résultan- te est enregistrée dans le réseau de bascules d'additionneur , tandis que l'adresse est émise à partir du réseau de bascules de bus d'adresse 145. Le code destiné à identifier le registre d'adresse qui a été sélectionné est transféré par le circuit de retard vers le circuit de décodage de registre 157. Le retard et le décodage sont conçus de façon que l'adresse incrémen- tée qui est enregistrée dans le réseau de bascules d'addi- tionneur 150 puisse être écrite dans le registre d'adresse à partir duquel l'adresse émise a été prise en charge. Ainsi, l'adresse émise est post-modifiée ou post-incrémentée pendant le cycle du processeur au cours duquel elle est émise vers les mémoires 101 et 105. On va maintenant considérer la figure 2 qui montre que l'unité arithmétique 110 est organisée pour effectuer des opérations en mode pipeline. Les mots de coefficient x et les mots de données variables y sont des opérandes prove- nant des mémoires par le bus commun de commande et de données 101 et qui sont reçus dans le registre de mot de coefficient 102 et le registre de mot de données variables 106. Les mots de sortie arrondis w sont également des opérandes pour cer- taines opérations et ils sont enregistrés dans le registre 118. Un nouvel opérande est reçu dans chacun de ces regis- tres au cours de chaque cycle de processeur d'une instruc- tion normale. L'unité arithmétique 110 comprend trois sous- unités qui peuvent être commandées indépendamment au moyen de zones de commande différentes 1, m et n. Pendant le cycle de prise en charge d'une instruction, les zones 1, m et n sont enregistrées dans un registre d'instruction IR-L,M,N. Pendant le cycle de processeur suivant, ces zones sont déco- dées dans un circuit décodeur 113 et le résultat est enre- gistré dans un registre REG F, 188. Pendant le cycle de pro- cesseur suivant cette information est transférée vers un d'unité arithmetiaue circuit de commande 1,/ I14, pour appliquer des signaux de commande à diverses sous-unités de l'unité arithmétique. Ce dernier cycle de processeur est le cycle d'exécution de l'instruction. Les signaux de commande fournissent une information concernant les choix qui doivent être faits entre les options de traitement disponibles dans chacune des sous-unités. La sous-unité de multiplicateur 112 engendre de façon caractéristique un produit de deux opérandes au cours de chaque cycle de processeur. Dans une multiplica- tion caractéristique, l'un des opérandes est le mot de coefficient x et le second opérande est soit le mot de données variables y, soit le mot de sortie arrondi w. Le mot de coefficient x est un mot à 16 bits. Ces 16 bits sont introduits dans le registre 102 à partir des lignes de bit de poids fort du bus commun de commande et de données. Un circuit de sélection 162 explore les 16 bits du mot de coefficient, depuis le bit de poids faible jusqu'au bit de poids fort, en procédant quatre bits à la fois, pen- dant chacun des quatre états de machine au cours de chaque. cycle de processeur. Un autre circuit de sélection 133 sélectionne simultanément soit un mot de données variables à 20 bits, y, soit un mot de sortie arrondi à 20 bits, w. On effectue une multiplication basée sur l'algo- rithme de Booth, bien connu. Ainsi, un circuit logique de Booth 165 réagit aux fragments à 4 bits de façon à produire des signaux de commande pour la génération de produits par- tiels. L'information de sortie du circuit logique de Booth 165 est enregistrée dans un registre 166 au cours de chaque état de machine. Cette information de sortie est appliquée à un circuit 168 qui fournit les produits partiels par sélection de données. Ces produits partiels sont accumulés par addition aux sommes et aux reports antérieurs. Un additionneur 170 fait la somme des produits partiels et de l'information antérieure de somme et de report, et il enregistre dans un registre de produit P, 191, un opérande intermédiaire résultant à 36 bits ou mot de produit p. Des registres asso- ciés S, 190, et C, 189, enregistrent respectivement l'infor- mation de somme et de report qui est produite au cours de chaque cycle de processeur. Du fait que l'unité arithmétique est conçue en vue d'un fonctionnement en mode pipeline, le registre de produit P, 191, reçoit un nouvel opérande intermédiaire, ou mot de produit, p au cours de chaque cycle de processeur des instructions normales. Ce mot de produit p est appliqué à titre d'opérande intermédiaire à l'entrée d'une sous-unité d'accumulateur 115, par l'intermédiaire d'un bus 172. Dans la sous-unité d'accumulateur, le mot de pro- duit p est additionné à un mot de sortie résultant à 40 bits, a, qui peut être décalé par un circuit 174 avant d'être appliqué à une entrée d'un circuit additionneur 175. Le circuit additionneur 175 produit une information de somme et de report qui est enregistrée dans un registre 177. L'information de somme et de report est enregistrée dans le registre 177 au cours de chaque cycle de processeur. Les reports sont traités par un circuit logique d'anticipation de report dans un additionneur 178. L'information de sortie de l'additionneur 178 est appliquée à une entrée d'un cir- cuit logique 180, en compagnie du mot de sortie résultant a, pour produire la valeur immédiatement suivante du mot de sortie résultant à 40 bits, a, qui doit être enregistré dans le registre a. Ce mot de sortie résultant est produit et enregistré dans le registre A, 192, au cours de chaque cycle de processeur d'une instruction normale. Une partie du mot de sortie résultant a est appli- quée à une entrée de la sous-unité de circuit d'arrondi et de dépassement de capacité, 116, par tranches de 10 bits. Ces tranches sont transmises sous l'effet d'impulsions d'horloge par un circuit d'arrondi 182 et un circuit logi- que de dépassement de capacité 184, à destination du regis- tre de sortie d'arrondi à 20 bits, W, au cours de trois états de machine consécutifs de chaque cycle de processeur. Dans le quatrième état de machine, la valeur contenue dans le registre W peut être corrigée pour tenir compte d'un dépassement de capacité, si la valeur présente dans le registre A est trop élevée pour être représentée dans le registre à 20 bits W, 118. Le mot de sortie arrondi peut ensuite être transféré par le bus commun de commande et de données 101 vers une destination, telle qu'une position de la mémoire vive 105 à laquelle ce mot est enregistré. * Chacune des trois sous-unités (multiplicateur, accumulateur et circuit d'arrondi) de l'unité arithmétique accomplit ses opérations fondamentales au cours de l'un des cycles de processeur. Les informations de sortie de ces sous-unités sont enregistrées dans des registres à chaque cycle de processeur, de façon que la sous-unité suivante de la série dispose d'une information d'entrée stable pour commencer le cycle de processeur immédiatement suivant. La commande de l'unité arithmétique 110 et de l'unité arithmétique d'adresse 124 est effectuée au moyen d'un train d'instructions à structure pipeline qui provient de la mémoire 100 et est transmis par le bus commun de commande et de données 101. Comme il a été indiqué précé- demment en relation avec la figure 4, une seule instruction est lue dans la mémoire au cours de chaque cycle d'opéra- tion du processeur. Une telle instruction comprend plusieurs zones d'instruction, ou messages de commande, 1, m, n, s et t. Les zones 1, m et n sont transférées par le bus commun 101 vers le registre IR-L,M,N, pour commander les sous- unités de l'unité arithmétique 110. Les zones s et t sont transférées par le bus commun 101 vers le registre IR-S,T, pour commander la sélection et l'augmentation par incré- ments des adresses qui sont enregistrées dans les registres RX, RY, RD et PC. La description qui suit d'un exemple particulier d'opération permettra de mieux comprendre la configuration destinée à la commande du traitement en mode pipeline, et le fonctionnement correspondant. Opération normale Une instruction normale complète en langage assembleur comprend l'ensemble de l'information nécessaire pour accomplir une opération arithmétique désirée. Les instructions en langage assembleur pour le processeur de signal numérique sont conçues de façon à représenter la commande permettant d'accéder à la mémoire et la commande du fonctionnement de la sous-unité arithmétique et de la sous-unité arithmétique d'adresse. La sous-unité arithmé- tique effectue continuellement des opérations de multipli- cation et d'addition. Les opérations normales de l'unité arithmétique sont caractérisées par les expressions géné- rales suivantes: x.f(y) + fa(a)- a {i wJ x.f(w) + f a(a). a {._ w),dans lesquelles x est un mot de coefficient d'une longueur de 16 bits qui est habituellement prélevé dans la mémoire morte. Le mot de coefficient x pourrait également être prélevé dans la mémoire vive ou dans un circuit d'entrée/sortie 200 et il a habituellement une valeur qui s'applique à toutes les opérations arithmétiques. y est un mot de données d'une longueur de 20 bits qui est normalement prélevé dans la mémoire vive. Ce mot de données pourrait également être prélevé dans le circuit d'entrée/sortie 200. a représente le contenu d'une longueur de 40 bits d'un registre d'accumulateur A, 192. Dans le registre d'accu- mulateur A, 192, on utilise les 36 bits de poids fort pour accumuler le produit d'une multiplication de 16 bits par 20 bits. Les 4 bits de poids fort assurent une protec- tion contre le dépassement de capacité pour l'opération' d'accumulation. w est un mot de sortie à 20 bits de l'accumulateur qui est arrondi ou tronqué. Le bit de poids faible du mot de sor- tie arrondi W correspond au quatorzième bit à partir du bit de poids faible de l'information a de l'accumulateur. Cette correspondance des bits est en accord avec l'hypo- thèse dans laquelle le mot de données y et le mot de données arrondi w sont des entiers et selon laquelle le mot de coefficient x est habituellement limité à la plage -2$ x.$ 2. f décrit une fonction du mot de données y ou du mot de sor- tie arrondi w. Cette fonction peut être la valeur réelle, le signe ou la valeur absolue de l'une ou l'autre des variables y ou w. fa décrit généralement une fonction du contenu a de l'accu- mulateur telle que a, -a, 0, 2a, etc. Les variables x, y, w et p sont respectivement conteniu dans les registres X, 102; Y, 106; W, 118; et P, 191 de l'unité arithmétique. Les expressions générales mentionnées ci-dessus impliquent que trois opérations doivent être accomplies par le processeur. (1) L'un des produits p - x.f(y) ou p = x.f(w) est formé et est enregistré dans le registre de produit P qui se trouve à la sortie d'un multiplicateur. (2) Une accumulation d'un mot résultant a = p + fa(a) est accomplie dans l'accumulateur. (3) Ensuite, si nécessaire, le mot résultant a de l'accumulateur est arrondi et le mot de sortie arrondi w est écrit dans le registre de sortie de mot arrondi W. Chacune de ces trois opérations est effectuée entièrement pendant un cycle de processeur du processeur de signal numérique. De façon caractéristique, le mot de coefficient x a une certaine valeur dans les opérations et une multiplication forme le produit p. Egalement de façon caractéristique, les opérations de l'ensemble des trois types sont effectuées simultanément par différentes sous- unités de l'unité arithmétique, pendant chaque cycle. Pour certaines instructions, l'une ou plusieurs des trois opéra- tions peuvent ne pas avoir lieu. L'opération qui est effec- tuée par une sous-unité au cours d'un cycle de processeur est une évaluation partielle d'une expression générale différente de celles qui sont évaluées simultanément dans les autres sous-unités. Les instructions en langage assembleur sont con- verties en instructions en langage machine qui sont enre- gistrées dans la mémoire pour commander effectivement le processeur de signal numérique. Du fait que les opérations dépendent les unes des autres et du fait que toutes les opérations se déroulent simultanément dans le processeur, il est important de connaître à tout moment ce qui est enregistré dans les divers registres et quelle est l'opé- ration qui doit être accomplie. Pour éviter toute confusion concernant les valeurs du mot de produit p et les valeurs du contenu a de l'accumulateur qui interviennent dans n'importe quelle opération du processeur, il est recommandé de suivre l'ordre d'opérations suivant lorsqu'on écrit en langage assembleur des expressions qui représentent ces expressions. p -_ x.f(y) w al a c P + fa(a) ou p *-x.f(w) Les valeurs appropriées du mot de produit p et du contenu a de l'accumulateur apparaissent ainsi plus clairement, au fur et à mesure que le lecteur avance de gauche à droite. Les valeurs appropriées sont les résultats de l'opération immédiatement précédente qui a déterminé ces valeurs. Ainsi, la valeur du contenu a de l'accumulateur qui doit être arrondie pour donner le mot de sortie arrondi w ou qui doit être utilisée dans n'importe quelle fonction f (a), est le contenu a de l'accumulateur à la fin de la dernière accumulation précédente. De façon similaire, la valeur d'un mot de produit p à utiliser dans une accumula- tion courante est une valeur qui est déterminée dans la dernière opération de multiplication précédente. Du fait des raisons indiquées dans l'examen qui précède de l'ordre des opérations du processeur, il est important que l'information qui est contenue dans l'instruc- tion en langage assembleur soit présentée au processeur dans l'ordre approprié. Le processeur peut accepter une informa- tion présentée dans l'ordre suivant: (1) On effectue un choix de destination. Le mot à écrire à la destination est choisi entre le mot de sortie arrondi w et le mot de données y. Le mot choisi peut être écrit dans la mémoire vive ou dans le circuit d'entrée/sortie. La destination particulière du mot choisi est donnée. (2) Comme l'exige l'instruction, il y a un choix indiquant si le mot résultant a doit être transféré ou non dans le mot de sortie arrondi w. (3) Une opération d'accumulation est sélectionnée à partir d'un groupe d'opérations correspondant à une expression générale: a = p + f (a). a (4) Une opération de multiplication produisant le produit p = x.f(y) est spécifiée en indiquant la source XSRC du mot de coefficient x, la nature de la fonction f et la sélection du mot de données y, ainsi que la source YSRC du mot de données y. Selon une variante, une opération de- multiplication produisant le produit p - x.f(w) est spéci- fiée en indiquant la source XSRC du mot de coefficient x, la nature de la fonction f et la sélection du mot de sortie arrondi w, au lieu du mot de données y. Les exceptions suivantes s'appliquent à la règle de progression de gauche à droite mentionnée ci-dessus. Lorsque le mot de sortie arrondi w est sélectionné pour la multiplication, la valeur du mot de sortie arrondi w est la valeur qui est déterminée par la dernière opération arrondie du mot résultant a, accomplie dans une instruction précéden- te. Si le mot de données y doit être écrit et si une source pour le mot de données y est spécifiée, la première étape de l'exécution de l'instruction transfère les données de la source spécifiée vers le registre de données Y. Toute opéra- tion d'écriture de cette nouvelle valeur pour le mot de données y peut ensuite avoir lieu. Le tableau I ci-après résume les instructions nor- males en langage assembleur qu'un programmeur utiliserait pour préparer un programme en langage assembleur. On utilise pour le langage assembleur la syntaxe d'un langage appelé C qui est décrit dans un ouvrage intitulé The C Programming Language par B. W. Kernighan et col., Prentice-Hall, Inc., 1978. Chaque instruction complète est formée en choisissant quatre éléments d'instruction, à raison d'un élément d'ins- truction issu de chaque colonne du tableau I, en partant de la colonne de gauche et en progressant vers la droite. Dans les deux colonnes les plus à gauche, le mot NOTHING figure en tant que choix valide. Lorsqu'on sélectionne le mot NOTHING en tant que partie d'une instruction complète, l'espace correspondant de l'instruction est laissé en blanc. Chaque instruction complète en langage assembleur est terminée par un point virgule. TABLEAU I - INSTRUCTIONS NORMALES EN LANGAGE ASSEMBLEUR NOTHING NOTHING a=p p=XSRC*YSRC DEST=y w=a a=p+a p=XSRC*w DEST=YSRC a=p-a p=XSRC*c DEST=w a=p+2*a p=XSRC*abs(YSRC) a=p+8*a p=XSRC*abs(w) a=p+a/2 p=XSRC*c*sgn(YSRC) a=p+a/8 p=XSRC*c*sgn(w) a=p&a Dans le tableau I, le symbole DEST désigne un élément d'instruction de destination et il doit être rem- placé dans l'instruction en langage assembleur par l'un des éléments d'instruction suivants: DEST *rd++i *rd++j *rd++k obuf parmi lesquels *rd+ --i, par exemple, signifie que rd, qui est l'adresse de la position de la mémoire vive qui est désignée par le contenu du registre RD, est postincrémenté par le contenu i du registre RI. Les interprétations de différents éléments d'instruction de destination indiqués ci-dessus seront expliquées ultérieurement de façon plus détaillée. Egalement dans le tableau I, le symbole XSRC dési- gne un élément d'instruction relatif à la source du mot de données x, et le symbole YSRC désigne un élément d'instruc- tion relatif à la source du mot de données y. Chacun de ces deux symboles du tableau I doit être remplacé, dans n'impor- te quelle instruction en langage assembleur, par l'un des éléments d'instruction qui figurent dans les deux colonnes suivantes: XSRC YSRC x(x ancien) *ry++i VALUE (x courant) *ry++j *rx++i *ry++k *rx++j ibufy *rx++k *rx *rx- ibufx *(rom+rx++i) *(rom+rx++j) *(rom+rx++k) &LABEL Dans la colonne ci-dessus portant l'entête XSRC, le symbole VALUE représente un nombre qui apparaît sous la forme d'un argument (mathématique) d'une instruction, c'est-à-dire le mot à 16 bits qui suit immédiatement le code d'opération dans la mémoire morte. L'adressage d'un tel argument s'effectue au moyen de l'adresse qui est enre- gistrée dans le registre de compteur d'instruction PC. Dans d'autres prélèvements en.mémoire, le mot de coefficient x est adressé par le contenu rx du registre RX. La notation *(rom+rx...) est utilisée pour indiquer que le contenu rx du registre RX désigne une position de la mémoire morte et non une position de la mémoire vive. Le symbole &LABEL indique que la valeur qui est lue en mémoire pour la source x est une adresse associée à un label dans le programme. D'autres expressions présentées dans les deux colonnes précédentes pour les sources du mot de coefficient x et du mot de données y sont envisagées par la suite de façon plus détaillée. Il est recommandé de prendre certaines précautions en ce qui concerne la formation d'instructions complètes en langage assembleur à partir de l'information présentée dans le tableau I. Si on désire avoir l'instruction DEST = YSRC dans une instruction qui comprend l'expression YSRC prove- nant de la colonne d'extrême droite, on doit utiliser l'expression DEST = y à la place de l'expression DEST = YSRC. Si le mot de sortie arrondi w doit être utilisé dans la colonne d'extrême droite, on ne peut pas choisir l'expression DEST = YSRC à partir de la colonne d'extrême gauche. En outre, l'expression NOTHING doit être choisie à partir de la colonne d'extrême gauche lorsque l'instruction en langage assembleur est une instruction normale dans laquelle la source du mot de coefficient x se trouve dans la mémoire vive. Pour la préparation d'un programme, un program- meur écrit tout d'abord une série d'expressions ou d'opéra- tions mathématiques générales qu'il désire voir accomplir. Ceci peut prendre par exemple la forme x.f(w) + fa (a) e a | -._ w? Le programmeur traduit une telle expression mathématique générale en un élément d'instruction en langage assembleur qui prend la forme suivante: s n m "lt *rd++J=w w=a a=p+a p=*rx++i**ry++] dans laquelle: 1 désigne une zone d'instruction destinée à commander la formation d'un produit. m désigne la zone d'instruction destinée à l'accomplisse- ment d'une accumulation. n désigne une zone d'instruction destinée à commander une opération de transfert du registre A vers le registre W, avec l'arrondi nécessaire. s représente une zone d'instruction qui identifie une des- k; tination d'écriture. Dans cet exemple, la destination est une position de mémoire qui est spécifiée Dar l'adresse enregistrée dans le registre RD. Cette adresse est post- incrémentée et le résultat est enregistré dans le registre RD. t désigne une zone d'instruction qui commande de prélever l'information présente à une adresse qui est enregistrée dans un registre d'unité arithmétique d'adresse, de post- incrémenter cette adresse et de la réenregistrer dans le même registre. L'étape suivante qu'accomplit le programmeur con- siste à décaler (étaler ou répartir) dans le temps l'élé- ment d'instruction en langage assembleur, de la manière sui- vante L'élément d'instruction décalé résultant, en lan- gage assembleur, qui apparaît en diagonale sur la ligne des temps de la colonne d'extrême gauche, est écrit en compa- gnie d'autres éléments d'instruction décalés en langage assembleur qui représentent d'autres opérations mathémati- ques générales. Lorsque ces éléments d'instruction décalés en langage assembleur sont écrits ensemble, les parties résultantes des différents éléments d'instruction qui-appa- raissent dans la même ligne, ou pendant le même intervalle tel que l'intervalle i, forment une instruction en langage assembleur. Dans l'instruction en langage assembleur, les différentes parties d'information qui se trouvent dans le même intervalle sont des zones séparées de l'instruction en langage assembleur considérée. Chacune de ces zones comman- de une sous-unité séparée du processeur de façon qu'elle accomplisse une étape dans le traitement d'évaluation, tel Temps s n m lt i p=*rx++i**ry++ k; i+1 a=p+a i+2 w=a i+3 *rd++j=w qu'il a été décrit par une partie de l'une des expressions mathématiques générales. Un programme assembleur, qui est exécuté sur un ordinateur universel, traite chaque instruction en langage assembleur en déplaçant les zones de source deux cycles de processeur plus tôt dans le programme que le reste des zones dans la même instruction en langage assembleur. Ce déplacement des zones de source est appliqué à chaque ins- truction en langage assembleur figurant dans le programme. La ligne des temps résultante pour l'élément d'instruction d'assembleur précédent, décalé par le programmeur et l'assembleur, apparait sous la forme suivante: On va maintenant considérer les figures 5 et 6 qui représentent un diagramme de ligne de temps indiquant comment les données sont traitées dans le processeur de signal numé- rique. Le diagramme présente de façon générale la circula- tion des données dans les diverses sous-unités du processeur au cours de l'évaluation d'une expression mathématique géné- rale, ainsi que de parties d'autres expressions mathémati- ques. Avant d'essayer de décrire les opérations repré- sentées, on commencera par définir les symboles qui sont utilisés dans tout le diagramme de ligne des temps des figu- res 5 et 6. Ii est une instruction en langage machine qui est pré- levée dans la mémoire morte au cours d'un cycle ou Temps s t n m 1 i-2 x=*rx++i y=*ry++k i-l i p=x*y 1+1' a=p+a i+2. w=a a i+3 *rd++j=w intervalle de processeur i et qui est décodéedans le processeur au cours d'un cycle ou intervalle de pro- cesseur i+l. En général, l'instruction Ii affecte le fonctionnement d'unités du processeur pendant un cycle ou intervalle de processeur i+2. Comme il a été mentionné précédemment, chaque instruction contient les zones, ou messages de commande, 1, m, n, s et t. Ii(t) représente la zone t dans l'instruction en langage machine Ii, destinée à commander la prise en charge des opérandes xi+3 et Yi+3' Ces prises en charge s'effectuent pendant l'intervalle i+3. Ii(l) représente la zone 1 dans l'instruction en langage machine Ii, destinée à commander le calcul d'un pro- duit, ou opérande intermédiaire, Pi+2 pendant l'in- tervalle i+2. Le produit Pi+2 est une fonction des opérandes xi+1 et Yi+ Ii(m) représente la zone m dans l'instruction en langage machine Ii, destinée à commander l'accumulation de l'information de sortie, ou du mot résultant désiré, ai+2, pendant l'intervalle i+2. Le mot résultant ai+2 est une fonction du dernier mot résultant anté- rieur ai+1 et d'un produit pi+1 calculé précédem- ment. Ii(n) est une zone n dans l'instruction en langage machine destinée à commander le transfert d'un mot de sortie arrondi wi+2 pendant l'intervalle i+2. Le mot de sortie arrondi wi+2 est une fonction du dernier mot de sortie arrondi précédent wi+1 et du mot'résultant ai+1 de l'accumulateur. Ii(s) est une zone dans l'instruction en langage machine destinée à commander l'enregistrement du mot de sor- tie arrondi wi+1 et la modification des adresses ui+2 enregistrées dans les registres, pendant l'in- tervalle i+2. Les adresses modifiées sont une fonc- tion de l'adresse antérieure u.i+1 et de la zone Ii(s). L'état de mémoire mis à jour Mi+2 est une fonction de la zone Ii(s), de l'état de mémoire antérieur Mi+, des adresses ui+1 enregistrées dans les registres et du mot de sortie arrondi wi+1. Ii(s,t) est une combinaison des zones s et t dans l'ins- truction en langage machine. Ces zones commandent la modification des adresses ui+2 enregistrées dans les registres, pendant l'intervalle i+2. Les adresses ui+2 modifiées sont également une fonction de l'adresse ui+l. Xi et yi sont des opérandes prélevés en mémoire pendant l'in- tervalle i, sous la commande de la zone t de l'ins- truction Ii-3' elle-même prélevée en mémoire pen- dant l'intervalle i-3. L'instruction Ii 3 est déco- dée pendant l'intervalle i-2 et elle commande le traitement pendant l'intervalle i-1, pendant lequel les adresses pour les opérandes xi et yi sont pro- duites. Comme on l'a indiqué précédemment, l'accès à ces opérandes en mémoire a lieu pendant l'inter- valle i. Ils sont traités par le multiplicateur pendant l'intervalle i+1 sous la commande de la zone 1 de l'instruction Ii_1 qui est prise en charge pendant l'intervalle ii 1 Ceci donne l'opérande intermédiaire ou produit p i+1 pi+1 représente le produit formé par le multiplicateur pendant l'intervalle i+1. Ce produit est un opérande intermédiaire qui est utilisé comme information d'entrée de l'accumulateur pour son opération ayant lieu pendant l'intervalle i+2. Le produit p i+1 est formé dans le registre P sous la commande de la zone Ii1 (1). Le multiplicateur et le multiplicande sont les opérandes xi et yi. ai+2 représente le contenu de l'accumulateur pendant l'intervalle i+2. Ceci est le mot résultant désiré ai+2 pour l'expression qui est évaluée. Le mot ai+2 est appliqué à l'entrée de la sous-unité de circuit d'arrondi et de sortie pendant l'intervalle i+3. L'opération d'arrondi se déroule sous la commande de la zone I i+1(n). wi+3 représente le mot de sortie arrondi w qui est dispo- nible dans le registre W et qui peut être enregis- tré en mémoire vive pendant l'intervalle i+4 sous la commande de la zone Ii+2(s). Le diagramme des figures 5 et 6 montre toutes les activités de traitement dés diverses sous-unités du proces- seur de signal numérique, ainsi que le temps exprimé en cycles de processeur. Chaque colonne du diagramme représente un cycle, ou intervalle de temps différent du processeur. L'information contenue dans chaque colonne est étroitement liée à une certaine instruction en langage machine. Chaque ligne représente les activités d'une sous-unité différente du processeur qui accomplit les fonctions qui lui sont assi- gnées pendant le fonctionnement du processeur de signal numérique. Du fait que chaque ligne du diagramme représente une activité différente, on va définir ces activités. La première ligne sous les enrtetes correspondant aux cycles de processeur indique les activités de mémoire, c'est-à-dire les prélèvements et les enregistrements en mémoire. La seconde ligne présente les temps auxquels les instructions sont décodées dans le processeur de signal numérique. La troisième ligne montre le calcul du produit p par la sous- unité de multiplicateur du processeur. La quatrième ligne présente l'accumulation du mot résultant a par la sous- unité d'accumulateur du processeur. La cinquième ligne présente les activités de la sous-unité d'arrondi et de dépassement de capacité du processeur, qui produit le mot de sortie arrondi w. La sixième ligne présente les activi- tés qui sont associées à la modification des adresses uti- lisées pour la prise en charge des données pour les traite- ments arithmétiques. On peut suivre le traitement de l'expression arithmétique générale mentionnée précédemment dans les diverses unités et sous-unités du processeur de signal numé- rique, en se référant aux figures 5 et 6. Une première étape dans le traitement d'une expression arithmétique générale est constituée par la prise en charge des opérandes pour une multiplication. Comme on l'a indiqué précédemment, l'information concernant cette opéra- tion de prise en charge est placée par le programme assem- bleur dans un intervalle antérieur à celui de l'information qui est associée à la commande de l'opération de multiplica- tion. Du fait de cette fonction du programme assembleur, chaque instruction en langage machine comprend une zone de commande pour une opération de prise en charge qui prend en charge une information située en mémoire en vue d'un traite- ment qui sera commandé par une instruction suivante en lan- gage machine. A titre d'exemple de traitement d'une instruction, on considérera le traitement d'une expression générale pour laquelle l'information concernant les opérations de prise en charge de ses opérandes se trouve dans une instruction qui est prise en charge pendant l'intervalle i-3 de la figure 5. Cette instruction Ii 3 est encadrée pour mieux la faire ressortir et est affectée d'un indice qui indique qu'il s'agit de l'instruction prise en charge pendant l'interval- le i-3. Chaque instruction représentée dans le diagramme fonctionnel du processeur est désignée de façon similaire conformément à l'intervalle au cours duquel l'instruction est prise en charge en mémoire. De plus, chaque instruction représentée sur les figures 5 et 6 comprend plusieurs zones d'information de commande. Toutes ces zones 1, m, n, s et t sont représentées entre parenthèses en association avec les instructions de la première ligne qui représentent les opé- rations de prise en charge et d'enregistrement. Une ou plusieurs zones séparées d'une instruction sont représentées dans d'autres lignes du diagramme, par exemple Ii(l) dans la ligne de calcul des produits et Ii(s, t) dans la ligne de modification des adresses. Pendant l'intervalle i-2, l'instruction Ii-3 qui vient d'être prise en charge est décodée par le processeur, comme le montre l'encadré dans la seconde ligne représen- tant le décodage des instructions. Une opération de prise en charge pour les opéran- des x et y, identifiée par l'instruction Ii 3 commence pen- * dant l'intervalle i-1. L'opération de prise en charge commence en utilisant une adresse spécifiée dans la zone d'instruction I i3(t). Lorsque cette adresse est utilisée, elle est modifiée et réenregistrée dans l'unité arithméti- que d'adresse, en fonction de la zone d'instruction i-3 (s,t) et de l'état antérieur u i2 des registres dans l'unité arithmétique d'adresse. Cette modification d'adresses est représentée dans l'encadré sous l'intervalle i-1. La prise en charge de ces opérandes x et y se termine pendant l'intervalle i lorsque les opérandes particuliers X. et yi, identifiés par l'instruction Ii 3 sont lus en mémoire et sont transférés par le bus commun de commande et de données vers les registres respectifs REG X, 102 et REG Y, 106. Ces opérations de prise en charge sont repré- sentées dans l'encadré qui figure sous l'intervalle i. L'opérande x. est lu de façon caractéristique dans la mémoire morte tandis que l'opérande yi est lu de façon ca- ractéristique dans la mémoire vive. Les pointeurs d'adresse, ou les adresses enregis- trées dans les registres RX et RY, qui ont été mis à jour dans l'intervalle antérieur i-1 sont utilisés pour accéder aux opérandes en mémoire pendant l'intervalle i. La première opération arithmétique à accomplir sur les opérandes xi et yi a lieu pendant l'intervalle i+l. A ce moment, la sous-unité de multiplicateur réagit à la zone d'instruction Ii (1) en calculant un opérande inter- médiaire, ou produit pi+., comme il est indiqué dans l'en- cadré qui figure sous l'intervalle i+i. Ce produit pi+1 est représenté sous la forme d'une fonction des opérandes xi et yi et de la zone d'instruction Ii 1(l). L'instruction Ii_1 qui comprend la zone Ii_1(l), est prise en charge en mémoire pendant l'intervalle i-1, elle est décodée pendant l'intervalle i et elle commande des unités du processeur pendant l'intervalle i+1. L'étape suivante dans l'évaluation de l'expression générale est accomplie dans l'accumulateur pendant l'inter- valle i+2. Ceci est représenté sur la figure 6 dans laquelle la quatrième ligne représente l'accumulation du mot résul- tant a, dans un encadré qui figure dans la colonne corres- pondant à l'intervalle i+2. Un mot résultant ai+2 est repré- senté sous la forme d'une fonction du mot résultant anté- rieur ai+1 enregistré dans l'accumulateur, de l'opérande intermédiaire ou produit pi+, qu'on vient de décrire, et de la zone d'instruction li(m). Si le programmeur l'a spécifié, et après que le résultat a été accumulé pendant l'intervalle i+2, ce résul- tat est arrondi et enregistré dans le registre de mot de sortie arrondi W. Cette opération d'arrondi est représentée sous l'intervalle i+3, dans un encadré qui figure dans la cinquième ligne représentant l'arrondi du mot de sortie. L'opération spécifique d'arrondi est exécutée pendant l'in- tervalle i+3, dans lequel le mot de sortie arrondi wi+3 est représenté sous la forme d'une fonction du mot de sortie arrondi immédiatement précédent wi+2, du registre de mot de sortie arrondi W, 118, du mot résultant décrit précédemment ai+2, de l'accumulateur, et de la zone d'instruction Ii+ (n). Une étape finale dans le traitement de l'expres- sion générale consiste à écrire en mémoire le mot de sortie arrondi wi+3 pendant l'intervalle i+4. Ceci est représenté dans l'encadré qui figure dans la première ligne du tableau, sous l'intervalle i+4. L'écriture d'un nouvel état de mémoire Mi+4 est une fonction de l'état de mémoire Mi+3 pour l'intervalle i+3, de l'état immédiatement précédent ui+3 du registre d'adresse, du dernier mot de sortie arrondi wi+3 qu'on vient de considérer, et de la zone d'instruction Ii+2 (s) qui a été prise en charge pendant l'intervalle i+2 et décodée pendant l'intervalle i+3. Le mot de sortie arrondi wi+3 contenu dans le registre de mot de sortie arrondi à la fin de l'intervalle i+3 est transféré par le bus commun de commande et de données, soit vers la mémoire vive soit vers un registre tampon dans les circuits d'entrée/sortie, pendant l'inter- valle i+4. Simultanément à l'opération d'écriture en mémoire pendant l'intervalle i+4, les registres de l'unité arithmé- tique d'adresse sont mis à jour sur la base de l'information qui est contenue dans l'instruction prise en charge pendant l'intervalle i+2. L'information utilisée se trouve dans les zones Ii+2 (s,t) de l'instruction I +2 qui est prise en char- ge pendant l'intervalle i+2 et est décodée pendant l'inter- valle i+3. On notera que pendant l'intervalle i+2, l'instruc- tion Ii qui a été prise en charge pendant l'intervalle i commande la sousunité de multiplicateur, la sous-unité d'accumulateur et la sous-unité d'arrondi et de dépassement de capacité de l'unité arithmétique. Ceci résulte du fait que l'instruction Ii est prise en charge-dans l'intervalle i, décodée dans l'intervalle i+1 et utilisée pour la com- mande dans l'intervalle i+2. Il ne reste aucune partie des- tinée à la commande des sous-unités de l'unité arithmétique pendant les intervalles suivants, comme dans les configura- tions de commande du type pipeline de l'art antérieur. La majeure partie de la colonne représentant l'intervalle i+2 est mise en évidence par des traits épais, de façon que le lecteur puisse trouver facilement plusieurs zones de l'instruction I. pour commander les sous-unités de l'unité arithmétique pendant l'intervalle i+2. Les opérandes destinés au fonctionnement du multiplicateur ont été pris en charge pendant l'intervalle i+1 qui suit l'intervalle i. Le produit résultant Pi+2 est formé pendant l'intervalle suivant i+2. Un mot résultant ai.2 qui est formé pendant ce même intervalle i+2 est une fonction d'un mot résultant antérieur ai+1 et d'un produit antérieur pi+,* Ce mot résultant ai+2 est un mot résultant évalué pour une expres- sion générale différente de l'expression générale qui est évaluée en formant le produit pi+2. On peut peut-être mieux comprendre ce principe en remarquant que les encadrés for- mant une diagonale depuis le sommet de la colonne "cycle de processeur i" jusqu'à la cinquième ligne de la colonne "cycle de processeur i+3" concernent l'évaluation d'une expression générale particulière. Une diagonale similaire, décalée d'un intervalle vers la droite dans chaque colonne, concerne l'évaluation d'une autre expression générale, différente de la précédente. Dans un programme de traitement de signal, les instructions sont de façon caractéristique exécutées en séquence jusqu'à un point auquel le compteur d'instruction PC est positionné à la valeur d'adresse dans la mémoire de programme qui correspond à l'emplacement de l'instruction de début de la séquence. Le programme fonctionne ainsi de façon continue, en boucle, en exécutant de façon répétitive la même séquence d'instructions. En outre, des mots de données fixes sont enregistrés à des positions de mémoire auxquelles des adresses sont entrelacées avec des emplace- ments d'instructions dans la séquence de programme. De cette manière, comme le montre la figure 4, l'adresse con- tenue dans le registre de compteur d'instruction PC est utilisée pour adresser un mot de données fixes pendant l'état 2 du cycle de processeur i+l. Le compteur d'instruc- tion est alors incrémenté de l'incrément fixe +1, ou est utilisé pour adresser une instruction, Ii+2' dans l'état O du cycle de processeur i+2. Le compteur d'instruction est à nouveau incrémenté de l'incrément fixe +1 et est utilisé pour adresser le mot de données fixes suivant dans l'état 2 du cycle de processeur i+2. Ceci se poursuit et le compteur d'instruction est incrémenté de +1 et est utilisé pour adresser une instruction, Ii+3, dans l'état O du cycle de processeur i+3, et ainsi de suite jusqu'à la fin de la séquence d'instructions. A ce moment, le compteur d'ins- truction est positionné, par une instruction auxiliaire de positionnement de registre, à l'adresse de la première instruction de la séquence. Jusqu'à ce point de la description, on n'a envi- sagé que les opérations normales de routine du processeur de signal numérique. Le processeur de signal numérique à structure pipeline peut accomplir d'autres opérations, comme les opérations conditionnelles. Opération conditionnelle Dans de nombreux cas, l'algorithme qui est réalisé par le test d'une condition et l'exécution d'opérations alternatives qui dépendent du résultat du test peut être- tout aussi bien réalisé par une séquence d'une ou de plu- sieurs instructions qui sont exécutées ou ne sont pas exécu- tées. Si cette séquence est courte, le gain global de temps de traitement peut être élevé en comparaison de l'utilisa- tion de la technique de transfert conditionnel de programme de l'art antérieur, permettant d'obtenir le même résultat. Les inventeurs ont découvert que les opérations condition- nelles apparaissant dans le traitement de signal numérique peuvent fréquemment être exécutées au moyen d'une séquence d'une ou plusieurs instructions qui est exécutée ou non. Le processeur de signal numérique a donc été conçu de façon à traiter efficacement les opérations conditionnelles de cette manière. Le principe utilisé est cependant applicable plus largement aux processeurs numériques, de façon géné- rale. On va considérer par exemple le problème consis- tant à trouver la valeur maximale d'une séquence d'échan- tillons enregistrés en mémoire. On peut comparer la valeur de chaque échantillon de la séquence avec la valeur d'un mot situé dans une autre position, en utilisant la technique classique de transfert conditionnel nécessitant des chemins alternatifs de traitement séquentiel. si (X > Xmax max x; sinon /*ne rien faire*/ l'instruction xmax x; est ainsi sautée ou contournée par un changement conditionnel du contenu du compteur d'instruc- tion. Dans le processeur de signal numérique de l'invention, l'instruction xmax = x est traitée (c'est-à-dire prise en charge et décodée) en séquence indépendamment du test, et le transfert réel des données vers xmax est bloqué si le test donne un résultat négatif. Sous l'effet d'une instruction conditionnelle, le processeur effectue une opération de test de condition qui est une opération auxiliaire non arithmétique. Comme dans les opérations arithmétiques normales décrites précédemment, il existe un ordre correct pour écrire une instruction en langage assembleur pour les opérations conditionnelles. Ce qui suit est présenté dans l'ordre correct. (1) On choisit une destination. Le mot à écrire à la destination est choisi entre le mot de sortie arrondi w et le mot de données y. Le mot choisi peut être écrit dans la mémoire vive ou dans le circuit d'entrée/sortie. On donne la destination particulière du mot choisi. (2) On spécifie la condition à tester et l'opéra- tion du processeur qui doit être exécutée si le test donne un résultat positif. Le tableau suivant résume les instructions con- ditionnelles qui sont formées en choisissant un élément d'instruction dans chacune des deux colonnes. TABLEAU II - INSTRUCTIONS CONDITIONNELLES NOTHING si (CONDITION) doset () DEST = YSRC si (CONDITION) doau () DEST = w si (CONDITION) dowt () de Les significations/DEST et YSRC sont les mêmes que pour le tableau I. Le terme CONDITION doit être rempla- cé par l'une des expressions suivantes CONDITION Description a==o Le contenu a de l'accumulateur est égal à zéro. a > O Le contenu a de l'accumulateur est supé- rieur à zéro. a C O Le contenu a de l'accumulateur est infé- rieur à zéro. Chaque instruction conditionnelle est assemblée sous la forme d'un mot de code d'opération à 16 bits, suivi par un argument à 16 bits. Le format d'une instruction con- ditionnelle est: c I sl t c, s et t désignant les zones de commande, comme dans les instructions arithmétiques normales. Les zones s et t ont la même signification. La zone de commande c fournit une information de commande pour l'opération conditionnelle. Cette information indique l'opération qui doit être effec- tuée, ainsi que la condition à tester. On a le choix entre trois opérations. Une adresse ou un registre d'incrément du processeur est positionné si la condition spécifiée est remplie. L'opération suivante de l'unité arithmétique est accomplie si la condition est remplie. L'opération d'écri- ture suivante est accomplie si la condition est remplie. Pour chaque instruction conditionnelle, les opérations men- tionnées n'ont pas lieu si la condition n'est pas remplie. Les opérations qui sont soumises au test de con- dition sont les opérations spécifiées dans l'instruction qui suit immédiatement l'instruction conditionnelle dans le pipeline. Chaque instruction conditionnelle traitée par le processeur de signal numérique est prise en charge à partir de la mémoire morte 100 et est transférée vers les regis- tres d'instruction par le bus de données. Les zones de commande s et t sont enregistrées dans le registre d'ins- truction IR-S,T, comme il a été décrit précédemment. La zone de commande c est enregistrée dans le registre d'ins- truction IR-C. On se référera maintenant à la figure 8 pour décrire le fonctionnement de la configuration des figures 1 et 2 pour l'accomplissement d'une opération conditionnel- le. La majeure partie de l'opération conditionnelle se déroule d'une façon très semblable à une opération normale de routine. On considérera donc plus particulièrement les parties de l'opération qui diffèrent d'une opération norma- le de routine. Le lecteur désirant avoir une explication complète se référera à la description qui précède. On a représenté sur la figure 8 une instruction conditionnelle Ii(c,s,t) qui est prise en charge pendant le cycle de processeur i et qui est décodée pendant le cycle de processeur i+l. Dans cet exemple, l'instruction condi- tionnelle 3i(c,s,t) est positionnée dans le pipeline de façon à affecter une instruction arithmétique normale i+1 (l,m,n,s,t) qui est prise en charge pendant le cycle de processeur i+l, décodée pendant le cycle de processeur i+2 et exécutée de façon conditionnelle pendant le cycle de Drocesseur i+3. Les zones s et t de l'instruction Ii(c,s,t) com- mandent les prises en charge de données et une opération d'écriture pendant l'intervalle i+2. L'état ui+2 des regis- tres dans l'unité arithmétique d'adresse est mis à jour pendant l'intervalle i+2, en fonction des zones de commande Ii(s,t) et de l'état antérieur ui+1 de ces registres. Une opération d'écriture en mémoire Mi+2 qui se produit pendant le cycle i+2 est similaire à l'opération décrite précé- demment en relation avec l'instruction arithmétique normale. Du fait que l'instruction conditionnelle est une instruc- tion auxiliaire, l'unité arithmétique 110 est inactive pen- dant l'intervalle i+2 qui est le cycle d'exécution habituel pour cette instruction. Ainsi, le registre de multiplica- teur P, le registre d'accumulateur A et le registre de mot de sortie arrondi W conservent leurs données respectives correspondant au cycle immédiatement précédent. L'opérande intermédiaire Pi+2 est égal à pi+, le mot résultant ai+2 est égal à ai+1 et le mot de sortie arrondi wi+2 est égal à w. La zone de commande Ii(c) qui est enregistrée dans le registre d'instruction IR-C pendant l'intervalle i comprend une partie qui identifie la condition qui doit être testée et une seconde partie qui identifie l'opéra- tion qui doit être commandée en fonction du résultat du test de la condition. Pendant l'intervalle i+l, les deux parties de la zone de commande I.(c) sont décodées dans les circuits 211 et 212 et sont enregistrées dans les registres 213 et 214. Pendant l'intervalle i+2, la première partie décodée de la zone de commande Ii(c) qui est enregistrée dans le registre 213 est appliquée à un comparateur 215 qui détermine la condition oui doit être testée. Simultanément, les états de conditions, ou indicateurs, Vi+2 provenant du circuit de commande d'unité arithmétique, 114, sont appli- qués au comparateur 215 par une ligne 225. Les états des conditions de l'unité arithmétique sont ainsi testés. Le comparateur 215 applique un signal de condition remplie ou de condition non remplie sur le conducteur 221 par lequel le signal résultant est appliqué au circuit logique 122 sous la forme d'une commande conditionnelle. Egalement pendant l'intervalle i+2, le circuit logique 122 fonctionnant sous la commande du signal con- ditionnel présent sur le conducteur 221 produit des signaux de commande supplémentaires qui sont répartis vers le cir- cuit DECODAGE F, 113, le circuit de commande d'unité arithmétique d'adresse, 154, la mémoire vive 105 et le circuit d'entrée/sortie 200. Le résultat de l'opération conditionnelle est conservé en sortie du circuit logique 122 de façon à commander les diverses unités du processeur pendant l'intervalle i+3. L'instruction arithmétique normale I i+1 (lmn,s, t), qui doit être affectée par l'instruction conditionnelle I(c,s,t) est prise en charge pendant l'intervalle i+1 et est décodée pendant le cycle i+2. En l'absence de l'ins- truction conditionnelle précédente, cette instruction com- manderait le processeur pendant l'intervalle i+3. Les prises en charge de données pour l'intervalle i+3 s'effectuent de la manière habituelle. Ensuite, pendant l'intervalle i+3, les opéra- tions exécutées dépendent des opérandes habituels ainsi que de l'état des lignes de commande provenant du circuit logi- que 122, qui sont conditionnés par le résultat de la compa- raison qui est effectuée pendant l'intervalle i+2. Lorsque l'instruction conditionnelle Ii(cs,t) est une instruction d'exécution conditionnelle pour l'unité arithmétique, seules les opérations de l'unité arithmétique sont exécutées conditionnellement pendant l'intervalle i+3. L'écriture en mémoire n'est pas bloquée à ce moment. Si la condition est remplie pour l'instruction d'exécution condi- tionnelle de l'unité arithmétique, un nouveau produit pi.3, un nouveau mot résultant a +3 et un nouveau mot de sortie arrondi wi+3 sont produits. Si la condition n'est pas remplie, la commande de l'unité arithmétique est bloquée et aucun nouveau produit, mot résultant ou mot de sortie arrondi n'est formé. Les registres P, A et W conservent les valeurs correspondant à l'intervalle immédiatement précé- dent. Toutes les autres opérations normales du processeur sont exécutées pendant l'intervalle i+3. Si l'instruction conditionnelle Ii(c,s,t) est une instruction conditionnelle d'écriture, seules les opé- rations d'écriture en mémoire et d'écriture en sortie sont affectées pendant l'intervalle i+3. Les opérations de l'unité arithmétique ne sont pas bloquées. Si la condition relative à l'instruction conditionnelle d'écriture a été remplie, l'opération d'écriture en mémoire Mi+3 ou l'opé- ration d'écriture en sortie a lieu. Si la condition n'est pas remplie, la commande de l'opération d'écriture est blo- quée et la mémoire conserve son état Mi+2 résultant de l'intervalle précédent. L'écriture en mémoire ou en sortie est commandée par la zone de commande Ii, comme il a été indiqué précédemment sur les instructions normales. Que la condition soit remplie ou non, toutes les autres opérations du processeur se déroulent normalement pendant l'intervalle i+ 3. Si l'instruction conditionnelle Ii(c,s,t) est une instruction conditionnelle de positionnement de registre, seule une opération de positionnement de registre est affectée pendant l'intervalle i+3. On notera que dans ce cas, il n'y a aucune activité dans l'unité arithmétique, du fait que l'instruction de positionnement de registre est une instruction auxiliaire. Les opérations d'écriture en mémoire ou en sortie peuvent se poursuivre sans être pertur- bées, de la manière qui est spécifiée par la zone de comman- de Ii(s). Si la condition est remplie, le registre qui est désigné par la zone de sélection de registre du mot de données fixes associé à l'instruction de positionnement de registre est chargé avec la valeur présente dans la zone de valeur de ce mot de données, comme il a été indiqué pré- cédemment. Si la condition n'est pas remplie, la commande de l'opération de positionnement de registre est bloquée et le contenu du registre n'est pas modifié par l'instruction de positionnement de registre. Il va de soi aue de nombreuses modifications peuvent être apportées au mode de réalisation décrit et représenté, sans sortir du cadre de l'invention. REVENDICATIONS 1. Processeur numérique conçu pour un fonctionne- ment en mode pipeline, comprenant: une source (100) desti- née à fournir un train de mots d'instruction pour commander les opérations de traitement de routine, et à fournir un train de mots de données; une unité arithmétique (110) destinée à traiter un mot de données en compagnie d'un autre mot de données, dans des sous-unités de traitement choisies (112, 115, 116) qui accomplissent des opérations représentées par une expression, ce qui produit un mot de données résultant; et une unité de destination (105) des- tinée à recevoir le mot de données résultant provenant de l'unité arithmétique; caractérisé en ce qu'il comprend: des circuits de commande (131, 211, 212) destinés à décoder un mot d'instruction conditionnelle unique pour commander l'accomplissement d'un test de condition particulier pen- dant un premier cycle de processeur suivant (par exemple i+2); les circuits de commande (131, 211, 212) décodant un autre mot d'instruction pendant le premier cycle de proces- seur suivant afin de commander certaines opérations de l'unité de traitement pendant un second cycle de processeur suivant (par exemple i+3) ; un comparateur (215) réagissant au mot d'instruction conditionnelle décodé qui compare les conditions existant dans le processeur numérique, au moyen d'un premier dispositif (225, 114, 103) pendant le premier cycle de processeur suivant, et au moyen d'un second dispo- sitif (200, 104) l'information de condition particulière qui fait partie du mot d'instruction conditionnelle, pour produire un signal de condition (221); et un circuit logi- que (122) qui réagit au signal de condition (221) en blo- quant sélectivement la commande d'une partie au moins d'une unité du processeur numérique, pendant le second cycle de processeur suivant. 2. Processeur numérique selon la revendication 1, caractérisé en ce que l'instruction conditionnelle unique est une instruction conditionnelle d'exécution pour l'unité arithmétique, et le circuit logique (122) autorise la com- mande de l'unité arithmétique pendant le second cycle de processeur suivant si le signal de condition indique que la condition est remplie et le circuit logique bloque la comman- de de l'unité arithmétique pendant le second cycle de pro- cesseur suivant si le signal de condition indique que la condition n'est pas remplie. 3. Processeur numérique selon la revendication 1, caractérisé en ce que l'instruction conditionnelle unique est une instruction conditionnelle d'écriture, et le circuit logique (122) autorise la commande d'écriture dans l'unité de destination pendant le second cycle de processeur suivant si le signal de condition indique que la condition est rem- plie; et le circuit logique (122) bloque la commande de l'écriture dans l'unité de destination pendant le second cycle de processeur suivant si le signal de condition indi- que que la condition n'est pas remplie. 4. Processeur numérique selon la revendication 1, caractérisé en ce que l'instruction conditionnelle unique est une instruction conditionnelle de positionnement de registre, et le circuit logique (122) autorise la commande du positionnement d'une unité de registre pendant le second cycle de processeur suivant si le signal de condi- tion indique que la condition est remplie;eJleciaItlogique (122) interdit la commande de positionnement de l'unité de registre pendant le second cycle de processeur suivant si le signal de condition indique que la condition n'est pas remplie. 5. Processeur numérique selon la revendication 1, fonctionnant sous la dépendance de plusieurs zones de commande dans chaque mot de code d'opération d'une séquence de mots de code d'opération, chaque mot de code d'opération conditionnel étant désigné par Ii(c,s,t) et chaque mot de code d'opération inconditionnel étant désigné par Ii+ (1,m,..s,t), avec i = 0, 1, 2..., tandis que Ii(c) est une zone de commande conditionnelle et Iîi+(m) est une seconde zone de commande normale, chaque zone de commande normale comprenant une information qui détermine une étape dans le traitement d'une expression choisie d'un opérande Yi+2; caractérisé en ce que les circuits de commande (IR-C,IR-S,T, 211, 212, 213, 214, 215, 122 et 113) décodent un mot de code d'opération conditionnel I1(c,s,t) pendant un premier intervalle (i+1=2) et un mot de code d'opération normal I2(1,m,..s,t) pendant un second inter- valle (i+2=3); un circuit de registre est destiné à prendre en charge et à enregistrer un opérande y3 pendant le second intervalle, et au moins une unité (110) du processeur réagit à certaines des zones décodées, I2(1,m,..s,t) pendant un troisième intervalle en traitant l'opérande y3 pendant le troisième intervalle si la condition est remplie et en ne traitant pas l'opérande y3 pendant le troisième intervalle si la condition n'est pas remplie. 6. Processeur numérique selon la revendication 1, fonctionnant sous la dépendance de plusieurs zones de com- mande dans chaque mot de code d'opération d'une séquence de mots de code d'opération, chaque mot de code d'opération conditionnel étant désigné par Ii(c,s,t) et chaque mot de code d'opération auxiliaire étant désigné par Ii+l(c,s,t), avec i = 0, 1, 2..., tandis que Ii(c) est une zone de comman- de conditionnelle, Ii(s,t) sont des zones de commande, et Ii+1 (c) est une zone de commande auxiliaire comprenant une information destinée au positionnement d'un registre du pro- cesseur; caractérisé en ce que les circuits de commande (IR-C, IR-S,T, 211, 212, 213, 214, 215, 122 et 154) décodent un mot de code d'opération conditionnel I1(c,s,t) pendant un premier intervalle (i+1=2) et un mot de code d'opération auxiliaire I2(c,s,t) pendant un second intervalle (i+2=3) ; un circuit de registre est destiné à prendre en charge et à enregistrer une zone de commande de registre (XSR, XSL) pendant le second intervalle, et au moins une unité (110) du processeur réagit à certaines des zones décodées I2(c,s,t) pendant un troisième intervalle de façon à posi- tionner le registre pendant le troisième intervalle si la condition est remplie et à bloquer la commande du position- nement du registre pendant le troisième intervalle si la condition n'est pas remplie. 7. Processeur numérique selon la revendication 1, fonctionnant sous la dépendance de plusieurs zones de comman- de dans chaque mot de code d'opération d'une séquence de mots de code d'opération, chaque mot de code d'opération condi- tionnel étant désigné par Ii(c,s,t) et chaque mot de code d'opération normal étant désigné par Ii+1(l,m,..s,t) avec i = O, 1, 2..., tandis que Ii(c) est une zone de commande conditionnelle, Ii(s,t) sont des zones de commande et Ii+k(s) est une zone de commande normale contenant-une infor- mation qui identifie une destination pour le résultat du traitement, w3; caractérisé en ce que les circuits de com- mande (IR-C, IR-S,T, 211, 212, 213, 214, 215, 122 et 221) décodent un mot de code d'opération conditionnel I1(c,s,t) pendant un premier intervalle (i+1=2) et un mot de code d'opération normal I2(1,m,..s,t) pendant un second inter- valle (i+2=3); un circuit transfère et écrit un résultat w3 pendant un troisième intervalle, et au moins une unité (105) du processeur réagit à la zone de condition normale décodée 12 pendant le troisième intervalle en écrivant le résultat w3 pendant le troisième intervalle si la condition est remplie, et en bloquant la commande d'écriture du résultat w3 pendant le troisième intervalle si la condition n'est pas remplie.