EP0667969A1 - Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif - Google Patents
Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositifInfo
- Publication number
- EP0667969A1 EP0667969A1 EP94924344A EP94924344A EP0667969A1 EP 0667969 A1 EP0667969 A1 EP 0667969A1 EP 94924344 A EP94924344 A EP 94924344A EP 94924344 A EP94924344 A EP 94924344A EP 0667969 A1 EP0667969 A1 EP 0667969A1
- Authority
- EP
- European Patent Office
- Prior art keywords
- data
- block
- elementary
- stage
- elementary processing
- 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.)
- Withdrawn
Links
Classifications
-
- G—PHYSICS
- G06—COMPUTING; CALCULATING OR COUNTING
- G06F—ELECTRIC DIGITAL DATA PROCESSING
- G06F17/00—Digital computing or data processing equipment or methods, specially adapted for specific functions
- G06F17/10—Complex mathematical operations
- G06F17/14—Fourier, Walsh or analogous domain transformations, e.g. Laplace, Hilbert, Karhunen-Loeve, transforms
- G06F17/141—Discrete Fourier transforms
- G06F17/142—Fast Fourier transforms, e.g. using a Cooley-Tukey type algorithm
Definitions
- the invention relates to devices for calculating transform of
- Cooley-Tuckey algorithm uses a calculation graph showing a structure in the shape of a butterfly, well known to those skilled in the art, and commonly known in English as the "butterfly".
- a first solution consists in making a hardware operator capable of performing a butterfly type calculation, by butterfly of the graph.
- a hardware operator capable of performing a butterfly type calculation, by butterfly of the graph.
- such a solution is only possible for the implementation of small Fourier transforms.
- a second solution consists in carrying out only one material operator of the butterfly type, and intended to carry out successively the calculations corresponding to all the butterflies of all the stages of the graph.
- Such a solution has the drawback of requiring on the one hand a very fast hardware operator, and on the other hand an input memory distinct from the memory used to write the intermediate calculation results in order to avoid access conflicts when a data block enters the operator. that the previous block is still being processed. It is therefore necessary to provide two memories of N complex words, where N denotes the size of the Fourier transform, which leads to a global circuit with a large surface area in particular when N is large.
- An intermediate solution consists in producing a material operator of the butterfly type per stage of the graph, as well as a memorization element whose function is to present at the operator input the data in the correct order taking into account the butterflies of the graph of the floor considered.
- a circuit for computing a Fou ⁇ rier transform of predetermined initial size includes a plurality of successive processing stages connected in series between the input and the output of the circuit by internal data paths.
- Each stage comprises elementary processing means (of the butterfly type) capable of carrying out Fourier transform treatments of predetermined elementary sizes smaller than the initial size, on data blocks of sizes successively reduced from one stage to the next.
- These elementary sizes can be identical and equal to the radix of the Fourier transform. We then speak of Fourier transforms with "uniform" radix. They can be different from one stage to another in the case of Fourier transforms with "mixed" ra ⁇ ten.
- dynamic value of a data item means the range of values in which this data is located, that is to say for example between - 0.5 and + 0.5 or between - 0.05 and + 0.05 etc.
- a first solution consists in globally extending a priori the dynamics of the data, that is to say that a priori is estimated the necessary dynamics on the data at the output of the circuit so as not to lose too much precision on the significant bits , assuming of course that there is no saturation on the internal calculations, and then the size of the words of the input data is increased by the estimated number of additional bits.
- the intermediate data and the output data will therefore also be represented with words of this size. This leads to an increase in the size of the circuit's internal data paths which can be significant in the case of large Fourier transforms requiring several processing stages, and therefore to a penalizing increase in the total surface of the circuit for example implanted. a silicon wafer.
- Another solution also consists in extending the dynamics of the data paths a priori, but this time stage by stage. Such a solution is certainly more advantageous than the first but it also leads to an artificial increase in the size of the internal data paths of the circuit and therefore of its surface.
- the BI and JONES article cited above does not mention any solution to this problem of data dynamics.
- the invention aims to provide a more satisfactory solution to this problem.
- An object of the invention is to propose a device for calculating a Fourier transform of the type with constant dynamics and in which the size of the internal data paths is not artificially increased.
- the subject of the invention is therefore, an electronic device for calculating a Fourier transform of predetermined initial size, comprising a plurality of successive processing stages connected in series between the input and the output of the device by paths of internal data and respectively comprising elementary processing means capable of carrying out Fourier transform treatments of predetermined sizes smaller than the initial size, on data blocks of sizes successively reduced from one stage to the next.
- the device comprises:
- the invention provides for an adaptive cropping, that is to say taking into account an effectively calibrated dynamic value. abutment, on data blocks of sizes successively reduced from one stage to another.
- the input data are received sequentially according to an input frequency determined by a basic clock signal.
- the elementary processing means of the stage of rank t are capable of performing an elementary processing of Fourier transform of size r t on successive blocks of data at the frequency of the basic clock signal.
- the time delay means comprise first switchable delay means capable of temporarily storing data blocks drawn from those delivered by the elementary processing means of the current stage, and of delivering to the elementary processing means of the following stage, at the rate of the basic clock signal, and with a predetermined time delay, for each block received, successive groups of given r t ordered in a predetermined order.
- the time delay means also include second delay means connected to the first and also clocked by the basic clock signal.
- the first and second delay means are able together to store all the data of each block from the elementary processing means of the previous stage.
- the memory size of the first and second delay means is at least equal to the number of these data.
- the first switchable delay means of the stage of rank t advantageously comprise r t outputs connected to the elementary processing means of this stage, as well as two sets of r t - l delay elements connected in series.
- the output of the last delay element of the first set is directly connected to one of the r t outputs of the first delay means while the outputs of the delay elements of the second set are respectively connected to the other outputs of the first delay means by l 'through one of the inputs of switching means controllable with two inputs.
- the inputs of the delay elements of the first set are also respectively connected to the other inputs of the switching means controllable with two inputs.
- the second delay means also include a delay element connected to the input of the first delay means. All the delay elements advantageously also have the same memory size.
- the delay elements preferably include dynamic delay lines.
- the means for determining the overall dynamic value of each block include means for determining the number of duplicate sign bits of each datum of the block, said overall dynamic value associated with the block being the most small numbers of duplicate sign bits.
- the intermediate cropping means advantageously include means for shifting the bits of the word of each data in the block to the most significant bit, these shifting means being connected to the means for determining the value of overall dynamics.
- the time delay means are advantageously located between the elementary processing means of each pair of consecutive stages, while the means for determining global dynamic values are connected to the output of the elementary processing means of each stage.
- the elementary processing means of each stage comprise a set of adders / subtractors followed by a multiplier; the shifting means are arranged before the set of adders / subtractors or advantageously between this set and the multiplier.
- the means for determining final dynamic values may comprise a succession of registers, of the same size, respectively clocked by clock signals of higher frequency from one stage to the next, and respectively connected on the one hand to the determination means. of values of global dynamics of the corresponding stage and on the other hand to the preceding register by an adder.
- the subject of the invention is also a method for minimizing the size of the internal data paths of a device for calculating a Fourier transform of a predetermined initial size, with a so-called series or "pipelined" architecture, in which one performs within the device a succession of elementary Fourier transform treatments of predetermined elementary sizes plus smaller than the initial size, on data blocks of size successively reduced from one elementary processing to the next.
- a global dynamic value is determined for each data block resulting from a current elementary processing, from the dynamic values of all the data of the block and the data of the block are cropped, account given the overall dynamic value, before performing the following elementary processing completely on this data.
- each elementary processing is clocked by said base clock and the delays the start of the next elementary processing on the data of the block resulting from the current elementary processing, at least by a number of basic clock cycles equal to the number of data of the block, after obtaining the first of the data resulting from the elementary processing current.
- the overall dynamic value of each block is advantageously determined from the detection of the number of sign bits of all the data in the block, the global dynamic value being the minimum number of duplicate sign bits of said data.
- the data of the block is preferably cropped by an offset of all the bits of the word of each data towards the most significant bit by a number of bits equal to said minimum number of duplicate sign bits.
- each global dynamic value of a block is incremented giving rise to an elementary processing, by the global dynamic value of each block originating from this block after said elementary processing, so as to obtain at the end of processing a final dynamic value for each output data. It is then possible to perform a final cropping of each output data from the associated final dynamic value if it is desired to output data on a predetermined number of bits. One can possibly refrain from such a cropping if one adopts a representation of the floating type. However in this case, it is nevertheless advisable to associate with the value of the output data, its final dynamic value to avoid an erroneous result.
- Each elementary processing comprising a set of additions / subtractions followed by a multiplication, it is possible to reframe the data before performing the additions / subtractions or else after having performed these additions / subtractions but before performing the multiplication.
- FIG. 1 illustrates the calculation graph with butterfly-based structure implemented in a device with pipelined architecture with three stages
- FIGS. 2 and 3 illustrate in more detail the architecture of the device corresponding to the graph of FIG. 1,
- FIG. 4 schematically illustrates the hardware architecture of a hardware operator of the butterfly type such as that used in the graph of FIG. 1,
- FIGS. 5 and 6 respectively illustrate two data words before and after intermediate cropping
- FIG. 7 illustrates a timing diagram corresponding to the calculation graph of FIG. 1 and to the operation of the device of FIGS. 2, 3 and 4, and
- FIG. 8 illustrates a schematic hardware embodiment of a memory point of a dynamic delay line usable in a device according to the invention.
- the initial size N of the Fourier transform is equal to 32, and is reduced to the calculation of three Fourier transforms of elementary sizes r j , r 2 and r 3 respectively equal to 4, 4 and 2
- Each input data is a complex word having a real part and a imaginary part coded on n bits in representation in addition to 2, and framed between - 1 and 1.
- the first processing stage ETl performs an elementary Fourier transform processing of size 4 on a block of 32 data, which are in fact the input data .
- the stage of rank t performs elementary processing of Fourier transforms of size r t on successive blocks of r t N t given with
- N t N / ⁇ r t - f ⁇ t
- EL denotes the "product" function
- the first processing stage ET1 performs processing of the "butterfly" type on groups of 4 data.
- the intermediate output data set Xi obtained after processing by the butterflies and multiplication by a coefficient m N equal to the complex number e "J 2m ⁇ / N , can be subdivided into four blocks of 8 data. On each of these blocks, is performed a "butterfly" type treatment on groups of 4 data. After multiplication by the coefficient Wq the output data Yi can be divided into 16 blocks of two data on each of which operates a butterfly type operator of a Fourier transform of size 2. In FIG. 1, this butterfly operator of size 2, of structure well known to those skilled in the art and for example illustrated in the work of Lawrence R.
- a global dynamic value E1-E20 is determined for each data block B1-B20, from the dynamic values of all the data of the block. This allows you to crop the block data before processing in the butterfly operator.
- FIGS. 2 to 4 The hardware architecture of a circuit D implementing the calculation graph of FIG. 1 is illustrated more particularly in FIGS. 2 to 4.
- This circuit advantageously made in a wired manner, that is to say integrated on a silicon wafer, for example, and comprising discrete elements, can be broken down into a succession of successive processing stages ET1, ET2, ET3, connected together and between the data input ES and the data output OUT by internal data paths, or buses, of size n bits.
- Each processing stage for example the processing stage of rank 2, ET2, comprises elementary processing means EAS2,
- the elementary processing means EAS1, MCI of the stage of rank 1, ET1 will carry out a Fourier transform processing of size 4, on successive groups of four input data, ordered according to a predetermined order, and taken from the block of 32 input data.
- the elementary processing means of the stage of rank 2, ET2 will likewise carry out a Fourier transform processing of size 4 on successive groups of 4 data of block Bl, ordered according to a predetermined order, and corresponding to the corresponding butterflies of the calculation graph then another elementary processing of Fourier transform of size 4 on successive groups of 4 data of block B2 and so on to the data of block B4.
- the elementary processing means of each stage, in particular the stage of rank 2, ET2, are clocked by a basic clock signal H delivered by an appropriate circuit BH2.
- These EAS2 elementary processing means, MC2 of stage ET2 are associated with first switchable delay means MRA2 capable of delivering to elementary processing means EAS2.MC2, at the rate of the basic clock signal H, and with a predetermined time delay, for each block received, the successive groups of r t data ordered in a predetermined order.
- These first switchable delay means MRA2 of the current stage of rank 2, ET2, comprise 4 outputs S21, S22, S23, S24 connected to the elementary processing means EAS2, MC2. They also include two sets of three delay elements connected in series. These delay elements are referenced ER1-2 to ER6-2 and the first set of elements comprises the elements ER1-2 to ER3-2 while the second set comprises the elements ER4-2 to ER6-2.
- the output of the last delay element ER3-2 of the first set is directly connected to the output S21.
- the outputs of the delay elements ER4-2 to R6-2 of the second set are respectively connected to the other outputs S23, S23, S24 via one of the inputs of switching means controllable with two inputs Ca, Cb, Ce .
- the inputs of the delay elements of the first set are respectively connected to the other inputs of the switching means Ca, Cb and Ce.
- the switching means Ca, Cb and Ce are controlled by control signals from an LC2 control logic.
- An example of ordering these switches is provided in the aforementioned article of BI and JONES, which is for all intents and purposes incorporated into the content of this description.
- the size of each of these delay elements i.e. the number of data which they can each store momentarily, is with regard to the stage of rank 2, ET2, equal to 2. More generally, in a succession of processing stages, the size of each of the delay elements is equal to
- each datum is a complex datum composed of two words representing respectively the imaginary part and the real part of the datum.
- Second delay means MRB2 are also provided, comprising a delay element of the same size as the delay elements of the first delay means MRA2, and the output of which is connected to the input EN2 of these first delay means MRA2, therefore in this case at the entry of the first delay element ER1-2 of the first set.
- All these delay elements are generally sequential access memory means clocked by the basic clock signal H. Materially, they can be produced for example by shift registers or else memories of the First Input type. , Premier Sorti (FIFO in English). However, it is particularly advantageous, for reasons of space, to provide dynamic delay lines whose different memory points are produced from three transistors as illustrated in FIG. 8.
- the two transistors T1 and T2 are respectively controlled on their grids by write and read control signals. They are also respectively connected between on the one hand a write bus BEC and a read bus BLE, and on the other hand the ground via a third transistor T3. The stored value is memorized at the transistor T3.
- the elementary processing means of each stage comprise a set EAS2 of complex adders / subtractors (here three) AS 1, AS2, AS3 followed by a complex multiplier MC2.
- the elementary processing means comprise r t inputs, (here four) which are connected to the two adders / subtractors AS l,
- CD1 for framing on n bits, on the left for example, of the data Xi coming from the elementary processing means of the stage ET1.
- means CD1 of the stage ETl At the output of the means CD1 of the stage ETl are also connected means DBS2 capable of determining for each block of data coming from the multiplier MCI a global dynamic value for this block from the dynamic values of all the data of this block.
- the detection of the dynamic value of each datum is carried out from the detection of the number of duplicate sign bits. of the word of this data.
- the means DBS2 then comprise means for comparing the value of the most significant bit of the word of the data, with a certain number of immediately adjacent bits, for example three. The number of neighboring bits equal to the sign bit thus determines the number of duplicate sign bits.
- S denotes the sign bit
- BT1 to BT6 the significant bits
- the three bits on the left are identical, which corresponds to two duplicate sign bits.
- the DBS2 means also include means for determination of the smallest of the numbers of duplicate sign bits of all the data of the block considered. This smallest number, which represents the overall dynamic value of the block, is then stored in a register RGb2, controlled by a clock signal H2 drawn from the basic clock signal H.
- Means for cropping the data delivered by the delay means MRA2 are then arranged between the output of these delay means and the input of the assembly EAS2 of adders / subtractors of the elementary processing means of the stage ET2.
- These data cropping means here comprise a DL2 shifter capable of shifting to the left, that is to say towards the most significant bit, all the data of a block, by a value equal to the number stored in the RGbl register.
- the shifted data word now includes as high-order bit the sign bit S followed by the six significant bits BT1 and BT6.
- the output of the means DBS2 is also connected to an adder A2 whose other input is connected to a data transmission bus BS1 and whose output is connected to another register RGa2 also controlled by the clock signal H2.
- the output of this register RGa2 is connected to another part BS2 of the data transmission bus.
- the clock signal H2 of stage ET2 whose rising edges are synchronous with the start of the data blocks from the multiplier MCI, has a frequency eight times lower than the frequency of the basic clock sign H.
- the data XO - X7 form the first data block B 1 coming from the elementary processing means of the stage ET1.
- the detection of the number of duplicate sign bits of each of these data is carried out in the means DBS2 and the value E1 of global dynamics of this block, that is to say the smallest of the numbers of duplicate sign bits, is stored in the register RGb2 on the next rising edge of the clock H2.
- the data of the block are delivered by the multiplier MCI, they are stored in the memory means MRB2 and MRA2 then delivered sequentially in a predetermined order in groups of 4 to the four outputs S21, S22, S23 and S24.
- the first group of data XO, X6, X4, X2 is only presented at the outputs S21, S22, S23 and S24 of the means time delay (and therefore can only be processed by the elementary processing means of stage ET2), after all the data in block XO - X7 have been delivered by the multiplier MCI.
- stage ET2 In other words, generally in a succession of stages of Fourier transform, one delays the beginning of the following elementary processing (that is to say here in stage ET2) on the data of a block resulting from the current elementary processing (stage ETl), of a number of basic clock cycles at least equal to r t N t , after obtaining the first data of this block resulting from the multiplier MCI.
- the eight successive groups G1-G8 of four data presented at the output of the time delay means MRA2 are then shifted to the left by the value El in the shifter DL2 before delivery to the set of EAS2 adders / subtractors of the elementary processing means. of floor ET2.
- the presence of the delay element MRB2 is essential. In fact, in the absence of this element, some of the data from the MCI multiplier would have been presented to the input of the EAS2 assembly before all of the data in block B 1 had been delivered by the MCI multiplier. It would therefore have been impossible to reframe the first group Gl of four data delivered by the * time delay means MRA2 and MRB2 to the assembly EAS2.
- E2 is also stored in the register RGb2 for the purpose of shifting the data of this block before processing in the EAS2 assembly.
- the data Yi will be divided into 16 blocks B5 - B20 of two data, giving rise respectively to 16 values of global dynamics E5 - E20, used for cropping these data, in a manner analogous to that which was exposed previously, before their processing in the elementary processing means of stage ET3.
- the data blocks B5 to B8 come from the data block B l, while the data blocks B9 to B 12 come from the data block B2.
- the data blocks B 13 to B16 come from the data block B3 and the data blocks B17 to B20 from the data block B4.
- The, sixteen values E5 - E20 will be delivered to the register RGa3 of stage ET3 (figure 2).
- the first four values of this register will be respectively equal to the global dynamic value El of block B l incremented by the four global dynamic values E5 - E8 associated with blocks B5 - B8 coming from block B l, while the other values will be respectively equal to the sum of the other global dynamic values E2 to E4 incremented by the global dynamic values of the blocks resulting from the other three blocks B2 - B4.
- the size in number of words of the register RGa3 is identical to the size of the register RGa2. However, since it is clocked by the clock signal H3 which is four times faster than the clock signal H2, it makes it possible to store four times more values.
- each pair of output data delivered by the elementary processing means of the last stage is associated with the same final dynamic value.
- detection and offset are only carried out in practice for the intermediate processing stages. Also in the case of a Fourier transform of 32 points with mixed radix (4, 4, 2), only the second stage will include detection and offset. With regard to the final dynamic values, if an offset and detection processing is carried out on the last stage, a final dynamic value will be associated with a block of length equal to the radix of this stage. On the other hand, in the absence of processing on this stage, a final dynamic value will be associated with a larger block of number of values (16 values in the case where the last two stages are of radix 4, and 8 values for radix equal to 4 and 2 respectively).
- the invention makes it possible to work at constant dynamics by minimizing the size of the internal data paths of the circuits, that is to say by limiting this size to n bits, without losing too much precision on intermediate data.
- This therefore makes it possible in particular to produce integrated circuits capable of carrying out Fourier transforms of 8192 complex points in 1 millisecond in a submicronic CMOS technology, usable in terrestrial digital television applications, without unnecessary and penalizing increase in the surface area. such a circuit.
Landscapes
- Physics & Mathematics (AREA)
- Mathematical Physics (AREA)
- Engineering & Computer Science (AREA)
- General Physics & Mathematics (AREA)
- Computational Mathematics (AREA)
- Mathematical Analysis (AREA)
- Mathematical Optimization (AREA)
- Pure & Applied Mathematics (AREA)
- Data Mining & Analysis (AREA)
- Theoretical Computer Science (AREA)
- Discrete Mathematics (AREA)
- Algebra (AREA)
- Databases & Information Systems (AREA)
- Software Systems (AREA)
- General Engineering & Computer Science (AREA)
- Complex Calculations (AREA)
- Image Analysis (AREA)
Abstract
Afin de minimiser la taille des chemins de données internes d'un dispositif de calcul d'une transformée de Fourier de taille initiale prédéterminée, à architecture dite série ou 'pipelinée' dans lequel on effectue au sein du dispositif une succession de traitements élémentaires de transformée de Fourier de tailles élémentaires prédéterminées plus petites que la taille initiale, sur des blocs de données de taille successivement réduite d'un traitement élémentaire au suivant, on détermine une valeur de dynamique globale (E1... E20) pour chaque bloc de données issu d'un traitement élémentaire courant (ET1), à partir des valeurs de dynamiques de toutes les données du bloc, et on recadre (DL2) les données du bloc, compte tenu de ladite valeur de dynamique globale, avant d'effectuer complètement le traitement élémentaire suivant (ET2) sur ces données.
Description
Dispositif électronique de calcul d'une transformée de Fourier et procédé pour minimiser la taille des chemins de données internes d'un tel dispositif
L'invention concerne les dispositifs de calcul de transformée de
Fourier à architecture dite série ou "pipelinée", et leur mode de fonc¬ tionnement.
De nombreuses implémentations de transformées de Fourier dé¬ diées ou programmées sur microprocesseurs de traitement du signal ont été exposées dans la littérature. La plupart de ces implémentations utilisent une variante de l'algorithme de Cooley-Tukey, bien connu de l'homme du métier, qui permet de réduire le nombre d'opérations arith¬ métiques nécessaires au calcul de la transformée de Fourier. Cet algo¬ rithme permet ainsi notamment de réduire le calcul d'une transformée de Fourier rapide de taille rP, où r représente le "radix" selon une dé¬ nomination habituellement utilisée par l'homme du métier, en celui de r transformées de Fourier de taille rP"1 et d'additions et de multiplications complexes supplémentaires. En réitérant cette réduc¬ tion, on arrive au calcul de transformées de Fourrier de taille r, aisé- ment réalisables notamment si r est choisi égal à 2 ou 4, et d'additions et de multiplications intermédiaires.
L'algorithme de Cooley-Tuckey utilise un graphe de calcul faisant apparaître une structure en forme de papillon, bien connue de l'homme du métier, et communément désignée en langue anglaise sous le terme "butterfly".
Plusieurs architectures matérielles sont alors possibles pour implémenter cette structure de calcul en forme de papillon.
Une première solution consiste à réaliser un opérateur matériel ca¬ pable d'effectuer un calcul de type papillon, par papillon du graphe. Ce- pendant une telle solution n'est envisageable que pour l'implémentation de transformées de Fourier de petites tailles.
Une deuxième solution consiste à ne réaliser qu'un opérateur ma¬ tériel du type papillon, et destiné à effectuer successivement les cal¬ culs correspondant à tous les papillons de tous les étages du graphe. Une telle solution présente l'inconvénient de nécessiter d'une part un
opérateur matériel très rapide, et d'autre part une mémoire d'entrée distincte de la mémoire servant à écrire les résultats intermédiaires de calcul et ce afin d'éviter les conflits d'accès lorsqu'un bloc de données entre dans l'opérateur alors que le bloc précédent est encore en cours de traitement. Il est donc nécessaire de prévoir deux mémoires de N mots complexes, où N désigne la taille de la transformée de Fourier, ce qui conduit à un circuit global d'une surface importante notamment lorsque N est grand.
Une solution intermédiaire consiste à réaliser un opérateur maté- riel du type papillon par étage du graphe, ainsi qu'un élément de mé¬ morisation dont la fonction est de présenter en entrée de l'opérateur les données dans le bon ordre compte tenu des papillons du graphe de l'étage considéré.
De telles architectures sont dites série ou "pipelinées" selon une dénomination usuelle employée par l'homme du métier.
Plus précisément, un circuit de calcul d'une transformée de Fou¬ rier de taille initiale prédéterminée, à architecture "pipelinée", com¬ prend une pluralité d'étages de traitement successifs connectés en série entre l'entrée et la sortie du circuit par des chemins de données inter- nés. Chaque étage comporte des moyens de traitement élémentaires (du type papillon) aptes à effectuer des traitements de transformées de Fourier de tailles élémentaires prédéterminées plus petites que la taille initiale, sur des blocs de données de tailles successivement réduites d'un étage au suivant. Ces tailles élémentaires peuvent être identiques et égales au radix de la transformée de Fourier. On parle alors de transformées de Fourier à radix "uniforme". Elles peuvent être diffé¬ rentes d'un étage à l'autre dans le cas de transformées de Fourier à ra¬ dix "mixte".
Un exemple d'une telle architecture pipelinée est décrit dans l'arti- cle de BI et JONES intitulée "a Pipelined FFT Processor for Word-Se- qential Data", IEEE Transactions on Acoustics Speech and Signal Pro¬ cessing vol 37 N° 12 décembre 1989, p 1982 - 1985.
Indépendamment du type d'architecture utilisé, se pose le problè¬ me de la dynamique des données intermédiaires et de sortie, compte tenu de la dynamique des données d'entrée. Par "dynamique" on entend
ici le nombre de bits, y compris le bit de signe, utilisé pour représen¬ ter ces données. Les opérateurs matériels du type "papillon" effectuent des multiplications et des additions complexes. Il s'avère bien entendu irréaliste de conserver multiplication après multiplication, notamment, tous les bits des résultats obtenus. Aussi est-il habituel, en particulier dans les architectures "pipelinées" de travailler à dynamique constan¬ te, c'est-à-dire de* représenter les données d'entrée, intermédiaires et de sortie sur le même nombre de bits.
Cependant, si la dynamique est constante, la valeur de dynamique des données intermédiaires, ne peut pas être connue à l'avance. Par
"valeur de dynamique" d'une donnée on entend la plage de valeurs dans laquelle se situe cette donnée, c'est à dire par exemple entre - 0,5 et + 0,5 ou entre - 0,05 et + 0,05 etc..
Aussi, une première solution consiste à étendre globalement a priori la dynamique des données, c'est-à-dire qu'on estime a priori la dynamique nécessaire sur les données en sortie du circuit pour ne pas perdre trop de précision sur les bits significatifs, en supposant bien sûr qu'il ne se produit aucune saturation sur les calculs internes, et on augmente ensuite la taille des mots des données d'entrée du nombre de bits supplémentaires estimé.
Les données intermédiaires et les données de sortie seront donc également représentés avec des mots de cette taille. Ceci conduit à une augmentation de la taille des chemins de données internes du circuit qui peut être importante dans le cas de transformées de Fourier de grande taille nécessitant plusieurs étages de traitement, et donc à une augmentation pénalisante de la surface totale du circuit par exemple implanté une pastille de silicium.
Une autre solution consiste également à étendre la dynamique des chemins de données a priori, mais cette fois-ci étage par étage. Une telle solution est certes plus avantageuse que la première mais elle conduit également à une augmentation artificielle de la taille des che¬ mins de données internes du circuit et donc de sa surface.
L'article de BI et JONES précédemment cité n'évoque aucune so¬ lution à ce problème de la dynamique des données. L'invention vise à apporter une solution plus satisfaisante à ce
problème.
Un but de l'invention est de proposer un dispositif de calcul d'une transformée de Fourier du type à dynamique constante et dans lequel la taille des chemins de données internes n'est pas augmentée de façon artificielle.
L'invention a donc pour objet, un dispositif électronique de calcul d'une transformée de Fourier de taille initiale prédéterminée, compre¬ nant une pluralité d'étages de traitements successifs connectés en série entre l'entrée et la sortie du dispositif par des chemins de données in- ternes et comportant respectivement des moyens de traitement élémen¬ taires aptes à effectuer des traitements de transformée de Fourier de tailles prédéterminées plus petites que la taille initiale, sur des blocs de données de tailles successivement réduites d'un étage au suivant. Selon une caractéristique générale de l'invention, le dispositif com- prend :
- des moyens de détermination d'une valeur de dynamique globale pour chaque bloc de données délivré par les moyens de traitement élé¬ mentaires d'un étage de traitement courant, à partir des valeurs de dy¬ namique de toutes les données dudit bloc, - des moyens pour retarder temporellement la délivrance des don¬ nées dudit bloc considéré aux moyens de traitement élémentaires de l'étage de traitement suivant, au moins jusqu'à la délivrance de toutes les données dudit bloc par les moyens de traitement élémentaires de l'étage de traitement courant, - des moyens de recadrage intermédiaire pour recadrer les données dudit bloc considéré, compte tenu de la valeur correspondante de dy¬ namique globale, et pour délivrer des données recadrées aux moyens de traitement élémentaires de l'étage de traitement suivant, et
- des moyens de détermination de valeurs de dynamique finales associées aux données de sortie, et obtenues à partir des valeurs de dy¬ namique globales successivement calculées, de façon à minimiser la taille des chemins de données internes du dispositif.
En d'autres termes, l'invention prévoit un recadrage adaptatif, c'est-à-dire compte tenu d'une valeur de dynamique effectivement cal-
culée, sur des blocs de données de tailles successivement réduites d'un étage à l'autre.
Selon un mode de réalisation du dispositif selon l'invention, les données d'entrée sont reçues séquentiellement selon une fréquence d'entrée déterminée par un signal d'horloge de base. Les moyens de traitement élémentaires de l'étage de rang t sont aptes à effectuer un traitement élémentaire de transformée de Fourier de taille rt sur des blocs successifs de données à la fréquence du signal d'horloge de base. Les moyens de retard temporels comportent des premiers moyens de retard commutables aptes à mémoriser temporairement des blocs de données tirés de ceux délivrés par les moyens de traitement élémentaires de l'étage courant, et à délivrer aux moyens de traitement élémentaires de l'étage suivant, au rythme du signal d'horloge de base, et avec un retard temporel prédéterminé, pour chaque bloc reçu, des groupes successifs de rt donnés ordonnés selon un ordre prédéterminé.
Les moyens de retard temporels comportent également des deuxièmes moyens de retard connectés aux premiers et également cadencés par le signal d'horloge de base. Les premiers et deuxièmes moyens de retard sont aptes ensemble à mémoriser toutes les données de chaque bloc issu des moyens de traitement élémentaire de l'étage précédent. En d'autres termes, la taille mémoire des premiers et deuxièmes moyens de retards est au moins égale au nombre de ces données.
Les premiers moyens de retard commutables de l'étage de rang t comportent avantageusement rt sorties connectées aux moyens de traitement élémentaires de cet étage, ainsi que deux jeux de rt- l éléments de retard connectés en série. La sortie du dernier élément de retard du premier jeu est directement connectée à l'une des rt sorties des premiers moyens de retard tandis que les sorties des éléments de retard du deuxième jeu sont respectivement reliées aux autres sorties des premiers moyens de retard par l'intermédiaire de l'une des entrées de moyens de commutation commandables à deux entrées. Les entrées des éléments de retard du premier jeu sont par ailleurs respectivement reliées aux autres entrées des moyens de commutation commandables à deux entrées. Les deuxièmes moyens de retard comportent par ailleurs un élément de retard relié à l'entrée des premiers moyens de retard.
Tous les éléments de retard ont par ailleurs avantageusement la même taille-mémoire.
Les éléments de retard comportent de préférence des lignes à retard dynamiques. Selon un mode de réalisation du dispositif, les moyens de détermination de la valeur de dynamique globale de chaque bloc comportent des moyens de détermination du nombre de bits de signe dupliqués de chaque donnée du bloc, ladite valeur de dynamique globale associée au bloc étant le plus petit des nombres de bits de signe dupliqués.
Les moyens de recadrage intermédiaire comportent avantageusement des moyens de décalage des bits du mot de chaque données du bloc vers le bit de poids fort, ces moyens de décalage étant reliés aux moyens de détermination de valeur de dynamique globale. Les moyens de retard temporels sont avantageusement situés entre les moyens de traitement élémentaires de chaque paire d'étages consécutifs, tandis que les moyens de détermination de valeurs de dynamique globales sont connectés à la sortie des moyens de traitement élémentaires de chaque étage. Selon un mode de réalisation, les moyens de traitement élémentaires de chaque étage comportent un ensemble d'additionneurs / soustracteurs suivi d'un multiplieur; les moyens de décalage sont disposés avant l'ensemble d'additionneurs / soustracteurs ou avantageusement entre cet ensemble et le multiplieur. Les moyens de détermination de valeurs de dynamique finales peuvent comporter une succession de registres, de même taille, cadencés respectivement par des signaux d'horloges de fréquence plus élevées d'un étage au suivant, et respectivement reliés d'une part aux moyens de détermination de valeurs de dynamique globale de l'étage correspondant et d'autre part au registre précédent par un additionneur. L'invention a également pour objet un procédé pour minimiser la taille des chemins de données internes d'un dispositif de calcul d'une transformée de Fourier d'une taille initiale prédéterminée, à architecture dite série ou "pipelinée", dans lequel on effectue au sein du dispositif une succession de traitements élémentaires de transformée de Fourier de tailles élémentaires prédéterminées plus
petites que la taille initiale, sur des blocs de données de taille successivement réduite d'un traitement élémentaire au suivant. Selon une caractéristique générale de l'invention, on détermine une valeur de dynamique globale pour chaque bloc de données issu d'un traitement élémentaire courant, à partir des valeurs de dynamique de toutes les données du bloc et on recadre les données du bloc, compte tenu de la valeur de dynamique globale, avant d'effectuer complètement le traitement élémentaire suivant sur ces données.
Selon un mode particulier de mise en oeuvre du procédé selon l'invention, dans lequel les données d'entrée du dispositif sont fournies à une cadence d'horloge de base prédéterminée, chaque traitement élémentaire est cadencé par ladite horloge de base et l'on retarde le début du traitement élémentaire suivant sur les données du bloc issues du traitement élémentaire courant, au moins d'un nombre de cycles d'horloge de base égal au nombre de données du bloc, après obtention de la première des données issue du traitement élémentaire courant.
On détermine avantageusement la valeur de dynamique globale de chaque bloc à partir de la détection du nombre de bits de signe de toutes les données du bloc, la valeur de dynamique globale étant le nombre minimum de bits de signe dupliqués desdites données.
On recadre de préférence les données du bloc par un décalage de tous les bits du mot de chaque donnée vers le bit de poids fort d'un nombre de bits égal audit nombre minimum de bits de signe dupliqués. Selon un mode de mise en oeuvre du procédé, on incrémente chaque valeur de dynamique globale d'un bloc donnant lieu à un traitement élémentaire, par la valeur de dynamique globale de chaque bloc issu de ce bloc après ledit traitement élémentaire, de façon à obtenir en fin de traitement une valeur de dynamique finale pour chaque donnée de sortie. H est alors possible d'effectuer un recadrage final de chaque donnée de sortie à partir de la valeur de dynamique finale associée si l'on souhaite une sortie de données sur un nombre de bits prédéterminé. On peut éventuellement s'abstenir d'un tel recadrage si l'on adopte une représentation du type flottant. Cependant dans ce cas, il convient néanmoins d'associer à la valeur de la donnée de sortie, sa
valeur de dynamique finale afin d'éviter un résultat erroné.
Chaque traitement élémentaire comportant un ensemble d'additions /soustractions suivi d'une multiplication, on peut recadrer les données avant d'effectuer les additions/soustractions ou bien après avoir effectuer ces additions/soustractions mais avant d'effectuer la multiplication.
D'autres avantages et caractéristiques de l'invention apparaîtront à l'examen de la description détaillée d'un mode de réalisation et de mise en oeuvre nullement limitatifs de l'invention et illustrés sur les dessins annexés sur lesquels :
- la figure 1 illustre le graphe de calcul à structure à base de papillons implémenté dans un dispositif à architecture pipelinée à trois étages,
- les figures 2 et 3 illustrent plus en détails l'architecture du dispositif correspondant au graphe de la figure 1,
- la figure 4 illustre schématiquement l'architecture matérielle d'un opérateur matériel du type papillon tel que celui utilisé dans le graphe de la figure 1,
- les figures 5 et 6 illustrent respectivement deux mots de données avant et après recadrage intermédiaire,
- la figure 7 illustre un chronogramme correspondant au graphe de calcul de la figure 1 et au fonctionnement du dispositif des figures 2, 3 et 4, et
- la figure 8 illustre une réalisation matérielle schématique d'un point mémoire d'une ligne à retard dynamique utilisable dans un dispositif selon l'invention.
Dans l'exemple décrit maintenant, la taille initiale N de la transformée de Fourier est égal à 32, et se réduit au calcul de trois transformées de Fourier de tailles élémentaires rj, r2 et r3 respectivement égales à 4, 4 et 2. Il s'agit donc la d'une transformée de
Fourier à radix mixte puisque la taille rt de l'étage de traitement de rang t(t == 1, 2 ou 3) est différente pour les deux premiers étages et pour le troisième et dernier étage. Bien entendu, l'invention s'applique également aux transformées de Fourier à radix uniforme. Chaque donnée d'entrée est un mot complexe ayant un partie réelle et une
partie imaginaire codées sur n bits en représentation en complément à 2, et cadrées entre - 1 et 1.
Si l'on se réfère plus particulièrement aux figures 1 et 2 on voit donc que le premier étage de traitement ETl effectue un traitement élémentaire de transformée de Fourier de taille 4 sur un bloc de 32 données, qui sont en fait les données d'entrée. Le deuxième étage de traitement ET2 effectue un traitement élémentaire de transformée de Fourier de taille r2 = 4 sur 4 blocs successifs Bl, B2, B3 et B4 de huit données tandis que le dernier étage ET3 effectue un traitement élémentaire de transformée de Fourier de taille r3 = 2 sur 16 blocs successifs B5 à B20 de deux données.
D'une façon générale, dans une succession d'étages de traitement, l'étage de rang t effectue un traitement élémentaire de transformées de Fourier de taille rt sur des blocs successifs de rt Nt données avec
N t = N/ π rt- f ≤ t où EL désigne la fonction "produit".
Le premier étage de traitement ETl effectue un traitement du type "papillon" sur des groupes de 4 données. Le jeu de données intermédiaires de sortie Xi, obtenu après traitement par les papillons et multiplication par un coefficient m N égal au nombre complexe e"J2mπ /N, peuvent être subdivisés en quatre blocs de 8 données. Sur chacun de ces blocs, est effectué un traitement du type "papillon" sur des groupes de 4 données. Après multiplication par le coefficient Wq les données de sortie Yi peuvent être réparties en 16 blocs de deux données sur chacun desquels opère un opérateur de type papillon d'une transformée de Fourier de taille 2. Sur la figure 1, cet opérateur papillon de taille 2, de structure bien connue de l'homme du métier et par exemple illustré dans l'ouvrage de Lawrence R. Rabiner - Bernard Gold intitulé "Theory and Application of Digital Signal Processing", a été représenté sans le multiplieur associé, en raison de sa localisation en fin de chaîne.
De même, l'homme du métier aura compris que l'ordre des données n'est pas le même d'un étage à l'autre. Ainsi, alors que, comme illustré sur la figure 2 en particulier, les données d'entrée arrivent dans l'ordre 0,1,2, ,31, les données de sortie correspondantes sont délivrées ici dans l'ordre 0,16, 4..., 31.
Comme on le verra plus en détails ci-après, à chaque étage, à partir du deuxième, on détermine pour chaque bloc de données B1-B20 une valeur de dynamique globale E1-E20, à partir des valeurs de dynamique de toutes les données du bloc. Ceci permet de recadrer les données du bloc avant traitement dans l'opérateur papillon. Bien entendu, il n'est pas indispensable quoique possible éventuellement, de prévoir des moyens pour calculer une valeur de dynamique globale pour le bloc des 32 données d'entrée, puisque celles ci sont délivrées avec un cadrage commun de sorte que leurs parties réelle et imaginaire sont toutes comprises entre - 1 et 1.
L'architecture matérielle d'un circuit D mettant en oeuvre le graphe de calcul de la figure 1, est illustrée plus particulièrement sur les figures 2 à 4. Ce circuit, avantageusement réalisé de façon câblée, c'est-à-dire intégré sur une pastille de silicium, par exemple, et comportant des éléments discrets, peut se décomposer en une succession d'étages de traitements successifs ETl, ET2, ET3, connectés entre eux et entre l'entrée de données ES et la sortie de données OUT par des chemins de données internes, ou bus, de taille n bits. Chaque étage de traitement, par exemple l'étage de traitement de rang 2, ET2, comporte des moyens de traitement élémentaires EAS2,
MC2, aptes à effectuer un traitement élémentaire de transformée de Fourier de taille rt sur des blocs successifs de données de tailles réduites. Ainsi, les moyens de traitement élémentaires EAS1, MCI de l'étage de rang 1, ETl, vont effectuer un traitement de transformée de Fourier de taille 4, sur des groupes successifs de quatre données d'entrées, ordonnées selon un ordre prédéterminé, et prises parmi le bloc des 32 données d'entrée.
Les moyens de traitement élémentaires de l'étage de rang 2, ET2, vont de même effectuer un traitement de transformée de Fourier de taille 4 sur des groupes successifs de 4 données du bloc Bl, ordonnées
selon un ordre prédéterminé, et correspondants aux papillons correspondants du graphe de calcul puis un autre traitement élémentaire de transformée de Fourier de taille 4 sur des groupes successifs de 4 données du bloc B2 et ainsi de suite jusqu'aux données du bloc B4.
Les moyens de traitement élémentaires de chaque étage, notamment l'étage de rang 2, ET2, sont cadencés par un signal d'horloge de base H délivré par un circuit approprié BH2. A ces moyens de traitement élémentaires EAS2,MC2 de l'étage ET2, sont associés des premiers moyens de retard commutables MRA2 aptes à délivrer aux moyens de traitement élémentaires EAS2.MC2, au rythme du signal d'horloge de base H, et avec un retard temporel prédéterminé, pour chaque bloc reçu, les groupes successifs de rt données ordonnées selon un ordre prédéterminé. Ces premiers moyens de retard commutables MRA2 de l'étage courant de rang 2, ET2, comportent 4 sorties S21, S22, S23, S24 connectées aux moyens de traitement élémentaires EAS2, MC2. Ils comportent également deux jeux de trois éléments de retard connectés en série. Ces éléments de retard sont référencés ER1-2 à ER6-2 et le premier jeu d'éléments comporte les éléments ER1-2 à ER3-2 tandis que le deuxième jeu comporte les éléments ER4-2 à ER6-2.
La sortie du dernier élément de retard ER3-2 du premier jeu est directement connectée à la sortie S21. Les sorties des éléments de retard ER4-2 à R6-2 du deuxième jeu sont respectivement reliées aux autres sorties S23,S23, S24 par l'intermédiaire de l'une des entrées de moyens de commutation commandables à deux entrées Ca, Cb, Ce.
Par ailleurs, les entrées des éléments de retard du premier jeu sont respectivement reliées aux autres entrées des moyens de commutation Ca, Cb et Ce. Les moyens de commutation Ca, Cb et Ce sont commandés par des signaux de commande issus d'une logique de commande LC2. Un exemple de commande de ces commutateurs est fourni dans l'article de BI et JONES précité, qui est à toutes fins utiles incorporé au contenu de la présente description. La taille de chacun de ces éléments de retard, c'est à dire le
nombre de données qu'ils peuvent chacun stocker momentanément, est en ce qui concerne l'étage de rang 2, ET2, égal à 2. Plus généralement, dans une succession d'étages de traitement, la taille de chacun des éléments de retard est égale à
N/ π rf f < t où t désigne le rang de l'étage.
Bien entendu, l'homme du métier aura compris que, bien que l'on ait utilisé à des fins de simplification le mot "taille" pour désigner globalement le nombre de données à stocker, la capacité de stockage de chacun de ces éléments de retard est en faite plus importante puisque chaque donnée est une donnée complexe composée de deux mots représentant respectivement la partie imaginaire et la partie réelle de la donnée.
Il est également prévu des deuxièmes moyens de retard MRB2, comportant un élément de retard de même taille que les éléments de retard des premiers moyens de retard MRA2, et dont la sortie est reliée à l'entrée EN2 de ces premiers moyens de retard MRA2, donc en l'espèce à l'entrée du premier élément de retard ER1-2 du premier jeu.
Tous ces éléments de retard sont d'une façon générale des moyens de mémoire à accès séquentiel cadencés par le signal d'horloge de base H. Matériellement, ils peuvent être réalisés par exemple par des registres à décalage ou bien des mémoires du type Premier Entré, Premier Sorti (FIFO en langue anglaise). Néanmoins, il est particulièrement avantageux, pour des raisons d'encombrement, de prévoir des lignes à retard dynamiques dont les différents points mémoire sont réalisés à partir de trois transistors comme illustré sur la figure 8. Les deux transistors Tl et T2 sont respectivement commandés sur leurs grilles par des signaux de commande d'écriture et de lecture. Il sont par ailleurs respectivement reliés entre d'une part un bus d'écriture BEC et un bus de lecture BLE, et d'autre part la masse par l'intermédiaire d'un troisième transistor T3. La valeur stockée est mémorisée au niveau du transistor T3.
Les moyens de traitement élémentaires de chaque étage, tels que
ceux de l'étage ET2 et schématiquement représentés sur la figure 4, comportent un ensemble EAS2 d'additionneurs/soustracteurs complexes (ici trois) AS l, AS2, AS3 suivis d'un multiplieur complexe MC2. les moyens de traitement élémentaires comportent rt entrées, (ici quatre) qui sont reliées aux deux additionneurs/soustracteurs AS l,
AS2 par l'intermédiaire d'un multiplexeur MUX commandé par la logique de commande LC2. Un exemple plus complet de réalisation de ce type d'opérateur est illustré dans l'article de BI et JONES précité. D'une façon générale, à la réception simultanée de quatre données entrées aO, al, a2 et a3, les moyens de traitement élémentaires délivrent successivement quatre données de sorties bO, bl, b3, b4 correspondant à la transformée de Fourier des données d'entrées.
Entre la sortie du multiplieur MCI des moyens de traitement élémentaires de l'étage ETl et l'entrée de l'étage ET2 (c'est-à-dire ici l'entrée des deuxièmes moyens de retard MRB2), est prévu un moyen
CD1 de cadrage sur n bits, à gauche par exemple, des données Xi issues des moyens de traitement élémentaires de l'étage ETl.
A la sortie du moyen CD1 de l'étage ETl sont par ailleurs connectés des moyens DBS2 capables de déterminer pour chaque bloc de données issu du multiplieur MCI une valeur de dynamique globale pour ce bloc à partir des valeurs de dynamique de toutes les données de ce bloc.
Concrètement, lorsque les mots de chaque donnée sont codés dans une représentation binaire en complément à 2 sur un nombre prédéterminé de bits, la détection de la valeur de dynamique de chaque donnée s'effectue à partir de la détection du nombre de bits de signe dupliqués du mot de cette donnée. Les moyens DBS2 comportent alors des moyens de comparaison de la valeur du bit de poids fort du mot de la donnée, avec un certain nombre de bits immédiatement voisins, par exemple trois. Le nombre de bits voisins et égaux au bit de signe détermine ainsi le nombre de bits de signe dupliqués. Dans l'exemple illustré sur la figure 5, ou S désigne le bit de signe et BT1 à BT6 les bits significatifs, les trois bits de gauche sont identiques ce qui correspond à deux bits de signe dupliqués. Les moyens DBS2 comportent par ailleurs des moyens de
détermination du plus petit des nombres de bits de signe dupliqués de toutes les données du bloc considéré. Ce nombre le plus petit, qui représente la valeur de dynamique globale du bloc, est alors stocké dans un registre RGb2, commandé par un signal d'horloge H2 tiré du signal d'horloge de base H.
Des moyens de recadrage des données délivrées par les moyens de retard MRA2 sont alors disposées entre la sortie de ces moyens de retard et l'entrée de l'ensemble EAS2 d'additionneurs/soustracteurs des moyens de traitement élémentaires de l'étage ET2. Ces moyens de recadrage des données, comportent ici un décaleur DL2 apte à décaler vers la gauche, c'est-à-dire vers le bit de poids fort, toutes les données d'un bloc, d'une valeur égale au nombre stocké dans le registre RGbl. Ainsi, comme illustré sur la figure 6, le mot de donnée décalé comporte maintenant comme bit de poids fort le bit de signe S suivi des six bits significatifs BT1 et BT6. Les deux derniers bits de ce mot, qui, avant décalage avaient les valeurs BT5 et BT6, ont maintenant les valeurs 0. L'homme du métier comprend donc aisément que ce décalage à gauche des bits significatifs du mot de données compte tenu de la valeur de dynamique globale précédemment calculée permet de conserver une précision acceptable sur les données, tout en conservant une représentation sur n bits.
La sortie des moyens DBS2 est par ailleurs reliée à un additionneur A2 dont l'autre entrée est connectée sur un bus de transmission de données BS1 et dont la sortie est reliée à un autre registre RGa2 également commandé par le signal d'horloge H2. La sortie de ce registre RGa2 est reliée à une autre partie BS2 du bus de transmission de données. On reviendra plus en détails ci-après sur la fonction de ces moyens.
On va maintenant décrire en détails le fonctionnement du dispositif selon l'invention en se référant notamment au chronogramme temporel illustré sur la figure 7.
Sur cette figure 7, on suppose, pour des raisons de simplifications que les calculs effectués par les additionneurs/soustracteurs, les multiplieurs complexes, ainsi que la détection du nombre de bits de signe dupliqués et l'addition dans les différents additionneurs Al, A2,
A3 (voir notamment figure 2) s'effectuent en un seul et même cycle d'horloge de base H.
Le signal d'horloge H2 de l'étage ET2, dont les fronts montants sont synchrones avec le début des blocs de données issus du multiplieur MCI, a une fréquence huit fois plus faible que la fréquence du signe d'horloge de base H.
Les données XO - X7 forment le premier bloc de données B 1 issu des moyens de traitement élémentaires de l'étage ETl. La détection du nombre de bits de signe dupliqués de chacune de ces données est effectuée dans les moyens DBS2 et la valeur El de dynamique globale de ce bloc, c'est-à-dire le plus petit des nombres de bits de signe dupliqués, est stockée dans le registre RGb2 au front montant suivant de l'horloge H2. Par ailleurs, au fur et à mesure que les données du bloc sont délivrées par le multiplieur MCI, elles sont stockées dans les moyens de mémoire MRB2 et MRA2 puis délivrées séquentiellement selon un ordre prédéterminé par groupes de 4 aux quatre sorties S21, S22, S23 et S24. Cependant, compte tenu de la structure des moyens de retard temporels MRA2 et MRB2, et de leurs taille mémoire, le premier groupe de données XO, X6, X4, X2, n'est présentée aux sorties S21, S22, S23 et S24 des moyens de retard temporels (et donc ne sont susceptibles d'être traités par les moyens de traitement élémentaires de l'étage ET2), qu'après que toutes les données du bloc XO - X7 ont été délivrées par le multiplieur MCI.
En d'autres termes, d'une façon générale dans une succession d'étages de transformée de Fourier, on retarde le début du traitement élémentaire suivant (c'est-à-dire ici dans l'étage ET2) sur les données d'un bloc issu du traitement élémentaire courant (étage ETl), d'un nombre de cycles d'horloge de base au moins égal à rt Nt, après obtention de la première des données de ce bloc issue du multiplieur MCI.
Les huit groupes successifs G1-G8 de quatre données présentés en sortie des moyens de retard temporels MRA2 sont alors décalés vers la gauche de la valeur El dans le décaleur DL2 avant délivrance à l'ensemble d'additionneurs/soustracteurs EAS2 des moyens de traitement élémentaires de l'étage ET2.
L'homme du métier aura compris que la présence de l'élément de retard MRB2 est essentielle. En effet, en l'absence de cet élément, certaines des données issues du multiplieur MCI auraient été présentées à l'entrée de l'ensemble EAS2 avant que toutes les données du bloc B l aient été délivrées par le multiplieur MCI. Il aurait été donc impossible de recadrer le premier groupe Gl de quatre données délivrées par les * moyens de retard temporels MRA2 et MRB2 à l'ensemble EAS2.
Les mêmes opérations sont effectuées pour le deuxième bloc de données B2 issu du multiplieur MCI. La valeur de dynamique globale
E2 est également stockée dans le registre RGb2 aux fins du décalage des données de ce bloc avant traitement dans l'ensemble EAS2.
Il convient de noter que bien qu'il soit prévu ici de disposer le décaleur DL2 avant l'ensemble EAS2 d'additionneurs / soustracteurs, il est avantageux de décaler les données entre la sortie de cet ensemble
EAS2 et l'entrée du multiplieur MC2 en raison de la simplification de structure du décaleur alors employé.
On dispose donc à la sortie des moyens DBS2 de quatre valeurs de dynamique globale El, E2, E3 et E4 respectivement associées aux quatre blocs Bl, B2, B3 et B4. Ces quatre valeurs sont respectivement additionnées dans l'additionneur A2 à la donnée d'entrée disponible sur le bus BS 1. En fait, cette valeur d'entrée est ici égale à 0 puisqu'aucune valeur de dynamique n'a été calculée pour le bloc des trente deux données d'entrée. Les quatre valeurs de dynamique globale El - E4 sont par conséquent stockées dans le registre RGa2.
A la sortie du multiplieur MC2, les données Yi seront réparties en 16 blocs B5 - B20 de deux données, donnant lieu respectivement à 16 valeurs de dynamique globale E5 - E20, servant au recadrage de ces données, d'une façon analogue à ce qui a été exposé précédemment, avant leur traitement dans les moyens de traitement élémentaires de l'étage ET3. Les blocs de données B5 à B8 sont issus du bloc de données B l, tandis que les blocs de données B9 à B 12 sont issus du bloc de données B2. Les blocs de données B 13 à B16 sont issus du bloc de données B3 et les blocs de données B17 à B20 du bloc de données B4. Les, seize valeurs E5 - E20 vont être délivrées au registre
RGa3 de l'étage ET3 (figure 2). Les quatre premières valeurs de ce registre seront égales respectivement à la valeur de dynamique globale El du bloc B l incrémentée par les quatre valeurs de dynamique globale E5 - E8 associées aux blocs B5 - B8 issus du bloc B l, tandis que les autres valeurs seront respectivement égales à la somme des autres valeurs de dynamique globale E2 à E4 incrémentées par les valeurs de dynamique globale des blocs résultants des trois autres blocs B2 - B4. La taille en nombre de mots du registre RGa3 est identique à la taille du registre RGa2. Néanmoins, étant donné qu'il est cadencé par le signal d'horloge H3 qui est quatre fois plus rapide que le signal d'horloge H2, il permet de stocker quatre fois plus de valeurs.
On obtient donc en sortie du dispositif D, une valeur de dynamique finale pour chacune des données de sortie permettant de connaître de combien de bits au total cette donnée a été décalée. Dans l'exemple décrit, à chaque paire de données de sortie délivrées par les moyens de traitement élémentaires du dernier étage est associée la même valeur de dynamique finale.
Plus généralement, bien que deux détections et décalages aient été décrits plus haut pour faciliter la compréhension du fonctionnement du dispositif, il n'est effectué en pratique une détection et un décalage uniquement pour les étages de traitement intermédiaires. Aussi dans le cas d'une transformée de Fourier de 32 points à radix mixte (4, 4, 2), seul le deuxième étage comprendra la détection et le décalage. En ce qui concerne les valeurs de dynamique finale, si un traitement de décalage et de détection est réalisé sur le dernier étage, une valeur de dynamique finale sera associée à un bloc de longueur égale au radix de cet étage. Par contre, en l'absence de traitement sur cet étage une valeur de dynamique finale sera associée à un bloc de nombre de valeurs plus important (16 valeurs dans le cas où les deux derniers étages sont de radix 4, et 8 valeurs pour des radix respectivement égaux à 4 et 2).
Afin bien entendu de ne pas obtenir des données erronées en sortie, il convient d'effectuer en sortie du dispositif un recadrage final de ces données en décalant chacune d'entre elles à droite, c'est-à-dire
vers le bit de poids faible, d'un nombre de bits égal à la valeur de dynamique finale associée à la donnée. On peut utiliser pour cela des moyens de décalage spécifiques MRF (figure 2). Néanmoins, de tels moyens ne sont pas indispensables si l'on adopte une représentation "en flottant". Il convient cependant dans ce cas de prévoir une sortie auxiliaire du dispositif délivrant ces différentes valeurs de dynamique finales en association avec chacune des données de sortie, afin que ces informations puissent être prises en compte ultérieurement.
L'homme du métier aura compris que l'invention permet de travailler à dynamique constante en minimisant la taille des chemins de données internes des circuits, c'est-à-dire en limitant cette taille à n bits, sans perdre trop de précision sur les données intermédiaires. Ceci permet donc de réaliser notamment des circuits intégrés capables de réaliser des transformées de Fourier de 8192 points complexes en 1 milliseconde dans une technologie CMOS submicronique, utilisables dans les applications terrestres de télévision numérique, et ce sans augmentation inutile et pénalisante de la surface d'un tel circuit.
Claims
1. Dispositif électronique de calcul d'une transformée de Fourier d'une taille initiale prédéterminée, comprenant une pluralité d'étages de traitement successifs (ETl, ET2, ET3) connectés en série entre l'entrée (ES) et la sortie (OUT) du dispositif par des chemins de données internes- et comportant respectivement des moyens de traitement élémentaires aptes à effectuer des traitements de transformée de Fourier de tailles élémentaires (rt) prédéterminées plus petites que la taille initiale, sur des blocs de données de taille successivement réduites d'un étage au suivant, caractérisé par le fait qu'il comprend :
- des moyens (DBS2) de détermination d'une valeur de dynamique globale (El, ... E20) pour chaque bloc de données (Bl, ... B20) délivré par les moyens de traitement élémentaires d'un étage de traitement courant, à partir des valeurs de dynamique de toutes les données dudit bloc,
- des moyens (MRA2, MRB2) pour retarder temporellement la délivrance des données dudit bloc considéré aux moyens de traitement élémentaires de l'étage de traitement suivant (ET2), au moins jusqu'à la délivrance de toutes les données dudit bloc par les moyens de traitement élémentaires de l'étage de traitement courant (ETl),
- des moyens de recadrage intermédiaire (DL2) pour recadrer les données dudit bloc considéré, compte tenu de ladite valeur correspondante de dynamique globale, et pour délivrer des données recadrées aux moyens de traitement élémentaires de l'étage de traitement suivant (ET2), et
- des moyens (A2, RGa2, A3, RGa3) de détermination de valeurs de dynamique finales associées aux données de sortie et obtenues à partir des valeurs de dynamique globales successivement calculées, de façon à minimiser la taille des chemins de données internes du dispositif.
2. Dispositif selon la revendication 1, caractérisé par le fait que les données d'entrée étant reçues séquentiellement selon une fréquence d'entrée déterminée par un signal d'horloge de base (H), les moyens de traitement élémentaires de l'étage de rang t sont aptes à effectuer un traitement élémentaire de transformée de Fourier de taille rt sur des blocs successifs de données, à la fréquence du signal d'horloge de base, par le fait que les moyens de retard temporels comportent des premiers moyens de retard commutables (MRA2) aptes à mémoriser temporellement des blocs de données tirés de ceux délivrés par les moyens de traitement élémentaires de l'étage courant (ETl) et à délivrer aux moyens de traitement élémentaires de l'étage suivant (ET2), au rythme du signal d'horloge de base, et avec un retard temporel prédéterminé, pour chaque bloc reçu, des groupes successifs (Gl - G8) de rt donnés ordonnées selon un ordre prédéterminé, ainsi que des deuxièmes moyens de retard (MRB2) connectés aux premiers et également cadencés par le signal d'horloge de base (H), et par le fait que les premiers et deuxièmes moyens de retard ont ensemble une taille mémoire au moins égale au nombre de données de chaque bloc issu des moyens de traitement élémentaires de l'étage courant (ETl).
3. Dispositif selon la revendication 2, caractérisé par le fait que les premiers moyens de retard commutables (MRA2) de l'étage de rang t comportent rt sorties (S21, S22, S23, S24) connectés aux moyens de traitement élémentaires de cet étage, ainsi que deux jeux de rt-l éléments de retard connectés en série, par le fait que la sortie du dernier élément de retard (ER3-2) du premier jeu est directement connectée à l'une (S21) des rt sorties des premiers moyens de retard (MRA2), par le fait que les sorties des éléments de retard (ER4-2, ER5-2, ER6-2) du deuxième jeu sont respectivement reliées aux autres sorties (S22, S23, S24) des premiers moyens de retard par l'intermédiaire de l'une des entrées de moyens de commutation commandables à deux entrées, (Ca, Cb, Ce), par le fait que les entrées des éléments de retards du premier jeu sont respectivement reliées aux autres entrées des moyens de commutation à deux entrées, (Ca, Cb, Ce), par le fait que les deuxièmes moyens de retard (MRB2) comportent un élément de retard relié à l'entrée (EN2) des premiers moyens de retard, commutables (MRA2), et par le fait que tous les éléments de retard ont la même taille - mémoire.
4. Dispositif selon la revendication 3, caractérisé par le fait que les éléments de retard comportent des lignes à retard dynamiques.
5. Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les moyens de détermination de la valeur de dynamique globale de chaque bloc comportent des moyens (DBS1) de détermination du nombre de bits de signe dupliqués de chaque donnée du bloc, ladite valeur de dynamique globale associée au bloc étant le plus petit des nombres de bits de signe dupliqués.
6. Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les moyens de recadrage intermédiaires comportent des moyens (DL2) de décalage des bits du mot de chaque donnée du bloc vers le bit de poids fort, ces moyens de décalage étant reliés aux moyens (DBS2) de détermination de valeur de dynamique globale.
7. Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les moyens de retard temporels sont situés entre les moyens de traitement élémentaires (EAS1, MCI; EAS2, MC2) de chaque paire d'étages consécutifs.
8. Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les moyens de détermination de valeurs de dynamique globales sont connectés à la sortie des moyens de traitement élémentaires de chaque étage.
9. Dispositif selon l'une des revendications précédentes prise en combinaison avec la revendication 6, caractérisé par le fait que les moyens de traitement élémentaires de chaque étage comportent un ensemble (EAS2) d'additionneurs/soustracteurs suivi d'un multiplieur
(MC2), et par le fait que les moyens (DL2) de décalage sont disposés avant l'ensemble (EAS2) d'additionneurs/soustracteurs ou entre cet ensemble et le multiplieur (MC2).
10. Dispositif selon l'une des revendications précédentes, caractérisé par le fait que les moyens de détermination de valeurs de dynamique finales comportent une succession de registres (RGa2, RGa3), de même taille, cadencés respectivement par des signaux d'horloges (H2, H3) de fréquences plus élevées d'un étage au suivant, et respectivement reliés d'une part aux moyens de détermination de valeurs de dynamique globale (DBS2) de l'étage correspondant et d'autre part au registre précédent par un additionneur (A2, A3).
11. Procédé pour minimiser la taille des chemins de données internes d'un dispositif de calcul d'une transformée de Fourier de taille initiale prédéterminée, à architecture dite série ou "pipelinée" dans lequel on effectue au sein du dispositif une succession de traitements élémentaires de transformée de Fourier de tailles élémentaires prédéterminées plus petites que la taille initiale, sur des blocs de données de taille successivement réduite d'un traitement élémentaire au suivant, caractérisé par le fait que l'on détermine une valeur de dynamique globale (E1...E20) pour chaque bloc de données issu d'un traitement élémentaire courant (ETl), à partir des valeurs de dynamique de toutes les données du bloc, et on recadre (DL2) les données du bloc, compte tenu de ladite valeur de dynamique globale, avant d'effectuer complètement le traitement élémentaire suivant (ET2) sur ces données.
12. Procédé selon la revendication 11, dans lequel les données d'entrée du dispositif sont fournies à une cadence d'horloge de base prédéterminée (4), caractérisé par le fait que chaque traitement élémentaire est cadencé par la dite horloge de base, et par le fait que l'on retarde le début du traitement élémentaire suivant (ET2) sur les données du bloc issues du traitement élémentaire courant (ETl) au moins d'un nombre de cycles d'horloge de base égal au nombre de données du bloc, après obtention de la première des données de ce bloc issue du traitement élémentaire courant (ETl).
13. Procédé selon la revendication 11 ou 12, caractérisé par le fait que l'on détermine la valeur de dynamique globale de chaque bloc à partir de la détection du nombre de bits de signe de toutes les données du bloc, la valeur de dynamique globale étant le plus petit des nombres de bits de signe dupliqués desdites données.
14. Procédé selon la revendication 13, caractérisé par le fait que l'on recadre les données du bloc par un décalage de tous les bits du mot de chaque donnée vers le bit de poids fort, d'un nombre de bits égal audit plus petit des nombres de bits de signe dupliqués.
15. Procédé selon la revendication 14, caractérisé par le fait que l'on incrémente chaque valeur de dynamique globale d'un bloc donnant lieu à un traitement élémentaire par la valeur de dynamique globale de chaque bloc issu de ce bloc après ledit traitement élémentaire, de façon à obtenir en fin de traitement une valeur de dynamique finale pour chaque donnée de sortie.
Applications Claiming Priority (3)
Application Number | Priority Date | Filing Date | Title |
---|---|---|---|
FR9309865A FR2709007B1 (fr) | 1993-08-11 | 1993-08-11 | Dispositif électronique de calcul d'une transformée de Fourier et procédé pour minimiser la taille des chemins de données internes d'un tel dispositif. |
FR9309865 | 1993-08-11 | ||
PCT/FR1994/000996 WO1995004963A1 (fr) | 1993-08-11 | 1994-08-10 | Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif |
Publications (1)
Publication Number | Publication Date |
---|---|
EP0667969A1 true EP0667969A1 (fr) | 1995-08-23 |
Family
ID=9450119
Family Applications (1)
Application Number | Title | Priority Date | Filing Date |
---|---|---|---|
EP94924344A Withdrawn EP0667969A1 (fr) | 1993-08-11 | 1994-08-10 | Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif |
Country Status (5)
Country | Link |
---|---|
US (1) | US5774388A (fr) |
EP (1) | EP0667969A1 (fr) |
JP (1) | JPH08503322A (fr) |
FR (1) | FR2709007B1 (fr) |
WO (1) | WO1995004963A1 (fr) |
Families Citing this family (9)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
JP3665423B2 (ja) * | 1995-08-28 | 2005-06-29 | セイコーエプソン株式会社 | 高速フーリエ変換演算器及び高速フーリエ変換演算装置 |
JP3938238B2 (ja) * | 1997-02-04 | 2007-06-27 | 沖電気工業株式会社 | 高速フーリエ変換処理装置 |
DE10062759A1 (de) * | 2000-12-13 | 2002-08-29 | Ihp Gmbh | Verfahren und Schaltungsanordnung zur Durchführung einer Fast Fourier Transformation sowie Anwendung derselben |
WO2003009081A2 (fr) * | 2001-07-17 | 2003-01-30 | Koninklijke Philips Electronics N.V. | Demodulateur numerique pour recepteur terrestre |
US6999520B2 (en) * | 2002-01-24 | 2006-02-14 | Tioga Technologies | Efficient FFT implementation for asymmetric digital subscriber line (ADSL) |
CA2377623C (fr) | 2002-03-20 | 2008-04-22 | Dongxing Jin | Methode et appareil de reduction par calcul en vue de la detection de tonalites |
AU2003201555A1 (en) * | 2002-03-20 | 2003-09-29 | Tropic Networks Inc. | Method and apparatus to reduce the comlexity of the calculation of the fast fourier transform of a signal containing tones |
KR100925427B1 (ko) * | 2002-12-27 | 2009-11-06 | 엘지전자 주식회사 | 채널 등화기 |
US8893210B2 (en) * | 2010-08-20 | 2014-11-18 | Sony Corporation | Server load balancing for interactive television |
Family Cites Families (6)
Publication number | Priority date | Publication date | Assignee | Title |
---|---|---|---|---|
US3783258A (en) * | 1971-11-03 | 1974-01-01 | Us Navy | Fft processor utilizing variable length shift registers |
US3746848A (en) * | 1971-12-27 | 1973-07-17 | Bell Telephone Labor Inc | Fft process and apparatus having equal delay at each stage or iteration |
US3892956A (en) * | 1971-12-27 | 1975-07-01 | Bell Telephone Labor Inc | Cascade digital fast fourier analyzer |
US3899667A (en) * | 1972-12-26 | 1975-08-12 | Raytheon Co | Serial three point discrete fourier transform apparatus |
US4534009A (en) * | 1982-05-10 | 1985-08-06 | The United States Of America As Represented By The Secretary Of The Navy | Pipelined FFT processor |
FR2587819B1 (fr) * | 1985-09-24 | 1989-10-06 | Thomson Csf | Dispositif de calcul d'une transformee de fourier discrete, glissante et non recursive, et son application a un systeme radar |
-
1993
- 1993-08-11 FR FR9309865A patent/FR2709007B1/fr not_active Expired - Fee Related
-
1994
- 1994-08-10 EP EP94924344A patent/EP0667969A1/fr not_active Withdrawn
- 1994-08-10 WO PCT/FR1994/000996 patent/WO1995004963A1/fr not_active Application Discontinuation
- 1994-08-10 JP JP7506262A patent/JPH08503322A/ja active Pending
- 1994-08-10 US US08/416,907 patent/US5774388A/en not_active Expired - Fee Related
Non-Patent Citations (1)
Title |
---|
See references of WO9504963A1 * |
Also Published As
Publication number | Publication date |
---|---|
FR2709007B1 (fr) | 1995-09-29 |
FR2709007A1 (fr) | 1995-02-17 |
WO1995004963A1 (fr) | 1995-02-16 |
US5774388A (en) | 1998-06-30 |
JPH08503322A (ja) | 1996-04-09 |
Similar Documents
Publication | Publication Date | Title |
---|---|---|
EP0712072B1 (fr) | Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery | |
EP0154340A1 (fr) | Processeur de calcul d'une transformée discrète inverse du cosinus | |
FR2711436A1 (fr) | Procédé perfectionné de fonctionnement en parallèle de plusieurs unités de calcul, notamment en traitement d'images, et architecture correspondante. | |
EP0692762B1 (fr) | Circuit logique de multiplication parallèle | |
FR2588680A1 (fr) | Dispositif de calcul d'une transformee de fourier discrete, et son application a la compression d'impulsion dans un systeme radar | |
WO1995004963A1 (fr) | Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif | |
EP0171305B1 (fr) | Circuit de calcul de la transformée de Fourier discrète | |
EP0712070B1 (fr) | Procédé de production d'un paramètre de correction d'erreur associé à la mise en oeuvre d'opérations modulaires selon la méthode de Montgomery | |
EP0298002A1 (fr) | Mémoire de transposition pour circuit de traitement de données | |
EP0924627B1 (fr) | Processeur de calcul d'une transformation rapide de Fourier à architecture dite "pipelinée" | |
EP0262032B1 (fr) | Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur | |
EP0206892B1 (fr) | Procédé de traitement de signaux numérisés représentatifs d'une image origine | |
EP0478431A1 (fr) | Procédé et circuit de codage d'un signal numérique pour déterminer le produit scalaire de deux vecteurs et traitement TCD correspondant | |
FR2772951A1 (fr) | Procede de commande d'un etage radix 4 d'un dispositif electroonique de calcul d'une transformee de fourier a architecture dite "pipelinee", et dispositif correspondant | |
EP0476592A2 (fr) | Générateur d'adresses pour la mémoire de données d'un processeur | |
WO2000026790A1 (fr) | Memoire a acces vectoriel | |
FR2624282A1 (fr) | Comparateur binaire et operateur de tri de nombres binaires | |
EP0190514B1 (fr) | Dispositif de test en ligne de circuit de calcul de la transformée de Fourier discrète, et circuit comportant un tel dispositif | |
EP0175623A1 (fr) | Dispositif de traitement en temps réel de signal numérique par convolution | |
FR2772160A1 (fr) | Circuit de calcul de la transformee de fourier rapide et de la transformee de fourier rapide inverse | |
EP0947913A1 (fr) | Procédé de réalisation amélioré d'une division entière | |
EP0718755B1 (fr) | Composant électronique capable notamment d'effectuer une division de deux nombres en base 4 | |
EP0718746B1 (fr) | Multiplieur de booth pour fonctions trigonométriques | |
CA2359198C (fr) | Unite de calcul pour l'execution d'un protocole cryptographique | |
EP0245152A1 (fr) | Processeur de calcul de la transformée de Fourier discrète comportant un dispositif de test en ligne |
Legal Events
Date | Code | Title | Description |
---|---|---|---|
PUAI | Public reference made under article 153(3) epc to a published international application that has entered the european phase |
Free format text: ORIGINAL CODE: 0009012 |
|
17P | Request for examination filed |
Effective date: 19950407 |
|
AK | Designated contracting states |
Kind code of ref document: A1 Designated state(s): DE ES GB IT |
|
17Q | First examination report despatched |
Effective date: 19981124 |
|
GRAG | Despatch of communication of intention to grant |
Free format text: ORIGINAL CODE: EPIDOS AGRA |
|
STAA | Information on the status of an ep patent application or granted ep patent |
Free format text: STATUS: THE APPLICATION IS DEEMED TO BE WITHDRAWN |
|
18D | Application deemed to be withdrawn |
Effective date: 20020301 |