WO1992000571A1 - Systeme de calcul neuronal - Google Patents

Systeme de calcul neuronal Download PDF

Info

Publication number
WO1992000571A1
WO1992000571A1 PCT/FR1991/000483 FR9100483W WO9200571A1 WO 1992000571 A1 WO1992000571 A1 WO 1992000571A1 FR 9100483 W FR9100483 W FR 9100483W WO 9200571 A1 WO9200571 A1 WO 9200571A1
Authority
WO
WIPO (PCT)
Prior art keywords
coefficients
processor
read
reading
input signals
Prior art date
Application number
PCT/FR1991/000483
Other languages
English (en)
Inventor
Jean-Michel Vignolle
Philippe Refregier
Dominique Potier
Jean-Pierre Huignard
Original Assignee
Thomson-Csf
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 filed Critical Thomson-Csf
Publication of WO1992000571A1 publication Critical patent/WO1992000571A1/fr

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

Definitions

  • the present invention relates to a neural calculation system capable of rapidly executing a very large number of operations.
  • 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 of dimension 1000 x 1000 image points (or pixels).
  • 10 generally formed of several layers of neurons, the output of a neuron of a given layer being able to be connected to the inputs of all the neurons of the next layer. Under these conditions, the number of interconnections between neurons can be considerable. In the example cited of an image comprising 10
  • synaptic weights also called synaptic weights.
  • a neuron is in fact a calculating organ carrying out 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
  • 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 coefficients
  • An object of the invention is to improve the structure of neural calculation systems to avoid these drawbacks.
  • a neural calculation system comprising a calculator provided with a memory
  • the reading system includes a battery of reading heads capable of reading series of sequentially synaptic coefficients, the read heads working in parallel,
  • the neural calculation system includes calculation circuits interposed between the read heads of the mass memory and the computer, these circuits being suitable:
  • the computer comprises a random access memory (working memory) into which the signals transmitted to the computer enter, and the calculated weighted sums are transmitted to this random access memory.
  • working memory random access memory
  • the input signals can be sent by the computer or come from any other source (sensor, other computer, etc.)
  • part of the neural calculation is carried out directly “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 that work in parallel.
  • Only the results of the preliminary calculations are transmitted to the computer's RAM.
  • the rest of the neural calculation will be performed in the calculator, from the results stored in the RAM.
  • the synaptic coefficients are not transferred to the random access memory of the computer. Even if very many synaptic coefficients are used for the preliminary calculation, the number of results transmitted to the RAM of the computer will be smaller than the number of synaptic coefficients. We therefore gain on the size of the RAM, which can be much smaller.
  • the invention is also applicable with permanent memories of large capacity in integrated circuit (EEPROM memories), provided that these memories are arranged so as to simultaneously supply a large quantity of different words (the synaptic coefficients read in parallel) and that they are read in rapid sequential access and not in random access.
  • EEPROM memories with a large number of parallel outputs or a battery of EEPROM memories addressed in parallel may be suitable.
  • the calculation circuit comprises a small processor associated with each read head, for simultaneously receiving an input signal to be processed and a synaptic coefficient, and for carrying out the multiplication thereof.
  • the processor receives new input signals with a bit rate identical to the bit rate of the coefficients extracted by the read head associated with this processor, and it not only performs the multiplications but the accumulation of the products made for a series successive input signals (architecture with matrix calculation by lines).
  • the different processors each receive in parallel a respective input signal taken from the components of a vector on which one wants to perform an operation, and each processor executes a series of successive multiplications between this signal and a series of respective synaptic coefficients transmitted sequentially by the read head associated with this processor.
  • An adder is preferably connected at the output of the processors to add up the products calculated simultaneously at a given time by all the processors.
  • FIG. 1 shows the general architecture of a neural system according to the invention
  • FIG. 2 shows a first embodiment of the invention
  • Y AX where: Y is a vector with n components (y)
  • X is a vector with m components (x .., x réelle,... X)
  • A is a matrix of n x m synaptic coefficients A
  • Such a matrix multiplication is typical in a neural calculator.
  • the result Y is either a final result of the calculation, or an intermediate result from which other calculations will be made.
  • the general architecture of the neural calculation system according to the invention is shown in FIG. 1.
  • the input signals to be processed, representing the components x. of the vector X, are applied to a specific electronic circuit CS, which is intended to immediately carry out a weighted summation of these components.
  • the circuit CS also directly receives values of coefficients A.. from a mass memory MM (magnetic tape, digital optical disc, etc.) from which they are extracted by several read heads TL1, TL2,
  • the arrival of input signals x. is in any case synchronized with the arrival of the coefficients A.. extracts from mass memory. We will come back later on how this synchronization is done.
  • the weighted summation (sum of x. ⁇ .,) is carried out in the circuit CS in synchronism with the arrival of the input signals x. which itself takes place in synchronism with the reading in parallel of the coefficients A.. in the dead memory ; since the calculation takes place immediately, the coefficients A.. are not stored in a random access memory, ⁇ > J or more exactly, since they can be very temporarily stored in buffer registers of the circuit CS, it can be said that they are not stored in a random access memory random .
  • the results y. of this summation are transmitted to the memory * - ⁇ RAM (addressable) MV of a CMP calculator which will continue the neural calculation from the results y. stored in the RAM memory.
  • Input signals x. to be treated can come from several sources: for example they come from a sensor
  • the signals x. can come from the CMP computer itself.
  • a direct feedback of the results y. to the inputs x. , through a function of ° ⁇ j 'threshold can also be provided.
  • the specific circuit CS therefore performs the calculations on the fly at the same time as the sequential reading of the coefficients A.. by the multiple read heads which work in parallel.
  • This circuit CS can advantageously be an integral part of the system for reading the mass memory MM.
  • the mass memory is a high capacity EEPROM memory with sequential access and with outputs in parallel words, or a set of EEPROM memories with sequential access working in synchronism.
  • the calculation circuits present in the CS circuit can be very simple and therefore space-saving.
  • FIG. 2 represents a first embodiment of the invention.
  • 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 (j varying from 1 to p) of the products x.A. ..
  • processors PI, P2, P3, P4 there are four processors PI, P2, P3, P4.
  • Each Pi processor has two inputs; one receives an input signal x. (the signals x. arrive successively in series one behind the other); the other is connected to a respective read head TLi.
  • the read head of index i coupled to the processor Pi of the same index, reads track i from the mass memory MM and provides only the coefficients A.. corresponding to 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 input signals x, corresponding to the same index j.
  • the coefficients A.. , A 1 administrat, A .. ,,, Ai 4 * are all stored one behind the other on a track 1 read by the read head TLl corresponding to the processor PI, and the arrival in the processor of these coefficients A. . , A- 2 - ⁇ i 3 '- ⁇ 1 4 is synchronized with the arrival of signals x. , x mecanic, x,, x. respectively .
  • the coefficients A,. , A, ,, A, -, A réelle. 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 A réelle 1 , A Treatment hinder, A. hinder, A. is also synchronized with the arrival of the signals x 1 , x_, x supplement, x -.
  • Each processor is intended to sum the
  • the processor generally includes a multiplier to make the product A. .x. and one
  • the processor comprises a first buffer register 10 receiving the input signal x., A second buffer register 12 receiving the coefficient read in synchronism with this input signal, a multiplier 11 for perform product xA. , a l ⁇ 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 0 register 18 to update in register 18, with each new arrival of input signal x., the sum of products previously stored in register 18.
  • register 18 of the processor contains the result y. sought, i.e. the weighted sum of m input signals. The calculation was made without storage in RAM of the coefficients A. .. i - J
  • the results y ° ⁇ . are transmitted to the random access memory MV 0 of the computer CMP.
  • the transmission of the results y. is multiplexed on a single transmission line.
  • an output interface circuit IS receives in parallel the different results y. and transmits them in series to the random access memory MV of the computer CMP. 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 one, it will be understood that it is necessary to start again several calculation cycles ; the input signals x. already used during the first cycle are returned again to the processors, but this time they are multiplied by other coefficients A..
  • the processors Pk whose function has been explained above can be implemented in an extremely simple manner.
  • the multiplier 11 can simply be an AND gate associated with a clock signal and providing a brief clock pulse each time the binary product x.A. . is equal to 1.
  • the accumulation of products can be done simply by an asynchronous counter which receives these pulses and counts them.
  • q read heads TL1 to TLq (here four) and q processors P'k each associated with a respective read head.
  • Each processor P'k receives both an input signal x, and a coefficient extracted by the associated read head. But unlike Figure 2 where a Pi processor could successively receive all x signals. of successive indices j varying from 1 to m, now the processor P'k receives only the signals x, of index k.
  • a demultiplexer which directs the input signals respectively to the processors they are intended.
  • This demultiplexer is incorporated into an input interface circuit designated by the reference IE.
  • the read head TLk corresponding to the processor P'k successively supplies the various coefficients of which the second index is k, that is to say the coefficients A.,.
  • the ⁇ , k other read heads work in parallel and provide the other coefficients.
  • Each read head provides the coefficients corresponding to a column of the matrix A, while in the case of FIG. 2 each read head provides the coefficients corresponding to a row of the matrix.
  • the outputs of the q processors are combined in a global adder AD which successively supplies the y-weighted sums. Indeed, the first processor will calculate the product
  • 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 A.,.
  • the register 22 ⁇ , ⁇ receives the input signals x,; register 22 does not change content until a whole column of coefficients A, from track k, has been read.
  • the register 26 stores the product resulting from the multiplication and constitutes an output register for the processor.
  • the adder has a tree structure to execute two by two the additions of the outputs of the processors.
  • 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 having indeed all the same first index i.
  • the number q of read heads is less than the number m of columns of the matrix A.

