WO2021165075A1 - System on a chip for the binary tree summation of floating-point numbers - Google Patents

System on a chip for the binary tree summation of floating-point numbers Download PDF

Info

Publication number
WO2021165075A1
WO2021165075A1 PCT/EP2021/052921 EP2021052921W WO2021165075A1 WO 2021165075 A1 WO2021165075 A1 WO 2021165075A1 EP 2021052921 W EP2021052921 W EP 2021052921W WO 2021165075 A1 WO2021165075 A1 WO 2021165075A1
Authority
WO
WIPO (PCT)
Prior art keywords
automaton
floating
stack
sum
input
Prior art date
Application number
PCT/EP2021/052921
Other languages
French (fr)
Inventor
Thierry GOUBIER
Original Assignee
Commissariat A L'energie Atomique Et Aux Energies Alternatives
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 Commissariat A L'energie Atomique Et Aux Energies Alternatives filed Critical Commissariat A L'energie Atomique Et Aux Energies Alternatives
Publication of WO2021165075A1 publication Critical patent/WO2021165075A1/en

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
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F9/00Arrangements for program control, e.g. control units
    • G06F9/06Arrangements for program control, e.g. control units using stored programs, i.e. using an internal store of processing equipment to receive or retain programs
    • G06F9/44Arrangements for executing specific programs
    • G06F9/448Execution paradigms, e.g. implementations of programming paradigms
    • G06F9/4498Finite state machines

Definitions

  • the invention relates to an on-chip binary tree summation system of floating numbers.
  • the invention lies in the field of the production of hardware components for the acceleration of calculation.
  • a floating point number is writing in the form of a sign, a matisse and a base with an exponent.
  • -1.3254 -13254 x10 -4 (the sign is negative, the matisse is 13254, the base is 10, but often the base is 2 in computer science, and the exponent is -4).
  • Documents Doc1 and Doc2 describe an iterative tree-sum algorithm with an automaton and a stack. This algorithm requires a priori knowledge of the number of elements in the set, which constitutes a problem when this size is not known at the start of the sum.
  • An object of the invention is to alleviate the previously mentioned problems, and in particular to make it possible to sum a quantity of floating numbers not known a priori.
  • an on-chip binary tree summation system of floating numbers comprising: a battery-powered automaton (ie a state stack), configured to perform operations of shift, reduction, and acceptance; an input receiving in line floating numbers to be added and information representative of the end of the summation of the floating numbers, processed by the automaton; a PLC programming memory comprising a PLC transition table; a memory comprising a stack of states of the automaton; a memory comprising a stack of results of the operations performed by the automaton; a floating point adder configured to add two floating point values and output their floating point sum; and a disambiguator configured to implement a disambiguation criterion for performing the shift operation when it is false and for performing the reduction operation when it is true.
  • a battery-powered automaton ie a state stack
  • a PLC programming memory comprising a PLC transition table
  • a memory comprising
  • Such a system makes it possible to be able to add a quantity of floating-point numbers along a binary tree without knowing this quantity a priori, and by performing the minimum number of additions.
  • the disambiguation criterion is true if the depth of the stack of results is greater than the Hamming weight of the number of floating point values received at the input and already processed by the automaton. The use of such a disambiguation criterion makes it possible to make this sum deterministic and to obtain the evaluation of the sum in binary tree as sought.
  • the system comprises at least one additional adder.
  • the transition table is of the LR (1) type: a table of an automaton carrying out a recognition of the series of floating values, read from left to right and with a forecasting element. ("lookahead" in English).
  • Such a transition table has state-of-the-art tools and algorithms for its generation, and, in this embodiment, is very small.
  • the automaton is configured to complete its sum when it has to process information representative of the end of the summation of the floating numbers.
  • the system comprises a control module for constraining the disambiguator to constrain the value of the criterion to true during a summation.
  • the system then performs a naive sum (iterative), and thus has reproduction properties down to the bit of a code using naive sums.
  • naive sum iterative
  • the original system implements the tree-sum, and this improvement implements the na ⁇ ve sum, with the same hardware system.
  • the system comprises a tree vector adder arranged between the input and the automaton making it possible to perform the tree sum of the floating numbers of a vector of successive floating numbers received at the input, and delivering their sum in tree to the automaton.
  • the system can be accelerated by a factor related to the size of this vector adder, and also decrease the size of the batteries used by the system.
  • FIG.1 schematically illustrates a summation system on chip, according to one aspect of the invention
  • FIG.2 schematically illustrates a transition table of the automaton of the system of Figure 1, according to one aspect of the invention
  • FIG.3 schematically illustrates the operation of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.4 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.5 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.6 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.7 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.8 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.9 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.10 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.l 1 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.12 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.13 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.14 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.15 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.16 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.17 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention
  • FIG.18 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention.
  • FIG.19 schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention.
  • an on-chip binary tree summation system of floating numbers comprising: a stacked automaton 1 configured to perform shifting, reduction, and shifting operations. acceptance; an input 2 receiving in line floating numbers to be added and a piece of information eof representative of the end of the summation of the floating numbers, processed by the automaton 1; a PLC 1 programming memory 3 comprising a transition table 3a of PLC 1; a memory 4 comprising a stack of states 4a of the automaton 1; a memory 5 comprising a stack of results 5a of the operations performed by the automaton 1; a floating point adder 6 configured to add two floating point values and output their floating point sum; and a disambiguator 7 configured to implement a disambiguation criterion making it possible to perform the shift operation when it is false and to perform the reduction operation when it is true.
  • the present invention is based on the following principle relating to a tree sum and a flow of digital values in the form of floating numbers.
  • a transition table for a non-deterministic stack automaton and an ambiguity resolution criterion makes it possible to construct a sum in a binary tree as the values are received, and this without knowing the size of the data set to be summed before receiving the last item.
  • a node of the tree represents either an addition and then has two children, or a numeric value and has no children. This is the definition of a strict or locally complete binary tree.
  • a tree sum corresponds to a binary tree of additions of minimum depth. If the number of values in the sum is a power of 2, then this tree is a perfect binary tree. If the number of values is not a power of 2, we consider the tree of minimum depth for which the following property is respected: each left child is a perfect binary tree. The tree has n-1 nodes with 2 children, and therefore corresponds to n-1 additions to obtain the final result.
  • Input 2 receives the values one by one or as a whole, and we can remove the oldest value received (and thus shift all the values received), according to a principle of first arrival, first output (FIFO for " First In First Out "in English).
  • An eof data input may indicate that the transmission is complete and no more value will be added to the input. This can be achieved by a signal which, if activated, means that the transmission of values continues. If it is disabled, then the transmission is terminated and no more value will be added to the entry.
  • the transition table 3a of the controller 1 allows access in two dimensions, and is large enough for 3 rows and 2 columns, numbered from 1, with sufficient elements to contain 5 different values per row / crossing column.
  • the stack of states 4a can contain 3 different values per element of the stack 4a, allowing the last element to be read, its removal, and the addition of a new element.
  • the stack of results 5a each element of which can contain a floating point value.
  • the operations of removing the last two elements, and adding an element are supported, as well as access to the size of the stack.
  • the floating point adder 6 conforms to the IEE754 standard, taking two floating point values and returning the result of the addition of these two values.
  • the battery-operated automaton 1 said shift / reduction ("shift / reduce” in English), capable of three operations: shift ("shift” in English), reduction ("reduce” in English) and acceptance ("accept” in English).
  • the controller 1 can perform three different operations which are as follows:
  • Offset S PLC 1 removes a value from input 2 and adds this value to results stack 5a. Controller 1 reads the state value from state stack 4a, adds 1 to it (with a maximum of 3), and adds this new state value to state stack 4a.
  • Reduction R PLC 1 removes two states from state stack 4a, reads the value at the top of state stack 4a after the removal, adds 1 (with a maximum of 3) and places this new value. on the state stack 4a. Controller 1 removes two values from result stack 5a, places those two values as input to adder 6, activates adder 6 to add, and places the result on results stack 5a.
  • PLC 1 removes a state from the state stack 4a and a value from the results stack 5a. It delivers this value as an output.
  • FIG. 2 schematically represents the transition table 3a of the automaton 1 which has the organization of a table of an automaton "shift / reduction” of the literature (Doc5,
  • the automaton 1 respects the given structure Lig 4.36, page 230 of Doc5 in an optimized form taking into account the small number of operations to be carried out.
  • the stack of states 4a is initialized by pushing the value 1 on the empty stack of states 4a.
  • the stack of results 5a is initialized as an empty stack.
  • the disambiguation test of the disambiguator 7 is calculated as follows: either i the number of floating point values processed by the automaton 1 (ie the last F absorbed is the i th element of the sequence); let p be the number of bits at 1 in the binary representation of i (ie the Hamming weight of i); the disambiguation test of disambiguator 7 is true if the depth of result stack 5a is greater than p, otherwise the disambiguation test of disambiguator 7 is false.
  • FIG. 4 to 18 detail the step by step operation of Figure 3.
  • FIG. 4 represents the initial state of the system.
  • FIG. 5 represents the reception of the floating number F 1 on the input FIFO 1.
  • FIG. 6 represents the taking into account of F 1 , with a shift action, and a reception of a second floating number F 2 on the input FIFO 1.
  • FIG. 7 represents the result of the action of FIG. 6, and the taking into account of the second floating number F 2 , with a shift action, and the reception of a third floating number F 3 and of a fourth floating number F 4 on the input FIFO 1.
  • FIG. 8 represents the result of the action of FIG. 7, and the taking into account of the third floating number F 3 , with an ambiguous shift or reduction action, resolved in reduction because the disambiguation criterion of the disambiguator 7 is right.
  • FIG. 8 represents the reception of a fifth floating number F 5 .
  • FIG. 10 represents the result of the action of FIG. 9, and the taking into account of a fourth floating number F 4 , with an ambiguous action of shift or reduction, resolved in shift because the criterion of disambiguation of the disambiguator 7 is wrong.
  • FIG. 11 represents the result of the action of FIG. 10, and the taking into account of the fifth floating number F 5 , with an ambiguous shift or reduction action, resolved in reduction because the disambiguation criterion of the disambiguator 7 is right.
  • the transfer of the values F i is finished.
  • FIG. 14 represents the result of the action of FIG. 13, and the end of transmission of the floating numbers F 1 , F 2 , F 3 , F 4 and F 5 , taking into account the information eof end of data transmission to be summed.
  • FIFO 1 is empty. The information eof is taken into account by a reduction action.
  • FIG. 16 represents the action of accepting, in which N 4 is delivered at the output of the automaton 1.
  • the system has returned to its initial state and can restart a new sum.
  • This invention builds, as the floating-point values arrive, iteratively, without knowing their number in advance, the same result as the pseudo-code in Appendix 2.
  • N is defined as a sum node of its two children or a leaf F (containing a floating point value).
  • the disambiguation criterion ensures that we build only the tree of which each left child is a perfect balanced binary tree, and this in a deterministic manner.
  • FIG. 17 represents an embodiment of the invention, making it possible to implement the FADDA and FADDV instructions of the ARMv8 SVE instruction set, as described in the document "ARM Architecture Reference Manual Supplement, The Scalable Vector Extension (SVE), for ARMv8-A ", Copyright ⁇ 2017-2018 ARM Limited or its affiliate.
  • SVE Scalable Vector Extension
  • FADDV is an instruction which returns the tree sum of the values of a vector, this vector containing between 2 and 64 values.
  • the system of the invention without modification, implements the FADDV instruction.
  • FADDA is an instruction which returns the naive (iterative) sum over the values of a vector, this vector containing between 2 and 64 values.
  • the modification of the system consists in adding a control module 8 and a multiplexer 11 between the desambiguizer 7 and the PLC 1.
  • the multiplexer 11 has an input from the disambiguator 7 and an input permanently set to "true”. If the corresponding PLC input is still "true", the system performs an iterative sum.
  • This same extended system is able to implement the fredosum and fredsum instructions of the vector extension of the RISC-V instruction set, following the same process: if the module 8 controls the multiplexer 11 so that it systematically choose his input "true”, the system performs the instruction fredosum; otherwise the system performs the fredsum instruction which is a tree sum.
  • a modification also makes it possible to implement the RISC-V instructions which widen the result (fwredosum and fwredsum), considering that entry 2 is the single width (eg: float on 32bits), and the stack 5a and l adder 6 are double precision (eg: double on 64bits).
  • FIG. 18 represents an embodiment of the invention aimed at accelerating the processing operations by performing several sums in parallel, while keeping the same characteristics.
  • a vector adder of size 2 k in tree 9 is added to the system, placed between the input 2 and the automaton 1, and takes as input a vector V (of length 2 k ) and produces at output a value F i , equal to the tree sum of the values contained in V.
  • a multiplexer 10 chooses either the value F i at the output of the adder 9, or the value F i at the output of the input 2, and transmits it to the automaton 1. This multiplexer 10 systematically chooses the output of the adder 9 if the latter has one, if not, it chooses the output F i of the input 2.
  • the system has the following behavior added in entry 2: as long as the data transmission is not completed, entry 2 waits for 2 k values.
  • the input 2 contains 2 k values or more, it extracts the 2 k oldest values in the form of the vector V, sends V to the vector adder in tree 9, and presents the result Fi to the multiplexer 10 .
  • the input FIFO 2 does not have 2 k values and the data transmission is finished, then it behaves as in the version without this variant: it presents the oldest value Fi to the multiplexer 10.
  • input 2 If input 2 is empty and transmission is complete, then input 2 presents the eof information to multiplexer 10.
  • FIG. 19 the embodiment of FIG. 18 can be combined with the embodiment of FIG. 17 with the control module 8 making it possible to constrain the value of the criterion to true during a summation.
  • control module 8 inhibits the vector adder. in shaft 9 (the control module 8 is configured to indicate to input 2 that vector adder 9 must be inhibited), and forces multiplexer 11 to systematically choose its "true" input.
  • the control module 8 activates the vector adder in tree 9 (the control module 8 is configured to indicate at the input 2 that the vector adder 9 must be activated), and forces the multiplexer 11 to systematically choose the input delivered by the disambiguator 7.
  • the system of figure 19 is capable of making the two different sums of figure 17 depending on the status of the control module 8.

