FR 3040227 A1 20170224 FR 1557781 A 20150818 0402 2 7 1 PROCEDE DE PROGRAMMATION D'UN RESEAU DE NEURONES ARTIFICIELS DOMAINE TECHNIQUE DE L'INVENTION Le domaine technique de l'invention est celui des réseaux de neurones artificiels, ou circuits neuromorphiques. La présente invention concerne un procédé de programmation d'un réseau de neurones artificiels. ARRIERE-PLAN TECHNOLOGIQUE DE L'INVENTION Dans le domaine des technologies de l'information et de la communication, les réseaux de neurones artificiels font l'objet d'un grand intérêt. Un réseau de neurones artificiels s'inspire du fonctionnement du cerveau humain et comprend une pluralité de neurones artificiels et une pluralité de synapses artificielles. Le cerveau humain comprend environ 1011 neurones et 1015 synapses, chaque neurone étant connecté à d'autres neurones via environ 103 à 104 synapses. En raison du grand nombre de connexions inter-neuronales, les synapses artificielles représentent la majeure partie d'un circuit neuromorphique. C'est pourquoi simplifier et réduire la taille des synapses artificielles est un enjeu 20 important. Le rôle d'une synapse artificielle est d'être une connexion pour la communication entre deux neurones. Une synapse artificielle doit donc présenter une conductance électriquement réglable. Pour réaliser des synapses artificielles au 25 sein de circuits neuromorphiques, il a ainsi été proposé d'utiliser des mémoires vives résistives, et en particulier des mémoires vives résistives de type OxRRAM (de l'anglais « Oxide Resistive Random Access Memory ») ou des mémoires vives résistives de type CBRAM (de l'anglais « Conductive Bridge Random Access Memory »). Les mémoires vives résistives de type OxRRAM et les mémoires vives 30 résistives de type CBRAM sont en effet aptes à simuler le comportement des 3040227 2 synapses biologiques, c'est-à-dire à moduler la force des connexions inter-neuronales. Afin de réaliser une synapse artificielle à partir de mémoires vives résistives de 5 type OxRRAM ou de type CBRAM, deux approches sont notamment connues : une approche analogique et une approche binaire. Selon l'approche analogique, on utilise une seule mémoire vive résistive de type OxRRAM ou de type CBRAM par synapse artificielle et on exploite au moins trois 10 états résistifs de ladite mémoire vive résistive, au moyen d'impulsions électriques d'amplitude et/ou de durée variables générées par chaque neurone. Cette approche analogique classique, qui implique l'utilisation d'au moins trois types d'impulsions électriques, requiert toutefois l'utilisation d'une électronique complexe. Chaque état résistif exploité nécessite en effet l'utilisation d'un type 15 particulier d'impulsions électriques, chaque type d'impulsions électriques ayant une amplitude et une durée particulières. Selon l'approche binaire, on utilise pour chaque synapse artificielle une pluralité de mémoires vives résistives de type OxRRAM ou de type CBRAM fonctionnant en parallèle et on n'exploite que deux états résistifs de chaque mémoire vive résistive : un état fortement résistif, dit état HRS (de l'anglais « High Resistive State ») ou état « OFF », et un état faiblement résistif dit état LRS (de l'anglais « Low Resistive State ») ou état « ON ». On obtient de cette manière un fonctionnement multi-niveaux, permettant effectivement de moduler une connexion inter-neuronale, tout en n'utilisant que deux types d'impulsions électriques. L'utilisation d'une pluralité de mémoires vives résistives au sein de chaque synapse artificielle implique toutefois une augmentation de la taille de chaque synapse artificielle, par rapport à une synapse artificielle n'utilisant qu'une seule mémoire vive résistive selon l'approche analogique. 3040227 3 RESUME DE L'INVENTION L'invention offre une solution aux problèmes évoqués précédemment, en proposant un procédé de programmation d'un réseau de neurones artificiels dans lequel on utilise une unique mémoire vive résistive par synapse artificielle tout en 5 n'utilisant au maximum que deux types d'impulsions électriques de programmation. Un aspect de l'invention concerne un procédé de programmation d'un réseau de neurones artificiels ayant une pluralité de synapses artificielles, chaque synapse 10 artificielle étant une unique mémoire vive résistive, telle qu'une mémoire OxRAM ou CBRAM, en série avec un moyen de limitation de courant, la mémoire vive résistive comportant une zone active et des première et deuxième électrodes de part et d'autre de la zone active, le procédé de programmation comportant les étapes suivantes : 15 - une étape de détermination d'un nombre N d'intervalles de conductance, avec N un entier naturel supérieur ou égal à 3 ; - pour chaque mémoire vive résistive : o une étape de choix d'un intervalle de conductance parmi les N intervalles de conductance précédemment déterminés ; 20 o une étape i) comprenant : ^ une première sous-étape d'application d'une impulsion de tension d'un premier type entre les première et deuxième électrodes de ladite mémoire vive résistive, l'impulsion de tension du premier type ayant une première durée et une 25 première amplitude, et ^ une deuxième sous-étape de lecture d'une valeur de conductance de ladite mémoire vive résistive ; o si ladite valeur de conductance n'appartient pas à l'intervalle de conductance précédemment choisi, une étape ii) comprenant : 30 ^ une première sous-étape d'application d'une impulsion de tension d'un deuxième type entre les première et deuxième électrodes de ladite mémoire vive résistive, l'impulsion de 3040227 4 tension du deuxième type ayant une deuxième durée et une deuxième amplitude, et ^ une deuxième sous-étape de lecture d'une valeur de conductance de ladite mémoire vive résistive ; 5 o si ladite valeur de conductance n'appartient pas à l'intervalle de conductance choisi, une étape selon laquelle on réitère l'étape i), les étapes i) et ii) étant répétées jusqu'à ce que la valeur de conductance de la mémoire vive résistive appartienne à l'intervalle de conductance choisi ; chaque impulsion de tension du premier 10 type appliquée lors de chaque étape i) ayant la même première durée et la même première amplitude, et chaque impulsion de tension du deuxième type appliquée lors de chaque étape ii) ayant la même deuxième durée et la même deuxième amplitude. 15 Grâce à l'invention, on exploite avantageusement la dispersion, pour un courant de programmation donné, des états résistifs d'une mémoire vive résistive sur une plage de résistance. La dispersion des états résistifs d'une mémoire vive résistive peut désigner la dispersion des états faiblement résistifs LRS et/ou la dispersion des états fortement résistifs HRS. La résistance étant l'inverse de la conductance, 20 il existe une plage de conductance correspondant à la ladite plage de résistance. Chacun des N intervalles de conductance est choisi parmi ladite plage de conductance. A chaque intervalle de conductance correspond donc un intervalle de résistance, l'intervalle de résistance comprenant au moins un état résistif de la mémoire vive résistive. 25 On considère une première mémoire vive résistive : pour cette première mémoire vive résistive, on choisit un intervalle de conductance parmi les N intervalles de conductance. Il s'agit ensuite de programmer ladite première mémoire vive résistive de manière qu'elle présente une conductance appartenant à l'intervalle 30 de conductance préalablement choisi. Pour ce faire, l'impulsion de tension du premier type est appliquée à la première mémoire vive résistive selon la première sous-étape de l'étape i). La deuxième sous-étape de l'étape i) permet de 3040227 5 déterminer si la première mémoire vive résistive présente, à l'issue de l'application de l'impulsion de tension du premier type, l'intervalle de conductance préalablement choisi. Si la première mémoire vive résistive présente effectivement l'intervalle de conductance choisi, la programmation de ladite première mémoire 5 vive résistive est terminée. Si la première mémoire vive résistive ne présente pas l'intervalle de conductance choisi, l'impulsion de tension du deuxième type est appliquée à la première mémoire vive résistive selon la première sous-étape de l'étape ii). La deuxième sous-étape de l'étape ii) permet de déterminer si la première mémoire vive résistive présente, à l'issue de l'application de l'impulsion 10 de tension du deuxième type, l'intervalle de conductance préalablement choisi. Si la première mémoire vive résistive présente effectivement l'intervalle de conductance choisi, la programmation de ladite première mémoire vive résistive est terminée. Si la première mémoire vive résistive ne présente pas l'intervalle de conductance choisi, l'étape i) est répétée. 15 Durant le procédé, le courant de programmation est fixé par le moyen de limitation de courant. La dispersion des états résistifs sur une plage de résistance et le choix des intervalles de conductance sur une plage de conductance correspondant à la plage de résistance permet d'affirmer que la première mémoire vive résistive est, 20 à un moment donné, effectivement programmée de sorte qu'elle présente une conductance appartenant à l'intervalle de conductance choisi. Outre les caractéristiques qui viennent d'être évoquées dans le paragraphe précédent, le procédé de programmation d'un réseau de neurones artificiels selon 25 un aspect de l'invention peut présenter une ou plusieurs caractéristiques complémentaires parmi les suivantes, considérées individuellement ou selon toutes les combinaisons techniquement possibles : - Chaque mémoire vive résistive est une mémoire de type OxRAM. 30 - Alternativement, chaque mémoire vive résistive est une mémoire de type CBRAM. - On choisit le moyen de limitation de courant de chaque synapse artificielle 3040227 6 de manière que le courant traversant chaque mémoire vive résistive est inférieur ou égal à 20 pA. - On choisit le moyen de limitation de courant de chaque synapse artificielle 5 de manière que le courant traversant chaque mémoire vive résistive est supérieur à 1 pA. - L'impulsion de tension du deuxième type est de signe opposé à l'impulsion de tension du premier type. Cette caractéristique permet l'utilisation d'une 10 mémoire vive résistive bipolaire. - Alternativement, l'impulsion de tension du deuxième type est de même signe que l'impulsion de tension du premier type. Cette caractéristique permet alternativement l'utilisation d'une mémoire vive résistive unipolaire. 15 L'invention et ses différentes applications seront mieux comprises à la lecture de la description qui suit et à l'examen des figures qui l'accompagnent. BREVE DESCRIPTION DES FIGURES 20 Les figures sont présentées à titre indicatif et nullement limitatif de l'invention. - La figure 1 montre une représentation schématique d'un réseau de neurones artificiels. - La figure 2a montre une représentation schématique d'une mémoire vive résistive. 25 - La figure 2b montre une représentation schématique d'une synapse artificielle comportant une mémoire vive résistive et un moyen de limitation de courant. - La figure 2c montre un graphique d'une fonction de distribution cumulative des états résistifs d'une mémoire vive résistive. 30 - La figure 3 montre un graphique de la dispersion des états faiblement résistifs et de la dispersion des états fortement résistifs d'une mémoire vive résistive, en fonction du courant circulant dans la mémoire vive résistive. 3040227 7 - La figure 4 montre un graphique des valeurs de conductance obtenues pour une mémoire vive résistive en fonction du nombre de cycles d'une impulsion de tension d'un premier type et d'une impulsion de tension d'un deuxième type réalisés. 5 - La figure 5 montre une représentation schématique d'une pluralité d'intervalles de conductance déterminés sur une plage de conductance d'une mémoire vive résistive. - La figure 6 montre un diagramme des étapes d'un procédé de programmation d'un réseau de neurones artificiels selon un mode de 10 réalisation de l'invention. - La figure 7 montre un graphique du nombre d'impulsions de tension nécessaires pour atteindre un intervalle de conductance donné d'une mémoire vive résistive. 15 DESCRIPTION DETAILLEE D'AU MOINS UN MODE DE REALISATION DE L'INVENTION Sauf précision contraire, un même élément apparaissant sur des figures différentes présente une référence unique. 20 La figure 1 montre une représentation schématique d'un réseau de neurones artificiels. La figure 2a montre une représentation schématique d'une mémoire vive résistive M. La figure 2b montre une représentation schématique d'une synapse artificielle S comportant une mémoire vive résistive M et un moyen de limitation de courant Lc. 25 Les figures 1, 2a et 2b sont décrites conjointement. Le réseau de la figure 1 comporte : - une pluralité de neurones artificiels N, et - une pluralité de synapses artificielles S. 30 Chaque synapse artificielle S connecte deux neurones artificiels N entre eux. Chaque neurone artificiel N est connecté à au moins un autre neurone artificiel N. Chaque neurone artificiel N peut être connecté à plusieurs autres neurones 3040227 8 artificiels N. Un paramètre important d'un réseau de neurones artificiels est notamment la conductance de chaque synapse artificielle. Un réseau de neurones artificiels 5 présente typiquement une phase d'apprentissage durant laquelle la conductance de chaque synapse artificielle est définie. Cette phase d'apprentissage peut notamment être une phase d'apprentissage supervisé (« off-line learning » en anglais) ou une phase d'apprentissage non-supervisé (« on-line learning » en anglais). Lors d'une phase d'apprentissage non-supervisé, chaque conductance 10 synaptique est déterminée in situ. Lors d'une phase d'apprentissage supervisé au contraire, chaque conductance synaptique est déterminée en amont grâce à des simulations informatiques, puis importée dans le réseau lors d'une unique étape de programmation. Le procédé de programmation d'un réseau de neurones artificiels selon un aspect de l'invention concerne plus particulièrement un procédé 15 de programmation d'un réseau de neurones artificiels au moyen d'une technique d'apprentissage supervisé. Chaque synapse artificielle S comporte une unique mémoire vive résistive M en série avec un moyen de limitation de courant Lc. Le moyen de limitation de 20 courant peut par exemple être une résistance ou un transistor. L'avantage d'utiliser un transistor par rapport à une résistance est de pouvoir contrôler le niveau de limitation de courant à l'aide de la tension de grille. La mémoire vive résistive M comporte : - une zone active A, 25 - une première électrode El et une deuxième électrode E2, les première et deuxième électrodes El et E2 étant agencées de part et d'autre de la zone active A. La mémoire vive résistive M présente typiquement une pluralité d'états faiblement 30 résistifs LRS et une pluralité d'états hautement résistifs HRS. La pluralité d'états faiblement résistifs LRS présente typiquement une première dispersion et la pluralité d'états hautement résistifs HRS présente typiquement une deuxième 3040227 9 dispersion. On considère une fonction de distribution cumulative des états résistifs, ou résistances, de la mémoire vive résistive M. Un exemple d'une telle fonction de distribution cumulative est par exemple illustré à la figure 2c. Dans le présent document, on entend par « dispersion des états résistifs », ou « variabilité 5 des états résistifs », l'intervalle entre les valeurs des états résistifs à 30% et 70% de ladite distribution cumulée. Dans l'exemple particulier de la figure 2c, la dispersion est ainsi repérée par le symbole o-R. Le passage de la mémoire vive résistive M d'un état hautement résistif HRS à un état faiblement résistif LRS est typiquement obtenu lors d'une étape dite « de SET », en appliquant une impulsion 10 de tension de SET entre les bornes des première et deuxième électrodes El et E2 de la mémoire vive résistive M. Le passage de la mémoire vive résistive M d'un état faiblement résistif LRS à un état hautement résistif HRS est typiquement obtenu lors d'une étape dite « de RESET », en appliquant une impulsion de tension de RESET entre les bornes des première et deuxième électrodes El et E2 15 de la mémoire vive résistive M. L'impulsion de tension de RESET présente une durée qui est typiquement différente de la durée de l'impulsion de tension de SET. L'impulsion de tension de RESET présente une amplitude qui est typiquement différente de l'amplitude de l'impulsion de SET. L'impulsion de tension de SET et l'impulsion de RESET peuvent toutefois dans certains cas présenter une même 20 durée et/ou une même amplitude. Dans le cas typique d'une mémoire vive résistive de type bipolaire, l'impulsion de tension de RESET est de signe opposé à l'impulsion de SET ; l'impulsion de SET est typiquement positive tandis que l'impulsion de RESET est typiquement négative. Dans le cas alternatif d'une mémoire vive résistive de type unipolaire, l'impulsion de tension de SET et 25 l'impulsion de tension de SET sont de même signe. Selon une première alternative, la mémoire vive résistive M peut être une mémoire vive résistive de type OxRRAM (de l'anglais « Oxide Resistive Random Access Memory »). Selon cette première alternative, la zone active A comprend 30 un matériau actif à base d'oxyde, tel qu'un oxyde binaire d'un métal de transition. Les première et deuxième électrodes El et E2 agencées de part et d'autre de la zone active A sont deux électrodes métalliques. Une mémoire vive résistive M de 3040227 10 type OxRRAM est donc une structure métal-oxyde-métal (« metal-insulatormetal » en anglais). Selon une deuxième alternative, la mémoire vive résistive M peut être une 5 mémoire vive résistive de type CBRAM (de l'anglais « Conductive Bridge Random Access Memory »). Selon cette deuxième alternative : - la zone active A comprend un matériau à conduction ionique formant un électrolyte solide à conduction ionique, - la première électrode El forme une cathode inerte, et 10 - la deuxième électrode E2 comporte une portion de métal ionisable, c'est-à- dire une portion de métal pouvant facilement former des ions métalliques, et forme une anode soluble. La figure 3 montre un graphique de la dispersion D des états faiblement résistifs 15 LRS et des états fortement résistifs HRS d'une mémoire vive résistive M, en fonction du courant I circulant dans la mémoire vive résistive M. La figure 3 montre une région Zf de courant de fonctionnement de la mémoire vive résistive M. La région Zf comporte une première zone Z1 et une deuxième zone Z2. Les courants de la première zone Z1 sont plus faibles que les courants de la deuxième zone Z2. 20 La deuxième zone Z2 permet un fonctionnement « classique » d'une mémoire vive résistive, selon lequel la mémoire vive résistive est apte à passer d'un état faiblement résistif LRS, ou état « ON », à un état hautement résistif HRS, ou état « OFF », et vice versa, l'état faiblement résistif LRS et l'état hautement résistif 25 HRS étant distincts l'un de l'autre. On entend par « distincts l'un de l'autre » le fait qu'il existe une plage de résistance qui sépare la pluralité d'états faiblement résistifs LRS d'une part et la pluralité d'états hautement résistifs HRS d'autre part, ladite plage de résistance ne comportant aucun état faiblement résistif et aucun état hautement résistif. La première dispersion des états faiblement résistifs LRS 30 et la deuxième dispersion des états hautement résistifs HRS ne se recouvrent pas. 3040227 11 La première zone Z1 ne permet pas le fonctionnement classique, précédemment décrit, d'une mémoire vive résistive. En effet, dans la première zone Z1, la première dispersion des états faiblement résistifs LRS et la deuxième dispersion des états hautement résistifs HRS se recouvrent. Autrement dit, dans la première 5 zone Z1, la résistance d'une mémoire vive résistive dans un état « faiblement » résistif LRS obtenu après l'application d'une impulsion de SET peut être supérieure ou égale à la résistance de ladite mémoire vive résistive dans un état « hautement » résistif HRS obtenu après l'application d'une impulsion de RESET. 10 La figure 4 montre un graphique des valeurs G de conductance obtenues pour une mémoire vive résistive M dans la première zone Z1 de courant précédemment décrite, en fonction du nombre NC de cycles d'une impulsion de tension de SET et d'une impulsion de tension de RESET réalisés. Chaque valeur de conductance G _SET obtenue après une étape de SET est représentée par un marqueur rond 15 sur la figure 4. Chaque valeur de conductance G_RESET obtenue après une étape de RESET est représentée par un marqueur triangle sur la figure 4. La figure 4 illustre le recouvrement, précédemment décrit, de la première dispersion des états faiblement résistifs LRS et de la deuxième dispersion des états hautement résistifs HRS lorsque la mémoire vive résistive M est utilisée dans la 20 première zone Z1 de courant. Lorsque la mémoire vive résistive M est utilisée dans la première zone Z1 de courant, la mémoire vive résistive M présente une unique plage, continue, de conductance Pg. Dans l'exemple particulier de la figure 4, la plage de conductance Pg s'étend environ entre 10-12 0-1 et 10-6 0-1, c'est-àdire sur six ordres de grandeurs. 25 La figure 5 montre une représentation schématique d'une pluralité d'intervalles de conductance déterminés sur une plage de conductance d'une mémoire vive résistive. Dans l'exemple particulier de la figure 5, la plage de conductance Pg de la figure 4 est divisée en six intervalles de conductance : 30 - un premier intervalle de conductance AGI tel que : 10-12n-1 REVENDICATIONS1. Procédé (100) de programmation d'un réseau de neurones artificiels (N) ayant une pluralité de synapses artificielles (S), chaque synapse artificielle (S) étant une unique mémoire vive résistive (M), telle qu'une mémoire OxRAM ou CBRAM, en série avec un moyen de limitation de courant, la mémoire vive résistive (M) comportant une zone active (A) et des première et deuxième électrodes (E1, E2) de part et d'autre de la zone active, le procédé (100) de programmation comportant les étapes suivantes : - une étape (101) de détermination d'un nombre N d'intervalles de conductance, avec N un entier naturel supérieur ou égal à 3 ; - pour chaque mémoire vive résistive (M) : o une étape (102) de choix d'un intervalle de conductance parmi les N intervalles de conductance précédemment déterminés ; o une étape i) comprenant : ^ une première sous-étape (103) d'application d'une impulsion de tension d'un premier type entre les première et deuxième électrodes (E1, E2) de ladite mémoire vive résistive (M), l'impulsion de tension du premier type ayant une première durée et une première amplitude, et ^ une deuxième sous-étape (104) de lecture d'une valeur de conductance de ladite mémoire vive résistive (M) ; o si ladite valeur de conductance n'appartient pas à l'intervalle de conductance précédemment choisi, une étape ii) comprenant : ^ une première sous-étape (105) d'application d'une impulsion de tension d'un deuxième type entre les première et deuxième électrodes (E1, E2) de ladite mémoire vive résistive (M), l'impulsion de tension du deuxième type ayant une deuxième durée et une deuxième amplitude, et ^ une deuxième sous-étape (106) de lecture d'une valeur de conductance de ladite mémoire vive résistive (M) ; 3040227 19 5 10 2. 153. 4. 20 25 5. 30 o si ladite valeur de conductance n'appartient pas à l'intervalle de conductance choisi, une étape selon laquelle on réitère l'étape i), les étapes i) et ii) étant répétées jusqu'à ce que la valeur de conductance de la mémoire vive résistive (M) appartienne à l'intervalle de conductance choisi ; chaque impulsion de tension du premier type appliquée lors de chaque étape i) ayant la même première durée et la même première amplitude, et chaque impulsion de tension du deuxième type appliquée lors de chaque étape ii) ayant la même deuxième durée et la même deuxième amplitude. Procédé (100) de programmation d'un réseau de neurones artificiels selon la revendication 1 caractérisé en ce que chaque mémoire vive résistive (M) est une mémoire de type OxRAM. Procédé (100) de programmation d'un réseau de neurones artificiels selon la revendication 1 caractérisé en ce que chaque mémoire vive résistive (M) est une mémoire de type CBRAM. Procédé (100) de programmation d'un réseau de neurones artificiels selon l'une quelconque des revendications précédentes caractérisé en ce qu'on choisit le moyen de limitation de courant de chaque synapse artificielle (S) de manière que le courant traversant chaque mémoire vive résistive (M) est inférieur ou égal à 20 pA. Procédé (100) de programmation d'un réseau de neurones artificiels selon l'une quelconque des revendications précédentes caractérisé en ce qu'on choisit le moyen de limitation de courant de chaque synapse artificielle (S) de manière que le courant traversant chaque mémoire vive résistive (M) est supérieur à 1 pA. 6. Procédé (100) de programmation d'un réseau de neurones artificiels selon l'une quelconque des revendications précédentes caractérisé en ce que l'impulsion de tension du deuxième type est de signe opposé à l'impulsion de tension du premier type. 3040227 20 7. Procédé (100) de programmation d'un réseau de neurones artificiels selon l'une quelconque des revendications 1 à 5 caractérisé en ce que l'impulsion de tension du deuxième type est de même signe que l'impulsion 5 de tension du premier type.