CA2992036A1 - Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements - Google Patents

Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements Download PDF

Info

Publication number
CA2992036A1
CA2992036A1 CA2992036A CA2992036A CA2992036A1 CA 2992036 A1 CA2992036 A1 CA 2992036A1 CA 2992036 A CA2992036 A CA 2992036A CA 2992036 A CA2992036 A CA 2992036A CA 2992036 A1 CA2992036 A1 CA 2992036A1
Authority
CA
Canada
Prior art keywords
node
connection
connections
neuron
weight
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.)
Abandoned
Application number
CA2992036A
Other languages
English (en)
Inventor
Ryad Benosman
Xavier LAGORCE
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.)
Centre National de la Recherche Scientifique CNRS
Universite Pierre et Marie Curie Paris 6
Institut National de la Sante et de la Recherche Medicale INSERM
Original Assignee
Centre National de la Recherche Scientifique CNRS
Universite Pierre et Marie Curie Paris 6
Institut National de la Sante et de la Recherche Medicale INSERM
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 Centre National de la Recherche Scientifique CNRS, Universite Pierre et Marie Curie Paris 6, Institut National de la Sante et de la Recherche Medicale INSERM filed Critical Centre National de la Recherche Scientifique CNRS
Publication of CA2992036A1 publication Critical patent/CA2992036A1/fr
Abandoned legal-status Critical Current

Links

Classifications

    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/049Temporal neural networks, e.g. delay elements, oscillating neurons or pulsed inputs
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06FELECTRIC DIGITAL DATA PROCESSING
    • G06F17/00Digital computing or data processing equipment or methods, specially adapted for specific functions
    • G06F17/10Complex mathematical operations
    • G06F17/11Complex mathematical operations for solving equations, e.g. nonlinear equations, general mathematical optimization problems
    • G06F17/13Differential equations
    • GPHYSICS
    • G06COMPUTING; CALCULATING OR COUNTING
    • G06NCOMPUTING ARRANGEMENTS BASED ON SPECIFIC COMPUTATIONAL MODELS
    • G06N3/00Computing arrangements based on biological models
    • G06N3/02Neural networks
    • G06N3/04Architecture, e.g. interconnection topology
    • G06N3/048Activation functions

Landscapes

  • Engineering & Computer Science (AREA)
  • Physics & Mathematics (AREA)
  • Theoretical Computer Science (AREA)
  • Mathematical Physics (AREA)
  • General Physics & Mathematics (AREA)
  • Data Mining & Analysis (AREA)
  • Software Systems (AREA)
  • General Engineering & Computer Science (AREA)
  • Computational Linguistics (AREA)
  • Health & Medical Sciences (AREA)
  • General Health & Medical Sciences (AREA)
  • Molecular Biology (AREA)
  • Computing Systems (AREA)
  • Biophysics (AREA)
  • Biomedical Technology (AREA)
  • Artificial Intelligence (AREA)
  • Life Sciences & Earth Sciences (AREA)
  • Evolutionary Computation (AREA)
  • Computational Mathematics (AREA)
  • Mathematical Analysis (AREA)
  • Mathematical Optimization (AREA)
  • Pure & Applied Mathematics (AREA)
  • Operations Research (AREA)
  • Algebra (AREA)
  • Databases & Information Systems (AREA)
  • Multi Processors (AREA)
  • Mobile Radio Communication Systems (AREA)
  • Advance Control (AREA)

Abstract

Le dispositif de traitement de données comprend un ensemble de nuds de traitement (21, 23, 25, 42, 44, 47, 48, 50) et des connexions entre les nuds. Chaque connexion (22, 24, 41, 43, 45, 46, 49, 51) est configurée pour transmettre à un nud récepteur des événements délivrés par un nud émetteur. Chaque nud est agencé pour faire varier une valeur de potentiel respective en fonction d'événements qu'il reçoit et pour délivrer un événement lorsque la valeur de potentiel atteint un seuil prédéfini. Au moins une grandeur d'entrée du dispositif de traitement de données est représentée par un intervalle de temps entre deux événements reçus par au moins un nud, et au moins une grandeur de sortie du dispositif de traitement de données est représentée par un intervalle de temps entre deux événements délivrés par au moins un nud.

Description

DISPOSITIF DE TRAITEMENT DE DONNEES AVEC REPRESENTATION DE
VALEURS PAR DES INTERVALLES DE TEMPS ENTRE EVENEMENTS

La présente invention concerne les techniques de traitement de données. Des modes de réalisation mettent en oeuvre une nouvelle manière d'exécuter des calculs dans des machines, en particulier dans des machines programmables.