Landscapes

  • Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Software Systems (AREA)
  • Mathematical Analysis (AREA)
  • General Engineering & Computer Science (AREA)
  • Pure & Applied Mathematics (AREA)
  • Computational Mathematics (AREA)
  • Computing Systems (AREA)
  • Mathematical Optimization (AREA)
  • Devices For Executing Special Programs (AREA)
  • Complex Calculations (AREA)

Abstract

System on a chip for the binary tree summation of floating-point numbers, comprising: - a pushdown automaton (1) configured to perform offsetting, reduction and acceptance operations; - an input (2) receiving a queue of floating-point numbers to be added and an item of information (eof) representative of the end of the summation of the floating-point numbers, which are processed by the automaton (1); - a programming memory (3) for the automaton (1), comprising a transition table (3a) for the automaton (1); - a memory (4) comprising a stack of states (4a) for the automaton (1); - a memory (5) comprising a stack of results (5a) of the operations performed by the automaton (1); - a floating-point adder (6) configured to add two floating-point values and to deliver, as output, their sum as a floating-point number; and – a disambiguator (7) configured to implement a disambiguation criterion making it possible to perform the offsetting operation when it is false and the reduction operation when it is true.

Description

DESCRIPTION DESCRIPTION
Titre de l’invention : Système sur puce de sommation en arbre binaire de nombres flottants Title of the invention: Binary tree summation system on a chip of floating numbers
[0001] L’invention porte sur un système sur puce de sommation en arbre binaire de nombres flottants. The invention relates to an on-chip binary tree summation system of floating numbers.
[0002] L'invention se situe dans le domaine de la réalisation de composants matériels pour l’accélération du calcul. [0002] The invention lies in the field of the production of hardware components for the acceleration of calculation.
[0003] Toute opération en virgule flottante dans un ordinateur comporte un risque d’erreur ou de perte de précision, si les opérateurs arithmétiques standards (IEE754) sont utilisés. Il en est ainsi d'une somme naïve ou itérative, effectuée par accumulation et itération sur un ensemble de nombres. Any floating point operation in a computer carries a risk of error or loss of precision, if standard arithmetic operators (IEE754) are used. This is the case with a naive or iterative sum, performed by accumulation and iteration over a set of numbers.
[0004] L'écriture d'un nombre en virgule flottante est une écriture sous la forme d'un signe, d'une matisse et d'une base avec un exposant. Par exemple, -1,3254=-13254 x10-4 (le signe est négatif, la matisse est 13254, la base est 10, mais souvent la base est 2 en informatique, et l'exposant est -4). [0004] Writing a floating point number is writing in the form of a sign, a matisse and a base with an exponent. For example, -1.3254 = -13254 x10 -4 (the sign is negative, the matisse is 13254, the base is 10, but often the base is 2 in computer science, and the exponent is -4).
[0005] Des algorithmes diminuant (ou supprimant) Terreur existent, mais requièrent plus d’opérations ou tout du moins des opérations plus lentes. Le tri des données avant la somme (sommer du plus petit au plus grand) permet de limiter Terreur, au prix d’avoir à effectuer ce tri. Un compromis proposé par la littérature peut être une somme en arbre binaire, qui donne une erreur réduite quelle que soit la distribution des valeurs dans l’ensemble, comme cela est illustré dans le document Doc1 : "Accuracy and Stability of Numerical Algorithms (2 ed)", SIAM, de Higham, Nicholas (2002). [0005] Algorithms reducing (or eliminating) Terror exist, but require more operations or at least slower operations. Sorting the data before the sum (adding from the smallest to the largest) allows you to limit Terror, at the cost of having to perform this sort. A compromise proposed by the literature can be a binary tree sum, which gives a reduced error regardless of the distribution of values in the set, as illustrated in Doc1: "Accuracy and Stability of Numerical Algorithms (2 ed ) ", SIAM, de Higham, Nicholas (2002).
[0006] Mais l’état de l’art considère que cette somme en arbre binaire suppose la connaissance a priori du nombre de valeurs à additionner, comme dans le document Doc1, ainsi que dans le document Doc2 : "Sums : A summation algorithm balancing accuracy with throughput.", de Bamaby Dalton, Amy Wang, Bob Blainey; SIMDizing Pairwise WPMVP '14 : Proceedings of the 2014 Workshop on Programming models for SIMD/Vector Processing February 2014 Pages 65-70 htps://doi.org/10.1145/2568058.2568070 ; et dans le document Doc3 : "Implémentation of a low round-off summation method" de Caprani, Ole; BIT Numerical Mathematics, Sept 1971. [0006] But the state of the art considers that this sum in a binary tree assumes a priori knowledge of the number of values to be added, as in document Doc1, as well as in document Doc2: "Sums: A summation algorithm balancing accuracy with throughput. ", by Bamaby Dalton, Amy Wang, Bob Blainey; SIMDizing Pairwise WPMVP '14: Proceedings of the 2014 Workshop on Programming models for SIMD / Vector Processing February 2014 Pages 65-70 htps: //doi.org/10.1145/2568058.2568070; and in document Doc3: "Implementation of a low round-off summation method" by Caprani, Ole; BIT Numerical Mathematics, Sept 1971.
[0007] Les documents Doc1 et Doc2 décrivent un algorithme itératif de somme en arbre avec un automate et une pile. [0008] Cet algorithme nécessite une connaissance a priori du nombre d’éléments dans l’ensemble, ce qui constitue un problème lorsque cette taille n’est pas connue au début de la somme. [0007] Documents Doc1 and Doc2 describe an iterative tree-sum algorithm with an automaton and a stack. This algorithm requires a priori knowledge of the number of elements in the set, which constitutes a problem when this size is not known at the start of the sum.
[0009] Il est connu des techniques du domaine des langages algébriques, utilisées principalement pour le problème de l’appartenance d’une phrase à un langage, et la construction d’une structure abstraite sur une phrase, par exemple dans le document Doc4 : "Parsing Techniques, A Practical Guide", de Dick Grune et Ceriel J. H. Jacobs, 2nd Edition, 2007, Springer, et dans le document Doc5 : "Compilateurs: Principes, Techniques et Outils", de A. Aho, M. Lam, R. Sethi et J. Ullman, 2nd édition, 2007, Pearson. De telles approches ne sont pas utilisées habituellement pour le calcul, cependant elles constituent des éléments théoriques pour l’analyse de calculs. Techniques in the field of algebraic languages are known, used mainly for the problem of the belonging of a sentence to a language, and the construction of an abstract structure on a sentence, for example in document Doc4: "Parsing Techniques, A Practical Guide", by Dick Grune and Ceriel JH Jacobs, 2nd Edition, 2007, Springer, and in document Doc5: "Compilers: Principles, Techniques and Tools", by A. Aho, M. Lam, R Sethi and J. Ullman, 2nd Edition, 2007, Pearson. Such approaches are not usually used for calculation, however they constitute theoretical elements for the analysis of calculations.
[0010] Un but de l'invention est de pallier les problèmes précédemment cités, et notamment de permettre de sommer une quantité de nombres flottants non connue a priori. An object of the invention is to alleviate the previously mentioned problems, and in particular to make it possible to sum a quantity of floating numbers not known a priori.
[0011] Aussi, il est proposé, selon un aspect de l'invention, un système sur puce de sommation en arbre binaire de nombres flottants comprenant : un automate à pile (i.e. à pile d'états), configuré pour réaliser des opérations de décalage, de réduction, et d'acceptation ; une entrée recevant en file des nombres flottants à additionner et une information représentative de la fin de la sommation des nombres flottants, traités par l'automate ; une mémoire de programmation de l'automate comprenant une table de transition de l'automate ; une mémoire comprenant une pile d'états de l'automate ; une mémoire comprenant une pile de résultats des opérations effectuées par l'automate ; un additionneur en virgule flottante configuré pour additionner deux valeurs en virgule flottante et délivrer en sortie leur somme en virgule flottante ; et un désambigüiseur configuré pour mettre en œuvre un critère de désambiguïsation permettant de réaliser l'opération de décalage lorsqu'il est faux et de réaliser l'opération de réduction lorsqu'il est vrai. Also, it is proposed, according to one aspect of the invention, an on-chip binary tree summation system of floating numbers comprising: a battery-powered automaton (ie a state stack), configured to perform operations of shift, reduction, and acceptance; an input receiving in line floating numbers to be added and information representative of the end of the summation of the floating numbers, processed by the automaton; a PLC programming memory comprising a PLC transition table; a memory comprising a stack of states of the automaton; a memory comprising a stack of results of the operations performed by the automaton; a floating point adder configured to add two floating point values and output their floating point sum; and a disambiguator configured to implement a disambiguation criterion for performing the shift operation when it is false and for performing the reduction operation when it is true.
[0012] Un tel système permet de pouvoir additionner une quantité de nombres flottants suivant un arbre binaire sans connaître cette quantité a priori, et en effectuant le nombre minimum d’additions. [0012] Such a system makes it possible to be able to add a quantity of floating-point numbers along a binary tree without knowing this quantity a priori, and by performing the minimum number of additions.
[0013] Selon un mode de réalisation, le critère de désambiguïsation est vrai si la profondeur de la pile de résultats est supérieure au poids de Hamming du nombre de valeurs flottantes reçues en entrée et déjà traitées par l'automate. [0014] L'utilisation d'un tel critère de désambiguïsation permet de rendre déterministe cette somme et d’obtenir l’évaluation de la somme en arbre binaire telle que recherchée. [0013] According to one embodiment, the disambiguation criterion is true if the depth of the stack of results is greater than the Hamming weight of the number of floating point values received at the input and already processed by the automaton. The use of such a disambiguation criterion makes it possible to make this sum deterministic and to obtain the evaluation of the sum in binary tree as sought.
[0015] Dans un mode de réalisation, le système comprend au moins un additionneur supplémentaire. In one embodiment, the system comprises at least one additional adder.
[0016] L'utilisation de plusieurs additionneurs permet d’accélérer le système en effectuant plusieurs additions en même temps. [0016] The use of several adders makes it possible to speed up the system by performing several additions at the same time.
[0017] Selon un mode de réalisation, la table de transition est de type LR(1) : une table d’un automate effectuant une reconnaissance de la suite de valeurs flottante, lue de gauche à droite et avec un élément de pré- vision ("lookahead" en langue anglaise). [0017] According to one embodiment, the transition table is of the LR (1) type: a table of an automaton carrying out a recognition of the series of floating values, read from left to right and with a forecasting element. ("lookahead" in English).
[0018] Une telle table de transition dispose dans l’état de l’art d’outils et d’algorithmes pour sa génération, et, dans cette réalisation, est très petite. [0018] Such a transition table has state-of-the-art tools and algorithms for its generation, and, in this embodiment, is very small.
[0019] Dans un mode de réalisation, l'automate est configuré pour terminer sa somme lorsqu'il doit traiter une information représentative de la fin de la sommation des nombres flottants. In one embodiment, the automaton is configured to complete its sum when it has to process information representative of the end of the summation of the floating numbers.
[0020] Ainsi le système sait quand arrêter la sommation sans savoir a priori la connaissance du nombre de flottants à additionner. [0020] Thus the system knows when to stop the summation without knowing a priori the knowledge of the number of floats to be added.
[0021] Selon un mode de réalisation, le système comprend un module de commande pour contraindre le désambigüiseur pour contraindre la valeur du critère à vrai durant une sommation. According to one embodiment, the system comprises a control module for constraining the disambiguator to constrain the value of the criterion to true during a summation.
[0022] Ainsi, le système effectue alors une somme naïve (itérative), et possède ainsi des propriétés de reproduction au bit près d’un code utilisant des sommes naïves. Pour les processeurs offrant, dans leur jeu d’instruction, deux types de sommes (naïve et en arbre) sur des vecteurs, le système originel implémente la somme en arbre, et cette amélioration implémente la somme naïve, avec le même système matériel. [0022] Thus, the system then performs a naive sum (iterative), and thus has reproduction properties down to the bit of a code using naive sums. For processors offering two types of sums (naive and tree-based) over vectors in their instruction set, the original system implements the tree-sum, and this improvement implements the naïve sum, with the same hardware system.
[0023] Dans un mode de réalisation, le système comprend un additionneur vectoriel en arbre disposé entre l'entrée et l'automate permettant d'effectuer la somme en arbre des nombres flottants d'un vecteur de nombres flottants successifs reçue en entrée, et délivrant leur somme en arbre à l'automate. In one embodiment, the system comprises a tree vector adder arranged between the input and the automaton making it possible to perform the tree sum of the floating numbers of a vector of successive floating numbers received at the input, and delivering their sum in tree to the automaton.
[0024] Ainsi, le système peut être accéléré d’un facteur lié à la taille de cet additionneur vectoriel, et aussi diminuer la taille des piles utilisées par le système. [0024] Thus, the system can be accelerated by a factor related to the size of this vector adder, and also decrease the size of the batteries used by the system.
[0025] L'invention sera mieux comprise à l'étude de quelques modes de réalisation décrits à titre d'exemples nullement limitatifs et illustrés par le dessin annexé sur lequel : The invention will be better understood by studying a few embodiments described by way of non-limiting examples and illustrated by the appended drawing in which:
[0026] [Fig.1] illustre schématiquement un système sur puce de sommation, selon un aspect de l'invention ; [0027] [Fig.2] illustre schématiquement une table de transition de l'automate du système de la figure 1, selon un aspect de l'invention ; [0026] [Fig.1] schematically illustrates a summation system on chip, according to one aspect of the invention; [0027] [Fig.2] schematically illustrates a transition table of the automaton of the system of Figure 1, according to one aspect of the invention;
[0028] [Fig.3] illustre schématiquement le fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0028] [Fig.3] schematically illustrates the operation of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0029] [Fig.4] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0029] [Fig.4] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0030] [Fig.5] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0030] [Fig.5] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0031] [Fig.6] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0031] [Fig.6] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0032] [Fig.7] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0032] [Fig.7] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0033] [Fig.8] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0033] [Fig.8] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0034] [Fig.9] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0034] [Fig.9] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0035] [Fig.10] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0035] [Fig.10] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0036] [Fig.l 1] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0036] [Fig.l 1] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0037] [Fig.12] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0037] [Fig.12] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0038] [Fig.13] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0038] [Fig.13] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0039] [Fig.14] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0039] [Fig.14] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0040] [Fig.15] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0040] [Fig.15] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0041] [Fig.16] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0041] [Fig.16] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0042] [Fig.17] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; [0042] [Fig.17] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention;
[0043] [Fig.18] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention ; et [0043] [Fig.18] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention; and
[0044] [Fig.19] illustre schématiquement une étape de fonctionnement de l'automate du système des figures 1 et 2, selon un aspect de l'invention. [0044] [Fig.19] schematically illustrates an operating step of the automaton of the system of Figures 1 and 2, according to one aspect of the invention.
[0045] Sur l'ensemble des figures, les éléments ayant des références identiques sont similaires. [0046] Sur la figure 1 est illustré, selon un aspect de l'invention un système sur puce de sommation en arbre binaire de nombres flottants comprenant : un automate 1 à pile configuré pour réaliser des opérations de décalage, de réduction, et d'acceptation ; une entrée 2 recevant en file des nombres flottants à additionner et une information eof représentative de la fin de la sommation des nombres flottants, traités par l'automate 1 ; une mémoire 3 de programmation de l'automate 1 comprenant une table de transition 3 a de l'automate 1 ; une mémoire 4 comprenant une pile d'états 4a de l'automate 1 ; une mémoire 5 comprenant une pile de résultats 5a des opérations effectuées par l'automate 1 ; un additionneur 6 en virgule flottante configuré pour additionner deux valeurs en virgule flottante et délivrer en sortie leur somme en virgule flottante ; et un désambigüiseur 7 configuré pour mettre en œuvre un critère de désambiguïsation permettant de réaliser l'opération de décalage lorsqu'il est faux et de réaliser l'opération de réduction lorsqu'il est vrai. In all of the figures, the elements having identical references are similar. In Figure 1 is illustrated, according to one aspect of the invention an on-chip binary tree summation system of floating numbers comprising: a stacked automaton 1 configured to perform shifting, reduction, and shifting operations. acceptance; an input 2 receiving in line floating numbers to be added and a piece of information eof representative of the end of the summation of the floating numbers, processed by the automaton 1; a PLC 1 programming memory 3 comprising a transition table 3a of PLC 1; a memory 4 comprising a stack of states 4a of the automaton 1; a memory 5 comprising a stack of results 5a of the operations performed by the automaton 1; a floating point adder 6 configured to add two floating point values and output their floating point sum; and a disambiguator 7 configured to implement a disambiguation criterion making it possible to perform the shift operation when it is false and to perform the reduction operation when it is true.
[0047] La présente invention repose sur le principe suivant concernant une somme en arbre et un flux de valeurs numériques sous forme de nombres flottants. The present invention is based on the following principle relating to a tree sum and a flow of digital values in the form of floating numbers.
[0048] Une table de transition pour un automate à pile non-déterministe et un critère de levée de l’ambiguïté permet de construire une somme en arbre binaire au fur et à mesure que les valeurs sont reçues, et ceci sans connaître la taille de l’ensemble de données à sommer avant de recevoir le dernier élément. A transition table for a non-deterministic stack automaton and an ambiguity resolution criterion makes it possible to construct a sum in a binary tree as the values are received, and this without knowing the size of the data set to be summed before receiving the last item.
[0049] La définition d’un arbre d’additions binaires est la suivante: un nœud de l’arbre représente soit une addition et possède alors deux fils, soit une valeur numérique et n'a aucun fils. Il s’agit de la définition d’un arbre binaire strict ou localement complet. The definition of a binary addition tree is as follows: a node of the tree represents either an addition and then has two children, or a numeric value and has no children. This is the definition of a strict or locally complete binary tree.
[0050] Une somme en arbre correspond à un arbre binaire d’additions de profondeur minimale. Si le nombre de valeurs dans la somme est une puissance de 2, alors cet arbre est un arbre binaire parfait. Si le nombre de valeurs n’est pas une puissance de 2, nous considérons l’arbre de profondeur minimale pour lequel la propriété suivante est respectée : chaque fils gauche est un arbre binaire parfait. L’arbre possède n-1 nœuds avec 2 fils, et donc correspond à n-1 additions pour obtenir le résultat final. A tree sum corresponds to a binary tree of additions of minimum depth. If the number of values in the sum is a power of 2, then this tree is a perfect binary tree. If the number of values is not a power of 2, we consider the tree of minimum depth for which the following property is respected: each left child is a perfect binary tree. The tree has n-1 nodes with 2 children, and therefore corresponds to n-1 additions to obtain the final result.
[0051] L'entrée 2 reçoit les valeurs une à une ou en bloc, et on peut retirer la valeur la plus ancienne reçue (et décaler ainsi toutes les valeurs reçues), suivant un principe de première arrivée, première sortie (FIFO pour "First In First Out" en langue anglaise). Une donnée eof en entrée peut indiquer que la transmission est terminée et plus aucune valeur ne sera ajoutée à l’entrée. Ceci peut être réalisé par un signal qui, s’il est activé, signifie que la transmission de valeurs se poursuit. S’il est désactivé, alors la transmission est terminée et plus aucune valeur ne sera ajoutée à l’entrée. Input 2 receives the values one by one or as a whole, and we can remove the oldest value received (and thus shift all the values received), according to a principle of first arrival, first output (FIFO for " First In First Out "in English). An eof data input may indicate that the transmission is complete and no more value will be added to the input. This can be achieved by a signal which, if activated, means that the transmission of values continues. If it is disabled, then the transmission is terminated and no more value will be added to the entry.
[0052] La table de transition 3a de l'automate 1 permet un accès en deux dimensions, et est suffisamment grande pour 3 lignes et 2 colonnes, numérotées à partir de 1, avec des éléments suffisants pour contenir 5 valeurs différentes par croisement ligne/colonne. The transition table 3a of the controller 1 allows access in two dimensions, and is large enough for 3 rows and 2 columns, numbered from 1, with sufficient elements to contain 5 different values per row / crossing column.
[0053] La pile d’états 4a, de taille maximale prédéterminée, peut contenir 3 valeurs différentes par élément de la pile 4a, permettant la lecture du dernier élément, son retrait, et l’ajout d’un nouvel élément. The stack of states 4a, of predetermined maximum size, can contain 3 different values per element of the stack 4a, allowing the last element to be read, its removal, and the addition of a new element.
[0054] La pile de résultats 5a, dont chaque élément peut contenir une valeur en virgule flottante. De même que la pile d'états 4a, les opérations de retrait des deux derniers éléments, et d’ajout d’un élément sont supportées, ainsi que l’accès à la taille de la pile. The stack of results 5a, each element of which can contain a floating point value. As with the state stack 4a, the operations of removing the last two elements, and adding an element are supported, as well as access to the size of the stack.
[0055] L'additionneur 6 en virgule flottante est conforme à la norme IEE754, prenant deux valeurs en virgule flottante et retournant le résultat de l’addition de ces deux valeurs. [0055] The floating point adder 6 conforms to the IEE754 standard, taking two floating point values and returning the result of the addition of these two values.
[0056] L'automate 1 à pile dit décalage/réduction ("shift/reduce" en langue anglaise), capable de trois opérations : décalage ("shift" en langue anglaise), réduction ("reduce" en langue anglaise) et acceptation ("accept" en langue anglaise). The battery-operated automaton 1 said shift / reduction ("shift / reduce" in English), capable of three operations: shift ("shift" in English), reduction ("reduce" in English) and acceptance ("accept" in English).
[0057] L’automate 1 peut effectuer trois opérations différentes qui sont les suivantes : The controller 1 can perform three different operations which are as follows:
• Décalage S : l’automate 1 retire une valeur de l'entrée 2 et ajoute cette valeur sur la pile de résultats 5a. L’automate 1 lit la valeur d’état sur la pile d'états 4a, y ajoute 1 (avec un maximum de 3) et ajoute cette nouvelle valeur d’état sur la pile d'états 4a. • Offset S: PLC 1 removes a value from input 2 and adds this value to results stack 5a. Controller 1 reads the state value from state stack 4a, adds 1 to it (with a maximum of 3), and adds this new state value to state stack 4a.
• Réduction R : l’automate 1 retire deux états de la pile d'états 4a, lit la valeur au sommet de la pile d'états 4a après le retrait, y ajoute 1 (avec un maximum de 3) et place cette nouvelle valeur sur la pile d'états 4a. L’automate 1 retire deux valeurs de la pile de résultats 5a, place ces deux valeurs en entrée de l’additionneur 6, active l'additionneur 6 pour faire l’addition, et place le résultat sur la pile de résultats 5a. • Reduction R: PLC 1 removes two states from state stack 4a, reads the value at the top of state stack 4a after the removal, adds 1 (with a maximum of 3) and places this new value. on the state stack 4a. Controller 1 removes two values from result stack 5a, places those two values as input to adder 6, activates adder 6 to add, and places the result on results stack 5a.
• Acceptation A : l’automate 1 retire un état de la pile d'états 4a et une valeur de la pile de résultats 5a. Il délivre cette valeur en sortie. • Acceptance A: PLC 1 removes a state from the state stack 4a and a value from the results stack 5a. It delivers this value as an output.
[0058] La figure 2 représente schématiquement la table de transition 3a de l’automate 1 qui possède l’organisation d’une table d’un automate "décalage/réduction" de la littérature (Doc5,FIG. 2 schematically represents the transition table 3a of the automaton 1 which has the organization of a table of an automaton "shift / reduction" of the literature (Doc5,
Lig 4.37 page 231), avec pour colonnes une action valeur flottante (Fi), une action fin de l’entrée (eof), et pas de colonne Aller_à· Lig 4.37 page 231), with for columns a floating value action (Fi), an end of entry action (eof), and no Go_to column
[0059] L’automate 1 respecte la structure donnée Lig 4.36, page 230 de Doc5 sous une forme optimisée compte tenu du petit nombre d’opérations à effectuer. [0060] La pile d'états 4a est initialisée en poussant la valeur 1 sur la pile d'états 4a vide. The automaton 1 respects the given structure Lig 4.36, page 230 of Doc5 in an optimized form taking into account the small number of operations to be carried out. The stack of states 4a is initialized by pushing the value 1 on the empty stack of states 4a.
[0061] La pile de résultats 5a est initialisée comme une pile vide. The stack of results 5a is initialized as an empty stack.
[0062] Soit a le premier élément reçu (soit F initialement, soit eof lorsque la transmission est terminée) Either a the first element received (either F initially, or eof when the transmission is complete)
Lorsque le transfert est terminé et que toutes les données ont été traitées (la FIFO d'entrée 2 est vide), alors a est égal à eof. Sinon a est égal à F et a pour valeur associée le plus ancien élément retiré de la FIFO d'entrée 2. When the transfer is complete and all data has been processed (input FIFO 2 is empty), then a is equal to eof. Otherwise a is equal to F and has as associated value the oldest element removed from input FIFO 2.
[0063] Cela est illustré dans l'algorithme de l'annexe 1. This is illustrated in the algorithm of appendix 1.
[0064] Le test de désambiguïsation du désambigüiseur 7 est calculé comme suit : soit i le nombre de valeurs flottantes traitées par l’automate 1 (c’est à dire que le dernier F absorbé est le ieme élément de la séquence) ; soit p le nombre de bits à 1 dans la représentation binaire de i (c’est à dire le poids de Hamming de i) ; le test de désambiguïsation du désambigüiseur 7 est vrai si la profondeur de la pile de résultats 5a est supérieure à p, sinon le test de désambiguïsation du désambigüiseur 7 est faux. The disambiguation test of the disambiguator 7 is calculated as follows: either i the number of floating point values processed by the automaton 1 (ie the last F absorbed is the i th element of the sequence); let p be the number of bits at 1 in the binary representation of i (ie the Hamming weight of i); the disambiguation test of disambiguator 7 is true if the depth of result stack 5a is greater than p, otherwise the disambiguation test of disambiguator 7 is false.
[0065] Le fonctionnement de l’automate sur un flot de 5 valeurs, dénommées F1, F2, F3, F4, F5, est illustré sur la figure 3. The operation of the automaton on a stream of 5 values, called F 1 , F 2 , F 3 , F 4 , F 5 , is illustrated in FIG. 3.
[0066] Les figures 4 à 18 détaillent le fonctionnement étape par étape de la figure 3. Figures 4 to 18 detail the step by step operation of Figure 3.
[0067] La figure 4 représente l'état initial du système. FIG. 4 represents the initial state of the system.
[0068] La figure 5 représente la réception du nombre flottant F1 sur la FIFO d'entrée 1. FIG. 5 represents the reception of the floating number F 1 on the input FIFO 1.
[0069] La figure 6 représente la prise en compte de F1, avec une action de décalage, et une réception d'un deuxième nombre flottant F2 sur la FIFO d'entrée 1. FIG. 6 represents the taking into account of F 1 , with a shift action, and a reception of a second floating number F 2 on the input FIFO 1.
[0070] La figure 7 représente le résultat de l’action de la figure 6, et la prise en compte du deuxième nombre flottant F2, avec une action de décalage, et la réception d'un troisième nombre flottant F3 et d'un quatrième nombre flottant F4 sur la FIFO d'entrée 1. FIG. 7 represents the result of the action of FIG. 6, and the taking into account of the second floating number F 2 , with a shift action, and the reception of a third floating number F 3 and of a fourth floating number F 4 on the input FIFO 1.
[0071] La figure 8 représente le résultat de l’action de la figure 7, et la prise en compte du troisième nombre flottant F3, avec une action ambiguë de décalage ou réduction, résolue en réduction car le critère de désambiguïsation du désambigüiseur 7 est vrai. En outre, la figure 8 représente la réception d'un cinquième nombre flottant F5. [0072] La figure 9 représente le résultat de l’action de la figure 8 (avec calcul de N1 = F1 + F2), et la prise en compte du troisième nombre flottant F3, avec une action de décalage. FIG. 8 represents the result of the action of FIG. 7, and the taking into account of the third floating number F 3 , with an ambiguous shift or reduction action, resolved in reduction because the disambiguation criterion of the disambiguator 7 is right. In addition, FIG. 8 represents the reception of a fifth floating number F 5 . FIG. 9 represents the result of the action of FIG. 8 (with calculation of N 1 = F 1 + F 2 ), and the taking into account of the third floating number F 3 , with a shift action.
[0073] La figure 10 représente le résultat de l’action de la figure 9, et la prise en compte d'un quatrième nombre flottant F4, avec une action ambiguë de décalage ou réduction, résolue en décalage car le critère de désambiguïsation du désambigüiseur 7 est faux. FIG. 10 represents the result of the action of FIG. 9, and the taking into account of a fourth floating number F 4 , with an ambiguous action of shift or reduction, resolved in shift because the criterion of disambiguation of the disambiguator 7 is wrong.
[0074] La figure 11 représente le résultat de l’action de la figure 10, et la prise en compte du cinquième nombre flottant F5, avec une action ambiguë de décalage ou réduction, résolue en réduction car le critère de désambiguïsation du désambigüiseur 7 est vrai. Le transfert des valeurs Fi est terminé. FIG. 11 represents the result of the action of FIG. 10, and the taking into account of the fifth floating number F 5 , with an ambiguous shift or reduction action, resolved in reduction because the disambiguation criterion of the disambiguator 7 is right. The transfer of the values F i is finished.
[0075] La figure 12 représente le résultat de l’action de la figure 11 (avec le calcul de N2 = F3 + F4), et la prise en compte du cinquième nombre flottant F5. Une action ambiguë de décalage ou réduction, résolue en réduction car le critère de désambiguïsation du désambigüiseur 7 est vrai. FIG. 12 represents the result of the action of FIG. 11 (with the calculation of N 2 = F 3 + F 4 ), and the taking into account of the fifth floating number F 5 . An ambiguous shift or reduction action, resolved in reduction because the disambiguation criterion of disambiguator 7 is true.
[0076] La figure 13 représente le résultat de l’action de la figure 12 (et le calcul de N3 = N2 + N1), et la prise en compte du cinquième nombre flottant F5, avec une action de décalage, et la présence d'une information eof représentative de la fin de la sommation des cinq nombres flottants F1, F2, F3, F4 et F5. FIG. 13 represents the result of the action of FIG. 12 (and the calculation of N 3 = N 2 + N 1 ), and the taking into account of the fifth floating number F 5 , with a shift action, and the presence of information eof representative of the end of the summation of the five floating numbers F 1 , F 2 , F 3 , F 4 and F 5 .
[0077] La figure 14 représente le résultat de l’action de la figure 13, et la fin de transmission des nombres flottants F1, F2, F3, F4 et F5, avec prise en compte de l'information eof de fin de transmission de données à sommer. La FIFO 1 est vide. L'information eof est prise en compte par une action de réduction. FIG. 14 represents the result of the action of FIG. 13, and the end of transmission of the floating numbers F 1 , F 2 , F 3 , F 4 and F 5 , taking into account the information eof end of data transmission to be summed. FIFO 1 is empty. The information eof is taken into account by a reduction action.
[0078] La figure 15 représente le résultat de l’action de la figure 14 (et le calcul de N4 = F5 + N3), l'action de prise en compte de eof étant : accepter. FIG. 15 represents the result of the action of FIG. 14 (and the calculation of N 4 = F 5 + N 3 ), the action for taking eof into account being: accept.
[0079] La figure 16 représente l'action d'accepter, dans laquelle N4 est délivré en sortie de l'automate 1. Le système est revenu dans son état initial et peut redémarrer une nouvelle somme. FIG. 16 represents the action of accepting, in which N 4 is delivered at the output of the automaton 1. The system has returned to its initial state and can restart a new sum.
[0080] Cette invention construit, au fur et à mesure de l’arrivée des valeurs flottantes, de manière itérative, sans connaître à l’avance leur nombre, le même résultat que le pseudo-code de l'annexe 2. This invention builds, as the floating-point values arrive, iteratively, without knowing their number in advance, the same result as the pseudo-code in Appendix 2.
[0081] La preuve de cette équivalence entre les deux algorithmes est la suivante. The proof of this equivalence between the two algorithms is as follows.
[0082] L’expression de tous les arbres de sommation binaires sur un ensemble de valeurs est la grammaire algébrique suivante : The expression of all binary summation trees over a set of values is the following algebraic grammar:
N → NN | F dans laquelle N est défini comme un nœud somme de ses deux fils ou une feuille F (contenant une valeur flottante). N → NN | F where N is defined as a sum node of its two children or a leaf F (containing a floating point value).
[0083] La compilation de cette grammaire par un générateur de parseurs GLR (par exemple Bison ou SmaCC) donne la table de transition d’un automate à pile non déterministe qui génère tous les arbres binaires de somme possibles depuis une entrée de valeurs flottantes traitées de gauche à droite avec une pré-vision (look-ahead) de 1 élément, le calcul se terminant à la réception du dernier élément. The compilation of this grammar by a generator of GLR parsers (for example Bison or SmaCC) gives the transition table of a non-deterministic stack automaton which generates all the binary sum trees possible from an input of processed floating values from left to right with a look-ahead of 1 element, the calculation ending when the last element is received.
[0084] Le critère de désambiguïsation assure que nous construisons uniquement l’arbre dont chaque fils gauche est un arbre binaire équilibré parfait, et ceci de manière déterministe. [0084] The disambiguation criterion ensures that we build only the tree of which each left child is a perfect balanced binary tree, and this in a deterministic manner.
[0085] La littérature sur les parseurs rappelle que la table de transition de l’automate à pile non déterministe est une compilation de la stratégie top-down exprimée par la grammaire algébrique de la somme en arbre (cf Doc4, page vii), et donc, que la table de transition de l’automate est équivalente à cette grammaire. The literature on parsers recalls that the transition table of the non-deterministic stack automaton is a compilation of the top-down strategy expressed by the algebraic grammar of the tree sum (see Doc4, page vii), and therefore, that the transition table of the automaton is equivalent to this grammar.
[0086] La figure 17 représente un mode de réalisation de l'invention, permettant d'implémenter les instructions FADDA et FADDV du jeu d’instructions ARMv8 SVE, tel que décrit dans le document "ARM Architecture Reference Manual Supplément, The Scalable Vector Extension (SVE), for ARMv8-A", Copyright © 2017-2018 ARM Limited or its affiliate. FIG. 17 represents an embodiment of the invention, making it possible to implement the FADDA and FADDV instructions of the ARMv8 SVE instruction set, as described in the document "ARM Architecture Reference Manual Supplement, The Scalable Vector Extension (SVE), for ARMv8-A ", Copyright © 2017-2018 ARM Limited or its affiliate.
[0087] FADDV est une instruction qui retourne la somme en arbre des valeurs d’un vecteur, ce vecteur contenant entre 2 et 64 valeurs. Le système de l'invention, sans modification implémente l’instruction FADDV. FADDV is an instruction which returns the tree sum of the values of a vector, this vector containing between 2 and 64 values. The system of the invention, without modification, implements the FADDV instruction.
[0088] FADDA est une instruction qui retourne la somme naïve (itérative) sur les valeurs d’un vecteur, ce vecteur contenant entre 2 et 64 valeurs. La modification du système consiste à ajouter un module de commande 8 et un multiplexeur 11 entre le desambigüiseur 7 et l’automate 1. Le multiplexeur 11 possède une entrée en provenance du désambigüiseur 7 et une entrée en permanence à la valeur "vrai". Si l’entrée correspondante de l’automate est toujours à "vrai", le système effectue une somme itérative. FADDA is an instruction which returns the naive (iterative) sum over the values of a vector, this vector containing between 2 and 64 values. The modification of the system consists in adding a control module 8 and a multiplexer 11 between the desambiguizer 7 and the PLC 1. The multiplexer 11 has an input from the disambiguator 7 and an input permanently set to "true". If the corresponding PLC input is still "true", the system performs an iterative sum.
[0089] Le résultat fonctionne ainsi: si le module 8 commande le multiplexeur 11 de sorte qu'il choisisse systématiquement son entrée "vrai" et pas la sortie du désambigüiseur 7, alors le système effectue l’instruction FADDA. Sinon le système effectue l’instruction FADDV qui est une somme en arbre. The result works as follows: if the module 8 controls the multiplexer 11 so that it systematically chooses its "true" input and not the output of the disambiguator 7, then the system performs the FADDA instruction. Otherwise the system performs the FADDV instruction which is a tree sum.
[0090] Ce même système étendu est en mesure d’implémenter les instructions fredosum et fredsum de l’extension vectorielle du jeu d'instructions RISC-V, suivant le même procédé : si le module 8 commande le multiplexeur 11 de sorte qu'il choisisse systématiquement son entrée "vrai", le système effectue l’instruction fredosum ; sinon le système effectue l’instruction fredsum qui est une somme en arbre. This same extended system is able to implement the fredosum and fredsum instructions of the vector extension of the RISC-V instruction set, following the same process: if the module 8 controls the multiplexer 11 so that it systematically choose his input "true", the system performs the instruction fredosum; otherwise the system performs the fredsum instruction which is a tree sum.
[0091] Les instructions fredosum et fredsum de l’extension vectorielle du jeu d'instructions RISC-V est décrite dans le document "RISC-V "V" Vector Extension", Version 0.8-draft- 20191117. The fredosum and fredsum instructions of the vector extension of the RISC-V instruction set are described in the document "RISC-V" V "Vector Extension", Version 0.8-draft- 20191117.
[0092] Une modification permet aussi d’implémenter les instructions RISC-V qui élargissent le résultat (fwredosum et fwredsum), en considérant que l’entrée 2 est le largeur simple (ex : float sur 32bits), et la pile 5a et l’additionneur 6 sont en double précision (ex : double sur 64bits). A modification also makes it possible to implement the RISC-V instructions which widen the result (fwredosum and fwredsum), considering that entry 2 is the single width (eg: float on 32bits), and the stack 5a and l adder 6 are double precision (eg: double on 64bits).
[0093] La figure 18 représente un mode de réalisation de l'invention visant à accélérer les traitements en effectuant plusieurs sommes en parallèle, tout en gardant les mêmes caractéristiques. FIG. 18 represents an embodiment of the invention aimed at accelerating the processing operations by performing several sums in parallel, while keeping the same characteristics.
[0094] Un additionneur vectoriel de taille 2k en arbre 9 est ajouté au système, disposé entre l'entrée 2 et l'automate 1, et prend en entrée un vecteur V (de longueur 2k) et produit en sortie une valeur Fi, égale à la somme en arbre des valeurs contenues dans V. A vector adder of size 2 k in tree 9 is added to the system, placed between the input 2 and the automaton 1, and takes as input a vector V (of length 2 k ) and produces at output a value F i , equal to the tree sum of the values contained in V.
[0095] Un multiplexeur 10 choisit soit la valeur Fi en sortie de l’additionneur 9, soit la valeur Fi en sortie de l'entrée 2, et la transmet à l’automate 1. Ce multiplexeur 10 choisit systématiquement la sortie de l’additionneur 9 si ce dernier en présente une, sinon, il choisit la sortie Fi de l’entrée 2. A multiplexer 10 chooses either the value F i at the output of the adder 9, or the value F i at the output of the input 2, and transmits it to the automaton 1. This multiplexer 10 systematically chooses the output of the adder 9 if the latter has one, if not, it chooses the output F i of the input 2.
[0096] Le système se voit ajouter le comportement suivant dans l'entrée 2: tant que la transmission de données n’est pas terminée, l'entrée 2 attend d’avoir 2k valeurs. The system has the following behavior added in entry 2: as long as the data transmission is not completed, entry 2 waits for 2 k values.
[0097] Si l'entrée 2 contient 2k valeurs ou plus, elle extrait les 2k valeurs les plus anciennes sous la forme du vecteur V, envoie V à l'additionneur vectoriel en arbre 9, et présente le résultat Fi au multiplexeur 10. If the input 2 contains 2 k values or more, it extracts the 2 k oldest values in the form of the vector V, sends V to the vector adder in tree 9, and presents the result Fi to the multiplexer 10 .
[0098] Si la FIFO d'entrée 2 n’a pas 2k valeurs et que la transmission de données est terminée, alors il se comporte comme dans la version sans cette variante: il présente la valeur la plus ancienne Fi au multiplexeur 10. If the input FIFO 2 does not have 2 k values and the data transmission is finished, then it behaves as in the version without this variant: it presents the oldest value Fi to the multiplexer 10.
[0099] Si l’entrée 2 est vide et la transmission terminée, alors l’entrée 2 présente l'information eof au multiplexeur 10. If input 2 is empty and transmission is complete, then input 2 presents the eof information to multiplexer 10.
[0100] Comme illustré sur la figure 19, le mode de réalisation de la figure 18 est combinable au mode de réalisation de la figure 17 avec le module de commande 8 permettant de contraindre la valeur du critère à vrai durant une sommation. [0100] As illustrated in FIG. 19, the embodiment of FIG. 18 can be combined with the embodiment of FIG. 17 with the control module 8 making it possible to constrain the value of the criterion to true during a summation.
[0101] Lorsque l'on souhaite effectuer une somme naïve (FADDA ou fredosum), il n'est pas possible de paralléliser donc d'utiliser l'additionneur vectoriel en arbre 9. Aussi, le module de commande 8 inhibe l'additionneur vectoriel en arbre 9 (le module de commande 8 est configuré pour indiquer à l’entrée 2 que l’additionneur vectoriel 9 doit être inhibé), et force le multiplexeur 11 à choisir systématiquement son entrée "vrai". When one wishes to carry out a naive sum (FADDA or fredosum), it is therefore not possible to parallelize to use the vector adder in tree 9. Also, the control module 8 inhibits the vector adder. in shaft 9 (the control module 8 is configured to indicate to input 2 that vector adder 9 must be inhibited), and forces multiplexer 11 to systematically choose its "true" input.
[0102] En revanche, lorsque l'on souhaite réaliser une somme en arbre (FADDV ou fredsum), le module de commande 8 active l'additionneur vectoriel en arbre 9 (le module de commande 8 est configuré pour indiquer à l’entrée 2 que l’additionneur vectoriel 9 doit être activé), et force le multiplexeur 11 à choisir systématiquement l'entrée délivrée par le désambigüiseur 7. [0103] Ainsi le système de la figure 19 est capable de faire les deux sommes différentes de la figure 17 en fonction de l’état du module de commande 8. On the other hand, when one wishes to carry out a sum in tree (FADDV or fredsum), the control module 8 activates the vector adder in tree 9 (the control module 8 is configured to indicate at the input 2 that the vector adder 9 must be activated), and forces the multiplexer 11 to systematically choose the input delivered by the disambiguator 7. [0103] Thus the system of figure 19 is capable of making the two different sums of figure 17 depending on the status of the control module 8.
Annexe Annex
[Annexe 1] [Annex 1]
Pour toujours Forever
soit s l’état au sommet de la pile d’états 4a. let s be the state at the top of state stack 4a.
Si a est nul alors tant que la FIFO 2 est vide et la transmission non-terminée, attendre si la FIFO 2 est vide et la transmission est terminée alors a = eof sinon a = F et comme valeur la valeur (retirée) la plus ancienne de la FIFO 2 soit action = transition (s, a) si (action est ambiguë) (à la fois décalage et réduction) si désambigüiseur 7 est vrai action = réduction sinon action = décalage si (action = décalage) alors empiler sur pile d'états 4a la valeur (s + 1 min 3) empiler sur pile résultats 5a la valeur de a si (action = réduction) alors dépiler deux états de la pile d'états 4a. empiler sur la pile d'états 4a l'état en sommet de la pile d'états 4a + 1 (avec 3 comme maximum) dépiler deux valeurs de la pile de résultats 5a, et empiler sur la pile de résultats 5a la somme (effectuée par l'additionneur 6) de ces deux valeurs si (action = accepter) alors dépiler la valeur au sommet de la pile d'états 4a. dépiler le sommet de pile de résultats 5a et le placer sur la sortie somme (le résultat) du système signaler la mise à disposition du résultat si (action = rien) alors boucler tant que pas d’eof en tête de FIFO 1 If a is zero then as long as FIFO 2 is empty and the transmission is not terminated, wait if FIFO 2 is empty and the transmission is finished then a = eof otherwise a = F and as value the oldest (withdrawn) value of FIFO 2 either action = transition (s, a) if (action is ambiguous) (both shift and reduction) if disambiguator 7 is true action = reduction otherwise action = shift if (action = shift) then stack on stack d 'states 4a the value (s + 1 min 3) stack on stack results 5a the value of a if (action = reduction) then unstack two states from the stack of states 4a. stack on the stack of states 4a the state at the top of the stack of states 4a + 1 (with 3 as the maximum) pop two values from the stack of results 5a, and stack on the stack of results 5a the sum (performed by adder 6) of these two values if (action = accept) then unstack the value at the top of the stack of states 4a. pop the top of the stack of results 5a and place it on the sum output (the result) of the system signal the provision of the result if (action = nothing) then loop as long as no eof at the head of FIFO 1
[Annexe2] function pairviseSum (L list of floats) if size of L= 1 return first and only only element of L mid = 2 Ʌ (log2 (size of L) truncated) if (mid = size of L) return pairwiseBinarySum (L) else retum pairwiseBinarySum(L from 1 to mid) + pairwiseSum (L from mid+1 to size of L) function pairwiseBinarySum ( L list of floats) if size of L= 1 retum first and only element of L mid = size of L > > 1 return pairwiseBinarySum (L from 1 to mid) + pairwiseBinarySum (L from mid+1 to size of L) [Annex2] function pairviseSum (L list of floats) if size of L = 1 return first and only only element of L mid = 2 Ʌ (log 2 (size of L) truncated) if (mid = size of L) return pairwiseBinarySum (L) else retum pairwiseBinarySum (L from 1 to mid) + pairwiseSum (L from mid + 1 to size of L) function pairwiseBinarySum (L list of floats) if size of L = 1 retum first and only element of L mid = size of L>> 1 return pairwiseBinarySum (L from 1 to mid) + pairwiseBinarySum (L from mid + 1 to size of L)

