FR2664072A1 - NEURONAL CALCULATION SYSTEM. - Google Patents

NEURONAL CALCULATION SYSTEM. Download PDF

Info

Publication number
FR2664072A1
FR2664072A1 FR9008228A FR9008228A FR2664072A1 FR 2664072 A1 FR2664072 A1 FR 2664072A1 FR 9008228 A FR9008228 A FR 9008228A FR 9008228 A FR9008228 A FR 9008228A FR 2664072 A1 FR2664072 A1 FR 2664072A1
Authority
FR
France
Prior art keywords
coefficients
processor
read
heads
synaptic
Prior art date
Legal status (The legal status is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the status listed.)
Pending
Application number
FR9008228A
Other languages
French (fr)
Inventor
Vignolle Jean-Michel
Refregier Philippe
Potier Dominique
Huignard Jean-Pierre
Current Assignee (The listed assignees may be inaccurate. Google has not performed a legal analysis and makes no representation or warranty as to the accuracy of the list.)
Thales SA
Original Assignee
Thomson CSF SA
Priority date (The priority date is an assumption and is not a legal conclusion. Google has not performed a legal analysis and makes no representation as to the accuracy of the date listed.)
Filing date
Publication date
Application filed by Thomson CSF SA filed Critical Thomson CSF SA
Priority to FR9008228A priority Critical patent/FR2664072A1/en
Priority to JP3511108A priority patent/JPH05501467A/en
Priority to EP91912049A priority patent/EP0489885A1/en
Priority to PCT/FR1991/000483 priority patent/WO1992000571A1/en
Publication of FR2664072A1 publication Critical patent/FR2664072A1/en
Pending legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/06Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons
    • G06N3/063Physical realisation, i.e. hardware implementation of neural networks, neurons or parts of neurons using electronic means
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F3/00Input arrangements for transferring data to be processed into a form capable of being handled by the computer; Output arrangements for transferring data from processing unit to output unit, e.g. interface arrangements
    • G06F3/06Digital input from, or digital output to, record carriers, e.g. RAID, emulated record carriers or networked record carriers
    • G06F3/0601Interfaces specially adapted for storage systems
    • G06F3/0668Interfaces specially adapted for storage systems adopting a particular infrastructure
    • G06F3/0671In-line storage system
    • G06F3/0673Single storage device

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Biophysics (AREA)
  • General Engineering & Computer Science (AREA)
  • General Physics & Mathematics (AREA)
  • Health & Medical Sciences (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Biomedical Technology (AREA)
  • Neurology (AREA)
  • Human Computer Interaction (AREA)
  • Artificial Intelligence (AREA)
  • Computational Linguistics (AREA)
  • Data Mining & Analysis (AREA)
  • Evolutionary Computation (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Mathematical Physics (AREA)
  • Software Systems (AREA)
  • Complex Calculations (AREA)

Abstract

In neurocomputing systems, large-scale matrix calculations are carried out on the basis of input signals xj and synaptic coefficients Ai,j. If the system is complex, the number of coefficients will be high, e.g. 10<9>, and the coefficients must be stored in bulk storage MM (magnetic tape, optical disk, etc.). The calculations are carried out in a computer (CMP). Rather than getting the coefficients from ROM and transferring them to RAM prior to starting the matrix calculations, xj by Ai,j multiplications are carried out on the fly at the same time as the coefficients are sequentially read from ROM. Furthermore, a large number of coefficients are read simultaneously by means of multiple read heads (TL1, TL2...). Storage of the coefficients in RAM, which would have to be of rapid access and large capacity can thereby be avoided.

Description

SYSTEME DE CALCUL NEURONAL
La présente invention concerne un système de calcul neuronal capable d'exécuter rapidement un nombre très important d'opérations .
NEURONAL CALCULATION SYSTEM
The present invention relates to a neural computation system capable of rapidly performing a very large number of operations.

Les réseaux de neurones constituent des systèmes où s'effectue un nombre considérable d'opérations, généralement sous forme de calculs matriciels. On peut par exemple les destiner au traitement d'images haute définition de dimension 1000 x 1000 points images (ou pixels). Neural networks are systems in which a considerable number of operations are carried out, generally in the form of matrix calculations. They can, for example, be used for processing high definition images with a dimension of 1000 x 1000 image points (or pixels).

Les réseaux neuronaux sont des structures généralement formées de plusieurs couches de neurones, la sortie d'un neurone d'une couche donnée pouvant être reliée aux entrées de tous les neurones de la couche suivante. Dans ces conditions, le nombre d'interconnexions entre neurones peut être considérable. Dans l'exemple cité d'une image comprenant 106 pixels, la connexion complète de 106 neurones d'entrée à, par exemple, 103 neurones de sortie fait intervenir interconnexions. Neural networks are structures generally made up of several layers of neurons, the output of one neuron of a given layer being able to be connected to the inputs of all the neurons of the following layer. Under these conditions, the number of interconnections between neurons can be considerable. In the example cited of an image comprising 106 pixels, the complete connection of 106 input neurons to, for example, 103 output neurons involves interconnections.

On sait que, dans les réseaux neuronaux, les interconnexions entre neurones constituent des liaisons synaptiques où interviennent des coefficients synaptiques (encore appelés poids synaptiques). Un neurone est en effet un organe de calcul effectuant une somme de signaux d'entrée, pondérés chacun par un coefficient synaptique respectif. Ces coefficients synaptiques peuvent être modifiés, notamment au cours d'une phase d'apprentissage. Ils doivent être conservés dans une mémoire permanente. Ainsi, dans le cas de 109 interconnexions entre neurones, il existe autant de coefficients synaptiques qu'il faudra bien mémoriser. Ceci nécessite une mémoire d'au moins 100 Mo, si les connexions sont binaires. Il convient donc de stocker les coefficients synaptiques dans des mémoires de masse (disque optique, disque magnétique ou bande magnétique par exemple). We know that, in neural networks, the interconnections between neurons constitute synaptic links in which synaptic coefficients (also called synaptic weights) intervene. A neuron is in fact a computational organ performing a sum of input signals, each weighted by a respective synaptic coefficient. These synaptic coefficients can be modified, in particular during a learning phase. They must be kept in permanent memory. Thus, in the case of 109 interconnections between neurons, there are as many synaptic coefficients that it will be necessary to memorize. This requires at least 100MB of memory, if the connections are binary. It is therefore advisable to store the synaptic coefficients in mass memories (optical disc, magnetic disc or magnetic tape for example).

A cause de leurs applications (reconnaissance des formes par exemple), on demande aux réseaux neuronaux d'effectuer des calculs très rapidement. Cette exigence de rapidité est incompatible avec un stockage des coefficents synaptiques exclusivement dans une mémoire de masse, à cause des temps d'accès relativement longs de ce type de mémoire. Because of their applications (pattern recognition for example), neural networks are required to perform calculations very quickly. This requirement for speed is incompatible with storing synaptic coefficients exclusively in mass memory, because of the relatively long access times of this type of memory.

C'est pourquoi le principe est généralement d'utiliser la mémoire vive (mémoire de travail) d'un calculateur, pour y stocker, au moment d'un calcul déterminé, les coefficients synaptiques nécessaires à ce calcul, coefficients que l'on va prélever à cet effet dans la mémoire de masse. Comme le calcul neuronal est de type matriciel et peut porter sur des matrices de grande taille, un très grand nombre de coefficients synaptiques sont justement nécessaires simultanément. This is why the principle is generally to use the random access memory (working memory) of a computer, to store there, at the time of a determined calculation, the synaptic coefficients necessary for this calculation, coefficients that we will take it from the mass memory for this purpose. As the neural computation is of the matrix type and can relate to large matrices, a very large number of synaptic coefficients are precisely necessary simultaneously.

Il faut donc une mémoire vive ayant à la fois une très grande capacité et des temps d'accès très courts. C'est une solution coûteuse. You therefore need a random access memory having both a very large capacity and very short access times. It is an expensive solution.

D'autre part, dans les cas où les coefficients synaptiques doivent être modifiés fréquemment au cours du calcul neuronal, il faut aller chercher de nouveaux coefficients dans la mémoire de masse. Dans ce cas, les flux de données entre la mémoire de masse et les mémoires vives imposent une électronique de communication délicate à réaliser. On ne peut pas facilement dépasser 20 Mbits par seconde et par ligne de transmission à cause de problèmes de rayonnement. On the other hand, in the cases where the synaptic coefficients must be modified frequently during the neuronal computation, it is necessary to seek new coefficients in the mass memory. In this case, the data flows between the mass memory and the random access memories require communication electronics which are difficult to produce. You cannot easily exceed 20 Mbits per second per transmission line because of radiation problems.

Un but de l'invention est d'améliorer la structure des systèmes de calcul neuronal pour éviter ces inconvénients. An aim of the invention is to improve the structure of neural computation systems in order to avoid these drawbacks.

Pour cela, on propose selon l'invention un système de calcul neuronal comportant un calculateur pourvu d'une mémoire de masse comportant les coefficients synaptiques, et un système de lecture séquentielle de la mémoire de masse, caractérisé en ce que
- le système de lecture comporte une batterie de têtes de lecture susceptibles de lire séquentiellement des séries de coefficients synaptiques, les têtes de lecture travaillant en parallèlle,
- et le système de calcul neuronal comporte des circuits de calcul interposés entre les têtes de lecture de la mémoire de masse et le calculateur, ces circuits étant aptes
a à recevoir en synchronisme d'une part des signaux d'entrée à traiter et d'autre part des coefficients synaptiques correspondants à ces signaux, issus des têtes de lecture,
a à établir une somme de signaux d'entrée pondérés par les coefficients synaptiques reçus simultanément,
et à transmettre au calculateur les sommes pondérées calculées.
For this, according to the invention, a neural computation system is proposed comprising a computer provided with a mass memory comprising the synaptic coefficients, and a system for sequential reading of the mass memory, characterized in that
- the reading system comprises a battery of reading heads capable of sequentially reading series of synaptic coefficients, the reading heads working in parallel,
- and the neural computing system comprises computing circuits interposed between the read heads of the mass memory and the computer, these circuits being suitable
a to receive in synchronism on the one hand input signals to be processed and on the other hand synaptic coefficients corresponding to these signals, coming from the read heads,
a to establish a sum of input signals weighted by the synaptic coefficients received simultaneously,
and transmitting the calculated weighted sums to the calculator.

En pratique, le calculateur comporte une mémoire vive (mémoire de travail) dans laquelle rentrent les signaux transmis au calculateur, et les sommes pondérées calculées sont transmises à cette mémoire vive. In practice, the computer comprises a random access memory (working memory) in which the signals transmitted to the computer enter, and the calculated weighted sums are transmitted to this random access memory.

Les signaux d'entrée peuvent être envoyés par le calculateur ou provenir de toute autre source (capteur, autre calculateur, etc.)
Ainsi, on effectue directement une partie du calcul neuronal "à la volée", } c'est-à-dire au moment de la réception des signaux d'entrée, et en utilisant plusieurs coefficients synaptiques lus au même moment dans la mémoire de masse. Les signaux d'entrée arrivent séquentiellement les uns à la suite des autres, et les coefficients synaptiques sont également lus séquentiellement par chaque tête de lecture, en synchronisme avec l'arrivée des signaux d'entrée, mais il y a un grand nombre de têtes de lecture qui travaillent en parallèlle. Seuls les résultats des calculs préliminaires sont transmis à la mémoire vive du calculateur.Le reste du calcul neuronal sera effectué dans le calculateur, à partir des résultats stockés dans la mémoire vive. Mais les coefficients synaptiques ne sont pas transférés à la mémoire vive du calculateur.
The input signals can be sent by the computer or come from any other source (sensor, other computer, etc.)
Thus, part of the neural computation is carried out "on the fly",} that is to say at the time of reception of the input signals, and by using several synaptic coefficients read at the same time in the mass memory . The input signals arrive sequentially one after the other, and the synaptic coefficients are also read sequentially by each read head, in synchronism with the arrival of the input signals, but there are a large number of heads. reading that work in parallel. Only the results of the preliminary calculations are transmitted to the computer's random access memory. The rest of the neural calculation will be carried out in the computer, from the results stored in the random access memory. But the synaptic coefficients are not transferred to the computer's random access memory.

