[go: up one dir, main page]

FR2802659A1 - Method, for digital signal processing, of simultaneously carrying out several operations with a single operator, using separation bits chosen to ensure in all cases the integrity of the result - Google Patents

Method, for digital signal processing, of simultaneously carrying out several operations with a single operator, using separation bits chosen to ensure in all cases the integrity of the result Download PDF

Info

Publication number
FR2802659A1
FR2802659A1 FR9916176A FR9916176A FR2802659A1 FR 2802659 A1 FR2802659 A1 FR 2802659A1 FR 9916176 A FR9916176 A FR 9916176A FR 9916176 A FR9916176 A FR 9916176A FR 2802659 A1 FR2802659 A1 FR 2802659A1
Authority
FR
France
Prior art keywords
operations
different
register
bits
operator
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Granted
Application number
FR9916176A
Other languages
French (fr)
Other versions
FR2802659B1 (en
Inventor
David Jacquet
Pascal Fouilleul
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
STMicroelectronics SA
Original Assignee
STMicroelectronics SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by STMicroelectronics SA filed Critical STMicroelectronics SA
Priority to FR9916176A priority Critical patent/FR2802659B1/en
Publication of FR2802659A1 publication Critical patent/FR2802659A1/en
Application granted granted Critical
Publication of FR2802659B1 publication Critical patent/FR2802659B1/en
Anticipated expiration legal-status Critical
Expired - Fee Related legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/50Adding; Subtracting
    • G06F7/505Adding; Subtracting in bit-parallel fashion, i.e. having a different digit-handling circuit for each denomination
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3812Devices capable of handling different types of numbers
    • G06F2207/3816Accepting numbers of variable word length
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F2207/00Indexing scheme relating to methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F2207/38Indexing scheme relating to groups G06F7/38 - G06F7/575
    • G06F2207/3804Details
    • G06F2207/3808Details concerning the type of numbers or the way they are handled
    • G06F2207/3828Multigauge devices, i.e. capable of handling packed numbers without unpacking them
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F7/00Methods or arrangements for processing data by operating upon the order or content of the data handled
    • G06F7/38Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
    • G06F7/48Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation using non-contact-making devices, e.g. tube, solid state device; using unspecified devices
    • G06F7/499Denomination or exception handling, e.g. rounding or overflow
    • G06F7/49905Exception handling
    • G06F7/4991Overflow or underflow
    • G06F7/49921Saturation, i.e. clipping the result to a minimum or maximum value

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • General Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • General Engineering & Computer Science (AREA)
  • Executing Machine-Instructions (AREA)

Abstract

The method has the following stages; (a) form similar partitions in each input register (31,32) to produce different zones (33,34), each zone in each register corresponds to a data input of with a single operation;insert between two consecutive zones a separator bit (35) which ensures the independence of the result (37,38) of each of the simultaneously effected operations. Method to carry out several operations with a single operator (30) admitting operands memorized in different input registers (31,32). A supplementary stage is added which partitions a results register (36) designed to receive results of the different operations. The partition is similar to the input register partitions. The different results are transferred to distinct output registers. The separation bits are specific for each operator. For a given operator, the different separation bits inserted between two consecutive zones are identical.

Description

Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur. 'invention concerne un procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur. Plus particulièrement l'invention se rapporte à un procédé qui permet d'utiliser un opérateur initialement prévu pour effectuer une opération avec des nombres codés sur n bits pour effectuer en parallèle plusieurs opérations avec des nombres codés sur un nombre de bits inférieur à n. A method for simultaneously performing multiple operations with a single operator The invention relates to a method for simultaneously performing several operations with a single operator. More particularly, the invention relates to a method that makes it possible to use an operator originally intended to perform an operation with numbers encoded on n bits to perform in parallel several operations with numbers encoded on a number of bits less than n.

Le procédé selon l'invention est particulièrement avantageux dans le cas où des opérateurs dits à arithmétique variable sont mis en oeuvre. De tels opérateurs peuvent effectuer des opérations à partir d'opérandes dont le nombre de bits peut varier. Par exemple, un additionneur pouvant effectuer des additions entre des opérandes codées sur 16 bits ou entre des opérandes codées sur 24 bits est dit à double arithmétique : il est à la fois compatible avec une arithmétique 16 bits et avec une arithmétique 24 bits. The method according to the invention is particularly advantageous in the case where operators called variable arithmetic are implemented. Such operators can perform operations from operands whose number of bits can vary. For example, an adder that can perform additions between 16-bit coded operands or between 24-bit coded operands is called double arithmetic: it is both compatible with 16-bit arithmetic and with 24-bit arithmetic.

Le domaine d'application de l'invention celui du traitement numérique du signal. Des processeurs spécifiques appelés DSP (pour Digital Signal Processing dans la littérature anglaise) sont spécialement conçus pour le traitement numérique du signal. Les sont plus particulièrement utilisés pour des fonctions particulières propres au traitement des signaux numériques, telles que le filtrage ou la comparaison de signaux. Dans certains systèmes de traitements des données, un DSP peut être associé avec un processeur- hôte plus puissant pour effectuer des opérations complexes de traitement du signal. Certaines applications des DSP nécessitent attention, une précision toute particulière notamment pour réalisation d'opérations arithmétiques. exemple la restitution d'un son dit de haute fidélité peut necessiter des calculs faisant intervenir nombres codés sur un nombre de bits plus important pour les calculs nécessaires pour de simples transmissions vocales. L'augmentation du nombre de bits pour coder les nombres intervenant dans les calculs assure un degré de précision supérieur. The field of application of the invention is that of digital signal processing. Specific processors called DSP (for Digital Signal Processing in the English literature) are specifically designed for digital signal processing. The are more particularly used for particular functions specific to the processing of digital signals, such as filtering or comparing signals. In some data processing systems, a DSP may be associated with a more powerful host processor to perform complex signal processing operations. Some applications of DSP require attention, a particular precision especially for performing arithmetic operations. For example, the rendering of a so-called high fidelity sound may require calculations involving numbers coded on a larger number of bits for the calculations necessary for simple voice transmissions. Increasing the number of bits to code the numbers involved in the calculations provides a higher degree of accuracy.

A l'inverse, il existe d'autres applications faisant intervenir des opérations qui nécessitent calculs faisant intervenir des nombres codés sur un nombre précis de bits ; pour ce type d'opération, la possibilité de travailler avec des nombres assurant une meilleure précision grâce à un nombre de bits plus important n'est pas retenue. Parfois, cette possibilité est même exclue pour ces opérations. Par exemple, il existe des standards de communication dans des systèmes de télécommunication cellulaire, tel que le standard GSM en Europe, qui imposent des nombres codés uniquement sur 16 bits et qui n'admettent pas nombres codés sur plus de 16 bits même si cela permet d'atteindre un degré de précision supérieur. contre de nombreuses et récentes applications multimedias dédiées au traitement numérique du signal exigent désormais un haut degré de précision, notamment dans la restitution des signaux audio, tout en ayant la capacité de se conformer au standard GSM pour pouvoir recevoir des télécommunications qui obéissent à ce standard. Conversely, there are other applications involving operations that require calculations involving numbers encoded on a specific number of bits; for this type of operation, the possibility of working with numbers ensuring a better accuracy thanks to a larger number of bits is not retained. Sometimes this possibility is even excluded for these operations. For example, there are communication standards in cellular telecommunication systems, such as the GSM standard in Europe, which impose numbers coded only on 16 bits and which do not admit numbers coded on more than 16 bits even if this allows to achieve a higher degree of accuracy. against many recent multimedia applications dedicated to digital signal processing now require a high degree of accuracy, including the return of audio signals, while having the ability to comply with the GSM standard to receive telecommunications that obey this standard .

problème se pose donc : des opérateurs puissants, c'est-à-dire travaillant avec des nombres codés un grand nombre de bits, et des opérateurs moins puissants, qui doivent travailler avec des nombres codes sur un nombre de bits imposé par certaines normes, doivent coexister. Faire un choix entre ces deux types d'opérateurs, et donc entre deux arithmétiques différentes, n'est aujourd'hui plus concevable. solution serait de faire coexister au sein des DSP deux groupes d'opérateurs distincts, chacun des deux groupes fonctionnant avec une arithmétique différente. Mais cette solution est pénalisante en terme de coût et d'espace requis. problem therefore arises: powerful operators, that is to say working with numbers encoded a large number of bits, and less powerful operators, which must work with code numbers on a number of bits imposed by certain standards, must coexist. To make a choice between these two types of operators, and therefore between two different arithmetic, is no longer conceivable. The solution would be to make two groups of distinct operators coexist within the DSPs, each of the two groups operating with a different arithmetic. But this solution is penalizing in terms of cost and space required.

Il existe donc désormais des opérateurs susceptibles d'effectuer des opérations selon des arithmétiques différentes, l'arithmétique en question pouvant aller de 1 bit à n bits, n étant le nombre de bits maximal d'une opérande. Dans la plupart de ces situations, n correspond à la taille des registres d'entrée de l'opérateur. En conséquence, les opérateurs pouvant effectuer des opérations aussi bien sur un grand nombre de bits que sur un nombre de bits plus restreint ne fonctionnent pas en permanence au maximum de leur capacité. Ainsi, par exemple, un additionneur 48 bits effectuant une addition entre deux nombres de 24 bits n'est pas utilisé de façon optimale. There are now operators capable of performing operations according to different arithmetic, the arithmetic in question can range from 1 bit to n bits, where n is the maximum number of bits of an operand. In most of these situations, n is the size of the input registers of the operator. As a result, operators that can perform operations on both a large number of bits and a smaller number of bits do not operate permanently at their maximum capacity. Thus, for example, a 48-bit adder performing an addition between two 24-bit numbers is not used optimally.

Par ailleurs, pour effectuer au sein d'un même système des opérations, par exemple sur 48 bits ou sur 24 bits, on peut utiliser deux opérateurs 24 bits distincts qui peuvent alors soit chacun effectuer une opération sur 24 bits, les deux opérations sur 24 bits pouvant alors être simultanément exécutées, soit effectuer une opération sur 48 bits en chaînant les deux opérateurs 24 bits, le chaînage des deux opérateurs devant permettre de récupérer une éventuelle retenue sortante. Furthermore, to perform operations within the same system, for example on 48 bits or on 24 bits, it is possible to use two distinct 24-bit operators which can then either each carry out a 24-bit operation, the two operations on 24 bits can then be simultaneously executed, or perform a 48-bit operation by chaining the two 24-bit operators, the chaining of the two operators to allow to recover a possible outgoing retention.

Les figures la et lb donnent un exemple de ces possibilités. A la figure la, un premier additionneur 24 bits 1 et un deuxième additionneur 24 bits 2 sont utilisés pour additionner respectivement un premier nombre de 24 bits A avec un deuxième nombre de 24 bits et un troisième nombre de 24 bits C avec un quatrième nombre de 24 bits D. Le résultat de la première addition, respectivement de la deuxième addition, se décompose en un nombre de 24 bits (A+B), respectivement (C+D), et une éventuelle retenue sortante rs(A+B) respectivement rs(C+D). On a ainsi réalisé deux opérations 24 bits en parallèle. Figures la and lb give an example of these possibilities. In FIG. 1a, a first 24-bit adder 1 and a second 24-bit adder 2 are used to respectively add a first 24-bit number A with a second 24-bit number and a third 24-bit number C with a fourth number of 24 bits D. The result of the first addition, respectively the second addition, is decomposed into a number of 24 bits (A + B), respectively (C + D), and a possible outgoing restraint rs (A + B) respectively rs (C + D). Two 24-bit operations were thus carried out in parallel.

A la figure lb, le premier additionneur 24 bits 1 et le deuxième additionneur 24 bits 2 sont chaînés afin 'exécuter conjointement une addition sur 48 bits. Les 24 bits de poids fort d'un premier nombre de 48 bits X et d'un deuxième nombre de 48 bits Y sont additionnés l'aide du premier additionneur 24 bits 1. Les 24 bits de poids faible du premier nombre X et du deuxième nombre Y sont additionnés au moyen du deuxième additionneur 2. La notation X (k:1) signifie que l'on considère seulement les bits k à 1 du nombre binaire X (k est dans ce cas le bit de poids le plus fort et 1 est le bit de poids le moins fort). Une connexion 3 entre les deux additionneurs 24 bits 1 et 2 assurent la propagation d'une éventuelle retenue sortante provenant de l'addition des bits de poids faible des deux nombres X et Y. Un premier résultat intermédiaire 4 sur 24 bits est obtenu en sortie du premier additionneur 1. Un deuxième résultat intermédiaire 5 sur 24 bits est obtenu en sortie du deuxième additionneur 2. Les résultats intermédiaires 4 et 5 sont concaténés pour obtenir un résultat final 6 sur 48 bits. Une éventuelle retenue sortante rs(X+Y) peut être obtenue en sortie du premier additionneur 24 bits 1. In Fig. 1b, the first 24-bit adder 1 and the second 24-bit adder 2 are chained together to perform a 48-bit addition. The 24 most significant bits of a first 48-bit number X and a second 48-bit number Y are added using the first 24-bit adder 1. The 24 least significant bits of the first number X and the second number Y are added by means of the second adder 2. The notation X (k: 1) means that we consider only the bits k to 1 of the binary number X (k is in this case the most significant bit and 1 is the least significant bit). A connection 3 between the two 24-bit adders 1 and 2 ensures the propagation of a possible outgoing carry coming from the addition of the least significant bits of the two numbers X and Y. A first intermediate result 4 on 24 bits is obtained as output of the first adder 1. A second intermediate result of 24 bits is obtained at the output of the second adder 2. The intermediate results 4 and 5 are concatenated to obtain a final result of 48 bits. A possible outgoing restraint rs (X + Y) can be obtained at the output of the first 24-bit adder 1.

Si les procédés qui viennent d'être décrits sont susceptibles d'être mis en oeuvre pour effectuer des opérations 24 bits ou 48 bits, ils posent cependant un problème en terme de temps d'exécution de l'opération. En effet, le temps moyen que met aujourd' un opérateur pour exécuter une opération est approximativement proportionnelle au logarithme base 2 de n, noté 1092 (n), où n est le nombre de bits des opérandes. Ainsi, dans l'exemple qui vient 'être présenté, le temps de propagation nécessaire pour réaliser l'opération de la figure lb est, un coefficient de proportionnalité k près, égal à 2 1092 (24), soit logz (242). Ce temps d'exécution est beaucoup plus important que le temps d'exécution d'un additionneur 48 bits qui aurait été égal à logz (48), au coefficient k près. If the methods which have just been described are capable of being implemented to carry out 24-bit or 48-bit operations, they nevertheless pose a problem in terms of the execution time of the operation. Indeed, the average time that an operator now takes to execute an operation is approximately proportional to the base 2 logarithm of n, denoted 1092 (n), where n is the number of bits of the operands. Thus, in the example which has just been presented, the propagation time necessary to carry out the operation of FIG. 1b is a proportionality coefficient k equal to 2 1092 (24), ie logz (242). This execution time is much more important than the execution time of a 48-bit adder which would have been equal to logz (48), with a k-value close to it.

Le procédé selon l'invention permet de pallier les différents défauts et inconvénients qui viennent d'être décrits. Le procédé selon l'invention met en oeuvre des moyens pour effectuer simultanément plusieurs opérations avec un unique opérateur sans être confronté à des problèmes de temps d'exécution du type de ceux rencontrés lors du chaînage de deux opérateurs, et avec une utilisation optimale des capacités de l'unique opérateur. The method according to the invention makes it possible to overcome the various defects and disadvantages which have just been described. The method according to the invention implements means for simultaneously performing several operations with a single operator without being confronted with execution time problems of the type encountered during the chaining of two operators, and with optimal use of the capacities. the only operator.

En outre, dans le procédé selon l'invention, les différents registres d'entrée de l'unique opérateur subissent une partition en un nombre de zones égales au nombre d'opérations à effectuer simultanément. Tous les registres d'entrée subissent des partitions similaires. Deux zones consécutives d'un même registre sont séparées par un bit de séparation dont la fonction est d'éviter une propagation éventuelle de retenue entre différentes zones d'un registre de résultat. Le registre de résultat subit également une partition qui est similaire à celle des registres d'entrée contenant les différentes opérandes. Chaque nombre contenu dans les différentes zones du registre de résultat correspond à un résultat d'une des opérations effectuées simultanément. Les bits de séparation assurent ainsi l'indépendance de données entre les différentes opérandes. In addition, in the method according to the invention, the different input registers of the single operator undergo a partition in a number of zones equal to the number of operations to be performed simultaneously. All input registers undergo similar partitions. Two consecutive zones of the same register are separated by a separation bit whose function is to avoid a possible propagation of restraint between different zones of a result register. The result register also undergoes a partition which is similar to that of the input registers containing the different operands. Each number contained in the different areas of the result register corresponds to a result of one of the operations performed simultaneously. The separation bits thus ensure the independence of data between the different operands.

L'invention concerne donc un procédé pour effectuer simultanément plusieurs opérations avec unique opérateur admettant des opérandes mémorisées dans différents registres d'entrée caractérisé en qu'il comporte les étapes consistant à - effectuer des partitions semblables de chaque registre d'entrée pour obtenir différentes zones chacune des zones de chaque registre d'entrée correspondant à une donnée d'entrée d'une unique opération ; - insérer entre deux zones consécutives un bit séparateur pour assurer l'indépendance du résultat de chacune des opérations effectuées simultanément. The invention therefore relates to a method for performing simultaneously several operations with a single operator admitting operands stored in different input registers, characterized in that it comprises the steps of: performing similar partitions of each input register to obtain different zones each of the areas of each input register corresponding to an input data of a single operation; - Insert between two consecutive zones a separator bit to ensure the independence of the result of each of the operations performed simultaneously.

De préférence, une partition semblable aux partitions des registres d'entrée est effectuée dans un registre de résultat destiné à recevoir les résultats des différentes opérations. Par ailleurs, les différents résultats des différentes opérations peuvent être extraits du registre de résultat pour être mémorisés dans des registres de sortie distincts. Les bits de séparation qui sont choisis pour assurer l'indépendance des résultats de chacune des opérations effectuées simultanément en empêchant la propagation d'une éventuelle retenue entre les différentes zones du registre résultat 7 spécifiques à chaque opérateur. Cependant, pouf ui, opérateur donné, et dans le but d'éviter la propagation de retenue, tous bits de séparation adoptent la même valeur. Preferably, a partition similar to the partitions of the input registers is performed in a result register intended to receive the results of the various operations. Moreover, the different results of the different operations can be extracted from the result register to be stored in separate output registers. The separation bits that are chosen to ensure the independence of the results of each of the operations performed simultaneously by preventing the propagation of a possible hold between the different areas of the register result 7 specific to each operator. However, for a given operator, and in order to avoid carry propagation, all the separation bits adopt the same value.

Les différents aspects et avantages de présente invention seront mieux compris à la lecture de la suite la description en référence aux figures qui ne sont données qu'à titre indicatif et nullement limitatif et qui sont à présent introduites - les figures la et lb, déjà décrites, illustrent l'utilisation de plusieurs opérateurs pour effectuer des opérations sur un nombre bits variable - figure 2 montre une structure possible d'une partition d'un registre d'entrée contenant une opérande destinée à être utilisée par un opérateur selon le procédé de l'invention ; et - figures 3a et 3b illustrent un exemple de mise en oeuvre du procédé selon l'invention ' l'aide d'un additionneur. The various aspects and advantages of the present invention will be better understood on reading the following description with reference to the figures which are given only as an indication and in no way limitative and which are now introduced - FIGS. 1a and 1b, already described. , illustrate the use of several operators to perform operations on a variable bit number - figure 2 shows a possible structure of a partition of an input register containing an operand for use by an operator according to the method of invention; and FIGS. 3a and 3b illustrate an example of implementation of the method according to the invention with the aid of an adder.

A la figure 2, un registre d'entrée 0 d'un opérateur quelconque est représenté. A titre d'exemple, le registre 20 a une taille de 49 bits numérotés 0 à 48. Il cependant évident que des registres de toutes tailles peuvent être considérés pour la mise en oeuvre procédé selon l'invention. Une partition du registre 20 en trois zones distinctes est représentée. Une première zone 21, qui correspond par exemple aux 24 premiers bits du registre d'entrée 20, est séparée d'une deuxième zone 22, qui correspond aux 24 bits de poids fort du registre d'entrée 20, par une troisième zone 23, dite zone de séparation, dont la taille est de 1 bit. Une telle partition d'un registre d'entrée peut permettre à un opérateur d'effectuer deux opérations une première opération entre une opérande contenue dans la première zone 21 et d'autres opérandes de même taille contenues dans des zones semblables d'autres registres d'entrée non représentés, et, simultanément, une deuxième opération entre une opérande contenue dans la troisième zone 22 du registre d'entrée 20 et d'autres opérandes de même taille contenues dans des zones semblables d'autres registres d'entrée. La zone de séparation 23 est destinée ' contenir un unique bit de séparation entre les deux opérandes des zones 21 et 22. I1 est évident que le procédé selon l'invention peut être mis en oeuvre avec des registres de taille différente de la taille du registre 20 et avec des partitions différentes, ou encore avec des registres de même taille que le registre 20 mais avec des partitions différentes. In Figure 2, an input register 0 of any operator is shown. By way of example, the register 20 has a size of 49 bits numbered 0 to 48. However, it is obvious that registers of all sizes can be considered for the implementation of the method according to the invention. A partition of the register 20 into three distinct areas is shown. A first zone 21, which corresponds for example to the first 24 bits of the input register 20, is separated from a second zone 22, which corresponds to the 24 most significant bits of the input register 20, by a third zone 23, said separation zone, whose size is 1 bit. Such a partition of an input register may allow an operator to perform two operations a first operation between an operand contained in the first zone 21 and other operands of the same size contained in similar zones of other registers. not shown, and simultaneously a second operation between an operand contained in the third zone 22 of the input register 20 and other operands of the same size contained in similar areas of other input registers. The separation zone 23 is intended to contain a single separation bit between the two operands of the zones 21 and 22. It is obvious that the method according to the invention can be implemented with registers of different size from the size of the register. 20 and with different partitions, or with registers of the same size as the register 20 but with different partitions.

Par ailleurs, les différentes zones contenant les différentes opérandes ne sont pas nécessairement de la même taille pour un même registre d'entrée. outre, une partition d'un registre d'entrée ne limite pas ce dernier nécessairement à trois zones. Plus deux opérandes peuvent être contenues dans un même registre d'entrée pour la mise en oeuvre du procède selon l'invention. A chaque fois qu'une opérande est ajoutée, un bit de séparation doit également être ajouté. Ceci implique que l'opérateur exécutant des opérations à l'aide des données contenues dans ces registres d'entrée doit avoir la taille adéquate. Ainsi, pour effectuer simultanément deux opérations sur 24 bits selon le procédé de l'invention, c'est un opérateur 49 bits et non 48 bits qu'il faut utiliser. D'une façon plus générale, pour effectuer x opérations simultanées avec le procédé selon l'invention, c'est un opérateur taille (n+x-1) bits qu'il faut utiliser, n étant le nombre de bits total des opérandes intervenant dans les opérations. Moreover, the different zones containing the different operands are not necessarily of the same size for the same input register. in addition, a partition of an input register does not limit the latter necessarily to three zones. More two operands can be contained in the same input register for the implementation of the method according to the invention. Whenever an operand is added, a separator bit must also be added. This implies that the operator performing operations using the data contained in these input registers must be of the correct size. Thus, to perform simultaneously two operations on 24 bits according to the method of the invention, it is a 49-bit and not 48-bit operator that must be used. In a more general way, to perform x simultaneous operations with the method according to the invention, it is an operator size (n + x-1) bits to be used, n being the total number of bits operands intervening in operations.

Comme il l'a été précédemment mentionné, le temps calcul est proportionnel au logarithme en base 2 du nombre de bits d'entrée de l'opérateur. La différence temps d'exécution entre une opération sur (n+x-1) bits et une opération sur n bits est par conséquent negligeable, x ayant le plus souvent une valeur très inférieure à n. La figure 3a représente une mise en oeuvre du procédé selon l'invention dans le cas de deux additions en parallèle entre nombres de taille n/2 bits. Un additionneur n+1 bit 30 fonctionne partir de données contenues dans un premier registre d'entrée 31 et un deuxième registre d'entrée 32 qui contiennent les différentes opérandes à additionner. Les notations définies lors de la description de la figure lb sont de nouveau utilisées ici. Ainsi, pour réaliser simultanément deux additions entre d'une part un premier nombre A et un deuxième nombre B de n/2 bits, et d'autre part un troisième nombre C et un quatrième nombre D de n/2 bits, la répartition des différentes opérandes dans les différents registres d'entrée est la suivante : dans le premier registre 31, on trouve dans une première zone 33 le premier nombre A, dans une deuxième zone 34, le troisième nombre C et dans une troisième zone 35 de taille 1 bit, on trouve un bit de séparation de valeur 0. As previously mentioned, the computation time is proportional to the logarithm in base 2 of the number of input bits of the operator. The difference in execution time between an operation on (n + x-1) bits and an operation on n bits is therefore negligible, x being most often a value much smaller than n. FIG. 3a represents an implementation of the method according to the invention in the case of two additions in parallel between numbers of size n / 2 bits. An adder n + 1 bit 30 operates from data contained in a first input register 31 and a second input register 32 which contain the different operands to be added. The notations defined in the description of FIG. 1b are used again here. Thus, to simultaneously realize two additions between firstly a first number A and a second number B of n / 2 bits, and secondly a third number C and a fourth number D of n / 2 bits, the distribution of different operands in the different input registers is as follows: in the first register 31, there is in a first zone 33 the first number A, in a second zone 34, the third number C and in a third zone 35 of size 1 bit, there is a separation bit of value 0.

D'une manière générale, les bits de séparation intervenant dans les opérations de type addition, addition avec saturation... ont pour valeur 0. Les bits de séparation intervenant dans les opérations de types soustraction, soustraction avec saturation... ont pour valeur 1. Dans le cas de la réalisation simultanée de plusieurs opérations, la valeur des bits de séparation est choisie pour éviter une propagation éventuelle de retenue entre des zoneE <B>10</B> tinctes du registre de résultat, ces zones di.-_____-es correspondant à des résultats indépendants d'opérations différentes. Pour un opérateur donné, les différents bits de séparation insérés entre deux zones consécutives définies par la partition des registres d'entrées sont identiques. In general, the separation bits involved in the addition, addition with saturation ... operations have the value 0. The separation bits involved in the subtraction, subtraction with saturation type operations are of value. 1. In the case of the simultaneous execution of several operations, the value of the separation bits is chosen to avoid a possible propagation of restraint between zones E <B> 10 </ B> tincts of the result register, these zones di.- _____- corresponding to results independent of different operations. For a given operator, the different separation bits inserted between two consecutive zones defined by the partition of the input registers are identical.

La structure du registre 32 est semblable à celle du registre 31, les nombres A et C étant respectivement remplacés par les nombres B et D. Le résultat est obtenu dans un registre de résultats 36 de taille n+1 bit et dont la partition est la suivante : une première zone 37 de taille n/2 bits contient le résultat de l'addition A+B ; une deuxième zone 38 de taille n/2 bits contient le résultat de l'addition C+D ; une troisième zone 39 de taille 1 bit a une valeur significative de la présence d'une retenue sortante dans l'addition entre C et D. Un micro-contrôleur non représenté qui gère l'ensemble des opérations effectuées peut alors transférer les résultats des deux opérations distinctes dans deux registres distincts. La retenue sortante rs(A+B) de l'addition A+B peut être prise en compte dans un registre spécifique telle qu'une unité de saturation 40. The structure of the register 32 is similar to that of the register 31, the numbers A and C being respectively replaced by the numbers B and D. The result is obtained in a result register 36 of size n + 1 bit and whose partition is the next: a first zone 37 of size n / 2 bits contains the result of the addition A + B; a second zone 38 of size n / 2 bits contains the result of the addition C + D; a third zone 39 of size 1 bit has a significant value of the presence of an outgoing restraint in the addition between C and D. An unrepresented microcontroller which manages all the operations performed can then transfer the results of the two separate operations in two separate registers. The outgoing restraint rs (A + B) of the addition A + B can be taken into account in a specific register such as a saturation unit 40.

La figure 3b représente le cas ou l'additionneur n+1 bits 30 de la figure 3a doit être utilisé pour effectuer une unique addition entre deux nombres X et Y de taille n bits, tout en conservant la même partition qu'à la figure 3a du premier registre d'entrée 31 et du deuxième registre d'entrée 32. Cet exemple montre que les moyens mis en oeuvre par le procédé selon l'invention, à savoir une partition des registres d'entrée avec ajout de zones de séparation, ne sont pas un obstacle pour continuer à effectuer une opération unique à l'aide de l'opérateur concerné. Chacun des deux registres d'entrée est divisé en deux zones de taille n/2 bits séparées par une zone de séparation de taille 1 bit dont les références sont les mêmes qu'à la figure 3a. En utilisant les notations définies à la figure lb, la répartition des différentes opérandes dans les différents registres d'entrée est la suivante : on a Y (n-l:n/2) dans la zone 33 du premier registre d'entrée 31, Y (n/2-1:0) dans la zone 34 du premier registre 31, X (n-l:n/2) dans la zone 33 du deuxième registre d'entrée 32 et X (n/2-1:0) dans la zone du deuxième registre d'entrée 32 - les bits de séparation ont pour valeur 0 pour le premier registre d'entree 31 et 1 pour le deuxième registre d'entrée 32. FIG. 3b represents the case where the n + 1 bit adder 30 of FIG. 3a must be used to make a single addition between two numbers X and Y of size n bits, while keeping the same partition as in FIG. 3a of the first input register 31 and the second input register 32. This example shows that the means implemented by the method according to the invention, namely a partition of the input registers with addition of separation zones, do not are not an obstacle to continue performing a single operation using the relevant operator. Each of the two input registers is divided into two zones of size n / 2 bits separated by a separation zone of size 1 bit whose references are the same as in FIG. 3a. Using the notations defined in FIG. 1b, the distribution of the different operands in the different input registers is as follows: Y (n1: n / 2) in the zone 33 of the first input register 31, Y ( n / 2-1: 0) in the zone 34 of the first register 31, X (n1: n / 2) in the zone 33 of the second input register 32 and X (n / 2-1: 0) in the zone of the second input register 32 - the separation bits are 0 for the first input register 31 and 1 for the second input register 32.

Il faut noter que le bit de separation du deuxieme registre d'entrée est 1 car dans ce cas de figure, on souhaite qu'une éventuelle retenue résultant de 'addition des opérandes contenues dans les différentes zones 34 se propage. Dans cas d'une soustraction, la valeur du bit de séparation qui aurait assure la propagation d'une éventuelle retenue sortante aurait été 0. En effet, comme on effectue ici une unique opération, les données des différentes opérandes ne sont plus indépendantes les unes des autres. It should be noted that the separation bit of the second input register is 1 because, in this case, it is desired that any retaining resulting from the addition of the operands contained in the different zones 34 be propagated. In the case of a subtraction, the value of the separation bit which would have ensured the propagation of a possible outgoing retention would have been 0. Indeed, since a single operation is carried out here, the data of the different operands are no longer independent of each other. others.

Le résultat est obtenu dans le registre de résultat 36. La zone de séparation 39 contient un bit dont valeur dépend de la présence une retenue sortante lors de l'addition des bits de poids faible des nombres X et Y. Ce bit de séparation ne fait cependant pas partie du résultat définiti . Ce dernier est memorisé dans un registre 41 dit de résultat définitif qui contient, codé sur n bits, résultat de la concaténation des zones 37 et 38. Par ailleurs, comme à la figure 3a, une unité de saturation 40 peut contenir une retenue sortante rs(X+Y) de l'addition X+Y. The result is obtained in the result register 36. The separation zone 39 contains a bit whose value depends on the presence of an outgoing carry when adding the least significant bits of the numbers X and Y. This separation bit does not however not part of the definiti result. The latter is stored in a definitive result register 41 which contains, coded on n bits, the result of the concatenation of the zones 37 and 38. Moreover, as in FIG. 3a, a saturation unit 40 may contain an outgoing restraint rs (X + Y) of the addition X + Y.

Claims (2)

REVENDICATIONS 1. Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur (30) admettant des opérandes mémorisées dans différents registres d'entrée (31;32) caractérisé en ce qu'il comporte les étapes consistant à - effectuer des partitions semblables de chaque registre d'entrée (3l;32) pour obtenir différentes zones (33;34), chacune des zones de chaque registre d'entree correspondant à une donnée d'entrée d'une unique opération ; insérer entre deux zones consécutives un bit séparateur (35) pour assurer l'indépendance du résultat (37;38 de chacune des opérations effectuées simultanément.1. A method for simultaneously performing several operations with a single operator (30) admitting operands stored in different input registers (31; 32) characterized in that it comprises the steps of: performing similar partitions of each register; input (31; 32) to obtain different areas (33; 34), each of the areas of each input register corresponding to an input data of a single operation; inserting between two consecutive zones a separator bit (35) to ensure the independence of the result (37; 38 of each of the operations performed simultaneously. 2. Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur (30) selon la revendication 1 caractérisé en ce qu'il comprend l'étape supplémentaire consistant à effectuer une partition d'un registre de résultats (36) destiné à recevoir des résultats de différentes operations, ladite partition étant semblable aux partitions des registres d'entrée (31;32). Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur (30) selon la revendication 2 caractérisé en ce qu'il comprend l'étape supplémentaire consistant à transferer les différents résultats contenus dans le registre de résultats (36) vers des registres de sortie distincts. .Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur (30) selon l'une des revendications précédentes caractérisé en ce que les bits de séparation sont spécifiques chaque opérateur. 5. Procédé pour effectuer simultanément plusieurs opérations avec un unique opérateur (30) selon l'une revendications précédentes caractérisé ce que pour un opérateur donné, les différents bits de separation insérés entre deux zones consécutives définies par la partition des registres d'entrée sont identiques.2. A method for simultaneously performing several operations with a single operator (30) according to claim 1 characterized in that it comprises the additional step of partitioning a result register (36) for receiving results from different operations, said partition being similar to the partitions of the input registers (31; 32). A method for simultaneously performing multiple operations with a single operator (30) according to claim 2 characterized in that it comprises the further step of transferring the different results contained in the result register (36) to separate output registers. .Procédé to simultaneously perform several operations with a single operator (30) according to one of the preceding claims characterized in that the separation bits are specific to each operator. 5. A method for simultaneously executing several operations with a single operator (30) according to one of the preceding claims, characterized by the fact that for a given operator, the different separation bits inserted between two consecutive zones defined by the partition of the input registers are identical. .
FR9916176A 1999-12-21 1999-12-21 METHOD FOR SIMULTANEOUSLY CARRYING OUT MULTIPLE OPERATIONS WITH A SINGLE OPERATOR Expired - Fee Related FR2802659B1 (en)

Priority Applications (1)

Application Number Priority Date Filing Date Title
FR9916176A FR2802659B1 (en) 1999-12-21 1999-12-21 METHOD FOR SIMULTANEOUSLY CARRYING OUT MULTIPLE OPERATIONS WITH A SINGLE OPERATOR

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9916176A FR2802659B1 (en) 1999-12-21 1999-12-21 METHOD FOR SIMULTANEOUSLY CARRYING OUT MULTIPLE OPERATIONS WITH A SINGLE OPERATOR

Publications (2)

Publication Number Publication Date
FR2802659A1 true FR2802659A1 (en) 2001-06-22
FR2802659B1 FR2802659B1 (en) 2002-11-29

Family

ID=9553569

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9916176A Expired - Fee Related FR2802659B1 (en) 1999-12-21 1999-12-21 METHOD FOR SIMULTANEOUSLY CARRYING OUT MULTIPLE OPERATIONS WITH A SINGLE OPERATOR

Country Status (1)

Country Link
FR (1) FR2802659B1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0661624A1 (en) * 1994-01-04 1995-07-05 Sun Microsystems, Inc. Pseudo-superscalar technique for video processing
US5943251A (en) * 1996-11-18 1999-08-24 Samsung Electronics Co., Ltd. Adder which handles multiple data with different data types

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0661624A1 (en) * 1994-01-04 1995-07-05 Sun Microsystems, Inc. Pseudo-superscalar technique for video processing
US5943251A (en) * 1996-11-18 1999-08-24 Samsung Electronics Co., Ltd. Adder which handles multiple data with different data types

Also Published As

Publication number Publication date
FR2802659B1 (en) 2002-11-29

Similar Documents

Publication Publication Date Title
EP0712072A1 (en) Method for the implementation of Montgomery modular reduction
FR2471094A1 (en) INTERPOLATOR CIRCUIT INCREASING THE RATE OF WORDS OF A DIGITAL SIGNAL OF THE TYPE USED IN TELEPHONE DIGITAL SWITCHING SYSTEMS AND LINE JETOR WITH SUCH CIRCUIT
EP0204603A1 (en) Fast calculating of the direct or reverse cosine transform of a discrete signal
FR2903562A1 (en) BINARY SPATIALIZATION OF SOUND DATA ENCODED IN COMPRESSION.
FR2535567A1 (en) DIGITAL MULTIPLIER DEVICE AND METHOD OF USE
CA2841303A1 (en) Adaptations of analysis or synthesis weighting windows for transform coding or decoding
EP0437876B1 (en) Programmable serial multiplier
WO2000072187A1 (en) Complex number multiplier
EP0262032A1 (en) Binary adder having a fixed operand, and a parallel/serial multiplier comprising such an adder
FR2480968A1 (en) DIGITAL PROCESSOR SUITABLE FOR HIGH DENSITY INTEGRATION
FR3101980A1 (en) Processor
FR2802659A1 (en) Method, for digital signal processing, of simultaneously carrying out several operations with a single operator, using separation bits chosen to ensure in all cases the integrity of the result
EP0237382A1 (en) Digital sampled signal cosine transforming device
EP0476592A2 (en) Address generator for the data storage of a processor
FR2739991A1 (en) IIR digital filter
EP1050987B1 (en) CDMA multiple access method with improved capacity
FR2802660A1 (en) METHOD FOR PERFORMING OPERATIONS WITH VARIABLE ARITHMETICS
WO1995004963A1 (en) Device for electronically calculating a fourier transform and method of minimizing the size of internal data paths within such a device
EP0785502B1 (en) Method of producing an error correcting parameter associated with the implementation of modular operations according to the Montgomery method
EP1672830B1 (en) Masking of binary words by an integrated circuit
FR2772946A1 (en) Method of detection of overflow in arithmetic computation
FR2895602A1 (en) Digital binary initial data stream context adaptive binary arithmetic coding type encoder for forming video image, has renormalization unit with reference table for extracting values obtained by iteration during renormalization
EP1335277A1 (en) Efficient saturating operation
EP0169089A1 (en) Elementary data processing device
FR3045883A1 (en) METHOD FOR CRYPTOGRAPHIC DATA PROCESSING, COMPUTER PROGRAM AND ELECTRONIC ENTITY

Legal Events

Date Code Title Description
ST Notification of lapse

Effective date: 20070831