Brevet FR3099607A1 — publié le 20210205

Description Titre de l'invention : Composant électronique à micrologiciel Domaine technique [0001] La présente description concerne de façon générale les dispositifs électroniques, et plus particulièrement les dispositifs électroniques comprenant un micrologiciel. Technique antérieure [0002] Certains dispositifs électroniques comprennent une unité de traitement de données adaptée à exécuter des programmes. Par exemple l'unité de traitement comprend un ou plusieurs microprocesseurs. [0003] Un tel dispositif comprend typiquement un micrologicicl, ou "Firmwarc" en anglais, parfois appelé microprogramme. Par micrologicicl, on entend un programme dont l'exécution par l'unité de traitement est nécessaire pour faire fonctionner le dispositif, ce programme étant embarqué dans le dispositif, c'est-à-dire contenu dans une mémoire du dispositif. Résumé de l'invention [0004] Un mode de réalisation pallie tout ou partie des inconvénients des dispositifs élec- troniques connus comprenant une unité de traitement, en particulier comprenant un micrologiciel. [0005] Un mode de réalisation pallie tout ou partie des inconvénients des micrologiciels connus. 100061 Un mode de réalisation pallie tout ou partie des inconvénients des procédés connus de mise à jour d'un micrologiciel. 100071 Un mode de réalisation prévoit un dispositif électronique, dans lequel une mémoire contient plusieurs exemplaires d'un micrologiciel du dispositif. 100081 Selon un mode de réalisation, chacun desdits exemplaires est adapté à provoquer, lorsqu'il est exécuté par le dispositif, le fonctionnement du dispositif selon le standard TPM. 100091 Selon un mode de réalisation, la mémoire contient en outre, pour chacun desdits exemplaires, une signature de vérification de validité dudit exemplaire. 100101 Selon un mode de réalisation, la mémoire comprend en outre un programme de démarrage du dispositif, adapté à provoquer, lorsqu'il est exécuté par le dispositif, la vérification de validité et l'exécution d'au moins un desdits exemplaires. 100111 Selon un mode de réalisation, la mémoire comprend une valeur indiquant un exemplaire sélectionné parmi lesdits exemplaires. 100121 Selon un mode de réalisation, l'exemplaire sélectionné correspond à la version la plus récente parmi des versions du micrologiciel. 2 100131 Selon un mode de réalisation, la mémoire comprend en outre un système de fichiers commun accessible par chacun desdits exemplaires. [0014] Un mode de réalisation prévoit un procédé de fonctionnement d'un dispositif ci- dessus. [0015] Selon un mode de réalisation, le procédé comprend l'exécution de l'un desdits exemplaires, l'exemplaire exécuté étant valide et correspondant à la version la plus récente parmi les versions des exemplaires valides. [0016] Selon un mode de réalisation, le procédé comprend le remplacement d'un exemplaire qui, parmi lesdits exemplaires, est non valide, par un autre exemplaire qui, parmi lesdits exemplaires, est valide. [0017] Selon un mode de réalisation, le procédé comprend le remplacement de l'un desdits exemplaires par un autre desdits exemplaires de version plus récente que celle de l'exemplaire remplacé. [0018] Selon un mode de réalisation, le procédé comprend la réception par ledit dispositif : d'un exemplaire supplémentaire du micrologiciel, dans lequel des valeurs dépendantes d'une future position de l'exemplaire supplémentaire dans la mémoire sont remplacées par une même valeur prédéfinic, ladite valeur prédéfinic ayant de préférence tous ses bits égaux à une valeur d'effacement de la mémoire ; et desdits valeurs dépendantes pour chacune des positions desdits exemplaires dans la mémoire. [0019] Selon un mode de réalisation, le procédé comprend en outre le remplacement d'au moins l'un desdits exemplaires par l'exemplaire supplémentaire, et la restauration desdites valeurs dépendantes correspondant à la position de l'exemplaire remplacé. [0020] Selon un mode de réalisation, le procédé l'exemplaire supplémentaire et/ou lesdites valeurs dépendantes sont reçues sous forme compressée et sont ensuite décompressées. [0021] Un mode de réalisation prévoit un composant électronique, comprenant de préférence un boîtier, comportant un dispositif tel que défini ci-dessus ou adapté à mettre en oeuvre un procédé tel que défini ci-dessus. Brève description des dessins [0022] 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 : [0023] [fig.1] la figure 1 représente un exemple de dispositif auquel s'appliquent les modes de réalisation décrits ci-après ; [0024] [fig.2] la figure 2 représente schématiquement un mode de réalisation d'une mémoire d'un dispositif à micrologiciel ; [0025] [fig.3] la figure 3 représente, de manière schématique et sous forme de blocs, un mode de réalisation d'un procédé mis en oeuvre par un dispositif à micrologiciel ; 3 100261 Ifig.41 la figure 4 représente schématiquement une étape d'un mode de réalisation d'un procédé de mise à jour d'un micrologiciel ; [0027] [fig.5] la figure 5 représente schématiquement une autre étape du procédé ; et [0028] [fig.6] la figure 6 représente schématiquement une autre étape du procédé. Description des modes de réalisation [0029] 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. [0030] 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. En particulier, les micro-logiciels ne sont pas détaillés, les modes de réalisation décrits étant compatibles avec les micrologicicls usuels. [0031] Dans la description qui suit, lorsque l'on fait référence à des qualificatifs dc 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. [0032] Sauf précision contraire, les expressions "environ", "approximativement", "sen- siblement", et "de l'ordre de" signifient à 10 % près, dc préférence à 5 % près. [0033] La figure 1 représente un exemple de dispositif auquel s'appliquent les modes de réa- lisation décrits. Plus précisément, le dispositif est un dispositif à micrologiciel. [0034] Dans cet exemple, le dispositif comprend un composant électronique 100. Le composant électronique comprend une ou plusieurs puces électroniques 110 de circuit intégré. La, ou chaque, puce électronique 110 est définie par une portion de tranche semiconductrice et des circuits électroniques situés dans et sur la tranche. A titre d'exemple, le composant électronique 100 comprend en outre un boîtier 120 comprenant la ou les puces électroniques, typiquement un boîtier étanche d'où sortent des broches 122 électriquement conductrices. Les broches 122 sont destinées à être reliées électriquement à d'autres composants, préférentiellement soudées sur une plaque de circuit imprimé PCB ("Printed Circuit Board"). [0035] Le micrologiciel est stocké dans une mémoire 130 (MEM). De préférence, la mémoire 130 est non volatile, plus préférentiellement réinscriptible. Par exemple la mémoire 130 est de type mémoire programmable à lecture seule effaçable électriquement EEPROM ("Electrically Erasable Programmable Read-Only Memory"), telle qu'une mémoire de type connu sous le nom "Flash". Une telle mémoire Flash est définie par une mémoire à transistors ayant chacun une pille flottante adaptée à stocker des charges électriques. De préférence, la mémoire 130 est située à l'intérieur du boîtier 120, plus préférentiellement comprise dans la ou les puces 110. [0036] Le composant électronique 100 comprend en outre une unité de traitement de données 140. De préférence, l'unité de traitement est située dans le boîtier 120. A titre d'exemple, l'unité de traitement de données est située sur la même puce électronique 110 que la mémoire 130. [0037] De préférence, le micrologiciel provoque, lors de son exécution par le dispositif (plus précisément, par l'unité de traitement 140), le fonctionnement du dispositif conformément au standard de plateforme de confiance TPM ("Trusted Platform Module") selon la norme ISO/IEC 11889-1, par exemple ISO/TEC 11889-1:2015 ou postérieure. Le dispositif peut alors constituer un composant cryptographique TPM. Un composant cryptographique TPM est typiquement utilisé dans des équipements électroniques et/ou informatiques tels que des ordinateurs, tablettes, téléphones mobiles, etc., ou encore dans divers objets ou systèmes dits connectés (c'est-à-dire connectables au réseau Internet), tels que, par exemple, des véhicules automobiles ou des caméras. Un tel composant est utilisé typiquement pour stocker des clés cryptographiques. [0038] L'application des modes de réalisation décrits ne se limite pas à l'exemple du dispositif de la figure 1. Les modes de réalisation décrits sont applicables à tout dispositif à micrologiciel. En particulier, la mémoire et l'unité de traitement peuvent être dans des boitiers différents, ou encore le dispositif peut être compris dans un composant, par exemple un système sur puce, comprenant d'autres dispositifs électroniques. [0039] La figure 2 représente schématiquement un mode de réalisation d'une mémoire d'un dispositif à micrologiciel. Plus précisément, on a représenté en figure 2 le contenu d'une mémoire 200. Dans un mode de réalisation, la mémoire 200 remplace la mémoire 130 d'un dispositif du type de celui de la figure 1. [0040] La mémoire 200 est par exemple du même type que la mémoire 130 du dispositif de la figure 1, à savoir, de préférence non volatile réinseriptible, par exemple de type Flash. La mémoire 200 peut correspondre à une ou plusieurs banques de mémoire, situées dans une même puce ou situées dans plusieurs puces d'un même composant ou de plusieurs composants différents. Selon un exemple, les éléments contenus dans la mémoire sont dans l'ordre des positions représentées, c'est-à-dire des adresses croissantes dans la mémoire, ces adresses étant des adresses physiques ou, préférentiellement, des adresses logiques. Cependant, les modes de réalisation décrits sont compatibles avec toutes positions des différents éléments contenus dans la mémoire. [0041] La mémoire 130 comprend plusieurs exemplaires FWi, ou instances, du micro- logiciel (où i est un entier variant de 1 au nombre N d'exemplaires). Dans un mode de réalisation préféré, tel que représenté, la mémoire 130 comprend deux exemplaires FW1, FW2 du micrologiciel (N=2). Dans d'autres modes de réalisation, la mémoire 130 peut comprendre plus de deux exemplaires du micrologiciel. [0042] Il arrive que l'un des exemplaires du micrologiciel soit défectueux, ou invalide, par exemple suite à une erreur apparue à un emplacement mémoire ou suite à une tentative ratée de mise à jour de cet exemplaire du micrologiciel. Le dispositif peut alors exécuter l'autre exemplaire (ou un des autres exemplaires). Pour cela, le dispositif peut mettre un oeuvre un procédé tel que décrit ci-après en relation avec la figure 3. [0043] Par comparaison, en présence d'un unique exemplaire du micrologiciel, en cas d'erreur apparue à un emplacement mémoire ou une mise à jour ratée ayant par exemple mis seulement une partie de l'exemplaire dans la mémoire, le dispositif n'aurait pas pu fonctionner correctement. Ainsi, la présence de plusieurs exemplaires FWi du micrologiciel permet de faire fonctionner le dispositif malgré l'erreur apparue dans la mémoire ou la tentative ratée de mise à jour. Ceci permet d'augmenter le taux de disponibilité et/ou de fiabilité du dispositif. Le cas préféré où seulement deux exemplaires FWi sont prévus permet d'optimiser le compromis entre place occupée en mémoire par les exemplaires FWi et fiabilité/taux de disponibilité. [0044] Chaque exemplaire FWi occupe au moins une partie d'une plage 210-i (210-1, 210-2) de la mémoire 200 à partir d'une position, ou d'une adresse de début de l'exemplaire, 220-i (220-1, 220-2). Préférentiellement, chaque exemplaire FWi laisse libre, c'est-à-dire n'occupe pas, une partie 222 de la plage 210-i concernée, située de préférence de côté des adresses logiques les plus élevées de la plage. La partie 222 permet de mettre à jour l'exemplaire FWi considéré en le remplaçant par un exemplaire plus long, sans changer la position 220-i. Les plages 210-i sont préférentiellement consécutives, cependant, en variante, les plages 210-i peuvent être à n'importe quelles positions. Chaque plage 210-i est définie par un ensemble d'emplacements mémoire consécutifs, cependant, en variante, on peut remplacer chaque plage 210-i par plusieurs plages séparées situées à divers endroits de la mémoire. [0045] De préférence, les exemplaires FWi correspondent à une même version du micro- logiciel, c'est-à-dire qu'ils provoquent le même fonctionnement du dispositif lorsqu'ils sont valides (non défectueux) et exécutés par l'unité de traitement 140. Cependant, comme ceci est décrit en relation avec la figure 3, les exemplaires peuvent correspondre, au moins temporairement, à des versions différentes du micrologiciel. [0046] De préférence, les exemplaires FWi d'une même version du micrologiciel sont prévus pour provoquer la même séquence d'opérations, chaque opération correspondant à une instruction de l'exemplaire FWi exécuté. Dans un exemple, les exemplaires FWi peuvent comprendre des instructions dépendantes de la position 220-i de l'exemplaire FWi dans la mémoire 200, et les exemplaires FWi diffèrent alors préférentiellement uniquement par leurs instructions dépendantes de la position 220-i. Plus précisément, 6 les exemplaires FWi valides différent uniquement par les opérandes de leurs instructions dépendantes de la position. Ainsi, les opérateurs des instructions sont les mêmes dans les exemplaires valides. Dans un autre exemple, les exemplaires FWi sont entièrement indépendants de la position 220-i, et sont alors préférentiellement identiques. [0047] En variante, les exemplaires FWi d'une même version du micrologiciel pouvant cor- respondre à des instructions différentes, par exemple résultant d'un même code source et de compilations mises en oeuvre différemment. [0048] De préférence, la mémoire contient en outre, pour chacun desdits exemplaires FWi, une signature MACi (MAC1, MAC2) de vérification de validité de l'exemplaire considéré, c'est-à-dire une mesure d'intégrité. La signature MACi peut être de tout type permettant de détecter une erreur dans l'exemplaire FWi correspondant. Une telle erreur correspond à une différence d'au moins un bit entre l'exemplaire prévu pour correspondre au micrologiciel et être stocké à l'emplacement considéré, et l'exemplaire FWi obtenu en lisant le contenu de cet emplacement. De préférence, la signature MACi est de type Code d'Authentification de Message MAC ("Message Authentification Code"). A titre d'exemple, la signature MACi est de type Contrôle de Redondance Cyclique CRC ("Cyclic Rcdundancy Check"), ou de type Somme de Contrôle ("CheckSum"). En variante, on peut remplacer la signature par tout moyen de vérifier la validité de l'exemplaire considéré, tel qu'un test de fonctionnement de la mémoire et/ou de l'exemplaire, ou encore une indication d'échec de mise à jour. Cependant, par rapport à de telles variantes, la signature MACi permet de simplifier la vérification de la validité de l'exemplaire FWi. Les signatures MACi sont par exemple situées à des emplacements placés à la fin de la mémoire 200 (dont les adresses logiques sont les plus élevées des emplacements de la mémoire). [0049] De préférence, la mémoire comprend en outre un programme 230 (BOOT) de démarrage du dispositif. Au démarrage du dispositif, l'unité de traitement (140 en figure 1) commence par exécuter le programme 230. L'exécution du programme 230 se termine par le démarrage de l'un des exemplaires FWi du micrologiciel. De préférence, un emplacement 240 de la mémoire contient une valeur SEL La valeur SEL indique, parmi les exemplaires FWi, un exemplaire sélectionné FW-SEL, ou exemplaire actif, à démarrer en priorité par rapport aux autres exemplaires FWi. De préférence, le programme 230 vérifie la validité de l'exemplaire sélectionné FW-SEL et démarre cet exemplaire s'il est valide. De préférence, l'exemplaire sélectionné est un exemplaire dont la validité a été vérifiée à une étape précédente, par exemple lors de son installation. Un exemple de procédé mis en oeuvre lors de l'exécution du programme 230 est décrit ci-après en relation avec la figure 3. [0050] De préférence, l'exemplaire sélectionné FW-SEL est un exemplaire qui, parmi lesdits 7 exemplaires FWi, correspond à la version la plus récente du micrologiciel. Il en résulte avantageusement que l'exemplaire démarré correspond à la version la plus récente du micrologiciel. [0051] En variante, la valeur SEL indiquant l'exemplaire sélectionné est omise. Dans cette variante, afin de démarrer la version la plus récente du micrologiciel, le dispositif teste la validité de tous les exemplaires FWi, compare les versions de tous les exemplaires FWi, et sélectionne puis démarre l'exemplaire valide de version la plus récente. En comparaison avec une telle variante, la valeur indiquant l'exemplaire sélectionné permet, dans le cas où l'exemplaire sélectionné est valide, d'effectuer un seul test de validité, ce qui permet de simplifier le programme de démarrage 230 et d'accélérer son exécution. [0052] De préférence, la mémoire comprend en outre un système de fichiers 250 (FS) commun accessible par chacun desdits exemplaires. Le système de fichiers 250 comprend typiquement des données utilisées par le micrologiciel pour faire fonctionner le dispositif. Un avantage du système de fichiers commun 250 est que les données utilisées sont les mêmes quelle que soit l'exemplaire FWi démarré. A titre d'exemple, le système de fichier s'étend dans la mémoire entre les exemplaires FWi et les signatures MACi. [0053] La figure 3 représente, de manière schématique et sous forme de blocs, un mode de réalisation d'un procédé de fonctionnement d'un dispositif à micrologiciel comprenant la mémoire de la figure 2. Plus précisément, les blocs correspondant à des étapes mises en oeuvre par le dispositif lors de l'exécution du programme de démarrage 230, de l'exemplaire sélectionné FW-SEL, et d'un exemplaire FWi différent de l'exemplaire sélectionné, sont représentés dans des cadres respectifs 230', 210-SEL, et 210-BU. [0054] A une étape 302 (START), l'exécution du programme de démarrage 230 commence et le procédé passe à une étape 304. [0055] A l'étape 304 (SEL OK?), le dispositif teste la validité de l'exemplaire sélectionné FW-SEL. Si cet exemplaire est valide (Y), le procédé passe à une étape 306 (START SEL) de démarrage de l'exécution de l'exemplaire sélectionné FW-SEL Si cet exemplaire n'est pas valide (N), le procédé passe à une étape 308. [0056] A l'étape 308 (SEEK BU OK), si cette étape n'a pas encore été exécutée depuis le démarrage, le dispositif recherche, parmi les exemplaires FWi valides autres que l'exemplaire sélectionné FW-SEL, un exemplaire de secours FW-BU ("Backup"). Le procédé passe alors à une étape 310. [0057] A l'étape 310 (LAST VERSION ?), le dispositif teste si la version du l'exemplaire de secours FW-BU est la version la plus récente. Pour cela, dans le cas préféré où la version la plus récente est celle de l'exemplaire sélectionné FW-SEL, il suffit de comparer les versions des exemplaires sélectionné FW-SEL et de secours FW-BU. Si 8 ces versions sont égales (Y), le procédé passe à une étape 312. Sinon, le procédé retourne à l'étape 308 ou, dans le cas où la mémoire contient seulement deux exemplaires, le procédé passe à une étape 314 (pointillés 313). [0058] A une nouvelle exécution de l'étape 308, le dispositif cherche un nouvel exemplaire de secours FW-BU, parmi les exemplaires FWi valides autres que l'exemplaire sélectionné FW-SEL et autres que le ou les exemplaires FW-BU précédents. Si un nouvel exemplaire FW-BU est trouvé (Y), le procédé passe à l'étape 310. Sinon, le procédé passe à l'étape 314. [0059] A l'étape 312 (NEW SEL), le procédé modifie la valeur SEL de l'emplacement 240. L'exemplaire FW-BU, qui est valide et correspond à la version la plus récente, devient le nouvel exemplaire sélectionné FW-SEL à exécuter en priorité. Le procédé passe ensuite à l'étape 306, décrite ci-dessus. [0060] A l'étape 314 (START BU), le procédé démarre l'exemplaire de secours FW-BU. [0061] Après l'étape 306, le procédé passe de préférence par une étape 316 (REPLACE ?). L'étape 316 et les étapes suivant l'étape 316 sont mises en oeuvre au cours de l'exécution de l'exemplaire sélectionné FW-SEL. [0062] L'étape 316 est exécutée lorsqu'une demande est reçue par le dispositif. Pour cela, le dispositif communique par l'intermédiaire d'une plateforme avec un système tel qu'un serveur. La communication est par exemple effectuée par un réseau de communication à distance tel que le réseau Internet, et peut aussi être effectuée par tout mode de communication adapté à la communication entre le dispositif et le serveur par l'intermédiaire d'une plateforme. A l'étape 316, le dispositif envoie une information indiquant si l'exemplaire sélectionné avant l'étape 304 était valide ou non. Si, après cela, le dispositif reçoit une demande de remplacer un ou des exemplaires invalides (Y), le procédé passe à une étape 318. Si le dispositif ne reçoit pas de demande de remplacement (N), le procédé passe à une étape 320. [0063] A l'étape 318 (REPLACE BU), le dispositif remplace le ou les exemplaires invalides et/ou de version différente de la plus récente. Plus précisément, de préférence, le dispositif reçoit du serveur un nouvel exemplaire destiné à remplacer l'exemplaire invalide. En variante, dans le cas où l'exemplaire sélectionné FW-SEL est indépendant de sa position dans la mémoire, on réalise, à l'emplacement de l'exemplaire à remplacer, une copie à l'identique de l'exemplaire sélectionné FW-SEL. De préférence, le dispositif remplace alors la signature de vérification de l'exemplaire remplacé par celle de l'exemplaire sélectionné FW-SEL. Dans cette variante et dans le cas où l'exemplaire sélectionné FW-SEL comprend des instructions dépendantes de la position, la copie est effectuée en modifiant ces instructions. Le dispositif calcule la nouvelle signature de vérification MACi de l'exemplaire FWi remplacé et stocke cette signature à son emplacement dans la mémoire. Les modes de réalisation du procédé 9 sont compatibles avec les étapes usuelles d'écriture dans une mémoire d'un exemplaire, ou d'une instance, d'un programme dépendant de sa position à partir d'un autre exemplaire de cc programme. L'étape 318 permet d'obtenir que les exemplaires soient valides et à la version la plus récente. [0064] L'étape 320 (UPDATE ?) est préférentiellement mise en oeuvre lorsqu'une demande d'exécuter cette étape est reçue par le dispositif. A cette étape, le dispositif teste si une mise à jour du micrologiciel doit être effectuée. Pour cela, le dispositif communique avec le serveur par l'intermédiaire de la plateforme. Si une mise à jour doit être effectuée (Y), le procédé passe à une étape 322 (UPDATE BU). Sinon (N), le procédé passe à une étape 324. [0065] A l'étape 322, le dispositif met àjour un exemplaire autre que l'exemplaire sé- lectionné FW-SEL. Autrement dit, le dispositif remplace l'exemplaire autre que l'exemplaire sélectionné FW-SEL par un exemplaire de version plus récente que celle de l'exemplaire sélectionné FW-SEL. Un exemple de mise en oeuvre de cette étape est décrit ci-après en relation avec les figures 4 à 6. Après l'étape 322, le dispositif passe par exemple à une étape 326, à laquelle le dispositif vérifie que l'exemplaire mis àjour est valide. Si cet exemplaire est valide (Y) le procédé passe à une étape 328 (NEW-SEL). Sinon, le procédé peut, à titre d'exemple, retourner à l'étape 322 pour tenter à nouveau d'effectuer une mise à jour. En variante, le procédé peut aller à l'étape 318, afin de restaurer l'exemplaire pour lequel la mise à jour n'a pas réussi. [0066] A l'étape 328, le procédé modifie la valeur SEL (figure 2) afin d'indiquer que l'exemplaire mis à jour à l'étape 322 sera à démarrer en priorité au prochain démarrage du dispositif. Ainsi, l'exemplaire mis à jour deviendra le nouvel exemplaire sélectionné FW-SEL au prochain démarrage, ce nouvel exemplaire correspondant à la nouvelle version la plus récente du micrologiciel. L'étape 316 permettra alors, après ce prochain démarrage, de mettre à jour tous les exemplaires du micrologiciel. Le procédé passe à l'étape 324 après l'étape 328. [0067] L'étape 324 (TPM) correspond au fonctionnement du dispositif après démarrage et en dehors des mises à jour et remplacements des exemplaires EWi. Comme ceci a été mentionné, ce fonctionnement est préférentiellement conforme à la norme TPM. [0068] Bien que les étapes mises en oeuvre au cours de l'exécution de l'exemplaire sé- lectionné (cadre 210-SEL) aient été présentées dans un ordre particulier, d'autres dispositions de ces étapes sont possibles. En particulier, les étapes 316, 318, 320, 322, 326 et 328 peuvent être effectuées en parallèle d'une partie de l'étape 324 (pointillés 325), et/ou après une partie de cette étape (non représenté). En outre, les étapes 316 et 318 peuvent être omises, en particulier en l'absence de demande, le procédé passant directement de l'étape 306 à l'étape 320. De même, les étapes 320, 322, 326 et 328 peuvent être omises, en particulier en l'absence de demande, le procédé passant alors directement de l'étape 306 ou 316 à l'étape 324. [0069] Après l'étape 314 (START BU), le procédé passe de préférence par une étape 330 (RELOAD SEL). A cette étape, le dispositif met à jour l'exemplaire sélectionné FWSEL. Autrement dit, le dispositif remplace l'exemplaire sélectionné, invalide dans ce cas, par une nouvelle version du micrologiciel. Cette étape est effectuée de préférence d'une manière identique ou similaire à celle de l'étape 322 de mise àjour, à savoir en utilisant préférentiellement une communication avec un serveur. Après l'étape 330, le dispositif redémarre (le procédé retourne à l'étape 302). L'étape 330 peut être effectuée en parallèle d'une étape 332 (TPM) à laquelle le dispositif assure au moins une partie, de préférence seulement une partie, des fonctions de l'étape 324 (TPM). [0070] Les figures 4, 5 et 6 représentent schématiquement des étapes d'un mode de réa- lisation d'un procédé de mise àjour d'un micrologiciel. Plus précisément, cc procédé peut être mis en oeuvre aux étapes 322 et/ou 330 décrites ci-dessus en relation avec la figure 3, pour mettre à jour des exemplaires d'un micrologiciel stockés dans la mémoire 200 (figure 2) d'un dispositif à micrologiciel. [0071] L'étape de la figure 4 est préférentiellement mise en oeuvre par un système extérieur au dispositif comprenant le micrologiciel à mettre à jour. Un tel système est de préférence un système informatique, comprenant par exemple un ordinateur, destiné à communiquer avec le dispositif pour effectuer la mise à jour. [0072] A l'étape de la figure 4, on forme des exemplaires FWi du micrologicicl, de préférence deux exemplaires FW1 et FW2. Ces deux exemplaires correspondent de préférence à la même version, la plus récente, du micrologiciel. Les exemplaires FWi sont adaptés à être stockés dans la mémoire 200 (figure 2) du dispositif à partir des positions respectives 220-i (220-1 et 220-2). Ces exemplaires peuvent différer par des instructions dépendantes de la position. Les exemplaires FWI et FW2 diffèrent alors par un nombre M de valeurs FWiVj, telle que des mots (un mot étant défini par un nombre donné de bits, de préférence 32 bits). Ces valeurs sont à des positions situées à des décalages POSj après la position 220-i, j étant un entier variant entre 1 et M. Dans l'exemple représenté, les exemplaires FW1 et FW2 diffèrent par des valeurs FW1V1 et FW2V1, FW1V2 et FW2V2, FW1V3 et FW2V3 correspondant à des décalages respectifs POS1, POS2 et POS3. Chaque décalage POSj est commun aux exemplaires FWi. On peut obtenir les positions POSj en comparant les exemplaires FWI et FW2. En variante, on forme un seul exemplaire et on obtient les décalages POSj en repérant les positions des valeurs dépendantes de la position. [0073] A l'étape de la figure 5, on forme un exemplaire supplémentaire FW dans lequel, aux positions correspondant aux décalages POSj, les valeurs sont remplacées par une même valeur prédéfinie. De préférence, Lorsque la mémoire 200 est une mémoire Flash, cette valeur prédéfinie a tous ses bits égaux à une valeur d'effacement de la 11 mémoire 200, c'est-à-dire une valeur contenue à un emplacement de la mémoire 200 après effacement, par exemple la valeur 1. La valeur prédéfinie est donc par exemple, dans le cas de mots de 32 bits, égale à la valeur OxFh'PFFFFF (ou "Ox" indique que la notation est hexadécimale). [0074] On forme en outre un ensemble 510 de valeurs, de préférence organisé sous forme de tableau. L'ensemble 510 comprend les valeurs FWiVj pour au moins l'un des exemplaires FWi à mettre à jour, correspondant préférentiellement à une autre colonne du tableau. De préférence, l'ensemble 510 comprend toutes les valeurs FWiVj, où chaque valeur de l'entier i correspond à une colonne (chaque valeur de l'entier j correspond à une ligne ou rangée). L'ensemble 510 comprend de préférence les décalages POSj, correspondant plus préférentiellement à une colonne du tableau. Les colonnes et rangées du tableau peuvent être échangées. [0075] A l'étape de la figure 6, on comprime l'exemplaire supplémentaire FW. Cette étape est compatible avec les étapes usuelles de compression de données. De préférence, la compression permet, à partir de l'exemplaire supplémentaire FW, d'obtenir un ensemble 610 de données de taille réduite par rapport à celle de l'exemplaire supplémentaire, sans perte d'information. A titre d'exemple, la taille de l'ensemble 610 est inférieure à 85 % de celle de l'exemplaire supplémentaire FW. A titre d'exemple, l'exemplaire supplémentaire FW a une taille supérieure ou égale à 310 kilooctets, et l'ensemble compressé 610 a une taille inférieure à 260 kilooctets. [0076] De préférence, l'ensemble 510 n'est pas comprimé, cependant, une compression de l'ensemble 510 est possible. [0077] A une étape suivante, non représentée, on transmet les ensembles 510 et 610 au dispositif dont le micrologiciel doit être mis à jour. De préférence, le dispositif décompresse l'ensemble 610 à mesure de sa réception et stocke le résultat de la décompression, à savoir l'exemplaire supplémentaire FW, directement à l'emplacement de l'exemplaire FWi à remplacer. En variante, l'étape de la figure 6 est omise, et l'exemplaire supplémentaire FW est reçu par le dispositif sous forme non compressée. [0078] Dans une variante, le dispositif met l'ensemble 610 dans la mémoire 200 ou dans une autre mémoire avant de le décompresser. Cependant, par rapport à cette variante, le fait de décompresser l'ensemble 610 à mesure de sa réception pet-met de réduire l'espace mémoire utilisé. Dans une autre variante, le dispositif stocke l'exemplaire décompressé dans une autre mémoire ou à un autre emplacement de la mémoire 200 que celui de l'exemplaire à remplacer. Cependant, par rapport à cette autre variante, le fait de stocker le résultat de la compression directement à l'emplacement de l'exemplaire à remplacer permet également de réduire l'espace mémoire utilisé. [0079] Le dispositif remplace ensuite les valeurs prédéfinies substituées aux valeurs FWiVj dépendantes de la position, par les valeurs correspondantes de l'ensemble 510 reçu par 12 le dispositif. On a ainsi restauré, dans l'exemplaire FWi concerné, les valeurs FWiVj obtenues à l'étape de la figure 4, et cet exemplaire a donc été mis à jour. [0080] Dans le cas d'une mémoire de type Flash, on stocke successivement des parties de l'exemplaire décompressé. Pour chacune de ces parties, les emplacements en mémoire sont effacés simultanément, puis la partie concernée est réécrite dans tous les emplacements simultanément. [0081] Dans une variante, on peut stocker l'exemplaire décompressé dans unc autre mémoire, par exemple une mémoire vive, puis remplacer les valeurs prédéfinics par les valeurs FWiVj lorsque l'exemplaire est dans la mémoire vive, puis écrire l'exemplaire dans la mémoire Flash. Par rapport à cette variante, l'écriture dans la mémoire des valeurs prédéfinies à bits égaux à une valeur d'effacement de la mémoire Flash, puis leur remplacement par les valeurs FWiVj, permet d'éviter d'utiliser de la place en mémoire vive sans ajouter de cycle d'écriture/effacement à la mémoire Flash. Ceci permet de réduire la taille de la mémoire vive et limiter les risques de vieillissement de la mémoire Flash et/ou le temps de mise à jour. [0082] Le procédé des figures 4 à 6 permet au dispositif de recevoir toutes les données né- cessaires à la mise à jour de n'importe lequel des exemplaires FWi dont les valeurs FWiVj dépendantes de la position sont contenues dans l'ensemble 510. En particulier, dans le cas préféré où l'ensemble 510 comprend toutes les valeurs FWiVj, le dispositif reçoit toutes les valeurs nécessaires à la mise à jour de n'importe lequel des exemplaires FWi. Plus précisément, les ensembles 510 et 610 peuvent avantageusement être obtenus à l'avance sans savoir lequel des exemplaires doit être mis à jour, ou sans que le dispositif ait à communiquer une indication de l'exemplaire à mettre à jour. [0083] Pour transmettre au dispositif des données nécessaires à la mise à jour de n'importe lequel des exemplaires sans connaître à l'avance lequel des exemplaires est à mettre à jour, on aurait pu penser transmettre tous les exemplaires FWi obtenus à l'étape de la figure 4. Cependant, par comparaison, le procédé des figures 4 à 6 présente l'avantage de réduire le nombre de données transmises pour la mise à jour. On peut donc effectuer la mise à jour plus rapidement et/ou par un moyen de communication ayant une bande passante plus réduite. [0084] Divers modes de réalisation et variantes ont été décrits. L'homme de l'art comprendra que certaines caractéristiques de ces divers modes de réalisation et variantes pourraient être combinées, et d'autres variantes apparaitront à l'homme de l'art. [0085] Enfin, la mise en oeuvre pratique des modes de réalisation et variantes décrits est à la portée de l'homme du métier à partir des indications fonctionnelles données ci-dessus. 13 REVENDICATIONS[Revendication I] Dispositif électronique, dans lequel une mémoire (200) contient plusieurs exemplaires (FWi) d'un micrologicicl du dispositif. [Revendication 2] Dispositif selon la revendication I, dans lequel chacun desdits exemplaires (FWi) est adapté à provoquer, lorsqu'il est exécuté par le dispositif, le fonctionnement du dispositif selon le standard TPM. [Revendication 3] Dispositif selon la revendication I ou 2, dans lequel la mémoire (200) contient en outre, pour chacun desdits exemplaires (FWi), une signature (MACi) de vérification de validité dudit exemplaire (FWi). [Revendication 4] Dispositif selon l'une quelconque des revendications 1 à 3, dans lequel la mémoire (200) comprend en outre un programme (230) de démarrage du dispositif, adapté à provoquer, lorsqu'il est exécuté par le dispositif, la vérification de validité et l'exécution d'au moins un desdits exemplaires (FWi). [Revendication 5] Dispositif selon l'une quelconque des revendications 1 à 4, dans lequel la mémoire (200) comprend une valeur (SEL) indiquant un exemplaire (FW-SEL) sélectionné parmi lesdits exemplaires (FWi). [Revendication 6] Dispositif selon la revendication 5, dans lequel l'exemplaire sélectionné (FW-SEL) correspond à la version la plus récente parmi des versions du micrologiciel. [Revendication 7] Dispositif selon l'une quelconque des revendications 1 à 6, dans lequel la mémoire (200) comprend en outre un système de fichiers (FS) commun accessible par chacun desdits exemplaires (FWi). [Revendication 8] Procédé de fonctionnement d'un dispositif selon l'une quelconque des revendications 1 à 7. [Revendication 9] Procédé selon la revendication 8, comprenant l'exécution (306) de l'un desdits exemplaires (FWi), l'exemplaire exécuté (FW-SEL) étant valide et correspondant à la version la plus récente parmi les versions des exemplaires valides. [Revendication 10] Procédé selon la revendication 8 ou 9, comprenant le remplacement (318) d'un exemplaire (FW-BU) qui, parmi lesdits exemplaires (FWi), est non valide, par un autre exemplaire (FW-SEL) qui, parmi lesdits exemplaires (FWi), est valide. [Revendication 11] Procédé selon l'une quelconque des revendications 8 à 10, comprenant. le remplacement (318) de l'un desdits exemplaires (FW-BU) par un autre desdits exemplaires (FW-SEL) de version plus récente que celle de l'exemplaire remplacé (FW-BU). 14 [Revendication 12] [Revendication 13] [Revendication 14] [Revendication 15] Procédé selon l'une quelconque des revendications 8 à 11, comprenant la réception par ledit dispositif : - d'un exemplaire supplémentaire (FW) du micrologiciel, dans lequel des valeurs dépendantes (FWiVj) d'une future position (220-i) de l'exemplaire supplémentaire dans la mémoire sont remplacées par une même valeur prédéfinie, ladite valeur prédéfinie ayant de préférence tous ses bits égaux à une valeur d'effacement de la mémoire ; et - desdits valeurs dépendantes (FWiVj) pour chacune des positions (220-i) desdits exemplaires dans la mémoire. Procédé selon la revendication 12, comprenant en outre le remplacement (322 ; 330) d'au moins l'un desdits exemplaires (FS-BU) par l'exemplaire supplémentaire (FW), et la restauration desdites valeurs dépendantes (FWiVj) correspondant à la position de l'exemplaire remplacé. Procédé selon la revendication 12 ou 13, dans lequel l'exemplaire supplémentaire (FW) et/ou lesdites valeurs dépendantes (FWiVj) sont reçues sous forme compressée et sont ensuite décompressées. Composant électronique, comprenant de préférence un boîtier (120), comportant un dispositif selon l'une quelconque des revendications 1 à 7 ou adapté à mettre en oeuvre un procédé selon l'une quelconque des revendications 8 à 14.