Claims

REVENDICATIONS
1. Système sur puce de sommation en arbre binaire de nombres flottants comprenant : 1. Binary tree-based floating-point summation system on chip comprising:
- un automate (1) à pile configuré pour réaliser des opérations de décalage, de réduction, et d'acceptation ; - a battery-powered automaton (1) configured to perform shift, reduction, and acceptance operations;
- une entrée (2) recevant en file des nombres flottants à additionner et une information (eof) représentative de la fin de la sommation des nombres flottants, traités par l'automate (1) ; - an input (2) receiving in line floating numbers to be added and information (eof) representative of the end of the summation of the floating numbers, processed by the automaton (1);
- une mémoire (3) de programmation de l'automate (1) comprenant une table de transition (3a) de l'automate (1) ; - a memory (3) for programming the automaton (1) comprising a transition table (3a) of the automaton (1);
- une mémoire (4) comprenant une pile d'états (4a) de l'automate (1) ; - a memory (4) comprising a stack of states (4a) of the automaton (1);
- une mémoire (5) comprenant une pile de résultats (5a) des opérations effectuées par l'automate (1) ; - a memory (5) comprising a stack of results (5a) of the operations performed by the automaton (1);
- un additionneur (6) en virgule flottante configuré pour additionner deux valeurs en virgule flottante et délivrer en sortie leur somme en virgule flottante ; et - a floating point adder (6) configured to add two floating point values and output their floating point sum; and
- un désambigüiseur (7) configuré pour mettre en œuvre un critère de désambiguïsation permettant de réaliser l'opération de décalage lorsqu'il est faux et de réaliser l'opération de réduction lorsqu'il est vrai. - a disambiguator (7) configured to implement a disambiguation criterion making it possible to perform the shift operation when it is false and to perform the reduction operation when it is true.
2. Système selon la revendication 1, dans lequel le critère de désambiguïsation est vrai si la profondeur (pf) de la pile de résultats (5a) est supérieure au poids (p) de Hamming du nombre (i) de valeurs flottantes reçues en entrée (2) et déjà traitées par l'automate2. System according to claim 1, wherein the disambiguation criterion is true if the depth (pf) of the stack of results (5a) is greater than the Hamming weight (p) of the number (i) of floating values received as input. (2) and already processed by the PLC
(1). (1).
3. Système selon l'une des revendications précédentes, comprenant au moins un additionneur (6) supplémentaire. 3. System according to one of the preceding claims, comprising at least one additional adder (6).
4. Système selon l'une des revendications précédentes, dans lequel la table de transition (3a) est de type LR(1). 4. System according to one of the preceding claims, wherein the transition table (3a) is of LR type (1).
5. Système selon l'une des revendications précédentes, dans lequel l'automate (1) est configuré pour terminer sa somme lorsqu'il doit traiter une information (eof) représentative de la fin de la sommation des nombres flottants. 5. System according to one of the preceding claims, in which the automaton (1) is configured to complete its sum when it has to process information (eof) representative of the end of the summation of the floating numbers.
6. Système selon l'une des revendications précédentes, comprenant un module de commande (8) pour commander le désambigüiseur (7) à contraindre la valeur du critère à vrai durant une sommation. 6. System according to one of the preceding claims, comprising a control module (8) for controlling the disambiguator (7) to force the value of the criterion to be true during a summation.
7. Système selon l'une des revendications précédentes, comprenant un additionneur vectoriel en arbre (9) disposé entre l'entrée (2) et l'automate (1) permettant d'effectuer la somme en arbre des nombres flottants d'un vecteur (V) de nombres flottants successifs reçues en entrée (2), et délivrant leur somme en arbre à l'automate (1). 7. System according to one of the preceding claims, comprising a tree vector adder (9) arranged between the input (2) and the controller (1) making it possible to perform the tree sum of the floating numbers of a vector. (V) successive floating point numbers received at input (2), and delivering their sum in tree to the automaton (1).
PCT/EP2021/052921 2020-02-18 2021-02-08 System on a chip for the binary tree summation of floating-point numbers WO2021165075A1 (en)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FRFR2001575 2020-02-18
FR2001575A FR3107374B1 (en) 2020-02-18 2020-02-18 System-on-chip binary tree summation of floating-point numbers