Même si de très nombreux coefficients synaptiques sont utilisés pour le calcul préliminaire, le nombre de résultats transmis à la mémoire vive du calculateur sera plus réduit que le nombre de coefficients synaptiques. On gagne donc sur la taille de la mémoire vive, qui peut être beaucoup plus réduite. Even if very many synaptic coefficients are used for the preliminary calculation, the number of results transmitted to the random access memory of the computer will be smaller than the number of synaptic coefficients. We therefore save on the size of the RAM, which can be much smaller.

D'autre part on est moins gêné du point de vue du débit d'informations à transmettre de la mémoire de masse à la mémoire vive du calculateur : on n'a plus besoin de transmettre très rapidement un grand nombre de coefficients synaptiques; on transmet seulement les résultats de calcul effectués pratiquement simultanément avec la lecture des coefficients synaptiques. On the other hand, we are less hampered from the point of view of the flow of information to be transmitted from the mass memory to the random access memory of the computer: there is no longer any need to transmit a large number of synaptic coefficients very quickly; only the results of the computation carried out practically simultaneously with the reading of the synaptic coefficients are transmitted.

On sait faire maintenant des systèmes de lecture de mémoire de masse (sur bande magnétique ou disque magnétique ou optique) munis d'un nombre important de têtes de lecture. De tels systèmes peuvent être équipés de batteries d'environ 1000 têtes de lectures capables de lire 1000 pistes en parallèle avec un débit d'au moins 1 Mégabit/seconde sur chaque piste. On peut alors faire 1000 calculs instantanés en parallèlle, sur mille signaux à pondérer par les coefficients synaptiques lus par toutes ces têtes. It is now known how to make mass memory reading systems (on magnetic tape or magnetic or optical disc) provided with a large number of reading heads. Such systems can be equipped with batteries of about 1000 read heads capable of reading 1000 tracks in parallel with a rate of at least 1 Megabit / second on each track. One can then make 1000 instantaneous calculations in parallel, on a thousand signals to be weighted by the synaptic coefficients read by all these heads.

