Brevet FR2815499A1 — publié le 20020419

La présente invention concerne une mémoire flash et un système de carte à Cl (circuit intégré) à semi-conducteur approprié. En particulier, la présente invention concerne une mémoire flash présentant différentes tailles de page et son application appropriée. Les cartes à Cl à semiconducteur sont largement utilisées de nos jours. Parmi les applications de ces cartes, on peut citer les cartes prépayées, les cartes de retrait d'argent à Cl, des cartes ID (d'identification), des cartes mémoire pour appareils photos numériques, etc. Ces applications nécessitent au moins trois exigences de la part des cartes à Cl. La première est la conservation des données mémorisées, qui ne peuvent pas être perdues lorsque l'alimentation électrique est coupée. La deuxième concerne le volume de mémorisation, qui doit être le plus grand possible pour mémoriser les informations de données toujours plus nombreuses. La troisième concerne la fiabilité, c'est-à-dire l'endurance du cycle lecture-écriture (L/E). Une carte à Cl ne doit pas être endommagée après un nombre de cycles de L/E prédéterminé Pour remplir les exigences ci-dessus, la carte à Cl utilise en général des EEPROM (mémoire morte programmable et effaçable électriquement) ou des mémoires flash, comme dispositif de mémoire principal. La caractéristique essentielle qui différencie une EEPROM d'une mémoire flash est le nombre de cellules de mémoire effacées à la fois. De manière générale, la taille effacée en une fois pour une EEPROM, est égale à 1 octet, et pour une mémoire flash, est égale à une page ou un secteur, qui peut contenir des centaines ou des milliers d'octets. L'EEPROM présente une bonne fiabilité, atteignant 104 à 106 cycles, afin de satisfaire aux exigences du marché, toutefois, on compte parmi ses inconvénients une surface de puce en silicium plus grande et un coût plus élevé. Chaque cellule de mémoire d'une EEPROM présente deux transistors; I'un agit comme sélecteur, et l'autre agit comme unité de mémorisation. Si l'on accroît la capacité de mémorisation d'une carte à Cl d'une EEPROM, on doit généralement faire face à des problèmes de limitation des coûts et d'assemblage de la carte. En comparaison avec une EEPROM, la mémoire flash sacrifie la souplesse de la taille d'effacement au profit d'une surface de puce en silicium plus petite. En moyenne, chaque cellule de mémoire flash présente un seul transistor. Par conséquent, on peut obtenir une petite surface de puce en silicium et un coût réduit. Toutefois, limitée par l'architecture du circuit, l'opération de lecture-écriture d'une carte à Cl ou d'une mémoire flash peut entraîner une fiabilité plus basse, particulièrement quand la taille de chaque donnée à mémoriser est bien inférieure à la taille d'une page. Quand des données spécifiques, par exemple, vont être mémorisées dans une région vide d'une page ciblée dans laquelle des données pré-mémorisées doivent être conservées, les trois étapes suivantes doivent être exécutées l'une après l'autre. (1) Lire les données pré-mémorisées dans la page ciblée pour les copier dans d'autres mémoires. En d'autres termes, dupliquer les données pré-mémorisées dans d'autres mémoires. (2) Effacer toutes les données de la page ciblée. (3) Ecrire la copie et les données spécifiques dans la page ciblée. Ces trois étapes sont désignées cycle lecture- effacement-écriture. Cela signifie que, dans la page ciblée les cellules de mémoire destinées aux données pré-mémorisées, qui de manière intuitive ne doivent pas connaître de cycle lecture-effacement-écriture, connaissent un cycle lecture- écriture-effacement pendant l'écriture des informations dans les pages ciblées. Particulièrement, quand des données rarement modifiées et des données souvent modifiées sont placées dans une page, les cellules de mémoire destinées aux données rarement modifiées soufrent des nombreux cycles lecture-effacement-écriture dûs aux modifications des données souvent modifiées. Par conséquent, même si l'endurance d'une seule cellule de mémoire flash équivaut à celle d'une seule cellule de mémoire EEPROM, la fiabilité d'une carte à Cl de mémoire flash sera beaucoup plus mauvaise que celle d'une carte à Cl d'une EEPROM. Un objet de la présente invention est d'améliorer la fiabilité d'une carte à Cl. Un aspect de la présente invention propose une carte à Cl d'une mémoire flash comprenant une matrice mémoire flash. La matrice présente une pluralité de pages présentant des cellules de mémoire flash effacées simultanément. Les pages comprennent une page relativement grande et une page relativement petite. Le nombre de cellules de mémoire flash dans la page relativement grande est plus élevé que celui de la page relativement petite. Un autre aspect de la présente invention propose un système de carte à Cl comprenant une matrice mémoire flash, un dispositif de commande de mémoire et une interface entrée/sortie (E/O). La matrice présente une pluralité de pages. Chaque page présente des cellules de mémoire flash effacées simultanément. Les pages comprennent une page relativement grande et une page relativement petite. Le nombre de cellules de mémoire flash dans une page relativement grande est plus élevé que dans la page relativement petite. Le dispositif de commande de mémoire est utilisé pour affecter des mémoires flash pour mémoriser les informations reçues. L'interface entrée/sortie (E/O) répond en vue d'accéder à un lecteur de carte externe. Un autre aspect de la présente invention propose un procédé de mémorisation d'une instruction dans une matrice mémoire flash dans une carte à Cl. La matrice présente une pluralité de pages. Chaque page présente des cellules de mémoire effacées simultanément. Les pages comprennent une page relativement grande et une page relativement petite. Le nombre de cellules de mémoires flash d'une page relativement grande est plus élevé que celui d'une page relativement petite. Le procédé comprend les étapes suivantes: (1) affectation, quand l'instruction est un code de données et remplit un premier critère, de la page relativement grande pour mémoriser l'instruction; et (2) affectation, quand lI'instruction est un code de données et remplit un second critère, de la page relativement grande pour mémoriser l'instruction. Lors de l'emploi de la carte à Cl de la présente invention, les codes de données rarement modifiées, les codes de données plus longs et les programmes sont mémorisés dans les pages relativement grandes. Par ailleurs, les codes de données plus courts et les codes des données souvent modifiées sont mémorisés dans les pages relativement petites. La présente invention propose une endurance de cycle lecture-écriture équivalente pour chaque page, ce qui implique un résultat plus efficace. La carte à Cl selon la présente invention présente une fiabilité supérieure. La présente invention peut être mieux comprise à la lecture de la description détaillée suivante conjointement aux exemples et aux références faites aux dessins joints, dans lesquels la figure 1 montre un système de carte mémoire à Cl mis en oeuvre avec une mémoire flash ayant une taille de page différente selon la présente invention; la figure 2 montre un organigramme illustrant un type de mise en oeuvre d'un mode d'affectation de mémoire fia sh; la figure 3 montre un schéma fonctionnel d'une carte à Cl avec un microprocesseur selon la présente invention, et la figure 4 montre une structure de système d'exploitation de carte multi-applications de la carte à puce, qui peut télécharger de manière dynamique des programmes d'application dans la carte à Cl. Le principe essentiel de la présente invention est que, le matrice mémoire flash d'une carte à Cl présente des petites pages et des grandes pages, dans lesquelles les mots " petite " ou " grande " sont des descriptions relatives du nombre de cellules de mémoire flash d'une page. Lors de l'emploi de la carte à Cl de la présente invention, les codes des données rarement modifiées, les codes de données plus longs et les programmes sont mémorisés dans les pages relativement grandes. Par ailleurs, les codes de données plus courts et les codes de données souvent modifiées sont mémorisés dans les pages relativement petites. Le figure I montre un système de carte mémoire à Cl mis en oeuvre au moyen d'une mémoire flash ayant une taille de page différente selon la présente invention. Des mémoires flash d'une carte mémoire à Cl 10 sont placées pour former une matrice mémoire flash 16 qui comprend des grandes pages et des petites pages. Comme il est connu dans la technique, une page signifie un groupe de cellules de mémoire flash qui sont toujours effacées simultanément. L'unité de commande de mémoire et de sécurité 14 sert à déterminer la condition de fonctionnement de la matrice mémoire flash 16 et à accéder aux cellules de mémoire flash de la matrice mémoire flash 16. L'interface entrée/sortie (E/S) 12 sert à établir la communication entre la carte mémoire à CI 10 et un appareil externe relié, tel qu'un lecteur de carte. La carte mémoire à Cl 10 peut être utilisée pour stocker des données ou des programmes. Une donnée est constituée de codes de données. Un programme est constitué d'instructions, qui incluent généralement des codes de commandes et des codes de données. Le principal concept de la présente invention est que des codes de données présentant des longueurs de code plus courtes ou étant souvent modifiées sont affectés à (ou mémorisés dans) des petites pages, des codes de données présentant des longueurs de codes plus longues, étant rarement modifiées ou présentant une fiabilité plus faible sont affectés à (ou mémorisés dans) des grandes pages. Des programmes ou des codes de commande, ceux qui présentent habituellement une fréquence de mise à jour ou d'écriture, sont affectés (ou mémorisés) à des grandes pages. Les longueurs de codes des codes de données sont facilement déterminées en comptant les octets de chaque code de données. La fréquence de modification des codes de données peut dépendre des attributs des codes de données. Par exemple, supposons qu'un code de donnée est une identification personnelle, qui devrait être liée à l'utilisateur de la carte mémoire à Cl pendant longtemps, le code de données devrait être affecté à de grandes pages. D'un autre côté, supposons qu'un code de données est un dépôt bancaire, qui est souvent modifié par les dépenses ou les recettes, le code de données devrait être affecté à des pages courtes. La figure 2 montre un organigramme illustrant un type de mise en oeuvre d'un mode d'affectation de mémoire flash. Le système d'exploitation commande toutes les informations écrites dans les mémoires flash. Si on trouve un téléchargement de programme (la réponse oui du symbole 30), de grandes pages sont affectées pour mémoriser ce programme (34). Si on ne trouve pas de téléchargement de programme (réponse non du symbole 30), les informations entrantes sont une donnée. Si le code de données entrant présente une longueur de code supérieure au nombre prédéterminé d'octets ou appartient à l'un des attributs prédéterminés (réponse oui du symbole 32), des grandes pages sont affectées pour mémoriser ce code de données entrant (34). Sinon, (réponse non du symbole 32), de petites pages sont affectées pour mémoriser ce code de données entrant (34). L'endurance du cycle lecture-écriture CTpage d'une page peut être simplement exprimée par l'équation suivante (1) CTpage ax CTcell/EFpage (1) O CTcell indique l'endurance du cycle lecture-écriture d'une seule cellule flash et EFpage indique la fréquence moyenne d'effacement pendant l'écriture des informations dans la page. On peut exprimer approximativement EFpage à l'aide de l'expression suivante (2) EFpage 0E PSpage/DSinfo (2) O PSpage est la taille de page indiquant le nombre total de cellules flash dans la page et DS1nfo indique une taille de donnée moyenne de chaque information mémorisée dans la page. Selon la présente invention, des codes de données plus longs sont affectés aux grandes pages et des codes de données plus courts sont affectés aux petites pages. Par conséquent, les fréquences moyennes d'effacement, qui sont proportionnelles à PSpage/DSinfo, pour les petites pages seront très proches de celles des grandes pages si la ligne ou le critère séparant les codes de données plus longs des codes de données plus courts est choisi correctement. En d'autres termes, les fréquences moyennes d'effacement de toutes les pages sont presque équivalentes. Par conséquent, chaque page, qu'elle soit de petite ou de grande taille, présente une endurance de cycle lecture-écriture équivalente. En revanche, les pages d'une carte à Cl de la technique antérieure sont toutes de taille équivalente. De plus, des données ou des programmes sont affectés de façon aléatoire à une matrice mémoire flash dans la technique antérieure. Parfois, si des codes de données plus courts et des codes de données plus longs respectivement alimentés dans une première et une seconde page présentant la même taille de page, la première page présentera une endurance plus basse que la seconde page selon l'analyse ci-dessus. Une carte à Cl est défaillante si l'une de ses cellules de mémoire est défaillante. Ceci signifie que la carte à Cl est défaillante quand la première page est usée tandis que la seconde page fonctionne encore bien. Ceci induit un résultat inefficace. Au lieu de cela, la présente invention propose une endurance de cycle lecture-écriture équivalente pour chaque page, ce qui induit un résultat plus efficace. Par conséquent, la carte à Cl selon la présente invention présente une meilleure fiabilité. La figure 3 montre un organigramme d'un système de carte à puce à microprocesseur selon la présente invention. Un système de carte à puce à microprocesseur présente une matrice mémoire flash 40, une unité de commande de mémoire 46, une interface E/S série 50, un microprocesseur 52, une unité logique de sécurité 48, une ROM 44 et une RAM 42. La matrice mémoire flash 40 présente des petites pages, intégrées en tant que zone de petites pages 54, et des grandes pages, intégrées en tant que zone de grandes pages 56. Par le biais du bus système 58, le microprocesseur 52 peut accéder à l'interface E/S 50, à l'unité logique de sécurité 48 et à l'unité de commande de mémoire 46. L'unité logique de sécurité 48 est utilisée pour éviter de permettre l'accès aux informations de ce système de carte à puce à microprocesseur par toute personne non autorisée. Le microprocesseur 52 peut accéder à la ROM 44, la RAM 42 ou la matrice mémoire flash 40 par l'unité de commande de mémoire 46 et les bus de mémoire relatifs 60a, 60b et 60c. Généralement, le système d'exploitation (OS) destiné à commander le fonctionnement de ce système de carte à puce à microprocesseur est mémorisé dans la ROM 44 et toute information temporaire générée par l'UCT est mémorisée dans la RAM 42. La matrice mémoire flash 40 peut être utilisée pour mémoriser les informations portables. La zone de grandes pages 56 peut être affectée à la mémorisation des programmes d'application, des codes de données plus longs ou des codes de données souvent modifiées. La zone de petites pages 54 peut être affectée à la mémorisation des codes de données plus courts ou les codes de données rarement modifiées. Des critères de ce type afin de déterminer l'affectation des informations peuvent être construits à l'avance dans le OS. La figure 4 montre une structure de système d'exploitation de carte multiapplications d'une carte à puce, qui peut, de manière dynamique, télécharger des programmes d'application dans une carte à Cl. Le chargeur de programmes 70 a pour fonction de télécharger un programme d'application et AP 72 est un programme d'application qui peut être téléchargé dans une carte à Cl. Au moyen de l'interface d'application 74, le chargeur de programmes 72 et les AP 72 sont reliés au OS 76 pour accéder à la zone de grandes pages 80 et à la zone de petites pages 82 par le biais de la gestion de la mémoire flash 78. En fonction du procédé de mise en oeuvre, le chargeur de programmes 70 et l'interface d'application 74 peuvent accéder directement à la gestion de mémoire flash 78, tel que représenté sur la figure 4. La gestion de mémoire 78 affecte la zone de grandes pages 80 ou la zone de petites pages 82 pour répondre aux besoins de l'OS 76, de l'interface d'application 74 ou du chargeur de programmes 70 selon les critères de la présente invention. Enfin, alors que l'invention a été décrite à l'aide d'exemples et en termes de mode de réalisation préféré, on doit comprendre que l'invention ne se limite pas aux modes de réalisation décrits. Au contraire, elle est destinée à couvrir des modifications variées et des agencements similaires comme il semblera évident à l'homme de la technique. Par conséquent, on devrait accorder au cadre des revendications jointes l'interprétation la plus large afin d'embrasser toutes les modifications et les agencements similaires de ce type. REVENDICATIONS 1. Carte mémoire à Cl de mémoire flash, comprenant une matrice de mémoires flash, la matrice présentant une pluralité de pages, chaque page présentant des cellules de mémoire flash effacées simultanément, les pages comprenant une page relativement grande et une page relativement petite, dans laquelle le nombre de cellules de mémoire flash de la page relativement grande est supérieure à celui de la page relativement petite. 2. Carte mémoire à Cl selon la revendication 1, dans laquelle la carte à Cl comprend en outre un dispositif de commande de mémoire afin d'affecter une mémoire flash à la mémorisation des informations reçues. 3. Carte mémoire à Cl selon la revendication 1, dans laquelle la carte à Cl présente une interface entrée/sortie (E/S) pour accéder à un système externe. 4. Carte mémoire à Cl selon la revendication 1, dans laquelle la page relativement grande est affectée à la mémorisation d'une pluralité de codes de donnés longs, la page relativement petite est affectée à la mémorisation d'une pluralité de codes de données courts, et les codes de données longs présentent une longueur de code supérieure aux codes de données courts. 5. Système de carte à Cl, comprenant une matrice de mémoire flash, la matrice présentant une pluralité de pages, chaque page présentant des cellules de mémoire flash effacées simultanément, les pages comprenant une page relativement grande et une page relativement petite, dans laquelle le nombre de cellules de mémoire flash de la page relativement grande est supérieur à celui de la page relativement petite; un dispositif de commande de mémoire afin d'affecter des mémoires flash à la mémorisation des informations reçues; et une interface entrée/sortie (E/S) afin d'accéder à un lecteur de carte externe. 6. Système de carte à Cl selon la revendication 5, dans lequel la page relativement grande est affectée à la mémorisation d'une pluralité de codes de données longs, la page relativement petite étant affectée à la mémorisation d'une pluralité de codes de données courts, et les codes de données longs présentent une longueur de code supérieure à celle des codes de données courts. 7. Système de carte à Cl selon la revendication 6, dans lequel la page relativement grande est en outre affectée à la mémorisation d'une pluralité de codes de commande. 8. Système de carte à Cl selon la revendication 5, dans lequel le système de carte à Cl comprend en outre un microprocesseur afin de commander le dispositif de commande de mémoire par le biais de l'interface E/S. 9. Système de carte à Cl selon la revendication 8, dans lequel le système de carte à Cl comprend en outre une mémoire morte (ROM) pour mémoriser un système d'exploitation (OS), et le microprocesseur fonctionne selon le OS pour affecter la page relativement grande afin de mémoriser les codes de données longs et pour affecter la page relativement petite à la mémorisation des codes de données courts. 10. Système de carte à Cl selon la revendication 9 dans lequel, selon l'OS, le microprocesseur affecte la page relativement grande à la mémorisation des codes de commande. 11. Système de carte à Cl selon la revendication 8, dans laquelle le système comprend en outre une RAM (mémoire à accès aléatoire) afin de mémoriser temporairement des informations provenant du microprocesseur. 12. Système de carte à Cl selon la revendication 8, dans lequel le système de carte à Cl comprend en outre un circuit logique de sécurité pour éviter les accès non autorisés. 13. Procédé de mémorisation d'une instruction dans une matrice de mémoire flash dans une carte à Cl, la matrice présentant une pluralité de pages, chaque page présentant des cellules de mémoire flash effacées simultanément, les pages comprenant une page relativement grande et une page relativement petite, dans lequel le nombre de cellules de mémoire flash de la page relativement grande est supérieur à celui de la page relativement petites, le procédé comprenant: I'affectation, quand l'instruction est un code de données et remplit un premier critère, de la page relativement grande à la mémorisation de l'instruction; et l'affectation, quand l'instruction est un code de données et remplit un second critère, de la page relativement grande à la mémorisation de l'instruction. 14. Procédé selon la revendication 13, dans lequel le premier critère est que le code de donnée présente une longueur de code supérieure à la longueur d'un code prédéterminé et le second critère est que le code de données présente une longueur de code inférieure à la longueur de code prédéterminé. 15. Procédé selon la revendication 13, dans lequel le premier critère est que le code de données correspond à l'un des types prédéterminés et le second critère est que le code de données ne correspond à aucun des types prédéterminés. 16. Procédé selon la revendication 13, dans lequel le procédé comprend en outre une étape d'affectation, quand l'instruction est une commande, de la page relativement grande à la mémorisation de l'instruction.