Publications (1)

Publication Number Publication Date
WO2021165075A1 true WO2021165075A1 (en) 2021-08-26

Family

ID=72266351

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/EP2021/052921 WO2021165075A1 (en) 2020-02-18 2021-02-08 System on a chip for the binary tree summation of floating-point numbers

Country Status (2)

Country Link
FR (1) FR3107374B1 (en)
WO (1) WO2021165075A1 (en)

Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125379A (en) * 1998-02-11 2000-09-26 The Research Foundation Of State University Of New York Parallel VLSI shift switch logic devices
WO2017185203A1 (en) * 2016-04-25 2017-11-02 北京中科寒武纪科技有限公司 Device and method for adding up plurality of floating point numbers

Patent Citations (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6125379A (en) * 1998-02-11 2000-09-26 The Research Foundation Of State University Of New York Parallel VLSI shift switch logic devices
WO2017185203A1 (en) * 2016-04-25 2017-11-02 北京中科寒武纪科技有限公司 Device and method for adding up plurality of floating point numbers

Non-Patent Citations (6)

* Cited by examiner, † Cited by third party
Title
A. AHOM. LAMR. SETHIJ. ULLMAN: "Compilateurs: Principes, Techniques et Outils", 2007, SPRINGER
BARNABY DALTON ET AL: "SIMDizing pairwise sums", PROGRAMMING MODELS FOR SIMD/VECTOR PROCESSING, ACM, 2 PENN PLAZA, SUITE 701 NEW YORK NY 10121-0701 USA, 16 February 2014 (2014-02-16), pages 65 - 70, XP058047168, ISBN: 978-1-4503-2653-7, DOI: 10.1145/2568058.2568070 *
BARNABY DALTONAMY WANGBOB BLAINEY: "Sums : A summation algorithm balancing accuracy with throughput.", SIMDIZING PAIRWISE WPMVP '14 : PROCEEDINGS OF THE 2014 WORKSHOP ON PROGRAMMING MODELS FOR SIMD/VECTOR PROCESSING, February 2014 (2014-02-01), pages 65 - 70, Retrieved from the Internet <URL:https://doi.ors/10.1145/2568058.2568070>
CAPRANI, OLE: "Implementation of a low round-off summation method", BIT NUMERICAL MATHEMATICS, September 1971 (1971-09-01)
HIGHAM, NICHOLAS: "Accuracy and Stability of Numerical Algorithms (2 ed", SIAM, 2002
MORAD AMIR ET AL: "Efficient Dense and Sparse Matrix Multiplication on GP-SIMD", 2014 24TH INTERNATIONAL WORKSHOP ON POWER AND TIMING MODELING, OPTIMIZATION AND SIMULATION (PATMOS), IEEE, 29 September 2014 (2014-09-29), pages 1 - 8, XP032682133, DOI: 10.1109/PATMOS.2014.6951895 *

Also Published As

Publication number Publication date
FR3107374A1 (en) 2021-08-20
FR3107374B1 (en) 2022-02-18

Similar Documents

Publication Publication Date Title
EP0443679B1 (en) Method of calculating an operation of the type A.X modulo N in a coding method according to the RSA method
CN110321466B (en) Securities information duplicate checking method and system based on semantic analysis
WO2009068822A2 (en) Method and device for sorting packets
FR2822260A1 (en) METHODS AND DEVICES FOR ACCELERATING THE CALCULATION TIME OF A MONTGOMERY PRODUCT BY MODULAR MULTIPLICATION AND EXPONENTIATION
WO2021165075A1 (en) System on a chip for the binary tree summation of floating-point numbers
WO2022096246A1 (en) System-on-a-chip for binary tree summation of floating values
CN107315831A (en) A kind of method and device of the unknown incidence relation of mining rule correlation model
EP2013705B1 (en) N-bit adder and corresponding addition method
EP0341097B1 (en) Recursive adder to calculate the sum of two operands
FR3031823A1 (en) SEMANTIC EMITTER BASED ON ONTOLOGICAL DICTIONARIES.
FR2805361A1 (en) METHOD FOR ACQUIRING BOROUGH PARAMETERS OF FMAC
EP0784262B1 (en) Device and method for improving the processing speed of a modular arithmetic coprocessor
EP0140760A1 (en) Expandable module device and methods of sorting marked objects
EP3139540B1 (en) Method for automated determination of optimal interconnect topologies of systems including service nodes, and associated processing device
EP2427967A1 (en) Method for controlling a basic parity node of a non-binary ldpc code decoder, and corresponding basic parity node processor
EP3502904A1 (en) Method for improving the execution time of a computer application
EP4167144A1 (en) Method for designing an optimized hardware architecture for the execution of a neural network
EP3622445A1 (en) Method, implemented by computer, for searching for rules of association in a database
CN116738008A (en) Data merging method and device of engine policy, electronic equipment and medium
WO2009095616A1 (en) Method of identifying a multimedia document in a reference base, corresponding computer program and identification device
CN105528430A (en) Method and device for determining weights of search terms
Lane Speech Recognition Using Brain-Inspired Hyperdimensional Computing
Assy et al. Configuration assistée des processus métier: Conception et expérimentation.
EP3998555A1 (en) Method for processing data by an artificial neural network with group executions of individual operations for preventing attacks by auxiliary channel, and corresponding system
Nguyen et al. A Comparative Study of Wrapper Feature Selection Techniques in Software Fault Prediction

Legal Events

Date Code Title Description
121 Ep: the epo has been informed by wipo that ep was designated in this application

Ref document number: 21703034

Country of ref document: EP

Kind code of ref document: A1

NENP Non-entry into the national phase

Ref country code: DE

122 Ep: pct application non-entry in european phase

Ref document number: 21703034

Country of ref document: EP

Kind code of ref document: A1