L'invention est applicable aussi avec des mémoires permanentes de grande capacité en circuit intégré (mémoires
EEPROM), à condition que ces mémoires soient agencées de manière à fournir simultanément une grande quantité de mots différents (les coefficients synaptiques lus en parallèle) et qu'elles soient lues en accès séquentiel rapide et non en accès aléatoire. Une mémoire EEPROM à grand nombre de sorties parallèlles ou une batterie de mémoires EEPROM adressées en parallèlle peuvent convenir.
The invention is also applicable with high capacity permanent memories in integrated circuit (memories
EEPROM), provided that these memories are arranged so as to simultaneously provide a large quantity of different words (the synaptic coefficients read in parallel) and that they are read in fast sequential access and not in random access. An EEPROM memory with a large number of parallel outputs or a bank of EEPROM memories addressed in parallel may be suitable.

Il est avantageux que le circuit de calcul interposé entre les têtes de lecture et la mémoire vive du calculateur soit disposé à proximité immédiate des têtes de lecture. It is advantageous for the calculation circuit interposed between the read heads and the random access memory of the computer to be placed in the immediate vicinity of the read heads.

ll peut même être intégré avec les têtes de lecture dans le cas de têtes intégrées sur un substrat monolithique. It can even be integrated with the read heads in the case of heads integrated on a monolithic substrate.

De préférence, le circuit de calcul comporte un petit processeur associé à chaque tête de lecture, pour recevoir simultanément un signal d'entrée à traiter et un coefficient synaptique, et pour en effectuer la multiplication. Preferably, the calculation circuit comprises a small processor associated with each read head, to simultaneously receive an input signal to be processed and a synaptic coefficient, and to carry out the multiplication thereof.

Dans une architecture particulière, le processeur reçoit des nouveaux signaux d'entrée avec un débit identique au débit des coefficients extraits par la tête de lecture associée à ce processeur, et il effectue non seulement les multiplications mais l'accumulation des produits effectués pour une série de signaux d'entrée successifs (architecture avec calcul matriciel par lignes). In a particular architecture, the processor receives new input signals with a rate identical to the rate of the coefficients extracted by the read head associated with this processor, and it not only carries out the multiplications but the accumulation of the products carried out for a series. successive input signals (architecture with matrix calculation by lines).

Dans une autre architecture, les différents processeurs reçoivent en parallèlle chacun un signal d'entrée respectif pris parmi les composantes d'un vecteur sur lequel on veut effectuer une opération, et chaque processeur exécute une série de multiplications successives entre ce signal et une série de coefficients synaptiques respectifs transmis séquentiellement par la tête de lecture associée à ce processeur. Un additionneur est de préférence connecté en sortie des processeurs pour faire la somme des produits calculés simultanément à un instant donné par tous les processeurs. In another architecture, the different processors each receive in parallel a respective input signal taken from among the components of a vector on which an operation is to be performed, and each processor executes a series of successive multiplications between this signal and a series of Respective synaptic coefficients sequentially transmitted by the read head associated with this processor. An adder is preferably connected at the output of the processors in order to sum the products calculated simultaneously at a given time by all the processors.

D'autres caractéristiques et avantages de l'invention apparaîtront à la lecture de la description détaillée qui suit et qui est faite en référence aux dessins annexés dans lesquels
- la figure 1 représente l'architecture générale d'un système neuronal selon l'invention;
- la figure 2 représente un premier mode de mise en oeuvre de l'invention;
- la figure 3 représente un autre mode de mise en oeuvre.
Other characteristics and advantages of the invention will become apparent on reading the detailed description which follows and which is given with reference to the appended drawings in which
- Figure 1 shows the general architecture of a neural system according to the invention;
- Figure 2 shows a first embodiment of the invention;
- Figure 3 shows another embodiment.

