Brevet FR2980903A1 — publié le 20130405

La présente invention appartient au domaine des calculateurs électroniques, et concerne plus particulièrement un procédé de reprogrammation d'une mémoire réinscriptible non volatile, un support de mémorisation d'informations, ainsi qu'un calculateur électronique comportant un tel support de mémorisation. La présente invention trouve une application préférée, bien que nullement limitative, dans le cas de calculateurs de véhicules automobiles. Les calculateurs électroniques de véhicules automobiles se présentent de manière connue sous la forme d'un microcontrôleur comportant, outre un ou plusieurs microprocesseurs, des mémoires électroniques (flash, EEPROM [« Electrically-Erasable Programmable Read-Only Memory »], RAM [« Random Access Memory »], etc.), des périphériques d'interface, etc. Dans des mémoires non volatiles du calculateur sont mémorisés des programmes d'ordinateur, ou « logiciels », constitués d'un ensemble d'instructions de code de programme à exécuter par un microprocesseur afin de réaliser les différentes tâches dudit calculateur. Généralement, trois principaux types de logiciels sont mémorisés dans des mémoires non volatiles du calculateur : - un logiciel d'amorçage, à exécuter notamment au démarrage du calculateur électronique pour initialiser celui-ci, connu dans la littérature anglo-saxonne sous le nom de « Boot Software », - un logiciel applicatif, à exécuter pour réaliser les tâches spécifiques du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Application Software », - un logiciel de reprogrammation permettant de modifier tout ou partie des informations (notamment les logiciels et/ou les données de calibration) mémorisées dans des mémoires réinscriptibles non volatiles du calculateur électronique, connu dans la littérature anglo-saxonne sous le nom de « Loader Software ». Les logiciels d'amorçage et de reprogrammation peuvent être également un même logiciel, connu alors sous le nom de « Boot Loader ». Pour effectuer une reprogrammation du calculateur électronique, c'est-à-dire modifier le contenu de tout ou partie des informations mémorisées dans des mémoires réinscriptibles non volatiles dudit calculateur électronique, il est connu de connecter un outil de reprogrammation externe qui envoie audit calculateur électronique des informations devant être écrites dans les mémoires réinscriptibles non volatiles. De nombreux protocoles de communication peuvent être mis en oeuvre pour communiquer ces informations. On peut citer notamment les protocoles de communication suivants : CAN (« Controller Area Network »), Ethernet, etc. De nos jours, la quantité d'informations mémorisées dans les mémoires réinscriptibles non volatiles devient très importante, de sorte que la durée nécessaire pour reprogrammer un calculateur électronique de véhicule automobile augmente fortement. Il n'est en effet pas rare d'avoir à patienter plusieurs centaines de secondes pour effectuer une reprogrammation d'un tel calculateur électronique, ce qui est difficilement compatible avec des procédés industriels de grande série. La présente invention vise à proposer une solution qui permette de diminuer la durée de reprogrammation d'une mémoire réinscriptible non volatile du type organisée en plusieurs segments, lesdits segments étant tels que des opérations d'écriture sur un segment peuvent être effectuées simultanément à des opérations d'écriture sur un autre segment. C'est le cas notamment pour certaines mémoires EEPROM, flash, etc. En outre, la présente invention vise à proposer une solution qui puisse être 15 mise en oeuvre avec des outils de reprogrammation différents, en particulier des outils de reprogrammation pouvant utiliser des protocoles de communication différents. Selon un premier aspect, l'invention concerne un procédé de reprogrammation d'une mémoire réinscriptible non volatile d'un calculateur électronique, dans lequel un outil de reprogrammation envoie des blocs consécutifs d'informations à 20 écrire dans ladite mémoire réinscriptible non volatile par ledit calculateur électronique, l'ensemble des blocs d'informations devant être écrits dans une plage d'adresses mémoire physiques couvrant au moins deux segments de la mémoire réinscriptible non volatile, lesdits segments étant tels que des opérations d'écriture sur un segment peuvent être effectuées simultanément à des opérations d'écriture sur un autre segment. Le 25 procédé de reprogrammation comporte les étapes préalables suivantes : - obtention d'une image mémoire virtuelle dans laquelle chaque bloc d'informations comprend des informations à écrire dans un seul segment de la mémoire réinscriptible non volatile, et dans laquelle les blocs d'informations sont classés de sorte que deux blocs d'informations consécutifs sont à écrire dans 30 des segments différents de la mémoire réinscriptible non volatile, des adresses mémoire virtuelles étant attribuées auxdits blocs d'informations de l'image mémoire virtuelle, - établissement d'une fonction de correspondance permettant de déterminer, pour chaque adresse mémoire virtuelle des blocs d'informations de l'image mémoire 35 virtuelle, l'adresse mémoire physique associée à une adresse mémoire virtuelle. Ensuite, chaque bloc d'informations de l'image mémoire virtuelle est envoyé par l'outil de reprogrammation avec une indication de l'adresse mémoire virtuelle à laquelle ce bloc d'informations doit être écrit, et le procédé comporte, pour chaque bloc d'informations reçu par le calculateur électronique, une étape de détermination, d'après la fonction de correspondance, de l'adresse mémoire physique à laquelle ce bloc d'informations doit être écrit. Suivant des modes particuliers de mise en oeuvre, le procédé de reprogrammation comporte l'une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles. De préférence, la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible 10 non volatile, et en ce que le procédé comporte une étape de détection d'utilisation d'une plage d'adresses mémoire virtuelles, l'étape de détermination d'adresse mémoire physique n'étant exécutée que si une plage d'adresses mémoire virtuelles a été détectée. De préférence, plusieurs images mémoire virtuelles peuvent être utilisées, une plage d'adresses mémoire virtuelles spécifique et une fonction de correspondance 15 spécifique étant associées à chaque image mémoire virtuelle, et ledit procédé comporte une étape d'identification de fonction de correspondance à utiliser en fonction de la plage d'adresses mémoire virtuelles détectée. Selon un second aspect, l'invention concerne un support de mémorisation d'informations d'un calculateur électronique, mémorisant un logiciel de reprogrammation 20 d'une mémoire réinscriptible non volatile dudit calculateur électronique. Ledit support de mémorisation mémorise une fonction de correspondance permettant de déterminer, pour chaque adresse mémoire virtuelle d'une plage d'adresses mémoire virtuelles prédéfinie, une adresse mémoire physique de la mémoire réinscriptible non volatile associée à une adresse mémoire virtuelle, et le logiciel de reprogrammation comporte des instructions 25 qui, lorsqu'elles sont exécutées par ledit calculateur électronique, déterminent, d'après ladite fonction de correspondance et d'une adresse mémoire virtuelle indiquée pour un bloc d'informations à écrire, l'adresse mémoire physique à laquelle ce bloc d'informations doit être écrit. Suivant des modes particuliers de réalisation, le support de mémorisation 30 comporte l'une ou plusieurs des caractéristiques suivantes, prises isolément ou suivant toutes les combinaisons techniquement possibles. De préférence, la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile, et le logiciel de reprogrammation est configuré pour n'exécuter les 35 instructions de détermination d'adresse mémoire physique d'après la fonction de correspondance que si une plage d'adresses mémoire virtuelles a été détectée. De préférence, ledit support de mémorisation mémorise plusieurs fonctions de correspondance associées respectivement à plusieurs plages d'adresses mémoire virtuelles différentes possibles, et le logiciel de reprogrammation comporte des instructions qui, lorsqu'elles sont exécutées par ledit calculateur électronique, déterminent la fonction de correspondance à utiliser en fonction de la plage d'adresses mémoire virtuelles détectée. Selon un troisième aspect, l'invention concerne un calculateur électronique comportant un support de mémorisation d'informations selon l'un quelconque des modes de réalisation de l'invention. L'invention sera mieux comprise à la lecture de la description suivante, donnée à titre d'exemple nullement limitatif, et faite en se référant aux figures qui représentent : - Figure 1 : une représentation schématique d'un calculateur électronique de véhicule automobile, - Figures 2a et 2b : un premier exemple illustrant l'obtention d'une image mémoire virtuelle selon l'invention, - Figures 3a et 3b : un second exemple illustrant l'obtention d'une image mémoire virtuelle selon l'invention, - Figure 4 : un diagramme représentant les principales étapes d'un mode préféré de mise en oeuvre d'un procédé de reprogrammation selon l'invention. La figure 1 représente de façon très schématique un calculateur 10 électronique de véhicule automobile. De manière plus générale, il est à noter que l'invention est applicable à tout 25 type de calculateur électronique devant être reprogrammé au moyen d'un outil 20 de reprogrammation externe. De manière connue, le calculateur 10 électronique comporte un microprocesseur 101 relié à des mémoires électroniques 102, 103, 104 par un bus de données 105. 30 Le calculateur 10 électronique comporte une mémoire réinscriptible non volatile 104, dans laquelle sont mémorisées des informations pouvant être reprogrammées. Ces informations pouvant être reprogrammées peuvent être des instructions de code de programme, dites « logiciels », à exécuter pour effectuer les différentes tâches affectées audit calculateur 10 électronique, et/ou des données utilisées 35 par lesdits différents logiciels, telles que des données de calibration. Le calculateur 10 électronique comporte également une mémoire non volatile 103 dans laquelle est mémorisé un logiciel de reprogrammation qui, lorsqu'il est exécuté par le microprocesseur 101, permet de reprogrammer le contenu de la mémoire réinscriptible non volatile 102. Suivant d'autres modes de réalisation du calculateur 10 électronique, la mémoire réinscriptible non volatile 102 et la mémoire non volatile 103 sont confondues, le 5 logiciel de reprogrammation étant alors mis en oeuvre pour reprogrammer le contenu de la mémoire électronique dans laquelle il est lui-même mémorisé. Le calculateur 10 électronique comporte également une mémoire volatile 104 (mémoire RAM, acronyme anglais pour « Random Access Memory », c'est-à-dire une mémoire à accès direct), dans laquelle des informations sont copiées 10 temporairement lors du fonctionnement du calculateur 10 électronique, en vue d'être exécutées par le microprocesseur 101. La mémoire réinscriptible non volatile 102 est du type organisé en plusieurs segments, lesdits segments étant tels que des opérations d'écriture sur un segment peuvent être effectuées simultanément à des opérations d'écriture sur un autre segment. 15 Dans la suite de la description, on se place de manière non limitative dans le cas où la mémoire réinscriptible non volatile 102 est une mémoire flash. La présente invention concerne un procédé 50 de reprogrammation (cf. figure 4) de la mémoire flash 102, dont la mise en oeuvre est assurée notamment, dans le présent exemple : 20 - par un outil 20 de reprogrammation, et - par le logiciel de reprogrammation mémorisé dans la mémoire non volatile 103 et exécuté par le microprocesseur 101. Dans son principe, le procédé 50 de reprogrammation repose sur une prise en compte de l'organisation en segments de la mémoire flash 102 lors de l'élaboration de la 25 mise en forme des informations devant être écrites dans ladite mémoire flash 102. L'ensemble des informations à écrire dans la mémoire flash 102, dans l'ordre dans lequel ces informations se trouveront une fois mémorisées, est désigné ci-après par « image mémoire physique ». L'outil 20 de reprogrammation émet les informations à écrire dans la mémoire 30 flash 102 sous la forme de blocs d'informations, généralement de taille prédéfinie, ladite taille pouvant dépendre notamment du protocole de communication utilisé (CAN, Ethernet, etc.). La prise en compte de l'organisation en segments de la mémoire flash 102 vise à assurer que, lorsque l'image mémoire physique est destinée à être écrite dans une 35 plage d'adresses mémoire physiques couvrant au moins deux segments de la mémoire flash 102 : - chaque bloc d'informations émis par l'outil 20 de reprogrammation doit être écrit dans un seul segment de la mémoire flash 102, - des blocs d'informations émis consécutivement par l'outil 20 de reprogrammation doivent être écrits dans des segments différents de la mémoire flash 102. A cet effet le procédé 50 de reprogrammation comporte une étape 500 préalable d'obtention d'une image mémoire virtuelle dans laquelle chaque bloc d'informations comprend des informations à écrire dans un seul segment de la mémoire flash 102, et dans laquelle les blocs d'informations sont classés de sorte que deux blocs d'informations consécutifs sont à écrire dans des segments différents de la mémoire flash. En outre, des adresses mémoire virtuelles sont attribuées aux blocs d'informations de l'image mémoire virtuelle. Le procédé 50 de reprogrammation comporte également une étape 501 préalable d'établissement d'une fonction de correspondance permettant de déterminer, pour chaque adresse mémoire virtuelle des blocs d'informations de l'image mémoire 15 virtuelle, l'adresse mémoire physique associée à une adresse mémoire virtuelle donnée. Il est à noter que ces étapes sont exécutées en amont de la phase de reprogrammation, c'est-à-dire la phase au cours de laquelle l'outil 20 de reprogrammation envoie les blocs d'informations au calculateur 10 électronique qui les écrit dans la mémoire flash 102, et que ces étapes seront en général exécutées par un outil de 20 génération d'image mémoire distinct de l'outil 20 de reprogrammation. Au cours de l'étape 500 d'obtention d'une image mémoire virtuelle, l'image mémoire physique est par exemple décomposée en blocs d'informations de taille prédéfinie, pouvant être imposée par le protocole de communication utilisé entre l'outil 20 de reprogrammation et le calculateur 10 électronique. 25 Il est à noter que, dans le cas particulier d'une mémoire flash 102, chaque segment est généralement organisé en pages correspondant à la plus petite unité de mémoire flash 102 pouvant faire l'objet d'une opération d'écriture. En d'autres termes, il n'est pas possible d'écrire moins d'informations que la quantité d'informations que contient une page. 30 Ensuite, les blocs d'informations sont concaténés dans un ordre tel que, dans l'image mémoire virtuelle fournie à l'outil 20 de reprogrammation, deux blocs d'informations consécutifs comprennent des informations à écrire dans des segments différents de la mémoire flash 102. On comprend donc que les blocs d'informations ne se trouvent pas dans l'ordre dans lequel ils se trouvent dans l'image mémoire physique, c'est 35 l'ordre dans lequel ils se trouveront après avoir été écrits dans la mémoire flash 102. C'est pourquoi l'étape 501 d'établissement vise à fournir une fonction de correspondance, qui est par exemple mémorisée dans la mémoire non volatile 103, et qui est utilisée au niveau du calculateur 10 électronique pour déterminer les adresses mémoire physiques auxquelles les différents blocs d'informations doivent être écrits. Lors de la reprogrammation de la mémoire flash 102, les blocs d'informations sont envoyés par l'outil 20 de reprogrammation dans l'ordre dans lequel ils apparaissent 5 dans l'image mémoire virtuelle. Chaque bloc d'informations est en outre envoyé avec une indication de l'adresse mémoire virtuelle à laquelle ce bloc d'informations doit être écrit. Le procédé 50 de reprogrammation comporte alors, au niveau du calculateur 10 électronique, une étape 523 de détermination, d'après la fonction de correspondance et de l'adresse mémoire virtuelle indiquée pour un bloc d'informations, de l'adresse mémoire 10 physique à laquelle ce bloc d'informations doit être écrit. On comprend donc que, lors de la reprogrammation, des blocs d'informations consécutifs seront écrits dans des segments différents de la mémoire flash 102, de sorte que ces opérations d'écriture pourront être effectuées en parallèle. La durée de reprogrammation sera avantageusement réduite du fait que de nombreuses opérations 15 d'écriture seront effectuées sensiblement simultanément là où, selon l'art antérieur, ces opérations d'écriture étaient effectuées les unes à la suite des autres car effectuées le plus souvent d'abord pour tout un premier segment de la mémoire flash 102, puis pour tout un second segment, etc. De préférence, les adresses mémoire virtuelles n'ont pas de signification 20 physique pour la mémoire flash 102 devant être reprogrammée. En d'autres termes, la plage d'adresses mémoire virtuelles ne présente pas de recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire flash 102. Par conséquent, une adresse mémoire virtuelle, si elle est interprétée comme étant une adresse mémoire physique de la mémoire flash 102, ne correspond pas à une adresse mémoire à laquelle 25 des informations peuvent être écrites. L'utilisation d'une plage d'adresses mémoire virtuelles distincte de la plage d'adresses mémoire physiques réinscriptibles de la mémoire flash 102 présente plusieurs avantages. Tout d'abord, cette solution est compatible avec les procédés de 30 reprogrammation selon l'art antérieur, en indiquant directement l'adresse mémoire physique à laquelle un bloc d'informations doit être écrit. En outre, il est possible de prévoir plusieurs images mémoire virtuelles différentes, par exemple pour permettre l'utilisation de protocoles de communication différents (avec des tailles de blocs d'informations différentes) entre l'outil 20 de 35 reprogrammation et le calculateur 10 électronique. Plusieurs plages d'adresses mémoire virtuelles différentes peuvent alors être prévues, ainsi que les fonctions de correspondance respectives associées à chacune des ces différentes plages d'adresses mémoire virtuelles. Les figures 2a et 2b représentent schématiquement un premier exemple d'obtention d'une image mémoire virtuelle devant être écrite dans une plage d'adresses mémoire physique couvrant deux segments S1 et S2. Dans ce premier exemple, les deux segments S1 et S2 sont des segments consécutifs de taille mémoire très supérieure à la taille prédéfinie des blocs d'informations envoyés par l'outil 20 de reprogrammation. Plus précisément, on considère dans cet exemple deux segments S1 et S2 de deux mébioctets (Mio), et une image mémoire de quatre Mio. On considère également 10 que la mémoire flash 102 ne comporte pas d'autres segments. La figure 2a représente l'image mémoire physique qui doit être obtenue après écriture des informations dans la mémoire flash 102. Tel qu'illustré par la figure 2a, la plage d'adresses mémoire physique du premier segment S1 s'étend, en valeurs hexadécimales, de l'adresse mémoire 15 physique 0x00000000 à l'adresse mémoire physique Ox001FFFFF. La plage d'adresses mémoire physique du second segment S2 s'étend de l'adresse mémoire physique 0x00200000 à l'adresse mémoire physique Ox003FFFFF. Dans ce premier exemple, on considère que les blocs d'informations doivent avoir une taille de 1 kibioctet (kio, soit 1024 octets). 20 La figure 2b représente schématiquement l'image mémoire virtuelle fournie à l'outil 20 de reprogrammation. La figure 2b représente également la plage d'adresses mémoire virtuelles associée aux différents blocs d'informations de l'image mémoire virtuelle. Tout d'abord, la plage d'adresses mémoire virtuelle s'étend de l'adresse 25 mémoire virtuelle OxA0000000 à l'adresse mémoire virtuelle OxA03FFFFF. Cette plage d'adresses mémoire virtuelles ne présente pas de recouvrement avec la plage d'adresses mémoire physique réinscriptibles de la mémoire flash 102 (de 0x00000000 à Ox003FFFFF), de sorte qu'elle peut facilement être détectée au niveau du calculateur 10 électronique. 30 L'image mémoire virtuelle comporte un premier bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000000, qui correspond au bloc d'informations qui doit être écrit à l'adresse mémoire physique 0x00000000 du premier segment S1 de la mémoire flash 102. L'image mémoire virtuelle comporte ensuite un second bloc d'informations de 35 taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000400, qui correspond au bloc d'informations qui doit être écrit à l'adresse mémoire physique 0x00200000 du second segment S2 de la mémoire flash 102. L'image mémoire virtuelle comporte ensuite un troisième bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle 0xA0000800, qui correspond au bloc d'informations qui doit être écrit à l'adresse mémoire physique 0x00000400 du premier segment S1 de la mémoire flash 102. L'image mémoire virtuelle comporte ensuite un quatrième bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000C00, qui correspond au bloc d'informations qui doit être écrit à l'adresse mémoire physique 0x00200400 du second segment S2 de la mémoire flash 102, etc. La fonction de correspondance peut par exemple être mémorisée sous la 10 forme d'une table de correspondance qui peut alors s'exprimer comme suit : Adresse mémoire virtuelle Adresse mémoire physique OxA0000000 0x00000000 OxA0000400 0x00200000 OxA0000800 0x00000400 OxA0000C00 0x00200400 OxA0001000 0x00000800 OxA0001400 0x00200800 etc. etc. Les figures 3a et 3b représentent schématiquement un second exemple d'obtention d'une image mémoire virtuelle devant être écrite dans une plage d'adresses 15 mémoire physique couvrant deux segments S'1 et S'2. Dans ce second exemple, les deux segments S'1 et S'2 sont entrelacés par sous-segments de taille 16 octets. Ainsi l'adresse mémoire physique 0x00000000 correspond au premier sous-segment du premier segment S'1, l'adresse mémoire physique 0x00000010 correspond au premier sous-segment du second segment S'2, l'adresse mémoire physique 0x00000020 20 correspond au second sous-segment du premier segment S'1, l'adresse mémoire physique 0x00000030 correspond au second sous-segment du second segment S'2, etc. La figure 3a représente l'image mémoire physique qui doit être obtenue après écriture des informations dans la mémoire flash 102. Dans ce second exemple, on considère également que les blocs 25 d'informations doivent avoir une taille de 1 kio. La figure 3b représente schématiquement l'image mémoire virtuelle fournie à l'outil 20 de reprogrammation. La figure 3b représente également la plage d'adresses mémoire virtuelles associée aux différents blocs d'informations de l'image mémoire virtuelle. L'image mémoire virtuelle comporte un premier bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000000, qui regroupe les informations qui doivent être écrites dans les sous-segments du premier segment S'1 d'adresses mémoire physiques respectives 0x00000000, 0x00000020, 0x00000040, ..., Ox000007CO, Ox000007E0. L'image mémoire virtuelle comporte ensuite un second bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000400, qui regroupe les informations qui doivent être écrites dans les sous-segments du second segment S'2 d'adresses mémoire physiques respectives 0x00000010, 0x00000030, 0x00000050, ..., Ox000007DO, Ox000007F0. L'image mémoire virtuelle comporte ensuite un troisième bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle 0xA0000800, qui regroupe les informations qui doivent être écrites dans les sous-segments du premier segment S'1 d'adresses mémoire physiques respectives 0x00000800, 0x00000820, 0x00000840, ..., Ox00000FC0, Ox00000FEO. L'image mémoire virtuelle comporte ensuite un quatrième bloc d'informations de taille 1 kio, à écrire à l'adresse mémoire virtuelle OxA0000C00, qui regroupe les informations qui doivent être écrites dans les sous-segments du second segment S'2 d'adresses mémoire physiques respectives 0x00000810, 0x00000830, 0x00000850, ..., Ox00000FDO, Ox00000FFO, etc. La fonction de correspondance peut par exemple être mémorisée sous la forme d'une table de correspondance qui peut alors s'exprimer comme suit : Adresse mémoire virtuelle Adresse mémoire physique OxA0000000 0x00000000 OxA0000010 0x00000020 OxA0000020 0x00000040 etc. etc. OxA00003E0 Ox000007C0 OxA00003F0 Ox000007E0 OxA0000400 0x00000010 OxA0000410 0x00000030 0xA0000420 0x00000050 etc. etc. OxA00007E0 Ox000007D0 OxA00007F0 Ox000007F0 etc. etc. La figure 4 représente schématiquement les principales étapes d'un mode préféré de mise en oeuvre du procédé 50 de reprogrammation. Les étapes 500, 501, préalables du procédé 50 de reprogrammation sont représentées dans la partie supérieure de la figure 4. L'image mémoire virtuelle obtenue suite à l'exécution des ces étapes préalables est ensuite fournie à l'outil 20 de reprogrammation, qui exécute, lors de la phase de reprogrammation, les étapes représentées dans la partie gauche de la figure 4. Les étapes représentées dans la partie droite de la figure 4 sont exécutées par le calculateur 10 électronique. Le procédé 50 de reprogrammation comporte tout d'abord une étape 510 d'envoi d'un bloc d'informations au calculateur 10 électronique. Le bloc d'informations est envoyé avec une indication de l'adresse mémoire virtuelle à laquelle ce bloc d'informations doit être écrit. Le procédé 50 de reprogrammation comporte ensuite une étape 520 de 15 réception, par le calculateur 10 électronique, du bloc d'informations et de l'adresse mémoire virtuelle à laquelle il doit être écrit. Le calculateur 10 électronique exécute ensuite une étape 521 de détection d'utilisation de plage d'adresse mémoire virtuelle. Le bloc d'informations ayant été envoyé en indiquant une adresse mémoire 20 virtuelle, le calculateur 10 électronique détecte (référence 521a sur la figure 4) qu'une conversion d'adresse mémoire virtuelle en adresse mémoire physique doit être effectuée. Dans le cas, considéré dans la figure 4, où plusieurs plages d'adresses mémoire virtuelles sont possibles, le procédé 50 de reprogrammation comporte ensuite une étape 522 d'identification de la fonction de correspondance à utiliser d'après la plage 25 d'adresses mémoire virtuelles détectée au cours de l'étape 521 de détection. Le procédé 50 de reprogrammation comporte ensuite l'étape 523 de détermination de l'adresse mémoire physique associée à l'adresse mémoire virtuelle indiquée avec le bloc d'informations, d'après la fonction de correspondance identifiée au cours de l'étape 522 d'identification. 30 Le procédé 50 de reprogrammation comporte ensuite une étape 524 d'écriture du bloc d'informations dans la mémoire flash 102, à l'adresse mémoire physique déterminée d'après la fonction de correspondance. Si le bloc d'informations avait été envoyé par l'outil 20 de reprogrammation en indiquant une adresse mémoire physique, l'étape 521 de détection aurait déterminé que 35 la plage d'adresses mémoire utilisée n'était pas une plage d'adresses mémoire virtuelles (référence 521b sur la figure 4), conduisant directement à l'exécution de l'étape 524 d'écriture du bloc d'informations à l'adresse mémoire physique indiquée. Suite à l'envoi d'un bloc d'informations, le procédé 50 de reprogrammation comporte une étape 511, exécutée par l'outil 20 de reprogrammation, de détermination si l'image mémoire virtuelle comporte d'autres blocs d'informations à envoyer. Si l'image mémoire virtuelle ne comporte pas d'autres blocs d'informations (référence 511a sur la figure 4), l'exécution du procédé 50 de reprogrammation prend fin. Si l'image mémoire virtuelle comporte d'autres blocs d'information (référence 511b sur la figure 4), l'étape 510 d'envoi est à nouveau exécutée pour l'envoi du bloc d'informations suivant dans l'image mémoire virtuelle. Les étapes suivantes du procédé, côté calculateur 10 électronique, sont alors à nouveau exécutées pour le nouveau bloc d'informations. Il est à noter cependant que rien n'exclut d'exécuter à nouveau l'étape 521 de détection d'utilisation d'une plage d'adresses mémoire virtuelles et l'étape 522 d'identification de la fonction de correspondance à utiliser, dans la mesure où la plage d'adresses mémoire virtuelles utilisée doit normalement être la même, ainsi que la fonction de correspondance associée. La présente invention concerne également un support de mémorisation d'informations, en l'occurrence la mémoire non volatile 103, dans lequel est mémorisé un logiciel de reprogrammation adapté à mettre en oeuvre les étapes du procédé 50 de reprogrammation exécutées par le calculateur 10 électronique. Ainsi le logiciel de reprogrammation comporte des instructions de code de programme qui, lorsqu'elles sont exécutées par le microprocesseur 101, mettent en oeuvre les étapes 520 de réception, 523 de détermination d'adresse mémoire physique et 524 d'écriture. Le cas échéant, le logiciel de reprogrammation comporte également des instructions dont l'exécution permet de mettre en oeuvre les étapes 521 de détection et 522 d'identification de fonction de correspondance. Le support de mémorisation mémorise également la ou les fonctions de correspondance permettant de déterminer les adresses mémoire physiques auxquelles les différents blocs d'informations doivent être écrits en fonction des adresses mémoire virtuelle indiquées pour ces blocs d'informations. La présente invention concerne également un calculateur 10 électronique de véhicule automobile comportant un support de mémorisation tel que décrit ci-avant. De manière plus générale, la portée de la présente invention ne se limite pas aux modes de mise en oeuvre et de réalisation décrits ci-dessus à titre d'exemples non limitatifs, mais s'étend au contraire à toutes les modifications à la portée de l'homme de 35 l'art. Notamment, on comprend que l'invention est applicable à une écriture dans une plage d'adresses mémoire physiques couvrant plus que deux segments. Plus le nombre de segments reprogrammés est grand, plus il sera possible d'effectuer des opérations d'écriture en parallèle. De plus, on comprend que d'autres formats sont possibles pour la fonction de correspondance qu'une table de correspondance, et qu'un choix particulier de format ne constitue qu'une variante de mise en oeuvre du procédé 50 de reprogrammation. La fonction de correspondance peut notamment se présenter sous la forme d'instructions de code de programme à exécuter pour déterminer l'adresse mémoire physique associée à une adresse mémoire physique virtuelle indiquée pour un bloc d'informations. La description ci-avant illustre clairement que par ses différentes 10 caractéristiques et leurs avantages, la présente invention atteint les objectifs qu'elle s'était fixés. En particulier, par une mise en forme préalable des informations à écrire dans la mémoire flash 102, tenant compte à la fois de la taille des blocs d'informations envoyés par l'outil 20 de reprogrammation et de l'organisation des segments de la mémoire 15 flash 102, de nombreuses opérations d'écriture pourront être parallélisées, entrainant une réduction de la durée nécessaire pour reprogrammer ladite mémoire flash 102. On comprend cependant que cette parallélisation est obtenue sous réserve que, après que l'outil 20 de reprogrammation a envoyé un bloc d'informations d'indice N au calculateur 10 électronique : 20 - l'outil 20 de reprogrammation envoie le bloc d'informations d'indice N+1 avant que le calculateur 10 électronique ait fini d'écrire le bloc d'informations d'indice N, - ledit calculateur 10 électronique est apte à recevoir le bloc d'informations d'indice N+1 avant d'avoir fini d'écrire le bloc d'informations d'indice N. En outre, on comprend que l'invention trouve une application avantageuse 25 dans le cas d'outils 20 de reprogrammation aptes à communiquer en parallèle sur deux canaux de communication différents. Ainsi, un tel outil 20 de reprogrammation pourra envoyer le bloc d'informations d'indice N sur le premier canal de communication et, simultanément, envoyer le bloc d'informations d'indice N+1 sur le second canal de communication, etc. REVENDICATIONS1. Procédé (50) de reprogrammation d'une mémoire réinscriptible non volatile (102) d'un calculateur (10) électronique, dans lequel un outil (20) de reprogrammation envoie des blocs consécutifs d'informations à écrire dans ladite mémoire réinscriptible non volatile (102) par ledit calculateur (10) électronique, l'ensemble des blocs d'informations devant être écrits dans une plage d'adresses mémoire physiques couvrant au moins deux segments de la mémoire réinscriptible non volatile, lesdits segments étant tels que des opérations d'écriture sur un segment peuvent être effectuées simultanément à des opérations d'écriture sur un autre segment, ledit procédé étant caractérisé en ce qu'il comporte les étapes préalables suivantes : - (500) obtention d'une image mémoire virtuelle dans laquelle chaque bloc d'informations comprend des informations à écrire dans un seul segment de la mémoire réinscriptible non volatile, et dans laquelle les blocs d'informations sont classés de sorte que deux blocs d'informations consécutifs sont à écrire dans des segments différents de la mémoire réinscriptible non volatile, des adresses mémoire virtuelles étant attribuées auxdits blocs d'informations de l'image mémoire virtuelle, - (501) établissement d'une fonction de correspondance permettant de déterminer, pour chaque adresse mémoire virtuelle des blocs d'informations de l'image mémoire virtuelle, l'adresse mémoire physique associée à une adresse mémoire virtuelle, et en ce que chaque bloc d'informations de l'image mémoire virtuelle est envoyé par l'outil (20) de reprogrammation avec une indication de l'adresse mémoire virtuelle à laquelle ce bloc d'informations doit être écrit, le procédé (50) comportant, pour chaque bloc d'informations reçu par le calculateur (10) électronique, une étape (523) de détermination, d'après la fonction de correspondance, de l'adresse mémoire physique à laquelle ce bloc d'informations doit être écrit. 2. Procédé (50) selon la revendication 1, caractérisé en ce que la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile (102), et en ce que le procédé comporte une étape (521) de détection d'utilisation d'une plage d'adresses mémoire virtuelles, l'étape (523) de détermination d'adresse mémoire physique n'étant exécutée que si une plage d'adresses mémoire virtuelles a été détectée. 3. Procédé (50) selon la revendication 2, caractérisé en ce que : - plusieurs images mémoire virtuelles peuvent être utilisées, une plage d'adresses mémoire virtuelles spécifique et une fonction de correspondance spécifique étant associées à chaque image mémoire virtuelle, - ledit procédé comporte une étape (522) d'identification de fonction de correspondance à utiliser en fonction de la plage d'adresses mémoire virtuelles détectée. 4. Support (103) de mémorisation d'informations d'un calculateur (10) électronique, mémorisant un logiciel de reprogrammation d'une mémoire réinscriptible non volatile (102) dudit calculateur électronique, caractérisé en ce qu'il mémorise une fonction de correspondance permettant de déterminer, pour chaque adresse mémoire virtuelle d'une plage d'adresses mémoire virtuelles prédéfinie, une adresse mémoire physique de la mémoire réinscriptible non volatile associée à une adresse mémoire virtuelle' le logiciel de reprogrammation comportant des instructions qui, lorsqu'elles sont exécutées par ledit calculateur (10) électronique, déterminent, d'après ladite fonction de correspondance et d'une adresse mémoire virtuelle indiquée pour un bloc d'informations à écrire, l'adresse mémoire physique à laquelle ce bloc d'informations doit être écrit. 5. Support (103) de mémorisation selon la revendication 4, caractérisé en ce que la plage d'adresses mémoire virtuelles est sans recouvrement avec la plage d'adresses mémoire physiques réinscriptibles de la mémoire réinscriptible non volatile, et en ce que le logiciel de reprogrammation est configuré pour n'exécuter les instructions de détermination d'adresse mémoire physique d'après la fonction de correspondance que si une plage d'adresses mémoire virtuelles a été détectée. 6. Support (103) de mémorisation selon la revendication 5, caractérisé en ce qu'il mémorise plusieurs fonctions de correspondance associées respectivement à plusieurs plages d'adresses mémoire virtuelles différentes possibles, et en ce le logiciel de reprogrammation comporte des instructions qui, lorsqu'elles sont exécutées par ledit calculateur (10) électronique, déterminent la fonction de correspondance à utiliser en fonction de la plage d'adresses mémoire virtuelles détectée. 7. Calculateur (10) électronique, caractérisé en ce qu'il comporte un support (103) de mémorisation d'informations selon l'une quelconque des revendications 4 à 6.