FR3038997A1 - 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
FR3038997A1
FR3038997A1 FR1556659A FR1556659A FR3038997A1 FR 3038997 A1 FR3038997 A1 FR 3038997A1 FR 1556659 A FR1556659 A FR 1556659A FR 1556659 A FR1556659 A FR 1556659A FR 3038997 A1 FR3038997 A1 FR 3038997A1
Authority
FR
France
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.)
Pending
Application number
FR1556659A
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
Priority to FR1556659A priority Critical patent/FR3038997A1/fr
Priority to KR1020187001017A priority patent/KR20180077148A/ko
Priority to PCT/FR2016/051717 priority patent/WO2017009543A1/fr
Priority to JP2018501204A priority patent/JP6732880B2/ja
Priority to US15/743,642 priority patent/US20180357527A1/en
Priority to CN201680045376.1A priority patent/CN108369660A/zh
Priority to EP16750928.0A priority patent/EP3323090A1/fr
Priority to CA2992036A priority patent/CA2992036A1/fr
Publication of FR3038997A1 publication Critical patent/FR3038997A1/fr
Priority to IL256813A priority patent/IL256813A/en
Pending 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)
  • Advance Control (AREA)
  • Mobile Radio Communication Systems (AREA)

Abstract

Le dispositif de traitement de données comprend un ensemble de nœuds de traitement (21, 23, 25, 42, 44, 47, 48, 50) et des connexions entre les nœuds. Chaque connexion (22, 24, 41, 43, 45, 46, 49, 51) est configurée pour transmettre à un nœud récepteur des événements délivrés par un nœud émetteur. Chaque nœud 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. Les données traitées comprennent au moins une grandeur d'entrée représentée par un intervalle de temps entre deux événements reçus par au moins un nœud et au moins une grandeur de sortie représentée par un intervalle de temps entre deux événements délivrés par au moins un nœud.

Description

