Brevet FR3160254A1 — publié le 20250919

Atténuation en courant non linéaire dans des réseaux de neurones La présente description concerne un réseau de neurones (200) qui comprend au moins un premier neurone (204) relié à un deuxième neurone (201) par l’intermédiaire d’au moins une synapse (205) et un atténuateur de courant non linéaire (202) configuré pour recevoir un premier courant (Iin200) provenant de ladite au moins une synapse (205) et pour fournir un deuxième courant (Iin200) audit deuxième neurone (201). Figure pour l'abrégé : Fig. 2 Atténuation en courant non linéaire dans des réseaux de neurones La présente description concerne de façon générale des systèmes et des dispositifs électroniques et leurs mises en oeuvre. La présente description concerne plus particulièrement des réseaux de neurones et leurs mises en oeuvre. Des réseaux de neurones et, plus particulièrement, des réseaux de neurones artificiels sont un type de modèles d’intelligence artificielle et d’apprentissage machine basé sur les principes d’une organisation neuronale que l’on trouve dans les réseaux de neurones biologiques constituant des cerveaux animaux. Il serait souhaitable de pouvoir améliorer, au moins en partie, certains aspects de la mise en oeuvre de réseaux de neurones. Il existe un besoin de réseaux de neurones plus efficaces. Il existe un besoin de réseaux de neurones qui utilisent une atténuation de courant entre des couches de neurones. Il existe un besoin de réseaux de neurones qui utilisent une atténuation de courant entre une synapse et un neurone à impulsion. Il existe un besoin de réseaux de neurones plus efficaces comprenant une synapse qui utilise des cellules mémoire à modification de phase à plusieurs niveaux. Il existe un besoin de réseaux de neurones qui puissent compenser une dérive et une dispersion de la résistance de cellules mémoire utilisées pour constituer une synapse. Il existe un besoin de réseaux de neurones qui puissent compenser une dérive et une dispersion de la résistance de cellules mémoire à modification de phase utilisées pour constituer une synapse. Un mode de réalisation pallie tout ou partie des inconvénients des réseaux de neurones connus. Un mode de réalisation prévoit un réseau de neurones qui utilise un atténuateur de courant non-linéaire entre deux couches de neurones. Un mode de réalisation prévoit un réseau de neurones qui utilise un atténuateur de courant non-linéaire entre une synapse et un neurone à impulsion. Un mode de réalisation prévoit un réseau de neurones qui comprend au moins un premier neurone relié à un deuxième neurone par l’intermédiaire d’au moins une synapse et un atténuateur de courant non linéaire configuré pour recevoir un premier courant provenant de ladite au moins une synapse et pour fournir un deuxième courant audit deuxième neurone. Selon un mode de réalisation, ladite au moins une synapse comprend une cellule mémoire à plusieurs niveaux. Selon un mode de réalisation, ladite au moins une synapse comprend une cellule mémoire à modification de phase à plusieurs niveaux. Selon un mode de réalisation, ledit premier courant est un courant de lecture dudit au moins un premier neurone. Selon un mode de réalisation, le réseau de neurones comprend au moins deux premiers neurones et au moins deux synapses, dans lequel ledit premier courant est la somme de troisièmes courants fournis par chacune desdites au moins deux synapses. Selon un mode de réalisation, ledit au moins un premier neurone est un neurone à impulsion. Selon un mode de réalisation, ledit deuxième neurone est un neurone à impulsion. Selon un mode de réalisation, ledit atténuateur de courant non linéaire est non linéaire par rapport audit premier courant. Selon un mode de réalisation, ledit deuxième courant dépend du premier courant par l’intermédiaire d’une fonction exponentielle. Selon un mode de réalisation, ledit deuxième courant est donné par la formule mathématique suivante : [Math 1] , dans laquelle : - Ilin300 représente ledit premier courant ; - SDFmax représente le gain maximal fourni par ledit atténuateur ; - SDFmin représente le gain minimal fourni par ledit atténuateur ; et - est un facteur défini de façon expérimentale. Ces caractéristiques et avantages, ainsi que d'autres, seront exposés en détail dans la description suivante de modes de réalisation particuliers faite à titre non limitatif en relation avec les figures jointes parmi lesquelles : la FIG. 1 représente le principe de deux couches d’un réseau de neurones totalement connecté ; la FIG. 2 représente un mode de réalisation d’une partie d’un réseau de neurones ; la FIG. 3 représente un mode de réalisation détaillé d’une partie d’un réseau de neurones ; la FIG. 4 représente un graphe illustrant le mode de réalisation de la FIG. 3 ; et la FIG. 5 représente d’autres graphes illustrant le mode de réalisation de la FIG. 3 . De mêmes éléments ont été désignés par de mêmes références dans les différentes figures. En particulier, les éléments structurels et/ou fonctionnels communs aux différents modes de réalisation peuvent présenter les mêmes références et peuvent disposer de propriétés structurelles, dimensionnelles et matérielles identiques. Par souci de clarté, seuls les étapes et éléments utiles à la compréhension des modes de réalisation décrits ont été représentés et sont détaillés. Sauf précision contraire, lorsque l'on fait référence à deux éléments connectés entre eux, cela signifie directement connectés sans éléments intermédiaires autres que des conducteurs, et lorsque l'on fait référence à deux éléments reliés (en anglais "coupled") entre eux, cela signifie que ces deux éléments peuvent être connectés ou être reliés par l'intermédiaire d'un ou plusieurs autres éléments. Dans la description qui suit, lorsque l'on fait référence à des qualificatifs de position absolue, tels que les termes "avant", "arrière", "haut", "bas", "gauche", "droite", etc., ou relative, tels que les termes "dessus", "dessous", "supérieur", "inférieur", etc., ou à des qualificatifs d'orientation, tels que les termes "horizontal", "vertical", etc., il est fait référence sauf précision contraire à l'orientation des figures. Sauf précision contraire, les expressions "environ", "approximativement", "sensiblement", et "de l'ordre de" signifient à 10 % près, de préférence à 5 % près. Les modes de réalisation décrits précédemment concernent des mises en oeuvre de réseaux de neurones et, plus particulièrement, des mises en oeuvre de réseaux de neurones à impulsion. Un réseau de neurones est un modèle d’apprentissage machine basé sur les principes d’une organisation neuronal que l’on trouve dans les réseaux de neurones biologiques constituant les cerveaux animaux. De nos jours, les réseaux de neurones sont mis en oeuvre par des circuits et dispositifs électroniques. Un réseau de neurones comprend plusieurs couches de neurones, chaque neurone étant relié aux neurones des autres couches par des connexions appelées synapses qui constituent la mémoire pondérée. Dans une mise en oeuvre électronique de réseaux de neurones, chaque neurone est une cellule de fonction de transfert transférant des tensions et courants à d’autres neurones par l’intermédiaire d’une synapse qui est, en pratique, une ou plusieurs cellules mémoire, de préférence une cellule mémoire. L’utilisation de l’atténuateur de courant entre une synapse et un neurone est fondamental pour un bon fonctionnement de réseaux de neurones. Dans certains cas, des cellules mémoire à plusieurs niveaux sont utilisés pour constituer une partie d’une synapse, telle que des cellules mémoire à modification de phase à plusieurs niveaux. Ces cellules mémoire peuvent être confrontées dans le temps à un phénomène de dispersion et de dérive de la résistance qui peut conduire à des problèmes de mise en oeuvre. Les modes de réalisation décrits précédemment proposent d’utiliser un atténuateur de courant non linéaire entre une synapse et un neurone pour compenser ces écarts de résistance. De plus, les modes de réalisation décrits précédemment sont particulièrement adaptés pour être inclus dans une puce configurée pour mettre en oeuvre des fonctions d’intelligence artificielle. La FIG. 1 représente très schématiquement un réseau de neurones 100 comprenant deux couches de neurones totalement connectés les uns aux autres. Le réseau de neurones 100 comprend deux couches 110 et 120 de neurones, dans lesquelles les neurones sont reliés par des synapses 130. Plus particulièrement, la couche 110 comprend plusieurs neurones 111 et la couche 120 comprend plusieurs neurones 121. Chaque neurone 111 est relié à chaque neurone 121 de la couche 120 par l’intermédiaire d’une synapse 130 et, par conséquent, chaque neurone 121 est relié à chaque neurone 111 de la couche 110 par l’intermédiaire d’une synapse 130. Plusieurs types de neurones existent. Les neurones 111 et 121 peuvent être des neurones à impulsion. Des neurones à impulsion sont des neurones artificiels qui imitent très étroitement des réseaux de neurones naturels. Ils sont adaptés à recevoir des données analogiques et à fournir des données à impulsion, c'est-à-dire des données de forme à impulsion. Un exemple détaillé d’un neurone à impulsion sera décrit en relation avec la FIG. 3 . Une partie d’une synapse 130 peut être mise en oeuvre en utilisant des cellules mémoire. Plus particulièrement, une partie d’une synapse 130 peut être mise en oeuvre par une cellule mémoire à plusieurs niveaux, c'est-à-dire une mémoire capable de stocker plus de deux valeurs différentes d’une donnée. Selon un mode de réalisation, la synapse 130 peut être mise en oeuvre en utilisant une cellule mémoire à modification de phase (cellule PCM) et, plus particulièrement, une cellule mémoire à modification de phase à plusieurs niveaux. Une cellule mémoire à modification de phase utilise une transition de phase d’un matériau pour stocker des données binaires. Lorsque le matériau est dans une première phase, la valeur de la donnée est une première valeur, par exemple un un (1) et, lorsque le matériau est dans une deuxième phase, la valeur de la donnée est une deuxième valeur différente de la première valeur, par exemple un zéro (0). Une opération de lecture est basée sur la valeur de résistance dudit matériau. Une cellule mémoire à modification de phase à plusieurs niveaux utilise un matériau susceptible de modifier sa valeur de résistance en plus de deux valeurs distinctes. Plus particulièrement, une telle cellule mémoire peut stocker huit (8) valeurs distinctes. Toutefois, un souci courant avec une cellule mémoire à modification de phase à plusieurs niveaux est une dérive et une dispersion de la résistance, ce qui signifie que la valeur de son matériau dérive dans le temps. Le mode de réalisation décrit dans la suite propose de compenser cette dérive. La FIG. 2 représente , très schématiquement et sous forme de blocs, un mode de réalisation d’une partie 200 d’un réseau de neurones. La partie 200 est concentrée sur des entrées d’un neurone. La partie 200 comprend un neurone 201 (SN). Selon un mode de réalisation, le neurone 201 est un neurone à impulsion. Le neurone 201 peut recevoir un courant Iout200 provenant d’une autre couche de neurones du réseau de neurones. Comme cela a été indiqué précédemment, un exemple détaillé d’un neurone à impulsion sera décrit en relation avec la FIG. 3 . La partie 200 comprend en outre un atténuateur de courant non linéaire 202 (NL CURRENT ATTENUATOR) configuré pour fournir un courant Iout200 audit neurone 201. L’atténuateur 202 peut recevoir un courant lin200 et pour appliquer une fonction non-linéaire audit courant lin200 afin de fournir un courant Iout200. En d’autres termes, le courant Iout200 est non linéaire par rapport au courant Iin200. Un exemple détaillé d’un tel atténuateur sera décrit en relation avec la FIG. 3 . La partie 200 comprend en outre une couche 203 de neurones 204 (SN) et la synapse associée 205 (S) des réseaux de neurones. Selon un exemple, chaque neurone 204 est relié au neurone 201 par l’intermédiaire d’une synapse 205. Plus particulièrement, chaque neurone 204 est relié à l’atténuateur de courant 202 par l’intermédiaire d’une synapse 205. Selon un mode de réalisation, comme le neurone 201, chaque neurone 204 est un neurone à impulsion. Selon un mode de réalisation, chaque synapse 205 est modélisée par une cellule mémoire et, plus particulièrement, par une cellule mémoire à plusieurs niveaux. Selon un exemple préféré, une partie de chaque synapse 205 peut être modélisée par une cellule mémoire à modification de phase et, plus particulièrement, par une cellule mémoire à modification de phase à plusieurs niveaux. Chaque synapse 205 est reliée à un neurone 201 par l’intermédiaire de l’atténuateur de courant non linéaire 202. Plus particulièrement, toutes les sorties des synapses 205 sont reliées à un nœud d’entrée de l’atténuateur 202. Ainsi, le courant lin200 est la somme de chaque courant de sortie des synapses 205. En outre, chaque courant de sortie des synapses 205 est le résultat d’impulsions de tension converties en courant par des éléments résistifs des synapses 205 et, plus particulièrement, par les cellules mémoire des synapses 205. Les inventeurs ont découverts que l’utilisation d’un atténuateur de courant non linéaire entre les synapses 205 et un neurone 201 compense un phénomène de dispersion et de dérive de la résistance qui apparait dans les synapses 205. La FIG. 3 est un schéma de circuit d’une partie 300 d’un réseau de neurones du type de la partie 200 décrite en relation avec la FIG. 2 . Comme la partie 200 de la FIG. 2 , la partie 300 est concentrée sur des entrées d’un neurone 301. La partie 300 comprend : - un neurone 301 ; - un atténuateur de courant non linéaire 302 ; - une couche 303 de synapses 304 reliée au neurone 301. Selon un mode de réalisation, le neurone 301 est un neurone analogique post-synaptique et, par exemple, un neurone à impulsion. Le neurone 301 est configuré pour recevoir un courant Iout300 et pour fournir une tension de sortie Vout300. Selon un exemple, le neurone 301 est constitué de transistors à effet de champ métal – oxyde – semiconducteur ou transistors MOSFET, ou transistors MOS. Plus particulièrement, le neurone 301 est constitué de transistors MOS à canal N ou transistors MOS de type N ou transistors NMOS, ou de transistors MOS à canal P ou transistors MOS de type P ou transistors PMOS. Selon un exemple, le neurone 301 comprend un premier circuit miroir de courant contenant deux transistors NMOS N301 et N302. Une borne de drain du transistor N301 est reliée, de préférence connectée, à un nœud fournissant un courant Iout300 et est également reliée à des bornes de grille des transistors N301 et N302. Des bornes de source des transistors N301 et N302 sont toutes deux reliées, de préférence connectées, à un nœud fournissant une tension de référence GND300, telle que la masse. Selon un exemple, le neurone 301 comprend un deuxième circuit miroir de courant contenant deux transistors PMOS P301 et P302. Une borne de drain du transistor P301 est reliée, de préférence connectée, à une borne de source du transistor N302. Des bornes de source des transistors P301 et P302 sont toutes deux reliées, de préférence connectées, à un nœud fournissant une tension d’alimentation Vdd300. Une borne de drain du transistor P302 est reliée, de préférence connectée, à des bornes de grille de transistors P301 et P302 et fournit un courant Iinput300 qui est une image du courant Iout300. Selon un exemple, le neurone 301 comprend un transistor PMOS P303 et un transistor NMOS N303. Une borne de source du transistor P303 est reliée, de préférence connectée, à la borne de drain du transistor P302 et reçoit donc le courant Iinput300. Des bornes de drain des transistors P303 et N303 sont reliées, de préférence connectées, l’une à l’autre. La borne de source du transistor N303 reçoit la tension de référence GND300. Selon un exemple, le neurone 301 comprend un transistor NMOS N304 et un condensateur Cmem300. Une borne de drain du transistor N304 est reliée, de préférence connectée, aux bornes de drain des transistors N303 et P303 et une borne de source du transistor N304 reçoit la tension de référence GND300. La borne de grille du transistor N304 reçoit une tension de commande Vleak300. Le condensateur Cmem300 est relié entre les bornes de drain des transistors N303 et P303 et le nœud fournissant la tension de référence GND300. Le transistor N304 est utilisé en tant qu’élément de fuite du neurone 301. Le condensateur Cmem300 est un condensateur de stockage, également appelé condensateur à membrane. Selon un exemple, le neurone 301 comprend deux (2) transistors PMOS P304 et P305 et trois (3) transistors NMOS N305, N306 et N307. Une borne de source du transistor P304 reçoit la tension d’alimentation Vdd300. Des bornes de drain des transistors P304 et N305 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N305 reçoit la tension de référence GND300. Des bornes de grille des transistors P304 et N305 sont reliées, de préférence connectées, aux bornes de drain des transistors P303 et N303. Une borne de source du transistor P305 reçoit la tension d’alimentation Vdd300. Des bornes de drain des transistors P305 et N306 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N306 est reliée, de préférence connectée, à la borne de drain du transistor N307. Des bornes de grille du transistor P305 et N306 sont reliées, de préférence connectées, aux bornes de drain des transistors P304 et N305. Une borne de source du transistor N307 est reliée, de préférence connectée, à la tension de référence GND300. Une borne de grille du transistor N307 reçoit une tension de commande Vrefra300. La tension de commande Vrefra300 est utilisée pour commander la période réfractaire du neurone 301, c'est-à-dire la durée pendant laquelle le neurone 301 devient insensible à un quelconque courant d’entrée Iinput300. Selon un exemple, le neurone 301 comprend un condensateur Crefra300 relié, de préférence connecté, entre les bornes de drain des transistors P305 et N306. Selon un exemple, le neurone 301 comprend deux (2) transistors PMOS P306 et P307 et deux (2) transistors NMOS N308 et N309. Des bornes de source des transistors P306 et P307 sont reliées, de préférence connectées, l’une à l’autre. Des bornes de drain des transistors P306 et N308 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N308 reçoit la tension de référence GND300. Des bornes de grille des transistors P306 et N308 sont reliées, de préférence connectées, aux bornes de drain des transistors P305 et N306. Des bornes de drain des transistors P307 et N309 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N309 reçoit la tension de référence GND300. Des bornes de grille des transistors P307 et N309 sont reliées, de préférence connectées, aux bornes de drain des transistors P306 et N308. Selon un exemple, le neurone 301 comprend trois (3) transistors PMOS P308, P309 et P310 et trois (3) transistors NMOS N310, N311 et N312. Des bornes de source des transistors P308, P309 et P310 sont reliées, de préférence connectées, les unes aux autres. Des bornes de drain des transistors P308 et N310 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N310 reçoit la tension de référence GND300. Des bornes de grille des transistors P308 et N310 sont reliées, de préférence connectées, aux bornes de drain des transistors P306 et N308. Des bornes de drain des transistors P309 et N311 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N311 reçoit la tension de référence GND300. Des bornes de grille des transistors P309 et N311 sont reliées, de préférence connectées, aux bornes de drain des transistors P308 et N310. Des bornes de drain des transistors P310 et N312 sont reliées, de préférence connectées, l’une à l’autre. Une borne de source du transistor N312 reçoit la tension de référence GND300. Des bornes de grille des transistors P310 et N312 sont reliées, de préférence connectées, l’une à l’autre et fournissent la tension de sortir Vout300 des neurones 301. Selon un mode de réalisation, la couche 303 comprend plusieurs synapses 304 placées dans une matrice ou une colonne. Seulement une partie de chaque synapse 304 est représentée en FIG. 3 , cette partie comprend une cellule mémoire Mem301 (PCM) et un transistor NMOS de sélection N313 ou sélecteur N313. Selon un mode de réalisation, la cellule mémoire Mem301 est une cellule mémoire à plusieurs niveaux. Selon un mode de réalisation, la cellule mémoire Mem301 est une cellule mémoire à modification de phase et, par exemple, une cellule mémoire à modification de phase à plusieurs niveaux. Comme cela a été indiqué précédemment, la cellule mémoire Mem301 est confrontée à un phénomène de dérive de la résistance. Une première borne de conduction du transistor N313 est reliée, de préférence connectée, à la sortie de la cellule mémoire Mem301 et une deuxième borne de conduction du transistor N313 fournit un courant de lecture des synapses 304, également appelé courant d’inférence des synapses 304. Une borne de grille du transistor N313 reçoit une tension de sélection. Toutes les synapses 304 de la couche 303 ont leur sortie reliée, de préférence connectée, les unes aux autres. Cela signifie que toutes les deuxièmes bornes de conduction des transistors N313 sont reliées, de préférence connectées, les unes aux autres. La couche 303 fournit un courant Iinfer300 à l’atténuateur de courant 302. Le courant Iinfer300 est la somme de tous les courants de lecture des synapses 304. Selon un mode de réalisation, l’atténuateur de courant non linéaire 302 comprend un premier circuit miroir de courant contenant deux transistors NMOS N314 et N315. Une borne de drain du transistor N314 est reliée, de préférence connectée, à un nœud fournissant le courant Iinfer300 et est également reliée aux bornes de grille des transistors N314 et N315. Des bornes de source des transistors N314 et N315 sont toutes deux reliées, de préférence connectées, à un nœud fournissant une tension de référence GND300, telle que la masse. Selon un exemple, l’atténuateur 302 comprend un deuxième circuit miroir de courant contenant deux transistors PMOS P311 et P312. Une borne de drain du transistor P311 est reliée, de préférence connectée, à une borne de source du transistor N315. Des bornes de source des transistors P311 et P312 sont toutes deux reliées, de préférence connectées, à un nœud fournissant une tension d’alimentation Vdd300. Une borne de drain du transistor P312 est reliée, de préférence connectée, à des bornes de grille P311 et P312 et fournit un courant Iin300 qui est une image du courant Iinfer300 qui est également appelé courant d’entrée Iin300. Selon un exemple, l’atténuateur 302 comprend deux transistors NMOS N316 et N317. Une première borne de conduction du transistor N316 est reliée, de préférence connectée, à la borne de drain du transistor P312. Une deuxième borne de conduction du transistor N316 est reliée, de préférence connectée, à une borne de source du transistor N317. Une borne de grille du transistor N317 reçoit la tension d’alimentation Vdd300. Une borne de drain du transistor N317 fournit une tension intermédiaire Vint300. Selon un exemple, l’atténuateur 302 comprend huit (8) transistors NMOS N318, N319, N320, N321, N322, N323, N324 et N325 et quatre (4) transistors PMOS P313, P314, P315 et P316. Des bornes de grille des transistors N318, N319, N320 et N321 sont toutes reliées, de préférence connectées, les unes aux autres, à la borne de grille du transistor N317 et à la borne de source du transistor N317. Les transistors N318, N319, N320 et N321 sont toutes reliées, de préférence connectées, en série. En d’autres termes, une première borne de conduction du transistor N318 est reliée, de préférence connectée, à une première borne de conduction du transistor N319. Une deuxième borne de conduction du transistor N319 est reliée, de préférence connectée, à une première borne de conduction du transistor N320. Une deuxième borne de conduction du transistor N320 est reliée, de préférence connectée, à une première borne de conduction du transistor N321. Des bornes de grille des transistors N322, N323, N324 et N325 sont toutes reliées, de préférence connectées, les unes aux autres. Les transistors N322, N323, N324 et N325 sont tous reliés, de préférence connectés, en série. En d’autres termes, une première borne de conduction du transistor N322 est reliée, de préférence connectée, à une première borne de conduction du transistor N323. Une deuxième borne de conduction du transistor N323 est reliée, de préférence connectée, à une première borne de conduction du transistor N324. Une deuxième borne de conduction du transistor N324 est reliée, de préférence connectée, à une première borne de conduction du transistor N325. Une première borne de conduction du transistor P313 est reliée, de préférence connectée, à une deuxième borne de conduction du transistor N321. Une deuxième borne de conduction du transistor P313 est reliée, de préférence connectée, à une première borne de conduction du transistor P314. Une première borne de conduction du transistor P315 est reliée, de préférence connectée, à une deuxième borne de conduction du transistor N325. Une deuxième borne de conduction du transistor P315 est reliée, de préférence connectée, à une première borne de conduction du transistor P316. Des bornes de grille des transistors P313 et P315 sont reliées, de préférence connectées, l’une à l’autre et à la première borne de conduction du transistor P315. Des bornes de grille des transistors P314 et P316 sont reliées, de préférence connectées, l’une à l’autre et à la première borne de conduction du transistor P316. Selon un exemple, l’atténuateur 302 comprend un transistor NMOS N326. Une première borne de conduction du transistor N326 est reliée, de préférence connectée, à la borne de drain du transistor P312. Une deuxième borne de conduction du transistor N326 est reliée, de préférence connectée, à la borne de drain du transistor N317 et fournit également la tension intermédiaire Vint300. Selon un exemple, l’atténuateur 302 comprend deux transistors NMOS N326’ et N327 et un transistor PMOS P317. Une borne de drain du transistor N326’ est reliée, de préférence connectée, aux deuxièmes bornes de conduction des transistors N318 et N322. Une borne de source du transistor N326’ reçoit la tension de référence GND300. Des bornes de grille des transistors N327 et N328 sont reliées, de préférence connectées, l’une à l’autre, à la borne de drain du transistor N327 et à la borne de source du transistor P317. Une borne de source du transistor N327 reçoit la tension de référence GND300. Selon un exemple, l’atténuateur 302 comprend deux (2) transistors NMOS N328 et N329 et un transistor PMOS P318. Une borne de source du transistor P318 est reliée, de préférence connectée, à la borne de source du transistor P317. Une borne de grille du transistor P318 est reliée, de préférence connectée, à la borne de grille du transistor P317. Une borne de drain du transistor P318 est reliée, de préférence connectée, à la borne de drain du transistor N329. Une borne de source du transistor N329 est reliée, de préférence connectée, à la borne de drain du transistor N328. Une borne de source du transistor N329 reçoit la tension de référence GND300. Des bornes de grille des transistors N328 et N329 sont reliées, de préférence connectées, l’une à l’autre et à la borne de drain du transistor N328. Selon un exemple, l’atténuateur 302 comprend deux (2) transistors NMOS N330 et N331 et deux (2) transistors PMOS P319 et P320. Une borne de source du transistor P319 est reliée, de préférence connectée, à la borne de source du transistor P317. Une borne de grille du transistor P319 est reliée, de préférence connectée, à la borne de grille du transistor P317. Une borne de source du transistor P320 est reliée, de préférence connectée, à la borne de source du transistor P317. Une borne de grille du transistor P320 est reliée, de préférence connectée, à la borne de grille du transistor P317. Une borne de drain du transistor N330 est reliée, de préférence connectée, à la borne de drain du transistor P319. Une borne de source du transistor N330 reçoit la tension de référence GND300. Des bornes de grille des transistors N330 et N331 sont reliées, de préférence connectées, l’une à l’autre, à la borne de drain du transistor N330 et à la borne de source du transistor P318. Selon un exemple, l’atténuateur 302 comprend deux (2) transistors NMOS N332 et N332 et un transistor PMOS P321. Une borne de source du transistor P321 est reliée, de préférence connectée, à la borne de source du transistor P317. Une borne de grille du transistor P321 est reliée, de préférence connectée, à la borne de grille du transistor P317. Une borne de drain du transistor P321 est reliée, de préférence connectée, à la borne de drain du transistor N333 et à la borne de grille du transistor N333. Une borne de source du transistor N333 est reliée, de préférence connectée, à la borne de drain du transistor N332. Une borne de source du transistor N333 reçoit la tension de référence GND300. Des bornes de grille des transistors N332 et N333 sont reliées, de préférence connectées, l’une à l’autre et à la borne de source du transistor N331. Un circuit de référence de courant à polarisation automatique de l’atténuateur 302 comprend les transistors N326 à N333 et P317 à P321 et génère un courant à sous-seuil qui est transporté par le miroir de courant N327 à N326 qui agit pour limiter le Iout300 de l’atténuateur de courant. La polarisation de courant transporté par N326 est le courant de polarisation. Comme cela a été indiqué précédemment, l’atténuateur 302 est un atténuateur de courant non-linéaire configuré pour fournir un courant de sortie Iout300 dont l’évolution est non linéaire par rapport à l’évolution du courant d’entrée Iin300. Dans l’exemple représenté en FIG. 3 , le courant de sortie Iout300 dépend du courant d’entrée Iin300 par l’intermédiaire d’une fonction de décroissance exponentielle à une phase. Plus particulièrement, le courant de sortie Iout300 est donné par la formule mathématique suivante : [Math 2] , dans laquelle : - SDFmax représente le gain maximal fourni par l’atténuateur 302, c'est-à-dire le facteur de réduction de courant maximal (SDF) ; - SDFmin représente le gain minimal fourni par l’atténuateur 302, c'est-à-dire le facteur de réduction de courant minimal (SDF) ; et - λ est un coefficient défini de façon expérimentale. De plus, la fonction du facteur de réduction de courant SDF de l’atténuateur 302 est donnée par la formule mathématique suivante : [Math 1] . Le facteur de réduction de courant (SDF) ou gain de l’atténuateur, défini comme étant le rapport entre le courant IIin300 et le courant Iout300, n’est pas linéaire par rapport à Iin300 pour certains exemples de conditions de fonctionnement ou certains exemples de mode de fonctionnement. Il n’est pas linéaire car le courant de sortie Iout300 est initialement constant indépendamment de l’augmentation de Iin300. Ce mode est déclenché à chaque fois que la tension Vint300 est suffisante pour saturer le transistor N326 même pendant le début du fonctionnement, c'est-à-dire lorsque le courant Iin300 est égal à zéro. Les transistors N316 à N317 sont connectés au transistor N326 en suiveurs de source. Ainsi, une modification de la tension Vint300 provoquera non seulement une modification de la tension de grille des transistors N317 et N316, mais modifiera également la tension de drain de N326. Le transistor N326 sera à saturation à chaque fois que la tension de drain est supérieure à sensiblement quatre fois le potentiel thermique. Le taux de rejet en mode commun (CMRR) de l’atténuateur 302 est élevé lorsque le courant de polarisation transporté par le transistor N326 est constant, c'est-à-dire que le transistor N326 est à saturation, de sorte que le courant de sortie Iout300 dépende uniquement de la modification d’entrée différentielle des bornes de grille des transistors N316 et N317, qui dépend du courant Iin300. Lorsque le courant Iin300 augmente, la modification d’entrée différentielle augmente. Enfin, le courant Iout300 est initialement constant car pendant le démarrage du fonctionnement, le courant Iin300, c'est-à-dire la modification de courant d’entrée, n’est pas suffisant pour commander/modifier le courant Iout300. Par contre, lorsque Vint300 n’est pas suffisant pour saturer le transistor N326 et son courant de polarisation n’est pas constant, c'est-à-dire qu’il est plutôt dans la région triode à transconductance élevée, de sorte que le taux de rejet en mode commun soit réduit et que le courant Iout300 dépende de la tension de mode commun du transistor N326. Ainsi, toute augmentation de Vint300 générera une augmentation de Iout300 et ainsi Iout300 n’est pas initialement constant ou saturé. Ainsi, Iout300 n’est pas constant et augmente lorsque Iin300 augmente, même pour de faibles valeurs de ce dernier, c'est-à-dire que le facteur de réduction du courant (SDF) de l’atténuateur est linéaire pour cet exemple de mode de fonctionnement. La FIG. 4 représente un graphe illustrant le facteur de réduction de courant (SDF) de l’atténuateur 302 décrit en relation avec la FIG. 3 s’agissant du courant d’entrée In300 (Iin(A)). Le gain de l’atténuateur 302 est défini par la division du courant d’entrée In300 par le courant de sortie Iout300. Le graphe de la FIG. 4 représente une série 401 de points illustrant une première configuration de l’atténuateur 302 et une série 402 de points illustrant une deuxième configuration de l’atténuateur 302. Les deux configurations de l’atténuateur 302 ont le même mode de configuration non-linéaire, avec seulement un niveau différent d’accordabilité. Le fonctionnement non linéaire est atteint à chaque fois qu’une tension Vbias300 est suffisante pour saturer le transistor N326 depuis le tout début du fonctionnement de l’atténuateur (pour de faibles valeurs de Iin300). Le taux de rejet en mode commun de l’atténuateur 302 est suffisamment élevé pour rendre le courant Iout300 constant et ne pas changer à chaque fois que la tension de mode commun de la tension de grille des transistors N317 et N316, qui augmente avec In300, n’est pas suffisamment élevée. Ainsi, pour des valeurs faibles de Iin300, Iin300 augmente lorsque Iout300 est constant, ce qui rend non linéaire le facteur de réduction de gain/courant – cette condition est décrite par les courbes 401 et 402 pour un Vbias300 égal à 0,1 V et pour un Vbias300 égal à 0,2 V. Pour l’accorder, on change Vbias300. Lorsqu’on augmente Vbias300, la tension de drain du transistor N326 augmente et le fait saturer plus tôt à chaque fois que la tension Vbias300 est égale à 0,22 V (courbe 401) au lieu de 0,15 V (courbe 402). Le graphe de la FIG. 4 montre directement que l’atténuateur 302 est non linéaire. La FIG. 5 comprend une série de graphes 510 illustrant le résultat de l’utilisation de l’atténuateur 302 décrit en relation avec la FIG. 3 . La série de graphes 510 comprend : - un graphe 511 illustrant la normalisation de courants de lecture des synapses 304 décrits en relation avec la FIG. 3 , après l’utilisation d’un atténuateur de courant linéaire à un instant initial ; - un graphe 512 illustrant la normalisation de courants de lecture des synapses 304 après l’utilisation d’un atténuateur de courant linéaire à un autre instant qui suit l’instant initial ; - un graphe 513 illustrant la normalisation de courants de lecture des synapses 304 après l’utilisation de l’atténuateur de courant non linéaire 302 ayant la première configuration, audit autre instant qui suit l’instant initial ; - un graphe 514 illustrant la normalisation de courants de lecture des synapses 304 après l’utilisation de l’atténuateur de courant non linéaire 302 ayant la deuxième configuration, audit autre instant qui suit l’instant initial ; et - un graphe 515 illustrant la comparaison du phénomène de dérive de la résistance entre le cas illustré par les graphes 511 à 514. La différence entre les graphes 511 et 512 montre le phénomène de dérive de la résistance décrit précédemment. Les graphes 513 à 515 montrent l’impact de l’utilisation d’un atténuateur de courant non linéaire et, plus particulièrement, l’impact de l’utilisation de l’atténuateur de courant non linéaire 302 de la FIG. 3 . Un atténuateur de courant non linéaire a pour effet de réduire le phénomène de dérive de la résistance. Divers modes de réalisation et variantes ont été décrits. La personne du métier comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d’autres variantes apparaîtront à la personne du métier. Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de la personne du métier à partir des indications fonctionnelles données ci-dessus. Circuit de type réseau de neurones (200 ; 300) comprenant au moins un premier neurone (204 ; 304) relié à un deuxième neurone (201 ; 301) par l’intermédiaire d’au moins une synapse (205) et un atténuateur de courant non linéaire (202 ; 302) configuré pour recevoir un premier courant (Iin200 ; Iin300) provenant de ladite au moins une synapse (205) et pour fournir un deuxième courant (Iout200 ; Iout300) audit deuxième neurone (201 ; 301). Circuit selon la revendication 1, dans lequel ladite au moins une synapse (205) comprend une cellule mémoire à plusieurs niveaux. Circuit selon la revendication 2, dans lequel ladite au moins une synapse (205) comprend une cellule mémoire à modification de phase à plusieurs niveaux. Circuit selon l’une quelconque des revendications 1 à 3, dans lequel ledit premier courant (Iin200 ; Iin300) est un courant de lecture dudit au moins un premier neurone (204 ; 304). Circuit selon l’une quelconque des revendications 1 à 4, comprenant au moins deux premiers neurones (204 ; 304) et au moins deux synapses (205), dans lequel ledit premier courant (Iin200 ; Iin300) est la somme de troisièmes courants fournis par chacune desdites au moins deux synapses (205). Circuit selon l’une quelconque des revendications 1 à 5, dans lequel ledit au moins un premier neurone (204 ; 304) est un neurone à impulsion. Circuit selon l’une quelconque des revendications 1 à 6, dans lequel ledit deuxième neurone (201 ; 301) est un neurone à impulsion. Circuit selon l’une quelconque des revendications 1 à 7, dans lequel ledit atténuateur de courant non linéaire (202 ; 302) est non linéaire par rapport audit premier courant (Iin200 ; Iin300). Circuit selon la revendication 8, dans lequel ledit deuxième courant (Iout300) dépend du premier courant (Iin300) par l’intermédiaire d’une fonction exponentielle. Circuit selon la revendication 9, dans lequel ledit deuxième courant (Iout300) est donné par la formule mathématique suivante : [Math 4] , dans laquelle : - Ilin300 représente ledit premier courant (Iin200 ; Iin300) ; - SDFmax représente le gain maximal fourni par ledit atténuateur (302) ; - SDFmin représente le gain minimal fourni par ledit atténuateur (302) ; et - est un facteur défini de façon expérimental.