WO2002084510A2 - Systeme de processeur modulaire - Google Patents

Systeme de processeur modulaire Download PDF

Info

Publication number
WO2002084510A2
WO2002084510A2 PCT/CA2002/000539 CA0200539W WO02084510A2 WO 2002084510 A2 WO2002084510 A2 WO 2002084510A2 CA 0200539 W CA0200539 W CA 0200539W WO 02084510 A2 WO02084510 A2 WO 02084510A2
Authority
WO
WIPO (PCT)
Prior art keywords
data
circuit
group
cell
output
Prior art date
Application number
PCT/CA2002/000539
Other languages
English (en)
Other versions
WO2002084510A3 (fr
Inventor
Pierre Guilmette
Serge Glories
Original Assignee
G Ii Si Inc.
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 G Ii Si Inc. filed Critical G Ii Si Inc.
Priority to AU2002308957A priority Critical patent/AU2002308957A1/en
Publication of WO2002084510A2 publication Critical patent/WO2002084510A2/fr
Publication of WO2002084510A3 publication Critical patent/WO2002084510A3/fr

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F15/00Digital computers in general; Data processing equipment in general
    • G06F15/76Architectures of general purpose stored program computers
    • G06F15/80Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors
    • G06F15/8007Architectures of general purpose stored program computers comprising an array of processing units with common control, e.g. single instruction multiple data processors single instruction multiple data [SIMD] multiprocessors

Definitions

  • the present invention relates to a modular processor system.
  • the present invention relates more particularly to a modular processor system with configurable and inter-linkable elements.
  • a first method consists in implementing a multitasking structure for executing programs, in which different programs share the same processor in order to perform different tasks according to pre-established priorities.
  • the major drawback is that the tasks are not really simultaneous.
  • such a multitasking structure involves an additional management load on the part of the processor (in this case we speak of "overhead"), which can lead to a decrease in its performance. It is clear that such a sequential approach to transmitting commands is in contradiction with the nature of the process in the case where the objective is to carry out simultaneous operations, whether they are independent, correlated or even if the objective is to implement complex algorithms in the case of complex level equations.
  • a second method consists in implementing a system with multiple processors.
  • processors share a common environment.
  • Such systems are generally more efficient than previous systems.
  • they have the disadvantage of requiring more components.
  • processors share common connections and buses, these systems are limited in their operation to the data exchange capacities between the processors, that is to say essentially to one exchange at a time.
  • a respective mode such as a sinusoidal oscillator mode or an external signal mode for example, the definition of basic parameters of each cell such as: relative amplitude, relative frequency, phase, function of filtering, for example; and
  • these sound parallelization systems and methods teach means of grouping cells into groups, which also include absolute parameters of frequency and amplitude applying to all cells of a given group, and means of 'assignment of groups to the outputs of a circuit.
  • the modular architecture thus developed is clearly intended for the parallelization of sound signals.
  • the functions of the cells are adapted to the generation and calculation in parallel of sound functions.
  • the parameters of the cells are predefined according to the context of the sound processing in parallel, and the set of operations between these cells is managed accordingly. Consequently, there remains a large place for methods and systems making it possible to resolve the main limitations existing processors and to generalize a processing parallel to any type of data and signals.
  • the present invention provides a system for modular processor based on a cell architecture and making it possible to perform processing on input data in order to obtain output data, the system comprising means for performing complex, parallel, distinct and multiple arithmetic and logical operations by using resources and an adapted structure of the cells, the arithmetic and logical operations being carried out distinctly on the cells so that each cell carries out operations which are intended for it according to needs and a configurable configuration, independently and simultaneously.
  • a data processing method based on a cell architecture allowing parallel processing of data supplied as input in order to produce output data, said method comprising: - a configuration of functions arithmetic and logic on different levels inside a cell;
  • a data processing system based on a cell architecture comprising: a management unit; a processing unit, the processing unit establishing parameters defining data characteristics, and applying the parameters to zero level data, to generate higher level data; and a functional interface, the functional interface transferring data from said management unit to the processing unit; the parameters being entered according to a function chosen from the group comprising vector function and direct function.
  • Figure 1 is a diagram illustrating a circuit for a processor according to a preferred embodiment of the present invention
  • FIGS. 2A and 2B represent a diagram illustrating an interface for exchanging data between management and parallelization units, and for timing the operations carried out in the parallelization unit of the circuit of FIG. 1;
  • Figures 3A and 3B represent a diagram illustrating a circuit for developing a parameter determining a data property in the circuit of Figure 1;
  • Figures 4A to 4E are a diagram illustrating how five circuits for developing a parameter according to Figures 3A and 3B can be used to determine five parameters setting the data properties to be generated;
  • Figure 5 is a diagram illustrating a circuit for extending the parameters processing functions of Figure 4.
  • FIG. 6 represents a diagram illustrating a circuit generating time values or selecting generic data making it possible to designate data of level zero, used to prepare data of first level;
  • Figures 7A and 7B show a diagram illustrating a circuit for allocating first level data to circuits of the parallelization unit of the circuit of Figure 1;
  • Figures 8A and 8B show a diagram of a second level data allocation circuit to a circuit mounted just upstream of the output of the parallelization unit of Figure 1;
  • Figure 9 shows a diagram illustrating the selection of inputs on the parameter control matrices of the circuit of Figure 8.
  • Figures 10A and 10B represent a diagram illustrating how parameters developed in the circuits of Figures 3 and 4 can be used for the production of data according to several internal or external data sources;
  • Figures 11 A and 11 B show a diagram of a circuit for selecting the operating modes of the circuit of Figure 1;
  • FIG. 12 is a diagram illustrating a circuit generating first level data from zero level data present at the very interior of the circuit parallelization unit of Figure 1;
  • FIG. 13 is a diagram illustrating another circuit generating first level data from zero level data also produced inside the parallelization unit of the circuit of FIG. 1;
  • Figure 14 is a diagram illustrating a circuit for selective allocation of a group of external inputs used as sources of first level data formation
  • Figure 15 is a diagram illustrating a circuit for storing zero level data
  • FIGS. 16A and 16B represent a diagram of an input data analysis circuit in order to determine parameters characterizing first level data elaborated from zero level data originating from external input data;
  • Figure 17 is a diagram illustrating a circuit making it possible, in the final phase of developing first level data, to take account of filter coefficients or other functions;
  • FIGS. 18A and 18B represent a diagram illustrating a circuit for the production of time bounds used during the development of first and second level data
  • FIG. 19 is a diagram illustrating a second circuit for producing time limits used during the processing of the first and second level data.
  • Figures 20A to 20E compose a flowchart illustrating a data processing method according to a second aspect of the present invention.
  • the present invention provides a modular processor intended for parallel data processing and / or for the production of signals.
  • data is supplied in parallel as input or produced by parallel processing of data coming from a host processor, of the computer, microcontroller type or a DSP digital signal processor for example, or even produced as required and in any combination possible through data entry interfaces.
  • data from parallel processing can be transferred, if necessary and in any combination, to the host processor or to output interfaces.
  • the present invention provides a circuit comprising a number of cells and groups. Each cell is associated with a group. Groups are functions that compile the results of cells intended for them.
  • the operational configuration of the cells is implemented by means of registers.
  • the registers are essentially memory spaces of the cells.
  • the configuration of a cell consists in commanding said cell to calculate an algebraic equation within the framework of a structure where values are introduced into the cell and applied to functions of different levels. Such levels are equivalent to parenthesis levels.
  • Each function of each cell is distinctly configurable, for example addition, subtraction, multiplication, division, logical operations, decision operations. So, the architecture of the cells can be adapted according to the way in which it is installed.
  • a cell comprises at least three levels of calculations. At the end of the last level of calculation, it is possible to introduce non-linear functions or indexed calculations, by means of tables which are an integral part of the structure of the cells.
  • the data of such tables are dynamically accessible by the cells and / or by an external processor for indexed addressing or in conversion tables of the linear / logarithmic conversion type following a logarithmic sequence for example.
  • each cell can be added to the outputs of other cells selected and identified with a specific group of cells.
  • Such a group can assign the result of the compilation of cells to a common function.
  • the group's final result is inserted into a “group matrix” which contains the output of each group in the circuit.
  • the result of the cells is introduced into a "cell matrix" which contains the output of each cell in the circuit.
  • a fourth matrix contains the registers of accumulators of input data which can be written by an external processor or come from the input interfaces.
  • the arithmetic and logical operations of the cells are carried out on data the source of which can be dynamically determined, that is to say that they are directly recorded by an external processor, by the output of another cell from the cell matrix, by the output of a group from the group matrix or by an input from the input matrix.
  • the system of the present invention uses the circuit 10 illustrated in FIG. 1 and generally comprising: a management unit 12;
  • the management unit 12 can be a personal computer provided with a data management program operating with any type of usual operating system such as Windows TM, for example.
  • the management unit 12 can be any system making it possible to execute a program dedicated to the management of a modular processor according to the present invention and can be in various forms, such as microcontroller, automaton, acquisition system, DSP, or any other microprocessor-managed system including a processor internal to the circuit
  • the management unit 12 is a conventional system which, according to the present invention, can multiply its performance and its processing possibilities.
  • the management unit 10 contains a user interface in particular, which decides the calculations to be performed in sequences or in parallel.
  • the management unit 12 is connected to the functional interface 14.
  • the functional interface 14 ensures, on the one hand, the exchange of data between the management unit 12 and the parallelization unit 16 and on the other hand share the timing of the processing operations implemented in the parallelization unit 16.
  • the parallelization unit 16 delivers a signal on an output 18.
  • the parallelization unit 16 comprises a certain number of hardware functional blocks which will be described in detail below with reference to the figures corresponding, the figures concerned by the blocks being indicated in each of them.
  • the parallelization unit 16 comprises a first functional block 17 for establishing parameters defining characteristics of the data to be produced and a second functional block 19 for implementing these parameters by applying them to so-called zero-level data in order to generate so-called higher level data.
  • each block is identified by a keyword.
  • the processing unit 16 according to the present invention acts as a parallel co-processor. It should be noted that the processing unit 16 according to the present invention could be integrated into the same entity (integrated circuit for example) as the management unit 12, in the case of a management unit 12 in the form of a processor .
  • FIG. 2 (2A and 2B) is a diagram of the interface 14 intended for the exchange of data between the management unit 12 and the parallelization unit 16, and for the timing of the operations carried out in the parallelization 16.
  • the interface 14 comprises a quartz oscillator 20 which supplies a basic clock signal CLK to a three-bit binary counter 22. Three outputs Q0, Q1, Q2 of this counter 22 constitute a CCAL signal described later.
  • the three outputs Q0, Q1, Q2 of counter 22 are applied to a binary decoder 24, which decodes a three-bit signal on eight outputs C0 to C7.
  • the outputs C0 to C3 of the decoder 24 clock four sub-periods P2_AMP, P2_S1, P2_S2 and P2-FLT of a period P1 which is clocked via an AND gate 26.
  • the outputs C4 and C5 of the decoder 24 clock respectively of the P3 and P4 sub-periods, while the outputs C6 and C7 are applied to an AND gate 28 by means of which a PCPU sub-period is timed.
  • period P1 and the sub-periods P3, P4 and P2_AMP, P2_S1, P2_S2 and P2-FLT all have the same duration, but that the time intervals during which they determine an activity in the unit of parallelization 16 are fixed by the duration of their low level in negative logic, called "active pulse", the active pulses being out of phase with each other in the various sub-periods.
  • active pulse the active pulses being out of phase with each other in the various sub-periods.
  • an equivalent circuit includes complementary doors, for example AND doors would become OR doors.
  • the output C0 of the decoder 24 is also applied to a RESET input of a flip-flop SR 30.
  • the flip-flop 30 receives on another SET input a signal CS_CPU, coming from the management unit 12, which represents access requests of the management unit 12. More specifically, the flip-flop 30 periodically supplies a signal ATTENTE_CPU on a terminal 32 to put the management unit 12 on hold during a request expressed by the signal CS_CPU, during the cumulative duration of the pulses of the P2_AMP, P2_S1, P2_S2, P2-FLT, P3 and P4 sub-periods.
  • the management unit 12 is authorized to transmit addresses, data and read / write commands to the parallelization unit 16 and can also receive data.
  • the quartz oscillator 20 is also connected to a binary counter 34 with n bits, the parallelization unit 16 comprising a number "N" of cells equal to 2 ⁇ .
  • the counter 34 thus synchronized with the clock signal CLK of the quartz oscillator 20, is controlled by the signal C7 of the decoder 24 which advances it by one at the end of each period P1.
  • An output Qn of the counter 34 delivers a cell base address ADR_Base to a cell address selection block 100 to determine a succession of cell base addresses, for example 0 to 191, in the case of 192 locations of memories in a cell.
  • the management unit 12 can communicate via the interface 14 with the parallelization unit 16 during the PCPU subperiod.
  • the PCPU output of gate 28 and the access request signal CS_CPU are applied to an OR gate 36 whose output can activate a selection signal SEL of block 100.
  • the output of counter 34 passes from the input ADR_Base of the cell address selection block 100 to a shared output AC (instant cell address) of this block.
  • the signal SEL activates two interface blocks 130 and 140 described below (see FIG. 2B).
  • the cells of the parallelization unit 16 are punctually materialized during successive processing sequences called PCAL allowing the preparation of first level data, a PCAL signal involving the signal P1 combined with the data P3 and P4, at l exclusion of the PCPU signal or “access cycle” which determines in each period P1 the access time authorized for the management unit 12.
  • PCAL processing sequences together make up a cycle P during which first level data processing is carried out successively for all the cells, the cycle P being executed at the sampling frequency of the system, which corresponds to the frequency of an ACT signal.
  • the materialization of the cells is carried out by storing, temporarily and cyclically, data produced from cells at memory locations of a plurality of memories assigned to processing and / or control functions, and provided physically in the parallelization unit 16.
  • Each of these memories has as many locations as there are cells in the parallelization unit 16.
  • information in the form of addresses or data can also selectively be described at the memory locations concerning the respective cells from the management unit 12 during the PCPU sub-period following each PCAL sequence.
  • the memories can be loaded in writing, read and unloaded in various ways, in particular by the management unit 12.
  • the parallelization unit 16 materializes cells by the contents of the memory locations dedicated to this task, each cell being composed of the locations with the same address of these memories.
  • the content of each cell may or may not vary from one sequence to another, depending on the characteristics of the first level data to be produced.
  • the blocks 130 and 140 of FIG. 2B make it possible to transfer addresses, data and read / write commands to the unit of parallelization 16 when they are activated by a selection signal SEL from gate 36 and the output signal ATTENTE_CPU of flip-flop 30 is deactivated.
  • the access control block 120 can receive from the management unit 12 addresses ADR_CPU on an input 120a, a read command signal RD_CPU on an input 120b, a write command signal WR_CPU on an input 120c and a selection signal CS_CPU on an input 120d.
  • An output 120e of the access control block 120 makes it possible to transfer address values to the cell address selection block 100 (FIG. 2A), the memory read / write selection block 140 (FIG. 2B) and towards other elements of the parallelization unit 16, which will be described later in relation to a signal ACPU in particular.
  • the data control block 130 (FIG. 2B) comprises an input 130a for receiving data from the management unit 12, an input 130b for read control, an input 130c for write control and an output 130e for DCPU data transfer to various elements of the parallelization unit 16 as described below. It should be noted that the data transfer can be bidirectional.
  • the memory read / write selection block 140 comprises an input 140a for receiving read / write addresses from block 120, a read command input 140b receiving the signal RD_CPU, a write command input 140c receiving the signal WR_CPU and a selection input 140d connected to the output of gate 36.
  • This block 140 also includes outputs 140e and 140f connected respectively to a read control bus 150a and to a write control bus 150b, these two buses selectively carrying respective read / write control data to all the memories of the parallelization unit 16. The identifications of these data are indicated in full in Figure 2B and are found in the corresponding places of the other figures still to be described.
  • the output of gate 26 is logically combined with the output of address selection block 100 in a NAND gate 160 providing the output signal ACT which is the sampling frequency of the parallelization unit 16.
  • the interface 14 of the data processing system 10 ensures on the one hand the timing of the operations (clock of the quartz oscillator type 20) and on the other hand the management of the access requests (indicated by CS_CPU) of the 'management unit 12 to the parallelization unit 16 (by the signal Attente_CPU). It transmits as an output, to the parallelization unit 16, a sampling frequency (signal ACT), data for reading / writing commands from the memories (signal ACPU), an instantaneous cell address (signal AC), data DCPU.
  • the interface 14 of the processing system 10 includes an ability to select access memories, in particular WIN and WINMOD inputs (see FIG. 14), making it possible to choose between data of external interface or coming from the management unit 12. As illustrated in FIG. 1, the first functional block
  • 17 comprises a block of parameter values 200, a block of distribution of parameters 250, a block 300 and a block of time terminals 180, in the form of a circuit for producing parameter values generally designated by the reference 200.
  • Figure 3 shows a diagram of a circuit for developing a parameter determining a data property.
  • Figure 3 illustrates the block of parameter values 200, which transmits an ADR_CTR signal ( Figure 3B) described below, and exchanges bidirectional data DCPU (with the functional interface 14) and PU (with the management unit 12).
  • each memory is symbolized by a square with which data inputs and / or outputs are associated, and by a smaller rectangle with which an input of address, a write command entry and / or a read command entry.
  • FIG. 3 therefore represents a circuit 200 for developing a parameter which is repeated, according to a characteristic of the present invention, five times in the parallelization unit 16 (see FIG. 4).
  • each circuit 200 incorporated respectively in the blocks 200A to 200E (see Figure 4 ), is one of five parameters including Amplitude, Secondary-1 / Frequency, Secondary-2 / Phase, Filter and Master-Multifunction, described below, which can be assigned to the processing of first level data.
  • the corresponding parameter value VAL respectively designated by AMP, FRE, PHA, FLT and VPM, obtained after the active pulse of the respective P2_AMP, P2_S1, P2_S2, P2-FLT, and P2_PM appears on an output terminal 210 circuits 200A to 200E.
  • the corresponding characteristics of amplitude, frequency, phase, filtering and the like such as variable pulse width, interpolation, for example, corresponding to the multifunction parameter which is essentially a function of multiple use or not predetermined, of the successive data first level calculated for each cell are thus determined.
  • each circuit 200A to 200E for developing parameters comprises a memory M1 (see FIG. 3A) in which can be stored, as the case may be, the basic value of the Amplitude, Secondary-1 / Frequency, Secondary-2 / Phase, Filter and Master-Multifunction parameters of the cells. These values are received from the management unit 12 via the output 130e of block 130 (see FIG. 2) during the active pulses of the PCPU sub-period during which the management unit 12 is authorized to access the parallelization unit 16.
  • a memory M2 is intended to store increment values of a parameter in the event that it has to undergo a change for the elaboration of a datum with respect to the same parameter of a datum previously elaborated. These increment values are also supplied by the management unit 12 via the output 130e of block 130.
  • the outputs of memories 1 and M2 are applied to a circuit 220 making it possible to introduce automatic interpolation between different successive parameter values to attenuate value jumps, if necessary.
  • the output of the memory M2 is applied to a first arithmetic unit U1 responsible for performing on data A and B which are applied to it the operation B ⁇ A, the data B being supplied by an arithmetic unit U2 which performs on its input data A and B operation AB.
  • the data A of this arithmetic unit U2 is each time the output of the difference between the new value stored in the memory M1 of the parameter and its current value stored in a memory M3 ( Figure 3B).
  • the result of the calculation carried out in the arithmetic unit U1 is applied, as data A, to another arithmetic U3 which performs on its input data the operation A + B.
  • the input data B of this arithmetic unit U3 comes from the memory M3 which is intended to temporarily store and for each cell the parameter value calculated during the previous PCALP sequence, recorded during the pulse active from the P4 subperiod of the previous PCAL sequence.
  • the memory M3 is therefore connected by its data input to the output 210 (VAL) and by its data output to the data input B of the arithmetic unit U2.
  • This circuit part comprises a memory M5 controlled in read / write by data R3 and W3 with regard to the amplitude, the frequency, the phase or the filtering or the multifunction parameter.
  • the memory M5 makes it possible to identify, if necessary, via the circuits of Figure 10, a data source (coming from another cell, input or group according to the decoding of the circuit of Figure 10) which produces a data DATA_CTR which is a data in the processing carried out in the circuit of FIG. 3B for one of the blocks 200A to 200E.
  • the output of the memory M5 is connected to an address buffer 230 whose input values can pass to the output under the control of the subperiod P2.
  • a memory M4 is controlled in read / write by data R4 and W4. Its output is applied to an arithmetic unit U4 responsible for performing on data A and B the operation B - A, the data B being supplied by DATA_CTR.
  • the result of the calculation carried out in the arithmetic unit U4 is sent to a flip-flop 240 activated in writing on the active pulse of the sub-period P2 concerned, according to the nature of the parameter to be modified.
  • the output of the flip-flop 240 is connected to an input A of an arithmetic unit U5 which makes it possible to selectively perform a combinatorial calculation such as a sum calculation or a product calculation on values applied to its inputs.
  • the input B of this arithmetic unit U5 is connected to a flip-flop 260 with an input, activated during the active pulse of the sub-period P3, is connected to an output of a multiplexer 265.
  • the multiplexer 265 receives the output of the memory M2 and the result of the calculation carried out by the arithmetic unit U3.
  • the multiplexer 265 allows a selection of vector (A) or direct (B) setting of a parameter.
  • said parameters which usually in the art are written in vector form by a basic parameter for a value to be reached and by a value of increment to determine the increment between each clock step in order to reach this value, are here entered according to a vector form added with a direct mode selected by the multiplexer 265 of FIG. 3A. More precisely, in the case where the transmission of the parameter is directly activated, the value is simply written into the basic parameter without incrementation.
  • an attenuation parameter is introduced whose purpose is to attenuate a control value addressed by a memory M5.
  • This is a registered parameter which applies a fixed-point multiplication to a received control value (1 or less, signed to reverse if negative): at 1 the control value is not attenuated; at 0.5 it is divided by 2; and at -0.5 it is inverted and divided by 2. More precisely, if the values are thus encoded (fixed commas +/- 1.00), the function B / A is actually B * A (multiplication) where A is in fixed comma whose absolute maximum is 1, while if the values of A are integers, such as +/- 4095, the function B / A is effectively a divisor.
  • Figure 4 (4A-4E) illustrates details of Figure 3, in particular how five circuits for developing a parameter can be used to determine five parameters fixing data characteristics.
  • input and output data sets are shown, respectively produced by the five circuits 200A to 200E.
  • the parameters are modified with respect to the signal parallelization systems known in the art.
  • a block 200A is assigned to the Amplitude parameter
  • a block 200B is assigned to the Secondary-1 / Frequency parameter
  • a block 200C is assigned to the Secondary-2 / Phase parameter
  • a block 200D is assigned to the Filter parameter
  • a block 200E is assigned to the multifunction parameter called "Master-Multifunction".
  • Each block 200A, 200B, 200C, 200D and 200E is selectively timed during each PCAL sequence at the moment when the active pulse of the corresponding sub-period is produced and receives write and read data R1 / W1, R2 / W2 and R3 / W3 and R4 / W4 coming respectively from the control buses 150a and 150b of Figure 2.
  • Each block also receives as soon as input data on the DCPU bus and the AC signal of cell number or address (see Figure 2).
  • the respective outputs AMP, FRE, PHA, FLT and VPM of each block are processed in other parts of the parallelization unit 16 as described below. The same is true of the data passing over the remaining terminals of the blocks 200A to 200E.
  • Each first level data item corresponding during one PCAL sequence to one of the cells, is formed from zero level data x designated specifically and extracted from one of the zero level data sources.
  • zero level data must generally be assigned a time value in order to contribute to the development first level data.
  • data can be selectively produced on a non-temporal basis as will be presented later in relation to Figure 6 (multiplexer 350).
  • the parameters used include ( Figures 4 and 5):
  • the multifunction parameter which is an unassigned parameter applying for direct arithmetic operations on the parameters, and which, like the other parameters, can receive control values.
  • This parameter can be combined with the Secondary-1 / Frequency and Secondary-2 / Phase parameters, for treatment extension ( Figure 5); “The Secondary-1 / Frequency parameter with the inclusion of a direct value selection and attenuation of the control value. This parameter is assigned to the frequencies in time mode. This allocation can be withdrawn for combination with the multifunction and Secondary-2 / Phase parameters, for treatment extension ( Figure 5); and
  • Treatment extension provides an IN_FN signal. It is enabled by a circuit involving the new multifunctional parameter ( Figures 3 and 4) in the combination of the parameter functions.
  • FIG. 5 illustrates such a circuit for extending the processing functions on the parameters of FIG. 4.
  • the parameters Secondary-1 / Frequency and Secondary-2 / Phase are combined in order via arithmetic units U501 to U502 whose respective outputs are directed to a multiplexer M503, in order to then perform a combination with the multifunction parameter via arithmetic units U504 to U506, the operations being selected to be in any combination addition, multiplication or division so as to output from an M507 multiplexer the signal IN_FN.
  • the parallelization unit 16 comprises a block of values 300, represented in FIG. 6, making it possible to generate a binary value, called "datum designation value of level zero" or more briefly "designation value” POS_X .
  • Figure 6 illustrates a circuit generating time or non-time (direct) values for designating zero level data, used to prepare first level data.
  • POS-X is supplied as a time base on an SEL input of the multiplexer 350 as a function of data produced by an adder U60.
  • POX is essentially a function of two other binary values, the first of which is the FRE value developed by block 200B in Figure 4. This first binary value represents a time interval expressing the ratio between the frequency of any cell in relation to a base frequency of which it is a multiplying factor.
  • ENS_FRE time interval or basic interval
  • This interval depends on the value of the fundamental frequency of the data to be generated on the one hand, and on the number of sampling points used on the other hand. It should be noted that this takes place in temporal mode only, because in non-temporal (direct) mode, as explained below, the multiplexer 350 no longer uses the data obtained on U50 and in this case the FRE value is a non-datum defined which enters in the calculation of IN_FN then selected by 350 and obtained by the circuit of figure 5.
  • the values of the relative interval FRE and the basic interval ENS_FRE are applied to the respective inputs A and B of an arithmetic unit U40 in which they are multiplied.
  • the integer part of the result of the multiplication carried out by the arithmetic unit U40 is applied to an input A of a second arithmetic unit U50 carrying out the sum of the values applied to its inputs A and B, while the decimal part of the result of the multiplication is applied to a bit rate divider 310 in which it is counted by the ACT signal. Note that the values in question are actually expressed in binary numbers.
  • the output of the arithmetic unit U50 is applied to a SEL input
  • a multiplexer 320 which, under the control of a signal SC_ETR, makes it possible to select, from one PCAL sequence to another, the type of growth of the value POS_X according to several cases of use of the sources of zero level data, as will be explained later. In one of these cases, the growth of the POS_X value is constant (0001 for example) and applied to a connection 330.
  • the output of the multiplexer 320 is connected to a block 340 which, under the control of an SGN signal, assigns a positive or negative sign to a value extracted from an M50 memory.
  • the data sequence generated can be reproduced upside down in time, because the value POS_X is then decremented, from one period P1 to another, by the quantity determined in the circuit, instead of being incremented.
  • the memory M50 stores for all the cells the previous POS_X value.
  • the output of the sign determination block 340 is applied to an input B of an arithmetic unit U60, an input A of which is connected to the output of the memory M50.
  • This arithmetic unit U60 adds up its input data.
  • the result is sent to a multiplexer 350 which makes it possible, under the control of a MOD_PX signal, to address the output of either the output of the arithmetic unit U60, or the value IN_FN described in relation with Figure 5.
  • the multiplexer 350 allows the selection of an operating mode on a function in time mode or on a datum.
  • POS_X depends on independent values IN_FN resulting from processing (see Figure 5 and previously in Figures 3 and 4), then POS_X determines a function (see table in Figures 18 and 19) or functions ( Figures 11 to 13) as in time mode .
  • the output of the multiplexer 350 is connected to a multiplexer 355, which allows, under the control of a CD NIT signal, to address at its output either the output of the multiplexer 350, or an initialization value INIT_X, still to be described, from which the POS_X value will be incremented.
  • the value of INIT_X can be equal to zero in certain cases, when the operating mode of the cell uses a generator, ie if either if SC_ECH and SC_ETR are inactive, as explained below in relation to Figure 18A (buffer 196).
  • the output of the multiplexer 355 is connected to a bistable synchronization flip-flop 360 in which the value is written by the active pulse of the sub-period P3.
  • the output of the flip-flop 360 is connected, on the one hand, to the input of data from memory M50, and on the other hand, as data B, to an input of an arithmetic unit U70 which receives on another input the value PHA coming from the circuit of elaboration of parameter 200 (block 200C of the Figure 4).
  • the result of the calculation performed in the arithmetic unit U70 (sum of its input data A and B) is the value POS_X, output from block 300.
  • the parallelization unit 16 materializes in time sharing a number N of cells in which first level data values are produced from zero level data values assigned to amplitude parameters, frequency, phase and filtering for example, while the multifunctional parameter acts on the production of IN_FN by combining with FRE and PHA (see Figure 5).
  • the parallelization unit 16 also has means for materializing in time sharing a number m of groups of cells which, like the latter, are represented by values stored at memory locations of a plurality of memories .
  • each group carries a result of calculation carried out by the cells which form part of it, a group ensuring the parallelism of the levels 0 (cells) and the plurality of the groups ensuring a second level of parallelism, the memories ensuring access to these different results.
  • the second level data processed in the various circuits can in turn be distributed over a set of q outputs by an appropriate accumulation of second level data to form third level data collectively constituting the outputs. of the parallelization unit 16 of Figure 1.
  • a circuit for generating the x-axis makes it possible to introduce, as desired, the data POS_X on an x axis according to a temporal approach (recursive or non-resursive, recursive designating an approach where a calculation is performed by evolution on values of previous sequences of treatment), or non-temporal so-called direct.
  • POS_X evolves incrementally according to the frequencies (FRE, ENS_FRE) and phases (PHA).
  • FIG. 7 (7A and 7B) illustrates a circuit 400 for allocating first level data to circuits of the parallelization unit 16 of the system 10.
  • the circuit 400 makes it possible to assign predetermined cells to a predetermined group of the plurality of groups of the parallelization unit 16.
  • the value of a second level data item of a group selected for this time is represented by a signal ACCJ ⁇ NS (top right in Figure 7A), and constitutes an output of the allocation circuit 400.
  • This value is occasionally found at an address corresponding to this group of an accumulator memory M6 addressed by a signal AACCJ ⁇ NS and the data input of which is connected to the output of an arithmetic unit U9 loaded to carry out the multiplication of its inputs A and B.
  • the writing in the memory M6 is controlled by means of the active pulse of the sub-period P4.
  • the latter reaches it through an OR gate 41 also receiving a signal C_ENS designating the last cell whose first level data which has just been calculated must, for a given allocation, be incorporated into the first level data value before be provided by this group.
  • the arithmetic unit U9 receives on its input A output data stored in a flip-flop 42 which receives this data as input from an arithmetic unit U10.
  • the arithmetic unit U10 performs the sum of the values which are applied to it on its inputs A and B.
  • the writing of the data in the flip-flop 42 is done during the active pulse of the sub-period P3.
  • the output of flip-flop 42 is also connected to an intermediate accumulation memory M7 in which data can be written during the active pulse of the sub-period P4.
  • these data are applied to an input B of the arithmetic unit U10.
  • This receives on an input A the accumulated value ACC_CEL of the current cell subjected to an AND gate 52 with a bit C_SCEL coming as the most significant bit of a memory M9 at 192 locations, as an example , or as many locations as there are cells (256 locations or 1024 for example).
  • the AND gate 52 makes it possible to add the data value of a current cell, if the bit C_SCEL is at "1". Otherwise, the value is not added to the group.
  • the entry A of the arithmetic unit U9 receives a value constituted by the sum of all the accumulated values ACC_CEL of the cells allotted to a given group, sum which appears at the exit of rocker 42.
  • the unit arithmetic U9 receives on its input B an amplitude value coming from a memory M8 with 64 places, for example for 64 groups is 64 values of amplitudes of groups, in which are stored amplitude values which can be registered there by the management unit 12 under the command of a write signal W_ENS_AMP ( Figures 2 and 7).
  • the amplitude value can be read from memory M8 under the command of the signal R_ENS_AMPL to adjust the calculated amplitude value of the current group considered.
  • the data input of memory M9 is connected to block 130 of FIG. 2 for receiving from the management unit 12 address values specifying for each of the cells to which group this cell will belong to participate in the production of level two data. These address values are written to this memory M9 at the addresses corresponding respectively to the cells concerned. The writing and reading of the memory M9 are carried out under the data command R_ENS_CEL and W_ENS_CEL respectively. The same value determines the address of the memory M7 which accumulates this data under the control of the active pulse of the sub-period P4. Each address value written in the memory M9 is accompanied by an identification bit.
  • the writing of the amplitude data of the groups in the memory M8 can be done at addresses which can come either from the memory M9 (A_ENS), or directly from block 100 of Figure 2.
  • the selection of the address is carried out by via a multiplexer 43.
  • the address AC passes through this multiplexer 43 when either of the data W_ENS_CEL or R_ENS_CEL is at zero. Otherwise, the signal A_ENS, is transmitted.
  • the allocation circuit 400 also includes a part for phasing cells and groups and for triggering a selected group, controlled in a non-synchronous manner by a signal W_DEC originating from block 140 of FIG. 2 (see FIG. 7B) .
  • the signal W_DEC commands the writing of the address of the group to be phased in a flip-flop 44 receiving this address from the management unit 12.
  • the signal W_DEC is synchronized on the frequency ACT via d a flip-flop 45, three flip-flops 46, 47 and 48, and a NAND gate 49.
  • the Q bar (/ Q) output of flip-flop 46 provides an ACTJNIT signal which makes it possible to activate a comparator 50 intended to compare two values address, namely that coming from the memory M9 and that delivered by the flip-flop 44. In case of equality of the two address values, a cell initialization signal ⁇ JNIT is delivered. This signal is used in particular in the time increment circuit 300 of FIG. 6 for the multiplexer 350.
  • the allocation circuit 400 of FIG. 7 also makes it possible to supply the signal ENS_FRE used in the circuit 300 of FIG. 6.
  • a multiplexer 52 makes it possible to selectively send to a memory M10 the address values A_ENS or the values of address AC as a function of the state of the write / read data W_ENS_CEL and R_ENS_CEL provided by block 140 of FIG. 2 to write in this memory the value ENS_FRE coming from the management unit 12 at the address of the current group having to work with this interval value.
  • Figure 8 illustrates a circuit 600 for allocating second level data to a circuit mounted just upstream of the output of the parallelization unit.
  • the circuit 600 included in block 19 of the parallelization unit 16 (see FIG. 1), makes it possible to selectively group second level data on outputs 0.0 to q.7 to generate third level data which, in the example described, are the output data 18 from the parallelization unit 16 (see FIG. 1). There are eight outputs in the example. They are processed in the circuit shown in Figure 9.
  • the outputs 0.0 to 0.7 are the eight corners of a cube.
  • a memory M11 makes it possible to distribute a weight between four corners on the left and right
  • a memory M12 makes it possible to distribute a weight between four upper and lower corners
  • a memory M13 makes it possible to distribute a weight between four corners in front and behind.
  • the treatments are carried out sequentially by SOE X, SOE Z and SOE Y data.
  • the values coming out of a multiplier 411 are the eight relative values of ACC_ENS on each of the corners according to the weights established by the respective memories.
  • the eight values are transferred to the outputs according to a selection determined by a memory M14 and saved by the circuit of Figure 9 by means of the memories shown.
  • each first level data item can be calculated by acting on a given cell from different sources. The selection of such a source is carried out from the management unit
  • the source selection values stored for the respective cells in this memory M4 are transferred to an output of the buffer 230 activated on the active pulse of the sub-period P2, output at which appear source selection control values ADR_CTR at when they must respectively be available to operate the selection of a modification of parameter value for the current cell.
  • Figure 10 illustrates more details on the distribution block 250 which receives the signal ADR_CTR from the address buffer 230.
  • FIG. 10 illustrates how the parameters developed in the circuits of
  • Figures 3 and 4 can be used to influence the production of data according to several sources of calculation data, internal or external.
  • a source for modifying the value of the parameter of a cell can be constituted selectively either by another cell, or by a group, or even by an input external to the parallelization unit 16 as the case may be. (parameter detection signal).
  • input here designates a set of blocks intended to adapt data for processing in the parallelization unit 16.
  • the source or input block 250 comprises a first selection logic 250a whose control signal is formed by bits 1 to 5 of Most significant of the ADR_CTR values stored in the memory M5 of FIG. 3. These most significant bits make it possible to transmit from the input to the output of the selection logic 250a, and this selectively for each cell, one of four data modification values which are respectively the values ACC_CEL, ACC ⁇ NS, and ACC_DET and IN_CEL generated from first level (cell) or second level (group) data, from a detector on the signal input (amplitude, frequency or band) and a signal input, as will be detailed below.
  • the output signal thus selected is called DATA_CTR and can be used as a parameter value modification value during the subsequent processing of a first level data item of any cell.
  • the bits of the value ADR_CTR are also applied to a second selection logic 250b which makes it possible to distribute the sources of modification values according to four cases: sources of other cells (accumulation memories), sources of groups (accumulation memories), input sources from interface and detector sources.
  • the first of these cases concerns the accumulation of entries intended to cells in a cell accumulation memory M130 using an address AACC_CEL (see Figure 11), coming from a multiplexer 250-1.
  • the address is normally set to AC; during the sub-period P1, it has the value of the most significant bits of the value ADR_CT when it determines a value between 0 and 191 in the case of 192 cells for example. It should be noted that the circuit of Figure 10 applies in the case of 192 cells, and that the decoding would differ for another number of cells.
  • the ACC_CEL data on DATA_CTR is then activated by a buffer BX1 of logic 250a.
  • the second case concerns the group accumulation memory M6 of FIG. 7 which receives the address AACCJ ⁇ NS by a multiplexer 250-2 of the logic 250b.
  • This address is normally the value A_ENS, but during the sub-period P1, it has the value ADR_CTR, when the most significant bits of the value ADR_CTR are located between 192 and 207 because the decoding of the bits adr (4..8) gives 192, with ADR_CTR (0..3) gives 192 to 192 + 15 since only groups 0 to 15 can, in the example, be directed to cell entries even if there are 64 groups.
  • the circuit of Figure 10 illustrates the principle of decoding ADR_CTR to selectively direct different elements. A person skilled in the art will be able to adapt the organization of the decoding according to FIG. 10 according to particular needs.
  • the ACC_ENS data on DATA_CTR are then activated by a BX6 buffer from logic 250a.
  • the third case concerns the selection of inputs by the value AACCJN supplied by a gate 250-3 of the logic 250b of FIG. 10.
  • the data input source can selectively come from 'external interfaces or be directly addressed by an external CPU, this circuit being described later in Figure 14.
  • the IN_CEL data on DAT_CTR are then activated by a BX2 buffer of logic 250a.
  • the fourth case concerns the inputs provided by ACC_DET input detectors illustrated in Figure 16. They are activated on DAT_CTR respectively for level detection (Figure 16A- B10) by a BX3 buffer of logic 250a, for fundamental detection ( Figure 6A - B11) by a buffer BX4 of logic 250a, for the detection of bands ( Figure 16B - B15) by a buffer BX5 of logic 250a.
  • the data outputs are selected absolutely from the values of ACC_ENS (ie the value of each group in the matrix of groups), depending on whether a group is distributed on one or the other outputs and combined with other groups also distributed on the same outputs or other outputs.
  • the values on the different axes are VXA-B, VZA-B, VYA-B and the allocation on axes is calculated sequentially on multipliers, or else a parallelism type character is introduced using as many multipliers, unlike to the multiplexer circuit in Figure 9.
  • the multipliers shown in Figure 8A are shared across the 8 outputs.
  • the calculations on the 8 outputs clocked by SOEX, .., SOEZ can be carried out by 24 multipliers for 3 axes on 8 outputs, instead of calculating the 8 outputs sequentially.
  • the assignment is determined on three axes (or more if necessary), that is to say for eight outputs in a given section.
  • X by the VXA-B values addressed by W_SX
  • Z by the VZA-B values addressed by W_SZ
  • Y by the values VYA-B addressed by W_SY
  • a gradual spatial distribution is obtained on the three axes. It is understood that such a function can be generalized (four axes, etc.).
  • Figure 9 which illustrates a circuit for selecting the inputs on the parameter control blocks of Figure 8, shows a combination of the groups on a given output section, on the eight (or sixteen or more) outputs.
  • the outputs are grouped into sections of eight (or sixteen, or more), the value in a memory M14 addressed by W_SN determining the section to which each group is transferred.
  • a multiplexer 900 chooses the section if only one section is to be used. If several sections can be used on a given group, the multiplexer 900 is removed, the value addressed by W_SN is then a bitmap.
  • the circuit shown in Figure 9 stores data produced in Figure 8, which is necessary given the sequence SOEX, SOEZ, SOEY.
  • the successive values on 8 outputs of sections calculated sequentially by a common circuit in Figures 8 can thus be used on separate registers, ie the different flip-flops controlled by the respective signals SEL_S0 .. SEL_S7.
  • the allocation of the data received on the inputs ( Figures 10 and 14) is generalized so that the inputs are transferred to the parameter controls selectively, in the same way as an output of cell can control a selected parameter from another cell.
  • Figure 11 (1 A and 11B) illustrates a mode selection circuit 70, included in block 19 of the parallelization unit 16 (see Figure 1).
  • the processing of first level data in the cells can be carried out according to a certain number of operating modes and also according to output data established by any one of a certain number of input blocks. These in turn can establish their own output data from actual sources which can be internal and / or external to the parallelization unit 16.
  • the determination of the choice of modes and of the input blocks is made under the control of the management unit 12 which can for this purpose load a memory M120 called configuration with data appearing, if necessary, on the output 130e of the block 130 of interface 14 (see Figure 2).
  • These data represent determination values which are stored respectively for each cell at the locations of the memory M120 where they can be written or read under the control of the write / read data W_MOD and R_MOD coming from block 140 (see FIG. 2).
  • the bits of these determination values correspond to the different configurations that the parallelization unit 16 can adopt.
  • the three least significant bits MOD_SC0 to MOD 3C2 are applied to a selection block 71 which, according to the values of these bits, can activate eight operating modes implemented respectively in four input blocks 72 to 74, the block 74 containing the elements of Figures 15 (sampler) and those of Figure 14 (Real Time Inputs), which form zero level data.
  • the input block 72 makes it possible to implement an operating mode in which the parallelization unit 16 uses integrated waveform generators. Block 72 will be further on with reference to Figure
  • the input block 73 makes it possible to implement a mode of operation in which the parallelization unit 16 uses its own noise generator. Block 73 will be described later with reference to Figure 13.
  • the input block 74 makes it possible to implement an operating mode in which the parallelization unit 16 uses data previously generated and stored (signal SC_ECH) or data used in real time (signal SC_ETR) which can come from the exterior of the parallelization unit 16. These two modes will be examined in detail below in relation to FIGS. 14 and 15.
  • the data generated respectively in blocks 72, 73 and 74 appear on a bus 75 according to a selected operating mode , the signal passing over this bus 75 being called CCYC.
  • This CCYC signal is applied to a filter block 76, the structure of which is illustrated in FIG. 17.
  • the filter block 76 provides data affected by predetermined filter characteristics, its output signal being designated by CFLT.
  • Each sample of the CFLT signal is applied to an input A of an arithmetic unit U120 in which its value is multiplied by the current amplitude parameter value AMP applied to an input B of the arithmetic unit U120.
  • the result of the multiplication is written in an accumulation memory M 130, at an address determined by the address value AACC_CEL supplied by the selection logic 250b (see FIG. 10), under the control of the active pulse of the sub-period P4.
  • the memory M130 is for writing for the accumulated data of each cell, these data being able to be read by AACC_CEL if another cell requires to receive the value of a third cell for calculations with DATA_CTR, writing to a given address chasing the previous value written to the output.
  • the corresponding signal is representative of successive first level data and is called ACC_CEL as an output from the cells.
  • the four intermediate weight bits (MOD_F1_AMP to MOD_F1_S2) of the values read from memory M 120 are intended to determine the processing mode on the amplitude, frequency, phase and filtering parameters and on the multifunction parameter, carried out in the arithmetic unit U5, respectively of each of the circuits 200A to 200E of FIG. 5. Their binary value places this arithmetic unit U5 in addition mode or in multiplication mode.
  • the three bits MOD_CCY, MOD_DCY, MOD_ALT from memory M120 selectively determine the modes of continuous, repetition and "round trip" operation of the generation of first level data from cells. These bits are called MOD_CCY, MOD_DCY and MOD_ALT respectively. These data will be described later with reference to Figures 18 and 19.
  • a part of the circuit illustrated in FIG. 11 allows the addition of control bits made necessary for the addition of functions, ie operating modes of the processing extensions MOD_F2_S, MOD_F »_M ( Figure 5) , the multifunction block MOD_F1_M ( Figure 4E), the temporal and non-temporal (direct) modes MOD_PX, the vector / direct mode selections MOD_VAL_AMP etc.
  • the internal input block 72 is now described in relation to FIG. 12, which illustrates a circuit for generating first level data from zero level data present inside the parallelization unit 16.
  • the block input 72 comprises four function generators 81 to 84 intended to produce data of level zero and to which is applied the time value POS_X calculated in the circuit 300 of Figure 6. Thus, most of the time, the value POS_X is in makes an address value.
  • the first function generator 81 is a sine table in which is stored a predetermined number of sine values, this number being equal to 2 A , “A” being equal to 10 in the example considered. In fact, the table 81 is a memory with 2 A locations which can be addressed by address values determined by the A least significant bits of the designation value POS_X.
  • the second generator 82 is capable of generating a square waveform by determining instants of change in polarity of the first level data to be generated.
  • the generator 82 is activated on a signal SC_CAR coming from the selection logic 71 of FIG. 11.
  • the change is made as a function of the sign of the most significant bit of the A bits of the current value of POS_X which is applied by line 86 In this case, POS_X does not therefore constitute a memory address proper.
  • the third generator 83 makes it possible to generate functions of triangular shape. It is essentially an arithmetic function calculating a triangular oscillation on the basis of the address on A least significant bits POS_X signal as location addresses. These address values are applied to it by line 87. The addresses and the resulting functions are summarized inside the block representing the generator 83. The latter is activated under the command of a signal SC_TRI coming from the selection logic. 71 of Figure 1.
  • the fourth generator 84 is also an arithmetic function calculating a positive or negative ramp oscillation on the basis of the address on A least significant bits of the value POS_X.
  • a series of values thus stored can be traversed in positive or in negative under the command of data SC_RMP and SCJ MN respectively, coming from the selection logic 71 of FIG. 11 and applied to an AND gate 88.
  • the output of gate 88 validates activation of generator 84, the signal level SC_RMP determining the direction of the sequence of calculated values.
  • the function generated by the addresses is also indicated inside the block representing the generator 84.
  • FIG. 13 describes another circuit generating first level data from zero level data also produced inside the parallelization unit 16.
  • FIG. 13 illustrates the detail of the input block 73, generator of noise, of Figure 11.
  • Block 73 is used to generate first level data in the case where these must have values of random amplitude.
  • This input block 73 includes a random number generator 90 operating continuously. On the appearance of a sampling pulse ACT, the number generated at the corresponding instant is transmitted to a flip-flop 91 in which it is written at the appearance of the corresponding pulse P1. If the flip-flop 91 is simultaneously activated by a validation signal SC_BRT, the corresponding data is output from flip-flop 91 and the value of the current data is based on this data.
  • FIG 14 which illustrates a circuit for selectively assigning a group of external inputs to the system, in order to use these inputs as first level data formation sources, part of the input block 100 of the block 19 of the parallelization unit 16, namely an input allocation circuit, will now be described.
  • each input is connected upstream to an analog / digital converter in turn connected to an analog data source (not shown) producing data XIN_0 to XIN_e.
  • data can also be routed by the management unit 12 directly on the data bus DCPU whose addressing is decoded on write lines WIN0 to WINm, for example XIN data of current, pressure, speed, temperature, audio signal, electrical signal, positioning, switching transducers, etc. , data produced by the management unit 12, commands or data such as data for complex calculations, switching, etc.
  • this characteristic of the present invention allows the system to extend its field of applications to all flexible links between a management unit 12 and the data collected making it possible to use the resources. parallels of the present invention for processor computation, servo control, robotics commands, etc.
  • the input block 100 comprises a decoder 101 which receives as input an input allocation code AACCJN coming from the multiplexer 250-3 of FIG. 10.
  • the decoder 101 has outputs S0 to Se which can activate buffers B0 to Be whose inputs respectively receive the data input IN_0 to IN_e. Consequently, depending on the state of the multiplexer 250-3, an external input for a given cell is applied to a bus 103 common to all the buffers B0 to Be.
  • the signal passing over the bus 103 is called 1N_CEL and therefore it forms zero level data.
  • the signal IN_CEL just like the data
  • ACC_CEL can be used as selected parameter value as long as it is authorized to pass to the output of the logic 250a of Figure 10 under the control of the signal ADR_CTR.
  • the value IN_CEL is transferred as a DATA_CTR signal in order to be able to be combined in a multiplicative or additive manner with the current value of a parameter under the command of the MODE_FCT signal.
  • the address AACCJN provides the address of an entry for a given control.
  • the inputs in the system according to the present invention, have two possible origins, that is to say: either by an external interface (AD converter or other type of interface), or by direct access 104 of the unit management 12 (addressed by WIN0 to WINm), each input choosing its source according to a bitmap addressed by WINMOD in a flip-flop 102 associated.
  • FIG. 15 illustrates a circuit 74 for storing zero level data and for selecting the temporal use of this data for the preparation of the first level data in the cells of the parallelization unit 16, according to an ECH or ETR.
  • This circuit includes a large capacity data memory M150 in which a large amount of zero level data can be stored.
  • this M150 memory can have 2 32 locations. It should be noted, however, that the memory M 150 may have a greater or lesser capacity depending on the length of a desired successive data record. It should also be noted that the M150 memory is the only memory in the system with significant memory if this is required.
  • the management of the addressing of this memory by the cells is accomplished by the circuit of FIGS. 18 and 19.
  • the addresses of the memory M 150 come from a multiplexer 121, for example 32-bit, comprising an input A at which is applied the address signal ACPU (see FIG. 2) coming from the interface 14. These addresses are therefore determined by the management unit 12.
  • the data input from the data memory M 150 of zero level data is connected to block 130 of the interface 14 so that the management unit 12 can write data into this memory M150 at addresses which it will itself have fixed.
  • This storage mode in the memory M 150 makes it possible to use, as zero level data for example, data selected graphically by a user on a screen of the management unit 12, the application program of this management unit. management 12 is naturally designed specially for this function.
  • the address ACPU is activated by data W_ECH_CYC and R_ECH_CYC which respectively control writing and reading by the management unit 12.
  • the other input B of the multiplexer 121 is connected to the output of the circuit 300 of FIG.
  • This entry B is selected when the data W_ECH_CYC and R_ECH_CYC are active.
  • This data from block 140 of interface 14 (see Figure 2) is both applied to an OR gate 122, one output of which is connected to the activation input of multiplexer 121. If the other of these two data is active, an input A of the multiplexer 121 is activated.
  • the read / write command in the memory M150 can selectively be carried out by these same data W_ECH_CYC and R_ECH_CYC.
  • the signal R_ECH_CYC is applied directly to the read command input of the memory M150, while the signal W_ECH_CYC is applied to an AND gate 123 whose output is connected to the write command input of memory M 150.
  • gate 123 The other input of gate 123 is connected to the output of an OR gate 124.
  • Gate 124 receives on a first input the signal corresponding to the active pulse of the period P1, and on a second input the signal S_ETR which can be activated when the data in the memory M120 of FIG. 11 designates the operating mode corresponding to the output of the decoder 71.
  • the output of door 124 is applied to an activation input of a buffer 125.
  • the buffer 125 According to a characteristic of the present invention, the buffer
  • buffer 125 receives at its input a signal from a multiplexer 126.
  • the output of buffer 125 is connected to the data input of memory M150.
  • An output of gate 124 is also connected to an input of gate 123 to enable activation of a write input from memory M150.
  • writing of the level zero data can be carried out at addresses which depend either on the management unit 12 by the signal ACPU on activation by the signal W_ECH_CPU for writing a sample in the memory M150, or by incrementing 0001 with the current POS_X value.
  • This selection is made as a function of the state of the selection signal SC_ETR making it possible to place the multiplexer 320 in one or the other of these configurations.
  • the address at which the data is written in the memory M150 depends on the address specified by the management unit 12 or on the incrementation by 'l' of the value POS_X under the control of the signal SC_ETR.
  • This last way of incrementing corresponds in reality to a reproduction in real time of the data of level zero (from where the acronym ETR: Entries in Real Time).
  • ETR Entries in Real Time
  • the memory M150 When the signal SC-ETR is active, the memory M150 is used alternately in writing (P1) and in reading to obtain the datum of zero level.
  • the signal SC_ECH (see Figure 11) is active, the memory M 150 is only used for writing to write new data.
  • the memory is normally used for reading, the data being read in the same way as for the sine table of block 81 of FIG. 12, except that, in the case of the memory M 150, the data can be modified at any time and point by point and the size of the data table contained in the memory M150 can be predetermined or chosen at will unlike the sine table of block 81.
  • Figure 15 therefore shows selective access to the tables. Access to a table remains determined by POS_X.
  • the value transferred to the memory M150 can come from the management unit 12, as is known to a person skilled in the art. According to a characteristic of the present invention, this value can come second from a function IN_FN which is combinatorial (in a particular case and in the simplest of an entry, but also of a complex calculation). In this case, the computation, saved in memory and auto indexed, can always also be read by POS_X. According to a characteristic of the present invention, this value can come thirdly from the final CCYC processing function which gives a data from POS_X (for example a curve value), as known in current systems, but with the extension of processing functions on parameters in particular.
  • POS_X for example a curve value
  • the table can be used for writing non-temporal (direct) or temporal IN_FN, or temporal CCYC calculated values, and for reading data transcribed by the address POS_X which comes from processing from parameters according to the temporal mode or non-temporal (direct).
  • FIG. 16 (16A and 16B) illustrates an input data analysis circuit 140 making it possible to determine parameters characterizing first level data elaborated from zero level data originating from data coming from the outside.
  • the circuit 140 analyzes the input data applied to the inputs IN_0 to IN_e of the parallelization unit 16.
  • the circuit 140 is intended to detect in the input data properties of amplitude, frequency and distribution of amplitude as a function of frequency (bands), these properties, by being converted into data. numerical, allowing to adjust the parameter values with which the cells will work to form first level data in the parallelization unit 16.
  • the inputs of the detection circuit 140 are connected in parallel to the inputs IN_0 to IN_e of the parallelization unit 16 together forming the signal E of FIG. 1. Consequently, the inputs of the allocation circuits of FIG. 16 and of detection of Figure 18 are connected respectively in parallel.
  • the detection circuit 140 comprises a first group of detectors 141_0 to 141_e making it possible to determine the absolute value of the amplitudes of the digital sound data which are applied by analog / digital converters (not shown) on the respective inputs IN_0 to lN_e. They are also designed to establish the average value over a number of successive data and to provide a corresponding numerical value at their output.
  • the detection circuit 140 comprises a second group of detectors 142_0 to 142_e making it possible to determine an average amplitude value in each of a plurality of p frequency bands of the data sequences applied respectively to the inputs IN_0 to IN_e. These mean amplitude values appear in the form of a digital code and for each of the p bands on a determined output 0 to p of each detector 142-0 to 142_e.
  • the detection circuit 140 comprises a third group of detectors 143_0 to 143_e responsible for determining the temporal properties of the sequences of input data and in particular the instants of passage through zero, the mean of their frequency and a counting value. These data are presented in the form of digital codes on each of the outputs of the detectors 143 0 to 143 e. All the digital values coming from the detectors of the circuit 140 can selectively be placed in an accumulation memory M160 with 192 locations, (where, as specified above, this number of locations of 192 is an example for destining a detector to the one or the other of the cells, for example 192 cells; if this number of locations is different the selection encoding in FIGS.
  • the addresses to which these values are written in this memory are formed by the least significant bits of the signal ADR_CTR applied to the distributor block 250 shown in Figures 3 and 10.
  • the most significant bits of this signal respectively determine the position of several selectors to which the detector output values are applied.
  • the outputs of detectors 141_O to 141_e are applied to 'e' inputs of a selector 144 according to a series of amplitude bits of the signal ADR_CTR.
  • “Bands” of the ADR_CTR signal and making it possible to position selectors 145_0 to 145_p in such a way that on their output, one can group amplitude values corresponding respectively to the various bands O to p on which the detectors 142_O to 142_e work.
  • the values corresponding to these grouped bands can also be selected using a selector 146 which receives on its inputs DO to De the values thus grouped.
  • the output of the selector 146 forms part of the digital signal sent to the locations of the memory M160.
  • a selector 147 makes it possible, using the frequency bits of the signal ADR_CTR, to assign the digital output values of the detectors 143_0 to 143_e to the various memory locations of the memory M 160.
  • the memory M 160 can contain, for each of the cells of the parallelization unit 16, a digital value whose stored data represent the values of the amplitude and frequency parameters of the digital data applied from the outside to the 'parallelization unit 16.
  • the parameter values thus noted on the input signal can be used to intervene in the calculation of the parameter values (VAL value) provided that at the instant considered the signal ACC_DET is authorized to go to the output of block 250a in Figure 10 under the control of the signal ADR_CTR from the CPU as shown in Figure 2.
  • the signal DATA_CTR can be combined additively or multiplicatively with the current value of a parameter under the command of the signal MODE_FCT which is applied to the arithmetic unit U4 of FIG. 3B, this signal MODE_FCT being itself selected via the content of the memory M120 (FIG. 11) loaded by the management unit 12.
  • L development of the first level data in the cells can therefore be determined by four sets of parameter values contained respectively in the data ACC_CEL, ACC_ENS, ACC_DET and IN_CEL, as shown in Figure 10.
  • FIG. 17 illustrates a circuit making it possible, in the final phase of developing first level data, to take account of certain filtering coefficients, in the form of a filtering circuit 160, as known in the art, making it possible to apply appropriate filtering to the CCYC signal as shown by block 76 in Figure 11.
  • This filtering circuit 160 comprises a sequencer 161 of the filtering functions.
  • the sequencer 161 receives the signal CCAL from the interface 14 (FIG. 2) to run a sequence counter, and the signal FLT from the circuit of FIG. 3 as a parameter determining the filtering by selecting, at the end of the line, filter coefficients in a memory M180, so as to determine an address of a table in which is contained a curve of predetermined filter coefficients.
  • the sequencer 161 thus determines a filtering operation code appearing on an output 161a.
  • the sequencer 161 is also capable of generating two types of address values appearing on outputs 161 c and 161 b respectively.
  • the address value of the output 161b is applied to a memory M 170 of filtering calculations.
  • the memory M 170 has a predetermined number of locations, for example
  • This memory M170 is identified as a state memory, as known in the art in the case of an IIR algorithm (for “Infinity Inpulse Response”) or FIR (for “Finite Impulse Response”), in which the number of states is proportional to the number of coefficients for a given type of filter (type of algorithm, Curve, Slope).
  • IIR for “Infinity Inpulse Response”
  • FIR for “Finite Impulse Response”
  • the coefficient memory is shared between the cells, but each cell has its own state locations, so that 192 cells with 16 states would use 3072 locations and a memory of 16384 would give for 192 cells 85 states.
  • the address output 161c is applied to an input B of a multiplexer 162, an input A of which can directly receive address values from block 120 of the interface 14. These values are written by the management unit 12 for characterize these filters (coefficients) in a memory
  • the selection of input B of multiplexer 162 is carried out under the control of the output of an ET 163 gate which opens on condition that one of three data is present, namely the read signal R_FLT_COEF, the write signal W_FLT_COEF or a coefficient read command signal constituting an output 164a of a block 164 for determining the IIR filtering function (for “Infinity Inpulse Response”, see above).
  • the output of the multiplexer 162 is applied to the memory M 180 of filter coefficients. This memory M180 receives its data directly from the management unit 12. This data is written to the appropriate addresses under the control of a write signal coming from an AND gate 165.
  • a first input of gate 165 is connected to the block 140 of the interface 14 (read signal R_FLT_COEF), another input being connected to the output 164a of the block 164 for determining filtering functions.
  • the data output of memory M 180 is applied to an input 164b of block 164.
  • the data input and output of memory M170 of filtering calculations are respectively connected to output 164c and to the input 164d of block 164.
  • the latter receives the operation code of block 161 on its input 164e.
  • Reading from memory M 170 is controlled by a signal from output 164f, while the write command comes from output 164g of block 164.
  • this block 164 has an input 164h to which the signal CCYC is applied selectively derived from blocks 72, 73 and 74 of FIG. 11, while the "filtered" data appear at the output 164i of block 164.
  • the memory M170 makes it possible to temporarily store the intermediate filtering data, these data producing the signal filtered on the output 164i, that is to say the signal CFLT which is the signal used in Figure 11 to determine the level 1 data.
  • the operation code makes it possible to control the transitions of the data between the inputs and outputs of the block 164.
  • Figures 18 (18A and 18B) and 19 (19A and 19B) illustrate a circuit 180 for producing time bounds or non-temporal (direct) addressing used during the development of first and second level data.
  • the circuit 180 for determining the time limits or for addressing certain data production processes will be described, as used in the art.
  • the temporal terminals are addressing terminals in general terms.
  • the loopback terminals described below are not necessary, as are the direction commands MOD_CYC, MOD_ALT, MOD_DCY which are deactivated in non-temporal mode (direct mode).
  • These production processes are the calculation data mode, when the parallelization unit 16 works with data coming from the memory M150 of FIG. 15 and the real-time data mode.
  • the validation of the determination circuit 180 is therefore ensured at the appropriate time by one or the other of the data SCJECH or SC_ETR applied to an AND gate 181 shown at the top of FIG. 18A.
  • the determination circuit 180 comprises:
  • a memory M190 in which values of start times can be stored (that is to say values representing a predetermined instant on the time axis by accumulation of a determined number of values analogous to POS_X values ) a series of specific data.
  • This memory M190 can be loaded with a start time value for each of the cells.
  • the address value is formed by the signal AC and the data is written / read in the memory from the management unit 12 under the command of the data W_ECH_DEB / R_ECH_DEB; - a memory M200, which makes it possible to store in an analogous manner instants of end of a data sequence.
  • the data is written / read in this memory by the data W_ECH_FIN / R_ECH_F1N;
  • Comparators 182 to 185 associated respectively with each memory M190 to M220, and of which an input A is connected to the data output of the associated memory and an input B receives the current value of POS_X.
  • the comparators 182 and 184 provide a validation signal when their input B is less than or equal to their input A and the comparators 183 and 185 provide a validation signal when the input B is greater than or equal to the input A;
  • - activation logic 186 to 190 respectively connected to the outputs of comparators 182 to 185, and each receiving several data which are logically combined therein to ensure, if necessary, the activation of output buffers 192 to 195 whose outputs can provide selectively the value INIT_X which is a particular initialization value from which POS_X is then incremented by the designation values calculated in circuit 300.
  • the activation logic 186 to 191 also receive the mode data MOD_CCY, MOD_DCY and MOD_ALT which are contained in the output data of the memory M120 of FIG. 11;
  • a sign memory M230 in which a sign determining the direction of progression of the value POS_X can be written.
  • This memory M230 is addressed by the signal AC and receives the sign bit to be memorized for the cells of a multiplexer 198. This receives as signal for selection the signal CJNIT of the comparator 50 of FIG. 7. This signal passes the sign appropriate to the output of multiplexer 198 when the CJNIT signal is active. Otherwise the sign signal comes from a logic gate 199 which logically combines the output of the memory M230 with a mode signal MOD_ALT. When the latter is active (O '), the sign changes with each writing in the memory M230; and
  • Another multiplexer 200 is controlled by this same mode signal MOD_ALT to selectively establish the signal SGN used in block 34 of the circuit 300 of FIG. 6.
  • An input A of this multiplexer receives a signal T_DIR and an input B the signal of MOD_DCY mode.
  • Buffers 194 and 195 are made active by means of respective AND gates 201 and 202 and writing to memory M230 is controlled by logic 203.
  • Buffer 192 fixes the terminal at a point or at a start time EJDEB of the calculation data series, when POS_X reaches a start address
  • the value of TJDIR will be set to O by gate 203, when fixing the terminal E_B1 to put the progression in decrementation.
  • the terminals are fixed by the signal INIT_X transferred to the multiplexer 350 of Figure 6, which reinitializes the value POS_X by the command CDJNIT from gate 208.
  • the signal INIT_X can also be produced selectively by the output of two buffers 204 and 205 which respectively receive the data E_DEB and E_FIN from memories M190 and M200. These buffers are activated by the appropriate logical combination of the CJNIT data (phasing or setting to the initial address in non-temporal mode called direct mode), the mode signal MODJDCY and the output signal from the OR gate 181, this combination logic being provided by OR gates 206 and 207.
  • the buffer 204 fixes the initial value (or position) of POS_X on the activation of CJNIT and the mode data SCJ ⁇ CH / SCJ ⁇ TR.
  • MOD_DCY 1 (increasing)
  • the start point E_DEB constitutes the initialization value transmitted to INIT_X
  • MOO_DCY 0 (decreasing)
  • the end point E_FIN constitutes the initial value transmitted to INIT_X.
  • This last signal is then selected on the multiplexer 350 of Figure 6 to initialize the value POS_X.
  • the CJNIT signal passes through an AND gate 208 (high in Figure 18).
  • This gate provides the CDJNIT signal.
  • the operation of this circuit 180 for determining the time limits and for addressing will now be briefly recalled.
  • the value POS_X When a cell is put in phase or at the initial address in non-temporal mode (direct mode), the value POS_X must be set to its initial value via the multiplexer 350 of the circuit 300 of Figure 6.
  • the initial value INIT_X of POS_X is equal to zero.
  • This value goes through buffer 196 which is activated in the absence of either of the SC_ECH or SC_ETR data.
  • the value INIT_X is determined by an instant of departure of a given cell on the time axis.
  • the initial value is the value E_FIN stored in the memory M200 for the cell considered.
  • a series of first level data can be delimited in time by time limits between which the value POS_X can change, either by incrementing, or by decrementing, or even by making a "loop", this which amounts to repeating the same series of calculation data a number of times.
  • Such loop repetition can also be done in several ways: “forward”, “backward” or alternately “forward” and "backward”.
  • the POS_X values thus delimited each time constitute an address for the memory M 150 of FIG. 15 which stores data values to be reproduced either in real time (ETR mode), or from data which have been stored there before. (ECH mode).
  • Figure 3a (220, 265), Figure 5 (M503. M507), Figure 6 (350, 340, 320, 355), Figure 7a (M9, 43, 42, M8, 52), Figured 7B, Figure 8A (M11, M12, M13), Figure 8B (M14), Figure 10 , Figure 11A (M 120), Figure 14 (101, 102), Figure 17 (162, 163, 161), Figure 18A (M190, M200, 182, 183, 180, 181, 186, 187, 208), Figure 18B (M210, M220, 184, 185, 200, 201, 188-191, 202, 203, M230, 198, 199), and Figure 19;
  • a circuit for transferring the results of the cells to a matrix of cell results comprising:
  • FIG. 7A memory M6
  • FIGS. 8A, 8B a circuit for entering data from data interfaces to accumulate them in an input matrix, represented for example in FIG. 14 by multiplexers producing the data IN_0 to IN_e and controlled by a flip-flop 102;
  • circuit for selecting the source of the data on the different functions of the different cells comprising:
  • FIG. 3B a circuit for correlating the action on each input of data coming from matrices at a variable level, represented in FIG. 3B for example by an attenuation memory (M4) for each block of FIGS. 4A to 4E, where the memory M4 makes it possible to establish the weight of the input value DATA_CTR by the divider U4 routed to the flip-flop 240, the result obtained then acts with the data B of choice on the operator U5 in addition, multiplication etc .;
  • M4 attenuation memory
  • FIGS. 14 and 15 a circuit for assigning tables to the function output of each cell so as to be able to use the memorization in reading or writing, as illustrated in FIGS. 14 and 15;
  • FIGS. 17, 18A, 18B which represent a digital filtering function
  • the modular system according to the present invention can have an architecture as simple as a minimum of two cells connected together so that their results are combined on an output, and that a parallel architecture uses at least eight cells for all practical purposes.
  • a data processing method is proposed, based on a cell architecture and allowing parallel processing of data supplied as input and producing output data.
  • the different actions of the method according to a possible embodiment are listed now in relation to Figures 20A to 20E. .
  • the method (1000) includes the configuration of an architecture in cells (1100), by actions of:
  • the method (1000) comprises the establishment of groups grouping cells (1200), including:
  • method 1000 includes the configuration of the circuit input (1300) including:
  • Method 1000 includes a configuration of the circuit for parallel processing (1400), including:
  • the method 1000 includes the configuration of the outputs of the circuit (1500), including actions of:
  • the method 1000 uses a management unit 12, a functional interface 14; and ⁇ parallelization unit 16.
  • the actions establishment of a cell architecture (1100), establishment of groups grouping cells (1200), configuration of the circuit for parallel processing (1400), configuration of the input of the circuit (1300) and configuration of the outputs of the circuit (1500) constitute a parallel processing unit 16 as described above, which processes input data and provides output data by communicating with a management unit 12 via an interface functional 14.
  • the action of configuring the input of the circuit (1300) is carried out by the interface 14 of the processing system, which includes a capacity for selection of access memories, in particular of the WIN and WINMOD inputs (see Figure
  • the modularity of the architecture presented in the system and the method according to the present invention makes it possible to combine functions on data of various types.
  • the data at the various stages described can be signals or calculation data for example.

Landscapes

  • Engineering & Computer Science (AREA)
  • Computer Hardware Design (AREA)
  • Theoretical Computer Science (AREA)
  • Computing Systems (AREA)
  • Physics & Mathematics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Complex Calculations (AREA)
  • Multi Processors (AREA)
  • Image Processing (AREA)

Abstract

L'invention a pour objet un système et une méthode de processeur modulaire destiné à la production de données fournies en parallèle résultantes de traitements parallèles sur des données fournies par un processeur hôte (Ordinateur, micro-contrôleur, DSP, etc.) ou au besoin et en toutes combinaisons par des interfaces d'entrées de données. Les données résultantes des calculs peuvent au besoin et en toutes combinaisons être transférées au processeur hôte ou à des interfaces de sorties. Le système comprend un minimum de deux cellules reliées entre elles de telle sorte que leurs résultats sont combinés sur une sortie, et une architecture parallèle complète est basée sur au moins huit cellules. Le système et la méthode permettent un mode de traitement temporel récursif, un mode de traitement temporel non récursif et un mode de traitement non temporel.

Description

TITRE DE L'INVENTION
SYSTEME DE PROCESSEUR MODULAIRE
DOMAINE DE L'INVENTION
La présente invention est relative à un système de processeur modulaire. La présente invention concerne plus particulièrement un système de processeur modulaire à éléments configurables et intereliables.
ARRIERE-PLAN DE L'INVENTION
Les principales limites des processeurs actuels, du type microordinateurs ou grands ordinateurs, sont liées à leur architecture séquentielle. De fait, même quand ils visent à traiter des données de manière simultanée, ces systèmes actuels utilisent généralement des mots d'instructions qui donnent, de façon séquentielle, l'ordre à une ou plusieurs unités arithmétiques et logiques (ou « ALU » pour « Arithmetic and Logic Unit »), d'exécuter une ou plusieurs fonctions. D'une part, le nombre d'instructions contenues dans un mot dépend de la longueur du mot en bits. De plus, le nombre d'instructions contenues dans un mot est limité à une largeur de bus, soit 64, 128 ou 256 bits, y compris dans les cas des très longs mots d'instruction, dits « noyaux VLIW » (pour « Very Long Instruction Word »). Ainsi, les ordres sont donnés de façon séquentielle.
Finalement, de par leur architecture, les systèmes actuels se prêtent mal à la mise en place de procédés simultanés de complexités variables, de bouclage différent, de caractère évolutif, de réseaux de calculs ou de logique floue notamment.
Il en résulte que les architectures actuelles ne permettent la mise en place d'ordres de traitements par séquences de programmes pour des procédés rapides et parallèles qu'à conditions que tous les éléments, tels que bus, mémoires, processeurs, etc., soient rapides.
Ainsi, en pratique, dans les processeurs disponibles, deux méthodes permettant d'implanter des fonctions simultanées, rapides, complexes ou en réseau par exemple, sont couramment utilisées. Une première méthode consiste à implanter une structure multitâche d'exécution de programmes, dans laquelle différents programmes partagent un même processeur pour effectuer des tâches différentes selon des priorités préétablies. Dans ce cas, l'inconvénient majeur est que les tâches ne sont pas réellement simultanées. De plus, une telle structure multitâche implique une charge de gestion supplémentaire de la part du processeur (on parle dans ce cas d'«overhead»), ce qui peut conduire à une diminution des performances de celui-ci. Il est clair qu'une telle approche séquentielle de transmission des commandes est en contradiction avec la nature du processus dans le cas où l'objectif est d'effectuer des opérations simultanées, qu'elles soient indépendantes, corrélées ou encore que l'objectif soit d'implanter des algorithmes complexes dans le cas d'équations complexes à niveaux.
Une seconde méthode consiste à implanter un système à processeurs multiples. Dans ce cas, plusieurs processeurs se partagent un environnement commun. De tels systèmes sont généralement plus performants que les systèmes précédents. Cependant, ils ont l'inconvénient de nécessiter davantage de composantes. De plus, étant donné que plusieurs processeurs partagent des connections et des bus communs, ces systèmes sont limités dans leur fonctionnement aux capacités d'échange de données entre les processeurs, c'est à dire essentiellement à un échange à la fois.
De toute évidence, quelle que soit la solution sélectionnée, une telle approche séquentielle requiert de développer des processeurs de plus en plus rapides afin de compenser une architecture qui demeure déficiente et n'utilise pas les possibilités qu'offrent les processeurs dans leur pleine mesure. La vitesse d'horloge compense alors pour l'encodage séquentiel des opérations, parce que, fondamentalement, l'architecture est déficiente.
Dans le domaine du traitement de signaux sonores, un concept de cellules qui partagent temps et ressources pour réaliser une parallélisation sonore de type modulaire a été introduit récemment. Un tel concept ouvre la possibilité d'une capacité de traitement inaccessible aux processeurs séquentiels, de type microprocesseurs et DSP (pour « Digital Signal Processor») courants. Dans des systèmes de parallélisation de signaux sonores basés sur une architecture en cellules tels que décrits dans le brevet américain no. 6,137,044 soumis le 23 septembre 1999 et émis le 24 octobre 2000 notamment, les cellules sont dotées de fonctions destinées à la parallélisation sonore. Elles sont regroupées en «groupes de sorties de cellules», chaque regroupement constituant en l'occurrence un son spécifique. La paramétrisation des cellules et de leur fonctionnement comprend :
- l'établissement d'un mode respectif, tel un mode d'oscillateur sinusoïdal ou un mode d'un signal extérieur par exemple, la définition de paramètres de base de chaque cellule telles que : amplitude relative, fréquence relative, phase, fonction de filtrage, par exemple; et
- la définition de liens qui permettent d'introduire un signal externe dans une cellule ou de commander un ou plusieurs paramètres parmi des paramètres fixés de base par une autre cellule. De plus, ces systèmes et méthodes de parallélisation sonore enseignent des moyens de regrouper les cellules sur des groupes, qui comportent également des paramètres absolus de fréquence et d'amplitude s'appliquant sur toutes les cellules d'un groupe donné, et des moyens d'assignation des groupes sur les sorties d'un circuit.
De telles configurations font en sorte que chaque groupe de cellules constitue un son généré à partir d'éléments que sont les cellules.
Il apparaît donc que des systèmes dotés d'une architecture modulaire et configurable, permettant un degré élevé de performances et de souplesse sont connus. Ils permettent de générer des signaux en utilisant des ressources, dénommées cellules, qui fonctionnent en partageant des éléments arithmétiques de manière à ce que chacune soit en mesure de générer un signal qui peut être combiné à un signal généré par une autre.
Néanmoins, l'architecture modulaire ainsi développée est clairement destinée à la parallélisation de signaux sonores. En particulier, les fonctions des cellules sont adaptées à la génération et au calcul en parallèle de fonctions sonores. De plus, les paramètres des cellules sont prédéfinis en fonction du contexte du traitement sonore en parallèle, et l'ensemble des opérations entre ces cellules est géré en conséquence. Par conséquent, il reste une grande place pour des méthodes et des systèmes permettant de résoudre les principales limitations processeurs existants et de généraliser un traitement parallèle à tout type de données et de signaux.
SOMMAIRE DE L'INVENTION
Plus spécifiquement, la présente invention propose un système de processeur modulaire basé sur une architecture en cellules et permettant d'effectuer des traitements sur des données d'entrée afin d'obtenir des données de sortie, le système comprenant des moyens d'effectuer des opérations arithmétiques et logiques complexes, parallèles, distinctes et multiples en utilisant des ressources et une structure adaptée des cellules, les opérations arithmétiques et logiques étant effectuées distinctement sur les cellules de sorte que chaque cellule effectue des opérations qui lui sont destinées selon des besoins et une configuration déterminables, de manière indépendante et simultanée.
Selon un deuxième aspect de l'invention, il est prévu une méthode de traitement de données basée sur une architecture en cellules permettant un traitement parallèle de données fournies en entrée afin de produire des données de sortie, ladite méthode comprenant : - une configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule;
- une exécution des fonctions arithmétiques et logiques vers une fonction finale donnant un résultat unique de sorte qu'au choix et sur chaque cellule le résultat soit utilisé de manière spécifique; - un transfert du résultat de chaque cellule sur une matrice de résultats des cellules;
- une assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules;
- un transfert des résultats des groupes distincts et indépendants sur une matrice de résultats des groupes;
- une saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées;
- une sélection d'une provenance des données sur les différentes fonctions de chaque cellule;
- une corrélation d'au moins une action sur chaque entrée de donnée provenant de matrices à un niveau variable de manière à les interelier;
- une définition des fonctions appliquées sur les cellules selon une nature générale ou partiellement définie en fonction d'un mode de fonctionnement de chaque cellule;
- une attribution d'au moins une table à la sortie des fonctions de chaque cellule permettant une mémorisation en lecture ou en écriture;
- une application d'une séquence supplémentaire de fonctions arithmétiques, pouvant être choisies sur des lignes de code, au résultat de chaque cellule;
- une application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions s'effectuent sur le résultat d'un groupe dont les résultats proviennent d'un ensemble sélectionné de cellules; - un transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie;
- une sélection d'une provenance de chaque entrée de la matrice des entrées; - une sélection d'une destination de chaque sortie de la matrice des sorties; et
- une extension de traitement de sorte que les fonctions des cellules s'appliquent sur des niveaux multiples et qu'une inscription de valeurs sur ces données soit d'une provenance sélective.
Selon un troisième aspect, il est prévu un système de traitement de données basé sur une architecture en cellules comprenant : une unité de gestion; une unité de traitement, l'unité de traitement établissant des paramètres définissant des caractéristiques de données, et appliquant les paramètres à des données de niveau zéro, afin d'engendrer des données de niveaux supérieurs; et une interface fonctionnelle, l'interface fonctionnelletransférant des données de ladite unité de gestion à l'unité de traitement; les paramètres étants inscrit selon une mise en fonction choisie dans le groupe comprenant mise en fonction vectorielle et mise en fonction directe.
D'autres objets, avantages et caractéristiques de la présente invention deviendront apparents à la lecture de la description non restrictive suivante de modes de réalisations spécifiques, donnée à titre d'illustration seulement en référence aux figures annexées.
BREVE DESCRIPTION DES FIGURES
Dans les dessins annexés :
La Figure 1 est un diagramme illustrant un circuit pour un processeur selon un mode de réalisation préférentiel de la présente invention;
Les Figures 2A et 2B représentent un schéma illustrant une interface d'échange de données entre des unités de gestion et de parallélisation, et de cadencement des opérations effectuées dans l'unité de parallélisation du circuit de la Figure 1 ;
Les Figures 3A et 3B représentent un schéma illustrant un circuit d'élaboration d'un paramètre déterminant une propriété de données dans le circuit de la Figure 1 ;
Les Figures 4A à 4E sont un schéma illustrant comment cinq circuits d'élaboration d'un paramètre selon les Figures 3A et 3B peuvent être utilisés pour déterminer cinq paramètres fixant les propriétés de données à engendrer;
La Figure 5 est un schéma illustrant un circuit d'extension des fonctions de traitement des paramètres de la Figure 4;
La Figure 6 représente un schéma illustrant un circuit générateur de valeurs temporelles ou de sélection de données génériques permettant de désigner des données de niveau zéro, utilisés pour préparer des données de premier niveau;
Les Figures 7A et 7B représentent un schéma illustrant un circuit d'attribution de données de premier niveau à des circuits de l'unité de parallélisation du circuit de la Figure 1 ; Les Figures 8A et 8B représentent un schéma d'un circuit d'attribution de données de second niveau à un circuit monté juste en amont de la sortie de l'unité de parallélisation de la Figure 1 ;
La Figure 9 représente un schéma illustrant la sélection d'entrées sur des matrices de contrôle de paramètres du circuit de la Figure 8;
Les Figures 10A et 10B représentent un schéma illustrant comment des paramètres élaborés dans les circuits des Figures 3 et 4 peuvent être utilisés pour la production de données en fonction de plusieurs sources de données internes ou externes; Les Figures 11 A et 11 B représentent un schéma d'un circuit de sélection de modes de fonctionnement du circuit de la Figure 1 ;
La Figure 12 est un schéma illustrant un circuit générateur de données de premier niveau à partir de données de niveau zéro présentes à l'intérieur même de l'unité de parallélisation du circuit de la Figure 1 ;
La Figure 13 est un schéma illustrant un autre circuit générateur de données de premier niveau à partir de données de niveau zéro également produites à l'intérieur même de l'unité de parallélisation du circuit de la Figure 1 ;
La Figure 14 est un schéma illustrant un circuit d'attribution sélective d'un groupe d'entrées externes utilisées en tant que sources de formation de données de premier niveau;
La Figure 15 est un schéma illustrant un circuit permettant le stockage de données de niveau zéro;
Les Figures 16A et 16B représentent un schéma d'un circuit d'analyse de données d'entrée afin de déterminer des paramètres caractérisant des données de premier niveau élaborées à partir de données de niveau zéro ayant pour origine des données d'entrées externes; La Figure 17 est un schéma illustrant un circuit permettant en phase finale d'élaboration des données de premier niveau, de tenir compte de coefficients de filtrage ou d'autres fonctions;
Les Figures 18A et 18B représentent un schéma illustrant un i circuit de production de bornes temporelles utilisées au cours de l'élaboration de données de premier et de second niveaux;
La Figure 19 est un schéma illustrant un second circuit de production de bornes temporelles utilisées au cours de l'élaboration des données de premier et second niveaux ; et
Les Figures 20A à 20E composent un organigramme illustrant une méthode de traitement de données selon un second aspect de la présente invention. DESCRIPTION DETAILLEE DE L'INVENTION
De façon générale, la présente invention propose un processeur modulaire destiné au traitement parallèle de données et/ou à la production de signaux.
D'une part, des données sont fournies en parallèle en entrée ou produites par des traitements parallèles de données issues d'un processeur hôte, de type ordinateur, micro contrôleur ou un processeur de signal numérique DSP par exemple, ou encore produites au besoin et sous toutes combinaisons possibles par des interfaces d'entrées de données.
D'autre part, les données issues des traitements parallèles peuvent être transférées, au besoin et en toute combinaison, au processeur hôte ou à des interfaces de sorties. Plus précisément, la présente invention fournit un circuit comportant un certain nombre de cellules et de groupes. Chaque cellule est associée à un groupe. Les groupes sont des fonctions qui compilent les résultats des cellules qui leur sont destinés.
La configuration opérationnelle des cellules est mise en place par l'intermédiaire de registres. Les registres sont essentiellement des espaces mémoires des cellules. La configuration d'une cellule consiste à commander à ladite cellule de calculer une équation algébrique dans le cadre d'une structure où des valeurs sont introduites dans la cellule et appliquées à des fonctions de différents niveaux. De tels niveaux sont équivalents à des niveaux de parenthèses.
Chaque fonction de chaque cellule est distinctement configurable, par exemple l'addition, la soustraction, la multiplication, la division, les opérations logiques, les opérations décisionnelles. Ainsi, l'architecture des cellules peut être adaptée en fonction de la manière dont elle est implantée.
Typiquement, une cellule comporte au moins trois niveaux de calculs. A la sortie du dernier niveau de calcul, il est possible d'introduire des fonctions non linéaires ou des calculs indexés, au moyen de tables qui sont parties intégrantes de la structure des cellules.
Les données de telles tables sont dynamiquement accessibles par les cellules et / ou par un processeur externe pour un adressage indexé ou en tables de conversion du type conversion linéaire/ logarithmique suivant une séquence logarithmique par exemple.
De plus, la sortie de chaque cellule peut être additionnée aux sorties d'autres cellules sélectionnées et identifiées à un groupe de cellules spécifique. Un tel groupe peut affecter le résultat de la compilation des cellules à une fonction commune. Le résultat final du groupe est inséré dans une « matrice de groupes » qui contient la sortie de chaque groupe du circuit.
Il est à noter que le résultat d'un groupe est transféré suivant des poids définis par d'autres registres sur un certain nombre d'accumulateurs qui cumulent les groupes qui leur sont destinés. Ces accumulateurs sont contenus dans une « matrice des sorties ». Les sorties peuvent être lues par un processeur externe ou transféré vers des « interfaces de sorties ».
Par ailleurs, le résultat des cellules est introduit dans une « matrice de cellules » qui contient la sortie de chaque cellule du circuit.
Enfin, une quatrième matrice, dite «matrice des entrées » contient les registres d'accumulateurs de données d'entrée qui peuvent être inscrites par un processeur externe ou provenir des interfaces d'entrées.
Les opérations arithmétiques et logiques des cellules sont effectuées sur des données dont la provenance peut être dynamiquement déterminée, soit qu'elles sont directement inscrites par un processeur externe, par la sortie d'une autre cellule de la matrice de cellules, par la sortie d'un groupe de la matrice de groupes ou par une entrée de la matrice des entrées.
Maintenant, en référence aux Figures 1 à 19, un circuit 10 d'un processeur modulaire selon un mode de réalisation de la présente invention va être décrit.
De façon traditionnelle dans le domaine des systèmes de parallélisation de signal notamment, le système de la présente invention utilise le circuit 10 illustré à la Figure 1 et comprenant généralement : - une unité de gestion 12;
- une interface fonctionnelle 14; et
- une unité de parallélisation 16.
L'unité de gestion 12 peut être un ordinateur personnel doté d'un programme de gestion de données fonctionnant avec tout type de système d'exploitation usuel comme Windows™, par exemple.
Alternativement, l'unité de gestion 12 peut être tout système permettant d'exécuter un programme dédié à la gestion d'un processeur modulaire suivant la présente invention et peut se présenter sous diverses formes, tels que microcontrôleur, automate, système d'acquisition, DSP, ou tout autre système géré par microprocesseur y compris un processeur interne au circuit
10. En fait l'unité de gestion 12 est un système classique, qui selon la présente invention, peut multiplier ses performances et ses possibilités de traitement.
L'unité de gestion 10 contient une interface usager notamment, qui décide des calculs à effectuer en séquences ou en parallèle.
L'unité de gestion 12 est connectée à l'interface fonctionnelle 14. L'interface fonctionnelle 14 assure, d'une part, l'échange de données entre l'unité de gestion 12 et l'unité de parallélisation 16 et d'autre part, le cadencement des opérations de traitement mises en œuvre dans l'unité de parallélisation 16.
Ultimement, l'unité de parallélisation 16 délivre un signal sur une sortie 18. Comme l'illustre la Figure 1, l'unité de parallélisation 16 comprend un certain nombre de blocs fonctionnels matériels qui seront décrits en détails par la suite en références aux figures correspondantes, les figures concernées par les blocs étant indiquées dans chacun d'entre eux.
Brièvement décrite, l'unité de parallélisation 16 comprend un premier bloc fonctionnel 17 d'établissement de paramètres définissant des caractéristiques de données à produire et un second bloc fonctionnel 19 de mise en oeuvre de ces paramètres en les appliquant à des données dites de niveau zéro afin d'engendrer des données dites de niveaux supérieurs. Il est à noter que, pour faciliter la compréhension, chaque bloc est identifié par un mot-clé. L'unité de traitement 16 suivant la présente invention agit comme un co-processeur parallèle. Il est à noter que l'unité de traitement 16 suivant la présente invention pourrait être intégrée dans une même entité (circuit intégré par exemple) que l'unité de gestion 12, dans le cas d'une unité de gestion 12 sous forme de processeur.
(La Figure 2 (2A et 2B) est un schéma de l'interface 14 destinée à l'échange de données entre l'unité de gestion 12 et l'unité de parallélisation 16, et au cadencement des opérations effectuées dans l'unité de parallélisation 16. L'interface 14 comprend un oscillateur à quartz 20 qui fournit un signal d'horloge de base CLK à un compteur binaire 22 à trois bits. Trois sorties Q0, Q1 , Q2 de ce compteur 22 constituent un signal CCAL décrit ultérieurement. Les trois sorties Q0, Q1, Q2 du compteur 22 sont appliquées à un décodeur binaire 24, qui décode un signal à trois bits sur huit sorties C0 à C7. Les sorties C0 à C3 du décodeur 24 cadencent quatre sous-périodes P2_AMP, P2_S1, P2_S2 et P2-FLT d'une période P1 qui est cadencée par l'intermédiaire d'une porte ET 26. Les sorties C4 et C5 du décodeur 24 cadencent respectivement des sous-périodes P3 et P4, tandis que les sorties C6 et C7 sont appliquées à une porte ET 28 par l'intermédiaire de laquelle est cadencée une sous-période PCPU.
Il est à noter que la période P1 , et les sous-périodes P3, P4 et P2_AMP, P2_S1 , P2_S2 et P2-FLT ont toutes la même durée, mais que les intervalles de temps pendant lesquelles elles déterminent une activité dans l'unité de parallélisation 16 sont fixés par la durée de leur niveau bas en logique négative, dite «impulsion active », les impulsions actives étant déphasées les une par rapport aux autres dans les diverses sous-périodes. Les personnes versées dans l'art apprécieront qu'en logique positive, un circuit équivalent comprend des portes complémentaires, par exemple des portes ET deviendraient des portes OU.
La sortie C0 du décodeur 24 est également appliquée à une entrée RESET d'une bascule S-R 30. La bascule 30 reçoit sur une autre entrée SET un signal CS_CPU, en provenance de l'unité de gestion 12, qui représente des demandes d'accès de l'unité de gestion 12. Plus précisément, la bascule 30 fournit périodiquement un signal ATTENTE_CPU sur une borne 32 pour mettre l'unité de gestion 12 en attente lors d'une requête exprimée par le signal CS_CPU, pendant la durée cumulée des impulsions actives des sous-périodes P2_AMP, P2_S1 , P2_S2, P2-FLT, P3 et P4. Durant les impulsions actives du signal PCPU, l'unité de gestion 12 est autorisée à transmettre des adresses, des données et des commandes de lecture/écriture à l'unité de parallélisation 16 et peut également recevoir des données. L'oscillateur à quartz 20 est par ailleurs relié à un compteur binaire 34 à n bits, l'unité de parallélisation 16 comprenant un nombre « N » de cellules égal à 2π. Le compteur 34, ainsi synchronisé sur le signal d'horloge CLK de l'oscillateur à quartz 20, est commandé par le signal C7 du décodeur 24 qui le fait progresser d'une unité au terme de chaque période P1. Une sortie Qn du compteur 34 délivre une adresse de base de cellule ADR_Base à un bloc de sélection d'adresses de cellules 100 pour déterminer une succession d'adresses de base des cellules, par exemple 0 à 191, dans le cas de 192 emplacements de mémoires dans une cellule. Comme évoqué plus haut, l'unité de gestion 12 peut communiquer via l'interface 14 avec l'unité de parallélisation 16 pendant la sous-période PCPU. A cet effet, la sortie PCPU de la porte 28 et le signal de requête d'accès CS_CPU sont appliquées à une porte OU 36 dont une sortie peut activer un signal de sélection SEL du bloc 100. Dans le cas où l'état logique du signal SEL détermine que la sortie QN du compteur 34 constitue l'adresse d'une cellule active à un instant considéré, la sortie du compteur 34 passe de l'entrée ADR_Base du bloc de sélection d'adresses de cellules 100 vers une sortie partagée AC (adresse instantanée de la cellule) de ce bloc. Dans le cas où l'état logique du signal SEL détermine que le programme de gestion de l'unité de gestion 12 fournit cette adresse, le signal SEL active deux blocs d'interface 130 et 140 décrits plus loin (voir Figure 2B).
Il est rappelé que les cellules de l'unité de parallélisation 16 sont matérialisées ponctuellement au cours de séquences de traitement successives dites PCAL permettant la préparation de données de premier niveau, un signal PCAL impliquant le signal P1 combiné aux données P3 et P4, à l'exclusion du signal PCPU ou «cycle d'accès » qui détermine dans chaque période P1 le temps d'accès autorisé pour l'unité de gestion 12. Ces séquences de traitement PCAL composent ensemble un cycle P durant lequel sont successivement effectués des traitements de données de premier niveau pour toutes les cellules, le cycle P étant exécuté à la fréquence d'échantillonnage du système, qui correspond à la fréquence d'un signal ACT. Il sera rappelé par la suite que la matérialisation des cellules est réalisée en stockant, de façon temporaire et cyclique, des données produites de cellules à des emplacements de mémoire d'une pluralité de mémoires affectées à des fonctions de traitement et / ou de commande, et prévues matériellement dans l'unité de parallélisation 16. Chacune de ces mémoires comporte autant d'emplacements qu'il y a de cellules dans l'unité de parallélisation 16. Pour autant que cela soit nécessaire, de l'information sous forme d'adresses ou de données peut aussi sélectivement être décrite aux emplacements de mémoires concernant les cellules respectives à partir de l'unité de gestion 12 pendant la sous-période PCPU suivant chaque séquence PCAL. Les mémoires peuvent être chargées en écriture, lues et déchargées de diverses façons, notamment par l'unité de gestion 12. En d'autres termes, à la fin de chaque séquence PCAL et dans l'intervalle de temps entre deux impulsions du signal ACT, l'unité de parallélisation 16 matérialise des cellules par les contenus des emplacements de mémoires dédiées à cette tâche, chaque cellule étant composée des emplacements de même adresse de ces mémoires. Le contenu de chaque cellule peut varier ou non d'une séquence à l'autre, en fonction de caractéristiques des données de premier niveau à produire.
Du fait de cette façon de procéder, une grande partie de l'unité de parallélisation 16 peut être utilisée en partage de temps, ce qui économise une grande quantité de composants.
Les blocs 130 et 140 de la Figure 2B permettent de transférer des adresses, des données et des commandes de lecture/écriture à l'unité de parallélisation 16 lorsqu'ils sont activés par un signal de sélection SEL issu de la porte 36 et que le signal de sortie ATTENTE_CPU de la bascule 30 est désactivé.
Le bloc de contrôle d'accès 120 peut recevoir de l'unité de gestion 12 des adresses ADR_CPU sur une entrée 120a, un signal de commande de lecture RD_CPU sur une entrée 120b, un signal de commande d'écriture WR_CPU sur une entrée 120c et un signal de sélection CS_CPU sur une entrée 120d. Une sortie 120e du bloc de contrôle d'accès 120 permet de transférer des valeurs d'adresse vers le bloc de sélection d'adresses de cellules 100 (Figure 2A), le bloc de sélection de lecture/écriture de mémoires 140 (Figure 2B) et vers d'autres éléments de l'unité de parallélisation 16, ce qui sera décrit par la suite en relation à un signal ACPU notamment.
Le bloc de contrôle de données 130 (Figure 2B) comporte une entrée 130a de réception de données en provenance de l'unité de gestion 12, une entrée 130b de commande de lecture, une entrée 130c de commande d'écriture et une sortie 130e de transfert de données DCPU vers divers éléments de l'unité de parallélisation 16 comme décrit plus loin. Il est à noter que le transfert des données peut être bidirectionnel.
Le bloc de sélection de lecture/écriture de mémoires 140 comprend une entrée 140a de réception d'adresses de lecture/écriture en provenance du bloc 120, une entrée 140b de commande de lecture recevant le signal RD_CPU, une entrée 140c de commande d'écriture recevant le signal WR_CPU et une entrée 140d de sélection raccordée à la sortie de la porte 36. Ce bloc 140 comprend également des sorties 140e et 140f connectées respectivement à un bus de commande de lecture 150a et à un bus de commande d'écriture 150b, ces deux bus véhiculant sélectivement des données respectives de commande de lecture/écriture vers toutes les mémoires de l'unité de parallélisation 16. Les identifications de ces données sont indiquées in extenso sur la Figure 2B et se retrouvent aux endroits correspondants des autres figures encore à décrire.
La sortie de la porte 26 est combinée logiquement avec la sortie du bloc de sélection d'adresse 100 dans une porte NON-ET 160 fournissant le signal de sortie ACT qui est la fréquence d'échantillonnage de l'unité de parallélisation 16.
Ainsi, l'interface 14 du système de traitement de données 10 assure d'une part le cadencement des opérations (horloge de type oscillateur à quartz 20) et d'autre part la gestion des demandes d'accès (signalé par CS_CPU) de l'unité de gestion 12 vers l'unité de parallélisation 16 (par le signal Attente_CPU). Elle transmet en sortie, vers l'unité de parallélisation 16, une fréquence d'échantillonnage (signal ACT), des données de commande de lecture/écriture des mémoires (signal ACPU), une adresse instantanée de cellule (signal AC), des données DCPU. En outre, selon une caractéristique de la présente invention, l'interface 14 du système de traitement 10 inclut une capacité de sélections de mémoires d'accès, notamment des entrées WIN et WINMOD (voir Figure 14), permettant de choisir entre des données d'interface externe ou provenant de l'unité de gestion 12. Comme illustré sur de la Figure 1 , le premier bloc fonctionnel
17 comprend un bloc de valeurs de paramètres 200, un bloc de distribution de paramètres 250, un bloc 300 et un bloc de bornes temporelles 180, sous forme d'un circuit d'élaboration de valeurs de paramètres désigné globalement par la référence 200.
La Figure 3 (3A et 3B) représente un schéma d'un circuit d'élaboration d'un paramètre déterminant une propriété de données. En particulier, la Figure 3 illustre le bloc de valeurs de paramètres 200, qui transmet en sortie un signal ADR_CTR (Figure 3B) décrit plus loin, et échange de façon bidirectionnelle des données DCPU (avec l'interface fonctionnelle 14) et PU (avec l'unité de gestion 12).
Dans l'ensemble des schémas de l'unité de parallélisation 16 illustrés par la suite, chaque mémoire est symbolisée par un carré auquel sont associées des entrées et /ou sorties de données, et par un rectangle plus petit auquel sont associées une entrée d'adresse, une entrée de commande d'écriture et / ou une entrée de commande de lecture.
La Figure 3 représente donc un circuit 200 d'élaboration d'un paramètre qui se répète, selon une caractéristique de la présente invention, cinq fois dans l'unité de parallélisation 16 (voir Figure 4). Autrement dit, au cours de chaque séquence PCAL, plus précisément durant les cinq impulsions actives des sous-périodes P2_AMP, P2_S1 , P2_S2, P2-FLT, et P2_PM, chaque circuit 200, incorporé respectivement dans les blocs 200A à 200E (voir Figure 4), forme l'un parmi cinq paramètres incluant Amplitude, Secondaire- 1 /Fréquence, Secondaire-2/Phase, Filtre et Maître-Multifonctions, décrits plus loin, pouvant être affectés au traitement des données de premier niveau. La valeur de paramètre correspondant VAL, désigné respectivement par AMP, FRE, PHA, FLT et VPM, obtenue après l'impulsion active des sous-périodes P2_AMP, P2_S1 , P2_S2, P2-FLT, et P2_PM respectives apparaît sur une borne de sortie 210 des circuits 200A à 200E. Les caractéristiques correspondantes d'amplitude, de fréquence, de phase, de filtrage et autres telles que largeur d'impulsion variable, interpolation, par exemple, correspondant au paramètre multifonctions qui est essentiellement une fonction d'usage multiple ou non prédéterminé, des données successives de premier niveau calculées pour chaque cellule sont ainsi déterminées.
Ceci étant, chaque circuit 200A à 200E d'élaboration de paramètres comprend une mémoire M1 (voir Figure 3A) dans laquelle peut être stockée, selon le cas, la valeur de base du paramètre Amplitude, Secondaire-1 /Fréquence, Secondaire-2/Phase, Filtre et Maître-Multifonctions des cellules. Ces valeurs sont reçues de l'unité de gestion 12 par l'intermédiaire de la sortie 130e du bloc 130 (voir Figure 2) pendant les impulsions actives de la sous-période PCPU durant lesquelles l'unité de gestion 12 est autorisée à accéder à l'unité de parallélisation 16.
Une mémoire M2 est destinée à mémoriser des valeurs d'incréments d'un paramètre au cas ou celui-ci doit subir un changement pour l'élaboration d'une donnée par rapport à un même paramètre d'une donnée élaborée précédemment. Ces valeurs d'incrément sont également fournies par l'unité de gestion 12 via la sortie 130e du bloc 130.
Les sorties des mémoires 1 et M2 sont appliquées à un circuit 220 permettant d'introduire une interpolation automatique entre différentes valeurs de paramètre successives pour atténuer des sauts de valeur, le cas échéant.
Ainsi, la sortie de la mémoire M2 est appliquée à une première unité arithmétique U1 chargée d'effectuer sur des données A et B qui lui sont appliquées l'opération B^A, la donnée B étant fournie par une unité arithmétique U2 qui effectue sur ses données d'entrée A et B l'opération A-B. La donnée A de cette unité arithmétique U2 est chaque fois la sortie de la différence entre la nouvelle valeur stockée dans la mémoire M1 du paramètre et sa valeur courante stockée dans une mémoire M3 (Figure 3B).
Le résultat du calcul effectué dans l'unité arithmétique U1 est appliqué, en tant que donnée A, à une autre arithmétique U3 qui effectue sur ses données d'entrée l'opération A+B. La donnée d'entrée B de cette unité arithmétique U3 provient de la mémoire M3 qui est destinée à mémoriser temporairement et pour chaque cellule la valeur de paramètre calculée pendant la séquence PCALP précédente, inscrite au cours de l'impulsion active de la sous-période P4 de la séquence PCAL précédente. La mémoire M3 est donc connectée par son entrée de données à la sortie 210 (VAL) et par sa sortie de données à l'entrée de donnée B de l'unité arithmétique U2.
D'autres modifications peuvent être apportées à un paramètre dans le circuit respectif 200A à 200E, en particulier dans la partie du circuit qui est représentée à la Figure 3B.
Cette partie de circuit comprend une mémoire M5 commandée en lecture/écriture par des données R3 et W3 en ce qui concerne l'amplitude, la fréquence, la phase ou le filtrage ou le paramètre multifonctions. La mémoire M5 permet d'identifier, le cas échéant, par l'intermédiaire des circuits de la Figure 10, une source de données (provenant d'une autre cellule, d'entrée ou de groupe selon le décodage du circuit de Figure 10) qui produit une donnée DATA_CTR qui est une donnée dans le traitement effectué dans le circuit de la Figure 3B pour l'un des blocs 200A à 200E. La sortie de la mémoire M5 est connectée à un tampon d'adresse 230 dont les valeurs d'entrée peuvent passer en sortie sous la commande de la sous-période P2.
Une mémoire M4 est commandée en lecture/écriture par des données R4 et W4. Sa sortie est appliquée à une unité arithmétique U4 chargée d'effectuer sur des données A et B l'opération B - A, la donnée B étant fournie par DATA_CTR. Le résultat du calcul effectué dans l'unité arithmétique U4 est envoyé sur une bascule bistable 240 activée en écriture sur l'impulsion active de la sous-période P2 concernée, en fonction de la nature du paramètre à modifier. La sortie de la bascule bistable 240 est connectée à une entrée A d'une unité arithmétique U5 qui permet d'effectuer sélectivement un calcul combinatoire tel qu'un calcul de somme ou un calcul de produit sur des valeurs appliquées à ses entrées. L'entrée B de cette unité arithmétique U5 est raccordée à une bascule bistable 260 dont une entrée, activée au cours de l'impulsion active de la sous-période P3, est raccordée à une sortie d'un multiplexeur 265. Le multiplexeur 265 reçoit la sortie de la mémoire M2 et le résultat du calcul effectué par l'unité arithmétique U3.
Selon une caractéristique de la présente invention, le multiplexeur 265 permet une sélection de mise en fonction vectorielle (A) ou directe (B) d'un paramètre. Ainsi, pour l'ensemble des paramètres identifiés en Figure 5 et décrits en détail en Figure 4, lesdits paramètres, qui habituellement dans l'art sont inscrits sous forme vectorielle par un paramètre de base pour une valeur à atteindre et par une valeur d'incrément pour déterminer l'incrément entre chaque pas d'horloge afin d'atteindre cette valeur, sont ici inscrits selon une forme vectorielle additionnée d'un mode direct sélectionné par le multiplexeur 265 de la Figure 3A. Plus précisément, dans le cas où la transmission du paramètre est directement activée, la valeur est simplement inscrite dans le paramètre de base sans incrémentation.
De plus, selon une caractéristique de la présente invention, un paramètre d'atténuation est introduit dont le but est d'atténuer une valeur de contrôle adressée par une mémoire M5. Il s'agit d'un paramètre inscrit qui applique à une valeur de contrôle reçue une multiplication en virgule fixe (1 ou moins, signée pour inverser si négative) : à 1 la valeur de contrôle n'est pas atténuée; à 0,5 elle est divisée par 2; et à -0.5 elle est inversée et divisée par 2. Plus précisément, si les valeurs sont ainsi encodées (virgules fixes +/- 1.00), la fonction B/A est en réalité B*A (multiplication) où A est en virgule fixe dont le maximum absolu est 1 , alors que si les valeurs de A sont entières, comme par exemple +/- 4095, la fonction B/A est effectivement un diviseur. Comme il sera expliqué plus loin, la sélection de l'opération ainsi effectuée par l'unité arithmétique U5 est commandée par l'état binaire d'un signal de commande de mode MODE FCT. La Figure 4 (4A-4E) illustre des détails de la Figure 3, en particulier comment cinq circuits d'élaboration d'un paramètre peuvent être utilisés pour déterminer cinq paramètres fixant des caractéristiques de données. Tel qu'évoqués précédemment, sont représentés des jeux de données d'entrée et de sortie, respectivement produits par les cinq circuits 200A à 200E. Suivant une caractéristique de la présente invention, les paramètres sont modifiés par rapport aux systèmes de parallélisation de signal connus dans l'art. Ainsi, un bloc 200A est affecté au paramètre Amplitude, un bloc 200B est affecté au paramètre Secondaire-1/Fréquence, un bloc 200C est affecté au paramètre Secondaire-2/Phase, un bloc 200D est affecté au paramètre Filtre et un bloc 200E est affecté au paramètre multifonctions dit "Maître-Multifonctions". Chaque bloc 200A, 200B, 200C, 200D et 200E est cadencé sélectivement pendant chaque séquence PCAL au moment ou l'impulsion active de la sous-période correspondante est produite et reçoit des données d'écriture et de lecture R1/W1 , R2/W2 et R3/W3 et R4/W4 en provenance respectivement des bus de commande 150a et 150b de la Figure 2. Chaque bloc reçoit également dès données d'entrée sur le bus DCPU et le signal AC de numéro ou d'adresse de cellule (voir Figure 2). Les sorties respectives AMP, FRE, PHA, FLT et VPM de chaque bloc sont traitées dans d'autres parties de l'unité de parallélisation 16 comme décrit ci-après. H en est de même des données transitant sur les bornes restantes des blocs 200A à 200E.
Chaque donnée de premier niveau, correspondant pendant une séquence PCAL à l'une des cellules est formée à partir d'une donnée de niveau zéro x désignée spécifiquement et extraite de l'une des sources de données de niveau zéro. Une telle donnée de niveau zéro doit généralement être affectée d'une valeur temporelle pour pouvoir contribuer à l'élaboration d'une donnée de premier niveau. Alternativement, suivant une caractéristique de la présente invention, une donnée peut être sélectivement produite sur une base non temporelle comme il sera présenté plus loin en relation à la Figure 6 (multiplexeur 350). Ainsi, suivant une caractéristique de la présente invention les paramètres utilisés comprennent (Figures 4 et 5) :
• les paramètres Amplitude et Filtres avec inclusion d'une sélection de valeur directe et atténuation de la valeur de contrôle;
• le paramètre multifonctions, qui est un paramètre non attribué s'appliquant pour des opérations arithmétiques directes sur les paramètres, et pouvant, comme les autres paramètres, recevoir des valeurs de contrôles. Ce paramètre peut être combiné avec les paramètres Secondaire-1/Fréquence et Secondaire-2/Phase, pour extension de traitement (Figure 5); « le paramètre Secondaire-1 /Fréquence avec inclusion d'une sélection de valeur directe et atténuation de la valeur de contrôle. Ce paramètre est attribué aux fréquences en mode temporel. Cette attribution peut lui être retirée pour combinaison avec les paramètres multifonctions et Secondaire-2/Phase, pour extension de traitement (Figure 5); et
• le paramètre Secondaire-2/Phase avec inclusion d'une sélection de valeur directe et atténuation de la valeur de contrôle. Ce paramètre est normalement attribué aux phases en mode temporel. Cette attribution peut lui être retirée pour combinaison avec les paramètres Multifonctions et Secondaire-1 /Fréquence, pour extension de traitement (Figure 5).
L'extension de traitement selon une caractéristique de la présente invention fournit un signal IN_FN. Elle est permise par un circuit impliquant le nouveau paramètre multifonctions (Figures 3 et 4) dans la combinaison des fonctions de paramètres. La Figure 5 illustre un tel circuit d'extension des fonctions de traitement sur les paramètres de la Figure 4. Sont combinés dans l'ordre les paramètres Secondaire-1 /Fréquence et Secondaire-2/Phase par l'intermédiaire d'unités arithmétiques U501 à U502 dont les sorties respectives sont dirigées vers un multiplexeur M503, afin d'effectuer ensuite une combinaison avec le paramètre multifonctions par l'intermédiaire d'unités arithmétiques U504 à U506, les opérations étant sélectionnées pour être en toute combinaison addition, multiplication ou division de façon à fournie en sortir d'un multiplexeur M507 le signal IN_FN.
Par ailleurs, l'unité de parallélisation 16 comprend un bloc de valeurs 300, représenté à la Figure 6, permettant d'engendrer une valeur binaire, appelée «valeur de désignation de donnée de niveau zéro » ou plus brièvement «valeur de désignation » POS_X. La Figure 6 illustre un circuit générateur de valeurs temporelles ou non temporelles (directes) permettant de désigner des données de niveau zéro, utilisés pour préparer des données de premier niveau. POS-X est fournie en base temporelle sur une entrée SEL du multiplexeur 350 en fonction de données produites par un additionneur U60. POX est essentiellement fonction de deux autres valeurs binaires dont la première est la valeur FRE élaborée par le bloc 200B de la Figure 4. Cette première valeur binaire représente un intervalle de temps exprimant le rapport entre la fréquence d'une cellule quelconque par rapport à une fréquence de base dont elle est un facteur multiplicatif. Pour calculer les valeurs de désignation de POS_X en mode temporel une autre valeur d'intervalle temporel ou intervalle de base (signal ENS_FRE) est requise. Cet intervalle dépend de la valeur de la fréquence fondamentale de la donnée à générer d'une part, et du nombre de points d'échantillonnage utilisés d'autre part. Il est à noter que ceci a lieu en mode temporel seulement, car en mode non temporel (direct), comme expliqué plus bas, le multiplexeur 350 n'utilise plus les données obtenues sur U50 et dans ce cas la valeur FRE est une donnée non définie qui entre dans le calcul de IN_FN alors sélectionné par 350 et obtenu par le circuit de la figure 5.
Dans le circuit 300, les valeurs de l'intervalle relatif FRE et de l'intervalle de base ENS_FRE sont appliquées aux entrées respectives A et B d'une unité arithmétique U40 dans laquelle elles sont multipliées. La partie entière du résultat de la multiplication effectuée par l'unité arithmétique U40 est appliquée à une entrée A d'une seconde unité arithmétique U50 effectuant la somme des valeurs appliquées à ses entrées A et B, tandis que la partie décimale du résultat de la multiplication est appliquée à un diviseur de taux binaire 310 dans lequel elle est décomptée par le signal ACT. Il est à noter que les valeurs en question sont en réalité exprimées en numération binaire.
La sortie de l'unité arithmétique U50 est appliquée à une entrée SEL
B d'un multiplexeur 320 qui, sous la commande d'un signal SC_ETR, permet de sélectionner, d'une séquence PCAL à l'autre, le type de croissance de la valeur POS_X en fonction de plusieurs cas d'utilisation des sources de données de niveau zéro, comme il sera expliqué plus loin. Dans l'un de ces cas, la croissance de la valeur POS_X est constante (0001 par exemple) et appliquée sur une connexion 330. La sortie du multiplexeur 320 est reliée à un bloc 340 qui, sous la commande d'un signal SGN, affecte un signe positif ou négatif à une valeur extraite d'une mémoire M50.
Il est à noter que si le signal négatif est sélectionné, la séquence de données générée peut être reproduite à l'envers dans le temps, car la valeur POS_X est alors décrémentée, d'une période P1 à l'autre, de la quantité déterminée dans le circuit, au lieu d'être incrémentée.
La mémoire M50, dite d'accumulation, chargée par l'impulsion de la sous-période P4, stocke pour toutes les cellules la valeur POS_X antérieure. La sortie du bloc 340 de détermination de signe est appliquée à une entrée B d'une unité arithmétique U60 dont une entrée A est reliée à la sortie de la mémoire M50. Cette unité arithmétique U60 fait la somme de ses données d'entrée. Suivant une caractéristique de la présente invention, le résultat est envoyé dans un multiplexeur 350 qui permet, sous la commande d'un signal MOD_PX, d'adresser en sortie soit la sortie de l'unité arithmétique U60, soit la valeur IN_FN décrite en relation avec la Figure 5. Le multiplexeur 350 permet la sélection d'un mode opératoire sur une fonction en mode temporel ou sur une donnée.
Ainsi, dans le cas non temporel, dit direct, il n'y a pas d'incrémentation de POS_X selon des valeurs de fréquence. POS_X dépend de valeurs indépendantes IN_FN résultantes de traitements (voir Figure 5 et précédemment sur les Figures 3 et 4), puis POS_X détermine une fonction (voir table des Figures 18 et 19) ou des fonctions (Figures 11 à 13) comme en mode temporel. La sortie du multiplexeur 350 est connectée à un multiplexeur 355, qui permet, sous la commande d'un signal CD NIT, d'adresser à sa sortie soit la sortie du multiplexeur 350, soit une valeur d'initialisation INIT_X, encore à décrire, à partir de laquelle la valeur POS_X va être incrémentée. La valeur de INIT_X peut être égale à zéro dans certain cas, lorsque le mode d'opération de la cellule utilise un générateur, c'est à dire si soit si SC_ECH et SC_ETR sont inactifs, comme expliqué plus bas en relation à la Figure 18A (tampon 196). La sortie du multiplexeur 355 est connectée à une bascule bistable de synchronisation 360 dans laquelle la valeur est écrite par l'impulsion active de la sous-période P3.
La sortie de la bascule 360 est raccordée, d'une part, à l'entrée de données de la mémoire M50, et d'autre part, en tant que donnée B, à une entrée d'une unité arithmétique U70 qui reçoit sur une autre entrée la valeur PHA provenant du circuit d'élaboration de paramètre 200 (bloc 200C de la Figure 4). Le résultat du calcul effectué dans l'unité arithmétique U70 (somme de ses données d'entrée A et B) est la valeur POS_X, sortie du bloc 300.
Il a été évoqué plus haut que l'unité de parallélisation 16 matérialise en partage de temps un nombre N de cellules dans lesquelles sont élaborées des valeurs de données de premier niveau à partir de valeurs de données de niveau zéro affectées de paramètres d'amplitude, de fréquence, de phase et de filtrage prédéterminés par exemple, alors que le paramètre multifonctions agit sur la production de IN_FN en se combinant avec FRE et PHA (voir Figure 5).
Il est rappelé que l'unité de parallélisation 16 présente également des moyens pour matérialiser en partage de temps un nombre m de groupes de cellules qui, comme ces dernières, sont représentés par des valeurs stockées à des emplacements de mémoire d'une pluralité de mémoires. Ainsi, selon une caractéristique de la présente invention, chaque groupe transporte un résultat de calcul effectué par les cellules qui en font partie, un groupe assurant le parallélisme des niveaux 0 (cellules) et la pluralité des groupes assurant un second niveau de parallélisme, les mémoires assurant l'accès à ces différents résultats.
Dans un même ordre d'idées, les données de second niveau traitées dans les divers circuits peuvent à leur tour être réparties sur un jeu de q sorties par un cumul approprié des données de second niveau pour former des données de troisième niveau constituant collectivement les sorties de l'unité de parallélisation 16 de la Figure 1.
Ainsi, selon une caractéristique de la présente invention, un circuit de génération de l'axe x (Figure 6) permet d'introduire au choix la donnée POS_X sur un axe x selon une démarche temporelle (récursive ou non-résursive, récursive désignant une démarche où un calcul est effectué par évolution sur des valeurs de séquences précédentes de traitement), ou non-temporelle dite directe. Dans le mode temporel, comme il est connu dans l'art, POS_X évolue de manière incrémentale suivant les fréquences (FRE, ENS_FRE) et phases (PHA). Dans le mode direct, la valeur IN_FN qui est calculée en sortie de l'extension de traitement (Figure 5) est directement appliquée sur POS_X sans processus récursif ou sans évolution sur des valeurs des séquences précédentes de traitement. Ces mécanismes sont mis en œuvre par des composants standards illustrés sur la Figure 7. En particulier, la Figure 7 (7A et 7B) illustre un circuit 400 d'attribution de données de premier niveau à des circuits de l'unité de parallélisation 16 du système 10. Le circuit 400 permet d'affecter des cellules prédéterminées à un groupe prédéterminé de la pluralité de groupes de l'unité de parallélisation 16.
A un instant déterminé par le cadencement du signal ACT, la valeur d'une donnée de second niveau d'un groupe sélectionné pour cet instant est représenté par un signal ACCJΞNS (en haut à droite sur la Figure 7A), et constitue une sortie du circuit d'attribution 400. Cette valeur se trouve ponctuellement à une adresse correspondant à ce groupe d'une mémoire d'accumulateur M6 adressée par un signal AACCJΞNS et dont l'entrée de données est raccordée à la sortie d'une unité arithmétique U9 chargée d'effectuer la multiplication de ses entrées A et B. L'écriture dans la mémoire M6 est commandée par l'intermédiaire de l'impulsion active de la sous-période P4. Celle-ci lui parvient à travers une porte OU 41 recevant également un signal C_ENS désignant la dernière cellule dont la donnée de premier niveau qui vient d'être calculée doit, pour une attribution donnée, être incorporée à la valeur de donnée de premier niveau devant être fournie par ce groupe. L'unité arithmétique U9 reçoit sur son entrée A des données de sortie stockées dans une bascule bistable 42 qui reçoit ces données en entrée à partir d'une unité arithmétique U10. L'unité arithmétique U10 effectue la somme des valeurs qui lui sont appliquées sur ses entrées A et B. L'écriture des données dans la bascule 42 se fait pendant l'impulsion active de la sous- période P3. La sortie de la bascule 42 est également raccordée à une mémoire d'accumulation intermédiaire M7 dans laquelle des données peuvent être inscrites pendant l'impulsion active de la sous-période P4. En sortie de la mémoire M7, ces données sont appliquées à une entrée B de l'unité arithmétique U10. Celle-ci reçoit sur une entrée A la valeur accumulée ACC_CEL de la cellule courante soumise à une porte ET 52 avec un bit C_SCEL provenant en tant que bit de poids le plus fort d'une mémoire M9 à 192 emplacements, à titre d'exemple, ou à autant d'emplacements que de cellules (256 emplacements ou 1024 par exemple). La porte ET 52 permet d'additionner la valeur de donnée d'une cellule courante, si le bit C_SCEL est à « 1 ». Dans le cas contraire, la valeur n'est pas additionnée sur le groupe. Ainsi, l'entrée A de l'unité arithmétique U9 reçoit une valeur constituée par la somme de toutes les valeurs accumulées ACC_CEL des cellules attribuées à un groupe donné, somme qui apparaît à la sortie de la bascule 42. En outre, l'unité arithmétique U9 reçoit sur son entrée B une valeur d'amplitude provenant d'une mémoire M8 à 64 emplacements, par exemple pour 64 groupes soit 64 valeurs d'amplitudes de groupes, dans laquelle sont stockées des valeurs d'amplitude qui peuvent y être inscrites par l'unité de gestion 12 sous la commande d'un signal d'écriture W_ENS_AMP (Figures 2 et 7). La valeur d'amplitude peut être lue dans la mémoire M8 sous la commande du signal R_ENS_AMPL pour ajuster la valeur calculée d'amplitude du groupe courant considéré.
L'entrée de données de la mémoire M9 est connectée au bloc 130 de la Figure 2 pour recevoir de l'unité de gestion 12 des valeurs d'adresses spécifiant pour chacune des cellules à quel groupe cette cellule va appartenir pour participer à la production d'une donnée de niveau deux. L'écriture de ces valeurs d'adresse dans cette mémoire M9 se fait aux adresses correspondant respectivement aux cellules concernées. L'écriture et la lecture de la mémoire M9 sont réalisées sous la commande de données R_ENS_CEL et W_ENS_CEL respectivement. La même valeur détermine l'adresse de la mémoire M7 qui accumule ces données sous la commande de l'impulsion active de la sous-période P4. Chaque valeur d'adresse écrite dans la mémoire M9 est assortie d'un bit d'identification.
L'écriture des données d'amplitude des groupes dans la mémoire M8 peut se faire à des adresses pouvant provenir soit de la mémoire M9 (A_ENS), soit directement du bloc 100 de la Figure 2. La sélection de l'adresse est effectuée par l'intermédiaire d'un multiplexeur 43. L'adresse AC passe dans ce multiplexeur 43 lorsque l'un ou l'autre des données W_ENS_CEL ou R_ENS_CEL est à zéro. Dans le cas contraire, le signal A_ENS, est transmis.
Le circuit d'attribution 400 comprend également une partie de mise en phase des cellules et des groupes et de déclenchement d'un groupe sélectionné, commandée de façon non synchrone par un signal W_DEC provenant du bloc 140 de la Figure 2 (voir Figure 7B). Pour cela, le signal W_DEC commande l'écriture de l'adresse du groupe à mettre en phase dans une bascule bistable 44 recevant cette adresse de l'unité de gestion 12. Le signal W_DEC est synchronisé sur la fréquence ACT par l'intermédiaire d'une bascule 45, de trois bascules bistables 46, 47 et 48, et d'une porte NON-ET 49.
La sortie Q barre (/Q)de la bascule 46 fournit un signal ACTJNIT qui permet d'activer un comparateur 50 destiné à comparer deux valeurs d'adresse, à savoir celle provenant de la mémoire M9 et celle qui est délivrée par la bascule 44. En cas d'égalité des deux valeurs d'adresse, un signal ÇJNIT d'initialisation de cellule est délivré. Ce signal est utilisé notamment dans le circuit 300 d'incréments temporels de la Figure 6 pour le multiplexeur 350.
Le circuit d'attribution 400 de la Figure 7 permet également de fournir le signal ENS_FRE utilisé dans le circuit 300 de la Figure 6. Un multiplexeur 52 permet d'envoyer sélectivement à une mémoire M10 les valeurs d'adresse A_ENS ou les valeurs d'adresse AC en fonction de l'état des données d'écriture/lecture W_ENS_CEL et R_ENS_CEL fournies par le bloc 140 de la Figure 2 pour inscrire dans cette mémoire la valeur ENS_FRE provenant de l'unité de gestion 12 à l'adresse du groupe courant devant travailler avec cette valeur d'intervalle.
La Figure 8 (8A-8B) illustre un circuit 600 d'attribution de données de second niveau à un circuit monté juste en amont de la sortie de l'unité de parallélisation. Selon une caractéristique de la présente invention, le circuit 600, compris dans le bloc 19 de l'unité de parallélisation 16 (voir Figure 1), permet de regrouper sélectivement des données de second niveau sur des sorties 0.0 à q.7 pour générer des données de troisième niveau qui, dans l'exemple décrit, sont les données de sortie 18 de l'unité de parallélisation 16 (voir Figure 1). Il y a huit sorties dans l'exemple. Elles sont traitées dans le circuit représenté à la Figure 9.
Comme représenté plus loin à la Figure 11 , dans un espace à trois dimensions les sorties 0.0 à 0.7 sont les huit coins d'un cube. Une mémoire M11 permet de répartir un poids entre quatre coins de gauche et de droite, une mémoire M12 permet répartir un poids entre quatre coins supérieurs et inférieurs et une mémoire M13 permet répartir un poids entre quatre coins en avant et en arrière. Les traitements sont effectués séquentiellement par des données SOE X, SOE Z et SOE Y. Les valeurs sortant d'un multiplicateur 411 sont les huit valeurs relatives de ACC_ENS sur chacun des coins selon les poids établis par les mémoires respectives. Les huit valeurs sont transférées sur les sorties suivant une sélection déterminée par une mémoire M14 et sauvegardées par le circuit de la Figure 9 au moyen des mémoires représentées.
En référence à la Figure 3, il a été dit précédemment que les valeurs de paramètres utilisées pour l'élaboration des données de premier niveau peuvent être modifiées notamment par des actions sur les cellules provenant soit de l'intérieur soit de l'extérieur de l'unité de parallélisation 16. Autrement dit, il est possible de considérer que chaque donnée de premier niveau peut être calculée en agissant sur une cellule donnée à partir de différentes sources. La sélection d'une telle source est réalisée à partir de l'unité de gestion
12 qui charge à cet effet la mémoire M4 (voir Figure 3). Les valeurs de sélection de source stockées pour les cellules respectives dans cette mémoire M4 sont transférées sur une sortie du tampon 230 activée sur l'impulsion active de la sous-période P2, sortie à laquelle apparaissent des valeurs de commande de sélection de source ADR_CTR au moment où elles doivent respectivement être disponibles pour opérer la sélection d'une modification de valeur de paramètre pour la cellule courante.
La Figure 10 illustre davantage de détails sur le bloc de distribution 250 qui reçoit le signal ADR_CTR en provenance du tampon d'adresse 230. La
Figure 10 illustre comment les paramètres élaborés dans les circuits des
Figures 3 et 4 peuvent être utilisés pour influencer la production des données en fonction de plusieurs sources de données de calcul, internes ou externes. Dans l'exemple décrit ici, une source de modification de valeur de paramètre d'une cellule peut être constituée sélectivement soit par une autre cellule, soit par un groupe, soit encore par une entrée extérieure à l'unité de parallélisation 16 selon le cas (signal de détection de paramètre). Il est à noter que le terme «entrée » désigne ici un ensemble de blocs destiné à adapter des données pour traitement dans l'unité de parallélisation 16.
Le bloc de source ou d'entrée 250, dit de distribution des paramètres, dans l'unité de parallélisation 16 (voir Figure 1), comprend une première logique de sélection 250a dont le signal de commande est formé par les bits 1 à 5 de poids le plus fort des valeurs ADR_CTR mémorisées dans la mémoire M5 de la Figure 3. Ces bits de poids le plus fort permettent de transmettre de l'entrée vers la sortie de la logique de sélection 250a, et ce de façon sélective pour chaque cellule, l'une parmi quatre valeurs de modification de donnée qui sont respectivement les valeurs ACC_CEL, ACC ΞNS, et ACC_DET et IN_CEL engendrées à partir de données de premier niveau (cellule) ou de second niveau (groupe), d'un détecteur sur l'entrée du signal (d'amplitude, de fréquence ou de bande) et d'une entrée de signal, comme il sera détaillé plus loin.
Le signal de sortie ainsi sélectionné est appelé DATA_CTR et peut être utilisé en tant que valeur de modification de valeur de paramètre pendant le traitement ultérieur d'une donnée de premier niveau d'une cellule quelconque.
Les bits de la valeur ADR_CTR sont également appliqués à une seconde logique de sélection 250b qui permet de répartir les sources de valeurs de modification selon quatre cas : sources d'autres cellules (mémoires accumulation), sources de groupes (mémoires d'accumulation), sources d'entrées en provenance d'interface et sources de détecteurs.
Le premier de ces cas concerne l'accumulation de d'entrées destinées à des cellules dans une mémoire M130 d'accumulation de cellules à l'aide d'une adresse AACC_CEL (voir Figure 11), en provenance d'un multiplexeur 250-1. L'adresse a normalement la valeur AC; durant le sous-période P1 , elle a la valeur des bits de poids forts de la valeur ADR_CT lorsqu'elle détermine une valeur entre 0 et 191 dans le cas de 192 cellules par exemple. Il est à noter que le circuit de la Figure 10 s'applique dans le cas de 192 cellules, et que le décodage différerait pour un autre nombre de cellules. Les données ACC_CEL sur DATA_CTR sont alors activées par un tampon BX1 de la logique 250a.
Le second cas concerne la mémoire M6 d'accumulation de groupes de la Figure 7 qui reçoit l'adresse AACCJΞNS par un multiplexeur 250-2 de la logique 250b. Cette adresse est normalement la valeur A_ENS, mais durant le sous-période P1 , elle a la valeur ADR_CTR, lorsque les bits de poids fort de la valeur ADR_CTR sont situés entre 192 et 207 car le décodage des bits adr(4..8) donne 192, avec ADR_CTR(0..3) donne 192 à 192+15 puisque seuls les groupes 0 à 15 peuvent, dans l'exemple, être dirigés vers des entrées de cellules même s'il y a 64 groupes. De fait, le circuit de la Figure 10 illustre le principe de décoder ADR_CTR pour diriger sélectivement différents éléments. Un homme du métier saura adapter l'organisation du décodage selon la Figure 10 en fonction de besoins particuliers. Les données ACC_ENS sur DATA_CTR sont alors activées par un tampon BX6 de la logique 250a.
Le troisième cas concerne la sélection d'entrées par la valeur AACCJN fournie par une porte 250-3 de la logique 250b de la Figure 10. Ainsi, selon une caractéristique de la présente invention, la source d'entrée de données peut sélectivement provenir d'interfaces externes ou être directement adressées par un CPU externe, ce circuit étant décrit plus loin en Figure 14. Les données IN_CEL sur DAT_CTR sont alors activées par un tampon BX2 de la logique 250a.
Le quatrième cas concerne les entrées fournies par des détecteurs d'entrées ACC_DET illustrés en Figure 16. Elles sont activées sur DAT_CTR respectivement pour la détection de niveau (Figure 16A- B10) par un tampon BX3 de la logique 250a, pour la détection de fondamentale (Figurel 6A - B11 ) par un tampon BX4 de la logique 250a, pour la détection de bandes (Figure 16B - B15) par un tampon BX5 de la logique 250a.
Présentement, dans les processeurs disponibles, les sorties de données sont sélectionnées de manière absolue à partir des valeurs de ACC_ENS (soit la valeur de chaque groupe dans la matrice de groupes), selon qu'un groupe est distribué sur l'une ou l'autre des sorties et combiné aux autres groupes également distribués sur les mêmes sorties ou d'autres sorties. Les valeurs sur les différents axes sont VXA-B, VZA-B, VYA-B et l'attribution sur des axes est calculée de façon séquentielle sur des multiplicateurs, ou bien un caractère de type parallélisme est introduit en utilisant autant de multiplicateurs, contrairement au circuit des multiplexeurs de la Figure 9. Les multiplicateurs représentés à la Figure 8A sont partagés sur les 8 sorties. Ainsi, pour obtenir un parallélisme complet, les calculs sur les 8 sorties cadencés par SOEX, .. ,SOEZ peuvent être effectués par 24 multiplicateurs pour 3 axes sur 8 sorties, au lieu de calculer séquenciellement les 8 sorties.
Selon une caractéristique de la présente invention, il est permis une distribution graduelle, qui permet d'assigner sur des niveaux spécifiques les sorties ACC_ENS de chaque groupe. En effet, l'assignation est déterminée sur trois axes (ou plus au besoin), c'est à dire pour huit sorties dans une section donnée. Dans une assignation sur trois axes (ou huit sorties) par exemple, par analogie à l'espace, X (par les valeurs VXA-B adressées par W_SX) détermine une distribution Gauche-Droite, Z (par les valeurs VZA-B adressées par W_SZ) détermine une distribution Avant-Arrière et Y (par les valeurs VYA-B adressées par W_SY) détermine une distribution Haut-Bas. Dans le cas où les huit sorties forment les arrêtes d'un cube, comme décrit plus haut en relation avec la Figure 8, une distribution spatiale graduelle est obtenue sur les trois axes. Il est entendu qu'une telle fonction peut être généralisée (quatre axes, etc.).
Ainsi, la Figure 9, qui illustre un circuit de sélection des entrées sur les blocs de contrôle de paramètres de la Figure 8, montre une combinaison des groupes sur une section de sortie donnée, sur les huit (ou seize ou plus) sorties. De plus les sorties sont regroupées en sections de huit (ou seize, ou plus), la valeur dans une mémoire M14 adressée par W_SN déterminant la section sur laquelle est transféré chaque groupe. Un multiplexeur 900 choisit la section si une seule section doit être utilisée. Si plusieurs sections peuvent être utilisées sur un groupe donné, le multiplexeur 900 est retiré, la valeur adressée par W_SN est alors un bitmap. Le circuit représenté à la Figure 9 mémorise des données produites en Figure 8, ce qui est nécessaire étant donnée la séquence SOEX, SOEZ, SOEY. Les valeurs successives sur 8 sorties de sections calculées séquentiellement par un circuit commun en Figures 8 peuvent ainsi être utilisées sur des registres distincts, soit les différentes bascules commandées par les signaux SEL_S0 .. SEL_S7 respectifs.
Selon une caractéristique de la présente invention, l'attribution des données reçues sur les entrées (Figures 10 et 14) est généralisée de manière à ce que les entrées soient transférées sur les contrôles de paramètres sélectivement, de la même manière qu'une sortie de cellule peut contrôler un paramètre choisi d'une autre cellule.
La Figure 11 (1 A et 11B) illustre un circuit 70 de sélection de modes, compris dans le bloc 19 de l'unité de parallélisation 16 (voir Figure 1). De fait, le traitement des données de premier niveau dans les cellules peut être effectué selon un certain nombre de modes de fonctionnement et également en fonction de données de sortie établies par l'un quelconque d'un certain nombre de blocs d'entrée. Ceux-ci à leur tour peuvent établir leurs propres données de sortie à partir de sources proprement dites qui peuvent être internes et / ou externes à l'unité de parallélisation 16.
La détermination du choix des modes et des blocs d'entrée est faite sous la commande de l'unité de gestion 12 qui peut à cet effet charger une mémoire M120 dite de configuration avec des données apparaissant, le cas échéant, sur la sortie 130e du bloc 130 de l'interface 14 (voir Figure 2). Ces données représentent des valeurs de détermination qui sont stockées respectivement pour chaque cellule aux emplacements de la mémoire M120 où elles peuvent être écrites ou lues sous la commande des données d'écriture / lecture W_MOD et R_MOD provenant du bloc 140 (voir Figure 2). Les bits de ces valeurs de détermination correspondent aux différentes configurations que peut adopter l'unité de parallélisation 16.
Ainsi les trois bits de poids le moins fort MOD_SC0 à MOD 3C2 sont appliqués à un bloc de sélection 71 qui selon les valeurs de ces bits peut activer huit modes de fonctionnement mis en œuvre respectivement dans quatre blocs d'entrée 72 à 74, le bloc d'entrée 74 contenant les éléments de la Figures 15 (échantillonneur) et ceux de la Figure 14 (Entrées Temps réel), qui forment des données de niveau zéro.
Le bloc d'entrée 72 permet de mettre en œuvre un mode de fonctionnement dans lequel l'unité de parallélisation 16 utilise des générateurs de forme d'onde intégrés. Le bloc 72 sera plus loin en référence à la Figure
12 (données d'activation SC_SIN, SC_CAR, SC_TRI, SC_RMP, SC_RMN).
Le bloc d'entrée 73 permet de mettre en œuvre un mode de fonctionnement dans lequel l'unité de parallélisation 16 utilise son propre générateur de bruit. Le bloc 73 sera décrit plus loin en référence à la Figure 13.
Le bloc d'entrée 74 permet de mettre en œuvre un mode de fonctionnement dans lequel l'unité de parallélisation 16 utilise des données préalablement engendrées et mémorisées (signal SC_ECH) ou des données utilisées en temps réel (signal SC_ETR) pouvant provenir de l'extérieur de l'unité de parallélisation 16. Ces deux modes seront examinés en détail plus loin en relation avec les Figures 14 et 15. Les données engendrées respectivement dans les blocs 72, 73 et 74 apparaissent sur un bus 75 selon un mode de fonctionnement sélectionné, le signal transitant sur ce bus 75 étant appelé CCYC. Ce signal CCYC est appliqué à un bloc de filtrage 76 dont la structure est illustrée à la Figure 17. Le bloc de filtrage 76 fournit des données affectées de caractéristiques de filtrage prédéterminées, son signal de sortie étant désignés par CFLT. Chaque échantillon du signal CFLT est appliqué à une entrée A d'une unité arithmétique U120 dans laquelle sa valeur est multipliée par la valeur de paramètre d'amplitude courante AMP appliquée à une entrée B de l'unité arithmétique U120. Le résultat de la multiplication est écrit dans une mémoire d'accumulation M 130, à une adresse déterminée par la valeur d'adresse AACC_CEL fournie par la logique de sélection 250b (voir Figure 10), sous la commande de l'impulsion active de la sous-période P4. La mémoire M130 est à écriture pour les données accumulées de chaque cellule, ces données pouvant être lues par AACC_CEL si une autre cellule requiert de recevoir la valeur d'une tierce cellule pour les calculs avec DATA_CTR, l'écriture à une adresse donnée chassant la valeur antérieure écrite vers la sortie. Le signal correspondant est représentatif des données successives de premier niveau et est appelé ACC_CEL en tant que sortie des cellules. Les quatre bits de poids intermédiaire (MOD_F1_AMP à MOD_F1_S2) des valeurs lues dans la mémoire M 120 sont destinés à déterminer le mode de traitement sur les paramètres d'amplitude, de fréquence, de phase et de filtrage et sur le paramètre multifonctions, effectué dans l'unité arithmétique U5, respectivement de chacun des circuits 200A à 200E de la Figure 5. Leur valeur binaire place cette unité arithmétique U5 en mode d'addition ou en mode de multiplication.
Les trois bits MOD_CCY, MOD_DCY, MOD_ALT issus de la mémoire M120 déterminent sélectivement les modes de fonctionnement en continu, en répétition et en « aller-retour » de la génération des données de premier niveau issues des cellules. Ces bits sont appelés respectivement MOD_CCY, MOD_DCY et MOD_ALT. Ces données seront décrites plus loin en références aux Figures 18 et 19.
Selon une caractéristique de la présente invention, une partie de circuit illustré sur la Figure 11 permet l'ajout de bits de commande rendus nécessaire aux ajouts de fonctions, soit des modes de fonctionnement des extensions de traitements MOD_F2_S, MOD_F»_M (Figure 5), le bloc multifonctions MOD_F1_M (Figure 4E), les modes temporel et non-temporel (direct) MOD_PX, les sélections de modes vectoriels/directs MOD_VAL_AMP etc.
Le bloc d'entrées internes 72 est maintenant décrit en relation à la Figure 12, qui illustre un circuit générateur de données de premier niveau à partir de données de niveau zéro présentes à l'intérieur même de l'unité de parallélisation 16. Le bloc d'entrée 72 comprend quatre générateurs de fonction 81 à 84 destinés à produire des données de niveau zéro et auxquels est appliquée la valeur temporelle POS_X calculée dans le circuit 300 de la Figure 6. Ainsi, la plupart du temps, la valeur POS_X est en fait une valeur d'adresse. Le premier générateur de fonction 81 est une table de sinus dans laquelle est mémorisé un nombre prédéterminé de valeurs de sinus, ce nombre étant égal à 2A, « A » étant égal à 10 dans l'exemple considéré. En fait, la table 81 est une mémoire à 2A emplacements qui peuvent être adressés par des valeurs d'adresse déterminées par les A bits les moins significatifs de la valeur de désignation POS_X. Par exemple si A = 10, ce sont les dix bits les moins significatifs de la valeur POS_X qui préparent chaque donnée de premier niveau, à savoir qu'ils déterminent la valeur de sinus à extraire de la table 81 , pour autant naturellement que ce mode de fonctionnement soit sélectionné. La valeur d'adresse formée par la valeur courante POS_X est appliquée à la table 81 par la ligne 85. L'accès à la table 81 est validé par le signal SC_SIN provenant de la logique de sélection 71 de la Figure 11. Il est à noter que la valeur de désignation POS_X peut comporter un nombre de bits bien plus grand que le nombre A, 32 par exemple, un même jeu d'adresses de la table 81 pouvant donc être parcouru successivement un très grand nombre de fois pendant l'incrémentation de la valeur POS_X jusqu'à sa valeur maximale au cours du fonctionnement de l'unité de parallélisation 16.
Le second générateur 82 est capable d'engendrer une forme d'onde carrée en déterminant des instants de changement de polarité des données de premier niveau à engendrer. Le générateur 82 est activé sur un signal SC_CAR provenant de la logique de sélection 71 de la Figure 11. Le changement est opéré en fonction du signe du bit le plus significatif des A bits de la valeur courante de POS_X qui est appliquée par la ligne 86. Dans ce cas, POS_X ne constitue donc pas une adresse de mémoire proprement dite.
Le troisième générateur 83 permet d'engendrer des fonctions de forme triangulaire. Il s'agit essentiellement d'une fonction arithmétique calculant une oscillation triangulaire sur la base de l'adresse sur A bits les moins significatifs du signal POS_X en tant qu'adresses d'emplacements. Ces valeurs d'adresses lui sont appliquées par la ligne 87. Les adresses et les fonctions résultantes sont résumées à l'intérieur du bloc représentant le générateur 83. Ce dernier est activé sous la commande d'un signal SC_TRI provenant de la logique de sélection 71 de la Figure 1 .
Le quatrième générateur 84 est également une fonction arithmétique calculant une oscillation en rampe positive ou négative sur la base de l'adresse sur A bits les moins significatifs de la valeur POS_X. Une suite de valeurs ainsi stockées peut être parcourue en positif ou en négatif sous la commande de données SC_RMP et SCJ MN respectivement, provenant de la logique de sélection 71 de la Figure 11 et appliquée à une porte ET 88. La sortie de la porte 88 permet de valider l'activation du générateur 84, le niveau de signal SC_RMP déterminant le sens de la suite des valeurs calculées. La fonction engendrée par les adresses est également indiquée à l'intérieur du bloc représentant le générateur 84.
La Figure 13 décrit un autre circuit générateur de données de premier niveau à partir de données de niveau zéro également produites à l'intérieur même de l'unité de parallélisation 16. La Figure 13 illustre le détail du bloc d'entrée 73, générateur de bruit, de la Figure 11. Le bloc 73 sert à engendrer des données de premier niveau dans le cas ou ceux-ci doivent présenter des valeurs d'amplitude aléatoire. Ce bloc d'entrée 73 comprend un générateur de nombres aléatoires 90 fonctionnant en continu. A l'apparition d'une impulsion d'échantillonnage ACT, le nombre engendré à l'instant correspondant est transmis à une bascule bistable 91 dans laquelle il est écrit à l'apparition de l'impulsion P1 correspondante. Si la bascule 91 est en même temps activée par un signal de validation SC_BRT, la donnée correspondante est sortie de la bascule 91 et la valeur de l'a donnée courante est basée sur cette donnée. En référence à la Figure 14, qui illustre un circuit destiné à attribuer sélectivement un groupe d'entrées externes au système, afin d'utiliser ces entrées en tant que sources de formation de données de premier niveau, une partie du bloc d'entrée 100 du bloc 19 de l'unité de parallélisation 16, à savoir un circuit d'attribution d'entrées, va maintenant être décrite. Il peut y avoir « e » entrées numérotées de 0 à e, seize entrées pouvant par exemple être prévues. Typiquement, chaque entrée est connectée en amont à un convertisseur analogique/numérique relié à son tour à une source de données analogiques (non représentés) produisant des données XIN_0 à XIN_e. Par ailleurs, selon une caractéristique de la présente invention, des données peuvent aussi être acheminées par l'unité de gestion 12 directement sur le bus de données DCPU dont l'adressage est décodé sur des lignes d'écritures WIN0 à WINm, par exemple des données XIN de transducteurs de courant, pression, vitesse, température, signal audio, signal électrique, positionnement, commutation, etc. , des données produites par l'unité de gestion 12, des commandes ou des données telles que des données de calculs complexes, commutation, etc. Comme une personne versée dans l'art saura l'apprécier, cette caractéristique de la présente invention permet au système d'étendre son champ d'applications à tous liens flexibles entre une unité de gestion 12 et des données recueillies permettant d'utiliser les ressources parallèles de la présente invention pour du calcul processeur, de l'asservissement, de commandes en robotique etc.
Les données sélectionnées des entrées 0 à e sont appelées IN_0 à IN_e. Selon une caractéristique de la présente invention, pour pouvoir les attribuer, le bloc d'entrée 100 comprend un décodeur 101 qui reçoit en entrée un code d'attribution d'entrée AACCJN en provenance du multiplexeur 250-3 de la Figure 10. Le décodeur 101 possède des sorties S0 à Se pouvant activer des tampons B0 à Be dont les entrées reçoivent respectivement les données d'entrée IN_0 à IN_e. Par conséquent, en fonction de l'état du multiplexeur 250-3, une entrée externe pour une cellule donnée est appliquée à un bus 103 commun à tous les tampons B0 à Be. Le signal transitant sur le bus 103 est appelé 1N_CEL et il forme donc des données de niveau zéro. II est à noter que le signal IN_CEL, tout comme les données
ACC_CEL, ACC_ENS et ACCJDET, peuvent être utilisés comme valeur de paramètre sélectionné pour autant qu'il soit autorisé à passer à la sortie de la logique 250a de la Figure 10 sous la commande du signal ADR_CTR. En cas d'autorisation, la valeur IN_CEL est transférée comme signal DATA_CTR pour pouvoir être combinée de façon multiplicative ou additive avec la valeur courante d'un paramètre sous la commande du signal MODE_FCT.
Selon une caractéristique de la présente invention telle qu'illustrée sur la Figure 14, l'adresse AACCJN fournit l'adresse d'une entrée pour un contrôle donné. Ainsi, les entrées, dans le système suivant la présente invention, ont deux origines possibles, c'est à dire : soit par une interface externe (convertisseur AD ou autre type d'interface), soit par un accès direct 104 de l'unité de gestion 12 (adressée par WIN0 à WINm), chaque entrée choisissant sa source suivant un bitmap adressé par WINMOD dans une bascule 102 associée. Les bits correspondants de WM(0 à e), lorsqu'ils sont mis à la valeur '0' sélectionnent des données XIN correspondantes, alors que lorsqu'ils sont mis à la valeur '1', ils sélectionnent les données adressés par les bits WIN correspondants, par exemple sur 'e' et 'm' égaux à huit si la valeur hexadécimale 'OF' est écrite sur la bascule 102, c'est à dire si WM0 à WM3 sont aux valeurs '1 ' et WM4 à WM7 sont aux valeurs '0', entraînant des multiplexeurs M_0 à M_e à acheminer les données du CPU sur les lignes WIN0 à WIN4 sur les bus IN_0 à IN_3 et les données XIN_4 à XIN_7 sur les bus IN 4 à IN 7. La Figure 15 illustre un circuit 74 de mémorisation de données de niveau zéro et de sélection de l'utilisation temporelle de ces données pour l'élaboration des données de premier niveau dans les cellules de l'unité de parallélisation 16, selon un mode ECH ou ETR.
Ce circuit comprend une mémoire de données M150 de grande capacité dans laquelle peut être stockée une grande quantité de données de niveau zéro. A titre d'exemple, cette mémoire M150 peut avoir 232 emplacements. Il est à noter toutefois que la mémoire M 150 peut avoir une capacité plus ou moins importante en fonction de la longueur d'un enregistrement de données successives désiré. Il est à noter également que la mémoire M150 est la seule du système présentant une mémoire importante si cela est requis. La gestion de l'adressage de cette mémoire par les cellules est accomplie par le circuit des Figures 18 et 19. Les adresses de la mémoire M 150 proviennent d'un multiplexeur 121, à 32 bits par exemple, comportant une entrée A à laquelle est appliqué le signal d'adresse ACPU (voir Figure 2) provenant de l'interface 14. Ces adresses sont donc déterminées par l'unité de gestion 12. Par ailleurs, l'entrée de données de la mémoire M 150 de données de niveau zéro est connectée au bloc 130 de l'interface 14 de sorte que l'unité de gestion 12 peut inscrire des données dans cette mémoire M150 à des adresses qu'elle aura elle- même fixées. Ce mode de stockage dans la mémoire M 150 permet d'utiliser en tant que données de niveau zéro par exemple, des données sélectionnées graphiquement par un utilisateur sur un écran de l'unité de gestion 12, le programme d'application de cette unité de gestion 12 étant naturellement conçu spécialement pour cette fonction. L'adresse ACPU est activée par des données W_ECH_CYC et R_ECH_CYC qui commandent respectivement l'écriture et la lecture par l'unité de gestion 12. L'autre entrée B du multiplexeur 121 est connectée à la sortie du circuit 300 de la Figure 6 dont il reçoit ainsi la valeur courante POS_X utilisée ici également en tant qu'adresse, mais cette fois pour la mémoire M 150 (valeur courante de POS_X). Cette entrée B est sélectionnée lorsque les données W_ECH_CYC et R_ECH_CYC sont actives. En effet, ces données provenant du bloc 140 de l'interface 14 (voir Figure 2) sont appliquées toutes deux à une porte OU 122 dont une sortie est reliée à l'entrée d'activation du multiplexeur 121. Si l'autre de ces deux données est active, une entrée A du multiplexeur 121 est activée. Par ailleurs, la commande de lecture/écriture dans la mémoire M150 peut sélectivement être réalisée par ces même données W_ECH_CYC et R_ECH_CYC. A cet effet, le signal R_ECH_CYC est appliqué directement à l'entrée de commande de lecture de la mémoire M150, tandis que le signal W_ECH_CYC est appliqué à une porte ET 123 dont la sortie est connectée à l'entrée de commande d'écriture de la mémoire M 150.
L'autre entrée de la porte 123 est reliée à la sortie d'une porte OU 124. La porte 124 reçoit sur une première entrée le signal correspondant à l'impulsion active de la période P1, et sur une seconde entrée le signal S_ETR qui peut être activé lorsque la donnée dans la mémoire M120 de la Figure 11 désigne le mode de fonctionnement correspondant à la sortie du décodeur 71.
La sortie de la porte 124 est appliquée à une entrée d'activation d'un tampon 125. Selon une caractéristique de la présente invention, le tampon
125 reçoit sur son entrée un signal en provenance d'un multiplexeur 126. La sortie du tampon 125 est connectée à l'entrée de données de la mémoire M150.
Une sortie de la porte 124 est par ailleurs connectée à une entrée de la porte 123 pour permettre l'activation d'une entrée d'écriture de la mémoire M150. Ainsi, l'écriture des données de niveau zéro peut être réalisée à des adresses qui dépendent soit de l'unité de gestion 12 par le signal ACPU sur activation par le signal W_ECH_CPU pour l'écriture d'un échantillon dans la mémoire M150, soit par l'incrémentation de 0001 de la valeur POS_X courante. Cette sélection se fait en fonction de l'état du signal de sélection SC_ETR permettant de placer le multiplexeur 320 dans l'une ou l'autre de ces configurations.
Par conséquent, l'adresse à laquelle les donnés sont inscrites dans la mémoire M150 dépend de l'adresse spécifiée par l'unité de gestion 12 ou de l'incrémentation par ' l' de la valeur POS_X sous la commande du signal SC_ETR. Cette dernière façon d'incrémenter correspondant en réalité à une reproduction en temps réel des données de niveau zéro (d'où le sigle ETR : Entrées en Temps Réel). Il est à noter que lorsque la mémoire M150 est dans le mode de fonctionnement en temps réel, les données inscrites sortent simultanément de la mémoire. Dans l'autre mode de fonctionnement, dit d'échantillonnage (ECH), les données peuvent demeurer dans la mémoire pendant un temps prédéterminé, la mémoire fonctionnant alors en quelque sorte comme un magnétophone.
Lorsque le signal SC-ETR est actif, la mémoire M150 est utilisée alternativement en écriture (P1) et en lecture pour obtenir la donnée de niveau zéro. Lorsque le signal SC_ECH (voir Figure 11) est actif, la mémoire M 150 n'est utilisée en écriture que pour inscrire une nouvelle donnée. La mémoire est normalement utilisée en lecture, la donnée étant lue de la même manière que pour la table de sinus du bloc 81 de la Figure 12, sauf que, dans le cas de la mémoire M 150, la donné peut être modifiée en tout temps et point par point et la dimension de la table des données contenue dans la mémoire M150 peut être prédéterminée ou choisie à volonté contrairement à la table de sinus du bloc 81. La Figure 15 représente donc un accès sélectif aux tables. L'accès à une table demeure déterminé par POS_X. La valeur transférée à la mémoire M150 peut provenir de l'unité de gestion 12, comme il est connu à l'homme du métier. Selon une caractéristique de la présente invention, cette valeur peut provenir en second lieu d'une fonction IN_FN qui est combinatoire (dans un cas particulier et au plus simple d'une entrée, mais aussi d'un calcul complexe). Dans ce cas, le calcul, sauvegardé en mémoire et auto indexé, peut toujours aussi être lu par POS_X. Selon une caractéristique de la présente invention, cette valeur peut provenir en troisième lieu de la fonction finale de traitement CCYC qui donne une donnée à partir de POS_X (par exemple une valeur de courbe), comme connu dans les systèmes actuels, mais avec l'extension des fonctions de traitement sur les paramètres notamment. Par conséquent, la table peut servir en écriture de valeurs calculées non-temporelles (directes) ou temporelles IN_FN, ou temporelles CCYC, et en lecture de données transcrites par l'adresse POS_X qui provient de traitement à partir de paramètres suivant le mode temporel ou non- temporel (direct).
La Figure 16 (16A et 16B) illustre un circuit 140 d'analyse de données d'entrée permettant de déterminer des paramètres caractérisant des données de premier niveau élaborées à partir de données de niveau zéro ayant pour origine des données venant de l'extérieur. Le circuit 140 analyse des données d'entrée appliquées aux entrées IN_0 à IN_e de l'unité de parallélisation 16.
Un tel circuit est connu dans l'art, mais est rappelé afin de compléter la description du système selon un mode de réalisation de la présente invention.
Le circuit 140 est destiné à déceler dans les données d'entrée des propriétés d'amplitude, de fréquence et de répartition d'amplitude en fonction de la fréquence (bandes), ces propriétés, en étant converties en données numériques, permettant d'ajuster les valeurs de paramètres avec lesquelles les cellules vont travailler pour former des données de premier niveau dans l'unité de parallélisation 16.
Les entrées du circuit de détection 140 sont connectées en parallèle aux entrées IN_0 à IN_e de l'unité de parallélisation 16 formant ensemble le signal E de la Figure 1. Par conséquent, les entrées des circuits d'attribution de la Figure 16 et de détection de la Figure 18 sont reliées respectivement en parallèle.
Le circuit de détection 140 comprend un premier groupe de détecteurs 141_0 à 141_e permettant de déterminer la valeur absolue des amplitudes des données numériques sonores qui sont appliquées par des convertisseurs analogiques/numériques (non représentés) sur les entrées respectives IN_0 à lN_e. Ils sont également conçus pour établir la valeur moyenne sur un nombre de données successives et pour fournir une valeur numérique correspondante à leur sortie.
Le circuit de détection 140 comprend un second groupe de détecteurs 142_0 à 142_e permettant de déterminer une valeur d'amplitude moyenne dans chacune d'une pluralité de p bandes de fréquences des suites de données appliquées respectivement sur les entrées IN_0 à IN_e. Ces valeurs d'amplitude moyenne apparaissent sous la forme d'un code numérique et pour chacune des p bandes sur une sortie déterminée 0 à p de chaque détecteur 142-0 à 142_e.
De plus, le circuit de détection 140 comprend un troisième groupe de détecteurs 143_0 à 143_e chargés de déterminer des propriétés temporelles des suites de données d'entrée et notamment les instants de passage par zéro, la moyenne de leur fréquence et une valeur de comptage. Ces données sont présentées sous forme de codes numériques sur chacune des sorties des détecteurs 143 0 à 143 e. Toutes les valeurs numériques issues des détecteurs du circuit 140 peuvent sélectivement être placées dans une mémoire d'accumulation M160 à 192 emplacements, (où, comme précisé plus haut, ce nombre d'emplacements de 192 est un exemple pour destiner un détecteur à l'une ou l'autre des cellules, par exemple 192 cellules; si ce nombre d'emplacements est différent l'encodage de sélection des Figures 10 est modifié en conséquence) sous la commande de l'impulsion active de la sous-période P4. Les adresses auxquelles ces valeurs sont inscrites dans cette mémoire sont formées par les bits de poids faible du signal ADR_CTR appliqué au bloc distributeur 250 représenté sur les Figures 3 et 10. Les bits de poids fort de ce signal déterminent respectivement la position de plusieurs sélecteurs auxquels sont appliquées les valeurs de sortie des détecteurs. Ainsi, les sorties des détecteurs 141_O à 141_e sont appliqués à 'e' entrées d'un sélecteur 144 en fonction d'une série de bits d'amplitude du signal ADR_CTR. L'activation sélective de ces bits permet de passer une sortie déterminée des détecteurs 141_O à 141_e sur la sortie du sélecteur qui sera alors inscrite sous la commande de l'impulsion active de la sous-période P4 dans une partie correspondante de l'emplacement de cette mémoire désignée par la partie d'adresses concomitante du signal ADR_CTR. 11 en est de même pour d'autres groupes de bits, formant des bits de
«bandes» du signal ADR_CTR et permettant de positionner des sélecteurs 145_0 à 145_p de telle façon que sur leur sortie, on puisse regrouper des valeurs d'amplitude correspondant respectivement aux diverses bandes O à p sur lesquelles travaillent les détecteurs 142_O à 142_e. Les valeurs correspondant à ces bandes regroupées peuvent également être sélectionnées à l'aide d'un sélecteur 146 qui reçoit sur ses entrées DO à De les valeurs ainsi regroupées. La sortie du sélecteur 146 forme une partie du signal numérique envoyé dans les emplacements de la mémoire M160. Enfin, un sélecteur 147 permet à l'aide des bits de fréquence du signal ADR_CTR d'attribuer les valeurs numériques de sortie des détecteurs 143_0 à 143_e aux divers emplacements de mémoire de la mémoire M 160.
Par conséquent, la mémoire M 160 peut contenir, pour chacune des cellules de l'unité de parallélisation 16, une valeur numérique dont les données mémorisées représentent les valeurs des paramètres d'amplitude et de fréquence des données numériques appliquées de l'extérieur à l'unité de parallélisation 16.
Comme représenté sur la Figure 3, les valeurs de paramètre ainsi relevées sur le signal d'entrée peuvent être utilisées pour intervenir dans le calcul des valeurs des paramètres (valeur VAL) pour autant qu'à l'instant considéré le signal ACC_DET soit autorisé à passer à la sortie du bloc 250a de la Figure 10 sous la commande du signal ADR_CTR provenant du CPU comme représenté sur la Figure 2. Le signal DATA_CTR peut être combiné de façon additive ou de façon multiplicative à la valeur courante d'un paramètre sous la commande du signal MODE_FCT qui est appliqué à l'unité arithmétique U4 de la Figure 3B, ce signal MODE_FCT étant lui-même sélectionné par l'intermédiaire du contenu de la mémoire M120 (Figure 11) chargée par l'unité de gestion 12. L'élaboration des données de premier niveau dans les cellules peut donc être déterminée par quatre jeux de valeurs de paramètre contenues respectivement dans les données ACC_CEL, ACC_ENS, ACC_DET et IN_CEL, comme cela ressort de la Figure 10.
La Figure 17 illustre un circuit permettant, en phase finale d'élaboration des données de premier niveau, de tenir compte de certains coefficients de filtrage, sous forme d'un circuit de filtrage 160, tel que connu dans l'art, permettant d'appliquer un filtrage approprié au signal CCYC comme représenté par le bloc 76 de la Figure 11. Ce circuit de filtrage 160 comporte un séquenceur 161 des fonctions de filtrage. Le séquenceur 161 reçoit le signal CCAL de l'interface 14 (Figure 2) pour faire tourner un compteur de séquence, et le signal FLT du circuit de la Figure 3 en tant que paramètre déterminant le filtrage en sélectionnant, en bout de ligne, des coefficients de filtrage dans une mémoire M180, de façon à déterminer une adresse d'une table dans laquelle est contenue une courbe de coefficients de filtrage prédéterminée. Le séquenceur 161 détermine ainsi un code d'opération de filtrage apparaissant sur une sortie 161a. Le séquenceur 161 est également capable d'engendrer deux types de valeurs d'adresse apparaissant sur des sorties 161 c et 161 b respectivement.
La valeur d'adresse de la sortie 161b est appliquée à une mémoire M 170 de calculs de filtrage. La mémoire M 170 présente un nombre prédéterminé d'emplacements, par exemple Cette mémoire M170 est identifiée comme une mémoire d'états, telle que connue dans l'art dans le cas d'un algorithme IIR (pour « Infinité Inpulse Response ») ou FIR (pour « Finite Impulse Response »), dans laquelle le nombre d'états est proportionnel au nombre de coefficients pour un type de filtre donné (type d'algorithme, Courbe, Pente). Ainsi, un filtre d'un type donné comportant vingt coefficients sur huit états, comporteraient quarante coefficients pour seize états etc. La mémoire de coefficients est partagée entre les cellules, mais chaque cellule comporte ses propres emplacements d'état, de sorte que 192 cellules avec 16 états utiliseraient 3072 emplacements et une mémoire de 16384 donnerait pour 192 cellules 85 états. La sortie d'adresse 161c est appliquée à une entrée B d'un multiplexeur 162 dont une entrée A peut recevoir directement des valeurs d'adresse du bloc 120 de l'interface 14. Ces valeurs sont inscrites par l'unité de gestion 12 pour caractériser ces filtres (coefficients) dans une mémoire
M180. Le processus de filtrage permet de lire ces données pour le traitement.
La sélection de l'entrée B du multiplexeur 162 est réalisée sous la commande de la sortie d'une porte ET 163 qui s'ouvre à la condition que l'une de trois données soit présente, à savoir le signal de lecture R_FLT_COEF, le signal d'écriture W_FLT_COEF ou un signal de commande de lecture de coefficient constituant une sortie 164a d'un bloc 164 de détermination de fonction de filtrage IIR (pour « Infinité Inpulse Response », voir plus haut). La sortie du multiplexeur 162 est appliquée à la mémoire M 180 de coefficients de filtrage. Cette mémoire M180 reçoit ses données directement de l'unité de gestion 12. Ces données sont inscrites aux adresses appropriées sous la commande d'un signal d'écriture provenant d'une porte ET 165. Une première entrée de la porte 165 est connectée au bloc 140 de l'interface 14 (signal de lecture R_FLT_COEF), une autre entrée étant reliée à la sortie 164a du bloc 164 de détermination de fonctions de filtrage.
La sortie de données de la mémoire M 180 est appliquée à une entrée 164b du bloc 164. Pour la lecture de coefficients, l'entrée et la sortie de données de la mémoire M170 de calculs de filtrage sont respectivement connectées à la sortie 164c et à l'entrée 164d du bloc 164. Ce dernier reçoit le code d'opération du bloc 161 sur son entrée 164e. La lecture dans la mémoire M 170 est commandée par un signal provenant de la sortie 164f, tandis que la commande d'écriture provient de la sortie 164g du bloc 164. Enfin, ce bloc 164 comporte une entrée 164h à laquelle est appliqué le signal CCYC issu sélectivement des blocs 72, 73 et 74 de la Figure 11 , tandis que les données "filtrées" apparaissent à la sortie 164i du bloc 164. La mémoire M170 permet de stocker temporairement les données intermédiaires de filtrage, ces données produisant le signal filtré sur la sortie 164i, soit le signal CFLT qui est le signal utilisé dans la Figure 11 pour déterminer la donnée de niveau 1. Le code d'opération permet de commander les transitions des données entre les entrées et les sorties du bloc 164. Les Figures 18 (18A et 18B) et 19 (19A et 19B) illustrent un circuit 180 de production de bornes temporelles ou d'adressage non temporel (direct) utilisées au cours de l'élaboration de données de premier et de second niveaux. Le circuit 180 de détermination des bornes temporelles ou d'adressage de certains processus de production des données va être décrit, tel qu'utilisé dans l'art. Il est à noter que, comme le système selon la présente invention comporte en amont des éléments non temporels (directs), POS_X étant déterminé au choix soit par incrémentation ou par adressage conséquent à des traitements, les bornes temporelles sont des bornes d'adressage en termes généraux. Ainsi les bornes de bouclage décrites plus bas ne sont pas nécessaires de même que les commandes de direction MOD_CYC, MOD_ALT, MOD_DCY qui sont inactivées en mode non temporel (mode direct). Ces processus de production sont le mode de données de calcul, lorsque l'unité de parallélisation 16 travaille avec des données provenant de la mémoire M150 de la Figure 15 et le mode de données en temps réel. La validation du circuit de détermination 180 est donc assurée au moment opportun par l'un ou l'autre des données SCJECH ou SC_ETR appliquées à une porte ET 181 représentée en haut de la Figure 18A. Le circuit de détermination 180 comprend :
- une mémoire M190 dans laquelle peuvent être stockées des valeurs d'instants de début (c'est-à-dire des valeurs représentant un instant prédéterminé sur l'axe des temps par accumulation d'un nombre déterminé de valeurs analogues à des valeurs POS_X) d'une suite de données déterminées. Cette mémoire M190 peut être chargée avec une valeur d'instant de début pour chacune des cellules. La valeur d'adresse est formée par le signal AC et les données sont inscrites/lues dans la mémoire à partir de l'unité de gestion 12 sous la commande des données W_ECH_DEB/R_ECH_DEB; - une mémoire M200, qui permet de stocker d'une façon analogue des instants de fin d'une suite de données. Les données sont écrites/lues dans cette mémoire par les données W_ECH_FIN/R_ECH_F1N;
- deux mémoires M210 et M220, dans lesquelles peuvent être stockées des valeurs de "boucle", plus précisément des valeurs temporelles représentant un instant de début de boucle et un instant de fin de boucle, le terme boucle devant être compris ici comme étant une répétition cyclique d'une même suite de données par une ou plusieurs cellules. Les mémoires M210 et M220 peuvent être écrites et lues sous la commande respective des données W_ECH_B1/R_ECH_B1 et W_ECH_B2IR_ECH_B2. Les données proviennent chaque fois l'unité de gestion 12;
- des comparateurs 182 à 185, associés respectivement à chaque mémoire M190 à M220, et dont une entrée A est reliée à la sortie de données de la mémoire associée et une entrée B reçoit la valeur courante de POS_X. Les comparateurs 182 et 184 fournissent un signal de validation lorsque leur entrée B est inférieure ou égale à leur entrée A et les comparateurs 183 et 185 fournissent un signal de validation lorsque l'entrée B est supérieure ou égale à l'entrée A;
- des logiques d'activation 186 à 190, reliées respectivement aux sorties des comparateurs 182 à 185, et recevant chacune plusieurs données qui y sont combinées logiquement pour assurer le cas échéant l'activation de tampons de sortie 192 à 195 dont les sorties peuvent fournir sélectivement la valeur INIT_X qui est une valeur particulière d'initialisation à partir de laquelle POS_X est ensuite incrémentée par les valeurs de désignation calculées dans le circuit 300. Les logiques d'activation 186 à 191 reçoivent également les données de mode MOD_CCY, MOD_DCY et MOD_ALT qui sont contenues dans les données de sortie de la mémoire M120 de la Figure 11 ;
- un autre tampon de sortie 196, qui permet de fixer la valeur INIT_X à zéro lorsque l'un au l'autre des données SC_ECI-I ou SC_ETR est inactif, à travers un inverseur 197;
- une mémoire de signe M230 dans laquelle peut être inscrit un signe déterminant le sens de progression de la valeur POS_X. Cette mémoire M230 est adressée par le signal AC et reçoit le bit de signe à mémoriser pour les cellules d'un multiplexeur 198. Celui-ci reçoit comme signal de sélection le signal CJNIT du comparateur 50 de la Figure 7. Ce signal passe le signe approprié vers la sortie du multiplexeur 198 lorsque le signal CJNIT est actif. Sinon le signal de signe provient d'une porte logique 199 qui combine logiquement la sortie de la mémoire M230 avec un signal de mode MOD_ALT. Lorsque ce dernier est actif (O'), le signe change à chaque écriture dans la mémoire M230; et
- un autre multiplexeur 200 est commandé par ce même signal de mode MOD_ALT pour établir sélectivement le signal SGN utilisé dans le bloc 34 du circuit 300 de la Figure 6. Une entrée A de ce multiplexeur reçoit un signal T_DIR et une entrée B le signal de mode MOD_DCY.
Les tampons 194 et 195 sont rendus actifs par l'intermédiaire de portes ET respectives 201 et 202 et l'écriture dans la mémoire M230 est commandée par l'intermédiaire d'une logique 203.
Le tampon 192 fixe la borne à un point ou à un instant de début EJDEB de la suite de données de calcul, lorsque POS_X atteint une adresse de début
EJDEB ou moins sur le comparateur 182 dans le cas d'un mode non cyclique
(MOD_CCY1) décroissant (MOD_DCY=0), la sélection étant effectuée par la porte 186.
Le tampon 193 fixe la borne à un point de fin E_FIN de la suite de données de calcul, lorsque POS_X atteint une adresse de fin E_FIN ou plus sur le comparateur 183 dans le cas d'un mode non cyclique (MOD_CCY1) croissant (MOD_DCY=1), la sélection étant faite par la porte 187.
Le tampon 194 fixe la borne à un point de boucle-1 EJ31 d'une suite de données en boucle, lorsque la valeur POS_X atteint une adresse boucle-2 E_82 ou plus sur le comparateur 185 dans le cas d'un mode cyclique (MOD_CCYO), croissant (MOD_CCY=1 ) et non alternatif (MOD_ALT=1 ), la sélection étant effectuée par les portes 191 et 201. Cette mise à valeur s'applique aussi dans le cas d'un mode cyclique (MOD_CCY=0) alternatif (MOD_ALT=O), mais en décrémentation (T_DIR=0), lorsque la valeur POS_X atteint l'adresse boucle-1 EJ3I ou moins sur le comparateur 184, la sélection étant effectuée par les portes 188 et 201. En mode alternatif, la valeur de TJDIR sera mise à O par la porte 203, lors de la fixation de la borne E_B1 pour mettre la progression en décrémentation.
Le tampon 195 fixe la borne à un point de boucle-2 E-82 de la suite de données de calcul, lorsque la valeur POS_X atteint une adresse boucle-1 E_BI ou moins sur le comparateur 184 dans le cas d'un mode cyclique (MOD_CCYO), décroissant (MOD_DCY=O) et non alternatif (MOD_ALT=1), la sélection étant effectuée par les portes 189 et 202. Cette mise à valeur s'applique aussi dans le cas d'un mode cyclique (MOD_CCY=O), alternatif (MOD_ALT=O) et en incrémentation (T_DIR=i), lorsque la valeur POS_X atteint l'adresse boucle-2 E_B2 ou plus sur le comparateur 185, la sélection étant effectuée par les portes 190 et 202.
La fixation des bornes s'effectue par le signal INIT_X transféré au multiplexeur 350 de la Figure 6, qui réinitialise la valeur POS_X par la commande CDJNIT issue de la porte 208.
Comme représenté sur la Figure 19, le signal INIT_X peut également être produit sélectivement par la sortie de deux tampons 204 et 205 qui reçoivent respectivement les données E_DEB et E_FIN des mémoires M190 et M200. Ces tampons sont activés par la combinaison logique appropriée des données CJNIT (mise en phase ou mise à l'adresse initiale en mode non temporel dit mode direct), le signal de mode MODJDCY et le signal de sortie de la porte OU 181, cette combinaison logique étant assurée par des portes OU 206 et 207.
Le tampon 204 fixe la valeur (ou position) initiale de POS_X sur l'activation de CJNIT et des données de mode SCJΞCH/SCJΞTR. Lorsque MOD_DCY=1 (croissant), le point de début E_DEB constitue la valeur d'initialisation transmise à INIT_X, si MOO_DCY=0 (décroissant) et le point de fin E_FIN constitue la valeur initiale transmise à INIT_X. Ce dernier signal est alors sélectionné sur le multiplexeur 350 de la Figure 6 pour initialiser la valeur POS_X.
De plus, le signal CJNIT passe par une porte ET 208 (haut sur la Figure 18). Cette porte fournit le signal CDJNIT. Le fonctionnement de ce circuit 180 de détermination des bornes temporelles et d'adressage va maintenant est rappelé brièvement. Lorsqu'une cellule est mise en phase ou à l'adresse initiale en mode non temporel (mode direct), la valeur POS_X doit être mise à sa valeur initiale par l'intermédiaire du multiplexeur 350 du circuit 300 de la Figure 6. Lorsque l'unité de parallélisation 16 est placée dans l'un des modes commandés respectivement par les données SC_SIN, 35 SC_CAR, SC_TRI, SC_RMP ou SC_RMN, la valeur initiale INIT_X de POS_X est égale à zéro. Cette valeur passe par le tampon 196 qui est activée en l'absence de l'un ou l'autre des données SC_ECH ou SC_ETR. Par contre, lorsque l'un ou l'autre des modes SC_ECH ou SCJΞTR est commandé, la valeur INIT_X est déterminée par un instant de départ d'une cellule donnée sur l'axe des temps. La valeur temporelle correspondante est la valeur E_DEB stockée pour la cellule considérée dans la mémoire M190, si l'incrément de la valeur POS_X doit être positif (signal MOD_DCY=1). Dans le cas où cet incrément est négatif (signal MOD_DCY=O), la valeur initiale est la valeur E_FIN stockée dans la mémoire M200 pour la cellule considérée.
Pour chaque cellule, une suite de données de premier niveau peut être délimitée dans le temps par des bornes temporelles entre lesquelles la valeur POS_X peut évoluer, soit en s'incrémentant, soit en se décrémentant, soit encore en faisant une "boucle", ce qui revient à répéter un certain nombre de fois la même suite de données de calcul. Une telle répétition en boucle peut aussi se faire de plusieurs façons : "en avant", "en arrière" ou en alternance "en avant" et "en arrière".
Bien entendu, les valeurs POS_X ainsi délimitées constituent chaque fois une adresse pour la mémoire M 150 de la Figure 15 qui stocke des valeurs de données à reproduire soit en temps réel (Mode ETR), soit à partir de données qui y ont été stockées auparavant (Mode ECH). Ainsi, pour résumer, il apparaîtra clairement aux personnes versées dans l'art que le système de la présente invention comprend :
- un circuit de configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule, qui choisit les type d'opérations à effectuer, tel qu'illustré aux Figure 3a (220, 265), Figure 5 (M503.M507), Figure 6 (350, 340, 320, 355), Figure 7a (M9, 43, 42, M8, 52), Figuré 7B, Figure 8A (M11 , M12, M13), Figure 8B (M14), Figure 10, Figure 11A (M 120), Figure 14 (101 , 102), Figure 17 (162, 163, 161), Figure 18A (M190, M200, 182, 183, 180, 181, 186, 187, 208), Figure 18B (M210, M220, 184, 185, 200, 201 , 188-191 , 202, 203, M230, 198, 199), et Figure 19;
- un circuit d'exécution des différentes fonctions arithmétiques et logiques, incorporées dans chaque cellule sur différents niveaux, vers une fonction finale donnant un résultat unique de sorte que, au choix et sur chaque cellule, le résultat soient utilisé de manière spécifique, comprenant :
• des mémoires d'adresses dans lesquelles chaque adresse correspond à une cellule, telles que les mémoires M4 et M5 (Figure 3B) et la mémoire M120 (Figure 11A);
• des mémoires de résultats dont chaque adresse contient un résultat unique telles les mémoires M6 et M7 reliées par une bascule de résultat 42 (Figure 7A), la mémoire accumulatrice de cellules M130 (Figurel 1 B); et des bascules de données en sorties (voir Figure 9 ); et
• des bascules de donnée de sorties (Figure 9).
- un circuit de transfert des résultats des cellules sur une matrice de résultats des cellules, comprenant :
• des circuits d'activation en écriture des mémoires de résultats (M6 et M7) et de la bascule de résultat (42) qui les relie (signaux d'activation respectifs : 41 , P4 et P3);
• une matrice accumulatrice de cellules M130 (Figure 11B) permettant la redirection vers d'autres cellules; et
• un circuit qui adresse la matrice accumulatrice de cellules M130, représenté sur la Figure 10 par exemple, lorsque le signal P4 est actif pour l'écriture.
- un circuit d'assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules, tel qu'illustré à la Figure 7 notamment (composants 42, M9, 52, U10, M7);
- un circuit de transfert des résultats des groupes sur une matrice de résultats des groupes, permettant l'assignation des matrices de groupe (Figure 7A : mémoire M6) vers les sorties (voir Figures 8A, 8B); - un circuit de saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées, représenté par exemple à la Figure 14 par des multiplexeurs produisant les données IN_0 à IN_e et commandés par une bascule 102;
- un circuit de sélection de la provenance des données sur les différentes fonctions des différentes cellules, comprenant :
• un circuit, illustré notamment en Figure 10A, partagé sur les séquences de traitements successives pour établir des provenances des données choisies parmi d'autres cellules suivant les valeurs de la mémoire M5 (Figure 3B pour chaque bloc 4A à 4E), d'autres entrées ou d'autres groupes pour être transférées sur des opérateurs via le bus DATA__CTR sur les Figures 4A, 4B, 4C, 4D, 4E décrits en détails sur les figures 3A et 3B; et
• des mémoires destinées au transfert direct des données (M1 , M2, M4 à la Figure 3).
- un circuit de corrélation de l'action sur chaque entrée de donnée provenant de matrices à un niveau variable, représenté à la Figure 3B par exemple par une mémoire d'atténuation (M4) pour chaque bloc des Figures 4A à 4E, où la mémoire M4 permet d'établir le poids de la valeur d'entrée DATA_CTR par le diviseur U4 acheminée à la bascule 240, le résultat obtenu agit alors avec la donnée B au choix sur l'opérateur U5 en addition, multiplication etc.;
- un circuit de définition des fonctions appliquées sur les cellules selon une nature générale ou partiellement définie selon le mode de fonctionnement de chaque cellule, les fonctions étant arithmétiques (voir Figure 5), ou implantées (Figures 11A et 11B avec le détail des fonctions aux Figures 12 à 15);
- un circuit d'attribution de tables à la sortie de fonction de chaque cellule de manière à pouvoir utiliser la mémorisation en lecture ou en écriture, tel qu'illustré aux Figures 14 et 15;
- un circuit d'application d'une séquence supplémentaire de fonctions arithmétiques au résultat d'une cellule, où les fonctions arithmétiques peuvent être ajoutées et choisies sur des lignes de code, tel qu'illustré aux Figures 17, 18A, 18B qui représentent une fonction de filtrage numérique;
- un circuit d'application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions soient effectuées sur le résultat du groupe dont les résultats proviennent d'un groupe choisi de cellules, en amplitude (Figure 7A (M9, 43, M8)), en fréquence (Figure 7A (M9), Figure 7B (53, M10)) et en mise en phase ou d'adresse initiale en mode non temporel (mode direct) (Figure 7B (44 à 50));
- un circuit de transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur une ou plusieurs sorties de la matrice de sortie, tel qu'illustré aux Figures 8A, 8B, et
9; - un circuit de sélection de la provenance de la valeur de chaque entrée de la matrice d'entrées, illustré à la Figure 14 (102, 101 et multiplexeurs avec commandes sur les circuits des Figures 10A et 10B, adressés par les mémoires (M5) de chaque bloc 4A à 4E de la Figure 3B, activés par les mémoires de mode (M 120) de la Figure 11A (SC_ETR);
. - un circuit de sélection de la destination de la valeur de chaque sortie de la matrice de sortie (voir Figures 8A, 8B et 9); et
- un circuit d'extension de traitement de sorte que les fonctions de cellule puissent s'appliquer sur des niveaux multiples et que l'inscription de valeurs sur ces données soit de provenance sélective, permettant des niveaux multiples de traitements aux entrées (voir Figure 5).
Il apparaîtra clairement aux personnes versées dans l'art que le système modulaire selon la présente invention peut posséder une architecture aussi simple que minimum de deux cellules reliées entre elles de telle sorte que leurs résultats sont combinés sur une sortie, et qu'une architecture parallèle utilise à toute fin pratique au moins huit cellules.
Selon un second aspect de la présente invention, une méthode de traitement de données est proposée, basée sur une architecture en cellules et permettant un traitement parallèle de données fournies en entrée et produisant des données de sortie. Les différentes actions de la méthode selon un mode de réalisation possible sont énumérées maintenant en relation aux Figures 20A à 20E. .
Ainsi, la méthode (1000) comprend la configuration d'une architecture en cellules (1100), par des actions de :
- configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur de chaque cellule (1110), comprenant des actions de : • configuration indépendante de chaque fonction de chaque niveau de chaque cellule comme additive, soustractive, multiplicative, divisive, logique, décisionnelle ou autre(1111); • établissement de liens modifiables entre les fonctions de chaque cellule(1112); et
• application des fonctions sur des données de provenance externe ou inteme(1113)
- exécution des différentes fonctions arithmétiques et logiques vers une fonction finale donnant un résultat unique de sorte qu'au choix et sur chaque cellule le résultat soit utilisé de manière spécifique (1120), comprenant des actions de :
• établissement direct des différentes fonctions comme donnée résultante transférée sur un ensemble de mémoires (1221);
• établissement des fonctions par l'intermédiaire de tables de conversion ou d'indexation (1222);
• établissement des différentes fonctions par l'incorporation de fonctions séquentielles supplémentaires (1123); et • application au choix du résultat en mode non temporel (dit mode direct),en mode temporel, ou en mode récursif (1124).
- un transfert du résultat de chaque cellule sur une matrice de résultats des cellules (1130).
Par la suite, la méthode (1000) comprend l'établissement de groupes regroupant des cellules(1200), incluant :
- un transfert des résultats des cellules sur une matrice de résultats des cellules (1210);
- une assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules (1220);
- un transfert des résultats des groupes sur une matrice de résultats des groupes (1230).
De plus, la méthode 1000 comprend la configuration de l'entrée du circuit (1300) incluant :
- une saisie de données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées (1310);
- une sélection de la provenance des données sur les différentes fonctions des différentes cellules (1320), comprenant des étapes de :
• Inscription sélective d'une donnée directement d'un processeur (1321); transfert sélectif d'un élément donné de la matrice des groupes (1322);
• transfert sélectif d'un élément donné de la matrice de groupes (1324); et
• transfert sélectif d'un élément de la matrice d'entrées (1325). - une corrélation de l'action sur chaque entrée de données provenant de matrices telles que le mémoire M4 (Figure 3B) à un niveau variable de manière à les interelier (1330); et
- une sélection de la provenance de chaque entrée de la matrice des entrées (1340), comprenant des actions de : • sélection directe d'une entrée d'une interface d'entrées de données (1341);
• sélection directe d'un processeur hôte (1342). La méthode 1000 comprend une configuration du circuit pour des traitements parallèles (1400), incluant :
- une définition des fonctions appliquées sur les cellules selon une nature générale ou partiellement définie en fonction d'un mode de fonctionnement de chaque cellule (1410), comprenant des actions de :
• définition de fonctions générales d'ordre arithmétiques ou logiques sans attributions pré-établies en mode de fonctionnement normal (non récursif) (1411); et • définition de fonctions mixtes comprenant des fonctions attribuées pour des opérations en mode temporel (amplitude, fréquence, phase, fonction de séquence) et des fonctions non attribuées (1412).
- une attribution de tables à la sortie des fonctions de chaque cellule permettant une mémorisation en lecture ou en écriture (1420), par des actions de :
• saisie du résultat de cellule et mémorisation auto-indéxée à pas variable sur une zone de mémoire aux limites définissables, c'est à dire pouvant peuvent êtres modifiées au besoin de telle sorte que pour chaque cellule l'accès à une zone de mémoire est définissable, ces zones pouvant être spécifiques en longueur et région pour chaque cellule, distinctes, entrelacées ou communes (1421 ); • lecture de tables sur une zone de mémoire aux limites définissables de manière à attribuer une valeur de résultat donnée à une valeur de table utilisable pour des processus de conversion (1422). - une application d'une séquence supplémentaire de fonctions arithmétiques, pouvant être choisies sur des lignes de code, au résultat de chaque cellule (1430);
- une application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions s'effectuent sur le résultat d'un groupe dont les résultats proviennent d'un ensemble sélectionné de cellules (1440) ; et
- un ajout des données de sorte que les fonctions des cellules s'appliquent sur des niveaux multiples et que l'inscription de valeurs sur ces données soit de provenance sélective (1450).
Finalement, la méthode 1000 comprend la configuration des sorties du circuit (1500), incluant des actions de :
- un transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie (1510), incluant des actions de :
• transfert progressif et dynamique des données d'un groupe à une ou plusieurs sorties d'une section de la matrice des sorties et combinatoirement avec d'autres groupes (1511);
• sélection d'une section de la matrice des sorties sur laquelle un groupe est transféré (1512).
- une sélection de la destination de chaque sortie de la matrice des sorties (1520), incluant des actions de :
• transfert direct de la valeur à une sortie d'une interface de sorties de données (1521), • transfert direct de la valeur au processeur hôte (1522).
Clairement, la méthode 1000 utilise une unité de gestion 12, une interface fonctionnelle 14; et une unité^de parallélisation 16. Les actions d'établissement d'une architecture de cellules (1100), d'établissement de groupes regroupant des cellules (1200), de configuration du circuit pour des traitements parallèles (1400), de configuration de l'entrée du circuit (1300) et de configuration des sorties du circuit (1500) constituent une unité de traitement parallèle 16 telle que décrite plus haut, qui traite des données d'entrées et fournies des données de sorties en communiquant avec une unité de gestion 12 par l'intermédiaire d'une interface fonctionnelle 14.
L'action de configuration de l'entrée du circuit (1300) est effectuée par l'interface 14 du système de traitement, qui inclut une capacité de sélections de mémoires d'accès, notamment des entrées WIN et WINMOD (voir Figure
14), permettant de choisir entre des données d'interface externe ou provenant de l'unité de gestion 12.
II est à noter qu'il ne s'agit évidemment pas d'actions chronologiques, mais plutôt d'actions permettant d'établir une configuration d'un processeur de traitement parallèle de données tel que décrit plus haut.
De plus, les personnes versées dans l'art apprécieront que la modularité de l'architecture présentée dans le système et la méthode selon la présente invention permet de combiner des fonctions sur des données de divers type. Ainsi, les données aux différentes étapes décrites peuvent être des signaux ou des données de calculs par exemple.

Claims

REVENDICATIONS
1. Un système de processeur modulaire basé sur une architecture en cellules et permettant d'effectuer des traitements sur des données d'entrée afin d'obtenir des données de sortie, ledit système comprenant des moyens d'effectuer des opérations arithmétiques et logiques complexes, parallèles, distinctes et multiples en utilisant des ressources et une structure adaptée desdites cellules, lesdites opérations arithmétiques et logiques étant effectuées distinctement sur lesdites cellules de sorte que chaque cellule effectue des opérations qui lui sont destinées selon des besoins et une configuration déterminables, d'une façon indépendante et simultanée.
2. Un système selon la revendication 1 , caractérisé en ce que lesdites données d'entrée sont fournies de façon dynamique au besoin et en toutes combinaisons directement d'au moins une source choisie dans le groupe comprenant un processeur externe, une sortie d'une cellule, une sortie d'un groupe de cellules et une interface d'entrée.
3. Un système selon la revendication 1 , caractérisé en ce que lesdites données de sortie peuvent être transférées au besoin et en toutes combinaisons à un processeur externe et à des interfaces de sorties.
4. Un système selon la revendication 1 , caractérisé en ce que lesdits moyens d'effectuer des opérations arithmétiques et logiques complexes, parallèles, distinctes et multiples comprennent : - un circuit de configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule;
- un circuit d'exécution des fonctions arithmétiques et logiques incorporées dans chaque cellule sur différents niveaux vers une fonction finale donnant un résultat unique de sorte que, au choix et sur chaque cellule, le résultat soient utilisé de manière spécifique ;
- un circuit de transfert des résultats des cellules sur une matrice de résultats des cellules;
- un circuit d'assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules;
- un circuit de transfert des résultats des groupes sur une matrice de résultats des groupes;
- un circuit de saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées; - un circuit de sélection d'une provenance des données sur les différentes fonctions des différentes cellules;
- un circuit de corrélation d'une action sur chaque entrée de donnée provenant de mémoires à un niveau variable ;
- un circuit de définition des fonctions appliquées sur les cellules selon une nature choisie dans le groupe comprenant nature générale et nature partiellement définie, selon un mode de fonctionnement de chaque cellule;
- un circuit d'attribution d'au moins une table à la sortie de fonction de chaque cellule de manière à pouvoir utiliser une mémorisation choisie dans le groupe comprenant mémorisation en lecture et mémorisation en écriture; - un circuit d'application d'une séquence supplémentaire de fonctions arithmétiques au résultat d'une cellule, où les fonctions arithmétiques peuvent être choisies sur des lignes de code;
- un circuit d'application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions s'effectuent sur le résultat du groupe dont les résultats proviennent d'un ensemble choisi de cellules;
- un circuit de transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie;
- un circuit de sélection d'une provenance de la valeur de chaque entrée de la matrice d'entrée;
- un circuit de sélection d'une destination de la valeur de chaque sortie de la matrice de sortie; et - un circuit d'extension de traitement de sorte que les fonctions de cellule puissent s'appliquer sur des niveaux multiples et qu'une inscription de valeurs sur ces données soit de provenance sélective.
5. Une méthode de traitement de données basée sur une architecture en cellules permettant un traitement parallèle de données fournies en entrée afin de produire des données de sortie, ladite méthode comprenant : une configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule; une exécution des fonctions arithmétiques et logiques vers une fonction finale donnant un résultat unique de sorte qu'au choix et sur chaque cellule le résultat soit utilisé de manière spécifique; un transfert du résultat de chaque cellule sur une matrice de résultats des cellules; une assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules; un transfert des résultats des groupes distincts et indépendants sur une matrice de résultats des groupes; une saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées; une sélection d'une provenance des données sur les différentes fonctions de chaque cellule; - une corrélation d'au moins une action sur chaque entrée de donnée provenant de matrices à un niveau variable de manière à les interelier; une définition des fonctions appliquées sur les cellules selon une nature choisie dans le groupe comprenant nature générale et nature partiellement définie, en fonction d'un mode de fonctionnement de chaque cellule; une attribution d'au moins une table à la sortie des fonctions de chaque cellule permettant une mémorisation choisie dans le groupe comprenant mémorisation en lecture et mémorisation en écriture; - une application d'une séquence supplémentaire de fonctions arithmétiques, pouvant être choisies sur des lignes de code, au résultat de chaque cellule; une application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions s'effectuent sur le résultat d'un groupe dont les résultats proviennent d'un ensemble sélectionné de cellules; un transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie; une sélection d'une provenance de chaque entrée de la matrice des entrées; une sélection d'une destination de chaque sortie de la matrice des sorties; et une extension de traitement de sorte que les fonctions des cellules s'appliquent sur des niveaux multiples et qu'une inscription de valeurs sur ces données soit d'une provenance sélective.
6. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ladite configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule comprend : une configuration indépendante de chaque fonction de chaque niveau de chaque cellule comme additive, soustractive, multiplicative, divisive, logique, décisionnelle ou autre; - un établissement de liens modifiables entre les fonctions sur chaque cellule; et une application des fonctions sur des données de provenance choisie dans le groupe comprenant provenance externe et provenance interne.
7. Une méthode de traitement selon la revendication 5, caractérisée en ce que ladite exécution des fonctions arithmétiques et logiques permet une utilisation d'un résultat selon au moins une utilisation choisie dans le groupe comprenant : - une utilisation directe comme donnée résultante transférée sur un registre de mémoires;
1 - une utilisation par l'intermédiaire d'au moins une table comprise dans le groupe comprenant tables de conversions et tables d'indexation; - une utilisation par une incorporation d'au moins une fonction séquentielle supplémentaire; et une utilisation par une application au choix du résultat en un mode compris dans le groupe comprenant mode non récursif et mode récursif.
8. Une méthode de traitement selon la revendication 5, caractérisée en ce que ladite sélection d'une provenance des données sur les fonctions des différentes cellules est effectuée dans le groupe comprenant : une inscription sélective d'une donnée directement d'un processeur; un transfert sélectif d'un élément donné de la matrice de cellules; , - un transfert sélectif d'un élément donné de la matrice de groupes; et un transfert sélectif d'une donnée de la matrice d'entrée.
9. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ladite application des fonctions sur les cellules selon une nature chosie dans le groupe comprenant nature générale et nature partiellement définie, en fonction d'un mode de fonctionnement de chaque cellule comprend : ι une application au choix d'un mode de mode de traitement de chaque cellule dans un mode temporel récursif, dans un mode choisi dans le groupe comprenant mode temporel récursif, mode temporel non récursif et mode non temporel, et cela indépendamment pour chaque cellule; une application de fonctions générales choisies dans le groupe comprenant fonctions d'ordre arithmétique et fonctions d'ordre logique sans attributions préétablies pour un mode non récursif et pour un mode non temporel; et une application de fonctions mixtes où au moins une fonction peut être attribuée pour des opérations en mode temporel récursif et en mode temporel non-récursif.
10. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ladite attribution d'au moins une table à la sortie des fonctions de chaque cellule permettant une mémorisation choisie dans le groupe comprenant mémorisation en lecture et mémorisation en écriture comprend : une saisie d'un résultat de cellule et une mémorisation auto- indexée à pas variable sur une zone de mémoire aux limites définissables; et une lecture d'au moins une table sur une zone de mémoire aux limites définissables de manière à attribuer une valeur de résultat donnée à une valeur d'une au moins une table utilisable pour des processus de conversion.
11. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ledit transfert des sorties de groupes sur une matrice de sorties, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie comprend : un transfert progressif et dynamique des données d'un groupe à au moins une sortie d'une section de la matrice de sorties et combinatoirement avec d'autres groupes; et une sélection d'une section de la matrice de sorties sur laquelle un groupe donné est transféré.
12. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ladite sélection d'une provenance de chaque entrée de la matrice d'entrées s'effectue entre une provenance directe d'une entrée d'une interface d'entrée de données et une provenance directe d'un processeur hôte.
13. Une méthode de traitement de données selon la revendication 5, caractérisée en ce que ladite sélection d'une destination de chaque sortie de la matrice des sorties s'effectue entre un transfert direct à une sortie d'une interface de sorties et un transfert direct à un processeur hôte.
14. Un système de traitement de données basé sur une architecture en cellules comprenant : une unité de gestion; une unité de traitement, ladite unité de traitement établissant des paramètres définissant des caractéristiques de données, et appliquant les paramètres à des données de niveau zéro, afin d'engendrer des données de niveaux supérieurs; et une interface fonctionnelle, ladite interface fonctionnelle transférant des données de ladite unité de gestion à ladite unité de traitement; lesdits paramètres étants inscrit selon une mise en fonction choisie dans le groupe comprenant mise en fonction vectorielle et mise en fonction directe.
15. Un système de traitement de données selon la revendication 14, caractérisé en ce que lesdits paramètres pouvant être affectés au calcul de données de premier niveau comprennent des premiers paramètres dotés d'une option de sélection de valeur directe et d'une atténuation de contrôle; des seconds paramètres non attribués qui s'appliquent pour des opérations arithmétiques directes sur les paramètres et pouvant recevoir également des valeurs de contrôles; des troisièmes paramètres et des quatrièmes paramètres dotés d'une option de sélection de valeur directe et d'atténuation de contrôle et respectivement utilisés selon une utilisation choisie dans le groupe comprenant une attribuation aux phases en mode temporel, une non- attribuation, et dans le groupe comprenant une attribution aux fréquences en mode temporel et une non-attribution.
16. Un système de traitement de données selon la revendication 15, caractérisé en ce que lesdits seconds paramètres peuvent être combinés avec lesdits troisièmes paramètres non-attribués et lesdits quatrièmes paramètres non-attribués.
17. Un système de traitement de données selon la revendication 15, caractérisé en ce que lesdits troisièmes paramètres non-attribués peuvent être combinés avec lesdits seconds paramètres et lesdits quatrièmes paramètres.
18. Un système de traitement de données selon la revendication 15, caractérisé en ce que lesdits quatrièmes paramètres non-attribués peuvent être combinés avec lesdits seconds paramètres et lesdits troisièmes paramètres non-attribués.
19. Un système de traitement de données selon la revendication 15, caractérisé en ce que ledit système permet une première combinaison entre un des troisièmes paramètres non-attribués avec un des quatrièmes paramètres non-attribués suivie d'une seconde combinaison d'un résultat de la première combinaison avec un desdits seconds paramètres, selon des opérations pouvant être en toutes combinaisons addition, multiplication et division ou autres.
20. Un système de traitement de données selon la revendication 14, caractérisé en ce que ledit système permet un mode temporel récursif, un mode temporel non-récursif et un mode non-temporel.
21. Un système de traitement de données selon la revendication 14, caractérisé en ce que ledit système permet un mode temporel récursif, un mode temporel non récursif et un mode direct.
22. Un systèrhe de traitement de données selon la revendication 14, caractérisé en ce que ledit système comprend :
- un circuit de configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule; - un circuit d'exécution , des fonctions arithmétiques et logiques incorporées dans chaque cellule sur différents niveaux vers une fonction finale donnant un résultat unique de sorte que, au choix et sur chaque cellule, le résultat soient utilisé de manière spécifique;
- un circuit de transfert des résultats des cellules sur une matrice de résultats des cellules;
- un circuit d'assignation sélective des cellules dans des groupes distincts et indépendants pour combiner les résultats respectifs des cellules;
- un circuit de transfert des résultats des groupes sur une matrice de résultats des groupes; - un circuit de saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées;
- un circuit de sélection d'une provenance des données sur les différentes fonctions des différentes cellules; - un circuit de corrélation d'au moins une action sur chaque entrée de donnée provenant de matrices à un niveau variable;
- un circuit de définition des fonctions appliquées sur les cellules selon une nature choisie dans le groupe comprenant nature générale et nature partiellement définie, selon un mode de fonctionnement de chaque cellule;
- un circuit d'attribution d'au moins une table à la sortie de fonction de chaque cellule de manière à pouvoir utiliser une mémorisation choisie dans le groupe comprenant une mémorisation en lecture et une mémorisation en écriture; - un circuit d'application d'une séquence supplémentaire de fonctions arithmétiques au résultat d'une cellule, où les fonctions arithmétiques peuvent être choisies sur des lignes de code;
- un circuit d'application des fonctions à l'intérieur de chaque groupe de manière à s'effectuer sur le résultat du groupe dont les résultats proviennent d'un ensemble choisi de cellules;
- un circuit de transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie;
- un circuit de sélection d'une provenance de la valeur de chaque entrée de la matrice d'entrée;
- un circuit de sélection d'une destination de la valeur de chaque sortie de la matrice de sortie; et
- un circuit d'extension de traitement de sorte que les fonctions de cellule puissent s'appliquer sur des niveaux multiples et qu'une inscription de valeurs sur ces données soit d'une provenance sélective.
23. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit de configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule comprend : un circuit de configuration indépendante de chaque fonction de chaque niveau de chaque cellule comme additive, soustractive, multiplicative, divisive, logique, décisionnelle ou autre; un circuit d'établissement de liens modifiables entre les fonctions sur chaque cellule ; et un circuit d'application des fonctions sur des données de provenance choisie dans le groupe comprenant des provenance externes et des provenances internes.
24. Un système de traitement de données selon une des revendications 4 et2, caractérisé en ce que ledit circuit d'exécution des différentes fonctions arithmétiques et logiques vers une fonction finale permet une utilisation du résultat selon au moins une utilisation choisie dans le groupe comprenant : une utilisation directe comme donnée résultante transférée sur un registre de mémoires; une utilisation par l'intermédiaire d'au moins une table chosie dans le groupe comprenant des tables de conversions et des tables d'indexation; une utilisation par une incorporation d'au moins une fonction séquentielle supplémentaire; et une utilisation par application au choix du résultat en un mode choisi dans le groupe comprenant mode non récursif et mode récursif.
25. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit de sélection d'une provenance des données sur les différentes fonctions des différentes cellules comprend : un circuit de saisie sélective d'une donnée issue directement d'un processeur; un circuit de transfert d'un élément donné de la matrice de cellules à une donnée d'entrée; un circuit de transfert sélectif d'un élément donné de la matrice de groupes à une donnée d'entrée; et - un circuit de transfert sélectif d'un élément donné de la matrice d'entrées à une donnée d'entrée.
26. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit d'application des fonctions sur les cellules selon une nature choisie dans le groupe comprenant nature générale et nature partiellement définie, selon un mode de fonctionnement de chaque cellule comprend : une application au choix d'un mode de mode de traitement de chaque cellule dans un mode choisi dans le groupe comprenant un mode temporel récursif, un mode temporel non récursif, et un mode non temporel, et cela indépendamment pour chaque cellule; un circuit d'application de fonctions générales choisies dans le groupe comprenant des fonctions d'ordre arithmétique et des fonctions d'ordre logique sans attributions préétablies pour un mode de fonctionnement non récursif; et un circuit d'application de fonctions mixtes où au moins une fonction est attribuée pour des opérations en mode temporel.
27. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit d'attribution d'au moins une table à la sortie de fonction de chaque cellule de manière à pouvoir utiliser une mémorisation choisie dans el groupe comprenant une mémorisation en lecture et une mémorisation en écriture comprend : un circuit de saisie du résultat de cellule et mémorisation auto-indexée à pas variable sur une zone de mémoire aux limites définissables; et un circuit de lecture d'au moins une table sur une zone de mémoire aux limites définissables de manière à attribuer une valeur de résultat donné à une valeur d'au moins une table qui pourra être utilisée pour des processus de conversion.
28. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit de transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur au moins une sortie de la matrice de sortie comprend : un circuit de transfert progressif et dynamique de données d'un groupe à au moins une sortie d'une section de la matrice de sorties et combinatoirement avec d'autres groupes; et un circuit de sélection d'une section de la matrice de sorties sur lequel un groupe donné est transféré.
29. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit de sélection d'une provenance de la valeur de chaque entrée de la matrice d'entrée comprend un circuit de saisie de la valeur directement d'une entrée d'une interface d'entrée; et un circuit de saisie de la valeur directement d'un processeur hôte.
30. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit circuit de sélection d'une destination de la valeur de chaque sortie de la matrice de sortie comprend : un circuit de transfert de la valeur directement à une sortie d'une interface sortie de données; et un circuit de transfert de la valeur directement à un processeur hôte.
31. Un système de traitement de données selon une des revendications 4 et 22, caractérisé en ce que ledit système de calcul permet une distribution graduelle de niveaux de sorties de chaque groupe formé par des cellules par une assignation sur au moins trois axes.
32. Un système de traitement de données selon une des revendications 1 , 5 et 14 caractérisé en ce que lesdites données peuvent être des données de calcul et des signaux.
33. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de configuration de fonctions arithmétiques et logiques sur différents niveaux à l'intérieur d'une cellule comprend : un circuit (22) permettant d'introduire une interpolation automatique entre différentes valeurs de paramètre successives en amont d'un multiplexeur (265) qui permet une sélection de mise en fonction choisie dans le groupe comprenant une mise en fonction vectorielle (A) et une mise en fonction directe (B) d'un paramètre; - un circuit d'extension des fonctions de traitement sur les paramètres; un circuit générateur de valeurs choisies dans le groupe comprenant des valeurs temporelles et des valeurs non temporelles permettant de désigner des données de niveau zéro, utilisées pour préparer des données de premier niveau et incluant un multiplexeur (320) qui permet de sélectionner, d'une séquence de traitement à une autre, un type de croissance de ces valeurs en fonction des sources de données de niveau zéro; un bloc de contrôle de signe (340) qui affecte un signe choisi dans le groupe comprenant un signe positif et un signe négatif à une sortie du multiplexeur (320); et un multiplexeur (350) de sélection d'un mode opératoire sur un élément choisi du groupe comprenant une fonction en temporel et une donnée; un circuit d'attribution de données de premier niveau, incluant :
• une première mémoire (M9) dans laquelle sont inscrites des valeurs d'adresses spécifiant pour chacune des cellules à quel groupe cette cellule va appartenir pour participer à la production d'une donnée de niveau deux; • une bascule bistable (42) permettant une mise en mémoire intermédiaire des données et, à un instant déterminé par un cadencement la mise en mémoire d'une donnée de second niveau d'un groupe sélectionné pour cet instant ponctuellement à une adresse correspondant à ce groupe d'une mémoire d'accumulateur;
• une mémoire des données d'amplitude des groupes (M8) à des adresses pouvant provenir de la première mémoire (M9); et
• un multiplexeur (43) effectuant une sélection de l'adresse dans la mémoire des données d'amplitude des groupes (M8);
- un circuit d'attribution de données de second niveau permettant de regrouper sélectivement des données de second niveau sur des sorties pour générer des données de troisième niveau incluant des mémoires qui répartissent des poids aux sorties (mémoires M11 , M12 et M13) et une mémoire qui détermine une sélection pour le transfert des sorties; un circuit de distribution des données en fonction de sources de données internes et externes; un circuit d'attribution sélective d'un groupe d'entrées externes utilisées en tant que sources de formation de données de premier niveau, incluant comprend un décodeur (101) qui reçoit en entrée un code d'attribution d'entrée, et une bascule permettant que chaque entrée choisisse source; un circuit de filtrage, incluant un séquenceur (161) de fonctions de filtrage dont une sortie d'adresse (161c) est appliquée à une seconde entrée d'un multiplexeur (162) dont une première entrée peut recevoir directement des valeurs d'adresse inscrites par une unité de gestion (12); et un circuit de production de bornes temporelles utilisées au cours de l'élaboration de données de premier et de second niveaux, incluant :
• une mémoire de stockage des valeurs d'adresses de début (M 190); • une mémoire de stockage des adresses de fin d'une suite de données (M200);
• des comparateurs (184-185) fournissant un signal de validation;
• une mémoire de signe (M230) dans laquelle peut être inscrit un signe déterminant le sens de progression d'une valeur de désignation (POS_X), et recevant un bit de signe à mémoriser pour les cellules d'un multiplexeur (198) ;
• des logiques d'activation (188 -191), reliées respectivement aux sorties des comparateurs, et recevant chacune plusieurs données qui y sont combinées logiquement.
34. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit d'exécution des fonctions arithmétiques et logiques incorporées dans chaque cellule sur différents niveaux vers une fonction finale donnant un résultat unique de sorte que, au choix et sur chaque cellule, le résultat soient utilisé de manière spécifique, comprend des mémoires d'établissement (M4, M5, M 120) où chaque adresse correspond à une cellule et des mémoires dont chaque adresse contient un résultat unique (42, M6 et M7, M 130).
35. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de transfert des résultats des cellules sur une matrice de résultats des cellules comprend des accumulateurs (M6, M7) déclenchés par une bascule (42); et des accumulateurs de cellules pour une redirection vers d'autres cellules (M 130).
36. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de transfert des résultats des groupes sur une matrice de résultats des groupes comprend un circuit d'assignation des matrices de groupe mémorisé (M6) vers les sorties.
37. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit un circuit de saisie des données à partir d'interfaces de données pour les accumuler dans une matrice d'entrées comprend des multiplexeurs produisants des signaux IN_0 à IN_e.
38. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de sélection d'une provenance des données sur les différentes fonctions des différentes cellules comprend un circuit partagé sur des séquences successives de traitement pour établir des provenances des données lorsqu'elles sont choisies parmi des cellules, des entrées et des groupes pour être transférées sur des opérateurs, et des mémoires stockant des données transférées directement (M1. M2. M4).
39. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de corrélation d'une action sur chaque entrée de données provenant de matrices à un niveau variable comprend une mémoire d'atténuation (M4) pour chaque bloc de paramètres.
40. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de définition des fonctions appliquées sur les cellules selon une nature choisie dans le groupe comprenant une nature générale et une nature partiellement définie, selon un mode de fonctionnement de chaque cellule comprend des fonctions arithmétiques et des fonctions implantées.
41. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit d'attribution d'au moins une table à la sortie de fonction de chaque cellule de manière à pouvoir utiliser une mémorisation choisie dans le groupe comprenant une mémorisation en lecture et une mémorisation en écriture comprend un circuit d'attribution sélective d'un groupe d'entrées externes utilisées en tant que sources de formation de données de premier niveau et un circuit de stockage de données de niveau zéro.
42. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit d'application des fonctions à l'intérieur de chaque groupe de sorte que les fonctions s'effectuent sur le résultat du groupe dont les résultats proviennent d'un ensemble choisi de cellules inclut un circuit de traitement en amplitude (M9, 43, M8) ; un circuit de traitement en fréquence (53, M10); et un circuit de traitement choisi dans le groupe comprenant un circuit de traitement en mise en phase et un circuit d'adresse initiale en mode non temporel (44 à 50).
43. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de transfert des sorties de groupes sur une matrice de sortie, sélectivement pour chaque groupe et progressivement sur une ou plusieurs sorties de la matrice de sortie inclut un circuit d'attribution de données de second niveau.
44. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de sélection d'une provenance de la valeur de chaque entrée de la matrice d'entrée comprend une bascule de commande de sélection de la provenance des entrées de données (102), un décodeur binaire (101) et une pluralité de multiplexeurs avec commandes par des données en provenance d'interface externes.
45. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit de sélection d'une destination de la valeur de chaque sortie de la matrice de sortie comprend un circuit d'attribution sélective d'un groupe d'entrées externes utilisées en tant que sources de formation de données de premier niveau et un circuit de stockage de données de niveau zéro.
46. Un système de traitement de données selon une des revendications 4 et 14, caractérisé en ce que ledit circuit d'extension de traitement comprend un circuit impliquant un paramètre multifonctions.
PCT/CA2002/000539 2001-04-12 2002-04-12 Systeme de processeur modulaire WO2002084510A2 (fr)

Priority Applications (1)

Application Number Priority Date Filing Date Title
AU2002308957A AU2002308957A1 (en) 2001-04-12 2002-04-12 Modular processor system

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
CA2,344,098 2001-04-12
CA 2344098 CA2344098A1 (fr) 2001-04-12 2001-04-12 Systeme de processeur modulaire a elements configurables et intereliables permettant de realiser de multiples calculs paralleles sur du signal ou des donnees brutes

Publications (2)

Publication Number Publication Date
WO2002084510A2 true WO2002084510A2 (fr) 2002-10-24
WO2002084510A3 WO2002084510A3 (fr) 2004-04-01

Family

ID=4168835

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/CA2002/000539 WO2002084510A2 (fr) 2001-04-12 2002-04-12 Systeme de processeur modulaire

Country Status (3)

Country Link
AU (1) AU2002308957A1 (fr)
CA (1) CA2344098A1 (fr)
WO (1) WO2002084510A2 (fr)

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006042736A1 (fr) * 2004-10-18 2006-04-27 Nuyens Hildegarde Francisca Fe Systeme de processeur parallele reconfigurable, modulaire et hierarchique
US11288587B2 (en) 2019-06-21 2022-03-29 International Business Machines Corporation Modular, frequency-flexible, superconducting quantum processor architecture

Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0544127A2 (fr) * 1991-11-27 1993-06-02 International Business Machines Corporation Système d'ordinateur dynamique à architecture parallèle multimode en forme de réseau
EP0619557A2 (fr) * 1993-03-31 1994-10-12 Motorola, Inc. Système et méthode de traitement des données
WO1995026531A1 (fr) * 1994-03-28 1995-10-05 Estes Mark D Reseau polymorphe et son exploitation
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device

Patent Citations (4)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP0544127A2 (fr) * 1991-11-27 1993-06-02 International Business Machines Corporation Système d'ordinateur dynamique à architecture parallèle multimode en forme de réseau
EP0619557A2 (fr) * 1993-03-31 1994-10-12 Motorola, Inc. Système et méthode de traitement des données
WO1995026531A1 (fr) * 1994-03-28 1995-10-05 Estes Mark D Reseau polymorphe et son exploitation
US5956518A (en) * 1996-04-11 1999-09-21 Massachusetts Institute Of Technology Intermediate-grain reconfigurable processing device

Non-Patent Citations (1)

* Cited by examiner, † Cited by third party
Title
BLEVINS D W ET AL: "BLITZEN: A HIGHLY INTEGRATED MASSIVELY PARALLEL MACHINE" JOURNAL OF PARALLEL AND DISTRIBUTED COMPUTING, ACADEMIC PRESS, DULUTH, MN, US, vol. 8, no. 2, 1 février 1990 (1990-02-01), pages 150-160, XP000094609 ISSN: 0743-7315 *

Cited By (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO2006042736A1 (fr) * 2004-10-18 2006-04-27 Nuyens Hildegarde Francisca Fe Systeme de processeur parallele reconfigurable, modulaire et hierarchique
US11288587B2 (en) 2019-06-21 2022-03-29 International Business Machines Corporation Modular, frequency-flexible, superconducting quantum processor architecture

Also Published As

Publication number Publication date
AU2002308957A1 (en) 2002-10-28
CA2344098A1 (fr) 2002-10-12
WO2002084510A3 (fr) 2004-04-01

Similar Documents

Publication Publication Date Title
EP1805611B1 (fr) Procede d'ordonnancement de traitement de tâches et dispositif pour mettre en oeuvre le procede
FR2812417A1 (fr) Processeur dsp a architecture parallele
FR3072798A1 (fr) Ordonnancement de taches dans un processeur a fils d'execution multiples
EP0612058B1 (fr) Procédé et dispositif d'amortissement actif de vibrations
EP3084588B1 (fr) Module de traitement du signal, notamment pour reseau de neurones et circuit neuronal.
EP0712072A1 (fr) Procédé de mise en oeuvre de réduction modulaire selon la méthode de Montgomery
EP0020202A1 (fr) Système multiprocesseur de traitement de signal
FR2687814A1 (fr) Processeur neuronal a cellules synaptiques reparties.
Corriveau Entrepreneurs, growth and cycles
FR3075444A1 (fr) Systeme comportant une memoire adaptee a mettre en oeuvre des operations de calcul
FR2484744A1 (fr) Circuits de filtrage numerique diminuant le debit de mots d'un signal numerique du type utilise dans les systemes telephoniques a commutation numerique, filtres numeriques utilises et joncteur de ligne equipe de tels circuits
FR2722590A1 (fr) Circuit logique de multiplication parallele
EP1803061B1 (fr) Systeme de processeur parallele reconfigurable, modulaire et hierarchique
WO2002084510A2 (fr) Systeme de processeur modulaire
FR2690772A1 (fr) Processeur neuronal muni de moyens pour calculer une norme ou une distance.
EP0989541A1 (fr) Système de synthèse sonore permettant d'obtenir en sortie une suite d'échantillons électriques
EP0142412B1 (fr) Dispositif de transformation de la probabilité d'apparition de vecteurs logiques et de génération de séquences de vecteurs à probabilités variables dans le temps
FR2747528A1 (fr) Structure de dispositif de banc de filtres numeriques et son procede de fonctionnement
FR2569071A1 (fr) Dispositif de traitement numerique de signal
FR2538928A1 (fr) Unite de traitement de donnees pourvue d'une section de commande qui comporte un generateur d'adresses destine a produire des adresses composees de parties d'adresses caracteristiques
FR2742560A1 (fr) Architecture de systeme en tableau de processeurs a structures paralleles multiples
EP1591866B1 (fr) Contrôle de l'exécution d'un algorithme par un circuit intégré
EP0689366B1 (fr) Circuit de détection de tonalité téléphonique
EP0043745A2 (fr) Système de traitement et de mémorisation de données numériques, notamment pour tomodensitomètre
US5584000A (en) Addressing scheme for microcode store in a signal processor

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A2

Designated state(s): AE AG AL AM AT AU AZ BA BB BG BR BY BZ CA CH CN CO CR CU CZ DE DK DM DZ EC EE ES FI GB GD GE GH GM HR HU ID IL IN IS JP KE KG KP KR KZ LC LK LR LS LT LU LV MA MD MG MK MN MW MX MZ NO NZ OM PH PL PT RO RU SD SE SG SI SK SL TJ TM TN TR TT TZ UA UG US UZ VN YU ZA ZM ZW

AL Designated countries for regional patents

Kind code of ref document: A2

Designated state(s): GH GM KE LS MW MZ SD SL SZ TZ UG ZM ZW AM AZ BY KG KZ MD RU TJ TM AT BE CH CY DE DK ES FI FR GB GR IE IT LU MC NL PT SE TR BF BJ CF CG CI CM GA GN GQ GW ML MR NE SN TD TG

121 Ep: the epo has been informed by wipo that ep was designated in this application
REG Reference to national code

Ref country code: DE

Ref legal event code: 8642

32PN Ep: public notification in the ep bulletin as address of the adressee cannot be established

Free format text: COMMUNICATION PURSUANT TO RULE 69 EPC (EPO FORM 1205A OF 180204)

122 Ep: pct application non-entry in european phase
NENP Non-entry into the national phase

Ref country code: JP

WWW Wipo information: withdrawn in national office

Country of ref document: JP