En grande majorité, les ordinateurs actuels reposent sur l'architecture de Von Neumann. Les données et les instructions de programme sont stockées dans une mémoire à
laquelle une unité arithmétique et logique accède de manière séquentielle pour exécuter le programme sur les données. Cette architecture séquentielle est relativement inefficace, notamment en raison de l'exigence de nombreux accès à la mémoire, en lecture et en écriture.
[0003]
La recherche d'alternatives énergiquement plus efficaces a conduit à proposer des architectures de traitement sans horloge qui tentent d'imiter le fonctionnement du cerveau. Des projets récents, comme le programme SyNAPSE DARPA, ont conduit au développement de technologies de cartes neuromorphiques à base de silicium, qui permettent de construire un nouveau type de calculateur inspiré de la forme, du fonctionnement et de l'architecture du cerveau. Les principaux avantages de ces systèmes sans horloge sont leur efficacité énergétique et le fait que la performance soit en rapport avec la quantité de neurones et de synapses utilisés. Plusieurs plates-formes qui ont été
développées dans ce contexte, en particulier :
= IBM TrueNorth (Paul A. Merolla, et al.: "A Million Spiking-Neuron Integrated Circuit with a Scalable Communication Network and Interface", Science, Vol.
345, No. 6197, pages 668-673, août 2014) ;
= Neurogrid (Ben V. Benjamin, et al.: "Neurogrid: A Mixed-Analog-Digital Multichip System for Large-Scale Neural Simulations", Proceedings of the IEEE, Vol. 102, No. 5, pages 699-716, mai 2014) ;
= SpiNNaker (Steve B. Furber, et al.: "The SpiNNaker Project", Proceedings of the IEEE, Vol. 102, No. 5, pages 652-665, mai 2014).
[0004]
Ces machines visent essentiellement à simuler la biologie. Leurs applications principales sont dans le domaine de l'apprentissage, notamment pour exécuter des
- 2 -architectures d'apprentissage profond ("deep learning") telles que des réseaux de neurones ou des réseaux de croyance ("deep belief networks"). Elles se révèlent efficaces dans plusieurs domaines comme ceux de la vision artificielle, de la reconnaissance de parole et du traitement des langues.
[00051 Il existe d'autres options comme le NEF ("Neural Engineering Framework") capables de simuler certaines fonctionnalités du cerveau et notamment accomplir des tâches visuelles, cognitives et motrices (Chris Eliasmith, et al. : "A Large-Scale Model of the Functioning Brain", Science, Vol. 338, No. 6111, pages 1202-1205, novembre 2012).
100061 Ces différentes approches n'offrent pas une méthodologie générale pour l'exécution de calculs dans une machine programmable.
[0007] La présente convention vise à proposer une nouvelle approche pour la représentation des données et l'exécution de calculs. Il est souhaitable que cette approche se prête bien à une mise en oeuvre à consommation énergétique modérée et à un parallélisme massif.
10081 Il est proposé un dispositif de traitement de données, comprenant un ensemble de noeuds de traitement et des connexions entre les noeuds. Chaque connexion a un noeud émetteur et un noeud récepteur parmi l'ensemble de noeuds de traitement et est configurée pour transmettre au noeud récepteur des événements délivrés par le noeud émetteur. Chaque noeud est agencé pour faire varier une valeur de potentiel respective en fonction d'événements qu'il reçoit et pour délivrer un événement lorsque la valeur de potentiel atteint un seuil prédéfini. Au moins une grandeur d'entrée du dispositif de traitement de données est représentée par un intervalle de temps entre deux événements reçus par au moins un noeud, et au moins une grandeur de sortie du dispositif de traitement de données est représentée par un intervalle de temps entre deux événements délivrés par au moins un noeud.
[0009] Les noeuds de traitement constituent des unités de calcul de type neurone.
Cependant, on ne cherche pas particulièrement ici à imiter le fonctionnement du cerveau. Le terme neurone est utilisé dans le mémoire par commodité de langage, mais ne signifie pas nécessairement une ressemblance forte avec le mode de fonctionnement des neurones du cortex.
3 PCT/FR2016/051717 [00101 En utilisant une organisation temporelle précise des événements au sein du dispositif de traitement, ainsi que diverses propriétés des connexions (synapses), on peut obtenir un cadre général de calcul, apte à calculer les fonctions mathématiques élémentaires.
On peut dès lors implémenter tous les opérateurs mathématiques existants, qu'ils soient linéaires ou non, sans recourir obligatoirement à une architecture de Von Neumann. A partir de là, il devient possible que le dispositif fonctionne comme un ordinateur classique, mais sans nécessiter d'allers-retours incessants en mémoire et sans reposer sur la précision en virgule flottante. Ce sont les concordances temporelles d'événements synaptiques, ou leurs décalages temporels, qui constituent la base de la représentation des données.
[0011] La méthodologie proposée est en adéquation avec les architectures neuromorphiques qui ne font aucune distinction entre mémoire et calcul. Chaque connexion de chaque noeud de traitement stocke de l'information et, simultanément, utilise cette information pour le calcul. Ceci est très différent de l'organisation régnant dans les ordinateurs classiques qui fait une distinction entre mémoire et traitement et provoque le goulot d'étranglement de Von Neumann, où une majeure partie du temps de calcul est consacrée à déplacer de l'information entre la mémoire et l'unité centrale de traitement (John Backus : "Can Programming Be Liberated from the von Neumann Style?: A
Functional Style and Its Algebra of Programs", Communications of the ACM, Vol.
21, No. 8, pages 613-641, août 1978).
[00121 Le fonctionnement repose sur une communication gouvernée par des événements ("event-driven") comme dans les neurones biologiques, et permettant donc une exécution avec un parallélisme massif.
[0013] Dans un mode de réalisation du dispositif, chaque noeud de traitement est agencé
pour réinitialiser sa valeur de potentiel lorsqu'il délivre un événement. La réinitialisation peut notamment être à une valeur de potentiel nulle.
[NU] De nombreux modes de réalisation du dispositif de traitement de données incluent, parmi les connexions entre les noeuds, une ou plusieurs connexions de variation de potentiel ayant chacune un poids respectif. Le noeud récepteur d'une telle connexion est agencé pour réagir à un événement reçu sur cette connexion en ajoutant le poids de la connexion à sa valeur de potentiel.
[00151 Les connexions de variation de potentiel peuvent comprendre des connexions
- 4 -excitatrices, de poids positif, et des connexions inhibitrices, de poids négatif.
Me) Pour manipuler une grandeur au sein du dispositif, l'ensemble des noeuds de traitement peut comprendre au moins un premier noeud formant le noeud récepteur d'une première connexion de variation de potentiel ayant un premier poids positif au moins égal au seuil prédéfini pour la valeur de potentiel, et au moins un second noeud formant le noeud récepteur d'une seconde connexion de variation de potentiel de poids au moins égal à la moitié du seuil prédéfini pour la valeur de potentiel et inférieur au seuil prédéfini pour la valeur de potentiel. Le premier noeud susmentionné forme en outre le noeud émetteur et le noeud récepteur d'une troisième connexion de variation de potentiel de poids égal à l'opposé
du premier poids, ainsi que le noeud émetteur d'une quatrième connexion, tandis que le second noeud forme en outre le noeud émetteur d'une cinquième connexion. Les première et seconde connexions de variation de potentiel sont alors configurées pour recevoir chacune deux événements séparés par un premier intervalle de temps représentant une grandeur d'entrée de sorte que les quatrième et cinquième connexions transportent des événements respectifs ayant entre eux un second intervalle de temps en rapport avec le premier intervalle de temps.
[)Oi7I
Diverses opérations peuvent être exécutées à l'aide d'un dispositif selon l'invention.
[0018J
En particulier, un exemple de dispositif de traitement de données comprend au moins un circuit de calcul de minimum, qui comprend lui-même :
des premier et second noeuds d'entrée ;
un noeud de sortie ;
des premier et second noeuds de sélection ;
des première, seconde, troisième, quatrième, cinquième et sixième connexions de variation de potentiel ayant chacune un premier poids positif au moins égal à
la moitié du seuil prédéfini pour la valeur de potentiel et inférieur au seuil prédéfini pour la valeur de potentiel ;
des septième et huitième connexions de variation de potentiel ayant chacune un second poids opposé au premier poids ; et des neuvième et dixième connexions de variation de potentiel ayant chacune un troisième poids double du second poids.
- 5 -[0019]
Dans ce circuit de calcul de minimum, le premier noeud d'entrée forme le noeud émetteur des première et troisième connexions et le noeud récepteur de la dixième connexion, le second noeud d'entrée forme le noeud émetteur des seconde et quatrième connexions et le noeud récepteur de la neuvième connexion, le premier noeud de sélection forme le noeud émetteur des cinquième, septième et neuvième connexion et le noeud récepteur des première et huitième connexions, le second noeud de sélection forme le noeud émetteur des sixième, huitième et dixième connexions et le noeud récepteur des seconde et septième connexions, et le noeud de sortie forme le noeud récepteur des troisième, quatrième, cinquième et sixième connexions.
[0020] Un autre exemple de dispositif de traitement de données comprend au moins un circuit de calcul de maximum, qui comprend lui-même :
des premier et second noeuds d'entrée ;
un noeud de sortie ;
des premier et second noeuds de sélection ;
des première, seconde, troisième et quatrième connexions de variation de potentiel ayant chacune un premier poids positif au moins égal à la moitié du seuil prédéfini pour la valeur de potentiel et inférieur au seuil prédéfini pour la valeur de potentiel ; et des cinquième et sixième connexions de variation de potentiel ayant chacune un second poids égal au double de l'opposé du premier poids.
[0021] Dans ce circuit de calcul de maximum, le premier noeud d'entrée forme le noeud émetteur des première et troisième connexions, le second noeud d'entrée forme le noeud émetteur des seconde et quatrième connexions, le premier noeud de sélection forme le noeud émetteur de la cinquième connexion et le noeud récepteur des première et sixième connexions, le second noeud de sélection forme le noeud émetteur de la sixième connexion et le noeud récepteur des seconde et cinquième connexions, et le noeud de sortie forme le noeud récepteur des troisième et quatrième connexions.
[00221 Un autre exemple de dispositif de traitement de données comprend au moins un circuit soustracteur, qui comprend lui-même :
des premier et second noeuds de synchronisation ;
des premier et second noeuds d'inhibition ;
des premier et second noeuds de sortie ;
- 6 -des première, seconde, troisième, quatrième, cinquième et sixième connexions de variation de potentiel ayant chacune un premier poids positif au moins égal au seuil prédéfini pour la valeur de potentiel ;
des septième et huitième connexions de variation de potentiel ayant chacune un second poids égal à la moitié du premier poids ;
des neuvième et dixième connexions de variation de potentiel ayant chacune un troisième poids opposé au premier poids ; et des onzième et douzième connexions de variation de potentiel ayant chacune un quatrième poids double du troisième poids.
[0023] Dans ce circuit soustracteur, le premier noeud de synchronisation forme le noeud émetteur des première, seconde, troisième et neuvième connexions, le second noeud de synchronisation forme le noeud émetteur des quatrième, cinquième, sixième et dixième connexions, le premier noeud d'inhibition forme le noeud émetteur de la onzième connexion et le noeud récepteur des troisième, huitième et dixième connexions, le second noeud d'inhibition forme le noeud émetteur de la douzième connexion et le noeud récepteur des sixième, septième et neuvième connexions, le premier noeud de sortie forme le noeud émetteur de la septième connexion et le noeud récepteur des première, cinquième et onzième connexions, et le second noeud de sortie forme le noeud émetteur de la huitième connexion et le noeud récepteur des seconde, quatrième et douzième connexions. Le premier noeud de synchronisation est configuré pour recevoir, sur au moins une connexion de variation de potentiel ayant le second poids, une première paire d'événements ayant entre eux un premier intervalle de temps représentant un premier opérande. Le second noeud de synchronisation est configuré pour recevoir, sur au moins une connexion de variation de potentiel ayant le second poids, une seconde paire d'événements ayant entre eux un second intervalle de temps représentant un second opérande, de sorte qu'une troisième paire d'événements ayant entre eux un troisième intervalle de temps est délivrée par le premier noeud de sortie si le premier intervalle de temps est plus long que le second intervalle de temps et par le second noeud de sortie si le premier intervalle de temps est plus court que le second intervalle de temps, le troisième intervalle de temps représentant la valeur absolue de la différence entre les premier et second opérande.
100241 Le circuit soustracteur peut comprendre en outre une logique de détection de zéro incluant au moins un noeud de détection associé à des connexions de détection et
- 7 -d'inhibition avec les premier et second noeud de synchronisation, l'un des premier et second noeud d'inhibition et l'un des premier et second noeud de sortie. Les connexions de détection et d'inhibition sont plus rapides que les première, seconde, troisième, quatrième, cinquième, sixième, septième, huitième, neuvième, dixième, onzième et douzième connexions, pour inhiber la production d'événements par l'un des premier et second noeuds de sortie lorsque les premier et second intervalles de temps sont sensiblement égaux.
[0025] Dans diverses réalisations du dispositif, l'ensemble de noeuds de traitement comprend au moins un noeud agencé pour faire varier une valeur de courant en fonction d'événements reçus sur au moins une connexion de réglage de courant, et pour faire varier sa valeur de potentiel au cours du temps avec un taux de variation proportionnel à ladite valeur de courant. Un tel noeud de traitement peut notamment être agencé pour remettre à
zéro sa valeur de courant lorsqu'il délivre un événement.
[0026] La valeur de courant dans certains au moins des noeuds a une composante constante entre deux événements reçus sur au moins une connexion de réglage de composante constante de courant ayant un poids respectif. Le noeud récepteur d'une connexion de réglage de composante constante de courant est agencé pour réagir à un événement reçu sur cette connexion en ajoutant le poids de la connexion à la composante constante de sa valeur de courant.
[00271 Un autre exemple de dispositif de traitement de données comprend au moins un circuit de mémoire inverseuse, qui comprend lui-même :
un noeud accumulateur ;
des première, seconde et troisième connexions de réglage de composante constante de courant, les première et troisième connexions ayant un même poids positif et la seconde connexion ayant un poids opposé au poids des première et troisième connexions ; et au moins une quatrième connexion, [00281 Dans ce circuit de mémoire inverseuse, le noeud accumulateur forme le noeud récepteur des première, seconde et troisième connexions et le noeud émetteur de la quatrième connexion, et les première et seconde connexions sont configurées pour adresser respectivement au noeud accumulateur des premier et second événements ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur à mémoriser, de sorte que le noeud accumulateur réagit ensuite à un troisième
- 8 -événement reçu sur la troisième connexion en faisant croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la quatrième connexion, les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec le premier intervalle de temps.
[00291 Un autre exemple de dispositif de traitement de données comprend au moins un circuit de mémoire, qui comprend lui-même :
des premier et second noeuds accumulateurs ;
des première, seconde, troisième et quatrième connexions de réglage de composante constante de courant, les première, seconde et quatrième connexions ayant chacune un premier poids positif et la troisième connexion ayant un second poids opposé
au premier poids ; et au moins une cinquième connexion.
10301 Dans ce circuit de mémoire, le premier noeud accumulateur forme le noeud récepteur de la première connexion et le noeud émetteur de la troisième connexion, le second noeud accumulateur forme le noeud récepteur des seconde, troisième et quatrième et cinquième connexions et le noeud émetteur de la cinquième connexion, les première et seconde connexions sont configurées pour adresser respectivement aux premier et second noeuds accumulateurs des premier et second événements ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur à
mémoriser, de sorte que le second noeud accumulateur réagit ensuite à un troisième événement reçu sur la quatrième connexion en faisant croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la cinquième connexion, les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec le premier intervalle de temps.
10311 Le circuit de mémoire peut en outre comprendre une sixième connexion ayant le premier noeud accumulateur comme noeud émetteur, la sixième connexion délivrant un événement pour signaler la disponibilité en lecture du circuit de mémoire.
10321 Un autre exemple de dispositif de traitement de données comprend au moins un circuit de synchronisation, qui inclut un nombre N> 1 de circuits de mémoire, du type qui vient d'être mentionné, et un noeud de synchronisation. Le noeud de synchronisation est sensible à chaque événement délivré sur la sixième connexion de l'un des N
circuits de
- 9 -mémoire via une connexion de variation de potentiel respective de poids égal au premier poids divisé par N. Le noeud de synchronisation est agencé pour provoquer une réception simultanée des troisièmes événements via les quatrièmes connexions respectives des N de circuits de mémoire.
11)0331 Un autre exemple de dispositif de traitement de données comprend au moins un circuit de cumul, qui comprend lui-même :
N entrées ayant chacune un coefficient de pondération respectif, N étant un nombre entier supérieur à 1;
un noeud accumulateur ;
un noeud de synchronisation ;
pour chacune des N entrées du circuit de cumul :
une première connexion de réglage de composante constante de courant ayant un premier poids positif proportionnel au coefficient de pondération respectif de ladite entrée ; et une seconde connexion de réglage de composante constante de courant ayant un second poids opposé au premier poids ;
une troisième connexion de réglage de composante constante de courant ayant un troisième poids positif.
[0034]
Dans ce circuit de cumul, le noeud accumulateur forme le noeud récepteur des premières, secondes et troisième connexions, le noeud de synchronisation forme le noeud émetteur de la troisième connexion. Pour chacune des N entrées, les première et seconde connexions sont configurées pour adresser respectivement au noeud accumulateur des premier et second événements ayant entre eux un premier intervalle de temps représentant un opérande respectif fourni sur ladite entrée. Le noeud de synchronisation est configuré
pour délivrer un troisième événement une fois que les premier et second événements ont été
adressés pour chacune des N entrées, de sorte que le noeud accumulateur fait croître sa valeur de potentiel jusqu'à délivrance d'un quatrième événement. Les troisième et quatrième événements ont entre eux un second intervalle de temps en relation avec un intervalle de temps représentant une somme pondérée des opérandes fournis sur les N
entrées.
[0035]
Dans un exemple de dispositif de traitement de données selon l'invention, le
- 10 -circuit de cumul fait partie d'un circuit de sommation pondérée comprenant en outre :
un second noeud accumulateur ;
une quatrième connexion de réglage de composante constante de courant ayant le troisième poids ; et des cinquième et sixième connexions.
[00.36] Dans ce circuit de sommation pondérée, le noeud de synchronisation du circuit de cumul forme le noeud émetteur de la quatrième connexion, le noeud accumulateur du circuit de cumul forme le noeud émetteur de la cinquième connexion, et le second noeud accumulateur forme le noeud récepteur de la quatrième connexion et le noeud émetteur de la sixième connexion. En réponse à la délivrance du troisième événement par le noeud de synchronisation, le noeud accumulateur du circuit de cumul fait croître sa valeur de potentiel jusqu'à délivrance du quatrième événement sur la cinquième connexion, et le second noeud accumulateur fait croître sa valeur de potentiel jusqu'à délivrance d'un cinquième événement sur la sixième connexion, les quatrième et cinquième événements ayant entre eux un troisième intervalle de temps en relation avec un intervalle de temps représentant une somme pondérée des opérandes fournis sur les N entrées du circuit de cumul.
100371 Un autre exemple de dispositif de traitement de données comprend au moins un circuit de combinaison linéaire incluant deux circuits de cumul, qui partagent leur noeud de synchronisation, et un circuit soustracteur configuré pour réagir au troisième événement délivré par le noeud de synchronisation partagé et aux quatrièmes événements respectivement délivrés par les noeuds accumulateurs des deux circuits de cumul en délivrant une paire d'événements ayant entre eux un troisième intervalle de temps représentatif de la différence entre la somme pondérée pour l'un des deux circuits de cumul et la somme pondérée pour l'autre des deux circuits de cumul.
10381 Dans un certain nombre de réalisations du dispositif, l'ensemble de noeuds de traitement comprend au moins un noeud dont la valeur de courant a une composante à
décroissance exponentielle entre deux événements reçus sur au moins une connexion de réglage de composante de courant à décroissance exponentielle ayant un poids respectif. Le noeud récepteur d'une connexion de réglage de composante de courant à
décroissance exponentielle est agencé pour réagir à un événement reçu sur cette connexion en ajoutant le poids de la connexion à la composante à décroissance exponentielle de sa valeur de courant.

[0039] Un autre exemple de dispositif de traitement de données comprend au moins un circuit de calcul de logarithme, qui comprend lui-même :
un noeud accumulateur ;
des première et seconde connexions de réglage de composante constante de courant, la première connexion ayant un poids positif, et la seconde connexion ayant un poids opposé
au poids de la première connexion ;
une troisième connexion de réglage de composante de courant à décroissance exponentielle ; et au moins une quatrième connexion.
[00401 Dans ce circuit de calcul de logarithme, le noeud accumulateur forme le noeud récepteur des première, seconde et troisième connexions et le noeud émetteur de la quatrième connexion. Les première et seconde connexions sont configurées pour adresser au noeud accumulateur des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur d'entrée du circuit de calcul de logarithme. La troisième connexion est configurée pour adresser au noeud accumulateur un troisième événement simultané ou postérieur au second événement, de sorte que le noeud accumulateur fait croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la quatrième connexion, les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec un intervalle de temps représentant un logarithme de la grandeur d'entrée.
[0041] Il peut en outre y avoir dans le dispositif de traitement au moins une connexion de désactivation dont le noeud récepteur est un noeud capable d'annuler sa composante de courant à décroissance exponentielle en réponse à un événement reçu sur la connexion de désactivation.
[0042] Un autre exemple de dispositif de traitement de données comprend au moins un circuit de calcul d'exponentielle, qui comprend lui-même :
un noeud accumulateur ;
une première connexion de réglage de composante de courant à décroissance exponentielle ;
une seconde connexion de désactivation ;
une troisième connexion de réglage de composante constante de courant ; et au moins une quatrième connexion.
10431 Dans ce circuit de calcul d'exponentielle, le noeud accumulateur forme le noeud récepteur des première, seconde et troisième connexions et le noeud émetteur de la quatrième connexion. Les première et seconde connexions sont configurées pour adresser au noeud accumulateur des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur d'entrée du circuit de calcul d'exponentielle. La troisième connexion est configurée pour adresser au noeud accumulateur un troisième événement simultané ou postérieur au second événement, de sorte que le noeud accumulateur fait croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la quatrième connexion, les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec un intervalle de temps représentant une exponentielle de la grandeur d'entrée.
[0044] Un autre exemple de dispositif de traitement de données comprend au moins un circuit multiplieur, qui comprend lui-même :
des premier, second et troisième noeuds accumulateurs ;
un noeud de synchronisation ;
des première, seconde, troisième, quatrième et cinquième connexions de réglage de composante constante de courant, les première, troisième et cinquième connexions ayant un poids positif, et les seconde et quatrième connexions ayant un poids opposé au poids des première, seconde et cinquième connexions ;
des sixième, septième et huitième connexions de réglage de composante de courant à
décroissance exponentielle ;
une neuvième connexion de désactivation ; et au moins une dixième connexion.
[()045 I Dans ce circuit multiplieur, le premier noeud accumulateur forme le noeud récepteur des première, seconde et sixième connexions et le noeud émetteur de la septième connexion, le second noeud accumulateur forme le noeud récepteur des troisième, quatrième et septième connexions et le noeud émetteur des cinquième et neuvième connexions, le troisième noeud accumulateur forme le noeud récepteur des cinquième, huitième et neuvième connexions et le noeud émetteur de la dixième connexion, et le noeud de synchronisation forme le noeud émetteur des sixième et huitième connexions. Les première et seconde connexions sont configurées pour adresser au premier noeud accumulateur des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant un premier opérande du circuit multiplieur. Les troisième et quatrième connexions sont configurées pour adresser au second noeud accumulateur des troisième et quatrième événements respectifs ayant entre eux un second intervalle de temps en relation avec un intervalle de temps représentant un second opérande du circuit multiplieur. Le noeud de synchronisation est configuré pour délivrer un cinquième événement sur les sixième et huitième connexions une fois que les premier, second, troisième et quatrième événements ont été reçus. De ce fait, le premier noeud accumulateur fait croître sa valeur de potentiel jusqu'à délivrance d'un sixième événement sur la septième connexion puis, en réponse au sixième événement, le second noeud accumulateur fait croître sa valeur de potentiel jusqu'à délivrance d'un septième événement sur les cinquième et neuvième connexions. En réponse à ce septième événement, le troisième noeud accumulateur fait croître sa valeur de potentiel jusqu'à délivrance d'un huitième événement sur la dixième connexion, les septième et huitième événements ayant entre eux un troisième intervalle de temps en relation avec un intervalle de temps représentant le produit des premier et second opérandes.
[00461 Une logique de détection de signe peut être associée au circuit multiplieur pour détecter les signes respectifs des premier et second opérandes et faire délivrer deux événements ayant entre eux l'intervalle de temps représentant le produit des premier et second opérandes sur l'une ou l'autre de deux sorties du circuit multiplieur en fonction des signes détectés.

Dans une réalisation typique du dispositif de traitement, chaque connexion est associée à un paramètre de retard, pour signaler au noeud récepteur de cette connexion d'effectuer un changement d'état avec, par rapport à la réception d'un événement sur la connexion, un retard indiqué par ledit paramètre.
[048]
L'intervalle de temps At entre deux événements représentant une grandeur de valeur absolue x peut être, en particulier, de la forme At =
X.Tõd, où Tmin et Tõd sont des paramètres temporels prédéfinis. Les grandeurs représentées par des intervalles de temps ont par exemple des valeurs absolues x comprises entre 0 et 1.
[00491 Une échelle logarithmique plutôt que linéaire de At en fonction de x peut également convenir à certaines applications. D'autres échelles encore peuvent être utilisées.
10501 Le dispositif de traitement peut avoir des agencements spéciaux pour manipuler des grandeurs signées. Il peut ainsi comprendre, pour une grandeur d'entrée :
une première entrée comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la première entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps représentant une valeur positive de la grandeur d'entrée ; et une seconde entrée comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la seconde entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps représentant une valeur négative de la grandeur d'entrée.
10511 Pour une grandeur de sortie, le dispositif de traitement peut comprendre :
une première sortie comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la première sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps représentant une valeur positive de ladite grandeur de sortie ; et une seconde sortie comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la seconde sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps représentant une valeur négative de ladite grandeur de sortie.
[00521 Dans une mise en oeuvre du dispositif de traitement, l'ensemble de noeuds de traitement est sous la forme d'au moins un réseau programmable, les noeuds du réseau ayant un modèle de comportement commun en fonction des événements reçus. Ce dispositif comprend en outre une logique de programmation pour régler des poids et des paramètres de retard des connexions entre les noeuds du réseau en fonction d'un programme de calcul, et une unité de commande pour fournir des grandeurs d'entrée au réseau et récupérer des grandeurs de sortie calculées conformément au programme.
[0053] D'autres particularités et avantages de la présente invention apparaîtront dans la description ci-après, en référence aux dessins annexés, dans lesquels :
- la figure 1 est un schéma d'un circuit de traitement produisant la représentation d'une valeur constante sur demande, selon un mode de réalisation de l'invention ;
- la figure 2 est un schéma d'un dispositif de mémoire inverseuse selon un mode de réalisation de l'invention ;

- la figure 3 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de mémoire inverseuse selon la figure 2 ;
- la figure 4 est un schéma d'un dispositif de mémoire selon un mode de réalisation de l' invention ;
- la figure 5 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de mémoire selon la figure 4;
- la figure 6 est un schéma d'un dispositif de mémoire signée selon un mode de réalisation de l'invention ;
- les figures 7(a) et 7(b) sont des diagrammes montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de mémoire signée selon la figure 6 lorsqu'il lui est présenté différentes valeurs d'entrée ;
- la figure 8 est un schéma d'un dispositif de synchronisation selon un mode de réalisation de l'invention ;
- la figure 9 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de synchronisation selon la figure 8 ;
- la figure 10 est un schéma d'un dispositif de synchronisation selon un autre mode de réalisation de l'invention ;
- la figure 11 est un schéma d'un dispositif de calcul de minimum selon un mode de réalisation de l'invention ;
- la figure 12 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de calcul de minimum selon la figure 11;
- la figure 13 est un schéma d'un dispositif de calcul de maximum selon un mode de réalisation de l'invention ;
- la figure 14 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de calcul de maximum selon la figure 13 ;

- la figure 15 est un schéma d'un dispositif soustracteur selon un mode de réalisation de l' invention ;
- la figure 16 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif soustracteur selon la figure 15;
- la figure 17 est un schéma d'une variante du dispositif soustracteur dans laquelle une différence égale à zéro est prise en compte ;
- la figure 18 est un schéma d'un circuit de cumul selon un mode de réalisation de l' invention ;
- la figure 19 est un schéma d'un dispositif de sommation pondérée selon un mode de réalisation de l'invention ;
- la figure 20 est un schéma d'un dispositif de calcul de combinaison linéaire selon un mode de réalisation de l'invention ;
- la figure 21 est un schéma d'un dispositif de calcul de logarithme selon un mode de réalisation de l'invention ;
- la figure 22 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de calcul de logarithme selon la figure 21;
- la figure 23 est un schéma d'un dispositif de calcul d'exponentielle selon un mode de réalisation de l'invention ;
- la figure 24 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif de calcul d'exponentielle selon la figure 23 ;
- la figure 25 est un schéma d'un dispositif multiplieur selon un mode de réalisation de l' invention ;
- la figure 26 est un diagramme montrant l'évolution dans le temps de valeurs de potentiel et la production d'événements dans un dispositif multiplieur selon la figure 25;
- la figure 27 est un schéma d'un dispositif multiplieur signé selon un mode de réalisation de l'invention ;

- la figure 28 est un schéma d'un dispositif intégrateur selon un mode de réalisation de l'invention ;
- la figure 29 est un schéma d'un dispositif adapté à la résolution d'une équation différentielle du premier ordre dans un exemple de réalisation de l'invention ;
- les figures 30A et 30B sont des graphiques montrant des résultats de simulation du dispositif de la figure 29 ;
- la figure 31 est un schéma d'un dispositif adapté à la résolution d'une équation différentielle du second ordre dans un exemple de réalisation de l'invention ;
- les figures 32A et 32B sont des graphiques montrant des résultats de simulation du dispositif de la figure 31;
- la figure 33 est un schéma d'un dispositif adapté à la résolution d'un système d'équations différentielles non-linéaires à trois variables dans un exemple de réalisation de l'invention ;
- la figure 34 est un graphique montrant des résultats de simulation du dispositif de la figure 33;
- la figure 35 est un schéma d'un dispositif de traitement programmable selon un mode de réalisation de l'invention.

Un dispositif de traitement de données tel que proposé ici procède en représentant les grandeurs traitées non pas comme des amplitudes de signaux électriques ou comme des nombres à codage binaire traités par des circuits logiques, mais comme des intervalles de temps entre événements survenant au sein d'un ensemble de noeuds de traitement ayant des connexions entre eux.
[00551 Dans le cadre du présent exposé, on présente une réalisation du dispositif de traitement de données selon une architecture analogue à celles des réseaux de neurones artificiels. Bien que le dispositif de traitement de données n'ait pas obligatoirement une architecture strictement conforme à ce que des personnes conviennent d'appeler réseaux de neurones , la description qui suit utilise de manière interchangeable les termes noeud et neurone , de même qu'elle utilise le terme synapse pour désigner les connexions entre deux noeuds ou neurones au sein du dispositif.

[00561 Les synapses sont orientées, c'est-à-dire que chaque connexion a un noeud émetteur et un noeud récepteur, et transmet au noeud récepteur des événements générés par le noeud émetteur. Un événement se manifeste typiquement par un pic ( spike ) sur un signal de tension ou de courant délivré le noeud émetteur et influençant le noeud récepteur.
[00571 Comme il est usuel dans le cadre des réseaux de neurones artificiels, chaque connexion ou synapse possède un paramètre de poids w qui mesure l'influence que le noeud émetteur exerce sur le noeud récepteur lors d'un événement.
[00581 Une description du comportement de chaque noeud peut être donnée en faisant référence à une valeur de potentiel V correspondant au potentiel de membrane V
dans le paradigme des réseaux de neurones artificiels. La valeur de potentiel V d'un noeud varie dans le temps en fonction des événements que le noeud reçoit sur ses connexions entrantes.
Lorsque cette valeur de potentiel V atteint ou dépasse un seuil Vt, le noeud émet un événement ("spike") qui est transmis au(x) noeud(s) situé(s) en aval.
[0059] Pour décrire le comportement d'un noeud, ou neurone, dans un exemple de réalisation de l'invention, on peut faire en outre référence à une valeur de courant g ayant une composante g, et éventuellement une composante gf.
[00601 La composante g, est une composante qui reste constante, ou sensiblement constante, entre deux événements que le noeud reçoit sur une synapse particulière qu'on appelle ici connexion de réglage de composante constante de courant.
[0061] La composante gf est une composante à dynamique exponentielle, c'est-à-dire qu'elle varie exponentiellement entre deux événements que le noeud reçoit sur une synapse particulière qu'on appelle ici connexion de réglage de composante de courant à
décroissance exponentielle.
[00621 Un noeud qui prend en compte une composante de courant gf à
décroissance exponentielle peut en outre recevoir des événements d'activation et de désactivation de la composante gf sur une synapse particulière qu'on appelle ici connexion d'activation.
[00631 Dans l'exemple considéré, on peut ainsi exprimer le comportement d'un noeud de traitement de manière générique par un jeu d'équations différentielles :

dV
{Tm.¨dt = ge + gate.gf de = 0 (1) dt dg f _ ¨gf ou:
= t désigne le temps ;
= la composante ge traduit un courant d'entrée constant qui ne peut être changé que par des événements synaptiques ;
= la composante gf traduit un courant d'entrée à dynamique exponentielle ;
= gate est un signal binaire d'activation (gate =1) ou de déactivation (gate = 0) de la composante de courant gf à décroissance exponentielle ;
= Tm est une constante de temps réglant la variation linéaire de la valeur de potentiel V
en fonction de la valeur de courant g = ge + gate.gf;
= et est une constante de temps réglant la dynamique exponentielle de la décroissance de la composante gf.

Dans le système (1), il est considéré qu'il n'y a pas de fuite du potentiel de membrane V, ou que la dynamique de cette fuite est sur une échelle de temps beaucoup plus grande que toutes les autres dynamiques à l'oeuvre dans le dispositif.

Dans ce modèle, on peut distinguer quatre types de synapses influençant le comportement d'un neurone, chaque synapse étant associée un paramètre de poids indiquant un poids synaptique w, positif ou négatif :
= connexions de variation de potentiel, ou V-synapses, qui modifient directement la valeur du potentiel de membrane du neurone : V V + w. En d'autres termes, le noeud récepteur réagit à un événement reçu sur une V-synapse en ajoutant à sa valeur de potentiel V le poids w indiqué par le paramètre de poids ;
= connexions de réglage de composante constante de courant, ou ge-synapses, qui modifient directement le courant d'entrée constant du neurone : ge ge + w. En d'autres termes, le noeud récepteur réagit à un événement reçu sur une ge-synapse en ajoutant à la composante constante de sa valeur de courant le poids w indiqué
par le paramètre de poids ;

= connexions de réglage de composante de courant à décroissance exponentielle, ou grsynapses, qui modifient directement le courant d'entrée à dynamique exponentielle du neurone : gf gf + w. En d'autres termes, le noeud récepteur réagit à un événement reçu sur une gr-synapse en ajoutant à la composante à
décroissance exponentielle de sa valeur de courant le poids w indiqué par le paramètre de poids ;
= et connexions d'activation, ou gate-synapses, qui activent le neurone en fixant gate 1 lorsqu'elles indiquent un poids positif w = 1 et désactivent le neurone en fixant gate 0 lorsqu'elles indiquent un poids négatif w = ¨ 1.

Chaque connexion synaptique est en outre associée à un paramètre de retard qui donne le retard de propagation entre le neurone émetteur et le neurone récepteur.
[0067]
Un neurone déclenche un événement, lorsque sa valeur de potentiel V atteint un seuil Võ soit :
V Vt (2) [0068]
Le déclenchement de l'événement se traduit par un pic ("spike") délivré sur chaque synapse dont le neurone constitue le noeud émetteur et par la réinitialisation de ses variables d'état à:
V Vreset (3) ge 0 (4) gf 4¨O
(5) gate 0 (6) [00691 Sans perte de généralité, on peut se placer dans le cas où
Vreset = 0.
[0070]
Dans la suite, la notation Tsyn désigne le retard de propagation le long d'une synapse standard, et la notation Tne, désigne le temps que met un neurone pour transmettre l'événement en produisant son spike après avoir été déclenché par un événement synaptique d'entrée. T
_ nett peut par exemple refléter le pas de temps d'un simulateur neuronal.
[0071]
On définit un poids standard we comme le poids d'excitation minimal qu'il faut mettre sur une V-synapse pour déclencher un neurone depuis l'état réinitialisé, et un autre poids standard w, comme le poids d'inhibition d'effet contraire :

We = Vt (7) wi = ¨ We (8) [00721 Les grandeurs traitées par le dispositif sont représentées par des intervalles de temps entre événements. Deux événements d'une paire d'événements sont séparés par un intervalle de temps At qui est fonction de la grandeur x codée par cette paire :
At = f(x) (9) où f est une fonction de codage choisie pour la représentation des données dans le dispositif.
[0073]
Les deux événements de la paire codant cette grandeur x peuvent être délivrés par un même neurone n ou par deux neurones distincts.
100741 Quand il s'agit du même neurone n, délivrant des événements à des instants successifs en(i), i = 0, 1, 2, etc., on peut considérer que ce neurone n code un signal u(t) variant dans le temps, dont des valeurs discrètes sont données par:
= ,Vi 2=M P
(10) où fi est l'inverse fonction de codage choisie et i est un nombre pair.
[00751 La fonction de codage f peut être choisie en tenant compte des signaux traités dans un système particulier, et adaptée à la précision requise. La fonction f calcule l'intervalle entre spikes associé à une valeur particulière. Dans la suite de la présente description, on illustre des modes de réalisation du dispositif de traitement utilisant une fonction de codage linéaire :
= f(x) =1,nin + x=Tcod (11) avec x e [0, 1].
[0076] Cette représentation de la fonction f: [0, 1]
[Tmin, Tmax] permet de coder linéairement toute valeur x comprise entre 0 et 1 par un intervalle de temps compris entre Tmin et Tmax = Tmin + Tõd. La valeur de Tmin pourra être nulle. Cependant, il est avantageux qu'elle soit non nulle. En effet, si deux événements représentant une valeur proviennent d'un même neurone ou sont reçus par un même neurone, l'intervalle minimum Tmin> 0 donne à ce neurone le temps de se réinitialiser. D'autre part, un choix Tmin>
0 permet à

certains agencements de neurones de réagir au premier événement d'entrée et de propager un changement d'état avant de recevoir un second événement.
[00771 La forme (11) pour la fonction de codage f n'est pas la seule possible. Un autre choix judicieux est de prendre une fonction logarithmique, permettant de coder une plage de valeurs étendue avec une dynamique convenant à certaines applications, en l'occurrence avec une précision plus faible pour les grandes valeurs.
[0078 I
Pour représenter des valeurs signées, on peut utiliser deux trajets différents, un pour chaque signe. Des valeurs positives seront alors codées au moyen d'un neurone particulier, et des valeurs négatives au moyen d'un autre neurone. De manière arbitraire, le zéro peut être représenté comme une valeur positive ou une valeur négative.
Dans la suite, on le représente comme une valeur positive.

Ainsi, pour prolonger l'exemple de la forme (11), si une grandeur x a une valeur dans l'intervalle [-1, +11, on la représente par un intervalle de temps At =
+ Ixl.T õd entre deux événements propagés sur le trajet associé aux valeurs positives si x 0, et sur le trajet associé aux valeurs négatives si x < O.
[0080]
Le choix (9) ou (11) pour la fonction de codage amène à définir deux poids standards pour les ge-synapses. On définit le poids W acc comme étant la valeur de g, nécessaire pour faire déclencher un neurone, depuis son état réinitialisé, au bout du temps Tmax = Tnõ, + T cod, soit, d'après (1) :
, Tm Wacc = V t - (12) Tmax [008/1 On définit en outre le poids vT7acc comme étant la valeur de g, nécessaire pour faire déclencher un neurone, depuis son état réinitialisé, au bout du temps Tcod, soit :
õ
vT7acc = v t -(13) T cod 10821 Pour les ge-synapses, on peut se donner un autre poids standard g/mm :
Tm gmutt = v õ t= (14) Tf [0083]
Les connexions entre noeuds du dispositif peuvent en outre être associées chacune à un paramètre de retard respectif. Ce paramètre indique un retard avec lequel le noeud récepteur de la connexion effectue un changement d'état, relativement à
l'émission d'un événement sur la connexion. L'indication de valeurs de retards par ces paramètres de retards associés aux synapses permet d'assurer un séquencement adéquat des opérations dans le dispositif de traitement.
[00841 Diverses technologies sont utilisables pour implémenter les noeuds de traitement et leurs interconnexions afin qu'ils se comportent de la manière décrite par les équations (1)-(6), notamment les technologies couramment utilisées dans le domaine bien connu des réseaux de neurones artificiels. Chaque noeud peut par exemple être réalisé à
l'aide d'une technologie analogique, avec des éléments résistifs et capacitifs pour conserver et faire varier un niveau de tension et des éléments à transistors pour délivrer des événements lorsque le niveau de tension dépasse le seuil V,.
[00851 Une autre possibilité est de recourir à des technologies numériques, par exemple à base de FPGA ("field-programmable gate arrays"), qui offrent un moyen commode d'implémenter des neurones artificiels.
[00861 Dans la suite, on présente un certain nombre de dispositifs ou circuits de traitement de données réalisés à l'aide de noeuds de traitement interconnectés. Sur les figures 1, 2, 4, 6, 8, 10, 11, 13, 15, 17, 18, 19, 20, 21, 23, 25, 27, 28, 29, 31 et 33 :
= les connexions entre noeuds représentées en trait plein sont des V-synapses ;
= les connexions représentées en trait interrompu sont des ge-synapses ;
= les connexions représentées en trait mixte sont des grsynapses ;
= les connexions représentées en pointillés sont des gate-synapses ;
= les connexions sont orientées avec un symbole du côté de leurs noeuds récepteurs. Ce symbole est un carré ouvert pour une connexion excitatrice, c'est-à-dire de poids positif, et un carré plein pour une connexion inhibitrice, c'est-à-dire de poids négatif ;
= la paire de paramètres (w; T) figurant à côté d'une connexion indique le poids w et le retard T associé à la connexion. Parfois, seul le poids w est indiqué.
[0087] Certains des noeuds ou neurones représentés sur ces figures sont nommés de manière à évoquer les fonctions résultant de leur agencement au sein du circuit : 'input' pour un neurone d'entrée, 'input +' pour l'entrée d'une valeur positive, 'input¨' pour l'entrée d'une valeur négative, 'output' pour un neurone de sortie, 'output +' pour la sortie d'une valeur positive, 'output ¨' pour la sortie d'une valeur négative, 'recall' pour un neurone servant à récupérer une valeur, 'acc' pour un neurone accumulateur, 'ready' pour un neurone indiquant la disponibilité d'un résultat ou d'une valeur, etc.
[00881 La figure 1 montre un circuit très simple 10 utilisable pour produire la représentation d'une valeur constante x sur demande. Les deux V-synapses 11, 12 de poids égaux ou supérieurs à we (dans l'exemple représenté, les poids sont pris égaux à we) ont chacune un neurone recall 15 comme noeud émetteur et un neurone output 16 comme noeud récepteur. La synapse 11 est configurée avec un paramètre de retard Tsyn, tandis que la synapse 12 est configurée avec un paramètre de retard Tsyn+ f(x).
[0089] L'activation du neurone recall 15 fait déclencher le neurone output 16 aux temps Tsyn et Tsyn+ f(x), de sorte que le circuit 10 délivre deux événements séparés dans le temps de la valeur f(x) représentant la constante x.
A. Mémoires A.1. Mémoire inverseuse [0090] La figure 2 montre un circuit de traitement 18 constituant une mémoire inverseuse.
[00911 Ce dispositif 18 mémorise une valeur analogique x codée par une paire de spikes d'entrée fournis à un neurone input 21 avec un intervalle Atm = f(x), en utilisant une intégration de courant sur la dynamique ge dans un neurone acc 30. La valeur x est mémorisée dans le potentiel de membrane du neurone acc 30 et lue lors de l'activation d'un neurone recall 31, ce qui conduit à faire délivrer une paire d'événements séparés par un intervalle de temps Atõt correspondant à la valeur 1 ¨ x au niveau du neurone output 33, soit Atout = ¨ x).
[0092] Le neurone input 21 appartient à un groupe de noeuds 20 servant à
produire deux événements séparés de f(x) ¨ Tuuu = xicod sur des ge-synapses 26, 27 dirigées vers le neurone acc 30. Ce groupe comprend un neurone first' 23 et un neurone `last' 25. Deux V-synapses excitatrices 22, 24 de retard Tsyn partent du neurone input 21 pour aller respectivement au neurone first 23 et au neurone last 25. La V-synapse 22 présente un poids we, tandis que la V-synapse 24 présente un poids égal à we/2. Le neurone first 23 s' auto-inhibe par une V-synapse 28 de poids w, et de retard Tsyn.
[00931 La ge-synapse excitatrice 26 va du neurone first 23 au neurone acc 30, et présente le poids W acc et un retard Tsyn + Tmm. La ge-synapse inhibitrice 27 va du neurone last 25 au neurone acc 30, et présente le poids ¨Wacc et un retard Tsyn. Une V-synapse excitatrice 32 va du neurone recall 31 au neurone output 33, et présente le poids we et un retard 2Tsyn + Tneu. Une V-synapse excitatrice 34 va du neurone recall 31 au neurone acc 30, et présente le poids W acc et un retard Tsyn. Finalement, une V-synapse excitatrice 35 va du neurone acc 30 au neurone output 33, et présente le poids we et un retard Tsyn.
[00941 Le fonctionnement du dispositif de mémoire inverseuse 18 est illustré par la figure 3.
11)0951 L'émission d'un premier événement (spike) au temps til,u au niveau du neurone input 21 déclenche un événement en sortie du neurone first 23 au bout du temps Tsyn + Tneu, soit au temps thõt sur la figure 3, et fait monter à Vt/2 la valeur de potentiel du neurone last 25. Le neurone first 23 s'inhibe alors via la synapse 28 en donnant la valeur ¨V, à son potentiel de membrane, et il fait démarrer l'accumulation par le neurone acc 30 après Tsyn + Tmm, soit au temps tslt, via la ge-synapse 26.

L'émission du second spike au temps ti2u = t + Tmin + X.Tõd au niveau du neurone input 21 amène le neurone last 25 au potentiel seuil V. Un événement est alors produit au temps t?-õt = ti2u + Tsyn + Tneu sur la ge-synapse inhibitrice 27.
Le second spike provoque également la remise à zéro du potentiel du neurone first 23 via la synapse 22.
L'événement transporté par la ge-synapse 27 en réponse au second spike stoppe l'accumulation réalisée par le neurone acc 30 au temps telnd = tslt X.Tõd.
Tcod 10071 A ce stade, la valeur de potentiel V. x.¨ est stockée dans le neurone acc 30 Tmax pour conserver la valeur x. Son complément 1 ¨ x peut ensuite être lu en activant le neurone recall 31, ce qui a lieu au temps triecou sur la figure 3. Cette activation fait redémarrer le processus d'accumulation dans le neurone acc 30 au temps ts2tet provoque = trlecall Tsyn un événement au temps tolut= -sur le neurone output 33.
tecall rl 2Tsyn 2Tneu L'accumulation se poursuit dans le neurone acc 30 jusqu'au temps te2nd où sa valeur de potentiel atteint le seuil Vt, soit tLci =
Tmax + t ¨ x.Tõd. Un événement est émis sur la - s2t -V-synapse 35 au temps tLci + T
-neu et provoque un autre événement sur le neurone output 33 au temps t -02ut = te2nd Tsyn 2Tneu = trlecaii 2Tsyn 2Tneu Tmin + (1 ¨ X).Tced.
[0098] Finalement, les deux événements délivrés par le neurone output 33 sont séparés par un intervalle de temps ATout = - t 02ut tolut = Tmin + (1 X)=Tcod = f(1 - x) =
[0099] On remarque que la valeur x est mémorisée dans le neurone acc 30 dès réception des deux spikes d'entrée, et immédiatement disponible pour être lue en activant le neurone recall 31.
[001001 Puisque le poids standard we a été défini comme le poids d'excitation minimal qu'il faut mettre sur une V-synapse pour déclencher un neurone depuis l'état réinitialisé, on note que le circuit de traitement 18 de la figure 2 fonctionne similairement si certains poids sont choisis de la manière suivante : la V-synapse 22 présente un poids w égal ou supérieur à
we, la V-synapse 24 présente un poids au moins égal à we/2 et inférieur à Vt, le neurone first 23 s'auto-inhibe par une V-synapse 28 de poids ¨w, la V-synapse excitatrice 32 présente un poids égal ou supérieur à we et la V-synapse excitatrice 35 présente un poids égal ou supérieur à we. Cette remarque s'étend aux circuits de traitement suivants.
A.2. Mémoire [001011 La figure 4 montre un circuit de traitement 40 constituant une mémoire.
[001021 Ce dispositif 40 mémorise une valeur analogique x codée par une paire de spikes d'entrée fournis à un neurone input 21 avec un intervalle Atm= f(x), en utilisant une intégration de courant sur la dynamique ge dans deux neurones acc en cascade 42, 44 pour fournir une sortie non-inverseuse avec une paire d'événements séparés par un intervalle de temps Atout = f(x).
[001031 Le circuit de mémoire 40 a un neurone input 21 pour recevoir la valeur à
mémoriser, une entrée de commande de lecture constituée par un neurone recall 48, un neurone ready 47 indiquant à partir de quand une commande de lecture peut être présentée neurone recall 48, et un neurone output 50 pour restituer la valeur mémorisée.
Toutes les synapses de ce circuit de mémoire présentent le retard Tsyn.

[001041 Le neurone input 21 appartient à un groupe de noeuds 20 semblable à celui décrit en référence à la figure 2, avec un neurone first 23 et un neurone last 25 pour séparer les deux événements produits avec un intervalle de f(x) = Tnõ,+ x.Tõd par le neurone input 21.
[001051 Une ge-synapse 41 va du neurone first 25 au premier neurone acc 42, et présente le poids W acc = Le neurone acc 42 démarre ainsi une accumulation au temps tslt = t +
2. Tsyn + Tneu (figure 5). Une ge-synapse 43 va du neurone last 25 au second neurone acc 44, et présente le poids W acc = Le neurone acc 44 démarre ainsi une accumulation au temps tsiti = ti2n + 2. Tsyn + Tneu. En sortie du neurone acc 42, une autre ge-synapse 45 de poids wacc va au neurone acc 44, et une V-synapse 46 de poids we va au neurone ready 47.
1001061 L'accumulation sur le neurone acc 42 se poursuit jusqu'au temps telnd = tslt +
Tmõ où le potentiel du neurone acc 42 atteint le seuil Võ ce qui provoque l'émission d'un spike au temps t -alcc = teind Tneu sur la ge-synapse 45 (figure 5). Ce spike stoppe l'accumulation sur le neurone acc 44 au temps te1nd2 = talcc Tsyn = tiln 3.
Tsyn 2. Tneu Tmax. Le déclenchement du neurone acc 42 provoque également un événement sur le neurone ready 47 au temps trieddy = talcc Tsyn Tneu.

A ce stade, la valeur de potentiel stockée dans le neurone acc 44 est y, i , f(X)¨Tsyn¨Tneu) - = ltend2 = V. , ce qui permet de conserver la valeur x. La Tmax Tmax lecture peut alors intervenir en activant le neurone recall 48, ce qui a lieu au temps trieedu sur la figure 5.
[00108] L'activation du neurone recall 48 provoque un événement au temps tolut =
tecall Tneu sur le neurone output 50 via la V-synapse 49, et fait redémarrer le rl processus d'accumulation dans le neurone acc 44 via la ge-synapse 51 au temps ts2t2 =
tecall i2 . L'accumulation se poursuit dans le neurone acc 44 jusqu'au temps tend2 OU
Tsyn sa valeur de potentiel atteint le seuil Vt, soit t -e2nd2 = ts2t2 f (X) Tsyn Tneu = Un événement est émis sur la V-synapse 52 au temps t2 = tnd2 Tneu et provoque un autre alcce2 événement sur le neurone output 50 au temps to2ut = talcc2 Tsyn Tneu =
trlecall Tsyn Tneu f (x) =
[001091 Finalement, les deux événements délivrés par le neurone output 50 sont séparés par un intervalle de temps ATout = to2ut tolut = f (x) =

[001101 On remarque que le neurone acc 42 de la figure 4 pourrait être éliminé en configurant des retards Tsyn + Tmax sur certaines synapses. Ceci peut être intéressant pour réduire le nombre de neurones, mais peut poser une difficulté dans une implantation à l'aide de circuits intégrés spécifiques (ASIC) à cause de l'allongement des retards entre neurones voisins.
1001111 On remarque encore que le circuit de mémoire 40 fonctionne pour un codage quelconque de la grandeur x par un intervalle de temps compris entre Tmm et Tma,õ sans être limité à la forme (11) ci-dessus.
A.3. Mémoire signée 11)01 Ig 21 La figure 6 montre un circuit de traitement 60 constituant une mémoire pour une valeur signée, c'est-à-dire comprise entre ¨1 et +1. Sa valeur absolue est codée par un intervalle Atm = f(lx1) entre deux événements qui, si x 0, sont fournis par le neurone input+
61 puis restitués par le neurone output+ 81 et, si x < 0, sont fournis par le neurone input¨ 62 puis restitués par le neurone output¨ 82. Toutes les synapses de ce circuit de mémoire présentent le retard Tsyn.
[001131 Le circuit de mémoire signée 60 repose sur un circuit de mémoire 40 du type représenté sur les figures 4A-B. Les neurones input+ et input¨ 61, 62 sont respectivement reliés au neurone input 21 du circuit 40 par des V-synapses excitatrices 63, 64 de poids we.
Ainsi, celui des deux neurones 61, 62 qui reçoit les deux spikes représentant 1x1 active deux fois le neurone input 21 du circuit 40, de sorte que l'intervalle de temps f(lx1) sera restitué
sur le neurone output 50 du circuit 40.
[NI 14] En outre, les neurones 61, 62 sont respectivement reliés à des neurones ready+
et ready¨ 65, 66 par des V-synapses excitatrices 67, 68 de poids we/4. Le circuit de mémoire signée a un neurone recall 70 relié aux des neurones ready+ et ready¨ 65, 66 par des V-synapses excitatrices respectives 71, 72 de poids we/2. Chacun des neurones ready+ et ready¨ 65, 66 est relié au neurone recall 48 du circuit 40 par des V-synapses excitatrices respectives 73, 74 de poids we. Une V-synapse inhibitrice 75 de poids w1/2 va du neurone ready+ 65 au neurone ready¨ 66, et réciproquement une V-synapse inhibitrice 76 de poids w,/2 va du neurone ready¨ 66 au neurone ready+ 65. Le neurone ready+ 65 est relié au neurone output¨ 82 du circuit de mémoire signée par une V-synapse inhibitrice 77 de poids - 29 -2w,. Le neurone ready- 66 est relié au neurone output+ 81 du circuit de mémoire signée par une V-synapse inhibitrice 78 de poids 2w1.

Le neurone output 50 du circuit 40 est relié aux des neurones output+ et output-81, 82 par des V-synapses excitatrices respectives 79, 80 de poids we.
10K161 La sortie du circuit de mémoire signée 60 comporte un neurone ready 84 qui est le noeud récepteur d'une V-synapse excitatrice 85 de poids we provenant du neurone ready 47 du circuit de mémoire 40.

La figure 7 montre le comportement des neurones du circuit de mémoire signée 60 (a) dans le cas d'une entrée positive et (b) dans le cas d'une entrée négative.
[00118] L'apparition des deux événements aux temps tilu et ti2u = t + f (x) sur l'un des neurones 61, 62 fait monter en deux étapes le potentiel du neurone ready+ 65 ou ready- 66 à la valeur Vt/2. Parallèlement, le circuit de mémoire 40 a son neurone acc 44 qui se charge fax1)-Tsyn ¨Tneu à la valeur V. (1 et son neurone ready 47 qui produit un événement au Tmax temps trleady, comme décrit précédemment.
101191 Une fois que le neurone ready 47 a produit son événement, le neurone recall 70 peut être activé pour lire la donnée signée, ce qui a lieu au temps triecou sur la figure 7.
[00120]
L'activation du neurone recall 70 déclenche le neurone ready+ 65 ou ready- 66 via la V-synapse 70 ou 71, et ce déclenchement remet l'autre neurone ready- 66 ou ready+
65 à zéro via la V-synapse 75 ou 76. L'événement délivré par le neurone ready+
65 ou ready- 66 inhibe le neurone de sortie le neurone output- 82 ou output+ 81 via la V-synapse 77 ou 78 en amenant son potentiel à -2Vt.
[001211 L'événement délivré par le neurone ready+ 65 ou ready- 66 au temps tslign est fourni au via la V-synapse 73 ou 74. Ceci provoque l'émission d'une paire de spikes séparés d'un intervalle de temps égal à f (lx') par le neurone output 50 du circuit 40. Cette paire de spikes communiquée aux neurones output+ et output- 81, 82 via les V-synapses 79, 80 fait déclencher deux fois, aux temps tolut et to2ut = - t olut + f(14, celui des neurones output+ et output- 81, 82 qui correspond au signe de la donnée d'entrée x, et remet à
zéro la valeur de potentiel de l'autre neurone 81, 82.

[001221 On remarque que le circuit de mémoire signée 60 représenté sur la figure 6 n'est pas optimisé en termes de nombre de neurones, puisqu'on peut :
= se dispenser du neurone input 21 du circuit de mémoire 40, en envoyant les V-synapses 63 et 64 directement sur le neuronefirst 23 du circuit 40 représenté sur la figure 4 (à la place de la V-synapse 22), et en ajoutant des V-synapses excitatrices de poids we/2 des neurones input+ et input¨ 61, 62 vers le neurone last 25 (à la place de la V-synapse 24) ;
= se dispenser du neurone output 50 du circuit de mémoire 40, en envoyant la ge-synapse 52 directement sur les neurones output+ et output¨ 81, 82 (à la place des V-synapses 79, 80) ; et = se dispenser du neurone recall 48 du circuit de mémoire 40, en envoyant les V-synapses 73 et 74 directement sur les neurones output+ et output¨ 81, 82 (à
la place de la V-synapse 49), et en ajoutant des ge-synapses excitatrices de poids wacc depuis les neurones ready+ et ready¨ 65, 66 vers le neurone acc 44 du circuit 40 (à
la place de la ge-synapse 51).
A.4. Synchroniseur 00 12$1 La figure 8 montre un circuit de traitement 90 servant à synchroniser les signaux reçus sur un nombre N d'entrées (N -2). Toutes les synapses de ce circuit de synchronisation présentent le retard Tsyn.
[001241 Chaque signal code une valeur xk pour k = 0, 1, N¨ 1 et se présente sous la forme d'une paire de spikes survenant à des instants tiluk et ti2uk = tilnk Atk avec Atk =f(xk) G [Tnun, Tmax]. Ces signaux sont restitués en sortie du circuit 90 de manière synchronisée, c'est-à-dire qu'on retrouve chaque signal codant une valeur xk en sortie sous la forme d'une paire de spikes survenant à des instants tolutk et tLtk =
tolutk + Atk avec ti ti ti uto ut1 = === ut11-1, comme le montre la figure 9 dans un cas où N = 2.
[001251 Le circuit 90 représenté sur la figure 8 comporte N neurones input 91e, ..., et N neurones output 920, 92,v_1. Chaque neurone input 91k est le noeud émetteur d'une V-synapse 93k de poids we dont le noeud récepteur est le neurone input 21k d'un circuit de mémoire respectif 40k. Le neurone output 50k de chaque circuit de mémoire 40k est le noeud émetteur d'une V-synapse 94k de poids we dont le noeud récepteur est le neurone output 92k du circuit de synchronisation 90.

Le circuit de synchronisation 90 comporte un neurone sync 95 qui est le noeud récepteur de N V-synapses excitatrices 960, ..., 96,v_1 de poids we/N dont les noeuds émetteurs sont respectivement les neurones ready 47e, ..., 47N-1 des circuits de mémoire 400, ..., 40N-1. Le circuit 90 comporte encore V-synapses excitatrices 970, ..., 97N-1 de poids we ayant le neurone sync 95 pour noeud émetteur et, respectivement, les neurones recall 480, 48,v_1 des circuits de mémoire 400, ..., 40N_1 pour noeuds récepteurs.

Le neurone sync 95 reçoit les événements produits par les neurones ready 470, ..., 47N_i au fur et à mesure que les N signaux d'entrée sont chargés dans les circuits de mémoire 400, ..., 40N_1, soit aux temps trldyo trldy sur la figure 9. Quand le dernier de ces N événements a été reçu, le neurone sync 95 délivre un événement Tsyn plus tard, c'est-à-dire au temps tslyn, sur la figure 9. Ceci déclenche, via les synapses 970, ..., 97N-1 et les synapses 49 des circuits de mémoire 400, ..., 40N-1, l'émission d'un premier spike synchronisé
(ti ,outo ===== toutN-1) sur chaque neurone output 920, ..., 92N-1. Puis chaque circuit de mémoire 40k produit son second spike respectif au temps to2utk.
[0128]
La présentation du circuit de synchronisation en référence à la figure 8 est donnée pour faciliter l'explication, mais on notera que plusieurs simplifications sont possibles en supprimant certains neurones. Par exemple, les neurones input 910, ..., 91,v_1 et output 920, 92,v_1 sont optionnels, puisque les entrées peuvent être fournies directement par les neurones input 210, ..., 21N-1 des circuits de mémoire 400, ..., 40N-1 et les sorties directement par les neurones output 500, ..., 50N-1 des circuits de mémoire 400, ..., 40N-1.
Les V-synapses 46 des circuits de mémoire 400, ..., 40N_1 peuvent aller directement au neurone sync 95, sans passer par un neurone ready 470, ..., 47N-1. Les synapses 970, ..., 97N_i peuvent attaquer directement les neurones output 500, ..., 50N-1 des circuits de mémoire (remplaçant ainsi leurs synapses 49), et le neurone sync 95 peut également constituer le noeud émetteur des ge-synapses 51 des circuits de mémoire 400, ..., 40N_1 pour commander le redémarrage d'accumulation dans les neurones acc 44 (figures 4 et 5).
[00129]
D'autre part, il est possible de ne sortir qu'un seul événement, au temps tolut = toluto = tolun = === = tolut11-1, en tant que premier événement de toutes les paires formant les signaux de sortie synchronisés. Le neurone sync 95 commande alors directement rémission du premier spike sur une sortie particulière du circuit (qui peut être l'un des neurones output 920, ..., 92N-1 ou un neurone spécifique), puis le second spike de chaque paire en réactivant les neurones acc 44 des circuits de mémoire 400, ..., 40N-1 via une ge-synapse. En d'autres termes, le neurone sync 95 joue le rôle des neurones recall 48 des différents circuits de mémoire.
1001301 Un tel circuit synchroniseur 98 est illustré dans le cas où N =
2 par la figure 10 où, de nouveau, toutes les synapses présentent le retard Tsyn. Le neurone sync 95 est excité
par deux V-synapses 46 de poids W/2 venant directement des neurones acc 42 des deux circuits de mémoire, et il est le noeud émetteur des ge-synapses 51 pour faire redémarrer l'accumulation dans les neurones acc 44. Dans cet exemple, un neurone spécifique 99, noté
'output ref', délivre le premier événement de chacune des deux paires de sortie au temps toi-ut = tslyn, + Tsyn, en réponse à une excitation reçue du neurone sync 95 via la V-synapse 97. le rôle de ce neurone output ref 99 pourrait, en variante, être tenu par l'un des deux neurones output 920, 921.
[001311 Il est à noter que, dans l'exemple de la figure 10, les deux événements codant la valeur d'une grandeur de sortie du circuit 98 sont produits par deux neurones différents (par exemple les neurones 99 et 921 pour la grandeur .x1).
[001321 Plus généralement, dans le cadre de la présente invention, il n'est pas nécessaire que les deux événements d'une paire représentant la valeur d'une grandeur proviennent d'un unique noeud (dans le cas d'une grandeur de sortie) ou soient reçus par un unique noeud (dans le cas d'une grandeur d'entrée).
B. Opérations logiques B.1. Minimum [00133] La figure 11 montre un circuit de traitement 100 qui calcule le minimum entre deux valeurs reçues de façon synchronisée sur deux noeuds d'entrée 101, 102 et délivre ce minimum sur un noeud de sortie 103.
[00134] Outre les neurones input 101, 102 et le neurone output 103, ce circuit 100 comprend deux neurones `smaller' 104, 105. Une V-synapse excitatrice 106, de poids we/2, va du neurone input 101 au neurone smaller 104. Une V-synapse excitatrice 107, de poids we/2, va du neurone input 102 au neurone smaller 105. Une V-synapse excitatrice 108, de poids we/2, va du neurone input 101 au neurone output 103. Une V-synapse excitatrice 109, de poids we/2, va du neurone input 102 au neurone output 103. Une V-synapse excitatrice 110, de poids we/2, va du neurone smaller 104 au neurone output 103. Une V-synapse excitatrice 111, de poids we/2, va du neurone smaller 105 au neurone output 103. Une V-synapse inhibitrice 112, de poids w,/2, va du neurone smaller 104 au neurone smaller 105.
Une V-synapse inhibitrice 113, de poids w,/2, va du neurone smaller 105 au neurone smaller 104. Une V-synapse inhibitrice 114, de poids wõ va du neurone smaller 104 au neurone input 102. Une V-synapse inhibitrice 115, de poids wõ va du neurone smaller 105 au neurone input 101. Toutes les synapses 106-115 représentées sur la figure 11 sont associées à un retard Tsyn, sauf les synapses 108, 109 pour lesquelles le retard est de 2. Tsyn + Tneu.
[001351 L'émission du premier spike sur chaque neurone input 101, 102 au temps t ilu 1 = t ilu 2 (figure 12) amène chacun des neurones smaller 104, 105 à une valeur de potentiel Vt/2 au temps tiln1 + Tsyn, et déclenche un premier événement sur le neurone output 103 au temps toi-ut = tiln1 + 2. Tsyn + 2. Tnen . L'émission du second spike sur le neurone input ayant la plus petite valeur, à savoir le neurone 101 au temps ti2n1 = tiln1 Ati dans l'exemple de la figure 12, amène l'un des neurones smaller à la tension de seuil Vt, à
savoir le neurone 104 dans cet exemple, ce qui entraîne un événement au temps t_s2mailerl =
ti2ni T
- syn Tnen en sortie de ce neurone 104. De ce fait, la synapse 114 inhibe l'autre neurone input 102, qui ne produira pas son second spike au temps ti2n2 = tiln2 At2, et la synapse 112 inhibe l'autre neurone smaller 105 dont le potentiel est remis à
zéro. Le déclenchement du neurone smaller 104 provoque en outre le second déclenchement du neurone output 103 au temps to2ut1= tslmallerl Tneu = ti2n1 + 2. Tsyn + 2.
Tnen.
Tsyn [00136] Finalement, le neurone output 103 restitue bien, entre les événements qu'il délivre, l'intervalle de temps minimum to2ut ¨ t -olut = t i2n t iln 1 = Atientre les événements des deux paires produites par les neurones input 101, 102. Ce minimum est disponible en sortie du circuit 100 dès réception du second événement de la paire qui le représente en entrée.
1O1371 Le circuit de calcul de minimum 100 de la figure 11 fonctionne dès lors que la fonction f telle que At = f(x) est une fonction croissante.

B.2. Maximum 01381 La figure 13 montre un circuit de traitement 120 qui calcule le maximum entre deux valeurs reçues de façon synchronisée sur deux noeuds d'entrée 121, 122 et délivre ce maximum sur un noeud de sortie 123.
101391 Outre les neurones input 121, 122 et le neurone output 123, ce circuit 120 comprend deux neurones 'larger' 124, 125. Une V-synapse excitatrice 126, de poids we/2, va du neurone input 121 au neurone larger 124. Une V-synapse excitatrice 127, de poids we/2, va du neurone input 122 au neurone larger 125. Une V-synapse excitatrice 128, de poids we/2, va du neurone input 121 au neurone output 123. Une V-synapse excitatrice 129, de poids we/2, va du neurone input 122 au neurone output 123. Une V-synapse inhibitrice 132, de poids wi, va du neurone larger 124 au neurone larger 125. Une V-synapse inhibitrice 133, de poids wi, va du neurone larger 125 au neurone larger 124.
Toutes les synapses représentées sur la figure 13 sont associées à un retard Tsyn.
1001401 Les premiers spikes émis de façon synchronisée (tn = tiln2) par les neurones input 121, 122 amènent les neurones larger 124, 125 à une valeur de potentiel Vi2 au temps tiln1 T, et déclenchent un premier événement sur le neurone output 123 au temps syn tolut = tiln1 Tsyn Tneu, (figure 14). L'émission du second spike sur le neurone input ayant la plus petite valeur, à savoir le neurone 121 au temps ti2n, = tiln1 Ati dans l'exemple de la figure 14, amène l'un des neurones larger à la tension de seuil Vt, à savoir le neurone 124 dans cet exemple, ce qui entraîne un événement au temps d _ i_ --Larger2 ' _L
Tsyn Tneu en sortie de ce neurone 124. De ce fait, la synapse 132 inhibe l'autre neurone larger 125 dont le potentiel passe à la valeur ¨Vt/2. Lorsque le second spike est émis par l'autre neurone input 122 au temps t i2n2 = t n2 At2 (avec At2 > Ati), le potentiel du neurone larger 125 est remis à zéro via la synapse 127, et le neurone output 123 est déclenché via la synapse 129 au temps t02ut = ti2n2 Tsyn Tneu.
[001411 Finalement, le neurone output 123 restitue bien, entre les événements qu'il délivre, l'intervalle de temps maximum to2ut ¨ tolut = ti2n2 t2 = At2 entre les événements des deux paires produites par les neurones input 121, 122. Ce maximum est disponible en sortie du circuit 120 dès réception du second événement de la paire qui le représente en entrée.

[001421 Le circuit de calcul de maximum 120 de la figure 13 fonctionne dès lors que la fonction f telle que At = f(x) est une fonction croissante.
C. Opérations linéaires C.1. Soustraction 1001431 La figure 15 montre un circuit de soustraction 140 qui calcule la différence entre deux valeurs xi, x2 reçues de façon synchronisée sur deux noeuds d'entrée 141, 142 et délivre le résultat xi ¨ x2 sur un noeud de sortie 143 s'il est positif et sur un autre noeud de sortie 144 s'il est négatif. On suppose ici que la fonction f telle que Ati =
f(xi) et At2 = f(x2) est une fonction linéaire, comme c'est le cas avec la forme (11).
[001441 Outre les neurones input 141, 142 et les neurones output+ 143 et output¨ 144, le circuit de soustraction 140 comprend deux neurones sync 145, 146 et deux neurones 'ib' 147, 148. Une V-synapse excitatrice 150, de poids we/2, va du neurone input 141 au neurone sync 145. Une V-synapse excitatrice 151, de poids we/2, va du neurone input 142 au neurone sync 146. Trois V-synapses excitatrices 152, 153, 154, chacune de poids ive, vont du neurone sync 145 au neurone output+ 143, au neurone output¨ 144 et au neurone inb 147, respectivement. Trois V-synapses excitatrices 155, 156, 157, chacune de poids ive, vont du neurone sync 146 au neurone output¨ 144, au neurone output+ 143 et au neurone inb 148, respectivement. Une V-synapse inhibitrice 158, de poids wõ va du neurone sync 145 au neurone inb 148. Une V-synapse inhibitrice 159, de poids wõ va du neurone sync 146 au neurone inb 147. Une V-synapse excitatrice 160, de poids we/2, va du neurone output+ 143 au neurone inb 148. Une V-synapse excitatrice 161, de poids we/2, va du neurone output-144 au neurone inb 147. Une V-synapse inhibitrice 162, de poids 2wõ va du neurone inb 147 au neurone output+ 143. Une V-synapse inhibitrice 163, de poids 2wõ va du neurone inb 163 au neurone output¨ 144. Les synapses 150, 151, 154 et 157-163 sont associées à un retard de Tsyn. Les synapses 152 et 155 sont associées à un retard de T,.õ,n+
3. Tsyn +
Les synapses 153 et 156 sont associées à un retard de 3.Tsyn + 2=Tneu.
[00145] Le fonctionnement du circuit de soustraction 140 selon la figure 15 est illustré
par la figure 16 dans le cas où le résultat .xi ¨ x2 est positif. Les choses se passent symétriquement si le résultat est négatif.

[001461 Les premiers spikes émis de façon synchronisée (tilul = tiln2) par les neurones input 141, 142 amènent les neurones sync 145, 146 à la valeur de potentiel Vt/2 au temps tiln1 Tsyn = L'émission du second spike sur le neurone input fournissant la plus petite valeur, à savoir le neurone 142 au temps t i2n 2 = t2 At2 dans l'exemple de la figure 16 où
At2 < Ati, amène l'un des neurones sync à la tension de seuil Vt, à savoir le neurone 146 dans cet exemple, ce qui entraîne un événement au temps t.ync2 = ti2n2 Tsyn Tneu en sortie de ce neurone 146. De ce fait :
= la synapse 159 inhibe le neurone inb 147 dont le potentiel passe à la valeur ¨Vt au temps tnc2 Tsyn = ti2n2 + 2. Tsyn Tneu ;
= la synapse 157 excite le neurone inb 148 qui délivre un événement au temps = ti2u2 + 2. Tsyn + 2. Tneu , lequel événement inhibe à
tiinb2 = t.ync2 Tsyn Tneu son tour, via la synapse 163, le neurone output¨ 144 dont le potentiel passe à
la valeur ¨2Vt au temps ti2n2 + 3. Tsyn + 2. Tneu ;
= la synapse 155 ré-excite ensuite le neurone output¨ 144 dont le potentiel passe à la valeur ¨Vt au temps ti2n2 Tmin + 4. Tsyn + 3. Tneu;
= la synapse 156 excite le neurone output+ 143 qui délivre un événement au temps tolut = µc2 + 3. Tsyn + 3. Tneu = ti2n2 + 4. Tsyn + 4. Tneu, lequel événement excite à son tour le neurone inb 148 dont le potentiel, remis à zéro suite au précédent événement émis au temps tilnb2 , passe à la valeur Vt/2 au temps tolut + Tsyn Tneu = ttin2 + 5. Tsyn + 5. Tneu.
[00147]
Ensuite, l'émission du second spike sur l'autre neurone input 141 au temps t i2n 1 = t in 1 Ati amène l'autre neurone sync 145 à la tension de seuil Vt, ce qui entraîne un événement au temps t = tn + Tsyn Tneu en sortie de ce neurone 145. De ce fait :
i2i = la synapse 158 inhibe le neurone inb 148 dont le potentiel passe à la valeur ¨Vt/2 au temps tslyncl Tsyn = t i2n1 + 2. Tsyn Tneu;
= la synapse 154 excite le neurone inb 147 qui remet à zéro son potentiel de membrane ;
= la synapse 152 excite le neurone output+ 143 qui délivre un événement au temps t o2 ut= tslyncl Tmin + 3. Tsyn + 3. Tneu = ti2n1 Tmin + 4. Tsyn + 4. Tneu , lequel événement excite à son tour le neurone inb 148 dont le potentiel est remis à
zéro au temps to2ut + T
- syn Tneu = ti2n1 Tmin + 5. Tsyn + 5. Tneu.
= la synapse 153 excite le neurone output¨ 144 dont le potentiel est remis à zéro au temps tslynci + 3. Tsyn + 2. Tneu = t i2ni + 4. Tsyn + 3. Tneu.
[001481 Les deux événements excitateurs reçus par le neurone output¨ 144, aux temps ti272 + Tmin + 4. Tsyn + 3. T
et ti2n1 + 4. Tsyn + 3. Tneu sont bien postérieurs à
l'événement inhibiteur reçu au temps ti2n2 + 3. Tsyn + 2. Tneu. Il en résulte que ce neurone 144 n'émet aucun événement lorsque At2 < Ati, de sorte que le signe du résultat est convenablement signalé.
[001491 Finalement, le neurone output+ 143 délivre deux événements ayant entre eux un intervalle de temps Atõt entre les événements des deux paires produites par les neurones input 141, 142, avec :
Atout = (ti2n1 + Tmin + 4. Tsyn + 4. Tneu) ¨ (ti2n2 + 4. Tsyn + 4. Tneu) = Ati ¨ At2 + Tnun = Tnuri (Xi ¨ X2).Tc0d (15) [001501 On obtient bien, sur le neurone output de bon signe en sortie du circuit soustracteur 140, deux événements ayant entre eux l'intervalle de temps Atõt =
fixi ¨ x2). Ce résultat est disponible en sortie du circuit dès réception du second événement de la paire d'entrée ayant la plus grande valeur absolue.
[0151] Lorsque deux valeurs égales lui sont présentées en entrée, le circuit soustracteur 140 représenté sur la figure 15 active les deux trajets parallèles et le résultat est délivré sur les deux neurones output+ 143 et output¨ 144, les neurones inb 147, 148 n'ayant pas le temps de sélectionner un trajet gagnant. Pour éviter cela, il est possible d'ajouter au circuit soustracteur un neurone zero 171 et des V-synapses rapides 172-178 pour former un circuit soustracteur 170 selon la figure 17.
[001521 Sur la figure 17, les références numériques des neurones et synapses agencés de la même manière que sur la figure 15 ne sont pas reportées. Le neurone zero 171 est le noeud récepteur de deux V-synapses excitatrices 172, 173 de poids we/2 et de retard Tneu, l'une venant du neurone sync 145 et l'autre du neurone sync 146. Il est d'autre part le noeud récepteur de deux V-synapses inhibitrices 174, 175 de poids w1/2 et de retard 2. Tõ,, l'une venant du neurone sync 145 et l'autre du neurone sync 146. Le neurone zero 171 s'auto-excite par une V-synapse 176 de poids we et de retard Tneu. Il est d'autre part le noeud émetteur de deux V-synapses inhibitrices de retard Tneu, l'une 177 de poids w, dirigée vers le neurone inb 148 et l'autre 178 de poids 2w1 dirigée vers le neurone output¨
144.
[001531 Le neurone zero 171 agit comme un détecteur de coïncidence entre les événements délivrés par les neurones sync 145, 146. Étant donné que ces deux neurones ne délivrent des événements qu'au moment du second spike de codage de leur entrée associée, détecter cette coïncidence temporelle est équivalent à détecter l'égalité des deux valeurs d'entrée, dès lors que celles-ci sont correctement synchronisées. Le neurone zero 171 ne produit un événement que s'il reçoit deux événements séparés par un intervalle de temps inférieur à ne, en provenance des neurones sync 145, 146. Dans ce cas, il inhibe directement le neurone output¨ 144 via la synapse 178, et désactive le neurone inb 148 via la synapse 177.
[001541 En conséquence, deux valeurs d'entrée égales fournies au circuit soustracteur de la figure 17 donnent lieu à deux événements séparés par un intervalle de temps égal à Tmm, c'est-à-dire codant une différence nulle, en sortie du neurone output+ 143, et à aucun événement sur le neurone output¨ 144. Si les valeurs d'entrée ne sont pas égales, le neurone zero 171 n'est pas activé et le soustracteur fonctionne de la même manière que celui de la figure 15.
C.2. Cumul La figure 18 montre un circuit 180 de cumul de grandeurs d'entrée positives avec des pondérations. Son objet est de charger dans un neurone acc 184 une valeur de potentiel en rapport avec une somme pondérée :
s = ak.xk (16) où ao, aN_i sont des coefficients de pondération positifs ou nuls et les grandeurs d'entrée xo, xi, ..., xN-1 sont positives ou nulles.

Pour chaque valeur d'entrée xk (0 < k < N), le circuit 180 comporte un neurone input 181k et input¨ 182k faisant chacun partie d'un groupe respectif 20 de neurones agencés de la même manière que dans le groupe 20 décrit précédemment en référence à la figure 2.

Les connexions sortantes des neurones first et last de ces N groupes de neurones 20 sont configurées en fonction des coefficients ak de la somme pondérée à
calculer.

Le neurone first relié au neurone input 181k (0 < k <N) est le noeud émetteur d'une ge-synapse excitatrice 182k de poids ni, acc et de retard Tmin + Tsyn. Le neurone last relié au neurone input 181k est le noeud émetteur d'une ge-synapse inhibitrice 183k de poids ¨ ak.W acc et de retard Tsyn.
[()01591 Le neurone acc 184 accumule les termes ak.xk. Ainsi, pour chaque entrée k, le neurone acc 187 est le noeud récepteur de la ge-synapse excitatrice 182k et de la ge-synapse inhibitrice 183k.
[001601 Le circuit 180 comporte en outre un neurone sync 185 qui est le noeud récepteur de N V-synapses, chacune de poids we/N et de retard Tsyn, respectivement issues des neurones last reliés aux N neurones input 181k (0 < k <N). Le neurone sync 185 est le noeud émetteur d'une ge-synapse excitatrice 186 de poids W acc et de retard Tsyn, dont le noeud récepteur est le neurone acc 184.
[001611 Pour chaque entrée présentant deux spikes séparés de Atk = Tniin + Xk.T cod sur le neurone input 181k, le neurone acc 184 intègre la quantité ak.17,IT,õ sur une durée Atk ¨ Tmin = Xk=T cod=
[001621 Une fois que tous les seconds spikes des k signaux d'entrée ont été reçus, le neurone sync 185 est déclenché et excite le neurone acc 184 via la ge-synapse 186. Le potentiel du neurone acc 184 continue à croître pendant une durée résiduelle égale à
Tmax ak=xk.Tõd. A ce moment-là, le seuil V, est atteint par le neurone acc 184 qui déclenche un événement.
[NI 631 Le retard de cet événement par rapport à celui qu'a délivré le neurone sync est de Tmax ¨ ak.xk.Tõd = f (1 ¨
ak.xk) = f (1 ¨s). La somme pondérées n'est rendue accessible par le circuit 180 que dans sa forme inversée (1 ¨ s).
[1)0164]
Le circuit 180 fonctionne de la manière qui vient d'être décrite à condition qu'on ait Tõd.EIN,121- ak. xk < Tmax. On peut normaliser les coefficients ak pour que cette condition soit remplie pour toutes les valeurs possibles des xk, c'est-à-dire de façon que UN=-1 c1=-11 ak <TT' 'cLx=
T cod C.3. Sommation pondérée [00165]
Un circuit de sommation pondérée 190 peut avoir la structure représentée sur la figure 19.
[001661 Pour obtenir la représentation de la somme pondérée s selon (16), un circuit de cumul pondéré 180 du type de celui décrit en référence à la figure 18 est associé à un autre neurone acc 188 et à un neurone output 189.
[001671 Le neurone acc 188 est le noeud récepteur d'une ge-synapse excitatrice 191 de poids W acc et de retard Tsyn, et le noeud émetteur d'une V-synapse excitatrice 192 de poids ive et de retard Tmin + Tsyn. Le neurone output 189 est également le noeud récepteur d'une V-synapse excitatrice 193 de poids ive et de retard Tsyn.
[001681 L'accumulation à dynamique linéaire démarre sur le neurone acc 188 au même moment qu'elle redémarre sur le neurone acc 184 du circuit 180, les deux neurones acc 184, 188 étant excités sur les ge-synapses 186, 191 par le même événement provenant du neurone sync 185. Leurs durées résiduelles d'accumulation, jusqu'à atteindre le seuil V, sont respectivement de Tmax -ak. xk.T co d et de T,. Du fait que la synapse 192 présente un retard relatif de Tnõ,, les deux événements déclenchés sur le neurone output 189 ont entre eux l'intervalle de temps Tmin + ak=xic=Tcod = f (s) [001691 La somme pondérée attendue est bien représentée en sortie du circuit 190.
Quand N = 2 et ao = ai= 1/2, ce circuit 190 se ramène à un simple circuit additionneur, avec un facteur d'échelle 1/2 pour éviter les débordements dans le neurone acc 184.
C.4. Combinaison linéaire [001701 Le cas plus général de combinaison linéaire s'exprime aussi par l'équation (16) ci-dessus, mais les coefficients ak peuvent être positifs ou négatifs, de même que les grandeurs d'entrée xk. Sans perte de généralité, on ordonne les coefficients et grandeurs d'entrée de sorte que les coefficients ao, am_i soient positifs ou nuls et les coefficients am,i, am+2, aN_i soient négatifs (N 2, M 0, N - M 0).

[001711 Pour prendre en compte les valeurs positives ou négatives, le circuit de calcul de combinaison linéaire 200 représenté sur la figure 20 comporte deux circuits de cumul 180A, 180B du type de celui décrit en référence à la figure 18.
[001721 Les neurones input 181k du circuit de cumul 180A sont respectivement associés aux coefficients ak pour 0 < k<M et aux coefficients inversés ¨ak pour M<k<N.
Ces neurones input 181k pour 0 < k<M reçoivent une paire de spikes représentant xk quand xk 0 et forment donc des neurones de type input+ pour ces grandeurs x0, ..., xm_i. Les neurones input 181k du circuit 180A pour M<k<N reçoivent une paire de spikes représentant xk quand xk < 0 et forment donc des neurones de type input¨ pour ces grandeurs xm, = = 47_1.
1001731 Les neurones input 181k du circuit de cumul pondéré 180B sont respectivement associés aux coefficients inversés ¨ak pour 0 < k<M et aux coefficients ak pour M<k<N.
Ces neurones input 181k pour 0 < k<M reçoivent une paire de spikes représentant xk quand xk < 0 et forment donc des neurones de type input¨ pour ces grandeurs x0, ..., xm_i. Les neurones input 181k du circuit 180B pour M<k<N reçoivent une paire de spikes représentant xk quand xk 0 et forment donc des neurones de type input+ pour ces grandeurs xm, XN-1 =
[001741 Les deux circuits de cumul 180A, 180B partagent leur neurone sync 185 qui est ainsi le noeud récepteur de 2N V-synapses, chacune de poids we/N et de retard Tsyn, en provenance des neurones last couplés aux 2N neurones input 181k. Le neurone sync 185 du circuit de calcul de combinaison linéaire 200 est donc déclenché une fois que les N
grandeurs d'entrée xo, xN_i, positives ou négatives, ont été reçues sur les neurones 181k.
1001751 Un temps LITA = Tmax Eak.xk>0Iak= Xkl=Tcod = f(1 ¨
Eak.xk>0Iak=Xk i) s'écoule entre les événements respectivement délivrés par le neurone sync 185 et le neurone acc 184 du circuit 180A.
[001761 Un temps ATB = Tmax Eak.xk<Olak= Xkl=Tcod = f(1 ¨ Eak.xk<Olak=
Xk i) s'écoule entre les événements respectivement délivrés par le neurone sync 185 et le neurone acc 184 du circuit 180B.
[001771 Un circuit soustracteur 170 qui peut être du genre de celui représenté sur la figure 17 se charge ensuite de combiner les intervalles de temps LITA et LITB
pour produire la représentation de Is I = Eak.xk>olak=xkl Eak.xk<Olak=xkl sur une sortie indicative du signe de s. Le circuit de calcul de combinaison linéaire 200 de la figure 20 comporte pour cela deux V-synapses excitatrices 198, 199, de poids we et de retard Tmin +
Tsyn, dirigées vers les neurones input 141, 142 du circuit soustracteur 170. Par ailleurs, une V-synapse excitatrice 201 de poids we et de retard Tsyn va du neurone acc 184 du circuit 180A au neurone input 141 du circuit soustracteur 170. Une V-synapse excitatrice 202 de poids we et de retard Tsyn va du neurone acc 184 du circuit 180B à l'autre neurone input 142 du circuit soustracteur 170.
[001781 Les neurones output¨ 144 et output+ 143 du circuit soustracteur 170 sont respectivement reliés, via des V-synapses excitatrices 205, 206 de poids we et de retard Tsyn, à deux autres neurones output+ 203 et output¨ 204 qui constituent les sorties du circuit de calcul de combinaison linéaire 200.
[001791 Celui de ces deux neurones qui est déclenché indique le signe du résultat s de la combinaison linéaire. Il délivre une paire d'événements séparés par l'intervalle de temps Atõt = Tmin + LITA ¨ ATB = f (I Eak.xk>01ak=xkl Eak.xk<Olak=xklI) = f (1 s 1) =
love La disponibilité de ce résultat est indiquée à l'extérieur par un neurone `start' 207 recevant deux V-synapses excitatrices 208, 209, de poids we et de retard Tsyn, en provenance des neurones output+ 143 et output¨ 144 du circuit soustracteur 170. Le neurone start 207 s'auto-inhibe au moyen d'une V-synapse 210, de poids wi et de retard Tsyn.
Le neurone start 204 délivre un spike simultanément au premier spike du neurone output+
203 ou output¨ 204 activé.
[001811 On peut normaliser les coefficients ak pour que les conditions Eakmk>olak.xkl.Tcod < Tmax et Eakmk<olak.xkl.Tcod < Tmax soient remplies pour toutes les valeurs possibles des xk, c'est-à-dire de façon que I< TraxT , afin que le circuit de T cod calcul de combinaison linéaire 200 fonctionne comme décrit ci-dessus. Il faut alors tenir compte du facteur de normalisation dans le résultat.
D. Opérations non-linéaires Logarithme [001821 La figure 21 montre un circuit 210 de calcul du logarithme népérien d'un nombre x E 10, 1] dont une représentation codée est produite par un neurone input 211 sous forme de deux événements survenant à des temps til:n et ti2n =
+ At (figure 22) avec At = f(x) = Tmin + x=Tcod=
[001831 Le neurone input 211 appartient à un groupe de noeuds 20 semblable à celui décrit en référence à la figure 2. Le neurone first 213 de ce groupe 20 est le noeud émetteur d'une ge-synapse excitatrice 212 de poids 1T7õ, et de retard Tmin + Tsyn, tandis que le neurone last 215 est le noeud émetteur d'une ge-synapse inhibitrice 214 de poids-1/T7õ, et de retard Tsyn. Les deux ge-synapses 212, 214 ont un même neurone acc 216 comme noeud récepteur.
Du neurone last 215 au neurone acc 216, il y a aussi une grsynapse 217 de poids gmult Tm = Vt.¨ et de retard Tsyn, et une gate-synapse 218 de poids 1 et de retard Tsyn.
T f 1001841 Le circuit 210 comporte en outre un neurone output 220 qui est le noeud récepteur d'une V-synapse excitatrice 221 de poids we et de retard 2.Tsyn provenant du neurone last 215, et d'une V-synapse excitatrice 222 de poids we et de retard Tmin + Tsyn provenant du neurone acc 216.
[00185] Le fonctionnement du circuit de calcul de logarithme 210 selon la figure 21 est illustré par la figure 22.
[001861 L'émission du premier spike au temps tiln au niveau du neurone input 211 déclenche un événement en sortie du neurone first 213 au temps t).-irst = tiln + Tsyn + Tneu.
Le neurone first 213 fait démarrer l'accumulation par le neurone acc 216 au temps tslt = t iln + Tmin + 2. Tsyn + Tneu via la ge-synapse 212.
[001871 L'émission du second spike au temps ti2n = tiln + Tmin X.Tõd au niveau du neurone input 211 amène le neurone last 215 à délivrer un événement au temps tiast = ti2n Tsyn Tneu = Cet événement transporté par la ge-synapse 214 stoppe l'accumulation réalisée par le neurone acc 216 au temps t -elna = tiast Tsyn = tslt + X. Tcod A ce moment, la valeur de potentiel V,x est stockée dans le neurone acc 216.
10K881 Par l'intermédiaire des synapses 217 et 218, le neurone last 215 active en outre la dynamique exponentielle sur le neurone acc 216 au même instant telnd via la grsynapse 217 et la gam-synapse 218. Il est à noter qu'en variante, l'événement transporté par la grsynapse 217 pourrait aussi arriver plus tard au neurone acc 216 s'il est souhaité de mémoriser dans celui-ci la valeur de potentiel Vt.x pendant que d'autres opérations interviennent dans le dispositif.
[001891 Après activation par les synapses 217 et 218, la composante gf du neurone acc 216 évolue selon :
t-t1 _ end Tm g f (t) = Vt.¨ . e V
(17) Tf et son potentiel de membrane selon :
t-tlnd) V(t) = Vt. -( e 1 + X ¨ e V (18) Ce potentiel V(t) atteint le seuil Vt et provoque un événement sur la V-synapse 222 au temps talc, = teind ¨ -c f . log (x) .
[001911 Un premier événement est déclenché sur le neurone output 220 du fait de la V-synapse 221 au temps tolut = tLst + 2Tsyn + Tneu = teind + Tsyn + Tneu. Le second événement déclenché par la synapse 222 intervient au temps to2ut = tale, +
Tmin + Tsyn +
Tneu = tolut + Tmin ¨ -c f . log (x) .
[001921 Finalement, les deux événements délivrés par le neurone output 220 sont séparés par un intervalle de temps ATout= t 02ut ¨ tolut = Tmin ¨ -c f . log (x) = f (¨ .1- . log (x)) .
T cod [001931 On obtient bien en sortie la représentation d'un nombre proportionnel au logarithme népérien log(x) de la valeur d'entrée x. Comme 0 <x < 1, le logarithme log(x) est négatif.
_T cod [001941 Si on note A = e V , le circuit 210 de la figure 21 délivre la représentation de logA(x) lorsqu'il reçoit la représentation d'un nombre réel x tel que A < x <
1, où logA(.) désigne l'opération logarithme de base A. En admettant que, dans la forme (11), l'intervalle de temps entre les deux événements délivrés par le neurone output 220 puisse dépasser Tma,õ
le circuit 210 délivre la représentation de logA(x) pour tout nombre x tel que 0 <x < 1.
D.2. Exponentielle [001951 La figure 23 montre un circuit 230 de calcul d'exponentielle d'un nombre x E [0, 1] dont une représentation codée est produite par un neurone input 231 sous forme de deux événements survenant à des temps til:n et ti2n =
+ At (figure 24) avec At = f(x)= Tmin + x=Tcod=
[001961 Le neurone input 231 appartient à un groupe de noeuds 20 semblable à celui décrit en référence à la figure 2. Le neurone first 233 de ce groupe 20 est le noeud émetteur d'une gr-synapse 232 de poids gmuit et de retard Trnm+ Tsyn, ainsi que d'une gate-synapse excitatrice 234 de poids 1 et de retard Tnõ, + Tsyn. Le neurone last 235 du groupe 20 est le noeud émetteur d'une gate-synapse inhibitrice 236 de poids ¨1 et de retard Tsyn, ainsi que d'une ge-synapse excitatrice 237 de poids 1T7õ, et de retard Tsyn. Les synapses ont un même neurone acc 238 pour noeud récepteur.
[001971 Le circuit 230 comporte en outre un neurone output 240 qui est le noeud récepteur d'une V-synapse excitatrice 241 de poids we et de retard 2.Tsyn provenant du neurone last 235, et d'une V-synapse excitatrice 242 de poids we et de retard Trnm+ Tsyn provenant du neurone acc 238.
[001981 Le fonctionnement du circuit de calcul d'exponentielle 230 selon la figure 23 est illustré par la figure 24.

L'émission du premier spike au temps til:n au niveau du neurone input 231 déclenche un événement en sortie du neurone first 233 au temps thõt = tiln +
Tsyn + Tneu=
Le neurone first 233 fait démarrer une accumulation à dynamique exponentielle sur le neurone acc 238 au temps tslt = tiln + Tmin + 2. Tsyn Tneu via la grsynapse 232 et la gate-synapse 234.
[002001 La composante gf du neurone acc 238 évolue alors selon :
t-t _ st g f(t) = Vt.¨ . e V
(19) Tf et son potentiel de membrane selon :
t-t V (t) = Vt. (1 ¨ e (20) 10201 I L'émission du second spike au temps ti2u = t + Tmin + X.Tõd au niveau du neurone input 231 amène le neurone last 235 à délivrer un événement au temps qast =
ti2u + Tsyn + Tnen. Cet événement transporté par la gate-synapse 236 stoppe l'accumulation à dynamique exponentielle réalisée par le neurone acc 238 au temps t -eind = q-ast Tsyn =
qi X.Tõd. A ce moment, la valeur de potentiel Vt.(1 ¨ Ax) est stockée dans le neurone acc _Tcod 238, où, comme précédemment, A = e Tf . Par l'intermédiaire de la ge-synapse 237, le neurone last 235 active en outre la dynamique linéaire de poids vT7oõ sur le neurone acc 238 au même instant telnd.
[002021 Le potentiel de membrane du neurone 238 évolue alors selon :
V(t) = Vt. (1 ¨ Axt¨tend (21) Tcod 1002031 Ce potentiel V(t) atteint le seuil Vt et provoque un événement sur la V-synapse 222 au temps talc, = teind Ax =Tcod=
[002041 Un premier événement est déclenché sur le neurone output 240 du fait de la V-synapse 241 au temps t -olut = q-ast 2Tsyn Tneu = teind Tsyn + Tneu . Le second événement déclenché par la synapse 242 intervient au temps t -02ut = tolõ + Tmin Tsyn Tneu = tolut Tmin Ax =Tcod=
1002051 Finalement, les deux événements délivrés par le neurone output 240 sont séparés par un intervalle de temps de ATout = - t 02ut tolut = Tmin Ax.Tcdd = f (Ax).
1002061 Le circuit 230 de la figure 23 délivre donc la représentation de Ax lorsqu'il reçoit la représentation d'un nombre x compris entre 0 et 1. Ce circuit peut admettre des valeurs d'entrée x supérieures à 1 (At > Tmax) et délivrer encore la représentation de Ax sur son neurone output 240.
[00207] Le circuit 230 de la figure 23 réalise l'inversion de l'opération effectuée par le circuit 210 de la figure 21.
[002081 On peut tirer parti de cela pour implémenter divers calculs non-linéaires à l'aide d'opérations simples entre des circuits de calcul de logarithme et de calcul d'exponentielle.
Par exemple, la somme de deux logarithmes permet d'implémenter une multiplication, leur soustraction permet d'implémenter une division, la somme de n fois le logarithme permet d'élever un nombre x à une puissance entière n, etc.
D.3. Multiplication 1002091 La figure 25 montre un circuit multiplieur 250 qui calcule le produit de deux valeurs xi, x2 dont des représentations codées sont respectivement produites par deux neurones input 2511, 2512 sous forme de deux paires d'événements survenant à
des temps tn et t = tiln1 Ati pour la valeur xi et à des temps tiln2 et ti2n2 =
tiln2 At2 pour la valeur x2 (figure 25) avec Ati =f(xi) = Tni,, + xi.Tõd et At2 =f(x2) = Tinin +
x2=Tc0d=
10W2101 Chaque neurone input 251k (k =1 ou 2) appartient à un groupe de noeuds 20k semblable à celui décrit en référence à la figure 2. Le neurone first 253k de ce groupe 20k est le noeud émetteur d'une ge-synapse excitatrice 252k de poids 1T7õ, et de retard Trnm+ Tsyn, tandis que le neurone last 255k est le noeud émetteur d'une ge-synapse inhibitrice 254k de poids-1/T7õ, et de retard Tsyn. Les deux ge-synapses 252k, 254k issues du groupe de noeuds 20k ont comme noeud récepteur un même neurone acc 256k qui joue un rôle similaire au neurone acc 216 de la figure 21.
[002111 Le circuit 250 comporte en outre un neurone sync 260 qui est le noeud récepteur de deux V-synapses excitatrices 2611, 2612 de poids we/2 et de retard Tsyn provenant respectivement des neurones last 2551, 2552. Une grsynapse 262 de poids gmuit et de retard Tsyn et une gate-synapse excitatrice 264 de poids 1 et de retard Tsyn vont du neurone sync 260 au neurone acc 2561.
[02 g 2] Une grsynapse 265 de poids gmutt et de retard Tsyn et une gate-synapse excitatrice 266 de poids 1 et de retard Tsyn vont du neurone acc 2561 au neurone acc 2562.
[002131 Le circuit 250 comporte un autre neurone acc 268 qui joue un rôle similaire au neurone acc 238 de la figure 23. Le neurone acc 268 est le noeud récepteur d'une grsynapse 269, de poids gmuit et de retard 3Tsyn, et d'une gate-synapse excitatrice 270, de poids 1 et de retard 3Tsyn, provenant toutes deux du neurone sync 260. En outre, le neurone acc 268 est le noeud récepteur d'une gate-synapse inhibitrice 271, de poids ¨1 et de retard Tsyn, et d'une ge-synapse excitatrice 272, de poids 1T7õ, et de retard Tsyn, provenant toutes deux du neurone acc 2562.
[002141 Le circuit 250 possède enfin un neurone output 274 qui est le noeud récepteur d'une V-synapse excitatrice 275, de poids ive et de retard 2Tsyn, provenant du neurone acc 2562 et d'une V-synapse excitatrice 276, de poids ive et de retard Tsyn +
Tsyn, provenant du neurone acc 268.
[002151 Le fonctionnement du circuit multiplieur 250 selon la figure 25 est illustré par la figure 26.
[00216] Chacun des deux neurones acc 2561, 2562 se comporte initialement comme le neurone acc 216 de la figure 21, avec une progression linéaire 2781, 2782 de poids vT7õ, sur une première période de durée respective xi.Tcod, x2.Tcod, conduisant à
stocker les valeurs de potentiel Vt.xi et Vt.x2 dans les neurones acc 2561, 2562.
[002 g 7] L'émission du second spike au temps ti2n2 = t iln 2 Tnun + X2.
Tõd au niveau du neurone input présentant la plus petite valeur (le neurone input 2512 dans l'exemple représenté sur la figure 26 où on a xi > x2) stoppe l'accumulation à dynamique linéaire sur le neurone acc correspondant 2562 via la ge-synapse 2542 au temps t?-ast2 + Tsyn = ti2n2 2Tsyn Tneu. Le potentiel de membrane de ce neurone acc 2562 présente alors un plateau 279 qui dure jusqu'à sa réactivation via les synapses 265, 266. Au temps a-Last2 Tsyn =
ti212 2Tsyn Tneu, le potentiel du neurone sync 260 passe à la valeur Vt/2 du fait de l'événement reçu du neurone last 2552 via la V-synapse 2612.
[002181 L'émission du second spike au temps ti2n1 = tiln1 Tnun + X1. Tõd au niveau du neurone input présentant la plus grande valeur (le neurone input 2511 dans le cas de la figure 26) stoppe l'accumulation à dynamique linéaire sur le neurone acc correspondant 2561 via la ge-synapse 2541 au temps t?-ast1 + Tsyn = ti2n1 2Tsyn Tneu. Au même moment, le potentiel de ce neurone sync 260 atteint la valeur Vt du fait de l'événement reçu sur la V-synapse 2611. Il en résulte l'émission d'un événement au temps tslyõ = ti2n1 2Tsyn 2Tneu sur les synapses 262 et 264. La dynamique exponentielle 2801 est alors activée sur le neurone acc 2561 à la place de la dynamique linéaire 2781 au temps tsit1 =
tslyn, Tsyn.
Parallèlement, les synapses 269, 270 activent la dynamique exponentielle 281 sur le neurone acc 268 au temps q-t3 = tsly, + 3Tsyn.
[00219] Le potentiel du neurone acc 2561 atteint le seuil Vt et provoque un événement sur les synapses 265, 266 au temps t?-0g1 = tsit1 ¨ Tf . log (xi) .

[002201 La dynamique exponentielle 2801 est alors activée sur le neurone acc 2562 au temps tsit2 = t?-0g1 + Tsyn. Le potentiel de ce neurone acc 2562 atteint le seuil V, et provoque un événement sur les synapses 271, 272, 275 au temps t?-og2 = tsit2 ¨ Tf . log (x2) = tslyuo ¨
Tf log(xi. x2) + 2 Tsyn. La gate-synapse 271 désactive la dynamique exponentielle 281 sur le neurone acc 268 au temps telnd3 = t?-og2 Tsyn, et simultanément la dynamique linéaire 282 du neurone acc 268 est activée via la ge-synapse 272 à partir de la valeur :
t1 -t1 end3 st3 Vt. (1 e Tf = Vt.(1¨ xi.x2) (22) [002211 La V-synapse 275 provoque l'émission d'un premier spike sur le neurone output 274 au temps tolut = t?-og2 + 2Tsyn Tnen.
1002221 Le neurone acc 268 atteint le seuil V, et provoque un événement sur la V-synapse 276 au temps telxp = telnd3 xl= X2. Tcod = Il en résulte, au niveau du neurone output 274 l'émission d'un second spike au temps to2ut = telxp Tmin Tsyn Tneu.
[00223]
Finalement, les deux événements délivrés par le neurone output 268 sont séparés par un intervalle de temps de ATout = t02ut tolut = Tmin x2. Tcoci = f (xi. x2).
[002241 Le circuit 250 de la figure 25 délivre donc sur son neurone output 268 la représentation du produit x1.x2 des deux nombres xi, .x2 compris entre A et 1 dont il reçoit les représentations respectives sur ses neurones input 2511, 2512.
[002251 Pour cela, les paires d'événements n'ont pas eu à être reçus synchronisées sur neurones input 2511, 2512, le neurone sync 260 se chargeant de la synchronisation.
D.4. Multiplication signée [0226]
La figure 27 montre un circuit multiplieur 290 qui calcule le produit de deux valeurs signées xi, x2. Toutes les synapses représentées sur la figure 27 présentent le retard Tsyn=
[002271 Pour chaque valeur d'entrée xk (1 < k < 2), le circuit multiplieur 290 comporte un neurone input+ 291k et un neurone input¨ 292k qui sont les noeuds émetteurs de deux V-synapses respectives 293k et 294k de poids we. Les V-synapses 2931 et 2941 sont dirigées vers un neurone input 2511 d'un circuit multiplieur 250 du genre représenté
sur la figure 25, tandis que les V-synapses 2931 et 2941 sont dirigées vers l'autre neurone input 2512 du circuit 250.
[002281 Le circuit multiplieur 290 possède un neurone output+ 295 et un neurone output¨ 296 qui sont les noeuds récepteurs de deux V-synapses excitatrices respectives 297 et 298 de poids we provenant du neurone output 274 du circuit 250.
[002291 Le circuit multiplieur 290 comporte encore quatre neurones sign connectés pour former une logique de sélection du signe du résultat de la multiplication.
Chaque neurone sign 300-303 est le noeud récepteur de deux V-synapses excitatrices respectives de poids we/4 provenant de deux des quatre neurones input 291k, 292k. Le neurone sign 300 relié aux neurones input+ 291i, 2912 détecte la réception de deux entrées Xi, x2 positives. Il forme le noeud émetteur d'une V-synapse inhibitrice 305 de poids 2w, allant au neurone output¨ 296. Le neurone sign 303 relié aux neurones input¨
2921, 2922 détecte la réception de deux entrées xi, x2 négatives. Il forme le noeud émetteur d'une V-synapse inhibitrice 308 de poids 2w1 allant au neurone output¨ 296. Le neurone sign 301 relié aux neurones input¨ 2921 et input+ 292 détecte la réception d'une entrée xi négative et d'une entrée x2 positive. Il forme le noeud émetteur d'une V-synapse inhibitrice 306 de poids 2w1 allant au neurone output+ 295. Le neurone sign 302 relié aux neurones input+ 2911 et input¨ 2922 détecte la réception d'une entrée xi positive et d'une entrée x2 négative. Il forme le noeud émetteur d'une V-synapse inhibitrice 307 de poids 2w, allant au neurone output+
295.
[1)02301 Des V-synapses inhibitrices sont agencées entre les neurones sign 300-303 pour assurer qu'un seul d'entre eux intervienne pour inhiber l'un des neurones output+ 295 et output¨ 296. Chaque neurone sign 300-303 correspondant à un signe (+ ou ¨) du produit est ainsi le noeud émetteur de deux V-synapses inhibitrices de poids we/2 allant respectivement vers les deux neurones sign correspondant au signe opposé.
[002311 Ainsi agencé, le circuit 290 de la figure 27 délivre deux événements séparés de l'intervalle de temps f(lxi.x21) sur l'une de ses sorties 295, 296, conformément au signe de xi.x2, lorsque les deux nombres xi, x2 sont présentés avec leurs signes respectifs sur les entrées 291k, 292k.
[002321 On peut y adjoindre une logique de détection de zéro sur l'une des entrées, comme dans le cas de la figure 17, pour assurer qu'une entrée nulle produira l'intervalle de temps Tmin entre deux événements produits sur le neurone output+ 295 et non pas le neurone output¨ 296.
E. Résolution d'équations différentielles E.1. Intégration [002331 La figure 28 montre un circuit 310 qui reconstruit un signal à
partir de ses dérivées fournies sous forme signée sur un neurone d'une paire de neurones input+ 311 et input¨ 312. Le signal intégré est présenté, en fonction de son signe, par un neurone d'une paire de neurones output+ 313 et output¨ 314. Les synapses 321-332 représentées sur la figure 28 sont toutes des V-synapses excitatrices de poids we. Elles présentent toutes le retard Tsyn sauf la synapse 329 dont le retard est Tnõ, + Tsyn.
[00234] Pour réaliser l'intégration, le circuit 310 utilise un circuit de combinaison linéaire 200 du genre de celui représenté sur la figure 20, avec N = 2 et des coefficients ao = 1 et ai = dt, où dt est le pas d'intégration choisi.
[00235] Les neurones input+ 311 et input¨ 312 sont respectivement reliés aux neurones input+ et input¨ 1811 du circuit 200 associés au coefficient ai = dt par deux V-synapses 321, 322.
[00236] Les autres neurones input+ et input¨ 1811 du circuit 200, associés au coefficient ao = 1, sont respectivement reliés par deux V-synapses 323, 324 à deux neurones output+
315 et output¨ 316 d'un circuit 217 dont le rôle est de fournir une valeur d'initialisation xo pour le processus d'intégration. Le circuit 317 est essentiellement constitué
de la paire de neurones output+ 315 et output¨ 316 reliés à un même neurone recall 15 de la manière représentée sur la figure 1.
1002371 Un autre neurone mit 318 du circuit d'intégration 310 est le noeud émetteur d'une synapse 325 dont le noeud récepteur est le neurone recall 15 du circuit 317. Le neurone mit 318 charge l'intégrateur avec sa valeur initiale xo stockée dans le circuit 317.
1002381 De synapses 326, 327 sont agencées pour faire rétroagir, respectivement, le neurone output+ 143 du circuit de combinaison linéaire 200 sur son neurone input+ 1810 et le neurone output¨ 144 du circuit d'intégration 200 sur son neurone input¨
1810.

[002391 Un neurone start 319 est le noeud émetteur de deux synapses 328, 329 qui présentent une valeur nulle sous forme de deux événements séparés de l'intervalle de temps Tnõ, sur le neurone input+ 1811 du circuit d'intégration 180.
[002401 Les neurones output+ 143 et output¨ 144 du circuit de combinaison linéaire 200 sont les noeuds émetteurs respectifs de deux synapses 330, 331 dont les noeuds récepteurs sont respectivement les neurones output+ 313 et output¨ 314 du circuit d'intégration 310.
[002411 Le circuit d'intégration 310 possède enfin un neurone new input 320 qui est le noeud récepteur d'une synapse 332 provenant du neurone start 207 du circuit de combinaison linéaire 200.
[002421 La valeur initiale xo est, selon son signe, délivrée sur le neurone output+ 313 ou output¨ 314 une fois que le neurone mit 318 puis le neurone start 319 ont été
activés. Au même moment, un événement est délivré par le neurone new input 320. Cet événement signale à l'environnement du circuit 310 que la valeur de dérivée g' (k.dt), avec k = 0, peut être fournie. Dès que cette valeur de dérivée g' (k.dt) est présentée sur le neurone input+ 311 ou input¨ 312, une nouvelle valeur d'intégrale est délivrée par le neurone output+ 313 ou output¨ 314 et un nouvel événement délivré par le neurone new input 320 signale à
l'environnement du circuit 310 que la prochaine valeur de dérivée g' ((k+1).dt) peut être fournie. Ce processus se répète autant de fois que des valeurs de dérivée g' (k.dt) sont fournies (k = 0, 1, 2, etc.).
1002431 Après fourniture d'une (k+1)-ième valeur de dérivée g'(k.dt) au circuit intégrateur 310, on trouve en sortie la représentation de la valeur :
xo + o (i. dt). dt (23) T
qui, à une constante additive près, est une approximation de g (T) = fo g (t).
dt , avec T = (k + 1).dt.
[002441 Les circuits décrits précédemment en référence aux figures 1-28 peuvent être assemblés et configurés pour exécuter de nombreux types de calculs dans lesquels les grandeurs manipulées, en entrée et/ou sortie sont représentées par des intervalles de temps entre événements reçus ou délivrés par des neurones.

[002451 En particulier, les figures 29, 31 et 33 illustrent des exemples de dispositifs de traitement selon l'invention servant à résoudre des équations différentielles.
Des calculs ont été réalisés avec des circuits construits comme sur ces figures, avec des paramètres choisis purement à titre d'exemple de la façon suivante : 2,2 = 100 s, zy= 20 ms, V, =
10 mV, Tmin = 10 ms et Tcod = 100 ms.
E.2. Équation différentielle du premier ordre 102461 La figure 29 montre un dispositif de traitement qui implémente la résolution de l'équation différentielle :
dX
T.¨ + X(t) = X0, (24) dt où r et X¨ sont des paramètres pouvant prendre différentes valeurs. Les synapses représentées sur la figure 29 sont toutes des V-synapses excitatrices de poids we et de retard Tsyn.
102471 Pour résoudre l'équation (24), le dispositif de la figure 29 utilise :
= un circuit de combinaison linéaire 200 tel que représenté sur la figure 20, avec N = 2 et des coefficients a() = ¨1/2et ai =
= un circuit intégrateur 310 tel que représenté sur la figure 28, avec un pas d'intégration dt ; et = un circuit 317 de fourniture de la constante X_, semblable au circuit 317 décrit en référence à la figure 28, sous forme de l'intervalle de temps f(IX_I) entre deux spikes délivrés soit par son neurone output+ 315, soit par son neurone output¨ 316, selon le signe de X_.
[002481 La constante X¨ est fournie à l'un des neurones input+ et input¨
1811 associés au coefficient ai = 1/2 dans le circuit de combinaison linéaire 200 après chaque activation du neurone recall 15 qui est le noeud récepteur d'une synapse 340 provenant du neurone new input 320 du circuit intégrateur 310. Deux synapses 341, 342 font rétroagir la sortie output+ 313 du circuit intégrateur 310 sur l'autre entrée input+ 1810 du circuit de combinaison linéaire 200 et, respectivement, la sortie output¨ 314 du circuit 310 sur l'autre entrée input¨ 1810 du circuit 200. Deux synapses 343, 344 vont de la sortie output+ 203 du circuit de combinaison linéaire 200 à l'entrée input+ 311 du circuit intégrateur 310 et, respectivement, de la sortie output+ 204 du circuit 200 à l'entrée input¨ 312 du circuit 310.
[00249]
Le dispositif de la figure 29 a une paire de neurones output+ 346 et output¨

qui sont les noeuds récepteurs de deux synapses issues des neurones output+
313 et output-314 du circuit intégrateur 310.
[002501 Les neurones mit 348 et start 349 permettent d'initialiser et de faire démarrer le processus d'intégration. Le neurone mit 348 doit être déclenché avant le processus d'intégration pour charger la valeur initiale dans le circuit intégrateur 310.
Le neurone start 349 est déclenché pour délivrer la première valeur à partir du circuit 310.
[002511 Le dispositif de la figure 29 est réalisé à l'aide de 118 neurones si on utilise les composants tels que décrits en référence aux figures précédentes. Ce nombre de neurones peut être réduit par optimisation.

Des résultats de simulation de ce dispositif avec différents jeux de paramètres 2, X_ et avec un pas d'intégration dt = 0,5 sont présentés sur la figure 30A pour différentes valeurs de r et sur la figure 30B pour différentes valeurs de X_ = ¨0,2, X_ = 0,1 et = ¨0,4). Chaque point des courbes C1-C3, C' 1-C'3 montrées sur les figures 30A
et 30B
correspond à une valeur de sortie respective codée par une paire de spikes délivrée par le neurone output+ 346 ou le neurone output¨ 347. On voit que les courbes ainsi obtenues pour la solution X(t) de l'équation différentielle (24) sont conformes à ce qu'on attend (par résolution analytique).
E.3. Équation différentielle du second ordre [002531 La figure 31 montre un dispositif de traitement qui implémente la résolution de l'équation différentielle :
1 WX dX
+X(t) (25) dt2 dt où et wo sont des paramètres pouvant prendre différentes valeurs. Les synapses représentées sur la figure 31 sont toutes des V-synapses excitatrices de poids ive et de retard Tsyn. Comme les grandeurs manipulées dans cet exemple sont toutes positives, il n'est pas nécessaire de prévoir deux trajets distincts pour les valeurs positives et pour les valeurs négatives. Seul le trajet relatif aux valeurs positives est donc inclus.
RM)2541 Pour résoudre l'équation (25), le dispositif de la figure 31 utilise :
= un circuit de combinaison linéaire 200 tel que représenté sur la figure 20, avec N = 3 et des coefficients a() = a2 = 0)02 et ai = ;
= deux circuits intégrateurs 310A, 310B tels que celui représenté sur la figure 28, avec un pas d'intégration dt ; et = un circuit 317 de fourniture de la constante X_, semblable au circuit décrit en référence à la figure 1, sous forme de l'intervalle de temps f(X00) entre deux spikes délivrés par son neurone output 16 (X- > 0).
[002551 La constante X_ est fournie au neurone input 1812 associé au coefficient a2 = 0)02 dans le circuit de combinaison linéaire 200 après chaque activation du neurone recall 15 qui est le noeud récepteur d'une synapse 350 provenant du neurone new input 320 du second circuit intégrateur 310B. Deux synapses 351, 352 font rétroagir la sortie output 313 du second circuit intégrateur 310B sur l'entrée input 1811 du circuit de combinaison linéaire 200 associée au coefficient ai = -..(po et, respectivement, la sortie output 313 du premier circuit intégrateur 310A sur l'autre entrée input 1810 du circuit 200 associée au coefficient ao = W02. Une synapse 353 va de la sortie output 203 du circuit de combinaison linéaire 200 à l'entrée input 311 du premier circuit intégrateur 310A. Une synapse 354 va de la sortie output 313 du premier circuit intégrateur 310A à l'entrée input 311 du second circuit intégrateur 310B.
[00256] Le dispositif de la figure 31 a un neurone output 356 qui est le noeud récepteur d'une synapse issue du neurone output 313 du second circuit intégrateur 310B.
102571 Les neurones mit 358 et start 359 permettent d'initialiser et de faire démarrer le processus d'intégration. Le neurone mit 358 doit être déclenché avant le processus d'intégration pour charger les valeurs initiales dans les circuits intégrateurs 310A, 310B. Le neurone start 359 est déclenché pour délivrer la première valeur à partir du second circuit intégrateur 310B.

[002581 Le dispositif de la figure 31 est réalisé à l'aide de 187 neurones si on utilise les composants tels que décrits en référence aux figures précédentes. Ce nombre de neurones peut être réduit par optimisation.
102591 Des résultats de simulation de ce dispositif avec différents jeux de paramètres wo et avec un pas d'intégration dt = 0,2 et X¨ = 0,5 sont présentés sur la figure 32A pour différentes valeurs de coo et sur la figure 32B pour différentes valeurs de 4.
Chaque point sur les courbes D 1 -D3, D'1-D'3 montrées sur les figures 32A et 32B correspond à
une valeur de sortie respective codée par une paire de spikes délivrée par le neurone output 356. On voit que les courbes ainsi obtenues pour la solution X(t) de l'équation différentielle (25) sont de nouveau conformes à ce qu'on attend.
E.4. Résolution d'un système d'équations différentielles non-linéaires Iffle301 La figure 33 montre un dispositif de traitement qui implémente la résolution du système d'équations différentielles non-linéaires proposées par E. Lorenz pour la modélisation d'un écoulement non périodique déterministe ("Deterministic Nonperiodic Flow", Journal of the Atmospheric Sciences, Vol. 20, No. 2, pages 130-141, mars 1963) :
¨dX = o- (Y (t) ¨ X (t)) dt {dY
¨dt = p. X(t) ¨ Y (t) ¨ X (t) Z (t) (26) dZ
¨dt = X (t). Y (t) ¨ Z(t) [002611 Pour assurer que le système modélisé ait un comportement chaotique, le dispositif de la figure 33 a été simulé avec le choix de paramètres u = 10, fi = 8/3 et p = 28.
Les variables étaient mises à l'échelle pour obtenir des variables d'état X, Y
et Z évoluant chacune dans l'intervalle [0, 1] de façon qu'elles puissent être représentées sous la forme (11) ci-dessus. L'état initial du système était fixé à X = ¨ 0,15, Y = ¨ 0,20, et Z= 0,20. Le pas d'intégration utilisé était dt = 0,01.
[00262] Les synapses représentées sur la figure 33 sont toutes des V-synapses excitatrices de poids we et de retard Tsyn. Pour alléger le dessin, un seul trajet est représenté, mais il faut entendre qu'il y a à chaque fois un trajet pour les valeurs positives des variables et, en parallèle, un trajet pour leurs valeurs négatives.
[002631 Pour résoudre le système (26), le dispositif de la figure 33 utilise :

= deux circuits multiplieurs signés 290A, 290B tels que celui représenté
sur la figure 27 pour calculer les non-linéarités contenues dans les dérivées de X, Y et Z;
= trois circuits de combinaison linéaire 200A, 200B, 200C tels que celui représenté sur la figure 20 pour calculer les dérivées de X, Y et Z;
= un circuit synchroniseur signé 90 du type de celui représenté sur la figure 8 avec N = 3 pour attendre que les trois dérivées soient calculées avant de faire évoluer l'état du système ;
= trois circuits intégrateurs 310A, 310B, 310C de pas dt tels que celui représenté sur la figure 28 pour calculer le nouvel état à partir des dérivées de X, Y et Z.
[00264] Le circuit de combinaison linéaire 200A est configuré N= 2 et des coefficients ao = u et ai = ¨u. Son neurone input 181A0 est excité depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input 181A1 depuis le neurone output 313B du circuit intégrateur 310B. Son neurone output 203A est le noeud émetteur d'une synapse allant au neurone input 910 du circuit synchroniseur 90.
[00265] Le circuit de combinaison linéaire 200B est configuré N= 3 et des coefficients ao =p et ai = a2 = ¨1. Son neurone input 181B0 est excité depuis le neurone output 313B du circuit intégrateur 310B, son neurone input 181B1 depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input 181B2 depuis le neurone output 295A du circuit multiplieur 290A. Son neurone output 203B est le noeud émetteur d'une synapse allant au neurone input 911 du circuit synchroniseur 90.
[002661 Le circuit de combinaison linéaire 200C est configuré N= 2 et des coefficients ao = 1 et al = ¨ fl. Son neurone input 181C0 est excité depuis le neurone output 295B du circuit multiplieur 290B, et son neurone input 181C1 depuis le neurone output 313C du circuit intégrateur 310C. Son neurone output 203C est le noeud émetteur d'une synapse allant au neurone input 912 du circuit synchroniseur 90.
[00267]
Trois synapses vont respectivement du neurone output 920 du circuit synchroniseur 90 au neurone input 311A du circuit intégrateur 310A, du neurone output 921 du circuit 90 au neurone input 311B du circuit intégrateur 310B, et du neurone output 922 du circuit 90 au neurone input 311C du circuit intégrateur 310C.

[002681 Le neurone input 29 lAi du circuit multiplieur 290A est excité
depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input 291A2 depuis le neurone output 313C du circuit intégrateur 310C. Le neurone input 291B1 du circuit multiplieur 290B est excité depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input 291B2 depuis le neurone output 313B du circuit intégrateur 310B.
1002691 Le dispositif de la figure 33 possède trois neurones output 361, 362 et 363 qui sont les noeuds récepteurs de trois V-synapses excitatrices respectives provenant des neurones output 313A, 313B et 313C des circuits intégrateurs 310A, 310B, 310C.
Ces trois neurones output 361-363 délivrent des paires d'événements dont les intervalles représentent des valeurs de la solution IX(t), Y(t), Z(t)} calculée pour le système (26).
[002701 Le dispositif de la figure 33 est réalisé à l'aide de 549 neurones si on utilise les composants tels que décrits en référence aux figures précédentes. Ce nombre de neurones peut être significativement réduit par optimisation.
[00271] Les points sur la figure 34 correspondent chacun à un triplet IX(t), Y(t), Z(t)} de valeurs de sortie codé par trois paires de spikes respectivement délivrées par les trois neurones output 361-363, dans un graphe à trois dimensions illustrant une simulation du dispositif représenté sur la figure 33. Le point P représente les valeurs X(0), Y(0), Z(0) d'initialisation de la simulation. Les autres points représentent des triplets calculés par le dispositif de la figure 33.
1002721 Le système se comporte de la manière attendue, en conformité avec l'attracteur étrange décrit par Lorenz.
F. Discussion [00273] On a montré que l'architecture de calcul proposée, avec la représentation des données sous forme d'intervalles de temps entre événements au sein d'un ensemble de noeuds de traitement, permet de concevoir des circuits relativement simples pour réaliser des fonctions élémentaires de manière très efficace et rapide. En général, les résultats des calculs sont disponibles dès que les différentes données d'entrée ont été
fournies (à quelques retards synaptiques près).

[002741 Ces circuits peuvent ensuite être assemblés pour exécuter des calculs plus sophistiqués. Ils forment des sortes de briques à partir desquelles on peut construire des structures de calcul performantes. Des exemples en ont été montrés en ce qui concerne la résolution d'équations différentielles.
[002751 Lorsque les circuits élémentaires sont assemblés, il est possible d'optimiser le nombre de neurones utilisés. Par exemple, certains des circuits ont été
décrits avec des neurones input, et/ou des neurones output et/ou des neurones first, last. Dans la pratique, on peut souvent se passer de ces neurones aux interfaces entre circuits élémentaires sans changer la fonctionnalité remplie.
[002761 Les noeuds de traitement sont typiquement organisés en matrice.
Ceci se prête bien notamment à une implémentation à l'aide de FPGA.
1002771 Un réseau programmable 400 constituant l'ensemble de noeuds de traitement, ou une partie de cet ensemble, dans un exemple de mise en oeuvre du dispositif de traitement est illustré schématiquement sur la figure 35. Le réseau 400 est constitué de multiples neurones ayant tous le même modèle de comportement en fonction des événements reçus sur leurs connexions. Par exemple, le comportement peut être modélisé par les équations (1) indiquées ci-dessus, avec des paramètres Tm et rf identiques pour les différents noeuds du réseau.
Iffl781 Une logique de programmation ou de configuration 420 est associée au réseau 400 pour régler les poids synaptiques et les paramètres de retard des connexions entre les noeuds du réseau 400. Cette configuration est opérée de manière analogue à ce qui est couramment pratiqué dans le domaine des réseaux de neurones artificiels. Dans le présent contexte, la configuration des paramètres des connexions est effectuée en fonction du programme de calcul qu'il s'agit d'exécuter et en tenant compte de la relation employée entre les intervalles de temps et les grandeurs qu'ils représentent, par exemple la relation (11). Si le programme est décomposé en opérations élémentaires, la configuration peut résulter d'un assemblage de circuits du genre de ceux qui ont été décrits précédemment.
Cette configuration est réalisée sous le contrôle d'une unité de commande 410 munie d'une interface homme-machine.
[00279] Un autre rôle de l'unité de commande 410 et de fournir les grandeurs d'entrée au réseau programmable 400, sous forme d'événements séparés par des intervalles de temps appropriés, pour que les noeuds de traitement du réseau 400 exécutent le calcul et délivrent les résultats. Ces résultats sont rapidement récupérés par l'unité de commande 410 pour être présentés à un utilisateur ou à une application qui les utilise.
[002801 Cette architecture de calcul convient bien à une exécution rapide de calculs massivement parallèles.
[00281] En outre, il est relativement facile d'avoir une organisation en pipeline des calculs pour l'exécution d'algorithmes qui se prêtent bien à ce type d'organisation.
[002821 Les modes de réalisation décrits ci-dessus sont des illustrations de la présente invention. Diverses modifications peuvent leur être apportées sans sortir du cadre de l'invention qui ressort des revendications annexées.

Claims (30)

REVENDICATIONS
1. Dispositif de traitement de données, comprenant un ensemble de n uds de traitement et des connexions entre les n uds, dans lequel chaque connexion a un n ud émetteur et un n ud récepteur parmi l'ensemble de n uds de traitement et est configurée pour transmettre au n ud récepteur des événements délivrés par le n ud émetteur, dans lequel chaque n ud est agencé pour faire varier une valeur de potentiel respective (V) en fonction d'événements reçus par ledit n ud et pour délivrer un événement lorsque la valeur de potentiel atteint un seuil prédéfini (V .tau.), dans lequel au moins une grandeur d'entrée (x) du dispositif de traitement de données est représentée par un intervalle de temps (.DELTA. .tau.) entre deux événements reçus par au moins un n ud, et dans lequel au moins une grandeur de sortie du dispositif de traitement de données est représentée par un intervalle de temps entre deux événements délivrés par au moins un n ud.
2. Dispositif selon la revendication 1, dans lequel chaque n ud de traitement est agencé pour réinitialiser sa valeur de potentiel lorsqu'il délivre un événement.
3. Dispositif selon l'une quelconque des revendications précédentes, dans lequel les connexions entre les n uds comprennent des connexions de variation de potentiel ayant chacune un poids respectif, et dans lequel le n ud récepteur d'une connexion de variation de potentiel est agencé pour réagir à un événement reçu sur ladite connexion de variation de potentiel en ajoutant à sa valeur de potentiel (V) le poids de ladite connexion de variation de potentiel.
4. Dispositif selon la revendication 3, dans lequel l'ensemble de n uds de traitement comprend au moins un premier n ud (23) formant le n ud récepteur d'une première connexion de variation de potentiel (22) ayant un premier poids positif au moins égal au seuil prédéfini (V .tau.) pour la valeur de potentiel, et au moins un second n ud (25) formant le n ud récepteur d'une seconde connexion de variation de potentiel (24) de poids au moins égal à la moitié du seuil prédéfini pour la valeur de potentiel et inférieur au seuil prédéfini (V
.tau.) pour la valeur de potentiel,dans lequel le premier n ud (23) forme en outre le n ud émetteur et le n ud récepteur d'une troisième connexion de variation de potentiel (28) de poids égal à l'opposé
du premier poids, dans lequel le premier n ud (23) forme en outre le n ud émetteur d'une quatrième connexion (26) et le second n ud (25) forme en outre le n ud émetteur d'une cinquième connexion (27), et dans lequel les première et seconde connexions de variation de potentiel (22, 24) sont configurées pour recevoir chacune deux événements séparés par un premier intervalle de temps (.DELTA. .tau.) représentant une grandeur d'entrée de sorte que les quatrième et cinquième connexions (26, 27) transportent des événements respectifs ayant entre eux un second intervalle de temps en rapport avec le premier intervalle de temps (.DELTA.
.tau.).
5.
Dispositif selon la revendication 3, comprenant au moins un circuit de calcul de minimum (100), dans lequel le circuit de calcul de minimum comprend :
des premier et second n uds d'entrée (101, 102) ;
un n ud de sortie (103) ;
des premier et second n uds de sélection (104, 105) ;
des première, seconde, troisième, quatrième, cinquième et sixième connexions de variation de potentiel (106-111) ayant chacune un premier poids positif au moins égal à la moitié du seuil prédéfini (V .tau.) pour la valeur de potentiel et inférieur au seuil prédéfini (V .tau.) pour la valeur de potentiel ;
des septième et huitième connexions de variation de potentiel (112-113) ayant chacune un second poids opposé au premier poids ; et des neuvième et dixième connexions de variation de potentiel (114-115) ayant chacune un troisième poids double du second poids, dans lequel le premier n ud d'entrée (101) forme le n ud émetteur des première et troisième connexions (106, 108) et le n ud récepteur de la dixième connexion (115), dans lequel le second n ud d'entrée (102) forme le n ud émetteur des seconde et quatrième connexions (107, 109) et le n ud récepteur de la neuvième connexion (114), dans lequel le premier n ud de sélection (104) forme le n ud émetteur des cinquième, septième et neuvième connexions (110, 112, 114) et le n ud récepteur des première et huitième connexions (106, 113), dans lequel le second n ud de sélection (105) forme le n ud émetteur des sixième, huitième et dixième connexions (111, 113, 115) et le n ud récepteur des seconde et septième connexions (107, 112), et dans lequel le n ud de sortie (103) forme le n ud récepteur des troisième, quatrième, cinquième et sixième connexions (108-111).
6.
Dispositif selon la revendication 3, comprenant au moins un circuit de calcul de maximum (120), dans lequel le circuit de calcul de maximum comprend :
des premier et second n uds d'entrée (121, 122) ;
un n ud de sortie (123) ;
des premier et second n uds de sélection (124, 125) ;
des première, seconde, troisième et quatrième connexions de variation de potentiel (126-129) ayant chacune un premier poids positif au moins égal à la moitié du seuil prédéfini (V .tau.) pour la valeur de potentiel et inférieur au seuil prédéfini (V .tau.) pour la valeur de potentiel ; et des cinquième et sixième connexions de variation de potentiel (132-133) ayant chacune un second poids égal au double de l'opposé du premier poids, dans lequel le premier n ud d'entrée (121) forme le n ud émetteur des première et troisième connexions (126, 128), dans lequel le second n ud d'entrée (122) forme le n ud émetteur des seconde et quatrième connexions (127, 129), dans lequel le premier n ud de sélection (104) forme le n ud émetteur de la cinquième connexion (132) et le n ud récepteur des première et sixième connexions (126, 133), dans lequel le second n ud de sélection (105) forme le n ud émetteur de la sixième connexion (133) et le n ud récepteur des seconde et cinquième connexions (127, 132), et dans lequel le n ud de sortie (123) forme le n ud récepteur des troisième et quatrième connexions (128, 129).
7.
Dispositif selon la revendication 3, comprenant au moins un circuit soustracteur (140, 170), dans lequel le circuit soustracteur (140, 170) comprend :
des premier et second n uds de synchronisation (145, 146) ;
des premier et second n uds d'inhibition (147, 148) ;
des premier et second n uds de sortie (143, 144) ;
des première, seconde, troisième, quatrième, cinquième et sixième connexions de variation de potentiel (152-157) ayant chacune un premier poids positif au moins égal au seuil prédéfini (V .tau.) pour la valeur de potentiel ;
des septième et huitième connexions de variation de potentiel (160, 161) ayant chacune un second poids égal à la moitié du premier poids ;
des neuvième et dixième connexions de variation de potentiel (158, 159) ayant chacune un troisième poids opposé au premier poids ; et des onzième et douzième connexions de variation de potentiel (162, 163) ayant chacune un quatrième poids (2w i) double du troisième poids, dans lequel le premier n ud de synchronisation (145) forme le n ud émetteur des première, seconde, troisième et neuvième connexions (152, 153, 154, 158), dans lequel le second n ud de synchronisation (146) forme le n ud émetteur des quatrième, cinquième, sixième et dixième connexions (155, 156, 157, 159), dans lequel le premier n ud d'inhibition (147) forme le n ud émetteur de la onzième connexion (162) et le n ud récepteur des troisième, huitième et dixième connexions (154, 161, 159), dans lequel le second n ud d'inhibition (148) forme le n ud émetteur de la douzième connexion (163) et le n ud récepteur des sixième, septième et neuvième connexions (157, 160, 158), dans lequel le premier n ud de sortie (143) forme le n ud émetteur de la septième connexion (160) et le n ud récepteur des première, cinquième et onzième connexions (152, 156, 162), dans lequel le second n ud de sortie (144) forme le n ud émetteur de la huitième connexion (161) et le n ud récepteur des seconde, quatrième et douzième connexions (153, 155, 163), et dans lequel le premier n ud de synchronisation (145) est configuré pour recevoir, sur au moins une connexion de variation de potentiel (150) ayant le second poids, une première paire d'événements ayant entre eux un premier intervalle de temps (.DELTA..tau.1) représentant un premier opérande (x1), et le second n ud de synchronisation (146) est configuré pour recevoir, sur au moins une connexion de variation de potentiel (151) ayant le second poids, une seconde paire d'événements ayant entre eux un second intervalle de temps (.DELTA..tau.2) représentant un second opérande (x2), de sorte qu'une troisième paire d'événements ayant entre eux un troisième intervalle de temps (.DELTA..tau.
out) est délivrée par le premier n ud de sortie (143) si le premier intervalle de temps (.DELTA..tau.1) est plus long que le second intervalle de temps (.DELTA. .tau.2) et par le second n ud de sortie (144) si le premier intervalle de temps (.DELTA..tau.1) est plus court que le second intervalle de temps (.DELTA..tau.2), le troisième intervalle de temps (.DELTA..tau. out) représentant la valeur absolue de la différence entre les premier et second opérande (x1, x2).
8. Dispositif selon la revendication 7, dans lequel le circuit soustracteur (170) comprend en outre une logique de détection de zéro incluant au moins un n ud de détection (171) associé à des connexions de détection et d'inhibition (172-178) avec les premier et second n ud de synchronisation (145, 146), l'un des premier et second n ud d'inhibition (147, 148) et l'un des premier et second n ud de sortie (143, 144), et dans lequel les connexions de détection et d'inhibition (172-178) sont plus rapides que les première, seconde, troisième, quatrième, cinquième, sixième, septième, huitième, neuvième, dixième, onzième et douzième connexions (152-163), pour inhiber la production d'événements par l'un des premier et second n uds de sortie (143, 144) lorsque les premier et second intervalles de temps (.DELTA..tau.1, .DELTA..tau.2) sont sensiblement égaux.
9. Dispositif selon l'une quelconque des revendications 3 à 8, dans lequel l'ensemble de n uds de traitement comprend au moins un n ud agencé

pour faire varier une valeur de courant en fonction d'événements reçus sur au moins une connexion de réglage de courant, et pour faire varier sa valeur de potentiel au cours du temps avec un taux de variation proportionnel à ladite valeur de courant.
10. Dispositif selon la revendication 9, dans lequel un n ud de traitement agencé pour faire varier une valeur de courant est agencé pour remettre à zéro ladite valeur de courant lorsqu'il délivre un événement.
11. Dispositif selon la revendication 9 ou la revendication 10, dans lequel la valeur de courant dans au moins un n ud a une composante (g e) constante entre deux événements reçus sur au moins une connexion de réglage de composante constante de courant ayant un poids respectif, et dans lequel le n ud récepteur d'une connexion de réglage de composante constante de courant est agencé pour réagir à un événement reçu sur ladite connexion en ajoutant le poids de ladite connexion à la composante constante (g e) de sa valeur de courant.
12. Dispositif selon la revendication 11, comprenant au moins un circuit de mémoire inverseuse (18), dans lequel le circuit de mémoire inverseuse comprend :
un n ud accumulateur (30) ;
des première, seconde et troisième connexions de réglage de composante constante de courant, les première et troisième connexions (26, 34) ayant un même poids positif (w .alpha.cc) et la seconde connexion (27) ayant un poids (¨w .alpha.cc) opposé au poids des première et troisième connexions ; et au moins une quatrième connexion (35), dans lequel le n ud accumulateur (30) forme le n ud récepteur des première, seconde et troisième connexions (26, 27, 34) et le n ud émetteur de la quatrième connexion (35), et dans lequel les première et seconde connexions (26, 27) sont configurées pour adresser respectivement au n ud accumulateur (30) des premier et second événements ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur à mémoriser, de sorte que le n ud accumulateur (30) réagit ensuite à un troisième événement reçu sur la troisième connexion (34) en faisant croître sa valeur de potentiel jusqu'à délivrance d'un quatrième événement sur la quatrième connexion (35), les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec le premier intervalle de temps.
13.
Dispositif selon la revendication 12, comprenant au moins un circuit de mémoire (40), dans lequel le circuit de mémoire comprend :
des premier et second n uds accumulateurs (42, 44) ;
des première, seconde, troisième et quatrième connexions de réglage de composante constante de courant, les première, seconde et quatrième connexions (41, 43, 51) ayant chacune un premier poids positif (w .alpha.cc) et la troisième connexion (45) ayant un poids (¨w .alpha.cc) opposé au poids des première, seconde et quatrième connexions ; et au moins une cinquième connexion (52), dans lequel le premier n ud accumulateur (42) forme le n ud récepteur de la première connexion (41) et le n ud émetteur de la troisième connexion (45), dans lequel le second n ud accumulateur (44) forme le n ud récepteur des seconde, troisième et quatrième et cinquième connexions (43, 45, 51) et le n ud émetteur de la cinquième connexion (52), et dans lequel les première et seconde connexions (41, 43) sont configurées pour adresser respectivement aux premier et second n uds accumulateurs (42, 44) des premier et second événements ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps représentant une grandeur à mémoriser, de sorte que le second n ud accumulateur (44) réagit ensuite à un troisième événement reçu sur la quatrième connexion (51) en faisant croître sa valeur de potentiel jusqu'à délivrance d'un quatrième événement sur la cinquième connexion (52), les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec le premier intervalle de temps.
14. Dispositif selon la revendication 13, dans lequel le circuit de mémoire (40) comprend une sixième connexion (46) ayant le premier n ud accumulateur (42) comme n ud émetteur, la sixième connexion délivrant un événement pour signaler la disponibilité en lecture du circuit de mémoire.
15. Dispositif selon la revendication 14, comprenant au moins un circuit de synchronisation (90, 98) incluant un nombre N > 1 de circuits de mémoire (40 1, ..., 40N-1) et un n ud de synchronisation (95), dans lequel le n ud de synchronisation (95) est sensible à chaque événement délivré
sur la sixième connexion de l'un des N circuits de mémoire (40 1, ..., 40N-1) via une connexion de variation de potentiel respective (46 ; 96 0, ..., 96N-1) de poids égal au premier poids divisé par N, et dans lequel le n ud de synchronisation (95) est agencé pour provoquer une réception simultanée des troisièmes événements via les quatrièmes connexions (51) respectives des N de circuits de mémoire (40 1, ..., 40N-1).
16. Dispositif selon la revendication 11, comprenant au moins un circuit de cumul (180), dans lequel le circuit de cumul comprend :
N entrées (181 0, ..., 181N-1) ayant chacune un coefficient de pondération respectif (.alpha.0, ..., .alpha.N-1), N étant un nombre entier supérieur à
1 ;
un n ud accumulateur (184) ;
un n ud de synchronisation (185) ;
pour chacune des N entrées du circuit de cumul (180) :
une première connexion de réglage de composante constante de courant (182 0, ..., 182N-1) ayant un premier poids positif (.alpha.0 w .alpha.cc, ..., .alpha.N-w .alpha.cc) proportionnel au coefficient de pondération respectif de ladite entrée ; et une seconde connexion de réglage de composante constante de courant (183 0, ..., 183N-1) ayant un second poids (¨ .alpha.0 w .alpha.cc, ¨.alpha.N-1 w .alpha.cc) opposé au premier poids ; et une troisième connexion de réglage de composante constante de courant (186) ayant un troisième poids positif (w .alpha.cc), dans lequel le n ud accumulateur (184) forme le n ud récepteur des premières, secondes et troisième connexions (181 0, ..., 181N-1, 182 0, ..., 182N-1, 186), dans lequel le n ud de synchronisation (185) forme le n ud émetteur de la troisième connexion (186), dans lequel, pour chacune des N entrées, les première et seconde connexions (181 0, ..., 181N-1, 182 0, ..., 182N-1) sont configurées pour adresser respectivement au n ud accumulateur (184) des premier et second événements ayant entre eux un premier intervalle de temps représentant un opérande respectif fourni sur ladite entrée, dans lequel le n ud de synchronisation (185) est configuré pour délivrer un troisième événement une fois que les premier et second événements ont été
adressés pour chacune des N entrées, de sorte que le n ud accumulateur (184) fait croître sa valeur de potentiel jusqu'à délivrance d'un quatrième événement, les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec un intervalle de temps représentant une somme pondérée des opérandes fournis sur les N entrées.
17. Dispositif selon la revendication 16, dans lequel le circuit de cumul (180) fait partie d'un circuit de sommation pondérée (190) comprenant en outre :
un second n ud accumulateur (188) ;
une quatrième connexion de réglage de composante constante de courant (191) ayant le troisième poids (W .alpha.cc) ; et des cinquième et sixième connexions (193, 192), dans lequel le n ud de synchronisation (185) du circuit de cumul forme le n ud émetteur de la quatrième connexion (191), dans lequel le n ud accumulateur (184) du circuit de cumul forme le n ud émetteur de la cinquième connexion (193), dans lequel le second n ud accumulateur (188) forme le n ud récepteur de la quatrième connexion (191) et le n ud émetteur de la sixième connexion (192), dans lequel, en réponse à la délivrance du troisième événement par le n ud de synchronisation (185), le n ud accumulateur (184) du circuit de cumul fait croître sa valeur de potentiel jusqu'à délivrance du quatrième événement sur la cinquième connexion (193), et le second n ud accumulateur (188) fait croître sa valeur de potentiel jusqu'à délivrance d'un cinquième événement sur la sixième connexion (192), les quatrième et cinquième événements ayant entre eux un troisième intervalle de temps en relation avec un intervalle de temps représentant une somme pondérée des opérandes fournis sur les N
entrées du circuit de cumul (180).
18. Dispositif selon la revendication 16, comprenant deux circuits de cumul (180A, 180B) assemblés dans un circuit de combinaison linéaire (200), dans lequel les deux circuits de cumul (180A, 180B) partagent leur n ud de synchronisation (184), dans lequel le circuit de combinaison linéaire comprend en outre un circuit soustracteur (170) configuré pour réagir au troisième événement délivré par le n ud de synchronisation partagé (185) et aux quatrièmes événements respectivement délivrés par les n uds accumulateurs (184) des deux circuits de cumul (180A, 180B) en délivrant une paire d'événements ayant entre eux un troisième intervalle de temps représentatif de la différence entre la somme pondérée pour l'un des deux circuits de cumul et la somme pondérée pour l'autre des deux circuits de cumul.
19. Dispositif selon l'une quelconque des revendications 11 à 18, dans lequel la valeur de courant dans au moins un n ud a une composante (g .function.) à
décroissance exponentielle entre deux événements reçus sur au moins une connexion de réglage de composante de courant à décroissance exponentielle ayant un poids respectif, et dans lequel le n ud récepteur d'une connexion de réglage de composante de courant à décroissance exponentielle est agencé pour réagir à un événement reçu sur ladite connexion en ajoutant le poids de ladite connexion à la composante à
décroissance exponentielle (g .function.) de sa valeur de courant.
20. Dispositif selon la revendication 19, comprenant au moins un circuit de calcul de logarithme (210), dans lequel le circuit de calcul de logarithme comprend :
un n ud accumulateur (216) ;
des première et seconde connexions de réglage de composante constante de courant, la première connexion (212) ayant un poids positif (~ .alpha.cc), et la seconde .
connexion (214) ayant un poids ( ¨~ .alpha.cc ) opposé au poids de la première connexion ;
une troisième connexion de réglage de composante de courant à décroissance exponentielle (217) ; et au moins une quatrième connexion (222), dans lequel le n ud accumulateur (216) forme le n ud récepteur des première, seconde et troisième connexions (212, 214, 217) et le n ud émetteur de la quatrième connexion (222), dans lequel les première et seconde connexions (212, 214) sont configurées pour adresser au n ud accumulateur (216) des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps (.DELTA. .tau.) représentant une grandeur d'entrée (x) du circuit de calcul de logarithme (210), dans lequel la troisième connexion (217) est configurée pour adresser au n ud accumulateur (216) un troisième événement simultané ou postérieur au second événement, de sorte que le n ud accumulateur fait croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la quatrième connexion (222), les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec un intervalle de temps (.DELTA..tau. out) représentant un logarithme de ladite grandeur d'entrée.
21. Dispositif selon la revendication 19, dans lequel au moins un n ud (238 ; 268) prenant en compte une composante de courant (g .function.) à décroissance exponentielle est le n ud récepteur d'une connexion de désactivation (236 ; 271) pour recevoir des événements de désactivation de la composante à
décroissance exponentielle.
22. Dispositif selon la revendication 21, comprenant au moins un circuit de calcul d' exponentielle (230), dans lequel le circuit de calcul d'exponentielle comprend :
un n ud accumulateur (238) ;
une première connexion de réglage de composante de courant à décroissance exponentielle (232) ;
une seconde connexion de désactivation (236) ;
une troisième connexion de réglage de composante constante de courant (237) ; et au moins une quatrième connexion (242), dans lequel le n ud accumulateur (238) forme le n ud récepteur des première, seconde et troisième connexions (232, 236, 237) et le n ud émetteur de la quatrième connexion (242), dans lequel les première et seconde connexions (232, 236) sont configurées pour adresser au n ud accumulateur (238) des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps (.DELTA. .tau.) représentant une grandeur d'entrée (x) du circuit de calcul d'exponentielle (230), dans lequel la troisième connexion (237) est configurée pour adresser au n ud accumulateur (238) un troisième événement simultané ou postérieur au second événement, de sorte que le n ud accumulateur fait croître sa valeur de potentiel jusqu'à
délivrance d'un quatrième événement sur la quatrième connexion (242), les troisième et quatrième événements ayant entre eux un second intervalle de temps en relation avec un intervalle de temps (.DELTA..tau. out) représentant une exponentielle de ladite grandeur d'entrée.
23. Dispositif selon la revendication 21, comprenant au moins un circuit multiplieur (250), dans lequel le circuit multiplieur comprend :
des premier, second et troisième n uds accumulateurs (256 1, 256 2, 268) ;
un n ud de synchronisation (260) ;
des première, seconde, troisième, quatrième et cinquième connexions de réglage de composante constante de courant, les première, troisième et cinquième connexions (252 1, 252 2, 272) ayant un premier poids positif (~acc), et les seconde et quatrième connexions (254 1, 254 2) ayant un second poids (~acc) opposé au premier poids ;
des sixième, septième et huitième connexions de réglage de composante de courant à décroissance exponentielle (262, 265, 269) ;
une neuvième connexion de désactivation (271) ; et au moins une dixième connexion (276), dans lequel le premier noeud accumulateur (256 1) forme le noeud récepteur des première, seconde et sixième connexions (252 1, 254 1, 262) et le noeud émetteur de la septième connexion (265), dans lequel le second noeud accumulateur (256 2) forme le noeud récepteur des troisième, quatrième et septième connexions (252 2, 254 2, 265) et le noeud émetteur des cinquième et neuvième connexions (272, 271), dans lequel le troisième noeud accumulateur (268) forme le noeud récepteur des cinquième, huitième et neuvième connexions (272, 269, 271) et le noeud émetteur de la dixième connexion (276), dans lequel le noeud de synchronisation (260) forme le noeud émetteur des sixième et huitième connexions (272, 271), dans lequel les première et seconde connexions (252 1, 254 1) sont configurées pour adresser au premier noeud accumulateur (256 1) des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps (.delta.t1) représentant un premier opérande (x1) du circuit multiplieur (250), dans lequel les troisième et quatrième connexions (252 2, 254 2) sont configurées pour adresser au second noeud accumulateur (256 2) des troisième et quatrième événements respectifs ayant entre eux un second intervalle de temps en relation avec un intervalle de temps (.delta.t2) représentant un second opérande (x2) du circuit multiplieur (250), dans lequel le noeud de synchronisation (260) est configuré pour délivrer un cinquième événement sur les sixième et huitième connexions une fois que les premier, second, troisième et quatrième événements ont été reçus, de sorte :
que le premier noeud accumulateur (256 1) fait croître sa valeur de potentiel jusqu'à délivrance d'un sixième événement sur la septième connexion (265) ;

qu'en réponse au sixième événement, le second noeud accumulateur (256 2) fait croître sa valeur de potentiel jusqu'à délivrance d'un septième événement sur les cinquième et neuvième connexions (272, 271) ;
qu'en réponse au septième événement, le troisième noeud accumulateur (268) fait croître sa valeur de potentiel jusqu'à délivrance d'un huitième événement sur la dixième connexion (276), les septième et huitième événements ayant entre eux un troisième intervalle de temps en relation avec un intervalle de temps (.delta.t out) représentant le produit des premier et second opérandes (x1, x2).
24. Dispositif selon la revendication 23, comprenant en outre une logique de détection de signe (300-303) associée au circuit multiplieur (250) pour détecter les signes respectifs des premier et second opérandes (x1, x2) et faire délivrer deux événements ayant entre eux l'intervalle de temps (.delta.t out) représentant le produit des premier et second opérandes sur l'une ou l'autre de deux sorties du circuit multiplieur (250) en fonction des signes détectés.
25. Dispositif selon l'une quelconque des revendications précédentes, dans lequel chaque connexion est associée à un paramètre de retard, pour signaler au n ud récepteur de ladite connexion d'effectuer un changement d'état avec, par rapport à la réception d'un événement sur ladite connexion, un retard indiqué par ledit paramètre.
26. Dispositif selon l'une quelconque des revendications précédentes, dans lequel l'intervalle de temps .delta.t entre deux événements représentant une grandeur de valeur absolue x est de la forme .delta.t = T min+ .x.T cod, où T
min et T cod sont des paramètres temporels prédéfinis.
27. Dispositif selon la revendication 26, dans lequel les grandeurs représentées par des intervalles de temps ont des valeurs absolues x comprises entre 0 et 1.
28. Dispositif selon l'une quelconque des revendications précédentes, comprenant, pour une grandeur d'entrée (x) :

une première entrée comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la première entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps (.delta.t) représentant une valeur positive de ladite grandeur d'entrée (x) ; et une seconde entrée comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la seconde entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps (.delta.t) représentant une valeur négative de ladite grandeur d'entrée (x).
29. Dispositif selon l'une quelconque des revendications précédentes, comprenant, pour une grandeur de sortie (x) :
une première sortie comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la première sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps (.delta.t) représentant une valeur positive de ladite grandeur de sortie (x) ; et une seconde sortie comportant un noeud ou deux noeuds parmi l'ensemble de noeuds de traitement, la seconde sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps (.delta.t) représentant une valeur négative de ladite grandeur de sortie (x).
30. Dispositif selon l'une quelconque des revendications précédentes, dans lequel l'ensemble de noeuds de traitement est sous la forme d'au moins un réseau programmable (400), les noeuds du réseau ayant un modèle de comportement commun en fonction des événements reçus, le dispositif comprenant en outre une logique de programmation (420) pour régler des poids et des paramètres de retard des connexions entre les noeuds du réseau en fonction d'un programme de calcul, et une unité de commande (410) pour fournir des grandeurs d'entrée au réseau et récupérer des grandeurs de sortie calculées conformément au programme.
CA2992036A 2015-07-13 2016-07-06 Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements Abandoned CA2992036A1 (fr)

Applications Claiming Priority (3)

Application Number Priority Date Filing Date Title
FR1556659 2015-07-13
FR1556659A FR3038997A1 (fr) 2015-07-13 2015-07-13 Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
PCT/FR2016/051717 WO2017009543A1 (fr) 2015-07-13 2016-07-06 Dispositif de traitement de données avec représentation de valeurs par des intervalles de temps entre événements

Publications (1)

Publication Number Publication Date
CA2992036A1 true CA2992036A1 (fr) 2017-01-19

Family

ID=54848671

Family Applications (1)

Application Number Title Priority Date Filing Date
CA2992036A Abandoned CA2992036A1 (fr) 2015-07-13 2016-07-06 Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements

Country Status (9)

Country Link
US (1) US20180357527A1 (fr)
EP (1) EP3323090A1 (fr)
JP (1) JP6732880B2 (fr)
KR (1) KR20180077148A (fr)
CN (1) CN108369660A (fr)
CA (1) CA2992036A1 (fr)
FR (1) FR3038997A1 (fr)
IL (1) IL256813A (fr)
WO (1) WO2017009543A1 (fr)

Families Citing this family (6)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
KR102331382B1 (ko) * 2016-08-19 2021-11-26 소니그룹주식회사 곱합 연산 장치
EP3605401A1 (fr) 2018-07-31 2020-02-05 GrAl Matter Labs S.A.S. Module de traitement de données, système de traitement de données et procédé de traitement de données
EP3617957A1 (fr) 2018-08-29 2020-03-04 GrAl Matter Labs S.A.S. Procédé de traitement neuromorphique et utilité de mise à jour pour utilisation en son sein
EP3640862A1 (fr) 2018-10-15 2020-04-22 GrAl Matter Labs S.A.S. Outil d'évaluation de réseau neuronal et procédé
CN111506384B (zh) * 2019-01-31 2022-12-09 中科寒武纪科技股份有限公司 模拟运算方法和模拟器
EP3716155A1 (fr) 2019-03-27 2020-09-30 Grai Matter Labs N ud et moteur de traitement de données

Family Cites Families (9)

* Cited by examiner, † Cited by third party
Publication number Priority date Publication date Assignee Title
US6581046B1 (en) * 1997-10-10 2003-06-17 Yeda Research And Development Co. Ltd. Neuronal phase-locked loops
KR100272167B1 (ko) * 1998-07-13 2000-11-15 윤종용 동기식 반도체 메모리 장치의 기준 신호 발생 회로
CA2467401A1 (fr) * 2001-11-16 2003-05-30 Yuan Yan Chen Reseau neuronal plausible, avec analyse de grappes supervisee ou non supervisee
JP5672489B2 (ja) * 2011-02-08 2015-02-18 ソニー株式会社 データ処理装置、及び、データ処理方法
GB2496886A (en) * 2011-11-24 2013-05-29 Melexis Technologies Nv Determining network address of integrated circuit network node
US8903746B2 (en) * 2012-03-22 2014-12-02 Audrey Kudritskiy System and method for viewing, modifying, storing, and running artificial neural network components
US20140044206A1 (en) * 2012-08-13 2014-02-13 Telefonaktiebolaget L M Ericsson (Publ) Methods of mapping retransmissions responsive to bundled nack messages and related devices
WO2014081671A1 (fr) * 2012-11-20 2014-05-30 Qualcomm Incorporated Modèles de neurones et synapses d'événements dynamiques pour réseaux neuronaux impulsionnels d'apprentissage
CN104605845B (zh) * 2015-01-30 2017-01-25 南京邮电大学 一种基于diva模型的脑电信号处理方法

Also Published As

Publication number Publication date
IL256813A (en) 2018-03-29
KR20180077148A (ko) 2018-07-06
CN108369660A (zh) 2018-08-03
EP3323090A1 (fr) 2018-05-23
FR3038997A1 (fr) 2017-01-20
JP6732880B2 (ja) 2020-07-29
WO2017009543A1 (fr) 2017-01-19
US20180357527A1 (en) 2018-12-13
JP2018529143A (ja) 2018-10-04

Similar Documents

Publication Publication Date Title
CA2992036A1 (fr) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
EP2713318B1 (fr) Système neuromorphique exploitant les caractéristiques intrinseque de cellules de mémoire
US10839292B2 (en) Accelerated neural network training using a pipelined resistive processing unit architecture
Lagorce et al. Stick: spike time interval computational kernel, a framework for general purpose computation using neurons, precise timing, delays, and synchrony
FR2646575A1 (fr) Procede et structure pour la compression de donnees
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d&#39;un reseau de neurones convolutionnel
JP2017509953A (ja) 低スパイキングレートのためのニューラルネットワークを構成すること
EP3659072B1 (fr) Calculateur pour reseau de neurones impulsionnel avec agregation maximale
FR3087560A1 (fr) Retro-propagation d&#39;erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
EP2965269A1 (fr) Organe à neurone artificiel et memristor
TW202338668A (zh) 用於神經網路訓練的稀疏性掩蔽方法
Borzunov et al. Distributed inference and fine-tuning of large language models over the internet
FR2690772A1 (fr) Processeur neuronal muni de moyens pour calculer une norme ou une distance.
WO2006032650A1 (fr) Procede de detection et de pistage de cibles ponctuelles, dans un systeme de surveillance optronique
CN110852414B (zh) 高精度低位卷积神经网络
JP2022541144A (ja) ハードウェア・アクセラレータとインターフェースするための方法
EP4202770A1 (fr) Reseau de neurones avec generation a la volee des parametres du reseau
EP0401927A1 (fr) Méthode d&#39;apprentissage, réseau de neurones et ordinateur pour simuler ledit réseau de neurones
US12002453B2 (en) Methods and devices for irregular pruning for automatic speech recognition
EP4078817A1 (fr) Procede et dispositif de codage additif de signaux pour implementer des operations mac numeriques a precision dynamique
FR3119696A1 (fr) Circuit neuromorphique et procede d&#39;entraînement associé
US20230267723A1 (en) Information processing system capable of preventing imitation of configuration of neural network, method of controlling image processing system, and storage medium
WO2020126529A1 (fr) Processeur de traitement de donnees, procede et programme d&#39;ordinateur correspondant.
EP4078816A1 (fr) Procede et dispositif de codage binaire de signaux pour implementer des operations mac numeriques a precision dynamique
US20230139347A1 (en) Per-embedding-group activation quantization

Legal Events

Date Code Title Description
FZDE Discontinued

Effective date: 20220927

FZDE Discontinued

Effective date: 20220927