Abstract

L'invention concerne les systèmes de calcul neuronaux. Dans ces systèmes, on effectue des calculs matriciels de grande taille, à partir de signaux d'entrée xj et de coefficients synaptiques Ai,j. Si le système est complexe, le nombre de coefficients est très élevé, par exemple 109, et les coefficients doivent être stockés dans une mémoire de masse MM (bande magnétique, disque optique, etc.). Les calculs sont faits dans un calculateur (CMP). Selon l'invention, au lieu d'aller chercher les coefficients dans la mémoire morte pour les mettre en mémoire vive (MV) avant de commencer les calculs matriciels, on effectue ''à la volée'' les multiplications xj par Ai,j en même temps qu'on lit séquentiellement les coefficients dans la mémoire morte. Et de plus, on lit un grand nombre de coefficients simultanément grâce à des têtes de lecture multiples (TL1, TL2, ...). On évite ainsi de stocker les coefficients dans une mémoire vive qui devrait être à la fois de grande vitesse d'accès et de grande capacité.

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 .
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) .
Les réseaux neuronaux sont des structures
10 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 10
* ' pixels, la connexion complète de 10 neurones d'entrée à, par
3 9 exemple, 10 neurones de sortie fait intervenir 10 interconnexions .
On sait que, dans les réseaux neuronaux, les interconnexions entre neurones constituent des liaisons 0 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 5 cours d'une phase d'apprentissage . Ils doivent être conservés
9 dans une mémoire permanente . Ainsi, dans le cas de 10 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 0 convient donc de stocker les coefficients synaptiques dans des mémoires de masse (disque optique, disque magnétique ou bande magnétique par exemple) . 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
5 synaptiques exclusivement dans une mémoire de masse, à cause des temps d'accès relativement longs de ce type de mémoire .
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
10 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 .
*• -*•* 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 .
D'autre part, dans les cas où les coefficients synaptiques doivent être modifiés fréquemment au cours du
20 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 5 transmission à cause de problèmes de rayonnement .
Un but de l'invention est d'améliorer la structure des systèmes de calcul neuronal pour éviter ces inconvénients .
Pour cela, on propose selon l'invention un système de calcul neuronal comportant un calculateur pourvu d'une mémoire
30 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 :
. à 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 , . à é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 .
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 .
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 r>as transférés à la mémoire vive du calculateur . 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 .
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 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 .
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 .
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 .
Il 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 . 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 .
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) .
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 .
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 .
Soit à effectuer une multiplication matricielle du type : Y = AX où : Y est un vecteur à n composantes (y )
Figure imgf000008_0001
X est un vecteur à m composantes (x.. , x„ , . . . x ) A est une matrice de n x m coefficients synaptiques 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 .
Pour effectuer cette multiplication matricielle, il est nécessaire de calculer les n sommes de produits suivantes : y. = A. . x. + A. „ x„ + . . . . + A. x J ι ι, l 1 ι, 2 2 ι,m m l'indice i variant de 1 à n.
L'architecture générale du système de calcul neuronal selon l'invention est représentée à la figure 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 .
Le circuit CS reçoit par ailleurs directement des valeurs de coefficients A. . 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 ,
TL. , . . . TL onctionnant en parallèlle . Il y a de préférence m têtes de lecture mais ce n'est pas obligatoire ; s'il y a 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 .
L'arrivée des signaux d'entrée x. est en tout cas synchronisée avec l'arrivée des coefficients A. . extraits de la mémoire de masse . On reviendra plus loin sur la manière dont se fait cette synchronisation.
La sommation pondérée (somme des x.Â. ,) 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 A. . dans la mémoire morte ; puisque le calcul s'effectue immédiatement , les coefficients A. . ne sont pas stockés dans une mémoire vive , ι> J 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 .
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 .
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 ° ι j' seuil peut d'ailleurs être prévu.
Le circuit spécifique CS effectue donc les calculs à la volée en même temps que la lecture séquentielle des coefficients A. . 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 .
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 .
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 (j variant de 1 à p) des produits x.A. .. Dans le cas de la figure 2 il y a quatre processeurs PI, P2, P3, P4. Chaque processeur Pi possède deux entrées ; l'une reçoit un signal d'entrée x. (les signaux x. arrivent successivement en série les uns derrière les autres) ; l'autre est reliée à une tête de lecture respective 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 x, correspondant au même indice j . Autrement dit, les coefficients A. . , A1 „ , A.. ,, , A-i 4 * sont tous stockés les uns derrière les autres sur une piste 1 lue par la tête de lecture TLl correspondant au processeur PI, et l'arrivée dans le processeur de ces coefficients A. . , A- 2- ^i 3 ' -^1 4 est synchronisée avec l'arrivée des signaux x. , x„ , x, , x . respectivement .
De même, les coefficients A, . , A, ,, A, -, A„ . , 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„ 1 , A„ „, A„ „ , A„ . est également synchronisée avec l'arrivée des signaux x1 , x_ , x„ , x - .
Toutes les têtes de lecture travaillent en parallèlle .
Chaque processeur est destiné à faire une somme des
5 signaux d'entrée x*. à x . 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
* » J J accumulateur pour sommer les résultats successifs des multiplications .
10 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 11 pour effectuer le produit x.A. . , un l ~ 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 0 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.
En fin d'un cycle de calcul, c'est-à-dire lorsque les m signaux d'entrée x. et les m coefficients A. . ont été 5 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. .. i - J
Les résultats y ° ι. sont transmis à la mémoire vive MV 0 du calculateur CMP. De préférence, la transmission des résultats y. 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 y. et les transmet en série vers la mémoire vive MV du calculateur 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 a 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 A. . non lus dans le premier cycle et correspondant maintenant aux indices i allant de p+1 à 2p, puis 2p+l à 3p, etc . jusqu'à 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 .
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 x.A. . est égal à 1. L'accumulation des produits peut se faire simplement par un compteur asynchrone qui reçoit ces impulsions et les compte .
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.
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 . La figure 3 représente une réalisation correspondante .
Il y a q têtes de lecture TLl à TLq (ici quatre) et q processeurs P'k associés chacun à une tête de lecture respective .
Chaque processeur P'k reçoit à la fois un signal d'entrée x, 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 x, d'indice k .
Par conséquent, si les signaux x, arrrivent en série, on prévoit un démultiplexeur qui oriente les signaux d'entrée respectivement vers les processeurs
Figure imgf000013_0001
ils sont destinés . Ce démultiplexeur est incorporé à un circuit d'interface d'entrée désigné par la référence IE .
La tête de lecture TLk correpondant au processeur P'k fournit successivement les différents coefficients dont le deuxième indice est k, c'est-à-dire les coefficients A. , . Les ι, k 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 .
Les sorties des q processeurs sont combinées dans un additionneur global AD qui fournit successivement les sommes pondérées y.. En effet, le premier processeur va calculer le produit
X.. A.. 1 ; le deuxième va calculer x-A. „ , etc . Tous ces calculs sont faits simultanément; l'addition fournit y puis, alors que les signaux x, sont toujours présents dans les processeurs P'k, une nouvelle série de coefficients A„ _. , A„ „ , etc . est introduite dans les processeurs ; l'addition des produits fournit maintenant y„, etc .
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 A. , . Le registre 22 ι, κ reçoit les signaux d'entrée x, ; le registre 22 ne change de contenu qu'après la lecture de toute une colonne de coefficients A. , issus de la piste k . Le registre 26 stocke le produit résultant de la multiplication et constitue un registre de sortie pour le processeur. De préférence aussi, l'additionneur a une structure en arbre pour exéxuter deux par deux les additions des sorties des processeurs .
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.
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 .
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 .
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 x.. à x 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 x l Λ , etc, et on les combine avec d'autres coefficients q+1' ' 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'à ce que le ou les résultas complémentaires puissent lui être additionnés .
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 A. . de la mémoire de masse . Dans le cas de la figure 3, une série de signaux x.. à x arrive et reste stockée dans les registres d'entrée pendant qu'une série de n coefficients A. . défile dans chaque registre 20.

