FR2747489A1 - Floating point computation of word products in ATM network - Google Patents
Floating point computation of word products in ATM network Download PDFInfo
- Publication number
- FR2747489A1 FR2747489A1 FR9604716A FR9604716A FR2747489A1 FR 2747489 A1 FR2747489 A1 FR 2747489A1 FR 9604716 A FR9604716 A FR 9604716A FR 9604716 A FR9604716 A FR 9604716A FR 2747489 A1 FR2747489 A1 FR 2747489A1
- Authority
- FR
- France
- Prior art keywords
- function
- relation
- sep
- mantissa
- code
- 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
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/52—Multiplying; Dividing
- G06F7/523—Multiplying only
- G06F7/5235—Multiplying only using indirect methods, e.g. quarter square method, via logarithmic domain
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F1/00—Details not covered by groups G06F3/00 - G06F13/00 and G06F21/00
- G06F1/02—Digital function generators
- G06F1/03—Digital function generators working, at least partly, by table look-up
- G06F1/0307—Logarithmic or exponential functions
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F7/00—Methods or arrangements for processing data by operating upon the order or content of the data handled
- G06F7/38—Methods or arrangements for performing computations using exclusively denominational number representation, e.g. using binary, ternary, decimal representation
- G06F7/48—Methods 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/483—Computations with numbers represented by a non-linear combination of denominational numbers, e.g. rational numbers, logarithmic number system or floating-point numbers
- G06F7/487—Multiplying; Dividing
- G06F7/4876—Multiplying
Landscapes
- Engineering & Computer Science (AREA)
- Physics & Mathematics (AREA)
- General Physics & Mathematics (AREA)
- Theoretical Computer Science (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Computing Systems (AREA)
- General Engineering & Computer Science (AREA)
- Nonlinear Science (AREA)
- Error Detection And Correction (AREA)
Abstract
Description
La présente invention concerne un procédé pour le calcul approché du produit de mots de code d'information codés dans un format à virgule flottante utilisé notamment pour convoyer des informations de débit dans des réseaux de transmission de données par paquet connu sous l'abréviation anglo-saxonne ATM de "asynchronous transfer mode". The present invention relates to a method for the approximate calculation of the product of coded information code words in a floating-point format used in particular for conveying rate information in packet data transmission networks known by the abbreviation ATM saxon of "asynchronous transfer mode".
Une particularité des réseaux ATM est qu'ils permettent à chaque usager d'utiliser pleinement la bande passante disponible sur le trajet d'une connexion préalablement établie sans nécessiter une réservation statique de ressources lors de l'établissement d'une connexion. Ce service est connu sous l'abréviation anglo-saxonne ABR de "Available bit rate". En contrepartie de cette souplesse, les deux extrémités d'une connexion ont à adapter leur débit de transmission à la bande passante disponible. A cet effet, des cellules ATM particulières désignées sous l'abréviation anglosaxonne RM de "ressource management" permettent de renseigner les extrémités d'une connexion sur la disponibilité des ressources dans le réseau. Ces cellules sont émises et traitées en temps réel par les équipements d'extrémité qui sont connectés aux différentes artères du réseau aussi bien que par les commutateurs disposés à ses différents noeuds. Les cellules RM comportent des champs destinés à convoyer des informations de débit comme par exemple, le débit autorisé courant de la source CCR, ou le débit conseillé par le réseau à la source ER. Cependant comme ces champs font appel à un codage en virgule flottante particulier caractérisé par un bit de nullité, 5 bits d'exposant et 9 bits de mantisse la multiplication ou la division qu'il est nécessaire d'effectuer pour adapter le débit d'une source de transmission à la bande passante disponible sur le trajet d'une connexion devient une opération longue car elle nécessite le transcodage des données dans un format à virgule fixe sur 41 bits, ce dont les microprocesseurs commercialisés actuellement ne sont pas capables naturellement de par la taille de leurs registres de travail. A special feature of ATM networks is that they allow each user to fully utilize the available bandwidth on the path of a previously established connection without requiring a static reservation of resources when establishing a connection. This service is known by the abbreviation ABR of "Available bit rate". In return for this flexibility, the two ends of a connection have to adapt their transmission rate to the available bandwidth. For this purpose, particular ATM cells designated by the English abbreviation RM "resource management" can inform the ends of a connection on the availability of resources in the network. These cells are transmitted and processed in real time by the end equipments which are connected to the different arteries of the network as well as by the switches arranged at its different nodes. RM cells include fields for conveying rate information such as, for example, the current allowed rate of the CCR source, or the rate recommended by the network at the source ER. However, as these fields use a particular floating point coding characterized by a nullity bit, 5 bits of exponent and 9 bits of mantissa the multiplication or division that it is necessary to perform to adapt the bit rate of a transmission source to the bandwidth available on the path of a connection becomes a long operation because it requires the transcoding of data in a 41-bit fixed-point format, the microprocessors currently marketed are not naturally able to by the size of their work registers.
Le but de l'invention est de pallier les inconvénients précités. The object of the invention is to overcome the aforementioned drawbacks.
A cet effet, l'invention a pour objet un procédé pour le calcul approché du produit de mots de code d'information codés dans un format en virgule flottante, chaque mot de code étant défini à l'aide d'un exposant e et d'une mantisse m par une relation de la forme R(e,m)=2e.f(m) à laquelle est associé un code l(e,m)=2M.e+m où e et m sont des entiers tels que O < e < E
O < m < M et f(m) est une fonction monotone inversible telle que 1 < f(m < 2, caractérisé en ce qu'il consiste à approximer la relation R(e,m) par la relation R(e,m) approx = exp(K.(l(e,m)+P(m))) dans laquelle K= Long 2 et
2M
2M
P(m) est la partie entière de Logf(m)-m. For this purpose, the subject of the invention is a method for the approximate calculation of the product of code information words encoded in a floating-point format, each codeword being defined using an exponent e and d. a mantissa m by a relation of the form R (e, m) = 2e.f (m) with which is associated a code l (e, m) = 2M.e + m where e and m are integers such that O <e <E
O <m <M and f (m) is an invertible monotonic function such that 1 <f (m <2, characterized in that it consists in approximating the relation R (e, m) by the relation R (e, m ) = exp (K. (l (e, m) + P (m))) in which K = Long 2 and
2M
2M
P (m) is the integer part of Logf (m) -m.
Log 2
L'invention a également pour objet un dispositif pour la mise en oeuvre du procédé selon l'invention.Log 2
The invention also relates to a device for implementing the method according to the invention.
L'invention a principalement pour avantage qu'elle permet de simplifier le calcul du produit de nombres codés en virgule flottante, en limitant considérablement la taille des registres des microprocesseurs mis en oeuvre pour effectuer les calculs. The main advantage of the invention is that it makes it possible to simplify the calculation of the product of floating-point numbers, by considerably limiting the size of the microprocessor registers used to perform the calculations.
D'autres caractéristiques et avantages de l'invention apparaîtront dans la description qui suit faite en regard des dessins annexés qui représentent:
Les figures la et lb les lois d'approximation utilisées pour la multiplication de nombres codés dans un format en virgule flottante selon l'invention.Other features and advantages of the invention will appear in the following description made with reference to the appended drawings which represent:
Figures la and lb the approximation laws used for the multiplication of numbers encoded in a floating point format according to the invention.
La figure 2 un graphe montrant l'erreur d'approximation résultante. Figure 2 is a graph showing the resulting approximation error.
La figure 3 un mode de réalisation d'un dispositif pour la mise en oeuvre du procédé selon l'invention. Figure 3 an embodiment of a device for implementing the method according to the invention.
Le code utilisé pour coder l'information de débit dans une cellule
RM d'un réseau ATM est un code exprimé en virgule flottante suivant une relation de la forme R(z,e,m)=z.2e.(l +m/512) (1) dans laquelle z=O ou 1
l'exposant e est un entier compris entre 0 et 31
et la mantisse m est un entier compris entre 0 et 511.The code used to encode the flow information in a cell
RM of an ATM network is a code expressed in floating point in a relation of the form R (z, e, m) = z.2e. (L + m / 512) (1) in which z = 0 or 1
the exponent e is an integer between 0 and 31
and the mantissa m is an integer between 0 and 511.
L'exposant e est codée sur une longueur de 5 bits et la mantisse m est codée sur une longueur de 9 bits. Au total, suivant la valeur de z, 25+9=16384 valeurs non nulles peuvent être codées, auxquelles peuvent être ajoutées 16384 valeurs nulles. The exponent e is encoded over a length of 5 bits and the mantissa m is encoded over a length of 9 bits. In total, depending on the value of z, 25 + 9 = 16384 non-zero values can be encoded, to which 16384 null values can be added.
A chacune de ces valeurs est associé un code
I(z, e, m) = 214z + 29e + m (2) pour coder l'information de débit R(z, e, m) dans une cellule RM.Each of these values is associated with a code
I (z, e, m) = 214z + 29e + m (2) for encoding flow information R (z, e, m) in an RM cell.
En considérant les cas où z=l et en ignorant la quantité 214z, le procédé selon l'invention consiste à approximer la quantité
R(e, m)=2e.(l+m/512) (3) qui est associée à un mot de code l(e,m)=29.e+m (4) par la quantité:
R(e, m)approx=exp(k.(l(e,m)+p(m))) (5) dans laquelle k est une constante, p(m) est une fonction monotone croissante puis décroissante de la mantisse m telle que définie par les 512 valeurs du tableau de l'annexe 1 et dont la courbe représentative est montrée à la figure la. La fonction p(m) peut également être caractérisée analvtiauement comme étant la Dartie entière de
Considering the cases where z = 1 and ignoring the quantity 214z, the method according to the invention consists in approximating the quantity
R (e, m) = 2e (l + m / 512) (3) which is associated with a codeword l (e, m) = 29.e + m (4) by the quantity:
R (e, m) approx = exp (k. (L (e, m) + p (m))) (5) where k is a constant, p (m) is a monotonic increasing and decreasing function of the mantissa m as defined by the 512 values of the table in Appendix 1 and whose representative curve is shown in Figure la. The function p (m) can also be characterized analytically as the entire Dartie of
<tb> 738.66Log(1+m)-m <SEP>
<tb> 512 (remarque 738,66=
Log2
Soit W un mot de code ayant e comme exposant et m comme mantisse, c'est-à-dire W=l(e,m), désignons par P(W) I'expression l(e,m)+p(m). En appliquant la relation (4) il vient . P(W)=29e+m+p(m).<tb> 738.66Log (1 + m) -m <SEP>
<tb> 512 (note 738.66 =
log2
Let W be a codeword with e as exponent and m as mantissa, that is, W = l (e, m), denote by P (W) the expression l (e, m) + p (m ). By applying the relation (4) it comes. P (W) = 29th + m + p (m).
Comme m+p(m) reste inférieur à 512 d'après la figure 1, P(W) est également un mot de code, ayant e comme exposant et m+p(m) comme mantisse, c'està-dire P(W)=l(e,m+p(m)).Since m + p (m) remains smaller than 512 according to FIG. 1, P (W) is also a code word, having e as exponent and m + p (m) as mantissa, ie P ( W) = l (e, m + p (m)).
Comme indiquée sur le graphe de la figure 2, I'erreur relative qui résulte de la substitution de la relation (1) par la relation (5) est très faible sa valeur reste positive et inférieure à 1,5%o quels que soient les débits compris entre 1 et 1 o10 cellules/secondes. As indicated in the graph of FIG. 2, the relative error resulting from the substitution of the relation (1) by the relation (5) is very small, its value remains positive and less than 1.5% o whatever the flow rates between 1 and 10 10 cells / second.
Le procédé selon l'invention permet d'obtenir une approximation du produit de deux valeurs de code R(e,m) et R(e', m') exprimées suivant la relation (5) et associées à deux mots de code W=l(e,m) et W'=l(e',m') par une fonction exponentielle de P(W) + P(W') multipliée par la constante k. La somme P(W)+P(V) est un mot de code, que l'on peut exprimer sous la forme P(W"), sous réserve de montrer que P est inversible, soit ws=p-1 (P(W)+P(W')) (8)
Comme montré plus haut P(W)=l(e,m+p(m)). II apparaît donc que l'exposant e est invariant dans la transformation P et que la mantisse m+p(m) peut être considérée comme une fonction inversible car monotone croissante. Si q désigne cette fonction inverse, l'inverse de la fonction P s'exprime alors sous la forme
#-I (1(e,m))=l(e,q(m)) (9)
Une table représentative des valeurs prises par la fonction q et correspondant au graphe de la figure I b est donnée en annexe 2. La fonction q(m) peut également etre caractérisée analytiquement comme étant la partie entière de
The method according to the invention makes it possible to obtain an approximation of the product of two code values R (e, m) and R (e ', m') expressed according to relation (5) and associated with two code words W = l (e, m) and W '= l (e', m ') by an exponential function of P (W) + P (W') multiplied by the constant k. The sum P (W) + P (V) is a codeword, which can be expressed as P (W "), provided that P is invertible, ie ws = p-1 (P ( W) + P (W ')) (8)
As shown above P (W) = 1 (e, m + p (m)). It thus appears that the exponent e is invariant in the transformation P and that the mantissa m + p (m) can be considered as an invertible function because it is monotonically increasing. If q denotes this inverse function, the inverse of the function P is expressed in the form
# -I (1 (e, m)) = l (e, q (m)) (9)
A table representative of the values taken by the function q and corresponding to the graph of figure I b is given in appendix 2. The function q (m) can also be analytically characterized as being the integer part of
<tb> 512.(exp <SEP> (m)-1) <SEP>
<tb> <SEP> 738,66
<tb>
Un algorithme permettant l'exécution du produit W' défini par la relation (8) et utilisant les données fournies par les tables p et q est le suivant: r t~wordl6 type entier codé sur au moins 16 bits p[ 1 tableau constant de 512 entiers entre 0 et 511 q[ ] tableau constant de 512 entiers entre 0 et 511
table p (annexe 1) t
table q (annexe 2) #define ZERO~MASK 0x4000 #define EXPONENT~MASK 0x3E00 #define MANTISSA~MASK 0x01FF t~word16 mult (t~word16 W1, t~word16 W2) f
if (W1 8 W2 8 ZERO~MASK) ( /* les deux opérandes sont non-nuls */
t~word16tmp = W1 + W2 + P[W1 & MANTISSA~MASK] + P[W2 &
MANTISSA~MASK] ;
/* insérer un test de dépassement */
retum (ZERO~MASKltmp 8 EXPONENT~MASK I q[tmp & MANTISSA~MASKl);
else f /* un des opérandes est nul !
return 0;
Dans cet algorithme "W1" et "W2" désignent respectivement le premier et le deuxième opérande de la multiplication. Son exécution n'offre pas de difficulté et peut être réalisée à l'aide d'un microprocesseur du commerce convenablement programmé à cet effet. Toutefois, un dispositif ayant une fonction équivalente utilisant des composants discrets assemblés de la façon représentée à la figure 4 peut aussi être réalisé.<tb> 512. (exp <SEP> (m) -1) <SEP>
<tb><SEP> 738.66
<Tb>
An algorithm allowing the execution of the product W 'defined by the relation (8) and using the data provided by the tables p and q is as follows: rt ~ wordl6 integer type coded on at least 16 bits p [1 constant array of 512 integers between 0 and 511 q [] constant array of 512 integers between 0 and 511
table p (annex 1) t
table q (annex 2) #define ZERO ~ MASK 0x4000 # define EXPONENT ~ MASK 0x3E00 #define MANTISSA ~ MASK 0x01FF t ~ word16 mult (t ~ word16 W1, t ~ word16 W2) f
if (W1 8 W2 8 ZERO ~ MASK) (/ * both operands are non-zero * /
t ~ word16tmp = W1 + W2 + W [W1 & MANTISSA ~ MASK] + P [W2 &
MANTISSA ~ MASK];
/ * insert an overrun test * /
retum (ZERO ~ MASKltmp 8 EXPONENT ~ MASK I q [tmp & MANTISSA ~ MASKl);
else f / * one of the operands is null!
return 0;
In this algorithm "W1" and "W2" respectively denote the first and the second operand of the multiplication. Its execution does not offer any difficulty and can be carried out using a commercially available microprocessor suitably programmed for this purpose. However, a device having an equivalent function using discrete components assembled in the manner shown in FIG. 4 can also be realized.
Celui-ci comporte, représenté à l'intérieur de lignes fermées en pointillés, un premier ensemble 1 pour le calcul de P(W1 )+P(W2), suivi d'un deuxième ensemble 2 pour le calcul du mot de code résultant selon la relation (9). Dans cet exemple le premier et le deuxième opérande de la multiplication ont un format binaire composé de 5 bits pour le codage de l'exposant et de 9 bits pour le codage de la mantisse. Ceux-ci sont appliqués respectivement sur des entrées d'adresse d'une première 3 et d'une deuxième 4 mémoire morte programmable au travers de circuits d'adressage 5 et 6. The latter comprises, represented inside closed dashed lines, a first set 1 for the calculation of P (W1) + P (W2), followed by a second set 2 for calculating the resulting code word according to the relation (9). In this example the first and second operands of the multiplication have a binary format consisting of 5 bits for the encoding of the exponent and 9 bits for the coding of the mantissa. These are respectively applied to address inputs of a first 3 and a second programmable read only memory through addressing circuits 5 and 6.
Les mémoires 3 et 4 mémorisent chacune la table p des nombres représentatifs de la fonction P(m). décrite en annexe. Les mémoires 3 et 4 reçoivent en entrée la mantisse de l'opérande concernée (respectivement
W1 et W2) obtenue grâce à un masque MSKmantisse=[0000000111111111] appliqué à W1 et W2. Leurs sorties sont reliées à une entrée d'opérande des circuits additionneurs 7 et 8, respectivement, dont l'autre entrée reçoit les opérandes W1 et W2, respectivement, afin de calculer P(W1) et P(W2). Un troisième circuit additionneur 9 effectue l'addition P(W) des mots de code P(W1) et P(W2) obtenus en sortie des circuits additionneur 7 et 8. Le calcul de W= p-1 (P(W1)+P(W2)) donnant le mot de code résultant est obtenu par l'ensemble 2 qui est formé par deux portes ET 10 et 11, d'une mémoire morte programmable 12 pour la mémorisation des nombres constituant la table q définie en annexe, et d'un circuit multiplexeur 13. Les portes ET 10 et 11 sont commandées par des mots de masquage pour sélectionner respectivement dans le mot binaire obtenu en sortie du circuit additionneur 9, les bits d'exposant ou les bits de mantisse composant le mot P(W'). Les bits d'exposant e sont transmis par la porte ET 10 à destination d'un circuit
OU 13, et les bits de mantisse m sont appliqués aux entrées d'adressage de la mémoire 12 contenant la table q, dont la sortie des données est appliquée également sur une entrée de la porte OU 13. Le résultat obtenu en sortie de la porte OU 13 correspond alors au mot W=l(e,q(m)) défini par la relation (9). The memories 3 and 4 each store the table p of the numbers representative of the function P (m). described in the appendix. The memories 3 and 4 receive as input the mantissa of the operand concerned (respectively
W1 and W2) obtained by means of a mask MSKmantisse = [0000000111111111] applied to W1 and W2. Their outputs are connected to an operand input of the adder circuits 7 and 8, respectively, whose other input receives the operands W1 and W2, respectively, in order to calculate P (W1) and P (W2). A third adder circuit 9 performs the addition P (W) of the code words P (W1) and P (W2) obtained at the output of the adder circuits 7 and 8. The computation of W = p-1 (P (W1) + P (W2)) giving the resulting code word is obtained by the set 2 which is formed by two AND gates 10 and 11, a programmable read-only memory 12 for storing the numbers constituting the table q defined in the appendix, and of a multiplexer circuit 13. The AND gates 10 and 11 are controlled by masking words to select respectively in the binary word obtained at the output of the adder circuit 9, the exponent bits or the mantissa bits constituting the word P ( W '). The exponent bits e are transmitted by the AND gate 10 to a circuit
OR 13, and the mantissa bits m are applied to the addressing inputs of the memory 12 containing the table q, whose data output is also applied to an input of the OR gate 13. The result obtained at the output of the gate OR 13 then corresponds to the word W = 1 (e, q (m)) defined by the relation (9).
Un dispositif à peu près identique peut être réalisé pour le calcul de la division de deux nombres codés dans un format en virgule flottante selon la relation (1). il suffit pour cela de substituer le signe + par un signe ce qui revient à changer l'additionneur 9 de la figure 3 par un circuit soustracteur. An approximately identical device can be realized for the calculation of the division of two numbers coded in a floating-point format according to relation (1). it suffices for this to substitute the sign + by a sign which amounts to changing the adder 9 of Figure 3 by a subtracter circuit.
Si l'un des opérandes est une constante le procédé et le dispositif sont susceptibles de simplifications ultérieures. C'est notamment le cas dans le problème pratique qui consiste à déterminer le nombre de cycles d'horloge de fréquence F séparant l'émission de deux cellules consécutives au débit R(e,m). En appliquant le même raisonnement que ci-dessus le rapport R(eF,mF)/R(e,m) apparaît comme une valeur R(E,M) dont l'exposant
E=(eF-e) ou (eF-e-1) selon que m est supérieur ou non à une valeur seuil (dépendant de mF), et dont la mantisse M est une fonction de m (dépendant de mF) facile à tabuler. Plus précisément: si m < q(mF+P(mF))
E=eF-e M=q(mF+p(mF)-m-P(m)) sinon E=eF-e-1 M=q(mF+p(mF)-m-p(m)+51 2)
L'algorithme ci-dessus est susceptible d'être employé dans les dispositifs dits d'égrenage qui permettent d'imposer un débit spécifié à un flot de cellules ATM.If one of the operands is a constant the method and the device are susceptible of subsequent simplifications. This is particularly the case in the practical problem of determining the number of clock cycles of frequency F between the emission of two consecutive cells at the rate R (e, m). Applying the same reasoning as above, the ratio R (eF, mF) / R (e, m) appears as a value R (E, M) whose exponent
E = (eF-e) or (eF-e-1) depending on whether or not m is greater than a threshold value (depending on mF), and whose mantissa M is a function of m (dependent on mF) that is easy to tabulate . More precisely: if m <q (mF + P (mF))
E = eF-e M = q (mF + p (mF) -mP (m)) else E = eF-e-1 M = q (mF + p (mF) -mp (m) +51 2)
The above algorithm is likely to be used in so-called ginning devices that allow a specified bit rate to be imposed on an ATM cell stream.
Le procédé de calcul approché du produit de nombres codés en virgule flottante présenté ci-dessus peut être étendu à d'autres types de codage en virgule flottante. The method for approximating the product of floating point numbers presented above can be extended to other types of floating point coding.
En effet soit un codage de la forme
R(e,m)=2e.f(m) et l(e,m)=2M.e+m O < e < E où O < rn < M
1 < f(m) < 2 et f inversible on peut toujours écrire
R(e,m)=exp(e.Log 2+Log f(m))
R(e,m)=exp(K(2M.e+m+p(m)))
Log 2 2M
où k=Log2 et p(m)= 2M.Logf(m)-m
2M Log2
En remplaçant p(m) par sa partie entière on obtient une valeur approchée de R(e,m).Indeed be a coding of the form
R (e, m) = 2e.f (m) and l (e, m) = 2M.e + m O <e <E where O <rn <M
1 <f (m) <2 and invertible f can always be written
R (e, m) = exp (e.log 2 + log f (m))
R (e, m) = exp (K (2M.e + m + p (m)))
Log 2 2M
where k = Log2 and p (m) = 2M.Logf (m) -m
2M Log2
By replacing p (m) by its integer part we obtain an approximate value of R (e, m).
Compte-tenu de l'hypothèse faite sur f(m), le même raisonnement que ci-dessus s'applique et aboutit au résultat suivant:
soient R(e,m) et R(e',m') deux valeurs du code, soient e" et m" les parties exposant et mantisse du mot code 2Me+m+2Me'+m'+p(m)+p(m') alors l'exposant du mot code produit est e" et sa mantisse est q(m")=-1(exp(Log2.m)). Il en découle un procédé de calcul approché du
2M produit en remplaçant p et q par leur partie entière. Taking into account the hypothesis made on f (m), the same reasoning as above applies and leads to the following result:
let R (e, m) and R (e ', m') be two values of the code, let e "and m" be the exponent and mantissa parts of the word code 2Me + m + 2Me '+ m' + p (m) + p (m ') then the exponent of the product code word is e "and its mantissa is q (m") = - 1 (exp (Log2.m)). It follows a method of approximate calculation of the
2M produced by replacing p and q by their integer part.
Annexez
(Table p) int p[] =
0, 0, 0, 1, 1, 2, 2, 3,
3, 3, 4, 4, 5, 5, 5, 6,
6, 7, 7, 7, 8, 8, 9, 9,
9, 10, 10, 10, 11, 11, 12, 12,
12, 13, 13, 13, 14, 14, 14, 15,
15, 15, 16, 16, 16, 17, 17, 17,
18, 18, 18, 19, 19, 19, 20, 20,
20, 20, 21, 21, 21, 22, 22, 22,
23, 23, 23, 23, 24, 24, 24, 24,
25, 25, 25, 25, 26, 26, 26, 26,
27, 27, 27, 27, 28, 28, 28, 28,
29, 29, 29, 29, 30, 30, 30, 30,
30, 31, 31, 31, 31, 31, 32, 32,
32, 32, 32, 33, 33, 33, 33, 33,
34, 34, 34, 34, 34, 35, 35, 35,
35, 35, 35, 36, 36, 36, 36, 36,
36, 36, 37, 37, 37, 37, 37, 37,
38, 38, 38, 38, 38, 38, 38, 38,
39, 39, 39, 39, 39, 39, 39, 39,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41,
41, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 38, 38, 38,
38, 38, 38, 38, 38, 38, 37, 37,
37, 37, 37, 37, 37, 37, 36, 36,
36, 36, 36, 36, 36, 36, 35, 35,
35, 35, 35, 35, 35, 34, 34, 34,
34, 34, 34, 34, 33, 33, 33, 33,
33, 33, 33, 32, 32, 32, 32, 32,
32, 31, 31, 31, 31, 31, 31, 30,
30, 30, 30, 30, 30, 29, 29, 29,
29, 29, 29, 28, 28, 28, 28, 28,
27, 27, 27, 27, 27, 27, 26, 26,
26, 26, 26, 25, 25, 25, 25, 25,
24, 24, 24, 24, 24, 23, 23, 23,
23, 23, 22, 22, 22, 22, 22, 21,
21, 21, 21, 20, 20, 20, 20, 20,
19, 19, 19, 19, 19, 18, 18, 18,
18, 17, 17, 17, 17, 17, 16, 16,
16, 16, 15, 15, 15, 15, 14, 14,
14, 14, 13, 13, 13, 13, 13, 12,
12, 12, 12, 11, 11, 11, 11, 10,
10, 10, 10, 9, 9, 9, 9, 8,
8, 8, 8, 7, 7, 7, 7, 6,
6, 6, 5, 5, 5, 5, 4, 4,
4, 4, 3, 3, 3, 3, 2, 2,
2, 1, 1, 1, 1, 0, 0, 0
Annexe Il
(Table q) int q[] =
0, 0, 1, 2, 2, 3, 4, 4,
5, 6, 6, 7, 8, 9, 9, 10,
11, 11, 12, 13, 14, 14, 15, 16,
16, 17, 18, 19, 19, 20, 21, 21,
22, 23, 24, 24, 25, 26, 27, 27,
28, 29, 29, 30, 31, 32, 32, 33,
34, 35, 35, 36, 37, 38, 38, 39,
40, 41, 41, 42, 43, 44, 44, 45,
46, 47, 47, 48, 49, 50, 50, 51,
52, 53, 53, 54, 55, 56, 57, 57,
58, 59, 60, 60, 61, 62, 63, 63,
64, 65, 66, 67, 67, 68, 69, 70,
71, 71, 72, 73, 74, 75, 75, 76,
77, 78, 79, 79, 80, 81, 82, 83,
83, 84, 85, 86, 87, 87, 88, 89,
90, 91, 91, 92, 93, 94, 95, 96,
96, 97, 98, 99, 100, 101, 101, 102,
103, 104, 105, 106, 106, 107, 108, 109,
110, 111, 111, 112, 113, 114, 115, 116,
116, 117, 118, 119, 120, 121, 122, 122,
123, 124, 125, 126, 127, 128, 129, 129,
130, 131, 132, 133, 134, 135, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143, 144, 145, 146, 147, 148, 149, 150, 151, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 302, 303, 304, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 349, 350, 351, 352, 353, 354, 356, 357, 358, 359, 360, 361, 363, 364, 365, 366, 367, 369, 370, 371, 372, 373, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 387, 388, 389, 390, 392, 393, 394, 395, 396, 398, 399, 400, 401, 403, 404, 405, 406, 408, 409, 410, 411, 413, 414, 415, 416, 418, 419, 420, 421, 423, 424, 425, 427, 428, 429, 430, 432, 433, 434, 435, 437, 438, 439, 441, 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 456, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 475, 476, 477, 479, 480, 481, 483, 484, 485, 487, 488, 490, 491, 492, 494, 495, 496, 498, 499, 500, 502, 503, 505, 506, 507, 509, 510 attach
(Table p) int p [] =
0, 0, 0, 1, 1, 2, 2, 3,
3, 3, 4, 4, 5, 5, 5, 6,
6, 7, 7, 7, 8, 8, 9, 9,
9, 10, 10, 10, 11, 11, 12, 12,
12, 13, 13, 13, 14, 14, 14, 15,
15, 15, 16, 16, 16, 17, 17, 17,
18, 18, 18, 19, 19, 19, 20, 20,
20, 20, 21, 21, 21, 22, 22, 22,
23, 23, 23, 23, 24, 24, 24, 24,
25, 25, 25, 25, 26, 26, 26, 26,
27, 27, 27, 27, 28, 28, 28, 28,
29, 29, 29, 29, 30, 30, 30, 30,
30, 31, 31, 31, 31, 31, 32, 32,
32, 32, 32, 33, 33, 33, 33, 33,
34, 34, 34, 34, 34, 35, 35, 35,
35, 35, 35, 36, 36, 36, 36, 36,
36, 36, 37, 37, 37, 37, 37, 37,
38, 38, 38, 38, 38, 38, 38, 38,
39, 39, 39, 39, 39, 39, 39, 39,
40, 40, 40, 40, 40, 40, 40, 40,
40, 40, 41, 41, 41, 41, 41, 41,
41, 41, 41, 41, 41, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 44, 44, 44,
44, 44, 44, 44, 44, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 43, 43, 43, 43,
43, 43, 43, 43, 42, 42, 42, 42,
42, 42, 42, 42, 42, 42, 42, 42,
42, 42, 42, 42, 41, 41, 41, 41,
41, 41, 41, 41, 41, 41, 41, 41,
41, 40, 40, 40, 40, 40, 40, 40,
40, 40, 40, 39, 39, 39, 39, 39,
39, 39, 39, 39, 39, 38, 38, 38,
38, 38, 38, 38, 38, 38, 37, 37,
37, 37, 37, 37, 37, 37, 36, 36,
36, 36, 36, 36, 36, 36, 35, 35,
35, 35, 35, 35, 35, 34, 34, 34,
34, 34, 34, 34, 33, 33, 33, 33,
33, 33, 33, 32, 32, 32, 32, 32,
32, 31, 31, 31, 31, 31, 31, 30,
30, 30, 30, 30, 30, 29, 29, 29,
29, 29, 29, 28, 28, 28, 28, 28,
27, 27, 27, 27, 27, 27, 26, 26,
26, 26, 26, 25, 25, 25, 25, 25,
24, 24, 24, 24, 23, 23, 23,
23, 23, 22, 22, 22, 22, 22, 21,
21, 21, 21, 20, 20, 20, 20, 20,
19, 19, 19, 19, 19, 18, 18, 18,
18, 17, 17, 17, 17, 17, 16, 16,
16, 16, 15, 15, 15, 15, 14, 14,
14, 14, 13, 13, 13, 13, 13, 12,
12, 12, 12, 11, 11, 11, 11, 10,
10, 10, 10, 9, 9, 9, 9, 8,
8, 8, 8, 7, 7, 7, 7, 6,
6, 6, 5, 5, 5, 5, 4, 4,
4, 4, 3, 3, 3, 3, 2, 2,
2, 1, 1, 1, 1, 0, 0, 0
Annex II
(Table q) int q [] =
0, 0, 1, 2, 2, 3, 4, 4,
5, 6, 6, 7, 8, 9, 9, 10,
11, 11, 12, 13, 14, 14, 15, 16,
16, 17, 18, 19, 19, 20, 21, 21,
22, 23, 24, 24, 25, 26, 27, 27,
28, 29, 29, 30, 31, 32, 32, 33,
34, 35, 35, 36, 37, 38, 38, 39,
40, 41, 41, 42, 43, 44, 44, 45,
46, 47, 47, 48, 49, 50, 50, 51,
52, 53, 53, 54, 55, 56, 57, 57,
58, 59, 60, 60, 61, 62, 63, 63,
64, 65, 66, 67, 67, 68, 69, 70,
71, 71, 72, 73, 74, 75, 75, 76,
77, 78, 79, 79, 80, 81, 82, 83,
83, 84, 85, 86, 87, 87, 88, 89,
90, 91, 91, 92, 93, 94, 95, 96,
96, 97, 98, 99, 100, 101, 101, 102,
103, 104, 105, 106, 106, 107, 108, 109,
110, 111, 111, 112, 113, 114, 115, 116,
116, 117, 118, 119, 120, 121, 122, 122,
123, 124, 125, 126, 127, 128, 129, 129,
130, 131, 132, 133, 134, 135, 135, 136, 137, 138, 139, 140, 141, 142, 143, 143, 144, 145, 146, 147, 148, 149, 150, 151, 151, 152, 153, 154, 155, 156, 157, 158, 159, 160, 161, 161, 162, 163, 164, 165, 166, 167, 168, 169, 170, 171, 172, 172, 173, 174, 175, 176, 177, 178, 179, 180, 181, 182, 183, 184, 185, 186, 187, 187, 188, 189, 190, 191, 192, 193, 194, 195, 196, 197, 198, 199, 200, 201, 202, 203, 204, 205, 206, 207, 208, 209, 210, 211, 212, 213, 214, 215, 216, 216, 217, 218, 219, 220, 221, 222, 223, 224, 225, 226, 227, 228, 229, 230, 231, 232, 233, 234, 235, 237, 238, 239, 240, 241, 242, 243, 244, 245, 246, 247, 248, 249, 250, 251, 252, 253, 254, 255, 256, 257, 258, 259, 260, 261, 262, 263, 264, 265, 266, 268, 269, 270, 271, 272, 273, 274, 275, 276, 277, 278, 279, 280, 281, 282, 284, 285, 286, 287, 288, 289, 290, 291, 292, 293, 294, 295, 297, 298, 299, 300, 301, 302, 303, 304, 305, 307, 308, 309, 310, 311, 312, 313, 314, 315, 317, 318, 319, 320, 321, 322, 323, 324, 326, 327, 328, 329, 330, 331, 332, 334, 335, 336, 337, 338, 339, 340, 342, 343, 344, 345, 346, 347, 349, 350, 351, 352, 353, 354, 356, 357, 358, 359, 360, 361, 363, 364, 365, 366, 367, 369, 370, 371, 372, 373, 375, 376, 377, 378, 379, 381, 382, 383, 384, 385, 387, 388, 389, 390, 392, 393, 394, 395, 396, 398, 399, 400, 401, 403, 404, 405, 406, 408, 409, 410, 411, 413, 414, 415, 416, 418, 419, 420, 421, 423, 424, 425, 427, 428, 429, 430, 432, 433, 434, 435, 437, 438, 439, 441, 442, 443, 444, 446, 447, 448, 450, 451, 452, 454, 455, 456, 458, 459, 460, 461, 463, 464, 465, 467, 468, 469, 471, 472, 473, 475, 476, 477, 479, 480, 481, 483, 484, 485, 487, 488, 490, 491, 492, 494, 495, 496, 498, 499, 500, 502, 503, 505, 506, 507, 509, 510
Claims (8)
Priority Applications (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9604716A FR2747489B1 (en) | 1996-04-16 | 1996-04-16 | METHOD AND APPARATUS FOR APPROXIMATE CALCULATION IN ATM NETWORKS OF THE CODE CODE INFORMATION WORD PRODUCT IN A FLOATING POINT FORMAT |
Applications Claiming Priority (1)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9604716A FR2747489B1 (en) | 1996-04-16 | 1996-04-16 | METHOD AND APPARATUS FOR APPROXIMATE CALCULATION IN ATM NETWORKS OF THE CODE CODE INFORMATION WORD PRODUCT IN A FLOATING POINT FORMAT |
Publications (2)
Publication Number | Publication Date |
---|---|
FR2747489A1 true FR2747489A1 (en) | 1997-10-17 |
FR2747489B1 FR2747489B1 (en) | 1998-10-30 |
Family
ID=9491227
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
FR9604716A Expired - Fee Related FR2747489B1 (en) | 1996-04-16 | 1996-04-16 | METHOD AND APPARATUS FOR APPROXIMATE CALCULATION IN ATM NETWORKS OF THE CODE CODE INFORMATION WORD PRODUCT IN A FLOATING POINT FORMAT |
Country Status (1)
Country | Link |
---|---|
FR (1) | FR2747489B1 (en) |
Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4614935A (en) * | 1984-12-24 | 1986-09-30 | Rca Corporation | Log and antilog functions for video baseband processing |
US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
-
1996
- 1996-04-16 FR FR9604716A patent/FR2747489B1/en not_active Expired - Fee Related
Patent Citations (2)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US4614935A (en) * | 1984-12-24 | 1986-09-30 | Rca Corporation | Log and antilog functions for video baseband processing |
US4700319A (en) * | 1985-06-06 | 1987-10-13 | The United States Of America As Represented By The Secretary Of The Air Force | Arithmetic pipeline for image processing |
Non-Patent Citations (1)
Title |
---|
H-Y LO ET AL.: "Generation of a Precise Binary Logarithm with Difference Grouping Programmable Logic Array", IEEE TRANSACTIONS ON COMPUTERS, vol. 34, no. 8, August 1985 (1985-08-01), NEW YORK US, pages 681 - 691, XP002019148 * |
Also Published As
Publication number | Publication date |
---|---|
FR2747489B1 (en) | 1998-10-30 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0104963B1 (en) | Method of reducing the data rate of data successively transmitted between a transmitter and a receiver, and a system for carrying out the method | |
EP0321318B1 (en) | Coding and decoding method and device for transmitting pictures via a network with a variable data flow | |
EP0190796A1 (en) | System for signal analysis and synthesis filter banks | |
EP2176861B1 (en) | Hierarchical coding of digital audio signals | |
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 | |
EP1356455B1 (en) | Method and device for processing numerous audio binary streams | |
EP0511095B1 (en) | Coding and decoding method and apparatus for a digital signal | |
EP0906613B1 (en) | Method and device for coding an audio signal by "forward" and "backward" lpc analysis | |
EP0081437B1 (en) | Echo cancelling system | |
EP0506535B1 (en) | Method and system for processing of pre-echos of a frequency transform coded digital audio signal | |
FR2484744A1 (en) | DIGITAL FILTERING CIRCUITS REDUCING THE FLOW OF WORDS OF A DIGITAL SIGNAL OF THE TYPE USED IN DIGITAL-SWITCHING TELEPHONE SYSTEMS, DIGITAL FILTERS USED AND LINE DRIVER EQUIPPED WITH SUCH CIRCUITS | |
WO2002007324A1 (en) | Device for transmitting/receiving digital data capable of variable-rate processing, in particular on a vdsl environment | |
EP2769378A2 (en) | Improved hierarchical coding | |
EP0869476B1 (en) | Comfort noise generation device | |
EP0078581B1 (en) | Differential pcm transmission system with adaptive prediction | |
FR2747489A1 (en) | Floating point computation of word products in ATM network | |
EP0078195B1 (en) | Process and system for the differential coding and decoding of data, with limitation of the propagation of transmission errors | |
EP0574288B1 (en) | Method and apparatus for transmission error concealment of frequency transform coded digital audio signals | |
FR2751105A1 (en) | METHOD AND DEVICE FOR CALCULATING APPROACH OF THE EXPONENTIAL MEAN OF A SUITE OF NUMBERS CODED IN THE FLOATING POINT FORMAT | |
EP2203915B1 (en) | Transmission error dissimulation in a digital signal with complexity distribution | |
EP4109451B1 (en) | Circuit for storing parsimonious data | |
EP0053064A1 (en) | Digital transmission system with adaptive coding of sampled and orthogonally transformed analogue information | |
EP0288353B1 (en) | Method for switching asyschronous digital signals, and device for carrying out this method | |
EP2269141B1 (en) | Coding method and device, associated electronic system and recording medium | |
EP0030194A1 (en) | Predictive stage for a dataflow compression system |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
ST | Notification of lapse |