FR 2824414 A1 20021108 FR 0106285 A 20010507 I j Procédé de gestion d'opérations d'effacement dans des mémoires de téléphone mobile. La présente invention a pour objet un procédé de gestion d'opérations d'effacement dans des mémoires de téléphone mobile. Plus particulièrement, I'invention concerne un procédé qui permet d'effectuer des opérations d'effacement de donnces contenues dans un premier module de mémoire tout en laissant la possibilité d'accéder à différentes applications pouvant étre contenues dans ce premier module de mémoire eVou dans un deuxième module de mémoire, les applications du deuxième module de mémoire pouvant solliciter les applications du premier module de mémoire. Le domaine de l'invention, est. d'une façon générale, celui de la téléphonie mobile. Ce domaine a rencontré un considérable succès populaire ces dernières années, ce succès s'accompagnant d'évolutions technologiques importantes. Les téléphones mobiles qui sont proposés au public sont ainsi devenues de plus en plus performants et offrent toujours plus de fonctionnalités différentes. En conséquence, le nombre d'applications qui doivent étre programmées au sein des téléphones mobiles est devenue considérable, nécessitant une augmentation significative de l'espace mémoire disponible pour mémoriser les codes informatiques de ces différentes applications. Les mémoires de stockage de ces différentes applications sont, pour des questions de rapidité d'accès aux informations qu'elles contiennent et pour le volume limité qu'elles occupent, des mémoires de type FEEPROM (pour Flash Electrically Erasable and Programmable Read Only Memory en anglais), plus communément appelées mémoires flash. Ces mémoires sont des mémoires dynamiques non volatiles. Elles sont effaçables par bloc, et on ne peut plus accéder à leur contenu lorsqu'elles sont dans un mode d'effacement. En d'autres termes, on ne peut pas, dans de telles mémoires, effectuer simultanément une opération d'effacement et, par exemple, une opération de lecture. Par ailleurs, ce type de mémoire est également destiné à stocker un ensemble de données dites rémanentes: ces données représentent I'ensemble des informations qu'il ne faut pas perdre lorsque le combiné \ mobile est éteint. Ce sont par exemple des informations relatives aux numéros appelés, à la constitution d'un répertoire, à un logo de l'opérateur, ou encore à la définition d'un profil de l'utilisateur du combiné considéré. Au niveau de l'implantation de ces mémoires flash destinées à la mémorisation des différentes applications, on a pu observer les évolutions suivantes: dans un premier temps, un unique module de mémoire de type flash, d'une capacité de un mégeoctet, puis de deux mégaoctets, a été utilisé. Un premier problème, du à la coexistence des données rémanentes et des codes des différentes applications dans une même mémoire flash, est apparu. En effet, les données mémorisées sont amenées à être modifiées ou même supprimées, ce qui signifie qu'un microprocesseur gérant ce module d e mémo i re est souvent amen é à effectuer d es opérations d 'effacement de données. Mais, comme on l'a précisé, on ne peut pas, dans les mémoires flash classiques, être simultanément dans un mode d'effacement et dans un mode d'accès à des données. Or le code contenu dans ce module de mémoire contient notamment des applications dites d'interruption qui doivent être activées très rapidement lors de l'établissement d'une communication ou lors d'une sollicitation émanant de l'utilisateur, et, le plus souvent, I'arrêt de I'opération d'effacement intervient trop lentement pour pouvoir activer en temps voulu ces applications. La solution apportée à ce problème fut l'utilisation de mémoires flash dites 'bi-banque". Ce type de mémoire est composé de deux zones, ou banques, distinctes: une première zone étant par exemple destinée au code des différentes applications, et une deuxIème zone aux donnces rémanentes. Elle autorise la simultanéité d'une opération d'effacement dans la première zone, ou banque, et d'une opération d'accès au code contenu dans l'autre zone de la mémoire. Bien évidemment, à capacité de stockage égale, une mémoire flash bi-banque est plus coûteuse qu'une mémoire flash classique, ou mono-banque. A capacité de stockage égale, elle est cependant moins chère que deux mémoires flash distinctes. Par la suite, les différentes applications devant être mémorisées devenant plus nombreuses et complexes, un unique module de mémoire flash, qu'il soit mono-banque ou bi-banque, est devenu insuffisant. Il fut alors nocessaire d'utiliser deux mémoires flash: une première mémoire flash mono-banque contenant exclusivement du code associé à différentes applications, et, pour les raisons qui viennent d'être décrites, une deuxième mémoire flash bi-banque. L'inconvénient d'une telle solution est le prix élevé des composants utilisés, la mémoire flash bi-banque étant à elle seule particulièrement coûteuse. Une réponse à cet inconvénient a été proposée; il s'agit d'une solution entièrement logicielle dans laquelle une application logicielle détecte qu'aucune application mémorisée dans l'une des mémoires flash n'est active. Le cas échéant, cette application logicielle ordonne et contrôle les différentes opérations d'effacement nécessaires. Cette solution présente cependant deux inconvénients majeurs: d'une part, il faut pouvoir détecter qu'aucune application des mémoires flash n'est active; d'autre part, il faut être certain que les différentes applications mémorisées dans les mémoires flash ne vont pas être sollicitées pendant l'opération d'effacement. En effet, si un utilisateur vient à solliciter une de ces applications pendant une phase d'effacement de données, son attente peut atteindre environ une seconde, ce qui est trop important. Le p rocéd é de gestion d' opérations d 'effacement selon l' i nve ntion permet d'apporter une solution aux différents problèmes qui viennent d'être exposés: grâce à l'invention, la mémoire flash bi-banque utilisée dans l'état de la technique est remplacée par une mémoire flash mono-banque classique, et un mécanisme spécifique est mis en place pour répondre rapidement et favorablement à toute requête d'accès à des applications de l'une ou de l'autre des mémoires flash, même lorsque une opération d'effacement de données contenues dans la deuxième mémoire flash est en cours d'exécution. En outre, le procédé selon l'invention prévoit de provoquer la lecture d'un registre préalablement déterminé lorsqu'une opération d'effacement de données contenues dans la deuxième mémoire flash est entamée, la lecture de ce registre aboutissant à l'apparition d'une erreur qui permet d'interrompre rapidement l'opération d'effacement en cours. Dans un mode de mise en _uvre préféré, le procédé selon l'invention fait intervenir un commutateur de sélection de composants, ou chip select dans la littérature anglaise, qui permet d'orienter une tentative d'accès aux applications de la deuxième mémoire flash vers le registre préalablement déterminé. L'invention concerne donc un procédé de gestion d'opérations d'effacement dans des mémoires de téléphone mobile, le télophone mobile comportant un microprocesseur, un commutateur de sélection de composants, une première mémoire de type flash contenant un premier ensemble d'applications et une deuxième mémoire de type flash comportant d'une part un deuxième ensemble d'applications et d'autre part des données rémanentes du téléphone mobile, caractérisé en ce qu'il comporte l'étape consistant à, pendant une phase d'effacement de données contenues dans la deuxième mémoire flash, provoquer, lors d'une tentative d'accès au deuxième ensemble d'applications, la lecture par le microprocesseur, d'un registre particulier pour déclencher une opération d'interruption de l'effacement. Dans un mode de mise en _uvre particulier, le procédé comporte l'une des étapes ou les deux étapes supplémentaires consistant à, préalablement à l'étape de lecture du registre particulier: - paramétrer le commutateur de sélection de composants pour orienter toute tentative d'accès au deuxième ensemble d'applications contenu dans la deuxième mémoire flash vers le registre particulier; - écrire dans le registre particulier une ou plusieurs données non interprétables par le microprocesseur. La totalité du registre particulier peut contenir des données non interprétables par le microprocesseur, ces données pouvant être semblables et avoir été écrites dans le registre particulier lors de la fabrication du téléphone mobile. Après lecture par le microprocesseur d'une donnée non interprétable du registre particulier, une application d'interruption du premier ensemble d'applications peut être exécutée pour suspendre l'effacement des données de la deuxième mémoire flash, I'opération d' interru ption du rant environ 20 millisecondes. Dans différentes variantes du procédé selon l'invention, on prévoit I'étape supplémentaire consistant à reprendre l'opération d'effacement au bout d'un certain temps d'interruption préalablement déterminé, et éventuellement l'étape supplémentaire consistant à prolonger l'interruption au-delà du temps d'interruption préalablement déterminé si des applications de la deuxième mémoire de type flash sont encore actives à cet instant. Une étape du procédé peut être exécutée, préalablement aux autres étapes, cette étape consistant à répartir les différentes applications dans le premier ensemble d'applications ou dans le deuxième ensemble d'applications en fonction de leur caractère essentiel pour gérer une communication. 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. Celles-ci ne sont données qu'à titre indicatif et nullement limitatif de l'invention. Les figures montrent: - à la figure 1, une représentation schématique de l'agencement des principaux composants intervenant dans le procédé selon l'invention; - à la figure 2, un organigramme illustrant différentes étapes possibles du procédé selon l'invention. La figure 1 montre une première mémoire flash F1 et une deuxième mémoire flash F2 qui sont reliées à un bus de donnces 100. Dans la pratique, la première mémoire flash F1 a une capacité de stockage d'environ 2 mégaoctets, et la deuxième mémoire flash F2 a une capacité pouvant varier de 1 à 2 mégeoctets environ. Le procédé selon l'invention pourrait cependant également être mis en _uvre avec des mémoires flash présentant d'autres capacités de stockage. La première mémoire flash F1 contient exclusivement du code informatique relatif à un premier ensemble d'applications 101. La deuxième mémoire flash F2 contient d'une part, dans une première zone 104 de mémoire, du code relatif à un deuxième ensemble d'applications 102, et dans une deuxième zone de mémoire 105 des données rémanentes 103 qui peuvent faire l'objet d'opérations d'effacement. Cependant, contrairement aux mémoires flash bi-banques, les différentes zones 104 et 105 ne sont pas figées et leur taille peut évoluer en fonction des besoins, de l'évolution du nombre d'applications eVou de données. Le premier ensemble d'applications 101 comporte notamment les applications essentielles, qui sont éventuellement susceptibles de faire appel aux applications du deuxième ensemble d'applications 102, qui peuvent donc être considérées comme des applications auxiliaires. Le bus de données 100 permet de véhiculer d'une part des données et d'autre part différentes commandes provenant d'un microprocesseur 106, également connecté au bus de données 100. Par ailleurs, de façon simplifiée, un bus d'adresses 107 est connocté d'une part au microprocesseur 106 et d'autre part à un composant à logique programmable 108, par exemple de type EPLD (Electrically Programmable Logical Device en anglais pour moyen logique électriquement programmable). Le composant à logique programmable intervient en tant que commutateur de sélection de composants: il effectue, à partir des informations que le microprocesseur 106 lui transmet via le bus d'adresses 107, une opération de décodage d'adresse pour déterminer à quel composant actif sont effectivement destinées les différentes données qui circulent sur le bus de données 100. Ainsi, puisqu'ils sont tous reliés au bus de données 100, tous les composants actifs sont susceptibles de recevoir les données circulant sur le bus de données 100, mais seul celui qui aura été sélectionné par le commutateur de sélection de composants 108 tiendra effectivement compte des données qu'il aura reçues. Pour sélectionner un composant, le commutateur de sélection de composants 108 transmet un signal approprié, via une liaison 109 reliant directement une broche 110 du commutateur 108 à une patte spécifique 111, appelée entrée chip select, du composant actif considéré. Dans la pratique, une partie des adresses circulant sur le bus d'adresses 107 est directement transmise aux composants actifs, le commutateur n'interprétant que les bits de poids fort de ces adresses. Enfin, un registre de mémoire 112, désigné par la suite comme registre de mémoire particulier, est également connecté au bus de données 100. Ce registre particulier peut par exemple être associé, mais ce n'est pas une obligation, à un circuit de type ASIC 113 ( Application Specific Integrated Circuit en anglais, pour circuit intégré à application spécifique) déjà présent au sein du téléphone mobile. Le registre particulier pourrait également être contenu dans une mémoire tampon quelconque du téléphone mobile. Il est de préférence de taille adressable limitée, de l'ordre de un octet. Une mise en _uvre et un fonctionnement possibles du procédé selon I'invention au sein de l'architecture qui vient de présenter sont détaillés dans l'organigramme de la figure 2. Une première étape 200 de cet organigramme est marquée par l'exécution d'une opération d'effacement de certaines des données rémanentes 103. Dès qu'une telle opération débute, une étape 201 de basculement du commutateur de sélection de composants 108 est mise en _uvre. Cette étape 201 consiste à paramétrer le commutateur 108 de telle sorte que lorsqu'une tentative d'accès à des applications 102 de la deuxième mémoire flash F2, qui se traduit par une commande de lecture du code relatif à une ou plusieurs applications convoitées, parvient au commutateur 108, ce dernier oriente l'instruction de lecture vers le registre particulier 112. Le commutateur a fait l'objet d'une programmation préalable pour que l'étape 201 soit mise en _uvre automatiquement dès que la deuxième mémoire flash F2 est dans un mode d'effacement. Immédiatement après l'étape 201 de basculement du commutateur 108, une opération d'écriture 202 dans le registre particulier 112 intervient. Dans cette étape 202, un code opérationnel, ou opcode, inconnu par le microprocesseur est écrit dans le registre particulier. D'une façon générale, un opcode est un nombre représentant une instruction que le microprocesseur 106 doit comprendre et exécuter. Un opcode inconnu est justement un nombre qui ne correspond à aucune instruction parmi la liste des instructions que le microprocesseur est sensé reconna'^tre. Dans d'autres modes de mise en _uvre du procédé selon l'invention, l'étape 202 pourrait être effectuée avant l'étape 201, ou méme totalement ignorée dans le cas o le registre particulier 112 a préalablement fait l'objet de cette opération d'écriture, par exemple lors de la fabrication du télophone mobile, et que ce registre 112 n'a pas été modifié depuis lors. Dans tous les cas, on peut écrire un ou plusieurs opcodes inconnus, et de préférence dans la totalité du registre particulier. Dans certaines variantes, le même opcode inconnu est écrit à toutes les adresses mémoires du registre particulier 112. Le téléphone mobile se trouve alors dans un état o il peut gérer efficacement toute tentative d'accès aux applications 102 de la deuxième mémoire flash F2. Une étape de décision 203 permet de déterminer si une telle tentative d'accès intervient. Tant que ce n'est pas le cas, les différentes opérations d'effacement peuvent se poursuivre dans une étape 204. Une étape de décision 205 permet alors de déterminer si les opérations d'effacement sont achevées. Si ce n'est pas le cas, les différentes opérations sont reprises au niveau de l'étape de décision 203. Par contre, si les opérations d'effacement sont achevées, une étape 206, dite de rebasculement de commutateur, intervient alors. Dans cette étape 206, le commutateur 108 est paramétré pour retrouver les paramètres de fonctionnement qu'il avait avant l'étape 201. Ainsi, lorsqu'une tentative d'accès à des applications 102 de la deuxième mémoire flash F2 parvient au commutateur 108, ce dernier oriente effectivement l'instruction de lecture vers la deuxième mémoire flash F2. Eventuellement, I'opcode inconnu est effacé du registre particulier 112. Lorsqu'à l'étape de décision 203, une tentative d'accès aux applications 102 de la deuxième mémoire flash F2 appara^'t, une étape 208 intervient dans laquelle l'instruction de lecture correspondant à la tentative d'accès est orientée par le commutateur 108 vers le registre particulier 112. L'étape 208 est de préférence précédée d'une étape de mémorisation 207, dans laquelle les informations relatives à la tentative d'accès déroutée sont mémorisées, et notamment l'adresse visée dans la deuxième mémoire flash F2. Au moins un opcode inconnu est alors lu par le microprocesseur 106. Or lorsque l'on demande au microprocesseur 106 d'interpréter un opcode inconnu, ce dernier détecte et signale une erreur dans une étape 209 et interrompt le programme en cours, en l'occurrence les opérations d'effacement des données rémanentes 103. A cet effet, le microprocesseur 106 déclenche un traitement d'erreur dans une étape 210. Ce traitement d'erreur a notamment comme effet la mise en _uvre d'une application d'interruption des opérations d'effacement. Cette application peut être par exemple une routine d'interruption dite "trap", contenue dans la première mémoire flash F1. Les opérations d'effacement sont effectivement suspendues dans une étape 211, typiquement environ 20 millisecondes après le début de la tentative d'accès aux applications 102 de la deuxième mémoire flash F2. Bien entendu, si une application particulière de la première mémoire flash F1 est sollicitée, notamment pour un déroulement prioritaire de communication, le mécanisme d'interruption d'effacement de données est suspendu pour être repris par la suite, lorsque l'application particulière n'est plus active. L'effacement peut dans ce cas être poursuivi pendant la suspension du mécanisme d'interruption. Une fois les opérations d'effacement suspendues, on peut procéder, dans une étape 212, à l'accès et à l'activation des applications de la deuxième mémoire flash F2 initialement convoitées. A cet effet, on utilise les informations relatives à la tentative d'accès détournée vers le registre particulier, qui avaient fait l'objet d'une mémorisation. Dans certains modes de mise en _uvre du procédé selon l'invention, on peut faire intervenir une durée limite de suspension de l'effacement des données rémanentes. Dans ce cas, une étape de décision 213 vérifie si cette durée maximale a été atteinte. Si ce n'est pas le cas, l'étape 212 se poursuit. Si la durée maximale est atteinte, une étape de décision 214 intervient dans laquelle le microprocesseur 106 détermine si l'étape 212 est arrivée à son terme, c'est-à-dire si les applications 102 auxquelles on a accédé ne sont plus actives. Si c'est le cas, le procédé est repris à l'étape 204 dans laquelle les opérations d'effacement sont poursuivies. Sinon, le procédé est repris à l'étape 212 dans laquelle les applications 102 sont actives. Le procédé selon l'invention repose donc notamment sur une combinaison de la programmation du commutateur 108 de sélection de composants qui permet de désigner les entrées chip select 111 à activer, de l'utilisation d'un composant de taille mémoire faible 112 contenant un opcode inconnu du microprocesseur 106, et de l'utilisation d'un mécanisme d'interruption. Un des avantages de la présente invention est d'offrir un fonctionnement comparable à celui d'un agencement utilisant une mémoire flash bi-banque pour un coût inférieur. Enfin, il faut noter que la modification du commutateur de sélection pour l'adapter au procédé selon l'invention est légère, une centaine de lignes de codes suffisent, et que on obtient une souplesse dans la définition de la taille des données rémanentes qui n'étaient pas atteintes avec une mémoire flash bi-banque. REVENDICATIONS 1- Procédé de gestion d'opérations d'effacement dans des mémoires de téléphone mobile, le télophone mobile comportant un microprocesseur (106), un commutateur (108) de sélection de composants, une première mémoire de type flash (F1) contenant un premier ensemble d'applications (101) et une deuxième mémoire de type flash (F2) comportant d'une part un deuxième ensemble d'applications (102) et d'autre part des données rémanentes (103) du téléphone mobile, caractérisé en ce qu'il comporte I'étape consistant, pendant une phase d'effacement de données (103) contenues dans la deuxième mémoire flash (F2), à provoquer, lors d'une tentative d'accès au deuxième ensemble d'applications, la lecture par le microprocesseur (106) d'un registre particulier (112) pour déclencher une opératio n d ' inte rru ption de l' effacement. 2- Procédé selon la revendication précédente caractérisé en ce qu'il comporte l'étape supplémentaire consistant, préalablement à l'étape de lecture du registre particulier (112), à paramétrer le commutateur de sélection de composants (108) pour orienter toute tentative d'accès au deuxième ensemble d'applications (102) contenu dans la deuxième mémoire flash (F2) vers le registre particulier (112). 3- Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte l'étape supplémentaire consistant, préalablement à l'étape de lecture du registre particulier (112), à écrire dans le registre particulier (112) une ou plusieurs données non interprétables par le microprocesseur (1 06). 4- Procédé selon la revendication précédente, caractérisé en ce que la totalité du registre particulier (112) contient des données non interprétables par le microprocesseur (106). - Procédé selon l'une des revendications 3 ou 4, caractérisé en ce que toutes les données écrites dans le registre particulier (11 2) sont semblables. 6- Procédé selon l'une des revendications 3 à 5, caractérisé en ce que chaque donnée non interprétable par le microprocesseur (106) est écrite dans le registre particulier (112) lors de la fabrication du télophone mobile. 7- Procédé selon l'une des revendications 4 à 6, caractérisé en ce qu'il comporte l'étape supplémentaire consistant, après lecture par le microprocesseur (106) d'une donnée non interprétable du registre particulier (112), à exécuter une application d'interruption du premier ensemble d'applications (101) pour suspendre l'effacement des données de la deuxième mémoire flash (F2). 8- Procédé selon l'une des revendications précédentes, caractérisé en ce que le registre particulier (112) est le registre d'un ASIC (113). 9- Procédé selon l'une des revendications précédentes, caractérisé en ce que la du rée de l'opération d' interruption de l'effacement est de l'ord re de 20 millisecondes - Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte l'étape supplémentaire consistant à reprendre l'opération d'effacement au bout d'un certain temps d'interruption préalablement déterminé. 11- Procédé selon la revendication précédente, caractérisé en ce qu'il comporte l'étape supplémentaire consistant à prolonger l'interruption audelà du temps d'interruption préalablement déterminé si des applications de la deuxième mémoire de type flash (F2) sont encore actives à cet instant. 12- Procédé selon l'une des revendications précédentes, caractérisé en ce qu'il comporte l'étape supplémentaire consistant à répartir les différentes applications dans le premier ensemble d'applications (101) ou dans le deuxième ensemble d'applications (102) en fonction de leur