Claims

REVENDICATIONS
1. Système de calcul neuronal comportant un calculateur (CMP) pourvu d'une mémoire de masse (MM) stockant des coefficients synaptiques (A. . ) , et un système de lecture
*-> J
(TLl, TL2 , . . . ) 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 chacune séquentiellement des séries de coefficients synaptiques , les têtes de lecture travaillant simultanément en parallèlle, - 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 :
. à 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,
. à é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 .
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 paralllèlle .
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.
4. Système selon l'une des revendications précédentes, caractérisé en ce que les ∑≈ignaux d'entrée sont issus d'un capteur ou du calculateur (CMP) lui-même, ou d'un autre calculateur.
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 .
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 .
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 l cture, 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 .
8. Système selon la revendication 7, caractérisé en ce que le processeur reçoit séquentiellement des nouveaux signaux d'entrée x. avec un débit qui est le même que le débit des coefficients A. . transmis par la tête de lecture correspondant à ce processeur.
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 A. . 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..
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 x, 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 x, reçu par chacun des coefficients A. . d'une série de coefficients reçus ι, k v séquentiellement de la tête de lecture correspondant au processeur considéré .
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 .
PCT/FR1991/000483 1990-06-29 1991-06-18 Systeme de calcul neuronal WO1992000571A1 (fr)

