Brevet FR2718866A1 — publié le 19951020

DISPOSITIF DE CALCUL ARITHEÉTIQUE ET LOGIQUE ET PROCÉDÉ DE COMMANDE L'invention concerne un dispositif de calcul arithmétique et logique et un procédé de commande. Ils s'appliquent notamment à tous les processeurs arithmétiques ou de traitement de signal. Ils permettent d'effectuer des calculs en double précision et en particulier des multiplications et des multiplication-accumulations en double précision. Faire des calculs en double précision ou multi- précision veut dire que l'on travaille sur des opérandes plus larges que le bus de données, par exemple que l'on travaille avec des opérandes 32 bits sur un bus de données 16 bits. Pour faire des multiplication-accumulations, on utilise un mulrtiplieur et une unité arithmétique et logique. Le multiplieur effectue la multiplication entre deux opérandes, et met le produit dans un registre. L'unité arithmétique et logique ajoute le produit au résultat contenu dans un registre d'accumulation. Pour effectuer des multiplications en double précision, quand le multiplieur accepte en entrée des opérandes de la largeur du bus de données, il faut effectuer des produits élémentaires et additionner ces produits pour obtenir le résultat de la multiplication. On appelle produit élémentaire un produit effectué avec des opérandes de la largeur du bus de données. Dans le cas d'un bus de données 16 bits, pour une multiplication en double précision sur des opérandes 32 bits constitués chacun d'un mot de 16 bits de poids fort et d'un mot de 16 bits de poids faible, on calcule 2 2718866 quatre produits élémentaires: le produit des deux mots de poids faible, le produit des deux mots de poids fort et les deux produits "croisés" du mot de poids faible d'un opérande avec le mot de poids fort de l'autre opérande. Les produits élémentaires sont exprimés sur 2 fois 16 bits. Un des problèmes rencontrés est d'additionner ensemble les différents produits élémentaires pour obtenir le résultat final sur 2 fois 32 bits et, pour une opération de multiplication-accumulation, d'additionner ces produits élémentaires à un résultat intermédiaire. Pour additionner correctement les produits élémentaires de 32 bits, il faut les aligner au bon endroit dans la fenêtre du résultat de 64 bits. Pour cela, on décale le cas échéant le résultat intermédiaire et on lui ajoute le produit élémentaire. - Il faut donc sauvegarder le résultat intermédiaire avant le décalage pour ne pas perdre de bits dans le résultat, ce qui oblige à gérer différents pointeurs en mémoire. Par exemple, si on a un multiplieur 16 bits et un additionneur 32 bits, et si on veut multiplier deux nombres 32 bits xlxO et ylyO ( xl, yl représentant le mot de poids fort et xO, yO représentant le mot de poids faible) et accumuler ce produit dans un accumulateur 32 bits A = Ahigh + Alow (Ahigh représentant les 16 bits de poids forts et Alow les 16 bits de poids faibles), on réalisera les différentes opérations suivantes: xO*yO + A dans A Alow dans mO xl*yO + A*2-16 dans A xO*yl + A dans A Alow dans ml 3 2718866 xl*yl + A*2-16 dans A. Comme toutes ces additions se font sur l'accumulateur et que ce dernier est toujours décalé vers la droite, la retenue et le bit de signe se propagent naturellement dans l'accumulateur. Pour effectuer des boucles de multiplication- accumulations, il faut effectuer des manipulations sur les zones mémoires mO et ml et sur l'accumulateur A, puisque le résultat n'est plus cadré et qu'il est en partie dans mO (16 bits de poids faibles) en partie dans l'accumulateur (32 bits de poids forts) et en partie dans ml (16 bits du milieu). Ce qui augmente le nombre de cycles instructions nécessaires et qui peut être très pénalisant. Un objet de l'invention est de faciliter les opérations en double ou plus généralement en multi- précision, en évitant notamment les manipulations mémoires. Un objet de l'invention est aussi de réduire le nombre de cycles instructions nécessaires à de telles opérations. Selon l'invention, on place un décaleur sur une entrée de l'unité arithmétique et logique. Pour additionner un produit croisé de type x0*yl, on applique ce produit à l'unité arithmétique et logique, sur l'entrée avec décaleur. Ainsi, c'est le produit qui est aligné sur l'accumulateur et non pas le contraire. Telle que revendiquée, l'invention concerne un dispositif de calcul arithmétique et logique, comprenant une unité arithmétique et logique. Selon l'invention, un décaleur est prévu sur au moins une entrée de l'unité arithmétique et logique. 4 2718866 Avantageusement, le décaleur est un décaleur à barillets. Un tel décaleur est très souple d'utilisation, permettant les décalages logiques et arithmétiques. Le dispositif de calcul selon l'invention, comportant en outre au moins deux accumulateurs, un multiplieur et une unité de commande, permet d'effectuer des instructions de double accumulation d'un produit calculé par le multiplieur, avec une première accumulation sur un premier accumulateur avec un décalage arithmétique à droite du produit et une deuxième accumulation sur un deuxième accumulateur avec un décalage à gauche du produit. Mais en réalisant deux accumulations sur deux accumulateurs différents, on perd cependant la propagation naturelle de la retenue dans les opérations de multiplication-accumulations. Dans l'invention, on prévoit des moyens pour propager la retenue. De préférence, l'unité de calcul arithmétique et logique ayant un premier registre pour mémoriser la retenue calculée dans l'opération courante et pour fournir cette retenue dans l'opération suivante, les moyens pour propager comprennent un premier circuit et un deuxième registre, le premier circuit étant contrôlé par un signal de commande délivré par l'unité de commande pour sauvegarder soit dans le premier registre, soit dans le deuxième registre, la retenue calculée par l'unité arithmétique et logique. Le premier circuit est avantageusement un multiplexeur/démultiplexeur. Selon une autre caractéristique de l'invention, le dispositif de calcul arithmétique et logique comprend un deuxième circuit contrôlé par l'unité de commande 2718866 pour appliquer ou non la retenue mémorisée dans le premier registre, à l'étage de calcul du bit de poids le plus faible dans le multiplieur. Le deuxième circuit est avantageusement une porte ET recevant en entrées la sortie du premier registre et un signal de commande binaire délivré par l'unité de commande. L'invention concerne aussi un procédé de commande d'un dispositif de calcul comprenant un multiplieur avec un registre produit associé, une unité arithmétique et logique à deux entrées et au moins un décaleur sur une entrée de l'unité arithmétique et logique. Selon l'invention, le procédé de commande consiste, pour une instruction comprenant une accumulation dans un accumulateur et une multiplication: à appliquer le contenu du registre produit sur une entrée de l'unité arithmétique et logique et à envoyer un signal de calcul (ml) de l'accumulation à l'unité arithmétique et logique; - à envoyer un signal de calcul (m3) d'un nouveau produit au multiplieur. L'invention concerne aussi un procédé de commande pour le calcul d'une double accumulation d'un produit comportant un mot de n bits de poids fort et un mot de n bits de poids faible, l'unité arithmétique et logique comprenant au moins un premier accumulateur et un deuxième accumulateur, un premier registre pour mémoriser la retenue calculée par l'unité arithmétique et logique pour l'instruction courante et un deuxième registre. Selon l'invention, sur réception d'une 6 2718866 instruction comprenant une double accumulation du produit, il commande: la protection du premier registre de retenue, pour garder la retenue calculée à l'instruction précédente; - l'application du contenu du registre produit sur l'entrée avec décaleur; - une première accumulation du contenu du registre produit décalé arithmétiquement de n bits vers la gauche par le décaleur avec le contenu du premier accumulateur, avec mémorisation de la retenue dans un deuxième registre; - une deuxième accumulation du contenu du registre produit décalé arithmétiquement de n bits vers la droite par le décaleur avec le contenu du deuxième accumulateur et la retenue mémorisée dans le deuxième registre. Pour le calcul d'une multiplication de deux opérandes en double précision, chaque opérande du produit à calculer comportant un mot de n bits de poids fort et un mot de n bits de poids faible, le procédé de commande selon l'invention commande en outre, en parallèle sur la deuxième accumulation, une multiplication en appliquant ou non la retenue contenue dans le premier registre sur l'étage de calcul du bit de poids le plus faible du produit dans le multiplieur. D'autres caractéristiques et avantages de l'invention sont donnés dans la description qui suit, faite à titre indicatif et non limitatif de l'invention et en référence aux dessins annexés dans lesquels: - la figure 1 représente une architecture d'un dispositif de calcul arithmétique et logique selon l'invention; 7 2718866 - la figure 2 représente un organigramme des opérations pour une multiplication-accumulation avec double précision dans un dispositif de calcul arithmétique et logique selon l'invention. Le dispositif de calcul arithmétique et logique représenté sur la figure 1 comprend une unité de commande UC pour piloter les différents circuits du dispositif de calcul, notamment une unité arithmétique et logique ALU et un multiplieur MULT. L'unité de commande reçoit une instruction INS, par exemple, d'un bus instruction IBUS (architecture classique des processeurs de traitement de signal, dite architecture "HARVARD"). Elle délivre différents signaux de commande (mO,...m4) en fonction de cette instruction. L' unité arithmétique et logique ALU est capable d'effectuer des instructions arithmétiques et logiques classiques ( addition, soustraction, XOR, comparaison, etc.). Elle comporte au moins deux entrées de données El et E2. Sur au moins une entrée, par exemple sur l'entrée El (figure 1), un décaleur BD est prévu. De préférence, c'est un décaleur à barillets qui permet des décalages arithmétiques et logiques. L'unité arithmétique et logique délivre un résultat sur une sortie OUT associée de préférence à aux moins deux registres de sortie A0 et A1 appelés accumulateurs. Ces accumulateurs peuvent aussi fournir des données sur les entrées E1 et E2 de l'unité arithmétique et logique. Un premier registre Cl et un deuxième registre C2 sont prévus pour mémoriser et fournir la retenue calculée par l'unité arithmétique et logique. Un circuit 1 commandé par l'unité de commande UC permet de sélectionner celui des deux registres C1 ou C2 qui mémorise et fournit la retenue pour l'opération en 8 2718866 cours. En fait, au début du calcul, le registre sélectionné fournit à l'unité arithmétique et logique la retenue qu'il a mémorisée. A la fin du calcul, il mémorise la nouvelle retenue. Le registre sélectionné par défaut est le registre Cl. De préférence, le circuit 1 comprend un multiplexeur/démultiplexeur recevant d'un côté le signal de retenue de l'unité arithmétique et logique, et de l'autre côté, sur une première voie, la sortie du registre Cl, et sur une deuxième voie, la sortie du registre C2. Le signal de commande m2 active selon son état, soit la première voie, soit la deuxième. En général, et comme représenté sur la figure 1, le premier registre Cl et le deuxième registre C2 sont un premier bit et un deuxième bit d'un registre de conditions RC associé à l'unité arithmétique et logique. Ce registre de conditions RC mémorise ou fournit différentes informations (retenue, signe, dépassement de capacité, etc.) délivrées ou utilisées par l'unité arithmétique et logique sur l'opération courante. Dans la suite, on confond les registres C1 et C2 avec les bits du registre de conditions. On retiendra que le bit Cl est le bit de retenue par défaut, et que le bit C2 prévu dans le dispositif de l'invention n'est utilisé que sur commande de l'unité de commande. Le dispositif de calcul comprend aussi un multiplieur MULT. C'est de préférence un multiplieur parallèle, pour disposer d'une vitesse de calcul optimum. Mais d'autres architectures peuvent être choisies, selon l'application (multiplieur série ou parallèle- série). Le multiplieur comprend deux entrées OP1 et OP2 pour recevoir les opérandes. Ceux-ci sont fournis dans l'exemple par deux registres sources L et R. Le multiplieur comprend aussi une entrée CO connectée à la sortie d'un circuit 2 pour appliquer la retenue sur l'étage de calcul (non représenté) du bit de poids le plus faible du produit. De préférence le circuit 2 comprend une porte logique ET qui reçoit en entrées le bit Cl et un signal de commande binaire m4 fourni par l'unité de commande. Le multiplieur délivre le résultat de la multiplication dans un registre produit P. Dans l'exemple de la figure 1, les données sont présentées sur n bits et l'unité arithmétique et logique est une unité double précision avec, dans l'exemple, une extension sur e bits. Un bus de données DBUS est représenté, par lequel les données sont écrites ou lues dans les différents registres de données: registre produit P, registres sources L et R ou accumulateurs A0 et A1. Ce bus de données d'une largeur de n bits est relié à un espace mémoire non représenté. Le multiplicateur opère sur des opérandes d'entrées de n bits, et fournit un résultat dans le registre P sur 2 fois n bits. Le registre P est divisé en deux sous-registres P1 et P0 de n bits accessibles séparément du bus de données. Le sous-registre P1 reçoit les n bits de poids forts du produit et le sous- registre P0 reçoit les n bits de poids faibles du produit. Les registres sources L et R sont chacuns divisés en deux sous-registres accessibles séparément du bus de données, un sous-registre (L1, R1) pour les n bits de poids forts, un sous-registre (L0, R0) pour les n bits de poids faibles. Les accumulateurs A0 et A1 sont chacuns divisés en trois sous-registres accessibles séparément du bus de données: un premier (AOE, AlE) pour les e bits d'extension, un deuxième (AOH, A1H) pour les n bits de poids forts, un troisième (AOL, AlL) pour les n bits de poids faibles. Les entrées E1 et E2 de l'unité arithmétique et logique sont de même divisées en trois sous-groupes correspondant à 3 bus locaux: Un premier bus local EXT1, EXT2 qui peut recevoir le contenu des sous-registres contenant les bits d'extension (AOE, AiE); - un deuxième bus local HIGH1, HIGH2 qui peut recevoir le contenu des sous-registres dédiés aux n bits de poids forts et - un troisième bus local LOW1, LOW2 qui peut recevoir le contenu des sous-registres dédiés aux n bits de poids faibles. Sur la figure 1, on n'a pas représenté toutes les liaisons possibles entre les bus locaux des entrées E1 et E2 et les sous-registres, d'une part pour ne pas surcharger la figure, d'autre part, car ces liaisons varient selon les architectures. D'autre part, on a représenté un seul bus de données DBUS dans un même souci de simplification. Mais certaines architectures utilisent par exemple deux bus de données chacuns reliés à un espace mémoire différent. Sur la figure 1, on a seulement représenté les liaisons effectives pour les opérations de multiplication ou de multiplication- accumulation selon un exemple de réalisation de l'invention. Pour de telles opérations, le contenu du registre produit P est appliqué sur l'entrée E1 avec décaleur de l'unité arithmétique et logique (P1 sur les n bits de poids forts et PO sur les n bits de poids faibles) et l'un (AO) ou l'autre (A1) accumulateur est appliqué sur l! l'entrée E2 de l'unité arithmétique et logique (AiE sur les e bits d'extension, AiH sur les n bits de poids forts et AiL sur les n bits de poids faibles, avec i= O ou 1). La sortie OUT de l'unité arithmétique et logique est écrite dans le même accumulateur que celui appliqué sur l'entrée E2. Sur une instruction d'accumulation-multiplication selon l'invention, l'unité de commande applique le contenu du registre produit sur une entrée de l'unité arithmétique et logique et envoie un signal de calcul (ml) de l'accumulation à l'unité arithmétique et logique et envoie un signal de calcul (m3) d'un nouveau produit au multiplieur. Selon l'invention, sur réception d'une instruction INS de double accumulation sur le registre produit, l'unité de commande UC commande l'application du contenu du registre P sur l'entrée E1 de l'unité arithmétique et logique avec décaleur et l'application du contenu du premier accumulateur, par exemple AO, sur l'entrée E2 et active un signal de commande (m2) sur le circuit 1 de protection du bit de retenue Cl pour que la retenue soit mémorisée ou lue dans le bit C2. Puis, elle initialise (signal de commande mO) le décaleur BD avec un décalage de n bits vers la gauche. Dans un premier cycle instruction, sur réception d'une commande de calcul d'accumulation sur le signal de commande ml, l'unité arithmétique et logique effectue son calcul, mémorise le résultat dans le premier accumulateur AO et mémorise la retenue dans le bit C2. L'unité de commande initialise alors le décaleur avec un décalage arithmétique de n bits vers la droite et applique le contenu du deuxième accumulateur Ai sur l'entré E2 de l'unité arithmétique et logique. Dans un deuxième cycle instruction, elle envoie une deuxième commande ml d'accumulation à l'unité arithmétique et logique. L'unité arithmétique et logique additionne les deux entrées avec la retenue de l'addition précédente mémorisée dans le bit C2, et accumule le résultat dans l'accumulateur A1. o10 Pour une instruction de double accumulation du registre produit et de multiplication, au deuxième cycle, l'unité de commande envoie en parallèle de la commande pour la deuxième accumulation, un signal de commande de calcul m3 au multiplieur. Le nouveau produit est mémorisé dans le registre produit. A la fin du deuxième cycle instruction, l'unité de commande désactive le signal de commande binaire m2, et ré- initialise le décaleur avec un décalage nul. Si l'instruction est une double accumulation et multiplication avec retenue, l'unité de commande active aussi à 1 le signal de commande m4 pour valider l'application du bit de retenue C1 sur l'entrée CO du multiplieur, et désactive à 0 le signal binaire m4 à la fin du deuxième cycle d'instruction. Le dispositif de calcul permet de faire des multiplication-accumulations en double précision de manière très simple avec un résultat parfaitement cadré sur les deux accumulateurs. Le résultat de la multiplication-accumulation est mis dans l'accumulateur A0 pour les poids faibles et dans l'accumulateur A1 pour les poids forts. Avec l'architecture représentée sur la figure 1, o l'unité arithmétique et logique et les accumulateurs sont à extension, la partie extension de l'accumulateur AO (AOE) n'est pas significative. La partie extension de l'accumulateur Ai (ALE) représente l'extension éventuelle de signe du résultat. L'invention s'applique aussi bien à des unités arithmétiques et logiques sans extension. Sur la figure 2 un organigramme d'une boucle de calcul de multiplication-accumulation avec un dispositif de calcul selon l'invention est représenté. Les opérandes à multiplier sont mis dans les registres R et L. Dans l'exemple de la figure 2, on a choisi n égal à 16. Les registres sources (R,L) et produit (P) sont donc des registres 2 fois 16 bits. Avant de rentrer dans la boucle de calcul de multiplicationaccumulations, il faut d'abord calculer un premier produit Prl, puisque le principe de l'invention consiste à accumuler le produit précédent et calculer le produit suivant. Le procédé de commande commence donc par une instruction de calculer le produit Pri des mots de poids faible RO, LO des deux premiers opérandes (MULT RO,LO). Le multiplieur est activé et le produit est mis dans le registre P. On entre alors dans la boucle au point d'entrée B, qui commence par une instruction d'accumulation- multiplication (MAC Rl,LO, AO): on calcule dans le même cycle instruction l'accumulation du produit précédent Prl=RO.LO dans l'accumulateur AO, et un premier produit croisé Pr2, c'est à dire le produit du mot de poids fort d'un opérande, par exemple Ri avec le mot de poids faible de l'autre opérande, dans l'exemple LO. L'accumulation génère une retenue mémorisée dans le bit Cl. L'instruction suivante est alors une instruction de double accumulationmultiplication (DMAC RO,L1): - au premier cycle instruction, l'unité arithmétique et logique calcule une première accumulation du produit précédent Pr2 avec un décalage de 16 bits à gauche avec l'accumulateur A0. L'accumulation génère une retenue mémorisée dans le bit C2. - au deuxième cycle instruction, l'unité arithmétique et logique calcule une deuxième accumulation du produit précédent Pr2 avec un décalage arithmétique de 16 bits à droite avec l'accumulateur Al, et avec la retenue mémorisée dans le bit C2. Dans le même temps, le multiplieur calcule le deuxième produit croisé Pr3, dans l'exemple Pr3=RO.Ll. Ensuite, on a une instruction de double accumulation- multiplication avec retenue (DMAC Rl,L1, CO). - dans un premier cycle instruction, l'unité arithmétique et logique calcule une première accumulation du produit précédent Pr3 avec un décalage de 16 bits à gauche avec l'accumulateur A0. L'accumulation génère une retenue mémorisée dans le bit C2. - au deuxième cycle instruction, l'unité arithmétique et logique calcule une deuxième accumulation du produit précédent Pr3 avec un décalage arithmétique de 16 bits à droite avec l'accumulateur Al, et avec la retenue mémorisée dans le bit C2. Dans le même temps, le multiplieur calcule le produit Pr4 des mots de poids fort, en appliquant le bit de retenue C1 sur l'entrée CO du multiplieur: Pr4=R1.L1 + C1. Et les registres sources R et L sont chargés avec les opérandes suivants (R+,L+). Enfin, on a une instruction d'accumulation- multiplication simple (MAC R0, L0, Ai). L'unité arithmétique et logique calcule l'accumulation du produit précédent Pr4 avec l'accumulateur A1, et le multiplieur calcule le produit Pr5 des mots de poids faible Pr5=R0.L0. On peut repartir en B pour la deuxième boucle de calcul. Le procédé de commande pour une multiplication- accumulation en double précision présenté ici vaut pour des nombres représentés en virgule fixe, signés, et entiers ou fractionnels. On notera que la multiplication des mots de poids faible est une multiplication de nombres non signés, celle des mots de poids fort, de nombres signés et les produits croisés sont des multiplications d'un nombre signé avec un nombre non signé; la gestion du type de produit à effectuer dans le multiplieur MULT est réalisée par l'unité de commande. Pour effectuer une multiplication en double précision sans accumulation, il suffit, à la place de la dernière instruction de multiplication-accumulation MAC, d'effectuer une simple accumulation sur l'accumulateur A1, les accumulateurs AO et A1 étant initialisés à zéro en début de calcul. On notera que pour une multiplication en double précision sans accumulation, il n'est pas nécessaire d'appliquer la retenue Cl au multiplieur pour le calcul du produit des mots de poids fort, car le premier produit des mots de poids faible est accumulé dans ce cas avec un accumulateur remis à zéro, impliquant nécessairement une retenue nulle. Le dispositif de calcul selon l'invention, permet donc des multiplications ou multiplication- accumulations en double précision très facilitées. D'une manière générale, le décaleur placé sur au moins une entrée de l'unité arithmétique et logique permet des manipulations sur les données sans avoir à modifier le contenu des accumulateurs: on effectue le cadrage sur les données et non plus sur les accumulateurs. Ceci s'applique aussi bien aux additions et soustractions et à toutes les manipulations de bits. Le dispositif de calcul arithmétique et logique selon l'invention n'est pas limité à l'architecture présentée à la figure 1. Notamment d'autres architectures de bus sont possibles, il peut y avoir d'autres registres ou d'autres unités de calcul. Les façons de gérer les registres en liaison avec les espaces mémoires ne sont pas indiquées mais sont réalisées selon les différentes possibilités offertes par l'état de l'art. REVENDICATIONS 1. Dispositif de calcul arithmétique et logique comprenant une unité arithmétique et logique (ALU), caractérisé en ce qu'il comporte un décaleur (BD) sur au moins une entrée (El) de l'unité arithmétique et logique. 2. Dispositif de calcul arithmétique et logique, selon la revendication 1, caractérisé en ce que le décaleur est un décaleur à barillets. 3. Dispositif de calcul selon la revendication 1 ou 2, comportant en outre au moins deux accumulateurs (AO, A1), un multiplieur (MULT) et une unité de commande (UC), l'unité de calcul arithmétique et logique ayant un premier registre (Cl) pour mémoriser la retenue calculée dans l'opération courante et pour fournir cette retenue dans l'opération suivante, caractérisé en ce que le dispositif de calcul comprend un premier circuit (1) et un deuxième registre (C2), le premier circuit étant contrôlé par l'unité de commande pour sauvegarder soit dans le premier registre (Cl), soit dans le deuxième registre (C2), la retenue calculée par l'unité arithmétique et logique. 4. Dispositif de calcul selon la revendication 3, caractérisé en ce que le premier circuit est avantageusement un multiplexeur/démultiplexeur à deux voies, une première reliée au premier registre (Cl) et une deuxième reliée au deuxième registre (C2) et ledit premier circuit recevant un signal de commande (m2) de l'unité de commande pour valider soit la première, soit la deuxième voie. 5. Dispositif de calcul selon la revendication 3 ou 4, caractérisé en ce qu'il comprend un deuxième circuit (2) pour appliquer ou non la retenue mémorisée dans le premier registre (C1) sur une entrée (CO) du multiplieur (MULT). 6. Dispositif de calcul selon la revendication 5, caractérisé en ce que le deuxième circuit est une porte ET recevant en entrées un signal de commande binaire (m4) de l'unité de commande (UC) et la sortie du premier registre (Cl). 7. Procédé de commande d'un dispositif de calcul comprenant un multiplieur (MULT) avec un registre produit (P) associé et une unité arithmétique et logique (ALU) à deux entrées (El, E2) avec au moins un décaleur (DB) sur une entrée (El), caractérisé en ce que, pour une instruction comprenant une accumulation et une multiplication il consiste: - à appliquer le contenu du registre produit sur l'entrée avec décaleur de l'unité arithmétique et logique et à envoyer un signal de calcul (ml) de l'accumulation à l'unité arithmétique et logique; - à envoyer un signal de calcul (m3) d'un nouveau produit au multiplieur. 8. Procédé de commande d'un dispositif de calcul selon la revendication 7, pour le calcul d'une double accumulation d'un produit comportant un mot de n bits de poids fort et un mot de n bits de poids faible, l'unité arithmétique et logique comprenant au moins un premier accumulateur (A0) et un deuxième accumulateur (A1), un premier registre (Cl) pour mémoriser la retenue calculée par l'unité arithmétique et logique pour l'instruction courante et un deuxième registre (C2), caractérisé en ce que sur réception d'une instruction de double accumulation du produit, il consiste en: - la protection du premier registre (C1) de retenue, pour garder la retenue calculée à l'instruction précédente; - une première accumulation du contenu du registre produit décalé arithmétiquement de n bits vers la gauche avec le contenu du premier accumulateur (A0), avec mémorisation de la retenue dans le deuxième registre (C2); - une deuxième accumulation du contenu du registre produit décalé arithmétiquement de n bits vers la droite avec le contenu du deuxième accumulateur (A1) et la retenue mémorisée dans le deuxième registre (C2). 9. Procédé de commande d'un dispositif de calcul selon la revendication 8, pour le calcul d'une multiplication de deux opérandes en double précision, chaque opérande du produit à calculer comportant un mot de n bits de poids fort et un mot de n bits de poids faible, caractérisé en ce qu'il consiste en outre, en parallèle sur la deuxième accumulation, à commander (m3) une multiplication avec application ou non (m4) de la retenue contenue dans le premier registre (C1), sur une entrée (C0) du multiplieur.