DISPOSITIF DE TRAITEMENT DE DONNEES AVEC REPRESENTATION DE VALEURS PAR DES INTERVALLES DE TEMPS ENTRE EVENEMENTS
[0001] La présente invention concerne les techniques de traitement de données. Des modes de réalisation mettent en œuvre une nouvelle manière d’exécuter des calculs dans des machines, en particulier dans des machines programmables.
[0002] 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. Lurber, 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 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 Π 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).
[0006] 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. Π est souhaitable que cette approche se prête bien à une mise en œuvre à consommation énergétique modérée et à un parallélisme massif.
[0008] Π est proposé un dispositif de traitement de données, comprenant un ensemble de nœuds de traitement et des connexions entre les nœuds. 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. Chaque nœud 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. Les données traitées comprennent au moins une grandeur d’entrée représentée par un intervalle de temps entre deux événements reçus par au moins un nœud et au moins une grandeur de sortie représentée par un intervalle de temps entre deux événements délivrés par au moins un nœud.
[0009] Les nœuds 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.
[0010] 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. À 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 nœud 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).
[0012] 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 nœud 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.
[0014] De nombreux modes de réalisation du dispositif de traitement de données incluent, parmi les connexions entre les nœuds, une ou plusieurs connexions de variation de potentiel ayant chacune un poids respectif. Le nœud 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.
[0015] Les connexions de variation de potentiel peuvent comprendre des connexions excitatrices, de poids positif, et des connexions inhibitrices, de poids négatif.
[0016] Pour manipuler une grandeur au sein du dispositif, l’ensemble des nœuds de traitement peut comprendre au moins un premier nœud formant le nœud récepteur d’une première connexion de variation de potentiel ayant un premier poids positif égal au seuil prédéfini pour la valeur de potentiel, et au moins un second nœud formant le nœud récepteur d’une seconde connexion de variation de potentiel de poids égal à la moitié du premier poids. Le premier nœud susmentionné forme en outre le nœud émetteur et le nœud récepteur d’une troisième connexion de variation de potentiel de poids égal à l’opposé du premier poids, ainsi que le nœud émetteur d’une quatrième connexion, tandis que le second nœud forme en outre le nœud é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.
[0017] Diverses opérations peuvent être exécutées à l’aide d’un dispositif selon l’invention.
[0018] 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 nœuds d’entrée ; un nœud de sortie ; des premier et second nœuds 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 égal à la moitié du 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.
[0019] Dans ce circuit de calcul de minimum, le premier nœud d’entrée forme le nœud émetteur des première et troisième connexions et le nœud récepteur de la dixième connexion, le second nœud d’entrée forme le nœud émetteur des seconde et quatrième connexions et le nœud récepteur de la neuvième connexion, le premier nœud de sélection forme le nœud émetteur des cinquième, septième et neuvième connexion et le nœud récepteur des première et huitième connexions, le second nœud de sélection forme le nœud émetteur des sixième, huitième et dixième connexions et le nœud récepteur des seconde et septième connexions, et le nœud de sortie forme le nœud récepteur des troisième, quatrième, cinquième et sixième connexions.
[00201 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 nœuds d’entrée ; un nœud de sortie ; des premier et second nœuds de sélection ; des première, seconde, troisième et quatrième connexions de variation de potentiel ayant chacune un premier poids positif égal à la moitié du 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.
[00211 Dans ce circuit de calcul de maximum, le premier nœud d’entrée forme le nœud émetteur des première et troisième connexions, le second nœud d’entrée forme le nœud émetteur des seconde et quatrième connexions, le premier nœud de sélection forme le nœud émetteur de la cinquième connexion et le nœud récepteur des première et sixième connexions, le second nœud de sélection forme le nœud émetteur de la sixième connexion et le nœud récepteur des seconde et cinquième connexions, et le nœud de sortie forme le nœud récepteur des troisième et quatrième connexions.
[0022] 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 nœuds de synchronisation ; des premier et second nœuds d’inhibition ; des premier et second nœuds de sortie ; des première, seconde, troisième, quatrième, cinquième et sixième connexions de variation de potentiel ayant chacune un premier poids positif é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.
[00231 Dans ce circuit soustracteur, le premier nœud de synchronisation forme le nœud émetteur des première, seconde, troisième et neuvième connexions, le second nœud de synchronisation forme le nœud émetteur des quatrième, cinquième, sixième et dixième connexions, le premier nœud d’inhibition forme le nœud émetteur de la onzième connexion et le nœud récepteur des troisième, huitième et dixième connexions, le second nœud d’inhibition forme le nœud émetteur de la douzième connexion et le nœud récepteur des sixième, septième et neuvième connexions, le premier nœud de sortie forme le nœud émetteur de la septième connexion et le nœud récepteur des première, cinquième et onzième connexions, et le second nœud de sortie forme le nœud émetteur de la huitième connexion et le nœud récepteur des seconde, quatrième et douzième connexions. Le premier nœud 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 nœud 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 nœud de sortie si le premier intervalle de temps est plus long que le second intervalle de temps et par le second nœud 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.
[00241 Le circuit soustracteur peut comprendre en outre une logique de détection de zéro incluant au moins un nœud de détection associé à des connexions de détection et d’inhibition avec les premier et second nœud de synchronisation, l’un des premier et second nœud d’inhibition et l’un des premier et second nœud 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 nœuds de sortie lorsque les premier et second intervalles de temps sont sensiblement égaux.
[0025] Dans diverses réalisations du dispositif, 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. Un tel nœud 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 nœuds 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 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 cette connexion en ajoutant le poids de la connexion à la composante constante de sa valeur de courant.
[0027] 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 nœud 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, [0028] Dans ce circuit de mémoire inverseuse, le nœud accumulateur forme le nœud récepteur des première, seconde et troisième connexions et le nœud émetteur de la quatrième connexion, et les première et seconde connexions sont configurées pour adresser respectivement au nœud 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 nœud accumulateur réagit ensuite à un troisième é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 nœuds 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.
[00301 Dans ce circuit de mémoire, le premier nœud accumulateur forme le nœud récepteur de la première connexion et le nœud émetteur de la troisième connexion, le second nœud accumulateur forme le nœud récepteur des seconde, troisième et quatrième et cinquième connexions et le nœud émetteur de la cinquième connexion, les première et seconde connexions sont configurées pour adresser respectivement aux premier et second nœuds 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 nœud 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.
[0031] Le circuit de mémoire peut en outre comprendre une sixième connexion ayant le premier nœud accumulateur comme nœud émetteur, la sixième connexion délivrant un événement pour signaler la disponibilité en lecture du circuit de mémoire.
[0032] 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 nœud de synchronisation. Le nœud de synchronisation est sensible à chaque événement délivré sur la sixième connexion de l’un des N circuits de mémoire via une connexion de variation de potentiel respective de poids égal au premier poids divisé par N. Le nœud 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.
[00331 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 nœud accumulateur ; un nœud 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.
[00341 Dans ce circuit de cumul, le nœud accumulateur forme le nœud récepteur des premières, secondes et troisième connexions, le nœud de synchronisation forme le nœud é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 nœud 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 nœud 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 nœud 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 circuit de cumul fait partie d’un circuit de sommation pondérée comprenant en outre : un second nœud 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.
[0036] Dans ce circuit de sommation pondérée, le nœud de synchronisation du circuit de cumul forme le nœud émetteur de la quatrième connexion, le nœud accumulateur du circuit de cumul forme le nœud émetteur de la cinquième connexion, et le second nœud accumulateur forme le nœud récepteur de la quatrième connexion et le nœud émetteur de la sixième connexion. En réponse à la délivrance du troisième événement par le nœud de synchronisation, le nœud 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 nœud 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.
[0037] 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 nœud de synchronisation, et un circuit soustracteur configuré pour réagir au troisième événement délivré par le nœud de synchronisation partagé et aux quatrièmes événements respectivement délivrés par les nœuds 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.
[0038] Dans un certain nombre de réalisations du dispositif, l’ensemble de nœuds de traitement comprend au moins un nœud 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 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 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 nœud 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.
[0040] Dans ce circuit de calcul de logarithme, le nœud accumulateur forme le nœud récepteur des première, seconde et troisième connexions et le nœud émetteur de la quatrième connexion. Les première et seconde connexions sont configurées pour adresser au nœud 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 nœud accumulateur 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, 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] Π peut en outre y avoir dans le dispositif de traitement au moins une connexion de désactivation dont le nœud récepteur est un nœud 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 nœud 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.
[0043] Dans ce circuit de calcul d’exponentielle, le nœud accumulateur forme le nœud récepteur des première, seconde et troisième connexions et le nœud émetteur de la quatrième connexion. Les première et seconde connexions sont configurées pour adresser au nœud 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 nœud accumulateur 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, 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 nœuds accumulateurs ; un nœud 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.
[0045] Dans ce circuit multiplieur, le premier nœud accumulateur forme le nœud récepteur des première, seconde et sixième connexions et le nœud émetteur de la septième connexion, le second nœud accumulateur forme le nœud récepteur des troisième, quatrième et septième connexions et le nœud émetteur des cinquième et neuvième connexions, le troisième nœud accumulateur forme le nœud récepteur des cinquième, huitième et neuvième connexions et le nœud émetteur de la dixième connexion, et le nœud de synchronisation forme le nœud émetteur des sixième et huitième connexions. Les première et seconde connexions sont configurées pour adresser au premier nœud 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 nœud 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 nœud 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 nœud 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 nœud 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 nœud 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.
[0046] 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.
[0047] Dans une réalisation typique du dispositif de traitement, chaque connexion est associée à un paramètre de retard, pour signaler au nœud 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.
[0048] L’intervalle de temps At entre deux événements représentant une grandeur de valeur absolue x peut être, en particulier, de la forme Al = Tmin + x.Tcod, où Tmin et T,,,,/ 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.
[0049] Une échelle logarithmique plutôt que linéaire de At en fonction de jc peut également convenir à certaines applications. D’autres échelles encore peuvent être utilisées.
[00501 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 nœud ou deux nœuds parmi l’ensemble de nœuds 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 nœud ou deux nœuds parmi l’ensemble de nœuds 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.
[0051] Pour une grandeur de sortie, le dispositif de traitement peut comprendre : une première sortie comportant un nœud ou deux nœuds parmi l’ensemble de nœuds 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 nœud ou deux nœuds parmi l’ensemble de nœuds 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.
[0052] Dans une mise en œuvre du dispositif de traitement, l’ensemble de nœuds de traitement est sous la forme d’au moins un réseau programmable, les nœuds 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 nœuds 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.
[0054] 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 nœuds de traitement ayant des connexions entre eux.
[0055] 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 « nœud » et « neurone », de même qu’elle utilise le terme « synapse » pour désigner les connexions entre deux nœuds ou neurones au sein du dispositif.
[0056] Les synapses sont orientées, c’est-à-dire que chaque connexion a un nœud émetteur et un nœud récepteur, et transmet au nœud récepteur des événements générés par le nœud émetteur. Un événement se manifeste typiquement par un pic (« spike ») sur un signal de tension ou de courant délivré le nœud émetteur et influençant le nœud récepteur.
[0057] 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 nœud émetteur exerce sur le nœud récepteur lors d’un événement.
[0058] Une description du comportement de chaque nœud 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 nœud varie dans le temps en fonction des événements que le nœud reçoit sur ses connexions entrantes. Lorsque cette valeur de potentiel V atteint ou dépasse un seuil Vt, le nœud émet un événement (“spike”) qui est transmis au(x) nœud(s) situé(s) en aval.
[0059] Pour décrire le comportement d’un nœud, 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 ge et éventuellement une composante gf.
[0060] La composante ge est une composante qui reste constante, ou sensiblement constante, entre deux événements que le nœud 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 nœud reçoit sur une synapse particulière qu’on appelle ici connexion de réglage de composante de courant à décroissance exponentielle.
[0062] Un nœud 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.
[0063] Dans l’exemple considéré, on peut ainsi exprimer le comportement d’un nœud de traitement de manière générique par un jeu d’équations différentielles : (1)
où : • 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 ; • gâte est un signal binaire d’activation (gâte = 1) ou de déactivation (gâte = 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 Tf est une constante de temps réglant la dynamique exponentielle de la décroissance de la composante gf.
[0064] 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’œuvre dans le dispositif.
[0065] 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 nœud 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 ^y-synapses, qui modifient directement le courant d’entrée constant du neurone : ge <— ge + w. En d’autres termes, le nœud récepteur réagit à un événement reçu sur une yy,-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 ^/-synapses, qui modifient directement le courant d’entrée à dynamique exponentielle du neurone : g/<— gf + w. En d’autres termes, le nœud récepteur réagit à un événement reçu sur une çy-synapsc 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 gaie-synapses, qui activent le neurone en fixant gâte <r- 1 lorsqu’elles indiquent un poids positif vv = 1 et désactivent le neurone en fixant gâte 0 lorsqu’elles indiquent un poids négatif w = - 1.
[0066] 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 nœud émetteur et par la réinitialisation de ses variables d’état à : V^Vreset (3) 8e <r~ 0 (4) gf<r~ 0 (5) gâte 0 (6) [0069] 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 Tneu 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. Tneu 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 U-synapse pour déclencher un neurone depuis l’état réinitialisé, et un autre poids standard ny comme le poids d’inhibition d’effet contraire : (V)
(B) [0072] 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 :
(9) où/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 jc peuvent être délivrés par un même neurone n ou par deux neurones distincts.
[0074] 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 :
(10) où/-1 est l’inverse fonction de codage choisie et i est un nombre pair.
[0075] La fonction de codage / : B -+ B peut être choisie en tenant compte des signaux traités dans un système particulier, et adaptée à la précision requise. La fonction / 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 :
(H) avec x e [0, 1].
[0076] Cette représentation de la fonction /: [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 + Tcod. 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 7„„„ > 0 donne à ce neurone le temps de se réinitialiser. D’autre part, un choix 7),,,,, > 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.
[0077] La forme (11) pour la fonction de codage/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] 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.
[0079] Ainsi, pour prolonger l’exemple de la forme (11), si une grandeur jc a une valeur dans l’intervalle [-1, +1], on la représente par un intervalle de temps At= Tmin + Lvl.T,,,,/ entre deux événements propagés sur le trajet associé aux valeurs positives si jc > 0, et sur le trajet associé aux valeurs négatives si jc < 0.
[0080] Le choix (9) ou (11) pour la fonction de codage amène à définir deux poids standards pour les y,,-synapses. On définit le poids wW( comme étant la valeur de ge nécessaire pour faire déclencher un neurone, depuis son état réinitialisé, au bout du temps Tmœc — Tmin + Tcod, soit, d’après (1) :
(12) [0081] On définit en outre le poids wacc comme étant la valeur de ge nécessaire pour faire déclencher un neurone, depuis son état réinitialisé, au bout du temps Tcod, soit :
(13) [0082] Pour les ge-synapses, on peut se donner un autre poids standard gmuit :
(14) [0083] Les connexions entre nœuds du dispositif peuvent en outre être associées chacune à un paramètre de retard respectif. Ce paramètre indique un retard avec lequel le nœud 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.
[0084] Diverses technologies sont utilisables pour implémenter les nœuds 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 nœud 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 Vt.
[0085] Une autre possibilité est de recourir à des technologies numériques, par exemple à base de FPGA (“field-programmable gâte arrays”), qui offrent un moyen commode d’implémenter des neurones artificiels.
[0086] Dans la suite, on présente un certain nombre de dispositifs ou circuits de traitement de données réalisés à l’aide de nœuds 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 nœuds représentées en trait plein sont des U-synapses ; • les connexions représentées en trait interrompu sont des y,,-synapses ; • les connexions représentées en trait mixte sont des ^/-synapses ; • les connexions représentées en pointillés sont des gaie-synapses ; • les connexions sont orientées avec un symbole du côté de leurs nœuds 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 nœuds 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 we ont chacune un neurone recall 15 comme nœud émetteur et un neurone output 16 comme nœud récepteur. La synapse 11 est configurée avec un paramètre de retard Tsym 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 Τ^η et Tsyn+f(x), de sorte que le circuit 10 délivre deux événements séparés dans le temps de la valeur/(jc) représentant la constante x. A. Mémoires A. 1. Mémoire in verseuse [0090] La figure 2 montre un circuit de traitement 18 constituant une mémoire inverseuse.
[0091] Ce dispositif 18 mémorise une valeur analogique r codée par une paire de spikes d’entrée fournis à un neurone input 21 avec un intervalle Alm =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 Atout correspondant à la valeur 1 - x au niveau du neurone output 33, soit Atout — fi, 1 — xf [0092] Le neurone input 21 appartient à un groupe de nœuds 20 servant à produire deux événements séparés de f(x) - Tmin = x.Tcod sur des y,,-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 L-synapsc 22 présente un poids we, tandis que la U-synapse 24 présente un poids égal à vvy/2. Le neurone firsl 23 s’auto-inhibe par une V-synapse 28 de poids w, et de retard Tsyn.
[0093] La synapse excitatrice 26 va du neurone first 23 au neurone acc 30, et présente le poids wacc et un retard Tsyn + Tmin. La y,,-synapse inhibitrice 27 va du neurone last 25 au neurone acc 30, et présente le poids -wU(( et un retard Tsyn. Une L-synapsc excitatrice 32 va du neurone recall 31 au neurone output 33, et présente le poids we et un retard 2Tsyn + Tneu. Une U-synapse excitatrice 34 va du neurone recall 31 au neurone acc 30, et présente le poids wacc et un retard Tsyn. Finalement, une U-synapse excitatrice 35 va du neurone acc 30 au neurone output 33, et présente le poids we et un retard Tsyn.
[0094] Le fonctionnement du dispositif de mémoire inverseuse 18 est illustré par la figure 3.
[0095] L’émission d’un premier événement (spike) au temps tfn au niveau du neurone input 21 déclenche un événement en sortie du neurone firsl 23 au bout du temps Tsyn + Tneu, soit au temps tjirst sur la figure 3, et fait monter à V,/2 la valeur de potentiel du neurone last 25. Le neurone first 23 s’inhibe alors via la synapse 28 en donnant la valeur -Vt à son potentiel de membrane, et il fait démarrer l’accumulation par le neurone acc 30 après Tgyn + Tmin, soit au temps tjt, via la y,,-synapse 26.
[0096] L’émission du second spike au temps tfn = tfn + Tmin + x. Tcod au niveau du neurone input 21 amène le neurone last 25 au potentiel seuil Vt. Un événement est alors produit au temps tlast = tfn + Tsyn + Tneu sur la y,,-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 y,,-synapse 27 en réponse au second spike stoppe l’accumulation réalisée par le neurone acc 30 au temps tlnd = tjt + x. Tcod.
[0097] À ce stade, la valeur de potentiel Vt.x.^-£2^- est stockée dans le neurone acc 30
Tmax pour conserver la valeur x Son complément l - x peut ensuite être lu en activant le neurone recall 31, ce qui a lieu au temps t^ecall sur la figure 3. Cette activation fait redémarrer le processus d’accumulation dans le neurone acc 30 au temps ü|t = t^ecall + Tsyn et provoque un événement au temps tlut = t^ecall + 2Tsyn + 2Tneu sur le neurone output 33. L’accumulation se poursuit dans le neurone acc 30 jusqu’au temps tjnd où sa valeur de potentiel atteint le seuil Vt, soit tjnd = ü|t + Tmax — x. Tcod. Un événement est émis sur la y-synapse 35 au temps tjnd + Tneu et provoque un autre événement sur le neurone output 33 au temps tout — tenC[ + TSyn + 2Tneu — trecau + 2TSyn + 2Tneu + Tmin + (1 — x). TC0(i· [0098] Finalement, les deux événements délivrés par le neurone output 33 sont séparés par un intervalle de temps AT0Ut = t%ut - t£ut = Tmin + (1 - x).Tcod = /(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. A.2. Mémoire [00100] La figure 4 montre un circuit de traitement 40 constituant une mémoire.
[00101] 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 Atin =/(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 =/(x).
[00102] 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.
[00103] Le neurone input 21 appartient à un groupe de nœuds 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/(x) = Tmin + x.Τ,,,,ι par le neurone input 21.
[00104] Une ge-synapse 41 va du neurone first 25 au premier neurone acc 42, et présente le poids wacc· Le neurone acc 42 démarre ainsi une accumulation au temps tjt = tln + 2. Tsyn + Tneu (figure 5). Une ge-synapse 43 va du neurone last 25 au second neurone acc 44, et présente le poids wacc· Le neurone acc 44 démarre ainsi une accumulation au temps tjti = tfn + 2. Tsyn + Tneu. En sortie du neurone acc 42, une autre ^.-synapse 45 de poids w^c va au neurone acc 44, et une U-synapse 46 de poids we va au neurone ready 47.
[00105] L’accumulation sur le neurone acc 42 se poursuit jusqu’au temps tlnd = tjt + Tmax °ù le potentiel du neurone acc 42 atteint le seuil Vt, ce qui provoque l’émission d’un spike au temps t\cc = tlnd + Tneu sur la -synapse 45 (figure 5). Ce spike stoppe l’accumulation sur le neurone acc 44 au temps tlnd2 = t\cc + Tsyn = t*n + 3. Tsyn + 2. Tneu + Tmax. Le déclenchement du neurone acc 42 provoque également un événement sur le neurone ready 47 au temps txeady = t\cc + Tsyn + Tneu.
[00106] À ce stade, la valeur de potentiel stockée dans le neurone acc 44 est
, ce qui permet de conserver la valeur x. La lecture peut alors intervenir en activant le neurone recall 48, ce qui a lieu au temps txecall sur la figure 5.
[00107] L’activation du neurone recall 48 provoque un événement au temps tgUt = trecall + Tsyn + Tneu sur le neurone output 50 via la L-synapsc 49, et fait redémarrer le processus d’accumulation dans le neurone acc 44 via la ge-synapse 51 au temps t|t2 = trecall + Tsyn. L’accumulation se poursuit dans le neurone acc 44 jusqu’au temps t|nd2 où sa valeur de potentiel atteint le seuil Vt, soit t|nd2 = ü|t2 + / (x) — Tsyn — Tneu . Un événement est émis sur la L-synapsc 52 au temps t\cc2 = tgnci2 + Tneu et provoque un autre événement sur le neurone output 50 au temps tgUt = t\cc2 + Tsyn + Tneu = tlecall + Tsyn + Tneu 4" f ipT).
[00108] Finalement, les deux événements délivrés par le neurone output 50 sont séparés par un intervalle de temps AT0Ut = tgUt — tgUt = /(x).
[00109] 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.
[00110] 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 Tmax, sans être limité à la forme (11) ci-dessus. A. 3. Mémoire signée [00111] 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 Atin =/(bel) 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 jc < 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.
[00112] 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 y-synapses excitatrices 63, 64 de poids we. Ainsi, celui des deux neurones 61, 62 qui reçoit les deux spikes représentant bel active deux fois le neurone input 21 du circuit 40, de sorte que l’intervalle de temps /(bel) sera restitué sur le neurone output 50 du circuit 40.
[00113] En outre, les neurones 61, 62 sont respectivement reliés à des neurones ready+ et ready- 65, 66 par des L-synapscs excitatrices 67, 68 de poids wJA. 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 wJ2. Chacun des neurones ready + et ready- 65, 66 est relié au neurone recall 48 du circuit 40 par des L-synapscs excitatrices respectives 73, 74 de poids we. Une L-synapsc inhibitrice 75 de poids vv’,/2 va du neurone ready+ 65 au neurone ready- 66, et réciproquement une L-synapsc inhibitrice 76 de poids wd2 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 L-synapsc inhibitrice 77 de poids 2Wi. Le neurone ready- 66 est relié au neurone output+ 81 du circuit de mémoire signée par une y-synapse inhibitrice 78 de poids 2w,·.
[00114] Le neurone output 50 du circuit 40 est relié aux des neurones output+ et output-81, 82 par des y-synapses excitatrices respectives 79, 80 de poids we.
[00115] La sortie du circuit de mémoire signée 60 comporte un neurone ready 84 qui est le nœud récepteur d’une y-synapse excitatrice 85 de poids we provenant du neurone ready 47 du circuit de mémoire 40.
[00116] 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.
[00117] L’apparition des deux événements aux temps t}n et tfn = t}n + /(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 à la valeur Vt.(l — Tsyn Tneu\ cl son neurone ready 47 qui produit un événement au ^ Tmax * temps tyeady, comme décrit précédemment.
[00118] 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 t^ecall sur la figure 7.
[00119] L’activation du neurone recall 70 déclenche le neurone ready + 65 ou ready- 66 via la y-synapse 70 ou 71, et ce déclenchement remet l’autre neurone ready- 66 ou ready+ 65 à zéro via la y-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 y-synapse 77 ou 78 en amenant son potentiel à -2Vt.
[00120] L’événement délivré par le neurone ready + 65 ou ready- 66 au temps tjign est fourni au via la y-synapse 73 ou 74. Ceci provoque l’émission d’une paire de spikes séparés d’un intervalle de temps égal à /(|x|) par le neurone output 50 du circuit 40. Cette paire de spikes communiquée aux neurones output+ et output- 81, 82 via les y-synapses 79, 80 fait déclencher deux fois, aux temps tgUt et tgUt = tgUt + /(|x|), 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.
[00121] 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 U-synapses 63 et 64 directement sur le neurone first 23 du circuit 40 représenté sur la figure 4 (à la place de la y-synapse 22), et en ajoutant des y-synapses excitatrices de poids wJ2 des neurones input + et input- 61, 62 vers le neurone last 25 (à la place de la y-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 y-synapses 79, 80) ; et • se dispenser du neurone recall 48 du circuit de mémoire 40, en envoyant les y-synapses 73 et 74 directement sur les neurones output+ et output- 81, 82 (à la place de la y-synapse 49), et en ajoutant des y,,-synapses excitatrices de poids wW( 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 [001221 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.
[001231 Chaque signal code une valeur jc* pour k = 0, 1, N - 1 et se présente sous la forme d’une paire de spikes survenant à des instants tlnk et tfnk = tlnk + Atk avec Atk=f(xk)e [Tmin,Tmœc]· 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 t^utk et t^utk = t^utk + Atk avec touto = touti = ··· = toutN-1’ comme le montre la figure 9 dans un cas où N = 2.
[001241 Le circuit 90 représenté sur la figure 8 comporte N neurones input 91o, ..., 91jv_i et N neurones output 92q, ..., 92jv_i. Chaque neurone input 91* est le nœud émetteur d’une y-synapse 93* de poids we dont le nœud récepteur est le neurone input 21* d’un circuit de mémoire respectif 40*. Le neurone output 50* de chaque circuit de mémoire 40* est le nœud émetteur d’une y-synapse 94* de poids we dont le nœud récepteur est le neurone output 92* du circuit de synchronisation 90.
[001251 Le circuit de synchronisation 90 comporte un neurone sync 95 qui est le nœud récepteur de N y-synapses excitatrices 96o, ..., 96 γ i de poids w,/N dont les nœuds émetteurs sont respectivement les neurones ready 47o, ..., 47v | des circuits de mémoire 40o, ..., 40,v i. Le circuit 90 comporte encore y-synapses excitatrices 97ο, ..., 97,γ i de poids we ayant le neurone sync 95 pour nœud émetteur et, respectivement, les neurones recall 48o, ..., 48jv_i des circuits de mémoire 40o, ..., 40,γ i pour nœuds récepteurs.
[001261 Le neurone sync 95 reçoit les événements produits par les neurones ready 47o, ..., 47jv_i au fur et à mesure que les N signaux d’entrée sont chargés dans les circuits de mémoire 40q, ..., 40,γ i, soit aux temps t^dy0, t^dyl 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 tjync sur la figure 9. Ceci déclenche, via les synapses 97ο, ..., 97,ν i et les synapses 49 des circuits de mémoire 40o, ..., 40;\· i, l’émission d’un premier spike synchronisé i^outo = ··· = toutN-1) sur chaque neurone output 92o, ..., 92n-\. Puis chaque circuit de mémoire 40/, produit son second spike respectif au temps tgUtk.
[00127] 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 91o, ..., 91,ν i et output 92q, ..., 92v | sont optionnels, puisque les entrées peuvent être fournies directement par les neurones input 21q, ..., 21,ν i des circuits de mémoire 40o, ..., 40,ν i et les sorties directement par les neurones output 50o, ..., 50,\· i des circuits de mémoire 40o, ..., 40;\· i. Les y-synapses 46 des circuits de mémoire 40o, ..., 40v | peuvent aller directement au neurone sync 95, sans passer par un neurone ready 47o, ..., 47n~i· Les synapses 97o, ..., 97,ν i peuvent attaquer directement les neurones output 50ο, ..., 50,\· i des circuits de mémoire (remplaçant ainsi leurs synapses 49), et le neurone sync 95 peut également constituer le nœud émetteur des y,,-synapses 51 des circuits de mémoire 40o, ..., 40v | pour commander le redémarrage d’accumulation dans les neurones acc 44 (figures 4 et 5).
[00128] D’autre part, il est possible de ne sortir qu’un seul événement, au temps tout = touto = tluti = ··· = tgUtN_i, en tant que premier événement de toutes les paires formant les signaux de sortie synchronisés. Le neurone sync 95 commande alors directement l’émission du premier spike sur une sortie particulière du circuit (qui peut être l’un des neurones output 92ο, ..., 92,ν i ou un neurone spécifique), puis le second spike de chaque paire en réactivant les neurones acc 44 des circuits de mémoire 40o, ..., 40v | via une y,,-synapse. En d’autres termes, le neurone sync 95 joue le rôle des neurones recall 48 des différents circuits de mémoire.
[00129] 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 L-synapscs 46 de poids w,J2 venant directement des neurones acc 42 des deux circuits de mémoire, et il est le nœud émetteur des y,,-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 tout = tjync + 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 92q, 92 i.
[001301 Π 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 92i pour la grandeur a'i).
[001311 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 nœud (dans le cas d’une grandeur de sortie) ou soient reçus par un unique nœud (dans le cas d’une grandeur d’entrée). B. Opérations logiques B.l. Minimum [001321 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 nœuds d’entrée 101, 102 et délivre ce minimum sur un nœud de sortie 103.
[001331 Outre les neurones input 101, 102 et le neurone output 103, ce circuit 100 comprend deux neurones ‘smaller’ 104, 105. Une L-synapsc excitatrice 106, de poids we, va du neurone input 101 au neurone smaller 104. Une U-synapse excitatrice 107, de poids we, va du neurone input 102 au neurone smaller 105. Une U-synapse excitatrice 108, de poids wJ2, va du neurone input 101 au neurone output 103. Une U-synapse excitatrice 109, de poids wJ2, va du neurone input 102 au neurone output 103. Une U-synapse excitatrice 110, de poids wJ2, va du neurone smaller 104 au neurone output 103. Une U-synapse excitatrice 111, de poids wJ2, va du neurone smaller 105 au neurone output 103. Une U-synapse inhibitrice 112, de poids wJ2, va du neurone smaller 104 au neurone smaller 105. Une U-synapse inhibitrice 113, de poids vv’,/2, va du neurone smaller 105 au neurone smaller 104. Une U-synapse inhibitrice 114, de poids h-v, va du neurone smaller 104 au neurone input 102. Une U-synapse inhibitrice 115, de poids h-v, 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 Tsym sauf les synapses 108, 109 pour lesquelles le retard est de 2.Tsyn + Tneu.
[00134] L’émission du premier spike sur chaque neurone input 101, 102 au temps tfnl = tfn2 (figure 12) amène chacun des neurones smaller 104, 105 à une valeur de potentiel VJ2 au temps tlnl +Tsyn, et déclenche un premier événement sur le neurone output 103 au temps tgUt = tlnl + 2. Tsyn + 2. Tneu. L’émission du second spike sur le neurone input ayant la plus petite valeur, à savoir le neurone 101 au temps tfnl = tfnl + 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 tgmaUerl = tfni + Tsyn + Tneu 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 tfn2 = tln2 + 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 tout\ tsmaiieri 4" Tsyn + Tneu ^ini 4” 2. Tsyn + 2. Tneu.
[00135] Finalement, le neurone output 103 restitue bien, entre les événements qu’il délivre, l’intervalle de temps minimum t%ut — tgUt = tfnl — tfnl = zkqcntrc 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.
[00136] Le circuit de calcul de minimum 100 de la figure 11 fonctionne dès lors que la fonction/telle que At =f(x) est une fonction croissante. B.2. Maximum [00137] 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 nœuds d’entrée 121, 122 et délivre ce maximum sur un nœud de sortie 123.
[00138] Outre les neurones input 121, 122 et le neurone output 123, ce circuit 120 comprend deux neurones ‘larger’ 124, 125. Une L-synapsc excitatrice 126, de poids we/2, va du neurone input 121 au neurone larger 124. Une U-synapse excitatrice 127, de poids vvy/2, va du neurone input 122 au neurone larger 125. Une U-synapse excitatrice 128, de poids vvy/2, va du neurone input 121 au neurone output 123. Une U-synapse excitatrice 129, de poids we/2, va du neurone input 122 au neurone output 123. Une U-synapse inhibitrice 132, de poids wu va du neurone larger 124 au neurone larger 125. Une U-synapse inhibitrice 133, de poids ny, 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.
[00139] Les premiers spikes émis de façon synchronisée (tfnl = t*n2) par les neurones input 121, 122 amènent les neurones larger 124, 125 à une valeur de potentiel V,/2 au temps tfnl +Tsyn, et déclenchent un premier événement sur le neurone output 123 au temps tout = tira + Tsyn + Tneu, (figure 14). L’émission du second spike sur le neurone input ayant la plus petite valeur, à savoir le neurone 121 au temps tfnl = tlnl + Atx 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 tfarger2 = tfnl + 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 tfn2 = t\n2 + At2 (avec At2 > At\), 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 tgUt = tfn2 + Tsyn + Tneu.
[00140] Finalement, le neurone output 123 restitue bien, entre les événements qu’il délivre, l’intervalle de temps maximum tgUt — tgUt = tfn2 — tln2 = Zlt2 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.
[00141] Le circuit de calcul de maximum 120 de la figure 13 fonctionne dès lors que la fonction/telle que At =f(x) est une fonction croissante. C. Opérations linéaires C.l. Soustraction [00142] La figure 15 montre un circuit de soustraction 140 qui calcule la différence entre deux valeurs xj,x2 reçues de façon synchronisée sur deux nœuds d’entrée 141, 142 et délivre le résultat xi - x2 sur un nœud de sortie 143 s’il est positif et sur un autre nœud de sortie 144 s’il est négatif. On suppose ici que la fonction/telle que Atj =f(xi) et At2 =/(¾) est une fonction linéaire, comme c’est le cas avec la forme (11).
[00143] 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 ‘inb’ 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 we, 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 we, 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 ny, va du neurone sync 145 au neurone inb 148. Une V-synapse inhibitrice 159, de poids ny, 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 2ny, va du neurone inb 147 au neurone output+ 143. Une V-synapse inhibitrice 163, de poids 2ny, 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 Tmm + 3.Tsyn + 2.Tneu. Les synapses 153 et 156 sont associées à un retard de 3.Tsyn + 2.Tneu.
[00144] Le fonctionnement du circuit de soustraction 140 selon la figure 15 est illustré par la figure 16 dans le cas où le résultat xj-%2 est positif. Les choses se passent symétriquement si le résultat est négatif.
[00145] Les premiers spikes émis de façon synchronisée (t*nl = t*n2) par les neurones input 141, 142 amènent les neurones sync 145, 146 à la valeur de potentiel V,/2 au temps tfnl +Tsyn. L’émission du second spike sur le neurone input fournissant la plus petite valeur, à savoir le neurone 142 au temps tfn2 = tfn2 + At2 dans l’exemple de la figure 16 où At2 < Aî-l, 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 tjync2 = tfn2 + 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 tsync2 + Tsyn — tin2 + 2. Tsyn + Tneu , • la synapse 157 excite le neurone inb 148 qui délivre un événement au temps finb2 tsync2 T Tsyn + Tneu ^in2 "h 2.Tsyn + 2. Tneu, lequel evenement inhibe a son tour, via la synapse 163, le neurone output- 144 dont le potentiel passe à la valeur -2Vt au temps tfn2 4 3. Tsyn 4 2. Tneu ; • la synapse 155 ré-excite ensuite le neurone output- 144 dont le potentiel passe à la valeur -Vt au temps tfn2 4 Tmin 4 4. Tsyn 4 3.Tneu ; • la synapse 156 excite le neurone output+ 143 qui délivre un événement au temps tout tSyjiC2 4 3. Tgyyi 4 3. Tfign t[ji2 4 4. Tgyyi 4 4. Tneu, lequel evenement excite à son tour le neurone inb 148 dont le potentiel, remis à zéro suite au précédent événement émis au temps tlnb2, passe à la valeur VJ2 au temps tgUt 4 Tsyn 4 t — /4 _i_ ζ t _i_ q p 1neu ~ Lin2 ' u· 1 syn ' u· 1neu- [00146] Ensuite, l’émission du second spike sur l’autre neurone input 141 au temps tfni = tfni + ^lûi amène l’autre neurone s y ne 145 à la tension de seuil Vh ce qui entraîne un événement au temps tjyncl = tfnl + Tsyn + Tneu en sortie de ce neurone 145. De ce fait : • la synapse 158 inhibe le neurone inb 148 dont le potentiel passe à la valeur - VJ2 au temps tsync± + TSyn — tjnl + 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 tout ~ tSynci 4 Tmin 4 3. TSyn 4 3. Tneu — tjnl 4 Tmin 4 4. TSyn 4 4. Tneu , lequel événement excite à son tour le neurone inb 148 dont le potentiel est remis à zéro au temps tout: 4 TSyn 4 Tneu — tjnl 4 Tmin 4 5. TSyn 4 5. Tneu. • la synapse 153 excite le neurone output- 144 dont le potentiel est remis à zéro au temps tSyncl 4 3. TSyn 4 2. Tneu — tjnl 4 4. TSyn 4 3. Tneu.
[00147] Les deux événements excitateurs reçus par le neurone output- 144, aux temps tin2 3” ^min 4 4. TSyn 4 3. Tneu et t^ni 4 4. TSyn 4 3. Tneu sont bien postérieurs a l’événement inhibiteur reçu au temps tfn2 4 3. Tsyn 4 2. Tneu. Π en résulte que ce neurone 144 n’émet aucun événement lorsque At2 < Aq, de sorte que le signe du résultat est convenablement signalé.
[00148] Finalement, le neurone output+ 143 délivre deux événements ayant entre eux un intervalle de temps Atout entre les événements des deux paires produites par les neurones input 141, 142, avec :
[00149] 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 Atout =f(xi -xi)· 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.
[00150] 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 zéro 171 et des L-synapscs rapides 172-178 pour former un circuit soustracteur 170 selon la figure 17.
[00151] 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 zéro 171 est le nœud récepteur de deux L-synapscs excitatrices 172, 173 de poids vvy/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 nœud récepteur de deux L-synapscs inhibitrices 174, 175 de poids h’,/2 et de retard 2.Tneu, l’une venant du neurone sync 145 et l’autre du neurone sync 146. Le neurone zéro 171 s’auto-excite par une L-synapsc 176 de poids we et de retard Tneu. Π est d’autre part le nœud émetteur de deux L-synapscs inhibitrices de retard Tneu, l’une 177 de poids w, dirigée vers le neurone inb 148 et l’autre 178 de poids 2w, dirigée vers le neurone output- 144.
[00152] Le neurone zéro 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 zéro 171 ne produit un événement que s’il reçoit deux événements séparés par un intervalle de temps inférieur à Tneu 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.
[001531 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 à Tmin, 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 zéro 171 n’est pas activé et le soustracteur fonctionne de la même manière que celui de la figure 15. C.2. Cumul [00154] 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 :
(16) où <%, a\, ..., Un i sont des coefficients de pondération positifs ou nuis et les grandeurs d’entrée xo, x\, xn-i sont positives ou nulles.
[00155] 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.
[00156] Les connexions sortantes des neurones first et last de ces N groupes de neurones 20 sont configurées en fonction des coefficients de la somme pondérée à calculer.
[00157] Le neurone first relié au neurone input 18U (0 <k<N) est le nœud émetteur d’une çy-synapsc excitatrice 182/, de poids Uk.wa(( et de retard Tmin + Tsyn. Le neurone last relié au neurone input 181* est le nœud émetteur d’une çvsynapsc inhibitrice 183* de poids -Uk - Wacc et de retard Tsyn.
[00158] Le neurone acc 184 accumule les termes 6¾.¾. Ainsi, pour chaque entrée k, le neurone acc 187 est le nœud récepteur de la çy-synapsc excitatrice 182* et de la çy-synapsc inhibitrice 183^- [00159] Le circuit 180 comporte en outre un neurone sync 185 qui est le nœud récepteur de N y-synapses, chacune de poids wJN et de retard Tsyn, respectivement issues des neurones last reliés aux N neurones input 181/, (0 <k< N). Le neurone sync 185 est le nœud émetteur d’une çvsynapsc excitatrice 186 de poids wU(( et de retard Tsyn, dont le nœud récepteur est le neurone acc 184.
[00160] Pour chaque entrée présentant deux spikes séparés de Atk = Tmin + Xh-Tcod sur le neurone input 18U, le neurone acc 184 intègre la quantité ak.Vt/Tmax sur une durée
Atk ~ Tmin — Xk-Tcod- [00161] 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 y,,-synapse 186. Le potentiel du neurone acc 184 continue à croître pendant une durée résiduelle égale à Tmax — lk=o ak-xk- TCOd· À ce moment-là, le seuil Vt est atteint par le neurone acc 184 qui déclenche un événement.
[00162] Le retard de cet événement par rapport à celui qu’a délivré le neurone sync 185 est de Tmax - Σ*=ο ak-xk-TCOd = /(1 - Zfc=o ak-xk) = /(1 - s). La somme pondérée 5 n’est rendue accessible par le circuit 180 que dans sa forme inversée (1 - s).
[00163] Le circuit 180 fonctionne de la manière qui vient d’être décrite à condition qu’on ait Tcod.Y^Zo ^k-xk < Tmax. On peut normaliser les coefficients 6¾ pour que cette condition soit remplie pour toutes les valeurs possibles des Xk, c’est-à-dire de façon que
C.3. Sommation pondérée [00164] Un circuit de sommation pondérée 190 peut avoir la structure représentée sur la figure 19.
[00165] 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.
[00166] Le neurone acc 188 est le nœud récepteur d’une ge-synapse excitatrice 191 de poids wacc et de retard Tsyn, et le nœud émetteur d’une V-synapse excitatrice 192 de poids we et de retard rmi„ + Tsyn. Le neurone output 189 est également le nœud récepteur d’une V-synapse excitatrice 193 de poids we et de retard Tsyn.
[00167] 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 y,,-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 Vt sont respectivement de Tmax — £/c=o ak-xk- TCod et de Τ^. Du fait que la synapse 192 présente un retard relatif de Tmin, les deux événements déclenchés sur le neurone output 189 ont entre eux l’intervalle de temps Tmin + Σ*=ο uk.xk. Tcod = /(s).
[00168] La somme pondérée attendue est bien représentée en sortie du circuit 190. Quand N = 2 et <% = a\ = 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 [00169] Le cas plus général de combinaison linéaire s’exprime aussi par l’équation (16) ci-dessus, mais les coefficients 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 Oq, 0C\, ..., 0Cm-i soient positifs ou nuis et les coefficients (Xm+ i, 0Cm+2, , 0Cn-i soient négatifs {N > 2, M > 0, /V- M > 0).
[00170] 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.
[00171] Les neurones input 18U 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 18U 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 xo, ..., xm i· Les neurones input 18 U 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, , Xn-i· [00172] Les neurones input 18 U du circuit de cumul pondéré 180B sont respectivement associés aux coefficients inversés pour 0 < k < M et aux coefficients pour M <k<N. Ces neurones input 18U pour 0 < k < M reçoivent une paire de spikes représentant .¾ quand Xk< 0 et forment donc des neurones de type input- pour ces grandeurs xo, ..., xm i- Les neurones input 18U du circuit 180B pour M<k<N reçoivent une paire de spikes représentant Xk quand .¾ > 0 et forment donc des neurones de type input + pour ces grandeurs Xm, , Xn-i [00173] Les deux circuits de cumul 180A, 180B partagent leur neurone sync 185 qui est ainsi le nœud récepteur de 2N U-synapses, chacune de poids w,JN et de retard Tsyn, en provenance des neurones last couplés aux 2N neurones input 18 U- 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.
[00174] Un temps
s’écoule entre les événements respectivement délivrés par le neurone sync 185 et le neurone acc 184 du circuit 180A.
[00175] Un temps
s’écoule entre les événements respectivement délivrés par le neurone sync 185 et le neurone acc 184 du circuit 180B.
[00176] 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 ATa et ATB pour produire la représentation de \s\ =’ZakXk>0\ak-Xk \ ~ülak.xk<o\ak-xk\ 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 U-synapses excitatrices 198, 199, de poids we et de retard Tmin + Tsym dirigées vers les neurones input 141, 142 du circuit soustracteur 170. Par ailleurs, une U-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 L-synapsc 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.
[00177] Les neurones output- 144 et output+ 143 du circuit soustracteur 170 sont respectivement reliés, via des L-synapscs 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.
[00178] 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
[00179] La disponibilité de ce résultat est indiquée à l’extérieur par un neurone ‘start’ 207 recevant deux L-synapscs 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 L-synapsc 210, de poids w, 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é.
[00180] On peut normaliser les coefficients pour que les conditions
soient remplies pour toutes les valeurs possibles des Xk, c’est-à-dire de façon que Σ^=ο l^/cl < afin que le circuit de
Tco d 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 D.l. Logarithme [00181] La figure 21 montre un circuit 210 de calcul du logarithme népérien d’un nombre x e ]0, 1] dont une représentation codée est produite par un neurone input 211 sous forme de deux événements survenant à des temps tln et tfn = tln + At (figure 22) avec Al —,/Tv) — Tmin + x.Tcod.
[00182] Le neurone input 211 appartient à un groupe de nœuds 20 semblable à celui décrit en référence à la figure 2. Le neurone first 213 de ce groupe 20 est le nœud émetteur d’une çvsynapsc excitatrice 212 de poids wacc et de retard Tmm + Tsyn, tandis que le neurone last 215 est le nœud émetteur d’une çvsynapsc inhibitrice 214 de poids — wacc et de retard Tsyn. Les deux çy-synapscs 212, 214 ont un même neurone acc 216 comme nœud récepteur.
Du neurone last 215 au neurone acc 216, il y a aussi une ^/-synapse 217 de poids dmuit = et de retard Tsyn, et une gaie-synapse 218 de poids 1 et de retard Tsyn.
[00183] Le circuit 210 comporte en outre un neurone output 220 qui est le nœud 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 Tmm + Tsyn provenant du neurone acc 216.
[00184] Le fonctionnement du circuit de calcul de logarithme 210 selon la figure 21 est illustré par la figure 22.
[00185] L’émission du premier spike au temps tfn au niveau du neurone input 211 déclenche un événement en sortie du neuronefirst 213 au temps tjirst = tln + Tsyn + Tneu. Le neurone first 213 fait démarrer l’accumulation par le neurone acc 216 au temps tsi: + Tmin + 2. Tsyn + via la ge-synapse 212.
[00186] L’émission du second spike au temps tfn = t}n + Tmin + x. Tcod au niveau du neurone input 211 amène le neurone last 215 à délivrer un événement au temps tfast = tin + Tsyn + Tneu . Cet événement transporté par la ge-synapse 214 stoppe l’accumulation réalisée par le neurone acc 216 au temps tlnd = tlast + Tsyn = tjt + x. Tcod. À ce moment, la valeur de potentiel Vt.x est stockée dans le neurone acc 216.
[00187] 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 tlnd via la ^-synapse 217 et la g£(/i.-synapsc 218. Il est à noter qu’en variante, l’événement transporté par la ^/-synapse 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.
[00188] Après activation par les synapses 217 et 218, la composante gf du neurone acc 216 évolue selon :
(17) et son potentiel de membrane selon :
(18) [00189] Ce potentiel V{t) atteint le seuil Vt et provoque un événement sur la V-synapse 222 au temps
[00190] Un premier événement est déclenché sur le neurone output 220 du fait de la U-synapse 221 au temps tout £iast "h 2Tsyn 4· Tneu fend "h f'syn "h Tneu . Le second événement déclenché par la synapse 222 intervient au temps tgUt = t\cc + Tmin + Tsyn +
[00191] Finalement, les deux événements délivrés par le neurone output 220 sont séparés par un intervalle de temps
[00192] 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.
Tcod [00193] Si on note A = e Tf , le circuit 210 de la figure 21 délivre la représentation de log^Cr) lorsqu’il reçoit la représentation d’un nombre réel x tel que A <x< 1, où log/A(.) 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 Tmax, le circuit 210 délivre la représentation de logA(x) pour tout nombre x tel que 0 < x < 1. D.2. Exponentielle [00194] 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 tln et tfn = tfn + At (figure 24) avec Al —,/(x) — Tffàfi + x.Tcod.
[00195] Le neurone input 231 appartient à un groupe de nœuds 20 semblable à celui décrit en référence à la figure 2. Le neurone first 233 de ce groupe 20 est le nœud émetteur d’une ^/-synapse 232 de poids gmuit et de retard Tmm + 7'vv„, ainsi que d’une ya/c-synapsc excitatrice 234 de poids 1 et de retard Tmin + Tsyn. Le neurone last 235 du groupe 20 est le nœud émetteur d’une gaie-synapse inhibitrice 236 de poids -1 et de retard Tsyn, ainsi que d’une ge-synapse excitatrice 237 de poids wacc et de retard Tsyn. Les synapses ont un même neurone acc 238 pour nœud récepteur.
[00196] Le circuit 230 comporte en outre un neurone output 240 qui est le nœud 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 Tmm + Tsyn provenant du neurone acc 238.
[00197] Le fonctionnement du circuit de calcul d’exponentielle 230 selon la figure 23 est illustré par la figure 24.
[00198] L’émission du premier spike au temps tfn au niveau du neurone input 231 déclenche un événement en sortie du neurone fïrsl 233 au temps tjirst = tln + Tsyn + Tneu. Le neurone first 233 fait démarrer une accumulation à dynamique exponentielle sur le neurone acc 238 au temps tjt = tln + Tmin + 2. Tsyn + Tneu via la gy-synapse 232 et la gaie-synapse 234.
[00199] La composante g/du neurone acc 238 évolue alors selon :
(19) et son potentiel de membrane selon :
(20) [00200] L’émission du second spike au temps tfn = tfn + Tmin + x. Tcod au niveau du neurone input 231 amène le neurone last 235 à délivrer un événement au temps tfast = tin + Tsyn + Tneu. Cet événement transporté par la ga/c-synapsc 236 stoppe l’accumulation à dynamique exponentielle réalisée par le neurone acc 238 au temps tlnd = tlast + Tsyn = tjt + x. Tcod. À ce moment, la valeur de potentiel V,.(l -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 wacc sur le neurone acc 238 au même instant tlnd.
[00201] Le potentiel de membrane du neurone 238 évolue alors selon :
(21) [00202] Ce potentiel V{t) atteint le seuil Vt et provoque un événement sur la L-synapse 222 au temps tacc tend "b A · Tcod [00203] Un premier événement est déclenché sur le neurone output 240 du fait de la y-synapse 241 au temps t£ut = t}ast + 2Tsyn + Tneu = t\nd + Tsyn + Tneu . Le second événement déclenché par la synapse 242 intervient au temps t2ut = t\cc + Tmin + Tsyn + T — t1 4- T 4- Ax T -, 1 neu ~ Lout ' 1 min ' n ·1 cod [00204] Finalement, les deux événements délivrés par le neurone output 240 sont séparés par un intervalle de temps de AT0Ut = t20Ut - tlut = Tmin + Ax. Tcod = f(Ax).
[00205] 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.
[00206] 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.
[00207] 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 [00208] La figure 25 montre un circuit multiplieur 250 qui calcule le produit de deux valeurs x\, 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 tini et tfm = tini + Ati Pour la valeur *i et a des temps t\n2 et tfn2 = t\n2 + At2 pour la valeur x2 (figure 25) avec Ah =f(x\) = Tmin + x\.Tcod et Ah =f(x2) = Tmin + x2.Tcod.
[00209] Chaque neurone input 251* (k= 1 ou 2) appartient à un groupe de nœuds 20* semblable à celui décrit en référence à la figure 2. Le neurone first 253* de ce groupe 20* est le nœud émetteur d’une ge-synapse excitatrice 252* de poids wacc et de retard Tmin + Tsyn, tandis que le neurone last 255* est le nœud émetteur d’une g,-synapsc inhibitrice 254* de poids —wacc et de retard Tsyn. Les deux ge-synapses 252*, 254* issues du groupe de nœuds 20* ont comme nœud récepteur un même neurone acc 256* qui joue un rôle similaire au neurone acc 216 de la figure 21.
[00210] Le circuit 250 comporte en outre un neurone sync 260 qui est le nœud récepteur de deux L-synapscs excitatrices 2611, 2612 de poids wJ2 et de retard Tsyn provenant respectivement des neurones last 255i, 2552- Une ^-synapse 262 de poids gmuit et de retard Tgyn et une gale-synapse excitatrice 264 de poids 1 et de retard Tsyn vont du neurone sync 260 au neurone acc 2561.
[00211] Une gy-synapse 265 de poids gmuit et de retard Tsyn et une gale-synapse excitatrice 266 de poids 1 et de retard Tsyn vont du neurone acc 256i au neurone acc 2562- [00212] 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 nœud récepteur d’une g/-synapse 269, de poids gmuit et de retard 3Tsyn, et d’une gale-synapse excitatrice 270, de poids 1 et de retard 2>Tsym provenant toutes deux du neurone sync 260. En outre, le neurone acc 268 est le nœud récepteur d’une gale-synapse inhibitrice 271, de poids -1 et de retard Tsyn, et d’une g,,-synapsc excitatrice 272, de poids wacc et de retard Tsyn, provenant toutes deux du neurone acc 2502 [00213] Le circuit 250 possède enfin un neurone output 274 qui est le nœud récepteur d’une y-synapse excitatrice 275, de poids we et de retard 2Tsyn, provenant du neurone acc 2562 et d’une L-synapsc excitatrice 276, de poids we et de retard Tsyn + Tsyn, provenant du neurone acc 268.
[00214] Le fonctionnement du circuit multiplieur 250 selon la figure 25 est illustré par la figure 26.
[00215] Chacun des deux neurones acc 2561, 2562 se comporte initialement comme le neurone acc 216 de la figure 21, avec une progression linéaire 278i, 2782 de poids wacc sur une première période de durée respective x\.TCoA, X2-TmA, conduisant à stocker les valeurs de potentiel Vt.x\ et y.x2 dans les neurones acc 256i, 25 62.
[002161 L’émission du second spike au temps tfn2 = tfn2 + Tmin + x2. Tcod 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 x\ > X2) stoppe l’accumulation à dynamique linéaire sur le neurone acc correspondant 2502 via la çvsynapsc 2542 au temps tfast2 + Tsyn = tfn2 + 2Tsyn + Tneu. Le potentiel de membrane de ce neurone acc 2502 présente alors un plateau 279 qui dure jusqu’à sa réactivation via les synapses 265, 266. Au temps tfast2 + Tsyn = tfn2 + 2Tsyn + Tneu, le potentiel du neurone sync 260 passe à la valeur VJ2 du fait de l’événement reçu du neurone last 2552 via la V-synapse 26I2.
[00217] L’émission du second spike au temps tfnl = t*nl + Tmin + xx. Tcod 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 256i via la y,,-synapse 254i au temps tfastl + Tsyn = tfnl + 2Tsyn + Tneu . Au même moment, le potentiel de ce neurone sync 260 atteint la valeur V, du fait de l’événement reçu sur la V-synapse 2611. Π en résulte l’émission d’un événement au temps tjync = tfnl + 2Tsyn + 2Tneu sur les synapses 262 et 264. La dynamique exponentielle 280i est alors activée sur le neurone acc 256i à la place de la dynamique linéaire 278i au temps tjtl = tjync + Tsyn. Parallèlement, les synapses 269, 270 activent la dynamique exponentielle 281 sur le neurone acc 268 au temps t^t3 = tjync + 3Tsyn.
[00218] Le potentiel du neurone acc 256i atteint le seuil Vt et provoque un événement sur les synapses 265, 266 au temps
[00219] La dynamique exponentielle 280i est alors activée sur le neurone acc 2562 au temps tjt2 = tlogl + 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 tlog2 = tjt2 — zy.log(x2) = tjync — Tf. log(x1. x2) + 2Tsyn. La gaie-synapse 271 désactive la dynamique exponentielle 281 sur le neurone acc 268 au temps tlnd3 = tfog2 + 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 :
(22) [00220] La y-synapse 275 provoque l’émission d’un premier spike sur le neurone output 274 au temps tout- — t^0g2 5” 2TSyn + Tneu.
[00221] Le neurone acc 268 atteint le seuil Vt et provoque un événement sur la y-synapse 276 au temps tlxp = tlnd3 + x1.x2.Tcod. Π en résulte, au niveau du neurone output 274 l’émission d’un second spike au temps tgUt = t^xp + Tmin + Tsyn + Tneu.
[00222] Finalement, les deux événements délivrés par le neurone output 268 sont séparés par un intervalle de temps de ÂT0Ut = tlut - tlut = Tmin + x1.x2. Tcod = /(x1.x2).
[00223] Le circuit 250 de la figure 25 délivre donc sur son neurone output 268 la représentation du produit xi.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.
[00224] 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 [00225] 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.
[00226] Pour chaque valeur d’entrée Xk (1 <Jc< 2), le circuit multiplieur 290 comporte un neurone input + 29 1* et un neurone input- 292k qui sont les nœuds émetteurs de deux y-synapses respectives 293* et 294* de poids we. Les y-synapses 293 \ et 294\ sont dirigées vers un neurone input 2511 d’un circuit multiplieur 250 du genre représenté sur la figure 25, tandis que les y-synapses 2931 et 294i sont dirigées vers l’autre neurone input 2512 du circuit 250.
[00227] Le circuit multiplieur 290 possède un neurone output+ 295 et un neurone output- 296 qui sont les nœuds récepteurs de deux y-synapses excitatrices respectives 297 et 298 de poids we provenant du neurone output 274 du circuit 250.
[00228] Le circuit multiplieur 290 comporte encore quatre neurones sign 300-303 connectés pour former une logique de sélection du signe du résultat de la multiplication. Chaque neurone sign 300-303 est le nœud récepteur de deux y-synapses excitatrices respectives de poids weIA provenant de deux des quatre neurones input 29 U, 292/,. Le neurone sign 300 relié aux neurones input+ 2911, 2912 détecte la réception de deux entrées xu a'2 positives. Il forme le nœud émetteur d’une y-synapse inhibitrice 305 de poids 2h’, allant au neurone output- 296. Le neurone sign 303 relié aux neurones input- 292i, 2922 détecte la réception de deux entrées x\, aa négatives. Π forme le nœud émetteur d’une V-synapse inhibitrice 308 de poids 2Wj allant au neurone output- 296. Le neurone sign 301 relié aux neurones input- 292\ et input + 292i détecte la réception d’une entrée ai négative et d’une entrée X2 positive. Il forme le nœud émetteur d’une L-synapsc inhibitrice 306 de poids 2Wi 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 aa négative. Il forme le nœud émetteur d’une L-synapsc inhibitrice 307 de poids 2h’, allant au neurone output+ 295.
[00229] Des y-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 nœud émetteur de deux y-synapses inhibitrices de poids wJ2 allant respectivement vers les deux neurones sign correspondant au signe opposé.
[00230] Ainsi agencé, le circuit 290 de la figure 27 délivre deux événements séparés de l’intervalle de temps/(L1.A2I) sur l’une de ses sorties 295, 296, conformément au signe de A1.A2, lorsque les deux nombres ai, aa sont présentés avec leurs signes respectifs sur les entrées 29 U, 292^.
[00231] 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.l. Intégration [00232] 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 Tmm + Tsyn.
[00233] 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 oq = 1 et a\ = dt, où dt est le pas d’intégration choisi.
[00234] Les neurones input+ 311 et input- 312 sont respectivement reliés aux neurones input + et input- 1811 du circuit 200 associés au coefficient a\ =dt par deux L-synapscs 321, 322.
[00235] Les autres neurones input + et input- 1811 du circuit 200, associés au coefficient oq = 1, sont respectivement reliés par deux L-synapscs 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.
[00236] Un autre neurone init 318 du circuit d’intégration 310 est le nœud émetteur d’une synapse 325 dont le nœud récepteur est le neurone recall 15 du circuit 317. Le neurone init 318 charge l’intégrateur avec sa valeur initiale a'o stockée dans le circuit 317.
[00237] De synapses 326, 327 sont agencées pour faire rétro agir, respectivement, le neurone output + 143 du circuit de combinaison linéaire 200 sur son neurone input+ 181o et le neurone output- 144 du circuit d’intégration 200 sur son neurone input- 18 lo- [00238] Un neurone start 319 est le nœud é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ùn sur le neurone input+ 18 U du circuit d’intégration 180.
[00239] Les neurones output + 143 et output- 144 du circuit de combinaison linéaire 200 sont les nœuds émetteurs respectifs de deux synapses 330, 331 dont les nœuds récepteurs sont respectivement les neurones output + 313 et output- 314 du circuit d’intégration 310.
[00240] Le circuit d’intégration 310 possède enfin un neurone new input 320 qui est le nœud récepteur d’une synapse 332 provenant du neurone start 207 du circuit de combinaison linéaire 200.
[00241] La valeur initiale xq est, selon son signe, délivrée sur le neurone output+ 313 ou output- 314 une fois que le neurone init 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’(kdt), avec k = 0, peut être fournie. Dès que cette valeur de dérivée g’(kdt) 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+l).dt) peut être fournie. Ce processus se répète autant de fois que des valeurs de dérivée g\kdt) sont fournies (k = 0, 1, 2, etc.).
[00242] Après fourniture d’une (£+l)-ième valeur de dérivée g’(kdt) au circuit intégrateur 310, on trouve en sortie la représentation de la valeur :
(23) qui, à une constante additive près, est une approximation de g(T) = f g'(t).dt, avec T=(k+ 1 ).dt.
[00243] 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.
[00244] 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: Tm = 100 s, T/ = 20 ms, V, = 10 mV, Tmin = 10 ms et Tcod = 100 ms. E.2. Équation différentielle du premier ordre [00245] La figure 29 montre un dispositif de traitement qui implémente la résolution de l’équation différentielle :
(24) où T et Xoo 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.
[00246] 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 oq = -1/ret a\ = +l/r; • 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/(IXJ) entre deux spikes délivrés soit par son neurone output+ 315, soit par son neurone output- 316, selon le signe de X
[00247] La constante X„ est fournie à l’un des neurones input+ et input- 1811 associés au coefficient a\ = 1/rdans le circuit de combinaison linéaire 200 après chaque activation du neurone recall 15 qui est le nœud 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+ 18lo du circuit de combinaison linéaire 200 et, respectivement, la sortie output- 314 du circuit 310 sur l’autre entrée input- 18lo 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.
[00248] Le dispositif de la figure 29 a une paire de neurones output+ 346 et output- 347 qui sont les nœuds récepteurs de deux synapses issues des neurones output+ 313 et output-314 du circuit intégrateur 310.
[00249] Les neurones init 348 et start 349 permettent d’initialiser et de faire démarrer le processus d’intégration. Le neurone init 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.
[002501 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.
[002511 Des résultats de simulation de ce dispositif avec différents jeux de paramètres t, Xoo et avec un pas d’intégration dt = 0,5 sont présentés sur la figure 30A pour différentes valeurs de τ et sur la figure 30B pour différentes valeurs de AL (AL = -0,2, AL = 0,1 et Xoo = -0,4). Chaque point des courbes C1-C3, C’l-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 [002521 La figure 31 montre un dispositif de traitement qui implémente la résolution de l’équation différentielle :
(25) où ξ et o){) sont des paramètres pouvant prendre différentes valeurs. Les synapses représentées sur la figure 31 sont toutes des L-synapscs excitatrices de poids we 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.
[00253] 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® = 0¾ = co{} et a\ = ; • 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 JXX^) entre deux spikes délivrés par son neurone output 16 (X*, > 0).
[00254] La constante Xo est fournie au neurone input 1812 associé au coefficient a2 = coq dans le circuit de combinaison linéaire 200 après chaque activation du neurone recall 15 qui est le nœud 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 a\ = -ξ.α>ο et, respectivement, la sortie output 313 du premier circuit intégrateur 310A sur l’autre entrée input 181o du circuit 200 associée au coefficient 0¾ = cuo . 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.
[00255] Le dispositif de la figure 31 a un neurone output 356 qui est le nœud récepteur d’une synapse issue du neurone output 313 du second circuit intégrateur 310B.
[00256] Les neurones init 358 et start 359 permettent d’initialiser et de faire démarrer le processus d’intégration. Le neurone init 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.
[00257] 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.
[00258] Des résultats de simulation de ce dispositif avec différents jeux de paramètres ξ, co0 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 co0 et sur la figure 32B pour différentes valeurs de ξ. Chaque point sur les courbes D1-D3, D’l-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 [002591 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) :
(26) [002601 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 σ = 10, β = 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.
[00261] 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.
[00262] 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.
[00263] Le circuit de combinaison linéaire 200A est configuré N = 2 et des coefficients oq = σ et a\ =-σ. Son neurone input 181Ao est excité depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input 181Ai depuis le neurone output 313B du circuit intégrateur 310B. Son neurone output 203A est le nœud émetteur d’une synapse allant au neurone input 91o du circuit synchroniseur 90.
[00264] Le circuit de combinaison linéaire 200B est configuré N = 3 et des coefficients ao = p et ai = a.2 = -1. Son neurone input 181Bo est excité depuis le neurone output 313B du circuit intégrateur 310B, son neurone input 18IBi depuis le neurone output 313A du circuit intégrateur 310A, et son neurone input I8IB2 depuis le neurone output 295A du circuit multiplieur 290A. Son neurone output 203B est le nœud émetteur d’une synapse allant au neurone input 911 du circuit synchroniseur 90.
[00265] Le circuit de combinaison linéaire 200C est configuré N = 2 et des coefficients oq = 1 et a\ =- β. Son neurone input I8IC0 est excité depuis le neurone output 295B du circuit multiplieur 290B, et son neurone input I8IC1 depuis le neurone output 313C du circuit intégrateur 310C. Son neurone output 203C est le nœud émetteur d’une synapse allant au neurone input 9I2 du circuit synchroniseur 90.
[00266] Trois synapses vont respectivement du neurone output 92q du circuit synchroniseur 90 au neurone input 311A du circuit intégrateur 310A, du neurone output 921 du circuit 90 au neurone input 31 IB du circuit intégrateur 310B, et du neurone output 92ί du circuit 90 au neurone input 31 IC du circuit intégrateur 310C.
[00267] Le neurone input 291 Ai 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 291Bi du circuit multiplieur 290B est excité depuis le neurone output 313 A du circuit intégrateur 310A, et son neurone input 291B2 depuis le neurone output 313B du circuit intégrateur 310B.
[00268] Le dispositif de la figure 33 possède trois neurones output 361, 362 et 363 qui sont les nœuds 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 {X(t), Y(t), Z(t)} calculée pour le système (26).
[00269] 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.
[00270] Les points sur la figure 34 correspondent chacun à un triplet {X(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), F(0), Z(0) d’initialisation de la simulation. Les autres points représentent des triplets calculés par le dispositif de la figure 33.
[00271] Le système se comporte de la manière attendue, en conformité avec l’attracteur étrange décrit par Lorenz. F. Discussion [00272] 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 nœuds 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).
[00273] 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.
[00274] 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.
[00275] Les nœuds de traitement sont typiquement organisés en matrice. Ceci se prête bien notamment à une implémentation à l’aide de FPGA.
[00276] Un réseau programmable 400 constituant l’ensemble de nœuds de traitement, ou une partie de cet ensemble, dans un exemple de mise en œuvre 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 Tj identiques pour les différents nœuds du réseau.
[00277] 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 nœuds 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.
[00278] 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 nœuds 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.
[00279] Cette architecture de calcul convient bien à une exécution rapide de calculs massivement parallèles.
[00280] 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.
[00281] 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)

  1. 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*), et dans lequel les données traitées comprennent au moins une grandeur d’entrée (x) représentée par un intervalle de temps (At) entre deux événements reçus par au moins un nœud et au moins une grandeur de sortie représentée par un intervalle de temps entre deux événements délivrés par au moins un nœud.
  2. 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. 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. 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 (we) égal au seuil prédéfini (Vt) 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 (wjl) égal à la moitié du premier poids, 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 (wt) égal à l’opposé du premier poids (we), 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 (At) 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 (At).
  5. 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 (we/2) égal à la moitié du seuil prédéfini (V,) pour la valeur de potentiel ; des septième et huitième connexions de variation de potentiel (112-113) ayant chacune un second poids (w;/2) opposé au premier poids ; et des neuvième et dixième connexions de variation de potentiel (114-115) ayant chacune un troisième poids (wï) 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. 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 (we/2) égal à la moitié du seuil prédéfini ( Vt) pour la valeur de potentiel ; et des cinquième et sixième connexions de variation de potentiel (132-133) ayant chacune un second poids (Wi) é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. 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 (106-111) ayant chacune un premier poids positif (we) égal au seuil prédéfini (Vt) pour la valeur de potentiel ; des septième et huitième connexions de variation de potentiel (160, 161) ayant chacune un second poids (ny/2) é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 (uy) 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î) 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 {At\) représentant un premier opérande (ai), 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 (Aî2) représentant un second opérande (aa), de sorte qu’une troisième paire d’événements ayant entre eux un troisième intervalle de temps (zhout) est délivrée par le premier nœud de sortie (143) si le premier intervalle de temps {At\) est plus long que le second intervalle de temps (/1¾) et par le second nœud de sortie (144) si le premier intervalle de temps (At\) est plus court que le second intervalle de temps (Al 2), le troisième intervalle de temps (zhout) représentant la valeur absolue de la différence entre les premier et second opérande (ai, aa).
  8. 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 (At\, Al2) sont sensiblement égaux.
  9. 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. 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. 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 (ge) 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 (ge) de sa valeur de courant.
  12. 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 {waCc) et la seconde connexion (27) ayant un poids (-würr) 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. 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 (waCc) et la troisième connexion (45) ayant un poids (-wacc) 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. 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. 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 (40i, ..., 40v |) 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ι, ..., 40,ν i) via une connexion de variation de potentiel respective (46 ; 96o, ..., 96,v i) 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 (40i, ..., 40jv_i).
  16. 16. Dispositif selon la revendication 11, comprenant au moins un circuit de cumul (180), dans lequel le circuit de cumul comprend : N entrées (18lo, ..., 181 ,γ i) ayant chacune un coefficient de pondération respectif (<%, ..., (Xn-i), 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 (182o, ..., 182,ν i) ayant un premier poids positif (<%nw, ..., (XN-\Wacc) proportionnel au coefficient de pondération respectif de ladite entrée ; et une seconde connexion de réglage de composante constante de courant (183o, ..., 183,%· i) ayant un second poids (-aowaCc, ~0Cn iwurr) opposé au premier poids ; et une troisième connexion de réglage de composante constante de courant (186) ayant un troisième poids positif (wacc), dans lequel le nœud accumulateur (184) forme le nœud récepteur des premières, secondes et troisième connexions ( 18lo, ···, 181 jv-i, 182o, ..., 182jv-i, 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 (181o, ..., 181jv_i, 182o, ..., 182jv_i) 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. 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 (waCc) ; 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. 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. 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/) à 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/) de sa valeur de courant.
  20. 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 (wacc), et la seconde connexion (214) ayant un poids ( — wacc ) 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 (At) représentant une grandeur d’entrée (jc) 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 (Atout) représentant un logarithme de ladite grandeur d’entrée.
  21. 21. Dispositif selon la revendication 19, dans lequel au moins un nœud (238 ; 268) prenant en compte une composante de courant (gf) à 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. 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 (At) représentant une grandeur d’entrée (jc) 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 (Atout) représentant une exponentielle de ladite grandeur d’entrée.
  23. 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 (256i, 2562, 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 (252i, 2522, 272) ayant un premier poids positif (wacc), et les seconde et quatrième connexions (254i, 2542) ayant un second poids (—wacc) 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 nœud accumulateur (2561) forme le nœud récepteur des première, seconde et sixième connexions (252i, 254i, 262) et le nœud émetteur de la septième connexion (265), dans lequel le second nœud accumulateur (2562) forme le nœud récepteur des troisième, quatrième et septième connexions (2522, 2542, 265) et le nœud émetteur des cinquième et neuvième connexions (272, 271), dans lequel le troisième nœud accumulateur (268) forme le nœud récepteur des cinquième, huitième et neuvième connexions (272, 269, 271) et le nœud émetteur de la dixième connexion (276), dans lequel le nœud de synchronisation (260) forme le nœud émetteur des sixième et huitième connexions (272, 271), dans lequel les première et seconde connexions (252i, 2540 sont configurées pour adresser au premier nœud accumulateur (2560 des premier et second événements respectifs ayant entre eux un premier intervalle de temps en relation avec un intervalle de temps (At\) représentant un premier opérande {x\) du circuit multiplieur (250), dans lequel les troisième et quatrième connexions (2522, 2542) sont configurées pour adresser au second nœud accumulateur (2562) des troisième et quatrième événements respectifs ayant entre eux un second intervalle de temps en relation avec un intervalle de temps (At2) représentant un second opérande (¾) du circuit multiplieur (250), dans lequel le nœud 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 nœud accumulateur (2561) 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 nœud accumulateur (2562) 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 nœud 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 (Atout) représentant le produit des premier et second opérandes {x\, X2).
  24. 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 (x\, X2) et faire délivrer deux événements ayant entre eux l’intervalle de temps (Atout) 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. 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. 26. Dispositif selon l'une quelconque des revendications précédentes, dans lequel l’intervalle de temps At entre deux événements représentant une grandeur de valeur absolue x est de la forme At= Tmin + x.Tcod, où Tmin et T,,,,/ sont des paramètres temporels prédéfinis.
  27. 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. 28. Dispositif selon l'une quelconque des revendications précédentes, comprenant, pour une grandeur d’entrée (jc) : une première entrée comportant un nœud ou deux nœuds parmi l’ensemble de nœuds de traitement, la première entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps (At) représentant une valeur positive de ladite grandeur d’entrée (jc) ; et une seconde entrée comportant un nœud ou deux nœuds parmi l’ensemble de nœuds de traitement, la seconde entrée étant agencée pour recevoir deux événements ayant entre eux un intervalle de temps (At) représentant une valeur négative de ladite grandeur d’entrée (x).
  29. 29. Dispositif selon l'une quelconque des revendications précédentes, comprenant, pour une grandeur de sortie (_v) : une première sortie comportant un nœud ou deux nœuds parmi l’ensemble de nœuds de traitement, la première sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps (At) représentant une valeur positive de ladite grandeur de sortie (a') ; et une seconde sortie comportant un nœud ou deux nœuds parmi l’ensemble de nœuds de traitement, la seconde sortie étant agencée pour délivrer deux événements ayant entre eux un intervalle de temps (At) représentant une valeur négative de ladite grandeur de sortie (a).
  30. 30. Dispositif selon l'une quelconque des revendications précédentes, dans lequel l’ensemble de nœuds de traitement est sous la forme d’au moins un réseau programmable (400), les nœuds 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 nœuds 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.
FR1556659A 2015-07-13 2015-07-13 Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements Pending FR3038997A1 (fr)

Priority Applications (9)

Application Number Priority Date Filing Date Title
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
KR1020187001017A KR20180077148A (ko) 2015-07-13 2016-07-06 이벤트 간 시간 간격으로 값을 표현하는 데이터 처리장치
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
JP2018501204A JP6732880B2 (ja) 2015-07-13 2016-07-06 イベントとイベントとの間の時間間隔による値の表現を使用するデータ処理デバイス
US15/743,642 US20180357527A1 (en) 2015-07-13 2016-07-06 Data-processing device with representation of values by time intervals between events
CN201680045376.1A CN108369660A (zh) 2015-07-13 2016-07-06 用事件间的时间间隔来表示数值的数据处理装置
EP16750928.0A EP3323090A1 (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
CA2992036A CA2992036A1 (fr) 2015-07-13 2016-07-06 Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
IL256813A IL256813A (en) 2015-07-13 2018-01-09 A data processing device with the display of values using time intervals between events

Applications Claiming Priority (1)

Application Number Priority Date Filing Date Title
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

Publications (1)

Publication Number Publication Date
FR3038997A1 true FR3038997A1 (fr) 2017-01-20

Family

ID=54848671

Family Applications (1)

Application Number Title Priority Date Filing Date
FR1556659A Pending FR3038997A1 (fr) 2015-07-13 2015-07-13 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
WO2018034163A1 (fr) * 2016-08-19 2018-02-22 国立大学法人 九州工業大学 Multiplicateur-accumulateur
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 윤종용 동기식 반도체 메모리 장치의 기준 신호 발생 회로
AU2002356946A1 (en) * 2001-11-16 2003-06-10 Joseph Chen Pausible neural network with supervised and unsupervised cluster analysis
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
US9461720B2 (en) * 2012-08-13 2016-10-04 Telefonaktiebolaget Lm Ericsson (Publ) Methods of receiving retransmissions including discontinuous transmission indicators in MIMO systems
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模型的脑电信号处理方法

Non-Patent Citations (3)

* Cited by examiner, † Cited by third party
Title
A. S. CASSIDY ET AL: "Cognitive computing building block: a versatile and efficient digital neuron model for neurosynaptic cores", PROCEEDINGS OF THE 2013 INTERNATIONAL JOINT CONFERENCE ON NEURAL NETWORKS (IJCNN'13), 4 August 2013 (2013-08-04), XP032542126, DOI: 10.1109/IJCNN.2013.6707077 *
B. BELHADJ ET AL: "Continuous real-world inputs can open up alternative accelerator designs", PROCEEDINGS OF THE 40TH ANNUAL INTERNATIONAL SYMPOSIUM ON COMPUTER ARCHITECTURE (ISCA'13), 23 June 2013 (2013-06-23), XP058021223, DOI: 10.1145/2485922.2485923 *
D. PECEVSKI ET AL: "NEVESIM: event-driven simulation of networks of spiking neurons", FRONTIERS IN NEUROINFORMATICS, vol. 8, 70, 14 August 2014 (2014-08-14), XP055264389, DOI: 10.1162/neco.2007.19.12.3226 *

Also Published As

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

Similar Documents

Publication Publication Date Title
FR3038997A1 (fr) Dispositif de traitement de donnees avec representation de valeurs par des intervalles de temps entre evenements
US10713818B1 (en) Image compression with recurrent neural networks
US9747546B2 (en) Neural network processor
US11727244B2 (en) Apparatus and method for executing recurrent neural network and LSTM computations
EP2965269B1 (fr) Organe à neurone artificiel et memristor
US20180005115A1 (en) Accelerated neural network training using a pipelined resistive processing unit architecture
EP3449423B1 (fr) Dispositif et procede de calcul de convolution d&#39;un reseau de neurones convolutionnel
EP3449424A1 (fr) Dispositif et procede de distribution de donnees de convolution d&#39;un reseau de neurones convolutionnel
FR3087560A1 (fr) Retro-propagation d&#39;erreurs sous forme impulsionnelle dans un reseau de neurones impulsionnels
US20190065953A1 (en) Device and Method for Performing Self-Learning Operations of an Artificial Neural Network
Borzunov et al. Distributed inference and fine-tuning of large language models over the internet
US11610101B2 (en) Formation failure resilient neuromorphic device
WO2020012104A1 (fr) Circuit de génération de facteurs de rotation pour processeur ntt
US11250107B2 (en) Method for interfacing with hardware accelerators
WO2022171632A1 (fr) Circuit neuromorphique et procédé d&#39;entraînement associé
EP4078817A1 (fr) Procede et dispositif de codage additif de signaux pour implementer des operations mac numeriques a precision dynamique
US10318530B1 (en) Iterative kurtosis calculation for big data using components
FR3056320A1 (fr) Procede de calcul par au moins un ordinateur d’au moins une operation d’algebre lineaire sur au moins une matrice
EP4078816A1 (fr) Procede et dispositif de codage binaire de signaux pour implementer des operations mac numeriques a precision dynamique
US20210142153A1 (en) Resistive processing unit scalable execution
Guo et al. Towards Federated Learning Under Resource Constraints via Layer-wise Training and Depth Dropout
TW202341064A (zh) 基於重疊窗口稀疏化神經網路模型的向量
FR2992445A1 (fr) Procede de synchronisation de donnees d&#39;algorithmes de calculateurs asynchrones d&#39;aeronef
FR3064771A1 (fr) Procede de multiplication, multiplieur et produit programme d’ordinateur correspondants
WO2012150396A2 (fr) Dispositif et procede de multiplication rapide

Legal Events

Date Code Title Description
PLFP Fee payment

Year of fee payment: 2

PLSC Publication of the preliminary search report

Effective date: 20170120

PLFP Fee payment

Year of fee payment: 3