Applications Claiming Priority (2)

Application Number Priority Date Filing Date Title
FR90/08228 1990-06-29
FR9008228A FR2664072A1 (fr) 1990-06-29 1990-06-29 Systeme de calcul neuronal.

Publications (1)

Publication Number Publication Date
WO1992000571A1 true WO1992000571A1 (fr) 1992-01-09

Family

ID=9398162

Family Applications (1)

Application Number Title Priority Date Filing Date
PCT/FR1991/000483 WO1992000571A1 (fr) 1990-06-29 1991-06-18 Systeme de calcul neuronal

Country Status (4)

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

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182609A1 (fr) * 2000-08-25 2002-02-27 Peter Bezler Circuit pour simuler des réseaux neuromimétiques et pour la reconnaissance de formes indépendant de la position

Families Citing this family (2)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
JP6898359B2 (ja) * 2016-06-14 2021-07-07 タータン エーアイ リミテッド ディープニューラルネットワーク用のアクセラレータ
JP6826063B2 (ja) 2018-03-12 2021-02-03 株式会社東芝 演算装置

Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986000457A1 (fr) * 1981-04-15 1986-01-16 Eastman Kodak Company Tete magnetique multipiste

Patent Citations (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
WO1986000457A1 (fr) * 1981-04-15 1986-01-16 Eastman Kodak Company Tete magnetique multipiste

Cited By (1)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
EP1182609A1 (fr) * 2000-08-25 2002-02-27 Peter Bezler Circuit pour simuler des réseaux neuromimétiques et pour la reconnaissance de formes indépendant de la position

Also Published As

Publication number Publication date
JPH05501467A (ja) 1993-03-18
FR2664072A1 (fr) 1992-01-03
EP0489885A1 (fr) 1992-06-17

Similar Documents

Publication Publication Date Title
EP3660849B1 (fr) Circuit mémoire adapté à mettre en oeuvre des opérations de calcul
EP0154340B1 (fr) Processeur de calcul d'une transformée discrète inverse du cosinus
EP0552074B1 (fr) Système de traitement de données multiprocesseur
EP0154341B1 (fr) Processeur de calcul d'une transformée discrète du cosinus
EP0853275B1 (fr) Coprocesseur comprenant deux circuits de multiplication opérant en parallèle
EP0206847B1 (fr) Dispositifs de calcul de transformées cosinus, dispositif de codage et dispositif de décodage d'images comportant de tels dispositifs de calcul
FR2686990A1 (fr) Unite arithmetique ayant une operation d'accumulation.
EP1259939B1 (fr) Procede et dispositif de perception automatique
EP0443679A1 (fr) Procédé de codage selon la méthode dite RSA, par un microcontrôleur et dispositif utilisant ce procédé
EP0184494A1 (fr) Système pour la transmission simultanée de blocs données ou de vecteurs entre une mémoire et une ou plusieurs unités de traitement de données
EP0262032B1 (fr) Additionneur binaire comportant un opérande fixé, et multiplieur binaire parallèle-série comprenant un tel additionneur
EP0171305B1 (fr) Circuit de calcul de la transformée de Fourier discrète
EP3803574A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
EP3803636B1 (fr) Processeur ntt incluant une pluralite de bancs de memoires
EP0536062B1 (fr) Procédé et circuit de traitement de données par transformée cosinus
EP0793165B1 (fr) Coprocesseur d'arithmétique modulaire permettant de réaliser rapidement des opération non modulaires
WO1992000571A1 (fr) Systeme de calcul neuronal
EP1298581A1 (fr) Procédé et dispositif pour calculer les valeurs des neurones d'un réseau neuronal
EP0924626B1 (fr) Processeur de calcul d'une transformation rapide de Fourier à architecture dite "pipelinée"
EP0667969A1 (fr) Dispositif electronique de calcul d'une transformee de fourier et procede pour minimiser la taille des chemins de donnees internes d'un tel dispositif
FR2938680A1 (fr) Procede de construction en temps reel de vecteurs prototypes a partir de donnees d'entree d'un processus neuronal
EP0461030B1 (fr) Procédé et circuit de traitement de vecteurs
EP2553655B1 (fr) Architecture de traitement d'un flux de données permettant l'extension d'un masque de voisinage
FR2719397A1 (fr) Dispositif d'alimentation en pixels d'une série d'opérateurs d'un circuit de compression d'images mobiles.
EP3955167A1 (fr) Architecture de calcul reconfigurable pour la mise en oeuvre de réseaux de neurones artificiels

Legal Events

Date Code Title Description
AK Designated states

Kind code of ref document: A1

Designated state(s): JP US

AL Designated countries for regional patents

Kind code of ref document: A1

Designated state(s): AT BE CH DE DK ES FR GB GR IT LU NL SE

WWE Wipo information: entry into national phase

Ref document number: 1991912049

Country of ref document: EP

WWP Wipo information: published in national office

Ref document number: 1991912049

Country of ref document: EP

WWW Wipo information: withdrawn in national office

Ref document number: 1991912049

Country of ref document: EP