Soit à effectuer une multiplication matricielle du type
Y = AX où ~ Y est un vecteur à n composantes (Y1, y2, ...
Or to carry out a matrix multiplication of the type
Y = AX where ~ Y is a vector with n components (Y1, y2, ...

X est un vecteur à m composantes (x1, x2, ... xm)
A est une matrice de n x m coefficients synaptiques A.
X is a vector with m components (x1, x2, ... xm)
A is a matrix of nxm synaptic coefficients A.

Une telle multiplication matricielle est typique dans un calculateur neuronal. Le résultat Y est soit un résultat définitif du calcul, soit un résultat intermédiaire à partir duquel d'autres calculs seront effectués. Such a matrix multiplication is typical in a neural computer. The result Y is either a final result of the calculation, or an intermediate result from which further calculations will be made.

Pour effectuer cette multiplication matricielle, il est nécessaire de calculer les n sommes de produits suivantes
Yi = A, 1Xi + Ai, 2 X2 + . . . + A. x l'indice i variant de 1 à n.
To perform this matrix multiplication, it is necessary to calculate the following n sums of products
Yi = A, 1Xi + Ai, 2 X2 +. . . + A. x the index i varying from 1 to n.

L'architecture générale du système de calcul neuronal selon l'invention est représentée à la figure 1. The general architecture of the neural computation system according to the invention is represented in FIG. 1.

Les signaux d'entrée à traiter, représentant les composantes x. du vecteur X, sont appliquées à un circuit électronique spécifique CS, qui est destiné à effectuer immédiatement une sommation pondérée de ces composantes. The input signals to be processed, representing the x components. of the vector X, are applied to a specific electronic circuit CS, which is intended to immediately perform a weighted summation of these components.

Le circuit CS reçoit par ailleurs directement des valeurs de coefficients Ai j en provenance d'une mémoire de masse MM (bande magnétique, disque optique numérique, etc.) d'où ils sont extraits par plusieurs têtes de lecture TL1, TL2, ... TLi, . . TL fonctionnant en parallèlle. Il y a de
p préférence m têtes de lecture mais ce n'est pas obligatoire; s'il ya moins de têtes de lecture que de lignes ou colonnes de la matrice A, on fractionnera le calcul matriciel en plusieurs opérations successives.
The circuit CS also directly receives values of coefficients Ai j originating from a mass memory MM (magnetic tape, digital optical disc, etc.) from which they are extracted by several read heads TL1, TL2, .. TLi,. . TL operating in parallel. There are
p preferably m read heads but this is not mandatory; if there are fewer read heads than rows or columns of matrix A, the matrix calculation will be split into several successive operations.

L'arrivée des signaux d'entrée x. est en tout cas synchronisée avec l'arrivée des coefficients Ai j extraits de la mémoire de masse. On reviendra plus loin sur la manière dont se fait cette synchronisation. The arrival of the input signals x. is in any case synchronized with the arrival of the coefficients Ai j extracted from the mass memory. We will come back to how this synchronization is done later.

La sommation pondérée (somme des x,Ai i) est effectuée dans le circuit CS en synchronisme avec l'arrivée des signaux d'entrée x. qui elle-même s'effectue en synchronisme avec la lecture en parallèlle des coefficients Ai; dans la mémoire morte; puisque le calcul s'effectue immédiatement, les coefficients Ai j ne sont pas stockés dans une mémoire vive, ou plus exactement, étant donné qu'ils peuvent être très temporairement stockés dans des registres tampons du circuit
CS, on peut dire qu'ils ne sont pas stockés dans une mémoire vive à accès aléatoire.
The weighted summation (sum of x, Ai i) is performed in the circuit CS in synchronism with the arrival of the input signals x. which itself is carried out in synchronism with the parallel reading of the coefficients Ai; in read-only memory; since the calculation is carried out immediately, the coefficients Ai j are not stored in a random access memory, or more exactly, given that they can be very temporarily stored in buffer registers of the circuit
CS, we can say that they are not stored in random access RAM.

Aussitôt que la sommation pondérée est effectuée, les résultats y. de cette sommation sont transmis à la mémoire vive (adressable) MV d'un calculateur CMP qui poursuivra le calcul neuronal à partir des résultats y. stockés dans la mémoire vive MV. As soon as the weighted summation is performed, the results y. of this summation are transmitted to the (addressable) random access memory MV of a CMP computer which will continue the neural computation on the basis of the results y. stored in the MV RAM.

Les signaux d'entrée x. à traiter peuvent être issus de plusieurs sources : par exemple ils proviennent d'un capteur (capteur d'image CCD par exemple), ou encore d'un circuit de traitement électronique (circuit de traitement d'image par exemple), ou encore d'un calculateur, ou même, comme l'indique la flèche tiretée de la figure 1, les signaux x. peuvent provenir du calculateur CMP lui-même. Un rebouclage direct des résultats y. vers les entrées x;, à travers une fonction de seuil peut d'ailleurs être prévu. The input signals x. to be processed can come from several sources: for example they come from a sensor (CCD image sensor for example), or even from an electronic processing circuit (image processing circuit for example), or else from 'a computer, or even, as indicated by the dashed arrow in Figure 1, the signals x. can come from the CMP computer itself. Direct feedback of results y. to the inputs x ;, through a threshold function can also be provided.

Le circuit spécifique CS effectue donc les calculs à la volée en même temps que la lecture séquentielle des coefficients Ai j par les multiples têtes de lecture qui travaillent en parallèlle. Ce circuit CS peut avantageusement faire partie intégrante du système de lecture de la mémoire de masse MM. On peut notamment prévoir, dans le cas où le système de lecture est un système intégré monolithique, que tout ou partie du circuit CS est intégré sur le même bloc monolithique que les têtes de lecture. C'est possible notamment dans le cas de têtes de lecture magnétiques multiples intégrées sur substrat semiconducteur.C'est particulièrement avantageux aussi dans le cas où la mémoire de masse est une mémoire EEPROM de grande capacité à accès séquentiel et à sorties en mots parallèlles, ou un ensemble de mémoires EEPROM à accès séquentiel travaillant en synchronisme. On verra en effet que les circuits de calcul présents dans le circuit CS peuvent être très simples et donc peu encombrants. The specific circuit CS therefore performs the calculations on the fly at the same time as the sequential reading of the coefficients Ai j by the multiple read heads which work in parallel. This circuit CS can advantageously form an integral part of the system for reading the mass memory MM. Provision can in particular be made, in the case where the read system is a monolithic integrated system, that all or part of the circuit CS is integrated on the same monolithic block as the read heads. This is possible in particular in the case of multiple magnetic read heads integrated on a semiconductor substrate. It is also particularly advantageous in the case where the mass memory is a high capacity EEPROM memory with sequential access and outputs in parallel words, or a set of sequential access EEPROM memories working in synchronism. It will in fact be seen that the calculation circuits present in the circuit CS can be very simple and therefore not bulky.

Même si le circuit CS n'est pas intégré de manière monolithique au système de lecture, il est avantageux qu'il soit placé à proximité immédiate de ce système. Even if the CS circuit is not monolithically integrated into the reading system, it is advantageous if it is placed in close proximity to this system.

La figure 2 représente un premier mode de mise en oeuvre de l'invention. Dans cette réalisation, le circuit électronique CS intercalé entre les têtes de lecture et la mémoire vive du calculateur comprend plusieurs processeurs Pi en parallèlle (autant que de têtes de lecture TL, par exemple p processeurs) élaborant chacun un signal y. respectif qui est une somme sur l'indice j (; variant de 1 à p) des produits xjAi,j. Dans le cas de la figure 2 il y a quatre processeurs
P1, P2, P3, P4.
FIG. 2 represents a first embodiment of the invention. In this embodiment, the electronic circuit CS interposed between the read heads and the random access memory of the computer comprises several processors Pi in parallel (as many as read heads TL, for example p processors) each producing a signal y. respective which is a sum on the index j (; varying from 1 to p) of the products xjAi, j. In the case of figure 2 there are four processors
P1, P2, P3, P4.

Chaque processeur Pi possède deux entrées; l'une reçoit un signal d'entrée x. (les signaux xj arrivent successivement en série les uns derrière les autres); l'autre est reliée à une tête de lecture respective TLi. Each Pi processor has two inputs; one receives an input signal x. (the signals xj arrive successively in series one behind the other); the other is connected to a respective read head TLi.

La tête de lecture d'indice i, couplée au processeur
Pi de même indice, lit la piste i sur la mémoire de masse MM et fournit uniquement les coefficients A. . correspondant à l'indice i comme premier indice. Les coefficients A. . sont stockés les uns derrière les autres sur la piste i et sont lus séquentiellement en synchronisme avec l'arrivée des signaux d'entrée xj correspondant au même indice j. Autrement dit, les coefficients 3, A 4, A1,4, sont tous stockés les uns derrière les autres sur une piste 1 lue par la tête de lecture TL1 correspondant au processeur Pi, et l'arrivée dans le processeur de ces coefficients A1,1, A1,2,A1,3, A1,4 est synchronisée avec l'arrivée des signaux x1, x2, xg, x4 respectivement.
The read head of index i, coupled to the processor
Pi with the same index, reads the track i on the mass memory MM and supplies only the coefficients A.. corresponding to the index i as the first index. The coefficients A.. are stored one behind the other on track i and are read sequentially in synchronism with the arrival of the input signals xj corresponding to the same index j. In other words, the coefficients 3, A 4, A1,4, are all stored one behind the other on a track 1 read by the read head TL1 corresponding to the processor Pi, and the arrival in the processor of these coefficients A1, 1, A1,2, A1,3, A1,4 is synchronized with the arrival of the signals x1, x2, xg, x4 respectively.

De même, les coefficients A2,1, A2,2, A2,3 >
A2,4, sont tous stockés les uns derrière les autres sur une piste 2 lue séquentiellement par la tête de lecture TL2 correspondant au processeur P2, et l'arrivée dans le processeur de ces coefficients A A A A 3' A2,4 est également
2, 2,2' 2,3' 2,4 synchronisée avec l'arrivée des signaux x1, x2, X3, X4.
Likewise, the coefficients A2.1, A2.2, A2.3>
A2,4, are all stored one behind the other on a track 2 read sequentially by the read head TL2 corresponding to the processor P2, and the arrival in the processor of these coefficients AAAA 3 ′ A2,4 is also
2, 2,2 '2,3' 2,4 synchronized with the arrival of the signals x1, x2, X3, X4.

Toutes les têtes de lecture travaillent en parallèlle. All read heads work in parallel.

Chaque processeur est destiné à faire une somme des signaux d'entrée x1 à x4 pondérée par les coefficients reçus en synchronisme. Pour cela, le processeur comprend globalement un multiplieur pour faire le produit A. .x. et un accumulateur pour sommer les résultats successifs des multiplications. Each processor is intended to make a sum of the input signals x1 to x4 weighted by the coefficients received in synchronism. For this, the processor globally comprises a multiplier to make the product A. .x. and an accumulator for summing the successive results of the multiplications.

Dans l'exemple représenté à la figure 2, le processeur comprend un premier registre tampon 10 recevant le signal d'entrée x;, un deuxième registre tampon 12 recevant le coefficient lu en synchronisme avec ce signal d'entrée, un multiplicateur il pour effectuer le produit xjAi ,j, un registre 14 pour stocker le résultat de la multiplication; un additionneur 16 pour additionner ce produit à une somme de produits précédemment calculée, un registre 18 pour stocker le résultat de l'addition; l'additionneur reçoit comme entrées d'une part la sortie du registre 14 et d'autre part la sortie du registre 18 pour remettre à jour dans le registre 18, à chaque nouvelle arrivée de signal d'entrée x;, la somme de produits précédemment stockée dans le registre 18. In the example shown in FIG. 2, the processor comprises a first buffer register 10 receiving the input signal x i, a second buffer register 12 receiving the coefficient read in synchronism with this input signal, a multiplier i to perform the product xjAi, j, a register 14 for storing the result of the multiplication; an adder 16 for adding this product to a sum of products previously calculated, a register 18 for storing the result of the addition; the adder receives as inputs on the one hand the output of register 14 and on the other hand the output of register 18 in order to update in register 18, at each new arrival of input signal x ;, the sum of products previously stored in register 18.

En fin d'un cycle de calcul, c'est-à-dire lorsque les m signaux d'entrée x. et les m coefficients Ai j ont été reçus et traités, le registre 18 du processeur contient le résultat y. recherché, c'est-à-dire la somme pondérée de m signaux d'entrée. Le calcul a été fait sans stockage en mémoire vive des coefficients A. At the end of a calculation cycle, that is to say when the m input signals x. and the m coefficients Ai j have been received and processed, the register 18 of the processor contains the result y. sought, that is to say the weighted sum of m input signals. The calculation was made without storing the A coefficients in RAM.

l,J
Les résultats y. sont transmis à la mémoire vive MV du calculateur CMP. De préférence, la transmission des résultats y1 est multiplexée sur une seule ligne de transmission. A cet effet, un circuit d'interface de sortie IS reçoit en parallèlle les différents résultats Yi et les transmet en série vers la mémoire vive MV du calculateur CMP.
l, J
The results are there. are transmitted to the RAM MV of the CMP computer. Preferably, the transmission of the results y1 is multiplexed on a single transmission line. To this end, an output interface circuit IS receives the various results Yi in parallel and transmits them in series to the RAM MV of the computer CMP.

Si le calcul matriciel fait intervenir des indices i variant de 1 à n, alors qu'il n'y a que p têtes de lecture et p processeurs associés, p inférieur à n, on comprendra qu'il est nécessaire de recommencer plusieurs cycles de calcul; les signaux d'entrée x. déjà utilisés lors du premier cycle sont renvoyés à nouveau vers les processeurs, mais cette fois ils sont multipliés par d'autres coefficients Ai j non lus dans le premier cycle et correspondant maintenant aux indices i allant de p+1 à 2p, puis 2p+1 à 3p, etc. jusqu a n. Ces coefficients sont stockés à la suite de ceux qui ont déjà été utilisés, sur les pistes correspondant à leur indice i respectif. If the matrix calculation involves indices i varying from 1 to n, while there are only p read heads and p associated processors, p less than n, it will be understood that it is necessary to start several cycles of calculation; the input signals x. already used during the first cycle are sent again to the processors, but this time they are multiplied by other coefficients Ai j not read in the first cycle and now corresponding to the indices i going from p + 1 to 2p, then 2p + 1 to 3p, etc. up to n. These coefficients are stored after those which have already been used, on the tracks corresponding to their respective index i.

Dans la pratique, si les coefficients A. . et les signaux d'entrée x. sont des valeurs binaires, les processeurs
Pk dont on a expliqué ci-dessus la fonction peuvent être réalisés d'une manière extrêmement simple. Le multiplieur 11 peut être tout simplement une porte ET associée à un signal d'horloge et fournissant une impulsion brève d'horloge chaque fois que le produit binaire xjAi j est égal à 1.
In practice, if the coefficients A.. and the input signals x. are binary values, processors
Pk whose function has been explained above can be realized in an extremely simple way. The multiplier 11 can quite simply be an AND gate associated with a clock signal and supplying a short clock pulse each time the binary product xjAi j is equal to 1.

L'accumulation des produits peut se faire simplement par un compteur asynchrone qui reçoit ces impulsions et les compte.The accumulation of products can be done simply by an asynchronous counter which receives these pulses and counts them.

Bien entendu, si le calcul matriciel fait intervenir des coefficients synaptiques non binaires et/ou des signaux d'entrée non binaires, on cherchera de préférence à se ramener à une configuration binaire en décomposant les valeurs en poids binaires traités individuellement par des processeurs élémentaires Pk travaillant en binaire. Of course, if the matrix calculation involves non-binary synaptic coefficients and / or non-binary input signals, we will preferably seek to reduce to a binary configuration by breaking down the values into binary weights processed individually by elementary processors Pk working in binary.

Dans une autre architecture, les calculs matriciels ne sont pas effectués ligne par ligne comme dans le cas de la figure 2, mais plutôt colonne par colonne. In another architecture, the matrix calculations are not carried out row by row as in the case of FIG. 2, but rather column by column.

La figure 3 représente une réalisation correspondante. FIG. 3 represents a corresponding embodiment.

Il y a q têtes de lecture TL1 à TLq (ici quatre) et q processeurs P'k associés chacun à une tête de lecture respective.There are q read heads TL1 to TLq (here four) and q processors P'k each associated with a respective read head.

Chaque processeur P'k reçoit à la fois un signal d'entrée xk et un coefficient extrait par la tête de lecture associée. Mais contrairement à la figure 2 où un processeur Pi pouvait recevoir successivement tous les signaux x. d'indices successifs j variant de 1 à m, maintenant le processeur P'k ne reçoit que les signaux xk d'indice k. Each processor P'k receives both an input signal xk and a coefficient extracted by the associated read head. But unlike Figure 2 where a processor Pi could successively receive all the signals x. of successive indices j varying from 1 to m, now the processor P'k receives only the signals xk of index k.

Par conséquent, si les signaux xk arrrivent en série, on prévoit un démultiplexeur qui oriente les signaux d'entrée respectivement vers les processeurs auxquels ils sont destinés. Ce démultiplexeur est incorporé à un circuit d'interface d'entrée désigné par la référence IE. Consequently, if the signals xk arrive in series, a demultiplexer is provided which directs the input signals respectively to the processors for which they are intended. This demultiplexer is incorporated into an input interface circuit designated by the reference IE.

La tête de lecture TLk correpondant au processeur fournit successivement les différents coefficients dont le deuxième indice est k, c'est-à-dire les coefficients Ai,k. c'est-à-direLes autres têtes de lecture travaillent en parallèlle et fournissent les autres coefficients. Chaque tête de lecture fournit les coefficients correspondant à une colonne de la matrice A, alors que dans le cas de la figure 2 chaque tête de lecture fournit les coefficients correspondant à une ligne de la matrice. The read head TLk corresponding to the processor successively supplies the various coefficients whose second index is k, that is to say the coefficients Ai, k. that is, the other read heads work in parallel and provide the other coefficients. Each read head supplies the coefficients corresponding to a column of the matrix A, whereas in the case of FIG. 2 each read head supplies the coefficients corresponding to a row of the matrix.

Les sorties des q processeurs sont combinées dans un additionneur global AD qui fournit successivement les sommes pondérées yi. The outputs of the q processors are combined in a global adder AD which successively supplies the weighted sums yi.

En effet, le premier processeur va calculer le produit x1A1,1; le deuxième va calculer x2A1 > 2, etc. Tous ces calculs sont faits simultanément; l'addition fournit y1; puis, alors que les signaux xk sont toujours présents dans les processeurs P'k, une nouvelle série de coefficients A2,1, A etc. est introduite dans les processeurs; l'addiction des produits fournit maintenant ya, etc. Indeed, the first processor will calculate the product x1A1,1; the second will calculate x2A1> 2, etc. All of these calculations are done simultaneously; the addition provides y1; then, while the signals xk are still present in the processors P'k, a new series of coefficients A2,1, A etc. is introduced in the processors; product addiction now provides ya, and so on.

De préférence, chaque processeur P'k comprend un premier registre tampon 20, un deuxième registre tampon 22, un multiplieur 24, et un troisième registre tampon 26. Le registre 20 reçoit les coefficients successifs Ai, k. Le registre 22 reçoit les signaux d'entrée xk; le registre 22 ne change de contenu qu'après la lecture de toute une colonne de coefficients Ai k issus de la piste k. Le registre 26 stocke le produit
i,k résultant de la multiplication et constitue un registre de sortie pour le processeur.
Preferably, each processor P'k comprises a first buffer register 20, a second buffer register 22, a multiplier 24, and a third buffer register 26. The register 20 receives the successive coefficients Ai, k. Register 22 receives the input signals xk; the register 22 only changes content after reading a whole column of coefficients Ai k from track k. Register 26 stores the product
i, k resulting from the multiplication and constitutes an output register for the processor.

De préférence aussi, l'additionneur a une structure en arbre pour exéxuter deux par deux les additions des sorties des processeurs. Also preferably, the adder has a tree structure to perform two by two additions of the outputs of the processors.

La sortie de l'additionneur AD représente les résultats y. successifs, les coefficients lus en parallèlle dans la mémoire morte à un moment donné ayant en effet tous le même premier indice i. The output of the adder AD represents the results y. successive, the coefficients read in parallel in the read only memory at a given moment in fact all having the same first index i.

Ces résultats sont délivrés en série par l'additionneur AD et sont transmis vers la mémoire vive MV du calculateur. These results are delivered in series by the adder AD and are transmitted to the random access memory MV of the computer.

Il est toutefois possible que le nombre q de têtes de lecture soit inférieur au nombre m de colonnes de la matrice A. However, it is possible that the number q of read heads is less than the number m of columns of matrix A.

Dans ce cas, bien entendu, il faut faire le calcul matriciel en plusieurs étapes : dans la première étape, on amène les q premiers signaux x1 à xq et on les combine avec les coefficients correspondants lus dans la mémoire de masse. Puis, dans une étape ultérieure, on amène les signaux d'entrée suivant etc, etc,et on les combine avec d'autres coefficients extraits de la mémoire de masse. Les sorties de l'addditionneur
AD à chaque cycle ne sont que des additions partielles, et il faut combiner les résultats des différentes étapes pour fournir les résultats y. définitifs.Cette combinaison peut être faite soit dans le calculateur soit dans le circuit CS; dans ce dernier cas, il faut donc un registre bouclé qui conserve en mémoire un résultat partiel d'addition jusqu a ce que le ou les résultas complémentaires puissent lui être additionnés.
In this case, of course, the matrix calculation must be done in several steps: in the first step, we bring the first q signals x1 to xq and we combine them with the corresponding coefficients read in the mass memory. Then, in a subsequent step, the next input signals, etc., etc. are brought in and combined with other coefficients extracted from the mass memory. The outputs of the adder
AD to each cycle are only partial additions, and you have to combine the results of the different steps to provide the results y. This combination can be made either in the computer or in the CS circuit; in the latter case, therefore, a looped register is required which keeps in memory a partial result of addition until the complementary result (s) can be added to it.

On remarque que la synchronisation des arrivées et départs d'informations n'est pas la même dans le cas de la figure 2 et dans celui de la figure 3 : dans le cas de la figure 2, les signaux d'entrée arrivent séquentiellement sur les processeurs Pi à la même vitesse que l'extraction séquentielle des coefficients Ai,j de la mémoire de masse. Dans le cas de la figure 3, une série de signaux x1 à x arrive et reste
q stockée dans les registres d'entrée pendant qu'une série de n coefficients Ai J défile dans chaque registre 20.
Note that the synchronization of information arrivals and departures is not the same in the case of FIG. 2 and that of FIG. 3: in the case of FIG. 2, the input signals arrive sequentially on the processors Pi at the same speed as the sequential extraction of the coefficients Ai, j from the mass memory. In the case of figure 3, a series of signals x1 to x arrives and remains
q stored in the input registers while a series of n coefficients Ai J scrolls through each register 20.

Claims (11)

REVENDICATIONS 1. Système de calcul neuronal comportant un calculateur (CMP) pourvu d'une mémoire de masse (MM) stockant des coefficients synaptiques (A. j), et un système de lecture (TL1, TL2, ...) séquentielle de la mémoire de masse, caractérisé en ce que 1. Neural computing system comprising a computer (CMP) provided with a mass memory (MM) storing synaptic coefficients (A. j), and a sequential reading system (TL1, TL2, ...) of the memory mass, characterized in that - le système de lecture comporte une batterie de têtes de lecture susceptibles de lire chacune séquentiellement des séries de coefficients synaptiques, les têtes de lecture travaillant simultanément en parallèlle, the reading system comprises a battery of reading heads capable of each sequentially reading series of synaptic coefficients, the reading heads working simultaneously in parallel, - et le système de calcul neuronal comporte des circuits de calcul (CS) interposés entre les têtes de lecture de la mémoire de masse et le calculateur, ces circuits étant aptes - and the neural computing system comprises computing circuits (CS) interposed between the read heads of the mass memory and the computer, these circuits being suitable à à recevoir en synchronisme d'une part des signaux d'entrée à traiter (x.) et d'autre part des coefficients synaptiques correspondant à ces signaux et issus des têtes de lecture, to be received in synchronism on the one hand input signals to be processed (x.) and on the other hand synaptic coefficients corresponding to these signals and coming from the read heads, à à établir une somme de signaux d'entrée pondérés par les coefficients synaptiques reçus simultanément, à to establish a sum of input signals weighted by the synaptic coefficients received simultaneously, et à transmettre au calculateur les sommes pondérées calculées. and transmitting the calculated weighted sums to the calculator. 2. Système selon la revendication 1, caractérisé en ce que la mémoire de masse est une mémoire à disque ou bande magnétique, ou à disque optique, à lecture séquentielle et à plusieurs têtes fonctionnant en paraillèlle. 2. System according to claim 1, characterized in that the mass memory is a disk or magnetic tape memory, or an optical disk, with sequential reading and with several heads operating in parallel. 3. Système selon la revendication 1, caractérisé en ce que la mémoire de masse comprend un ou plusieurs circuits intégrés EEPROM à accès séquentiel et à sorties de plusieurs mots en parallèlle. 3. System according to claim 1, characterized in that the mass memory comprises one or more EEPROM integrated circuits with sequential access and outputs of several words in parallel. 4. Système selon l'une des revendications précédentes, caractérisé en ce que les signaux d'entrée sont issus d'un capteur ou du calculateur (CMP) lui-même, ou d'un autre calculateur. 4. System according to one of the preceding claims, characterized in that the input signals come from a sensor or from the computer (CMP) itself, or from another computer. 5. Système selon l'une des revendications précédentes, caractérisé en ce que le circuit de calcul établissant les signaux pondérés est situé à proximité immédiate des têtes de lecture. 5. System according to one of the preceding claims, characterized in that the calculation circuit establishing the weighted signals is located in the immediate vicinity of the read heads. 6. Système selon l'une des revendications précédentes, caractérisé en ce que le circuit de calcul est intégré sur un substrat monolithique comportant les têtes de lecture. 6. System according to one of the preceding claims, characterized in that the calculation circuit is integrated on a monolithic substrate comprising the read heads. 7. Système selon l'une des revendications précédentes, caractérisé en ce que le circuit de calcul comporte un processeur associé à chaque tête de lecture, ce processeur recevant d'une part un signal d'entrée à traiter et d'autre part un coefficient synaptique reçu de la mémoire de masse, le processeur étant apte à multiplier ces deux valeurs. 7. System according to one of the preceding claims, characterized in that the calculation circuit comprises a processor associated with each read head, this processor receiving on the one hand an input signal to be processed and on the other hand a coefficient. synaptic received from the mass memory, the processor being able to multiply these two values. 8. Système selon la revendication 7, caractérisé en ce que le processeur reçoit séquentiellement des nouveaux signaux d'entrée xg avec un débit qui est le même que le débit des coefficients Ai 3 transmis par la tête de lecture 8. System according to claim 7, characterized in that the processor sequentially receives new input signals xg with a rate which is the same as the rate of the coefficients Ai 3 transmitted by the read head. i,j correspondant à ce processeur. i, j corresponding to this processor. 9. Système selon la revendication 8, caractérisé en ce que le processeur comporte un multiplieur (11) pour multiplier un signal d'entrée x. et un coefficient Ai j correspondant reçu au même moment, et un accumulateur pour faire la somme cumulée des produits effectués pour une série de signaux successifs x.. 9. System according to claim 8, characterized in that the processor comprises a multiplier (11) for multiplying an input signal x. and a corresponding coefficient Ai j received at the same time, and an accumulator for making the cumulative sum of the products carried out for a series of successive signals x .. 10. Système selon la revendication 7, caractérisé en ce que les différents processeurs reçoivent en parallèlle chacun un signal d'entrée xk respectif pris dans une série de signaux d'entrée à traiter, et sont aptes à exécuter la multiplication du signal d'entrée respectif xkreçu par chacun des coefficients A. k d'une série de coefficients reçus 10. System according to claim 7, characterized in that the different processors each receive in parallel a respective input signal xk taken from a series of input signals to be processed, and are able to carry out the multiplication of the input signal. respective xkreceived by each of the coefficients A. k of a series of received coefficients i,k séquentiellement de la tête de lecture correspondant au processeur considéré. i, k sequentially from the read head corresponding to the considered processor. 11. Système selon la revendication 10, caractérisé en ce que les processeurs comportent chacun une sortie connectée à une entrée respective d'un additionneur apte à faire la somme des produits calculés simultanément à un instant donné par les processeurs. 11. System according to claim 10, characterized in that the processors each comprise an output connected to a respective input of an adder capable of making the sum of the products calculated simultaneously at a given time by the processors.
FR9008228A 1990-06-29 1990-06-29 NEURONAL CALCULATION SYSTEM. Pending FR2664072A1 (en)

Priority Applications (4)

Application Number Priority Date Filing Date Title
FR9008228A FR2664072A1 (en) 1990-06-29 1990-06-29 NEURONAL CALCULATION SYSTEM.
JP3511108A JPH05501467A (en) 1990-06-29 1991-06-18 Neuro calculation system
EP91912049A EP0489885A1 (en) 1990-06-29 1991-06-18 Neurocomputing system
PCT/FR1991/000483 WO1992000571A1 (en) 1990-06-29 1991-06-18 Neurocomputing system

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
FR9008228A FR2664072A1 (en) 1990-06-29 1990-06-29 NEURONAL CALCULATION SYSTEM.

Publications (1)

Publication Number Publication Date
FR2664072A1 true FR2664072A1 (en) 1992-01-03

Family

ID=9398162

Family Applications (1)

Application Number Title Priority Date Filing Date
FR9008228A Pending FR2664072A1 (en) 1990-06-29 1990-06-29 NEURONAL CALCULATION SYSTEM.

Country Status (4)

Country Link
EP (1) EP0489885A1 (en)
JP (1) JPH05501467A (en)
FR (1) FR2664072A1 (en)
WO (1) WO1992000571A1 (en)

Families Citing this family (3)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182609A1 (en) * 2000-08-25 2002-02-27 Peter Bezler Circuit for the simulation of neural networks and for position-independent pattern reognition
JP6898359B2 (en) * 2016-06-14 2021-07-07 タータン エーアイ リミテッド Accelerator for deep neural networks
JP6826063B2 (en) 2018-03-12 2021-02-03 株式会社東芝 Arithmetic logic unit

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986000457A1 (en) * 1981-04-15 1986-01-16 Eastman Kodak Company Multitrack magnetic head

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986000457A1 (en) * 1981-04-15 1986-01-16 Eastman Kodak Company Multitrack magnetic head

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
G.W. GORSLINE: "Computer Organization: Hardware/Software", édition 2, 1986, pages 535-544, Prentice Hall, Englewood Cliffs, US *
IEEE COMMUNICATIONS MAGAZINE, vol. 27, no. 11, novembre 1989, pages 37-40; D. PSALTIS et al.: "Optoelectronic implementations of neural networks" *
PROCEEDINGS ICASSP'89, Glasgow, 23-26 mai 1989, vol. 4, pages 2509-2512; Y. SUZUKI: "A comparison of processor topologies for a fast trainable neural network for speech recognition" *

Also Published As

Publication number Publication date
EP0489885A1 (en) 1992-06-17
WO1992000571A1 (en) 1992-01-09
JPH05501467A (en) 1993-03-18

Similar Documents

Publication Publication Date Title
EP3660849B1 (en) Memory circuit suitable for performing computing operations
EP0853275B1 (en) Coprocessor comprising two multiplying circuits operating in parallel
EP0558125B1 (en) Neural processor with distributed synaptic cells
FR2686990A1 (en) ARITHMETIC UNIT HAVING AN ACCUMULATION OPERATION.
EP0712071B1 (en) Process for implementing modular multiplication according to the Montgomery method
EP0154340A1 (en) Inverse discrete cosine transform processor
EP0443679A1 (en) Coding method, according to the RSA method, by a microcontroller and a device using this method
EP1259939B1 (en) Automatic perception method and device
FR2819073A1 (en) Micro architecture for a microprocessor or microcontroller arithmetic logic unit has an optimized architecture in comparison with existing architectures
EP0154341A1 (en) Discrete cosine transform processor
EP0262032B1 (en) Binary adder having a fixed operand, and a parallel/serial multiplier comprising such an adder
WO2020012104A1 (en) Twiddle factor generating circuit for an ntt processor
FR2664072A1 (en) NEURONAL CALCULATION SYSTEM.
EP0793165B1 (en) Modular arithmetic coprocessor for fast execution of non-modular operations
EP3955167A1 (en) Reconfigurable calculation architecture for implementing artificial neural networks.
FR3045893A1 (en) ELECTRONIC CIRCUIT, PARTICULARLY ABLE TO IMPLEMENTATION OF NEURON NETWORKS AT SEVERAL LEVELS OF PRECISION.
FR2938680A1 (en) METHOD FOR REAL-TIME CONSTRUCTION OF PROTOTYPE VECTORS FROM INPUT DATA OF A NEURONAL PROCESS
EP2553655B1 (en) Data stream processing architecture enabling extension of neighborhood mask
EP0947913A1 (en) Improved method of implementing integer division
EP0461030B1 (en) Vector processing circuit and method
FR2475763A1 (en) DIGITAL PROCESSOR WITH PIPELINE STRUCTURE
EP0432008A1 (en) Electronic neural network and learning method
EP0329572B1 (en) Multiplier of binary numbers having a very large number of bits
FR2484668A1 (en) METHOD AND APPARATUS FOR TRANSFERRING EXTERNAL INPUT AND OUTPUT DATA TO A MICROPROCESSOR SYSTEM
FR3142815A1 (en) Low-bandwidth convolution parallelization framework